2016年の振り返り

2016年もそろそろ終わりということで、毎年恒例の振り返りです。

f:id:takezoe:20161112132609j:plain

仕事関係

自分の担当しているパートはだいぶ安定してきたこともあり、機能改善や効率化がメインでした。時間的な余裕もだいぶ出てきたのでイベント活動やOSS活動などにも時間を割けるようになってきました。

また、Scalaでサービスの開発を始めてから2年以上が経過し、チームも拡大していく中で新たな課題も見えてきました。来年はそういった部分にも取り組んでいくことになりそうですが、純粋に技術的な面以外の課題も多々感じており、いろいろと考えさせられるものがあります。

社内で毎週開催している勉強会も今年もどうにか1年間継続することができました。去年は外部のゲストの方に度々お越しいただいたのですが、今年は様々な事情によりゲスト講師のお越しいただく機会が少なかったのは残念なところです。

takezoe.hatenablog.com

takezoe.hatenablog.com

ただ、社内のメンバーにお願いして、フロントエンド周りやサーバレスアーキテクチャ、Firebaseといったキャッチーな話題、Shenandoah(Javaの新しいGC)といったマニアックな話題、さらには若者によるEmojicon(サンフランシスコで開催された絵文字に関するカンファレンス)の参加レポートなど様々な発表をしていただきました。

この週次の社内勉強会はなんだかんだで3年近く継続しているのですが、毎週企画を用意するのがかなりしんどかったり、社員の増加に伴って部署毎の事情や技術領域の分散が顕著になってきているため、フォーマットの見直しを考えています。

イベント関係

今年はたくさんのイベントに参加・登壇させていただきました。

まず、2月にはデブサミ2016にピクシブ川田さんのモデレートでメルカリ久保さん、DeNA(当時)古川さんとパネルディスカッションをさせていただきました。古川会長とは前年のCROSS 2015に続いてのパネルディスカッションでしたので不思議なご縁を感じます。

takezoe.hatenablog.com

2月にはScalaMatsuriとその直後にTISさんで開催された第二回Reactive System Meetup in 西新宿に参加しました。特にReactive System MeetupではSlick3について発表させていただきました。Akka開発者のKonradさんともお話させていただきScalaパズルをプレゼントさせていただきました。

takezoe.hatenablog.com

takezoe.hatenablog.com

5月にはニューヨークで開催されたScala Daysに今年も参加してきました(CFPも応募していたのですが残念ながら落選してしまいました)。海外のGitBucketユーザの方にお会いできたり、コップ本第三版の原著に小田好先生とビルさんのサインをいただいたりなど、楽しい一時を過ごすことができました。

takezoe.hatenablog.com

takezoe.hatenablog.com

takezoe.hatenablog.com

また、今年はScala関西Summitを会社としてスポンサーさせていただき、10月に大阪に行ってきました。翌日は京都のはてなさんを訪問しScala勉強会を開催させていただきました。

takezoe.hatenablog.com

takezoe.hatenablog.com

同じく10月には弊社の主催でULTRA Beer Bashというビアバッシュ形式の大型イベントを開催しました。私自身は登壇はしなかったのですが、テクニカルセッションのアレンジを担当させていただきました。急なお願いにも関わらずご協力いただいたスピーカーの皆様本当にありがとうございました。

takezoe.hatenablog.com

最後にいつもスポンサーさせていただいているJJUG CCCですが、12月に開催された2016 Fallでは個人としても登壇させていただき、GitBucketの紹介をさせていただきました。実は今回のJJUG CCC 2016 Fallではスポンサーセッションを含めると自分含め5人も弊社の社員が登壇していました。

takezoe.hatenablog.com

この他にもTokyo Apache Drill Meetupや市ヶ谷Geek★Night、渋谷javaでも何度か発表させていただいたりなど、振り返ってみると今年はかなりアクティブにイベントに参加していたのだなと自分でも驚くばかりです。

執筆活動

昨年から翻訳していたScalaパズルが今年の2月に発売になりましたが、それ以外はあまり書きませんでした。自分で書くよりも同僚に執筆してもらう企画屋みたいなことをやっていまして、若者たちに新卒研修の記事を書いてもらったり、vimmerの同僚にターミナルテクニックの連載を書いてもらったりしました。

codezine.jp

codezine.jp

mynavi-agent.jp

