サイボウズ・ラボの光成です。 3月30日にサイボウズ・ラボユースの成果報告会がありましたのでその紹介をします。
サイボウズ・ラボユースとは
サイボウズ・ラボユースとは、日本の若手エンジニアの発掘と育成を目指す機会を提供する場として2011年に設立されました。
各自が選んだテーマで開発し、サイボウズ・ラボのメンバーがそのサポートを行います(メンター)。 開発物はオープンソースで公開することが条件で本人に帰属するのが特徴です。
発表内容
ペアリングライブラリの実装とアプリケーション開発
最初の発表は緑川志穂さんによる「Pythonによるペアリングライブラリの実装とアプリケーション開発」でメンターは私です。
ペアリングとは、公開鍵暗号技術の応用の一つであるIDベース暗号を中心に近年広く使われる演算です。 私はペアリングの理解に必要な数学やC++の解説などを行いました。
16歳ながら一人で論文や書籍を読み、がんがん実装していくので非常に驚きました(成果物)。
これは余談ですが、拙著の『クラウドを支えるこれからの暗号技術』のレビューもしていただけました。 もともとそのテキストを書くとき念頭にあったのは「自分が高校生のときに読んだら面白いと思ってもらえそうなもの」だったので実際にそういう人が現れて感激です。まさか中学生(当時)が読むとは思いませんでしたが。
構文を自在に変更できるプログラミング言語
2番目の発表は赤間仁志さんによる「ユーザが構文を自在に変更できるプログラミング言語」でメンターは川合です。
コアはJSONライクな木構造による最小限の文法しか持たないのですが、自身の構文解析器を書き換えていくことで様々な文法に対応可能なプログラミング言語です(成果物 Garbanzo)。
第57回プログラミング・シンポジウムプログラムで発表されたときより完成度があがっていました。
実際に否定構文!を導入したり、その構文を削除するデモはわかりやすくてみなさんも興味深く聞いていたようです。
並列WALによるトランザクションの高速化
3番目の発表は神谷孝明さんによる「並列WALによるPostgreSQLのトランザクション高速化に向けた取り組み」でメンターは星野です。
WALとはWrite Ahead Loggingの略でデータベースを扱うマシンの電源がいつ落ちても書き込まれたデータを正しく復旧できる仕組みです。
従来HDDの特性に合わせて最適化されていたデータベースをSSDやioDriveなどの特性を考慮し並列性を高めたアルゴリズムを導入しようという試みです。
残念ながら開発を始めた時期が遅く、まだデバッグ中で動くところまではいっていません(成果物)。 しかし今後も大学で研究をしながら継続開発される予定とのことで成果の報告が楽しみです。
拡張可能なパケット解析ライブラリ
4番目の発表は城倉弘樹さんによる「拡張可能なパケット解析のライブラリの開発」でメンターは私です。
パケット解析ツールとしてはWiresharkがお手軽で便利なGUIツールとして有名です。 それに対して、新しい構造のパケットにできるだけ簡単に対応できるようなC++用のライブラリを作りたいというのが動機です。
プログラミングを初めてまだ1年だそうですが、資料を読んだりして熱心に取り組んでいます(LibPGEN)。 彼もそうですが、開発中は「昼御飯食べるのを忘れた」というのをちらほら聞きました。若い…。
デモでは少し前にちょっとしたブームになっていたズンドコプロトコル(ズンドコキヨシまとめ)の実装例を紹介されました。
OS, FPGAによるネットワークレイテンシの低減
最後はラボユース1期生だった粟本真一さんによる「OS, FPGAによるネットワークレイテンシの低減」です。
自作OSにBSD用のネットワークドライバの必要な部分を移植して低レイテンシなARPコマンドを作ったという話です。 今後はFPGAでも実装し、速度比較も行いたいとのことです。
ラボユース生だったときは、いきなりネットワークドライバを移植しようとして失敗したのだけど、経験を積んで何が必要か把握していたので今回はうまくいったとのことです。
着実に成長していてすばらしいですね。
まとめ
参加者の方からもいろいろな質問をいただきました。 また、懇親会では第6期に応募してみようかなという方やOBの方も何人か参加され、盛り上がりました。 どうもありがとうございました。
正式な第6期サイボウズ・ラボユースの募集は4月に出す予定ですのでよろしくお願いします。