Kotz’i’jに恋して2(Ruby)

昨晩、キチェ語の初日のクラスに行った。初級からの筈だったけど、キチェ語をある程度話すことがバレて少し上のレベルに。結果としていきなり単語数が100以上に。プログラム用の辞書に入力する単語が増えると、複雑になってしまうなぁ。

取り敢えずプログラムの第一弾。プログラムの名前は会話を意味する「Tzijonik」とした。この単語も授業で出たので利用することに。初めてRubyで書いたプログラム。とはいえ、「恋するプログラム」のサンプルを基にしてるけれど。これをJavaでも作成しないと。

プログラム自体は単純。Kotz’ijは礼儀正しい子なのでまずは挨拶。それから自己紹介。その後は入力された文字列に対し「何(Jas)?」と聞き返すだけ。なお、挨拶はプログラム開始時間に合わせることとした。

おはようはSaqarik

こんにちははXe’q’ij

こんばんははXokaq’ab’

さてここからKotz’ijはどんな成長をするかな。

Kotz’i’jに恋して1

キチェ語の初級コースを受講することとなった。期間としてはこの言葉は大分長い間学んできたので初めから学ぶ必要は特にないけれど、このコースを学ぼうとした理由が2つ。一つは教授がキチェ語の本を執筆した、結構有名な人で会ってみたいと思っていたからだ。

二つ目としては人工無脳や人工知能に関心がある身としては新しく学ぶ言語というのは非常に重要な素材になり得るということ。取り敢えず人工無脳プログラムを授業で学ぶ単語と文法だけで作ってみたいと思う。授業は週二回なのでその頻度でプログラムと単語リストを更新していければ。

同時にこれまでにも作成していたキチェ語の.texファイルを更新しようかな。

Kotz’i’jとはキチェ語で「花」の意味。スペイン語ではFlorという名の女性がいることから。Eliza以来の習慣に従い女性にした。「恋して」は人工無脳関連のプログラミングで有名な書籍を参考に。

言語はアンドロイドのアプリ作成を念頭においてJavaと新たにRubyで。

Rで全てのパッケージを一括インストールする方法

Rは重用しているプログラムだけど更新の際は再インストールする必要がある点が面倒。正確には再インストール自体よりパッケージの再インストールだけど。

少しでも煩わさを軽減させるため最近ではパッケージを一括インストールする様にしている。プログラムが更新される度に毎回インストールしている訳ではないけれど。

やり方自体は至って簡単でこの1行だけ

他にもやり方はあるだろうけどずっと10年位これを使ってきた。ミラーサイトを選んでダウンロードが開始されたら待つだけ。全てのパッケージなのでそれなりに時間は掛かる。

半年ぶりにRを再インストールしたけど今回のバージョン名は「You Stupid Darkness」なのね。ジョークなんだろうけど、学者やプログラマらしくはないなぁ。

Google Driveの同期フォルダの変更方法

Google Driveには色々とお世話になっているけど、気になっていたのが初期設定では同期フォルダの名称が「Google Drive」となっていてGoogleとDriveの間にスペースがあること。これってプログラミングをやる人、それがプログラム開発でも統計分析でデータとかを読み込む際でも非常に煩わしい。なので同期フォルダの名称を変更することにした。

同じやり方で同期フォルダ自体を変更することも可能だと思う。

まずはGoogle Driveのアプリケーションを開いて設定を選択

設定からアカウントを選択肢、アカウントの接続を切断する。

接続の解除をしたらフォルダ名を「Google Drive」から「GoogleDrive」に変更。まぁ、フォルダ名は別にGoogleDriveに限定する必要はないけれど。

その後、接続の解除をした時にログアウトとなっているはずのGoogle Driveに再度ログイン。

次へを三回選択

下の画面が現れたら「完了」を押さないで「同期オプション」を選択。これは凄く大事!

同期したいフォルダを選択(今回の場合はGoogleDrive)。

ダイアログが現れるのでフォルダ内の内容で同期して良ければ続行

