読者です 読者をやめる 読者になる 読者になる

Riak Source Code Reading #1に参加しました

Erlang Riak

昨日開催された「Riak Source Code Reading @東京 #1」に参加しました。そして、Riakのbitcaskバックエンドとeleveldbバックエンドのコードに関して発表してきました。

その時のスライドがこちら

スライドといってもたいした事は書いてなくて、発表中にポイントとなるコードに集中するために、元々のコードをコピー&ペーストして整形しただけと言っていいものです。コードリーディングの対象としたのは、ほぼ次の2ファイルのみ。

正直、Riakのメインの処理というよりは、別ライブラリを呼び出すためのグルーコードという感じで、どういうコードリーディングになるか不安だったのですが、予想以上に発表中に質問が出て、個人的には発見があったり、次に繋がる内容だったのではないかと思っております。当日全く仕事をしないで資料を作った業務時間の合間を縫って資料を仕上げたかいがあった!

以下、強調しておきたいところや反省点。

ソースコードより先にドキュメントを読もう

自分自身、ドキュメントよりソースコードを先に読んで後からちゃんとドキュメントに書いてあったと気づくことが多々あるのですが、今回もそういう経験がありました。grepであたりをつけていったり、逐一処理を追っていくよりは、ドキュメントからあたりを付けていったほうが早かったこともありますね。今回だとBitcaskのMergeとSyncとか。

コードリーディングの上では、やはりConceptsのページが重要に感じます。

Riakの開発を始めるならば、次の2つあたり。特にkerlの辺りは、今回発表するにあたり下調べをしていて初めて知ったのですが、特に重要。

Riakの実運用やチューニングを始めるならば、このあたり。

HanoiDB

大変興味深いスライドなので再掲。必見だと思います。

Pandoc

今回発表するにあたり、kuenishi氏のRiak Source Code Reading @TokyoのgithubレポジトリにPull Requestする形式で資料を用意したいなと思っていたのですが、MarkdownからHTMLのスライドにするのはどういう方法が一般的なのか知らなくて少し悩みました。

空前のHaskellマイブーム、もとい、Haskellは本当に流行っているので、空前のHaskellブームということもあり、"markdown slide Haskell"でググって、PandocでHTMLスライド化できるということを今回初めて知りました。

PandocのREADMEを参考にして、

$ pandoc -s -t slidy -i --self-contained -o output.html input.md 

というオプションで簡単にスライドに出来た!素晴らしい!

ErlangのSyntax Highlightが崩れてしまうようなことがあったので、Syntax Highlightを使わなかったのですが、そのせいでスライドでは多少コードが読みにくくなっていたかもしれません。それが反省点。

良かった点

久しぶりに会社の外で発表とかしましたが、うっかり「Riakを実際にプロダクションで使う人なんているはずないじゃないですか」とか口走らなくて、本当に良かったと思います。(たぶん言わなかったと思う。)