2013年の(主に技術的な面ので)まとめ

本エントリでは、2013年の主にエンジニアリング面での活動について、外部に公開されたリソースに基づいて、定量的・定性的なふりかえりを行います。 # 数字によるふりかえり まずは数字によるふりかえり。イベント登壇、GitHub上の活動、執筆活動を見ていきます。 ## 社外イベントでの登壇 今年は、社外での発表は以

本エントリでは、2013年の主にエンジニアリング面での活動について、外部に公開されたリソースに基づいて、定量的・定性的なふりかえりを行います。

数字によるふりかえり

まずは数字によるふりかえり。イベント登壇、GitHub上の活動、執筆活動を見ていきます。

社外イベントでの登壇

今年は、社外での発表は以下の5件(パネラーなども含めると7件)でした。去年はもう少し多かったので、あんまり話せなかったなあ。

ひとりでしゃべるという意味での登壇とはちょっと違いますが、以下のイベントにも登場しました。

  • CROSS 2013のパネルディスカッション: CROSS 2013
  • 秋のエンジニアぶつかり稽古(ペアプロ実演): 「#ぶつかり稽古」という事件について

GitHubでの活動

kentaro (Kentaro Kuribayashi)に見られる、公開リポジトリのみの数字は以下の通り。

f:id:antipop:20131230195745p:image

Fri, 28 Dec 2012 20:47:16 GMT till Sat, 28 Dec 2013 20:47:16 GMTのコントリビューションランキングに、241位でぎりぎりのっていました。

また、今年に新たに開発したソフトウェア、ライブラリ等は以下。

執筆関連

本を1冊と、雑誌特集を2回書きました。

月別ふりかえり

このブログから、技術的なことに関するエントリを取り上げて、月別にふりかえります。

1月

  • CROSS 2013
  • DCI Talk by James Copelien
  • Business Trip to Fukuoka from Jan 28 to Feb 1

CROSS 2013というイベントで「継続的なWebサービス改善」というパネルディスカッションに、パネラーのひとりとして参加することになり、当日は500ml缶ビールを3本飲みながらしゃべるという過酷ぶりでしたが、イベントとしても盛り上がったし、後につながる話(後述)もできたので、参加できてよかったと思います。引き続き、2014年のCROSSでもなんか出ることになってるみたいです。

コープさんを迎えてのDCIトークは、語りてのコープさんとなんかうまいことセッションできなくて、観客のひとりとして大いに反省したのですが、話の内容自体は非常に面白くて、帰宅するなり上記エントリをまとめたりしたほど。昨年後半から今年前半にかけてのWebアプリケーション設計上の様々な議論のうち、ひとつ先を開いた議論でした。いまもうみんな飽きたみたいになってるけど、まだ汲み尽くせていないと思っています。

2月

  • Released "MethodRepository": A Missing Part in OOP
  • Released fluent-plugin-extract_query_params 0.0.1
  • My pull request to #fluentd to support LTSV-formatted values was merged
  • More appropriate LTSV usage and fluent-plugin-extract_query_params
  • ruby-jquery: jQuery Expression Generator
  • My Presentation at #fluentd Casual Talk 2: Log Everything with Fluentd
  • Glint: Fires arbitrary TCP server processs for tests
  • Fluentd::Integration: Utilities for Integration Test against Real Fluentd Processes
  • Software and Spiritual Ability
  • Carton Conference

2月はけっこうコードをたくさん書いていたような感じがします。1月のDCIトークを受けて思いついたmethod_repositoryや、FluentdのLTSV対応を含む、Fluentd関連の様々なコード、小ネタgemなどなど。

去年に引き続き、今年はさらにあれこれとFluentdを使う機会が増えて、仕事的にも大活躍してもらいました。そのあたりの取り組みについて、Fluentd Casual #2で発表したりもしました。

あと、カヤックさんとこにお呼ばれしてなんか話すみたいな会があったので、ちょうどその頃にあれこれと考えていたことをまとめるいい機会だなと思って話した時のスライドが以下。この話も後に続くよいものだったと思います。

