先ほど、mod_mrubyとngx_mrubyのそれぞれv1.0.0をリリースしました。
2012年の4月のmrubyのソースコード公開を機に開発をはじめ、今振り返ると色々な事がありながらも2年間続けて研究・開発を行い、ようやくここまで辿り着く事ができました。
mod_mrubyとngx_mrubyを実装していく中で、Matzさんをはじめmrubyに関わるすごいプログラマの皆さんと出会い、多くの事を教えていただきながらここまでやってくることができました。もし、彼らと出会うことがなければここまで続ける事はできなかっただろうと思います。
mrubyに関わりながら研究・開発し、その成果物をOSSとして公開しながらやってきたことで、恐縮ながらも産学両方から一定の評価を頂けた事もあって、まだ二年とはいえこれまで継続してやってきてよかったなぁと思います。
そこで、ふと2012年4月からmod_mruby、ngx_mrubyに関連のある出来事を時系列で振り返ってみようと思います。この振り返りは、ちょうど自分が会社を辞めて大学生活を始め、本格的なOSS活動を始めた時期とピッタリ重なります。
mod_mrubyとngx_mrubyの振り返り
2012年4月mrubyのソースコード公開、自分はこの時から大学生活と本格的なOSS活動スタート
-
2012年4月1日「大学院入学」
- 4年間勤めた会社をやめて大学院に入学するという暴挙にでました
- 家族の理解と支えがあって実行に移す事ができました
-
2012年4月20日「mod_mrubyを作ってみようか」
- ここでmrubyに出会い、近いアイデアはあったものの何気なくmod_mrubyを作ってみようと思いました
- Matzさんと初めてtwitterでやりとりできたのは印象的でした
-
2012年4月21日「mod_mruby 0.0.1をリリースしてみた」
- 実装してみると意外とすぐ動くものができたので公開してみました
- 本当に低機能だったのを良く覚えています
-
2012年4月25日「Apache2.4で mod_mruby vs mod_lua ベンチマーク対決」
- mod_luaとベンチマーク対決してみて惨敗したのを覚えています
- 研究室の教授が「これ面白いから研究発表してみない?」とおっしゃってくれました
-
2012年5月2日「mod_mrubyの逆襲(mod_luaよりパフォーマンス良くなったよ)」
- この一週間で色々思考錯誤してベンチマークが上回りました
- 内容は粗いもののここで色々注目して頂けるようになりました
-
2012年5月8日「なぜApacheにmrubyを組み込もうと思ったか」
- ここで一旦これまでの経緯をまとめてみました
- 自分の中でも頭の中が整理された記憶があります
-
2012年6月28日「IPSJのIOT研究会でmod_mrubyについて発表」
- 発表のために6月の間は既存の実装を読んだり色々と背景の整理をしていました
- mod_mrubyについて学術系で初めて発表した日でもあります
- 当時アルバイトしていた会社で大きな事故がありその対応で全く研究ができなくなったのもこの時期です
- なのでこの時の発表は急遽共著者の先生にお願いしました
- また7月にトルコできまっていた国際会議発表も忙しくて参加できませんでした
- ここから数ヶ月はmod_mrubyの研究開発において大きくビハインドを背負う事になりました
-
2012年7月28日「nginxをmrubyで制御するモジュールngx_mruby 0.0.1をリリースしました」
- ここで一旦mod_mrubyのアーキテクチャは他のWebサーバにも実装しやすい事を示すべく、とりあえず版の実装をnginxにも実装してngx_mrubyとして公開しました
- mod_mrubyへの実装と比べほとんどまともな実装はしていませんでしたが、とりあえずの名前とアイデアの確保という意味あいで公開したのを覚えています
- ここからしばらくはmod_mrubyの細かい実装を継続的にやっていくことになります
-
2012年10月1日「mod_mrubyでどういうことができるのかや性能向上に取り組む」
-
2012年12月16日「ひたすらmod_mrubyの改善を試みたりmruby拡張を書いてみたりしていた」
-
2013年1月22日「mod_mrubyをevent及びworker MPM(マルチスレッドモデル)に対応させた」
- ApacheConに参加することになり、その中でhttpdの中の人やmod_luaの中の人とやりとりをするようになりました
- ApacheConではmod_luaのセッションの中でmod_mrubyを紹介して頂けました
- mod_mrubyが世界に羽ばたいた時期でもあります
- mattnさんがWindows方面で色々アドバイスを下さって日々感謝していました
-
2013年1月24日「言語の性能の差がApacheモジュールの決定的な差でないことを教えてやる」
- mruby jit作者のmiuraさんやmattnさんに色々と励まして頂く事でmod_mrubyの開発モチベーションが高まってきていた時期です
- その他、mruby実装に関わるmから始まるメンバーの人達には色々と教えていただいたり日々勉強という感じでした
- mattnさんはオヤジギャグを言う事を日々継続されていました
-
2013年3月11日「Ruby東京プレゼンテーション2013」
- 東京プレゼンテーションに参加したいけどお金がーとかいっていたら、Matzさんに参加してみる?と言って頂けて聴衆としてですが参加しました
- この時masuidriveさんとも初めて会ってお話することができました
- パネルディスカッションの最中にmasuidriveさんが「松本さんいますか?」と急に手を挙げるように促されたのにびっくりしたのは良い思い出です
- 初めてMatzさんと会ってお話することができました
- Matzさんの最初の言葉は「ポートランドにいったんだって?」だったのも覚えています
- Matzさんとmasuidriveさんに囲まれ恐縮しながらも日本は平和で素晴らしいという話をしていました
-
2013年4月10日「mrubyでも使っている擬似乱数Mersenne TwisterがMITライセンスでも提供可能になった」
- mruby-randomをコアに入れる際にメルセンヌツイスターがMITLでは無いことが問題になりました
- そこでメルセンヌツイスターの作者の方々に連絡して、なんとMITLでも提供可能に変更して頂けました
- この時はmrubyのコントリビュータの皆さんと色々議論しながら盛り上がっていたのを懐かしく思います
- 個人的にはこの時期の盛り上がりはすごかったと思います(正規表現祭り・擬似乱数祭り…)
- GitHubの通知がほっておくとすぐに満タンになっていました
-
2013年7月1日「mrubyによるWebサーバの機能拡張支援機構を一緒に開発しませんか?」
- ここで一旦2012年4月からのmod_mrubyやngx_mrubyの話をまとめてみました
- Googleのエンジニアに言及された事やApacheConで取り上げてもらったことなどです
- これまでの事をまとめる事で今後の決意表明もできて、こういう記事を書くことでモチベーションを維持できたような機がします
- この記事をきっかけに色々な人に知ってもらう事ができた気がします
- mod_mrubyの実装が進んだのでngx_mrubyにも実装を追加していっていた時期でもあります
- ngx_mrubyでnginxの内部変数を操作する
- ngx_mrubyの紹介 ならびに nginx+mruby+Redisによる動的なリバースプロキシの実装案
- mod_mrubyを使ってRaspberry Piを4台でWebサーバクラスタを組んでみた
-
2013年8月21日「Ruby Prizeの候補者になった」
- mod_mrubyやmrubyへの貢献が認められRuby Prizeの候補者に選ばれました
- とてもうれしかったです
-
2013年9月28日「「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた」
- ここで、mod_mrubyを作るきっかけになった研究を紹介することができました
- mod_mrubyやngx_mrubyはあくまでWebサーバの機能拡張エンジンでそれを利用することでリクエスト単位での柔軟なリソース制御をDSLで書けるようになるという研究です
- それなり面白いと言って頂けました
-
2013年12月13日「IPSJのIOTS2013でmod_mruby論文で優秀論文賞を頂いた」
- mod_mruby論文で優秀論文賞と学生奨励賞を頂けました
- ようやくアカデミアからも一定の評価を頂いた事に非常に恐縮すると共にうれしかったです
- またこの時妻のお腹には子供がおり、発表後すぐに広島から大阪にかえったのですが、本来学生奨励賞はシンポジウムの最終日まで残っていないと表彰の対象にならないはずが、特別措置によって頂く事ができ、IOT研究会の柔軟さに感動しIOT研究会をより好きになったのを覚えています
-
2014年1月1日「春日大社でおみくじ」
- 凶を引きました
- 子供だけは健康に生まれてほしいと思いました
- 確かに去年は色々出会いがあったりそこから良い方向に運良く進めた気がするので、今年はみを引き締めようと思いました
- でも凶は幸先悪いなとおもいました
-
2014年1月31日「Ruby東京プレゼンテーション2014でmrubyについてパネルディスカッションしてきました」
- 1年前の東京プレゼンテーションは聴衆として参加し、Matzさんとmasuidriveさんと日本は平和という話をしただけでしたが、今回はそのすごい方々と恐縮ながらパネルディスカッションをする事ができました
- mod_mrubyについて話しました
- ここでは、前々から気になっていたsyuu1228さんとも出会う事ができうれしかったです
- また、今後の未来を語る内容で概ねsyuu1228さんとかぶってしまいました
- 非常にお世話になったmattnさんと出会えていない事は心残りでした
-
2014年2月21日「WEB+DB PRESS vol.79のWebエンジニアのためのmruby入門」
- Rubyで有名なudzuraさんのWEB+DB連載の最終回でmod_mrubyについて特集して頂きました
- 査読をお願いされたのですが、非常に文章力が高かったため、ほとんど何もしなかった記憶があります
- mod_mrubyによってudzuraさんとお会いすることもできてとてもうれしかったです
-
2014年2月24日「mod_mrubyがフクオカRuby対象優秀賞を受賞」
- まさか優秀賞を頂けるなんて思っていなかったので本当にびっくりしました
- Matzさんの講評で、きちんとここまで実装できている事を評価したい、と言われてうれしかったのを覚えています
- Rubyの笹田さんとお話することもできてうれしかったです
- mod_mrubyの審査をMatzさんと笹田さんの前で発表するのは中々に大変なものがありました
- ツッコミも鋭かったです
- ソフトウェアコンテンストでmod_mrubyが認められアカデミアでも認めらた事と相まってこれまでの努力が報われたような気がしてとてもうれしかったです
-
2014年2月24日「mod_mrubyやmrubyへの貢献が認められ日本OSS奨励賞を頂く」
- フクオカRuby大賞の授賞式に泊まっていたホテルで朝起きるとメールが来ていて、OSS奨励賞受賞して頂けますか?と来ていて目が完全に覚めました
- おみくじ凶だったのに??と思いました
- アカデミアでの評価、ソフトウェアコンテンストでの評価で十分恐縮しうれしく思っていたのに、そこにさらに日本OSS奨励賞という評価が得られた事にはうおーーーっと言わずにはいられませんでした
- 家族からも「褒められてるのほとんど見たことないお前がこんなに褒められてすごいやん」と言われました
- 受賞メンバーはすごい人ばかりでとにかく恐縮でした
- 海外さんが貢献賞を受賞されていて、うおおーすごい!と思いました
- ここで、mod_mrubyを開発するに当たり色々な事を教えて頂いたmrubyのコントリビュータの皆様に深く感謝をしました
- 来年も今mrubyを頑張っている人からOSS奨励賞が選出されたら素晴らしいな、とも思いました
-
2014年3月26日「子供がうまれました」
- 妻子共に健康で元気で良かったです
- twitterではお会いしたことが無い人達からもおめでとうと言って頂けて幸せでした
- mod_mrubyとは唯一関係のない出来事です
-
2014年5月15日「mod_mrubyとngx_mrubyのv1.0.0をリリースしました」
- そしてこの記事になります
このように振り返ってみると、偶然社会人を辞めて学生になっていた事、以前の職場でたまたまApacheモジュールの開発者が辞めて目があった僕がたまたま引き継いだ事、mrubyが公開されたこと、mrubyのコントリビュータの人達がとんでもなく技術力が高い上に人柄が温厚で色々と教えて頂けたこと、などなど言い出すときりがないですが、自分の意思が届かない所で物事が進み、それがある時たまたま交わり、その延長線上で人の目に止まり評価される、というようなどうやったか説明できないような偶然としか言えない流れを感じます。
なぜこの二年でこのような結果になったのかを聞かれても、はっきり言ってわからない、というのが答えになります。これまでのブログにも書いたように、社会人を辞めて学生になることが決して良い事なのかもわからないし、人に薦められるような内容でもないし、怖い人に目がたまたまあっちゃっただけだし、mrubyの公開なんて予想できないし、コントリビュータの人だって怖い人も沢山いるだろうし、たまたま周りとタイミングに恵まれていてうまくいったようにしか思えないのです。
ただ、自分が意識していたことをあげるとすると、それは「とりあえず一歩踏み出す事」「面白い事をとにかくやること」「一旦間があくと冷めるのでとにかく意識的に継続してやること」「自分の知らない事をできる人に追いつく努力を怠らない事」「自分のやっている事に誇りを持ち情熱を注ぐ事」です。これらを意識的にやっている事で損した事は今のところ無いように感じます。
この意識を変えずにこれからも取り組んでいけば、きっとまたどこかで新しいチャンスが生まれるんじゃないか、とは朧げながら感じています。そして、そのチャンスを見逃さない程度にはアンテナを張り巡らせていきたいです。きっとそのチャンスはとても面白くてワクワクさせるもので、その中で出会う事ができる人達はきっと素晴らしい人達で、そして、そのmod_mrubyの流れと同様、その流れは自分にとってきっと宝になる、と思えるからです。
最後になりますが、自分の想定からは遠くはなれた流れの中で、mod_mrubyの研究・開発にあたりお世話になった皆様、本当にありがとうございました。歳を取ってmod_mrubyの事はすっかり忘れても、皆様の事は忘れません。今はまだまだ未熟なので、恩を返す事は今のところできそうにありませんが、お世話になった皆様のtwitterアカウント名や名前は僕の心に刻まれているので、もっと修行して成長した頃に恩を返したいと思います。それまでどうか気長にお待ち下さい。