Jubatus Casual Talk #4 2013年年12⽉月14⽇日

Jubatus開発者⼊入⾨門

株式会社Preferred Infrastructure
柏原秀蔵
最近よい単語を知った

2
オポ
l 

Opportunity略略してオポ  (Job Opportunityからきてるらしい)

l 

オポの事例例
l 
l 

l 

タダ飯オポ
SSDオポ

その他
l 

オポ⼒力力

l 

⽤用例例「OSSはオポ⼒力力を⾼高める」

3
⾃自⼰己紹介
l 

柏原秀蔵 (Preferred Infrastructure)

l 

Jubatus team (2012年年5⽉月頃から〜~現在)
l 

リリースマネージャ

l 

サーバ周辺のメンテナンス
l 

l 

タスクを作るために案を洗い出したり…

単体ライブラリもしくはフレームワークとして
使えるようなJubatus⽬目指して開発に参加

4	

@suma90h
github: suma
Contributors (jubatus/jubatus)

5
Contributors (jubatus/website)

6
Contributors (jubatus/website)

7
Jubatus 0.5.0 のおさらい
l 

新アルゴリズムと新機能
l 
l 

l 

バイナリデータの⼊入⼒力力に対応
jubadumpコマンド

機能改善
l 
l 

保存モデルのデータフォーマットを策定

l 

l 

クライアントライブラリ
jubakeeperからjubaproxyへ改名

リファクタリング(依存ライブラリの整理理)
l 

正規表現ライブラリをre2から⻤⿁鬼⾞車車へ

l 

pficommonを内包(移植)

Debianパッケージ化への道…!(詳しくはGoogle Groupsのログ)
8
本⽇日のお話
l 

Jubatus公開情報の紹介
l 
l 

github

l 

l 

website
github wiki

Jubatus開発スタイルの紹介

9
Jubatus公開情報の紹介
l 

皆さん、ウェブサイトとgithubはどれくらい⾒見見てますか?

l 

公式ウェブサイト
l 

l 

Google Groups(ML)
l 

l 

http://jubat.us/
http://groups.google.com/group/jubatus

Github
l 
l 

l 

https://github.com/jubatus/jubatus
https://github.com/jubatus

Github Wiki
l 

https://github.com/jubatus/jubatus/wiki

10
Jubatus website
l 

だいたいの情報は載っている
l 
l 

各アルゴリズムの使い⽅方(チュートリアル・example)

l 

開発者情報

l 

l 

インストール⼿手順

RPCクライアントのバッドノウハウ

載ってない情報もある(オポが期待される領領域)
l 

アルゴリズムを実アプリへ応⽤用する事例例

l 

お⾦金金儲けする話

l 

機械学習のデザインパターンのような話

11
Github
l 

l 

Jubatus本体プログラムの他にも、website・exampleなどリポジ
トリ多数
Watchを登録すると通知が受け取れる!
l 

(もしくはリポジトリの開発者・管理理者メンバーに⼊入ると⾃自動登録)

12
13
Github wiki
l 

https://github.com/jubatus/jubatus/wiki

14
Github wiki(続)

15
Github wiki(続)

16
開発スタイルの紹介

17
Jubatus開発スタイルの紹介
l 

定例例
l 

OSS定例例会議  毎週1回(1時間)
l 
l 

l 

前回からのTODO・チケット(issue)の差分確認
issueの仕様相談・担当者割り当て

リリース作業(⽉月1回程度度を⽬目指す)
l 
l 

⼿手分けしてパッケージの⽣生成、ウェブサイト更更新などを実⾏行行

l 

l 

リリース2⽇日前にjubatusリポジトリはコードフリーズ
なぜか⾦金金曜⽇日リリースが多い

毎⽇日
l 

個⼈人もしくは共同で作業

l 

github issue, gistやチャットを使って仕様の議論論

l 

twitter/Google Groups チェック → 返信
18
あまり表に出てこない話題
l 

⼤大規模リリース(次のメジャーバージョンアップの内容)
l 
l 

分散時(MIXやZooKeeper利利⽤用)の耐障害性の向上

l 

l 

RPCの意味論論に限界を感じる話(タイムアウト等)
1プロセスで複数モデル(インスタンス)扱えるようにしたい話

困難さ
l 

開発チームのリソースは有限

l 

項⽬目のインパクトがわかりやすいものもあれば、未知のもの多数

l 

外部からのPull Requestは歓迎したいが、メンテナンスできない
ものはマージできない

19
Jubatus 開発の課題
l 

オポ(開発チーム外からのフィードバック)と対応リソースの不不⾜足
l 

新機能追加は、仕様や選択肢を洗い出すなど、議論論・設計する作業
が多い

l 

l 

アイディアはあっても、メンテ不不能なコードを築くわけにはいかない

バグ登録オポ・フィードバックの事例例
l 
l 

l 

バグ修正Pull Request・issue
(準備中)Perl版 クライアントの作成 by @overlast さん

Jubatus team側でも受け⽌止めきれる体制・コードを構築したい
l 

「前回のカジュアルトークでいただいたご要望に対する進捗状況」

20
まとめ
l 

Jubatus開発情報の紹介
l 
l 

開発スタイルの紹介

l 

l 

Jubatus公開情報: github, ウェブ
開発の課題

Github PRオポ・貢献お待ちしています
l 

MLやgithubで相談というのもOK

l 

ユースケース・事例例があれば公開・紹介をお願いしたい

l 

機能要望は実装提案がない限り、多くの要望と共に埋もれがちです

l 

多⼤大な貢献をすると(例例:バグ修正を送る)、Tシャツのプレゼ
ントという事例例が過去に

21

Jubatus Casual Talks #2 Jubatus開発者入門