3月

  • Strong Parameters with Nested Objects in Rails 4
  • Vagrant Box Can be Harmful without Auto Provisioning
  • DCI Hansei Meetup #dcimeetup
  • PrePAN is Now on AWS
  • Joined CPAN-API (metacpan) Team
  • Oedo Rubykaigi 03
  • Chef cookbook for plenv
  • 書評『スマートフォンのためのUIデザイン』

3月は、仕事のレイヤがじょじょにインフラ側におりてきつつある時期だったように、ふりかえってみるとわかります。しばらく前からPHPアプリケーション開発環境のVagrant化をすすめていて、この頃あたりからは僕が直接関わっている以外のアプリについてもそれが行われつつあった時期です。

Vagrantなどの仮想化ツールそれ自体はよいものですが、前提としてコード化された構成管理がないと元も子もない。そう思って、それまでちゃんとはやってなかったChefやPuppetを本格的に触り始めたのがこのあたり。

id:shiba_yu36と一緒にやっているPrePAN - Social Reviewing for Perl Modulesというサービスを、それまでレガシーな感じだったのを、Chefで構成管理してAWSで動かすようにして、コンセプトを試してみたりもした。そんなこんなでmetacpanのチームに入ったり。

社内でもそのあたり盛り上がってきて、社内勉強会でChefについて話したりもしました。

その他、1月のDCI Meetupのフォローとして行われたDCI Hansei Meetupで、以下のスライドに基づく話をしたりしました。

4月

  • Perl QA Hackathon 2013 Tokyo Satellite
  • 書評『コーディングを支える技術』(西尾泰和・著)
  • 『入門Puppet - Automate Your Infrastructure』という電子書籍を出版しました

4月は、ほとんどエンジニアリング関連のエントリがありませんでした。なぜかというと、一番最後のエントリにある通り、本を書いていたからです。

この頃は、6月に刊行される予定のWEB+DB PRESSの原稿を書きつつ、Puppet本を同時に書いているというありさまで、なかなか忙しかったように記憶しています。Puppet本については、今年の新卒エンジニアの研修に使おうと思って、締め切りが決まっていたので、けっこう大変でした。しかし、その本も少なくとも仕事という面においては、かなり良い結果をもたらし得たと思うので、がんばってよかったなあといまとなっては思っています。

入門Puppet - Automate Your Infrastructure

入門Puppet - Automate Your Infrastructure

  • 作者: 栗林健太郎
  • 発売日: 2013/04/29
  • メディア: Kindle版
  • この商品を含むブログ (2件) を見る

また、これは仕事上のことですが、以下のような活動も行いました。

感情をなくして仕事を効率化 ペパボ、顔面白塗り制度を導入!

5月

  • Provisioning Frameworks Casual Talks Vol.1 #pfcasual
  • "Scrum Simulation with LEGO" Workshop
  • Growth Hack(グロースハック)における3点の特色について

Chef Casual的なイベントになりそうなところに、Chefだけの話でいいのか!といちゃもんをつけて、前月の『入門Puppet』について宣伝をする機会をいただいて、Puppetもいいよ!と話をするも、特によい反応を得られず悲しい思いをするという体験をしたりしました。

3月にはkdmsnrさんのレゴスクラム研修に参加して、非常に感銘を受けたので、是非社内でもやりたいと思い、人事の協力を得て、@hsbtさんといっしょに全社的にレゴスクラム研修を行い始めました。結局、全部で10回ほどやったでしょうか。まずはスクラムについて基本的な知識と、その雰囲気を伝えられたかなと思います。

レゴスクラムについては、2014年3月にペパボの会議室を使って開催されるので、興味ある方は是非ご参加ください。とてもよい研修です。