フォルダ内のもの全てを同期しても良いし、そうでない場合は同期したいフォルダを選択する。

同期が開始されたら後は終了を待つだけ。ファイルを比較しているというメッセージが出る。

ファイル数が多ければそれなりに比較に要する時間もかかるけど、手順自体は単純だと思う。

gitとオンライン・ストレージを使ったソースコード管理

gitを使い始めたのは比較的最近だ。博士論文の時に使っていればなぁ。Latex、StataとRのソースコードの管理は大分楽だったはず。

まぁ、そんなこと言っても仕方ないけど。で本題。gitだけど初めはGithubを使っていた。でもここってプライベートのレポジトリの作成は有料版のみで、また、その他の理由もあり他の方法がないかと模索。

で考えついたのがオンライン・ストレージをレポジトリとして利用出来ないかということ。私の場合、Google Driveは大学のお陰でほぼ無制限で使えるのでこれを活用しない手は無い。他からのアクセスもGithubや他のサービスと比べて楽そうだし。

ここではGoogle Driveを使って紹介するけど、他のストレージ・サービスでも同じ方法が使えるはず。One DriveとかDrop Boxとかね。

gitの説明は省くとしてWindowsの場合、gitをインストールするところから始まる。ココでダウンロード出来ます。Cygwinにもgitが含まれているらしいけど、最近使ってないんだよなぁ。

gitの準備が出来たら次にTortoiseGitをダウンロードしてインストール。

ここからが本題かな。

まずは管理したいプロジェクトが保存してあるフォルダをローカル・レポジトリとする。

フォルダを選択して

右クリックすると

上の画像の様に「Git ここにレポジトリを作成」という選択肢があるのでこれを選択。その際、以下のダイアログが表示されるはず。「Bareを生成」という項目のチェックはされていないと思うけどそのままで。その理由は括弧内を見れば分かるはず。これは作業ディレクトリなので。

OKを押すと次のメッセージが表示される。

フォルダを開いてみると

.gitというフォルダが作成されていることに気付く。このフォルダ以外の全てのファイルを選択して

右クリックを押すと

追加という項目が現れるはずなので選択する。

それから「全てを選択/解除」にチェックを入れて

OKを押す。

追加が無事終了したらコミットへ。

メッセージ欄に何かしらの記入をする必要がある。私は日付と変更内容を記入する様にしている。コミットしたらプッシュ画面が現れるはず。これを一旦キャンセルして消す。

次にローカル・レポジトリのフォルダがあるディレクトリに戻る。そこで何も選択しないで右クリックを押すと

「Gitクローン(複製)という項目を選択する。すると下記のウインドウが表示される。URLにローカル・レポジトリのフォルダのアドレス、ディレクトリにはGoogleDriveのフォルダ内に作成したリモート・レポジトリのフォルダを選択。通例としてはローカル・レポジトリのフォルダ名に「.git」を付ける。ただ、これは任意。

ここで気をつけなくてはならないのが、今回は「Bareレポジトリにクローン」にチェックを入れること。リモート・レポジトリは作業ディレクトリではないから。ここのチェックを忘れないように!

こういうこと。これでやっとOKを押せる。

ウインドウを閉じる。最後にローカル・レポジトリからリモート・レポジトリへのプッシュを行う。ローカル・レポジトリのフォルダを選択して右クリック、TortoiseGitを選択するとプッシュの選択肢が現れる。

下記のウインドウが現れたら「リモート」のディレクトリを指定。勿論、先程作成したリモート・レポジトリのフォルダを選択。

下のウインドウが出るので

URLにリモート・レポジトリのディレクトリを記入。

OKを押すとプッシュ画面が現れるので

再度OKを押す。しっかりプッシュ出来れば成功!

リモート・レポジトリにあるものをローカルに引っ張って来るには逆の方法を使えば良い。リモート・レポジトリから新規に指定したローカル・ディレクトリにコピーする形となる。

色々な手順を踏まなければならないけれど、Google Driveやメジャーなストレージ・サービスに限定されることもなく、手軽にGitを使えるのでこの方法は重宝している。