はやみずの「は」

一番苦手な作業に取り組むために

自分は今日やったこと、今日考えたことを毎日メモを残しておくというのがものすごく苦手である。

やらないよりも、やれば良いにきまっている。良いとはわかっているけれども、どうもそれをやろうとすると、「めんどくさいな」と思って気がついたらはてブをダラダラながめたりしてる。よくない。

面倒に感じる理由としては、考えていることがうまく言葉にまとまらなくて活字に落とせない苦しみ故みたいなことを除くと、ほとんどはメモを残すために手を動かす作業の細かい不便さが積み重なっていることが原因であるように感じる。

たとえば汎用的なテキストエディタでMarkdown記法でメモを記録していこうと思うと、適当にディレクトリを掘って日付をファイル名にして記録していくというスタイルが考えられる。

が、まず C-x C-f でそのディレクトリを開いて、日付を入力するのが面倒(Emacsならelispでそういう処理をする関数を定義しておけばいいかもしれない)。

その問題が解決できたとしても、EmacsでMarkdownを編集しているとプレビューを見ながら書きたくなってくる。KobitoMacdownを使えばライブプレビューをしながらMarkdownを書けるが、やはり汎用エディタなので↑にかいた日付とかでファイルを整理するのが面倒問題は以前としてある。

また、実験の結果のグラフなどをちょっと載せておきたいとおもったときに、Emacsでメモをとっていると画像の挿入がひどく面倒である。ファイルをどこか決まった(mdファイルを置いているディレクトリなど)場所にコピーして、そのファイル名をコピーしてEmacsに貼り付けて、Markdownの画像記法のための記号をチマチマ入力しなければいけない。

書いていくとほかにもきりがないが、汎用のツールではやはり自分のやりたいことを最短経路で完了させることができないストレスがあって、毎日コツコツ続けるためにはそういうストレスが最大のブロッカーだった。

そんなわけで、そのブロッカーを解消するために重い腰を上げて、日々のメモをとるためのGluentというツールを自分で作り始めた。 Sinatraアプリとして実装されていて、ファイルを作成しようとすると日付でデフォルトのファイル名がはいっていたり、Markdownのライブプレビューが表示できたり、カンマ・ピリオドの句読点変換ができたり、Markdown記法の入力補完がきいたり、編集中に自動でファイル保存してくれたり、ワンクリックで定型コミットメッセージでgit commitしてくれるなど、とりあえず自分の必要な機能を詰め込んであって、これを作ってからわりと快適に毎日メモをとることができるようになった。

f:id:hayamiz:20150405184157p:plain

編集画面はこんな感じ。テキストを選択すると文字数を下のステータスラインに表示したりとか、地味な機能もある。 textareaにファイルをドラッグ&ドロップすると、mdファイルを置いているディレクトリにファイルをアップロードして、markdown記法をtextareaに挿入してくれるなどの機能もある。

最近はWebサービス+ネイティブアプリ提供の場合でも、中身はHTML5で出来ていてガワだけ変えるみたいな話もあるけど、フロントエンドのことを割と何もしらない自分でも、UIを手軽につくるのは割と簡単にできるようになったもんだということを、こういうツールを作ってみると実感することができる。

そういう体験でいくと、某艦隊擬人化ゲームをプレイしていた時期は、クライアントが通信しているJSONをキャプチャして、現在の艦隊の情報をダッシュボード化するときにAngularJSを使った時にも、随分簡単にデータを反映したUIを作れるようになったもんだと関心した。

f:id:hayamiz:20150405185037j:plain

これを作ったのも、現在自分が持っている資源の把握とか、遠征から帰ってくる艦隊のキラ付け状況の把握とか、やっときゃいいのはわかってるけど面倒みたいな問題を解決するために、仕方なく自分専用ダッシュボードを作ろうと思ったのがモチベーションだった気がする。 おかげで割と快適にプレイしていたけど、あるときLinuxのブラウザがどれを使っても、ログインした後のローディング画面から先に進まなくなってしまったのでプレイしなくなってしまった。