また、新しく書いている本があります。こちらは来年の前半には発売になるかと思います。ちなみにScalaの本ではありません。Scalaの本はアイデアはあるのですが、いろいろ厳しくて出すのはなかなか大変です…。

Akka in Actionの翻訳の話もあったりなかったりしたんですが、やりたかったなぁ…。

OSS活動

今年もGitBucketの月1回のリリースを継続することができましが、なんといっても大きかったのはユーザインターフェースの類似性についてGitHub社とのやり取りがあったことでした。

takezoe.hatenablog.com

GitBucketはプラグインでの拡張性がそこそこ実用レベルになってきましたし、最近は海外も含めそこそこ大規模かつ実務で使っているというユーザさんが増えてきたので、来年は兼ねてよりの課題であったスケーラビリティにも注力していきたいと思っています。

また、昨年から同僚と共同で構想を練っていたScala Warriorをようやく公開することができました。これはRuby Warriorにインスパイアされて開発したScala学習用のゲームで、Scala.jsを活用して作られています。正直プログラミングよりアニメーションを作るのが大変でした。

takezoe.hatenablog.com

年末にはふと思いついてRestyというScala用のREST APIフレームワークを作り始めてみました。Scalaはモナモナしたフレームワークやライブラリが多いですが、関数型プログラミングを覚えなくても便利に使えるScala用のWebフレームワークがあったらいいんじゃないか、ついでにマイクロサービスの開発・運用時の便利機能も標準搭載してできるだけ面倒な手間をかけずに使えるようにしよう、というものです。実験的なものなので趣味としてコツコツを手を入れていきたいと思います。

takezoe.hatenablog.com

外部のプロジェクトではScalatraのScala 2.12対応、Swagger 2.0対応をしました。これはGitBucketのScala 2.12対応に必要だったので積極的に取り組んだのですが、最終的には瀬良さんや吉田さんにもいろいろと面倒見ていただきました。ありがとうございました。

takezoe.hatenablog.com

また、GitBucketはいまだにSlick2を使っているのですが、これをScala 2.12に対応させるにはSlick3に移行せざるを得ないという状況になり、苦肉の策としてblocking-slickというライブラリを作りました。一瞬Slickのorganizationでメンテしてはどうかという話も出たのですが、Slickの唯一神ことZeigerさんに瞬殺されてしまいました。まあ、Slickはいろいろ問題が多すぎるし改善の気配もないので将来的には捨てざるを得ないですね…。

takezoe.hatenablog.com

総じて昨年と比べて多くのアウトプットを出せたのではないかと思いますが、今後は自分で作っているものだけでなく、外部のプロジェクトへのコントリビュートももっと増やしていけるといいなと考えています。

英語の勉強

今年は英語力を強化したいということで、OSS活動で読み書きをすることが多いのでまずは文法を基礎からやり直そうと思い、英文法の教科書として名高い「English Grammar in Use Book」を進めていました。

English Grammar in Use Book with Answers and Interactive eBook: Self-Study Reference and Practice Book for Intermediate Learners of English

English Grammar in Use Book with Answers and Interactive eBook: Self-Study Reference and Practice Book for Intermediate Learners of English

英語で書かれているのですが、読んでいてわかりやすいですし、実用的な単語や表現が自然に身につくように考えられており、評判の良い理由もわかります。ただ、自分の場合、復習する時間をあまり取れていないのできちんと身についているかどうかというと疑問ではあります。もう少し学習のための時間を確保したいところです。

また、並行して通勤時間を利用してEnglish as Second Language Podcastを聴くというのをずっとやっていました。リスニング教材としてだけでなく、内容としても面白いエピソードが多いので楽しいです。ただ、疲れてるときに聴くとマッハで眠くなるのが難点です。海外の方と話すときに一番困るのは相手が何を言ってるのかわからんということなので、リスニング力も鍛えなければと思います。

自分の感覚としても、日本で働いていても英語話者の方との接点は増えてきており、コミュニケーション手段としての英語の重要性をますます感じます。とりあえず今のところは明確な目標はないのですが、まずは学習を継続することを第一に頑張っていきたいと思います。

まとめ

今年は仕事が落ち着いてきたこともあり、比較的アクティブにいろんなことに時間を使うことができたのではないかと思います。ただ、社内勉強会や外部での発表が多く、スライド作成などの準備にかなり時間を使っていた感があるので来年はよりコードに向き合う時間を増やせるよう活動内容を調整していきたいと思っています。