Subscribed unsubscribe Subscribe Subscribe

@kyanny's blog

Write down what I learnt.

watchr ではなく observr

Parslet - @kyanny's blog のプログラムを書いていて、プログラムを編集するたびに手で実行するのは面倒くさいな、と思って自動化するツールを使った。

Ruby だとそういうので guard があるが、なんか guard は使い方が難しくて、いつもうまく使えない(設定とかインストールすべきものとかが多くて面倒くさい) watchr というのもあったよなと思い出して使ってみたがエラーになってしまい、検索すると observr という後継プロジェクトがあってそっちはうまく動いた。

watch('.*\.rb') { |f| system("ruby #{f[0]}")}

これを例えば Watchfile という名前で作って observr Watchfile で起動して、あとはプログラムを編集するたびにエディタのオートセーブが走るので自動実行される。ターミナルとエディタを並べて実行結果を眺めながらどんどん編集していける。便利。

kevinburke/observr · GitHub

Parslet

SQL をパースしたくなって Scheman というものを見つけたが、諸事情によりそのまま利用できなかったので、 Scheman が構文解析に使っている Parslet というライブラリを使ってパーサを書いてみた(未完)

Parslet SQL parser practice

パーサというものは難しくて自分には書けないものだという思い込みがあったけど、 Parslet は使い方が簡単で覚えやすく、一度コツというか「こういう風に書いていくんだ」という感触がつかめるとあとはひたすらマッチするパターンを部品として実装してつなげていくだけで、単純作業なところはあるけど書いてて楽しい。

実践 Vagrant

最近仕事で「仮想マシンにデータベース製品をインストールしてスキーマを流す」みたいなことをやっていて、まずはお手軽に Vagrant を使ってやり始めたのと、その話の流れで Packer の話題が出たのでとりえあず日本語で触れている文献を読もうということで「実践 Vagrant」を買った。ちなみに Packer の件は勘違いで、結局使う機会は無かった(vagrant package で事足りた)

良いところ

  • Vagrant の基本が丁寧に説明されていて、とてもよく理解できた。単なるコマンドの羅列ではなくて、ちゃんと順を追っていてその順番に意味があり、読み進めるにつれて理解が深まるようになっている。 Vagrant はオフィシャルドキュメントもしっかり書かれているけど、やっぱり英語より日本語で読むほうがはやくて楽だし、リファレンスマニュアルは頭から全部読むようなものではないよな、というのもある。
  • Vagrant の理念みたいなものも、改めてちゃんと説明された上で使ってみると「なるほど、これは確かに革命的に便利だ」と実感できた。
  • 仮想ネットワークについて、おそらく非常に簡単な説明にすぎないのだろうが、ネットワーク関連にほぼ無知な身にはとても勉強になった。
  • プラグインの実装方法というかなり突っ込んだ話題まで日本語で読めるというのは嬉しい。こういうのはだいたい英語のドキュメントを読むか、それも不十分でソースコードを読むしかないことが多く、最終的にソース読むことになるのはしょうがないけど、いきなり最初のステップからそれだと厳しいよな、と思うことが多かったので。

悪いところ

  • 誤字脱字の類が多い。特に前半。物書き商売してるのに自分の書いた文章(商品)を読み直しもしないのか?と呆れる。
  • 別々の Provisioner の説明で、製品名以外まったく同じ文章が出てきたりする。これは原著もそうなのかもしれないが、ちょっと言い回しを変えるとか、工夫して欲しかった。
  • Google BigQuery をパラパラ眺めたときにも感じたのだけど、個人的にこの翻訳者の文章があまり合わないようで、読みづらかった。

実践 Vagrant

実践 Vagrant

最近読んだもの

The programming talent myth [LWN.net]

5月をふりかえる - Kazu's Soapbox でほめられていたので読んだ。長いのでまだ半分くらいしか読めておらず、 HN のほうは全く読めていないが、 kzys さんが感心していたのとは違う部分で良い気づきが得られた。
 
曰く、あなたが一緒に働いたことがないプログラマの実力を測る術はないのだから、確率分布的に見積もるしかない。世の中のたいていの物事は正規分布に従うのだから、プログラマの能力は山なりのグラフの中央付近に属するはずである。しかし我々はプログラマの能力をそのように見積もらず、逆U字形のグラフのように分布すると考えがちで、自分はU字の優れた人が集まる側に、知らない他人はその反対側に属すると思いたがる。だがそれは全然なんの根拠もない妄想なのでやめよう、みたいな話。
 
この話に感銘を受けたのは、まさに自分がそのように考えがちだということに気づかされたからで、さらにいうと「プログラマの能力が正規分布するのだとすれば、平均的なゾーンに属することは当たり前のことで、自分が平凡なことはおかしなことではないし、秀でた人たちと比べて劣っていることもあまり悲観することはない」と、なんか長年上を目指して自分を縛ってきた呪縛みたいなものがまた一つ解けた感じがしたからだ。

いま、 Quipper ではたらく魅力とは何か

イベント等で社外の方と会うと、セールストーク気味に「Quipper の魅力」を語ってしまうことがある。そういうときはたいてい、

  • 世界各国でサービスを提供しているグローバル企業であること
  • モダンな開発環境・開発プロセスを採用していること
  • 「教育」という社会的に意義がある事業をやっていること

みたいなことを言うのだが、内心「グローバルでモダンな開発で社会的意義のある事業をやってる会社は他にもあるよなぁ」と思わなくもなかった。平凡ではないが、圧倒的でもない。他との差別化には、これだけでは不十分だ。

だが、いまの Quipper には他を凌駕する魅力がある。「世界一への挑戦権」がそれだ。

jp.techcrunch.com

TechCrunch の記事にも書いてあるように、 EdTech シーンはビッグプレイヤーが世界中で陣取り合戦をする段階に入っている。特定の分野や地域に特化したサービスは今後も出てくるだろうが、オンライン教育サービスとして世界を制するのは既存のビッグプレイヤーの誰か(もしくは Apple/Google/Microsft などの巨人が彼らを傘下におさめる)になる可能性が高い。いまから始めて彼らと渡り合おうとするのではもう、遅すぎるのだ。

Quipper は「彼ら」の一角を占めている、というのは言い過ぎかもしれないが、彼らがそう遠くない将来に世界一の座を賭けて戦うことになるだろう最終決戦の場に、いち参加者として列席できるくらいのポジションにはつけていると思う。あの Khan Academy に正面から挑む、それも記念受験的なやつじゃなく本気の勝負をしかける日がいずれやってくる、ということだ。あらゆる分野でまたたく間に勝敗が決まる Web の世界で、こんなにおもしろい挑戦ができるチャンスはそうそう残っていない。

資金も人材も潤沢でブランドも確立しているビッグプレイヤーたちに体力面ではどうしてもかなわない、というのがスタートアップである Quipper の弱点だったが、今回のリクルートによる買収によって「ヒト・カネ・モノ」でも彼らに引けをとらない体制が整った。「世界一の教育プラットフォームになる」という CEO 渡辺の悲願が、ビジョナリーの野望ではなく実現可能な目標になった。

あとは、やるだけ。世界一に挑戦したい人、待ってます。

www.wantedly.com

あわせて読みたい: