a realtime chat application for developers: asakusasatellite
DESCRIPTION
名古屋 Reject 会議 #NagoyaReject の発表スライドです。TRANSCRIPT
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
A realtime chat application for Developers: AsakusaSatellite
@mallowlabs
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
発表内容•自己紹介
• AsakusaSatellite の概要
•開発体制
• AsakusaSatellite の特徴• リアルタイム / D&D / デスクトップ通知 / 全文検索 / プラグイン
•開発環境• Redmine / Git / Jenkins
•まとめ
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
自己紹介•名前
• @mallowlabs です
•特徴
•流行りもの大好き!
•Opera クラスタです!
•でも Chrome ユーザです!
•昨日大手 SIer を退職しました (流行ってるから)
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
開発体制•コミッタ
• @mallowlabs … プログラマ(フロントエンド)
• @suer … プログラマ(バックエンド・テスト)
• @mzp … プログラマ(おもしろそうなとこ)
•遠隔地でコミュニケーション取りながら開発してます
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
ところで…•開発者間のコミュニケーションはどうしてる?
•メール?
• × スピード感がない
• IRC?
• × サーバ立てるのがめんどい
• × 検索が弱い
• AsakusaSatellite•→ [せいかい]
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
AsakusaStellite開発者向けのチャットアプリケーション
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
AsakusaSatellite の特徴
•リアルタイム
•D&D ファイルアップロード
•デスクトップ通知
•全文検索
•プラグイン
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
リアルタイム
•機能概要
•別のユーザが発言した瞬間に発言が表示される
•要素技術
•WebSocket
• em-websocket
IE Fx4 Ch Sa Op
× △ ◯ ◯ △
△ … 対応しているがデフォルト無効
特徴1
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
D&D ファイルアップロード•機能概要
•ローカルのファイルをドラッグ&ドロップで直接アップロードできる
•要素技術
• File API (HTML5)
•参考になる PDF↓http://blog.timc.idv.tw/wp-content/uploads/HTML5_AJAX_File_Upload.pdf
IE Fx4 Ch Sa Op
× ◯ ◯ ◯ ×
特徴2
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
デスクトップ通知•機能概要
•ブラウザから Growl 風のデスクトップ通知が行える
•要素技術
•Desktop Notification API
IE Fx Ch Sa Op
× × ◯ × ×
特徴3
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
全文検索•機能概要
•過去の発言を横断的に全文検索できる
•要素技術
•全文検索エンジン groonga
• groonga の Ruby バインディング rroonga
• rroonga の AR 風インタフェース ActiveGroonga
特徴4
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
プラグイン•機能概要
• AsakusaSatellite の機能をプラグインで拡張できる
•プラグイン例(Twitter リンク)
•要素技術
• Rails 3 標準のプラグイン機構
vendor/plugins/as_twitter_link/lib/twitter_link.rb
特徴5
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
標準プラグイン例•チケットリンクプラグイン• “#22” で Redmine のチケットページにリンク
•チケット作成プラグイン• 発言にRedmine のチケット作成ボタンを追加
•汎用リンクプラグイン• jenkins や hatena にリンク
•コードハイライトプラグイン• ruby::\n から始まるコードをハイライト
特徴5-2
2011年2月26日土曜日
デモ
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
開発環境•以下のツールを主に用いて開発
• Redmine• コードレビュープラグイン
• Jenkins プラグイン
• Git• bleis-hook (No ticket, No commit)
• Jenkins(Hudson)• rpec / rcov / deploy / github への push
REDMINEflexible project management
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
Redmine / Git• TiDD (チケット駆動開発)でアジャイル開発!
•チケットの無いコミットは許可しない
•→ コミットの”意図”があとからトレースできる
• bleis-hook (http://d.hatena.ne.jp/mzp/20101118/hooks)
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
Jenkins (Hudson)•継続的インテグレーションの実現
•カバレッジを下げることを恐れて、メンバがテストを書くようになる
•ビルドを壊すことを恐れて、メンバが事前にテストを走らせるようになる
•自動で最新版をデプロイすることにより、バグの再現確認が容易になる
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
まとめ•開発者向けのチャットアプリケーションを作ったよ
•チケットリンクとかコードハイライトができるよ
• HTML5 / groonga / Rails 3 を使ってできてるよ
•開発には Redmine / Git / Jenkins を使ったよ
•実は Skype を使ってコミュニケーションしたよ
• Let’s use and fork me!• http://codefirst.github.com/AsakusaSatellite/
2011年2月26日土曜日
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26
Q&A
•質問・要望ご自由にどうぞ!
• http://codefirst.github.com/AsakusaSatellite/
2011年2月26日土曜日