2012/09/28

最近取り組んでいることの振り返り

4-9月で句末ということもあり、最近はここ半年やってきたことを振り返る時間が少しばかり増えました。せっかくなのでここにもメモとして残しておきたいと思います。

  • Jenkins
    • MapReduceアプリケーションのビルド・デプロイ
    • 管理アプリケーションのビルド・テスト・デプロイ
    • 高機能crontab的な使い方もし始めているが、やっぱりcrontabはcrontabであるべきで、なんだかJenkinsは少しリッチ過ぎる気がしてる
    • さらにいうとJob間のパラメータの受け渡しがもっとやりやすかったり、JobからJobへのフックがもっとフレキシブルにできたらいいなぁと思っている
      • でもそこまで望むのも間違っている気もする。
  • Hiveの調査、導入。中間データ設計。
    • Mapperを書いたり、パーティションと格闘したり。
    • Hive入れてよかった。Hiveのない生活はもう考えられません。
      • いわゆるRDBのクエリのチューニングと違って、MapReduceの振る舞いやら元データの展開やらネットワークコストやらいろいろ考えることがあって楽しい。
      • あと何だかんだHiveの、なんというか幅のある設計は良いなぁと思ってる。UDF, TRANSFORM, SerDe, ... 
  • AWS環境に大分慣れた。
    • AutoScaling設定
    • boto + FabricでELB以下のEC2にデプロイ
      • プログラマブルなインフラ美味しい。
      • アプリケーションエンジニアというか、インフラをアプリケーションとして操っている感じ。
      • AWSすごい。
    • CloudFormationをつかったPreview環境運用
    • EMRの癖
      • ちょっと普通のHadoopと違うけれど、S3と仲良くすると旨み多し。
  • subversionからgitへの移行
    • プロダクトの整理という意味ではこれが一番大変だった。
    • Jenkinsでのデプロイ環境を作るのに、どうしてもgitに移行したかった。
    • でもgit移行してプロダクトの見通し良くなったので、やってよかった。大変だけど。
      • チームでお互いのコードが見えやすくなったのは、思った以上に快適何じゃないかと思う
    • サブシステム(gitでいうならリポジトリ)の大きさをどの程度にするかが難しい。増やしすぎず、大きすぎず。
      • submoduleも使い過ぎると逆によくわからなくなる
        • Jenkinsで、というよりFabricでデプロイするときに色々来にしなきゃならないのであまりsubmodule増やしたくない
  • mongoと格闘
    • 最初はmongoshell便利とかいって悦に浸る
    • データが増えるとやっぱり火山
    • レプリカのシンクロナイズ怖い
  • Nutchの調査・導入
    • EMRでうまくNutchを使う
    • 分散インデックスとの戦い
    • でももっといいソリューションがあった気もしているのでおいおい見直したい。
  • SolrとCarrotをつかった簡易テキストマイニング
    • 最初全然わからなかったけど、lucene-gosenに少しだけお世話になりました
      • 知らぬ間にNgramでテキストフィールド持ってて、試しにクラスタリングしたら全部同じクラスタになったという悲しい思い出が
    • これはあまり成果が出なかったのでちゃんとやりたい
  • R, R, R
    • さくっと何か傾向を見たり検証をするという機会には使っていたけれど、ルーチンワークに入れられなかった
      • ちゃんと日々のプロセスに組み込みたい
    • Rで解析したデータをちゃんと人に伝わる形で見せるというのは比較的悩ましい課題
    • 自分が勉強するのもそうだけど、ちゃんと周りに統計のこと伝えるの大事だと思った
  • 機械学習周り
    • 3ヶ月くらいライトな機械学習勉強会を開いた。週1。
      • もっと濃くすればよかったと反省している。
      • せっかく会社でやるなら実践の比率を上げたほうが良かった。
    • PRMLは部分的に読んでる。けどまとまった勉強時間取らないと身にならないことが目に見えている。
    • SVMの赤本は今半分くらいまで読んでる。実装しながら。
  • 少しPHPを触ったりした
    • FuelPHPで小さいアプリケーションを作ったりした
      • 作っているときは良かったが、運用はあまり気持ちよくない
      • 使いやすいルーティング機能があって、使いやすいテンプレートエンジンがあれば良いんじゃないかって最近思ってる
      • Taskは無いより便利だけど、バッチ書くならPythonか、shellで書いたほうが楽、というかoilコマンドがあんまり好きじゃないのかもしれない
        • 好みの問題かもしれない
    • debugとかレビューとかでは触れる。けどそのたびに、「ああ、自分はあまりPHPのことを知らなかったんだな」と思ったりする。
      • でもWebアプリケーションを作る上では、自分はPHPの作法に慣れている。
        • 要は慣れと経験の問題かもしれない。

色々浅いままの部分も多いので10月からも頑張ります。