2016年を振り返る
毎年やっているので今年も振り返っていきます。
ISUCON
今年のISUCON6の運営をやりました。
思い返せば、ISUCONに初めて関わったのがISUCON4に出場してからでした。その時はまさかISUCON6で運営側に回るとは思いませんでしたが、ISUCONという素晴らしいイベントを今後も存続させるためにできることをやろうと思って運営に関わりました。
運営側は運営に必要なものを全て用意する必要があります。なので大変ではありますが、技術的にも楽しいことが多かったです。特にベンチマーカーに関してはその性質上、いくら時間をかけても完璧なものにするのは難しいので、作り甲斐があります。
社内ISUCONではGo言語の参考実装とGo言語のベンチマーカーを、ISUCON6ではGo言語の参考実装やGo言語でのベンチマーカーの一部実装などをやったのでGo言語に関する知識も増えました。もっとGo言語について知りたいと思っています。サーバー構築でAnsibleやconsulなどにも触れましたが、こちらも今後も使っていきたい技術だと思えたので今後も使っていきたいと思います。
ISUCON運営は一人ではとても終わらないので協力してくれる人が不可欠です。協力してくれる人がいるならまた運営をやってみたいと思っています。運営に関わったメンバーの中では若い方のはずなのでまたやる機会があってもおかしくないなと思っています。
私が関わった社内ISUCONとISUCON6本選に関してはリポジトリが開発当時のものがそのまま公開されています。コミットとかissueを見れば何をしていたのか全部分かります。本当にそのままなので今後のISUCON運営にとっても貴重なリポジトリになると思っています。
仕事
そういえば入社して3年過ぎました。
今年は部署異動してインフラから開発部に戻りました。入社したときは開発で入ったので、開発→インフラ→開発と戻った形になります。
今のところメンテナンスチーム・広告チームの兼任という形でpixiv本体の改善や広告周りの仕事を中心にやっています。pixivFANBOXの開発のヘルプに入ったりもしましたが。
ということで今年やった仕事で、公開してよく、分かりやすいものをいくつか書いてみると、
- エイプリルフール企画「ありがたや〜」ボタンのインフラ
- 各サービスで使用するポップアップログインのjs(ちょっとしたjsではなくて、久しぶりにjsのプロダクトを書いた)
- pixivのブックマーク機能の一部翻訳漏れ文字列の改善(ソースコードを実際に読まないとつらさが分からない系)
- pixivFANBOXのバックエンド実装とリリース作業
という感じです。もちろん他にも色々やってはいますが、ここに書けて分かりやすいのはこれくらいだと思います。
まだまだ目の前にはやらないと行けなそうな事が山積みです。もう少し頑張っていくことになりそうです。
金子本
今年書いた本ではないのですが、金子本を使って勉強する人が周りに増えています。驚いたのは金子本を読んでからエンジニアになった人がいると知れたことです。とてもうれしいです。よく考えれば1年以上前に出したので、時期的にはそういう人がいてもおかしくないのですが、言われてから気付かされました。何人の役に立てたのかは分からないですが、私が書いた本が役に立てたなら本当にうれしいことだと思います。
自分の本だと面倒な環境構築周りを全てすっ飛ばしているので、自分の本でプログラミングを経験しただけの人が、簡単に手元でISUCONの問題を試せると思ったのは(勘違いではあるけど)、本の内容としては完全に成功していると思う
— バンジー (@catatsuy) October 25, 2016
@catatsuy なるほど、確かにあの本をやっていて環境構築難しい・・と感じる瞬間はなかったですね。まだまだ勉強することは多そう・・・頑張ります('ω')
— kamikoさんはピクシブにいます (@kamiko_pixiv) October 25, 2016
自分が書いた本で勉強してエンジニアになる、可能だしやる人はいるかもしれないと思って書いたけど、実際そういう人がいると知れてうれしかった
— バンジー (@catatsuy) December 7, 2016
@catatsuy 読んだのは1年半ほど前なんですが、当時右も左も分からなかった自分にとってはとても良い入門書だったと思います
— Michael (@mic_psm) December 7, 2016
大学の後輩たちにも是非読んで欲しい本の一つです :)
本の内容は一番陳腐化しやすいスクショが既に一部陳腐化しています(スクショが少ないのは陳腐化を恐れたから)が、技術的な内容はほぼ陳腐化していません。技術的な内容の本は一般的に陳腐化しやすいですが、基本的な内容に絞ったことや、最近Mac周りの基本的な開発環境構築方法が変わっていないことなどのおかげでまだ十分通用する内容になっています。一応陳腐化しにくい内容にしたつもりだったので、今でも通用する内容であることに安心しています。
WindowsでWebアプリの開発が困難であるということを本に書いたのですが、MS公式に今までのWindowsでWebアプリ開発などを行うことが困難であり、その解決策としてBash on Ubuntu on Windowsが今年発表されたことは衝撃でした。Bash on Ubuntu on Windowsのバグがなくなって安定すれば、少しの加筆で金子本もWindowsに対応できるはずです。誰か書いてみてもいいかもしれません。ただし現時点でバグがかなり多く、仕様も安定していないので、本に安心して書けるレベルになるのは1年どころではなく時間がかかると思います。私は(少なくとも数年は)絶対にやりません。
発表
発表よりもISUCON関係でGitHubにソースコードを色々公開したので、それが対外的なものになるかな、と思います。
一応数回発表したので紹介します。
ユニクロの レジから学ぶ Goroutine #yapc8oji #yapc8ojiA /uniqlo_golang // Speaker Deck
ユニクロの レジから学ぶ goroutine / catatsuy / #yapc8oji 7.3 roomA - YouTube
ユニクロのレジのシステマチックさに感動して、Goで表現してみたという発表でした。Youtubeもあるので興味があればどうぞ。
ISUCON6本選のベンチマークでconsulを使用してクラスタを構築した話 / isucon6-night // Speaker Deck
ISUCONのベンチマーカーでconsulを使っていい感じにスケールする仕組みを作りました。最小限の設定でいい感じに動いたので是非参考にしてもらえればなと思います。
OSS貢献
少しだけあったので紹介します。
そういえばGitLabの運用方法について書いてみたら予想以上にはてブされました。
私が思った以上にGitLabは様々な人から注目されているプロダクトのようなので、また機会があれば情報発信やcontributeしたいです。
バンジー
そういえばバンジージャンプしたのでした。今でもたまにそのときの感覚を思い出します。
🍜作り
ひょんな事から粉から🍜を作りました。手間はありますが楽しかったです。
ゴールド免許
今年の免許更新でゴールド免許になりましたが、それから一度も運転していません。そろそろ運転したい気持ちもありますが、東京だと中々機会が無い…
突撃シリーズ
気付いたら突撃シリーズあまりやってなかった…
アポを取るのがなかなか大変なので強い意志がないと続けられないですね… 来年はもう少し行きたい。
まとめ
去年はこの時点でISUCONを来年やると決まっていました。今年は特にそういうのは決まっていませんが、何かおもしろい話があれば声をかけてください。
来年もおもしろい事を色々やりたいと思っています。よろしくお願いします。