職質アンチパターン

無責任な事を書きたい

雑だけど動いてめでたいアプリケーションを作った

id:hitode909さんの結婚パーティーが先日あって,そして時を同じくして#hitode909memorialというtwitterハッシュタグが流行していて,id:Pasta-Kと「パーティー会場で #hitode909memorial に流れてくる画像をスライドショーにして表示したらおめでたいんじゃない?」となったので一緒にスライドショーアプリを作った.

#hitode909memorial_viewer · GitHub

作業時間はぜんぶで15分くらい? 披露宴とパーティーの間のスキマ時間にほろ酔い状態でHUB三条木屋町店で書いた.HUBでコーヒー飲みましょうという感じでHUBに入ったんだけど,コーヒーは無くて結局HUBエールを飲みながらやることになって勢いを感じる.pastakにはnode部分 (表示部分) を書いてもらって,僕はハッシュタグが付いたツイートから画像URLを収集する部分を担当したという分業スタイル. 画像URL収集スクリプトをcronで毎分実行して最新のデータをURLのリストファイルにsyncして,node側ではURLのリストが格納されているファイルをwatchしておいてそこから1つを乱択して表示するという構造になっている.

データ収集のコードを読むと本当に野蛮な感じで,twitterのレスポンスJSONをjqで解釈していて,本来はjqだけで完結させたかったのだけど高度な記法を調べるのが面倒くさくなったので突然grepでURLを引っこ抜いて,sedでURLのみを抽出しようとしたんだけどsedってGNUとそうでないのとで挙動が変わって混乱するので代わりにperlを起用して正規表現でそこらへんをやるようにした.あとこのコードは毎分実行されるわけだから,処理が1分以上かかるようになるとぶっ壊れるんだけどそこらへんが全くケアされていない.ロックとかを取るべきだったと思うのだけど,幸いにもそういった不整合状態がパーティー中には起きなくて助かった.

本来であればちゃんとしたアプリケーションコードを書いてやるべきだと思うのだけど,時間がそこまでなかったのと,開発に使っていたpastakのマシンが僕のマシンと比較してあまりに設定が違いすぎたためゴリゴリコードを書くのはつらいという気持ちになり,このようなスクリプトの構造になった.小さなコマンドを組み合わせて特定の機能を実装するというのはUNIX哲学っぽくて,ちょっとだけ気に入っている.

雑に作った割にはちゃんと動いててすごい.結果としてパーティー参加者の皆さんに喜んでいただけたように思う *1.仕事ではこんな元気いっぱいなコードは書かないし,時間がないにしてももうちょっとマシなやり方があったんじゃ? とは思うけれど,しかし特定の機能を実現するアプリケーションを非常に限られた時間でどかんと作ってそれが皆様に喜ばれる,というのはモノづくりの根源的な愉しみのように感じる.今回はそういったプリミティブな喜び,愉しさに久々に *2 ふれることが出来て嬉しく,プログラミング原体験を思い出す感じで良かった.

--

ご結婚おめでとうございます.本当におめでたい!!! お幸せに!!!

*1:どうでしたか

*2:久々に?