Kotz’ijに恋して番外編1(FTPアカウントの設定)

以前Kotz’ijをHerokuにデプロイしたけど、Herokuの料金体系が支払いを初めてから物凄く曖昧と気付いたので辞めた。でどうしようかなぁと思って今使っているサーバー上に置こうかなと思う。具体的にはXserver。出来るかどうかは分からないけど。

で取り敢えずはFTPの設定。そういえば最近Gitは使ってもFTPって殆ど使ってなかった様な気が。FileZillaを使うことにした。クライアントは別にこれでなくてもいいけど何となく。

まずはサーバーパネルへ。FTPアカウント設定を選択。

アカウントを設定するドメインを選択。

必要事項を入力してアカウントを作成する。確定する。

FileZillaを起動して必要事項を入力。

そしてリモートサイトのリストが現れれば成功。

次回はSSHの設定。

キチェ語話者数

キチェ語を話す人の総数は100万人以上とはよく言われるがその根拠というのが説得力に欠くものが多い。

2002年の国勢調査を改めて見てみた。15年前に集計されたデータだけど来年新たな国勢調査が発表されるまでは最新のものなのでこれを使う。  このセンサスでは3歳以上の人に対して言語の質問をしているのでデータを3歳以上の人口に絞る。

その後、話者数が多い5先住民言語のグラフを実数とパーセンテージで表したのがこちら。

母語、若しくは第二・第三言語としてグアテマラでキチェ語を喋る人は952,503人、四捨五入すれば百万人となるけれど百万人以上とはならない。まぁ、百万人に近いことは間違いないけど。15年前と比べてグアテマラの人口は大分増えたけどそれが先住民言語の話者数増加に繋がっているのかは判断し難い。どの程度喋れれば話者と数えることが出来るかによるかな。

パーセンテージのグラフがこれ。敢えてY軸の上限を100にした。キチェ語話者は三歳以上の人口の9.32%となっている。

どちらにしてもこれは15年前のデータなのでやはり現状を知るには新たなセンサスのマイクロ・データが欲しい。

Rコードはこちら

K’iche’ ch’ab’al ruk’ LaTex (LaTeXでキチェ語)

キチェ語のノートは前にも述べたと思うけどLaTeXで管理している。ファイルも軽いし何より好きな様に編集できるのが利点。

ただ、これまでは論文執筆を中心に使ってきたため、これまでとは少し使い方が異なり新たな機能が必要となったので作ることとした。

例えば問題への回答を下線と朱色の文字を使って書くということ。下線の長さを統一したり、微調整する時に面倒なことが多かったのでこう書いた。

また、キチェ語の文法ではシータをよく使うけど、これはノートでは必ず太文字を使っているので

を入れておけばその後は気にする必要なし。

後は空白の統一や自動インデントを除く仕様にした。インデントについてはこうする。

こんな風にノートを作成している。

実行結果はこちら。細かいところは今後説明したい。備忘録として役に立つ。

なお、Wachi’l, chqatatab’ej jas le kub’ij le qajtijは「みんな(友達)、先生の言うことを聞こうよ!」という意味。

HerokuにデプロイしたRubyアプリからGoogle Sheetsにアクセスする方法

前回の続き。

今回は作成したRubyのプログラムをHerokuにデプロイして実行する。そうすることによってHeroku Schedulerを使って定期的にプログラムを実行出来る。

まずはHeroku用のGemFileを作成。

でここに書かれているgemをインストールする。

するとGemfile.lockが作成される。

git関連の作業を行う。

これで準備完了。

後は

で実行できる。

Heroku上で定期的に実行したい場合はSchedulerを用いる。

これはブラウザを用いても出来る。

コマンド欄には

と入力し頻度を選択。

色々と応用出来る筈。

RubyアプリからGoogle Sheetsにアクセスする方法

以前、HerokuにデプロイしたRubyによるTwitterbot, Kotz’i’jでツイートへの返信を行う際に以前に読み込まれたツイートを除くため、最新のツイートIDを保存することとしたけどHeroku上のファイルはこの方法では更新されないことが判明。

代替策としてGoogle SheetsのシートにIDを保存し、毎回読み込みと更新することとした。

でその方法。

まずはGoogle APIsにアクセスし、

Sheets APIを選択。

利用規約に同意する。

プロジェクトの作成を促されるので従う。

プロジェクト名を決めて作成ボタンを押す。

APIを有効にする。

続いて認証情報を作成する。

色々選択肢があるけど、HerokuにデプロイしたアプリからAPIを呼び出す場合はその他のUIを選ぶと上手くいく筈。それからユーザーデータにアクセスするを選択。

OAuth2.0のクライアントIDを作成。

認証情報追加画面でメールアドレスを指定する。

下記の画面が現れるのでJSONをダウンロードし完了ボタンを押す。

このJSONはHerokuにデプロイするアプリがあるディレクトリに保存する。

Google SheetsのシートにアクセスするRubyでプログラムを作成することとなるけど、その前にアクセス用のGoogle Sheetsファイルを作成しておく。

また、テスト用に任意のセルに値を入れておく。

ファイルを作成したらそれを選択し、共有リンクを取得。

共有リンクのd/と/edit?の間の値がキーとなるので保存しておく。

google_driveのgemをインストール。

ここでバージョン指定しているのはTwitterbotとの関係でFaradayが問題を起こしてしまうから。

プログラムをこんな感じで書く。

初めて実行した時は下記のメッセージが現れるので指示に従う。

表示されたアドレスにアクセスすると許可を求められるので承認する。

許可すると認証コードが表示されるのでそれをコピペする。

これでシートへのアクセスが出来るはず。

次に先程セルに書き込んだ値を編集してみる。

これを実行すると:

Rubyからシートを編集出来た。

長くなったので今回はここまで。次回はこれをHerokuにデプロイして実行する方法を紹介する。