6月

  • Webサービスにおける費用対効果
  • シンガポールレポート(2013/06/06〜06/11)
  • i18n_strategy: provides a thin wrapper over Rails i18n API
  • Notes on a Trip to Singapore
  • 「WEB+DB PRESS Vol.75」特集「継続的Webサービス改善ガイド」の紹介

6月は、RedDotRubyConf 2013参加のため、シンガポールにいってきました。シンガポールはなにもかもが刺激的で、本当に素晴らしい体験になりました。一応LTもしたりして、2月に書いたライブラリについて話しました。

また、同僚らと「継続的Webサービス改善ガイド」と題して特集を書いたWEB+DB PRESS Vol.75号が刊行されました。将来に向けてよりよいサービスを提供し続けていくために必要なこと、実際に自分たちがやってきたことを率直に、かつ、実践的に書いた内容です。グレートな内容であると自負しています。

WEB+DB PRESS Vol.75

WEB+DB PRESS Vol.75

  • 作者: 栗林健太郎,柴田博志,はまちや2,常松伸哉,黒田良,川添貴生,安宅啓,松下雅和,桑野章弘,Jxck,伊藤直也,佐藤鉄平,登尾徳誠,中川勝樹,奥野幹也,近藤宇智朗,堀江幸紀,後藤秀宣,渡邊恵太,中島聡,A-Listers,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2013/06/22
  • メディア: 大型本
  • この商品を含むブログ (8件) を見る

7月

なんと、7月は技術関連のエントリがひとつもありませんでした。ではこの時期はなにもしていなかったかというとそんなこともなくて、同僚らとiOSアプリを作っていたのでした。初めてのアプリ開発だったのですが、いろいろと学ぶところが多くて楽しかった。

しかし、なんだかんだで結局アプリのリリースにまではこぎつけられなかったので、よくなかったなあと思います……。

8月

  • 野中郁次郎・他『失敗の本質』
  • 『iPhoneアプリ開発エキスパートガイド iOS 6対応』

8月は、7月に作り始めたアプリの続きをやったり、本を読んだりしていたようです。この月も、これといって技術的なアウトプットはなかったですね……。まあ、そういう時もあるでしょう。

『失敗の本質』は、学生時代以来10年以上ぶりに読み返したのですが、いま読むとそれはそれでまたいろいろ面白い本です。是非読まれることをおすすめいたします。

9月

  • Hato: A Tool to Manage Various Notification Methods
  • "Practical Vim" Helped Me Switch to Vim
  • Released fluent-plugin-hato
  • 「PHPアプリケーションの継続的バージョンアップ」という題でPHPカンファレンス2013でトークしてきた #phpcon2013
  • Released hato-plugin-twitter
  • YAPC::Asia Tokyo 2013
  • Vimに関するTipsをQiitaに書き始めた
  • これから使い始めたい人のためのVim講座 全1回

9月はカンファレンス月間。今年はついにYAPCへの登壇よりもPHPカンファレンスへの登壇を選択するということになりました。時代は変わるものですね。カンファレンスでは、直近で取り組んでいたPHPアプリのバージョンアップ戦略について話をしました。

その他、仕事であれこれ通知したいというニーズがあったので、hatoという通知管理ツールを作り始めました。もちろんfluentdと組み合わせるという使い方も想定しているので、プラグインを作ったり。これはとても便利なもので僕の関わっている仕事では使いまくっているのですが、まだまだ他に普及している感じではありません。もっと広めたいところ。

この月、忘れられないのが、ついに長年愛用していたEmacsを離れ、Vimに移行することになったこと。きっかけは『実践Vim』という本でした。とてもよい本。この本のおかげで、これまで3回ぐらい移行を試みては失敗していたのが、一発でいけたと思います。で、そのあとは例によって最適な設定を求めてひたすら.vimrcをいじりまくる日々。それはそれで楽しかったと思います。

