年のはじめなので、2016年にやりたいことと2015年のまとめを書きます。
2016年にやりたいこと
まず、今年やりたいことです。
設立当時からクリアコードが大事にしていることは次の2つです。
-
継続的にフリーソフトウェアの考えを実践すること
-
ソフトウェアを継続して改良してくいくためにクリアなコードを書くこと
これらを実現するために、2015年のはじめには次のことをやりたいとしていました。
-
世の中にフリーソフトウェアの開発に関わる人を増やす
-
世の中によいコードを書く人を増やす
前者の「世の中にフリーソフトウェアの開発に関わる人を増やす」に関しては、SEゼミでOSS Hack 4 Beginners・OSS Hack Weekendというワークショップを開催することで実践しました。これらはフリーソフトウェアの開発を体験するワークショップでした。
フリーソフトウェアの開発を通じて関わる人を増やすという取り組みはあまりうまくできませんでした。サポートはしていましたが、まわりの人たちを巻き込むという点ではあまり成果はありませんでした。ただ、まったくなかったわけではなく、数人くらいは関わる人が増えました。
「Groongaで学ぶ全文検索」という定期的にユーザーとイベントをはじめたのですが、この機会も活用すればより成果があがるかもしれません。
後者の「世の中によいコードを書く人を増やす」に関しては、schooで2回目のリーダブルコードのWeb授業を開催・「リーダブルコードワークショップ」の開催・WEB+DB PRESSの新人向け特集「1年目から身につけたい! チーム開発6つの心得」の執筆という形で実践しました。実践した内容はわかりやすいのですが、それらでどの程度効果があったかを測れなかったので、成果をどう評価するかに関しては難しいところです。リーダブルコードワークショップのように直接対象者と会う機会があるものに関してはフィードバックをもらえました。フィードバック結果からは成果があったと言えます。
ブログにクリアなコードを書く方法をまとめる活動は例年通り実践していました。ただ、今年は少なかったです。今年は次のことについてまとめましたが、これもどれだけの人の役に立ったかを測る方法がないため成果があったかを評価するのは難しいです。
2016年は2015年にやりたかった次のことを強化していきます。
-
世の中にフリーソフトウェアの開発に関わる人を増やす
-
世の中によいコードを書く人を増やす
前者に関してはOSS Gateの活動と日々のフリーソフトウェアの開発を通じて実現していきます。
後者に関してはリーダブルコードワークショップは引き続き実施し、ブログに知見を言語化するという点は2015年よりも強化していきます。
2015年のまとめ
それでは、2015年のことを月ごとにふりかえります。
1月
Heroku Meetup #13 新年会で「HerokuでGroonga」と題してHerokuでGroongaを使う方法を紹介しました。この方法でHerokuでGroongaを利用している方はいるでしょうか。
PbuilderとCowbuilderの性能比較はdebパッケージ作成時間を計測した結果をまとめました。debパッケージをどうやって作成するかを検討する際に参考にしてください。
CROSS 2015 全文検索エンジン群雄割拠〜あなたが使うべきはどれだ!〜でGroongaを紹介しました。Groonga以外はすべてJavaベースの全文検索エンジンでしたが、会場にはJavaベースの全文検索エンジンを使っているユーザーと同じくらいGroonga関連プロダクトを使っているユーザーもいました。
2月
Effective Rubyという本を紹介しました。著者の主張のうち気に入らないものがあるという観点から紹介しました。
mrubyのVMのデバッグ方法をまとめました。久しぶりにデバッグしようとしたら忘れていたからです。
クリアなコードの書き方として専用の機能を使う書き方を紹介しました。初級者向けの話です。
3月
Debianのバグ報告ツールであるreportbugを使用したバグ報告の具体的な手順をまとめました。
「実践リーダブルコード」というワークショップを開催しました。「読む人が読みやすいならリーダブル」という標語を思いついたのはこのときです。
Emacs上で動くメールクライアントであるMewでHTMLで整形されたコミットメールを読む方法をまとめました。クリアなコードを書くにあたり、コミットを読むということは大事なことです。それを支援する方法の1つです。なお、クリアコードでMewでメールを読み書きしている人は1人しかいません。
新しくクリアコードに入社した横山さんがクリアコードに入社した理由をまとめました。それはフリーソフトウェアに関連することを仕事にするためです。
Software Design 4月号にDebianパッケージを追加する流れを寄稿しました。
クリアなコードの書き方としてマッチしすぎる正規表現に気をつけるとよいということを紹介しました。初心者向けの話です。
Gitでコミットメールを配信する方法をまとめました。クリアコードで使っている方法です。
起動時にパスワード認証が完了するまでUIを非表示にする、というThunderbirdの法人向けカスタマイズ事例を紹介しました。
4月
schooで2回目のリーダブルコードのWeb授業を開催しました。質疑応答でいい回答をしたものがあったので別途まとめました。「新人プログラマーにどうやってリーダブルコードについて伝えるか」についての回答です。回答は「自分がリーダブルコードを書くことによりリーダブルコードを伝える。本を読んでおけとも言わないし、そもそも『リーダブルコード』という用語も使わない。」でした。余談ですが、schooで授業していましたよね?と声をかけられることが数回ありました。
WEB+DB PRESS Vol.86の新人向け特集「1年目から身につけたい! チーム開発6つの心得」を執筆しました。
Markdownで書いたテキストをPDFに変換して納品用ドキュメントを作成する方法をまとめました。
AppVeyorというWindows用CIサービスの使い方をまとめました。
5月
公式のWindows版PostgreSQLパッケージ用の拡張機能のビルドシステムの作り方をまとめました。PostgreSQLのソースコードなしでビルドする方法です。
pg_shardとPGroongaを使ったレプリケーション対応の高速日本語全文検索可能なPostgreSQLクラスターの作り方をまとめました。
PostgreSQLアンカンファレンス@東京(2015/5/30)でPostgreSQLで日本語全文検索する方法を紹介しました。LIKE
とpg_bigmとPGroongaについて紹介しました。
6月
Red Hat系のディストリビューション用のinitrdカスタマイズツールであるDracutを紹介しました。
複数のレイアウトのキーボードを接続しながらインプットメソッドフレームワークであるFcitxを使うときに便利なツールを紹介しました。
2014年に引き続き、SEゼミの一部として学生向けにリーダブルコード勉強会を開催しました。メンターが非常に充実した勉強会となり、参加した学生・メンターの満足度も高かったです。
ConoHa上にDroongaクラスターを設置する手順をまとめました。
複数人のGitHub上のアクティビティをタイムラインで表示するためのツールfluent-plugin-github-activitiesとSharetaryを紹介しました。続編もあります。
Firefox 29で削除されたセキュリティポリシー機能と、その代替手段を紹介しました。
OverlayFSの一種であるunionfs-fuseを使う方法を紹介しました。
Groongaがキャッシュしている内容を確認する方法を紹介しました。
7月
WerckerというCIサービスのDockerバックエンドを使う方法を紹介しました。続編もあります。
SEゼミの一部としてOSS Hack 4 BeginnersというOSSの開発に参加したことがない学生向けのイベントを開催しました。このイベントもメンターが非常に充実していました。このイベントが後で登場する「OSS Gate」につながります。
AngularJSのユニットテストでつまづいた点をまとめました。
CutterというテスティングフレームワークでマルチメディアフレームワークGStreamerをどのように使っているかを紹介しました。
SEゼミのイベントがすべて終わったのでSEゼミのコンテンツ作成と進行をしてわかったことをまとめました。
マルチメディアフレームワークGStreamer 0.10から1.0へ移行する方法を紹介しました。
8月
ピクシブさんと永和システムマネジメントさん向けにリーダブルコードワークショップを開催しました。「チームメンバーのリーダブルコードを見つけて共有」することを体験するワークショップです。SEゼミでの学生向けのリーダブルコード勉強会の内容を社会人向けにアレンジしたものです。
進捗共有に必要な情報として目的、期日、現状、今後があるということをまとめました。
9月
Firefoxの独自ビルド方法を紹介しました。続編もあります。
Visual Studioなしでmingw-w64だけでWindowsのイベントログに出力する機能を実現する方法を紹介しました。
クリアコードとフリーソフトウェアとビジネスについてまとめました。
PostgreSQLで日本語全文検索を実現する拡張機能であるPGroongaがどのようにJSON検索を実装しているかを説明しました。
10月
Firefox 38以降で急にSSL/TLSのエラーが出るようになった、という問題の原因と対策を紹介しました。
Fluentdの新機能であるメモリ上の設定をダンプする方法を紹介しました。
ImageMagickを使って動作確認用画像を生成する方法を紹介しました。
認められて伸びる・やる気がでるタイプなら依頼者・ユーザーに認めてもらうという方法があるということを紹介しました。
Fluentdの新機能であるプラグインの設定項目を確認する方法を紹介しました。
コミットメール配信サービスcommit-email.infoを紹介しました。
OSS開発に参加する人を増やす取り組み「OSS Gate」を開始することにしました。
Firefox用アドオンの署名義務化に伴う、一部アドオンのMozilla Add-ons掲載取りやめについて説明しました。
Firefoxのメモリ消費の状況を定期的に監視する方法を紹介しました。
11月
Ruby on RailsでPostgreSQLとPGroongaを使って日本語全文検索を実現する方法を紹介しました。
同様に、Ruby on RailsでMySQLとMroongaを使って日本語全文検索を実現する方法も紹介しました。
Fedoraプロジェクトで共同でパッケージをメンテナンスする方法を紹介しました。
PostgreSQLカンファレンス2015でPGroongaの実装を紹介しました。
軽快で使いやすいオープンソースのメールソフトであるSylpheedのプラグインを作る方法を紹介しました。
Groonga Meatup 2015でGroonga族の最新情報を紹介しました。
12月
FluentdからApache Flume NGへレコードを送る方法を紹介しました。逆にApache Flume NGからFluentdへレコードを送る方法も紹介しました。
FirefoxのJavaScript処理系であるSpiderMonkey固有の__noSuchMethod__
機能をES6 Proxyで実現する方法を紹介しました。
Groongaプラグインを開発する方法をまとめました。
RubyKaigi 2015でRubyのテスティングフレームワークフレームワークの歴史を紹介しました。また、RubyKaigi 2015をシルバースポンサーとして応援しました。
Firefoxを意図的にクラッシュさせる方法を紹介しました。
Thunderbirdのエラーコンソールの出力結果を効率よく収集する方法を紹介しました。
Firefox用アドオンのデジタル署名の自動化方法を紹介しました。
クリアコードが公開しているFirefox用アドオンCert ImporterとFirefox ESR版の署名要求についてまとめました。
Firefox・Thunderbirdをクリーンな環境で起動する方法を紹介しました。検証時に便利です。
Sytemdのサービスの依存関係を調べるために使えるsystemd-analyze
とsystemctl
を紹介しました。
ブログにまとめられていませんが、12月は他にも、OSS Gateの立ち上げ・ジャストシステムさん向けにリーダブルコードワークショップを実施をしていました。早いところまとめておきたいところです。
まとめ
2016年にやりたいことは2015年にやりたかったことをもっとがんばるということであると宣言しました。
2015年の活動もまとめました。
2015年は発表はGroonga関係のことが多かったです。外向けの活動は発表だけでなくワークショップの実施、雑誌への寄稿などこれまでとは違った形での活動をしてきました。
ブログの内容は自分たちの知見を言語化したものよりも、ツール紹介・機能紹介の方が多かったです。2016年は知見の言語化を強化していきたいです。