2015年の振り返り

年末ということで恒例の振り返りです。

f:id:takezoe:20151016115411j:plain

仕事関係

昨年転職してから激務が続いていましたが、会社や仕事に慣れてきたこともあってか今年は少しは落ち着いたかなと思います。今年は会社に泊まらないという目標を立てたのですが、達成することができました。その分タクシー帰宅が増えただけという噂もありますが…。

前任者から引き継いだ社内勉強会も、毎週開催しているのですが今年も一年間継続することができました。

takezoe.hatenablog.com

技術的には相変らずElasticsearchやAkkaと格闘しています。職場ではSparkも使っていますがAkkaも含めモニタリングがちゃんとできていないので来年の課題です(AkkaについてはKamonを試してみたのですがイマイチでした)。サービスの負荷やデータ量もそれなりに増えてきてバックエンドのアーキテクチャを変えたりということを何度かやっていました。データの流量やスレッドプールの制御などでいろいろと苦労しました。

Elasticsearchに関してはとにかく頻繁にバージョンアップするので付いていくのがしんどいです。データ量やクラスタの台数も増えてきましたし、バージョンアップのタイミングでついでにプラグインの入れ替えやマッピング変更などを行うことも多く、メンテナンスが毎回一大プロジェクトになってしまうのをなんとかしたいです。

また、Play 2.4、Slick 3.0への移行も行いました(まだPlay 2.3、Slick 2が残っている部分もありますが…)。会社のGitHub organizationで提供しているPlay2ハンズオンもPlay 2.4 + Slick 3.0にアップデートしました。

takezoe.hatenablog.com

Slick 3.0のDBIOActionは当初厳しいかなと思ったのですが、意外と皆適応できているみたい?Scalazも気づいたらあちこちのチームで使われ始めていました。ただ、やはりずっとJavaでやってきた方は関数型プログラミングへの拒否反応が強い気がします。

昨年は諸々手探り感があったのですが、今年は実際にサービスが形になり、日々の運用から学ぶことの多い一年でした。AWSのサービスをあれこれ触る機会が増えたり、機械学習について教授に教えていただいたりなど、これまで触れる機会のなかった分野についても知識を広げることができたのではないかと思います。

広報活動

今年は外部での発表は1月のCROSS 2015でのパネルディスカッションと、2月にスマートニュースさんで開催された「実戦での Scala 〜6つの事例から知る Scala の勘所〜」、あとは渋谷javaで二度ほどLTをさせていただいたくらいでしょうか。

takezoe.hatenablog.com

takezoe.hatenablog.com

こういった活動は業務の一環でもあるのですが、数としてはちょっと少なかったかな、という感があります。ただ、スマートニュースさんでの講演がきっかけで、マイクロサービスというキーワードで取材をしていただいたり、サイボウズさんの社内勉強会でお話しさせていただいたりしました。

blog.cybozu.io

html5experts.jp

また、アットウェアさんのScala先駆者インタビューという企画でSIerでのScalaの導入に苦労した話や、現職でのScalaの導入事例などについてお話しさせていただきました。

takezoe.hatenablog.com

来年はScalaMatsuriのCFPが落ちてしまいましたが、こういった外部での広報活動も仕事のひとつなので機会があれば積極的に対応していきたいと思います。

Scala Days行ってきた

サンフランシスコで開催されたScala Days 2015に参加してきました。

takezoe.hatenablog.com

takezoe.hatenablog.com

takezoe.hatenablog.com

takezoe.hatenablog.com

実際のところ、セッションで得られる情報だけであればわざわざ海外まで行かなくても…という気がしました(どのTechカンファレンスも大体そうかもしれませんが)。やはり世界中のScalaユーザと交流できるところに参加する意義があるのだと思いますが、自分の英語力だとなかなか意思疎通が難しくかなり課題感がありました。

執筆活動

以前から一度書籍の翻訳をやってみたいと思っていたのですが、チャンスがあり、Scala Puzzlesという書籍の翻訳をやらせていただきました。今は最終的な校正をしているところで、2月には発売になるかと思います。拙い英語力と限られた時間の中での作業でしたが、ひとつ夢が叶いました。

takezoe.hatenablog.com

また、日経ソフトウェアさんで半年間Scalaの連載をやらせていただいた他、マイナビニュースさんでのイマドキのIDE事情も地味に継続しています。IDE連載は昨年は年3本だったのですが、今年も結局3本しか書くことができませんでした。200回まで続けたいという目標があるので来年はもう少し書きたいところです。

あと、執筆関連の事務処理にMisocaという請求書作成サービスを使い始めました。

takezoe.hatenablog.com

印影を貼り付けられたり、請求書だけでなく見積書や納品書の作成することができたり、請求書を郵送することができたり(しかも納品書を同封するオプションもある!)と細かいところまで気が利いていて非常に素晴らしいサービスです。郵送は実費+¥100(納品書を同封すると+¥30)ですが、事務処理の負担が1/10以下になったので十分すぎるほど元が取れています。

OSS活動

昨年はOSS活動が停滞してしまいましたが、今年はそれなりに活発さを取り戻せたのではないかと思います。

GitBucketは今年も月1リリースを継続できたことに加え、新しいMarkdownパーサとしてmarkedjやマイグレーションツールであるsolidbaseを作ったり、Bootstrap3への移行などを行いました。

takezoe.hatenablog.com

コントリビュータの方からもたくさんのプルリクエストをいただきました。特にnazokingさんにはAPI周りについて多大な貢献をいただいています。いつもありがとうございます。

また、プラグイン機構が形になったこともあり、プラグインを作ってくださる方もちらほらと見かけるようになりました。McFoggyさんによってgitbucket community pluginsというGitBucketプラグインのコミュニティサイトも立ち上がるなど少しずつ広がりを見せはじめています。

takezoe.hatenablog.com

ただ、ユーザが増えるにつれ以前から言われていたH2のデータが壊れやすいという点が問題として表面化してきているのでデータをMySQLなどの外部DBにも保存できるようにするための対応を進めていきたいと思っています。

あとは細かいところだとelasticsearch-hadoopのバグをいくつか直してプルリクしたり(マージしていただきました)、Atomのパッケージを作ったりとかしてました。

takezoe.hatenablog.com

takezoe.hatenablog.com

来年やりたいこと

Scalaに関しては最近はライブラリやフレームワークもモナモナしたものやマクロを活用したものが増えてきているので、そういうものに手を出すためにも自分のScala力をもっと上げていきたいです。それとWebも特にフロント周りについては最近全然ついていけてないのでその辺を埋めておかないといけないなと思っています。

あとはやはり英語ですね…。読み書きもまだまだスピードが出ませんし、会話となるとてんでダメなので、修行する必要性をひしひしと感じています。

本や記事を書いたりOSS的な活動をする余裕はなんとか作れるようになってきましたが、まだまだやりたいことに対して十分な時間を取れているとは言い難い状況なので、もう少し時間の使い方をうまくコントロールできるようにしたいです。とはいえ、サービスを運用していると業務の繁忙期が読みづらく、まとまった時間を計画的に確保しづらいのですが、うまいこと折り合いをつけていかないといけないですね。