10月

  • How to Handle Multiple X-Reproxy-URLs in Nginx
  • Preprocessing PHP Code with GCC
  • Delta - HTTP Shadow Proxy Server Written in Go
  • go-hoedown: Go-bindings for Hoedown Markdown parser
  • Released fluent-plugin-conditional_filter
  • Started Verity Project
  • Search a String within a Text Object
  • Automatic /etc/hosts management with Serf

10月は、なんといってもGoにハマった月。YAPCの時にtypoさんと話していて、彼があまりにもGo素晴らしいと連呼するので、そんなにいうならというわけでやってみたら、ハマりました。Go楽しい。プログラミングを楽しいと思うようになった時の感覚を思い出した感じがします。

前月にPHPのバージョンアップについて発表しておきながら、いろいろあって失敗したりしていたので、そのアプリのアーキテクチャをなすnginxの設定についてあれこれ思い悩んだり、GCCでPHPコードをプリプロセスすればバージョンアップが簡単になるのでは?ととち狂ってみたり、もう少し堅実な路線としてGoでshadow proxyを書いてみたりしていました。

そんなこんなでGoいいねといっていたらSerfの登場。この界隈が大きく動いた感じがして、誰よりも速く実用例を示そうと、/etc/hostsを管理する実例をコード付きで示したりもしました。

11月

  • 組織パターンを実践する
  • アジャイル開発プロセスの実証的効果検証について
  • 「#ぶつかり稽古」という事件について

前月、ずっとコードを書いていて全然本を読めなかったことと、いろいろ思うところもあって、この月はひたすら本を読んでいました。

今年は、このブログにあれこれ書いていたように、会社でスクラムを導入したりしていたので、いかにそれを成功させるかにいろいろと考えをめぐらせていました。角谷さんのご厚意によって参加したジム・コープリエンの研修を受けて、その結果を社内で実践してみたり、プロセスの効果検証について、あれこれと考えたことをまとめたりもしてみたところです。

秋のエンジニアぶつかり稽古 2013 - ペパボ技術基盤チーム | Doorkeeperという謎のイベントに登壇(?)したのですが、これはとてもおもしろいものになったと思います。内容については上記のエントリを参照していただきたいのですが、来年につながるムーブメントのきっかけを提供できたのかなーと思っています。

12月

  • Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について
  • Syllabus 0.0.2 and Specinfra
  • 最近のImmutable Infrastructureに関する議論(Orchestration編)
  • Webサービスのようなプロダクトについての議論について教えて下さい
  • WEB+DB PRESS Vol.78「特集・実践 スクラム」に寄稿しました
  • Shipped exception_notification-hato_notifier
  • 「Webサービスのようなプロダクトについての議論について教えて下さい」補遺
  • 組織論としてのスクラムについて

今年後半、技術的に最も面白かったトピックがimmutable infrastructureの流れでした。それ自体は目新しいものではなくとも、名前がつくと一気に加速するといういつものアレではありますが、その進化は驚くべきほどのスピードで進んでいます。僕も、いろいろ思うところがあったので、エントリを書いたり、PoC実装を書いたりしてみています。

また、11月ぐらいから、経営学(その中でも組織論)についてしっかりと学んでおきたいという思いが高まってきたので、前月と合わせてその分野の学術関連の本を数十冊ほど読んでいるところです。来年は、その動きをさらに加速するために、新たな取り組みをしていこうとも思っています。

また、会社の人事関連で以下のような活動を行いました。

インフラエンジニアを採用したい! | ペパボ採用担当ブログ

まとめ

今年は、コードを書くことに加えて、執筆の面でいくらかできたことがよかったと思います。来年に向けての計画もあったりするので、引き続きやっていきたいと思っております。

コードを書くことに関しては、量的にはわりとやってはいるものの、大きな仕事ができた感じがあまりしないので、そのへんは毎年思っていることではありますが、継続的な仕事をやっていきたいなあと思っています。

来年は、新たな取り組みに入ろうということで、いくぶんか技術的なアウトプットが減ることが予想されますが、それはそれとして、エンジニアとしてはまずは技術的な活動が第一なので、引き続きやっていこうと思っております。