2014年振り返り

もう年明けちゃったけど、軽く振り返ってみる。今年はまぁ、なんかいろいろつらいことがあって正直エンジニアやめて実家帰ろうかと思った時期があったり、1ヶ月間くらい体調崩して死にそうだったりで踏んだりけったりだったけど今は元気です。

あと転職もしました。ついでに引っ越して部屋の広さが2.5倍くらいになりました。(でも家賃は一緒)

f:id:cubicdaiya:20150101175951p:plain

そんな感じで一時期何も手に付かない時期もあったけど、例年よりも外のプロジェクトへのPR(パッチ投稿)が多かった一年でした。その中で主な活動を振り返ってみます。

nginx

些細な変更ですが、http://nginx.org/en/CHANGESに名前が載りました。2014年はほかにも5〜6件くらいパッチを送って取り込まれてますが、スタイルレベルの非常に小さなものです。一応バグフィックス(メモリアロケーションのNULLチェック忘れ)なのでそれで載った感じでしょうか。

ちなみにnginxはバージョン管理システムMercurialで、パッチもPRではなく、MLに投函する形で送ります。その時の様子をQiitaに書いてるので参考までに。

また公式ページにあるContributing Changesを読むとよいでしょう。

ngx_lua

仕事でがっつり使ってた関係もあって何度かPRを送りました。細かいバグフィックスもあればちょっとしたAPIの追加もあります。以下はその一例。

mruby

mruby/AUTHORSに名前載せてもらえるくらいパッチ書きました。その件について去年の3月くらいに某所でプレゼンしたのを発掘してスライドをUpしてみました。今もたまにPR送ってます。

h2o

nginxみたいにサードパーティモジュール作れるようになったらガンガン作りたいです。

(ここからは自分のプロダクトです)

nginx-build

RTB広告の配信システム担当してた時期に数十台&数種類のnginxインスタンスを運用したことから生まれたnginxのビルドツール。nginxのビルドはまぁApacheとかほかのfatなソフトウェアに比べたら簡単なものですが、それでも大量のサーバにインストールするとなると考えることはいろいろあるわけです。

昔いた会社だと既に出来合いのシェルスクリプトがあって特に何も考えなくてもよかったのですが、会社が変わってそれが使えなくなり、また同じようなシェルスクリプト書くのはうんざりだったのでGoで書いてgithubにUpしました。これで会社が変わっても大丈夫。(いや、今は転職する気はまったくありませんが)

あとGo Conference 2014 autumnでも発表しました。Go一色のカンファレンスでnginxをビルドする話を延々5分間やるという今思うとかなり度胸のいる発表だった気がしますが、Goで書いたツールだからいいよね?

ngx_small_light

リリースしてから早2年と約半年が過ぎましたが、ちらほらツイートされたりPRやIssueへの報告があったりと実は知らないところで結構使われてたりするのかもしれません。あと何気にWebP対応とかしました。その甲斐もあってかWantedlyにこんなリポジトリが!

cachectl

最初は完全にISUCON4のネタっぽい感じで書いてましたが、1〜2時間ほどコーディングしてたら思いの外良いものができたのでそのまま公開。 Qiitaに投稿した記事も思った以上に注目(大げさ)が集まったようです。

slackboard

今の職場ではSlackをガッツリ使ってていろんなところからSlackに通知が飛んでくるのですが、チャンネル名が変わったのに通知を飛ばすプログラムの変更が漏れてて肝心の通知が飛んでなかったということがあって大晦日にGoで衝動書きしたサーバプログラム。こういうのを1時間ちょいで書けるあたり、Goの生産性の高さを実感できます。なお、bootstrapによる簡易的なWebUIが付属しています。

まとめ

というわけで、いろいろとつらい一年ではありましたが、その中でも最低限以上の技術的なアプトプットは出せたような気がします。 また、nginx-buildや、cachectlslackboardのようにGoでいろんなツールを書くようになったのが2014年のターニングポイントだったかなと思います。(半年くらいnginxとGoとLuaでRTB広告配信エンジン書いてた影響とも言う)

今年はいろんなプロダクトをGoでつくるぞー。

今年の目標

これは去年いろいろつらかったことと関係があるのですが、去年のはじめに人生の大きな目標を見失ってしまったので新しい目標を発見するのが今年の目標です。今年はいいことあるといいなぁ、ホントに。