a realtime chat application for developers: asakusasatellite

19
名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26 A realtime chat application for Developers: AsakusaSatellite @mallowlabs 2011226日土曜日

Upload: mallowlabs

Post on 26-Jan-2015

138 views

Category:

Technology


0 download

DESCRIPTION

名古屋 Reject 会議 #NagoyaReject の発表スライドです。

TRANSCRIPT

Page 1: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

A realtime chat application for Developers: AsakusaSatellite

@mallowlabs

2011年2月26日土曜日

Page 2: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

発表内容•自己紹介

• AsakusaSatellite の概要

•開発体制

• AsakusaSatellite の特徴• リアルタイム / D&D / デスクトップ通知 / 全文検索 / プラグイン

•開発環境• Redmine / Git / Jenkins

•まとめ

2011年2月26日土曜日

Page 3: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

自己紹介•名前

• @mallowlabs です

•特徴

•流行りもの大好き!

•Opera クラスタです!

•でも Chrome ユーザです!

•昨日大手 SIer を退職しました (流行ってるから)

2011年2月26日土曜日

Page 4: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

開発体制•コミッタ

• @mallowlabs … プログラマ(フロントエンド)

• @suer … プログラマ(バックエンド・テスト)

• @mzp … プログラマ(おもしろそうなとこ)

•遠隔地でコミュニケーション取りながら開発してます

2011年2月26日土曜日

Page 5: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

ところで…•開発者間のコミュニケーションはどうしてる?

•メール?

• × スピード感がない

• IRC?

• × サーバ立てるのがめんどい

• × 検索が弱い

• AsakusaSatellite•→ [せいかい]

2011年2月26日土曜日

Page 6: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

AsakusaStellite開発者向けのチャットアプリケーション

2011年2月26日土曜日

Page 7: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

AsakusaSatellite の特徴

•リアルタイム

•D&D ファイルアップロード

•デスクトップ通知

•全文検索

•プラグイン

2011年2月26日土曜日

Page 8: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

リアルタイム

•機能概要

•別のユーザが発言した瞬間に発言が表示される

•要素技術

•WebSocket

• em-websocket

IE Fx4 Ch Sa Op

× △ ◯ ◯ △

△ … 対応しているがデフォルト無効

特徴1

2011年2月26日土曜日

Page 9: A realtime chat application for Developers: AsakusaSatellite

名古屋 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日土曜日

Page 10: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

デスクトップ通知•機能概要

•ブラウザから Growl 風のデスクトップ通知が行える

•要素技術

•Desktop Notification API

IE Fx Ch Sa Op

× × ◯ × ×

特徴3

2011年2月26日土曜日

Page 11: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

全文検索•機能概要

•過去の発言を横断的に全文検索できる

•要素技術

•全文検索エンジン groonga

• groonga の Ruby バインディング rroonga

• rroonga の AR 風インタフェース ActiveGroonga

特徴4

2011年2月26日土曜日

Page 12: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

プラグイン•機能概要

• AsakusaSatellite の機能をプラグインで拡張できる

•プラグイン例(Twitter リンク)

•要素技術

• Rails 3 標準のプラグイン機構

vendor/plugins/as_twitter_link/lib/twitter_link.rb

特徴5

2011年2月26日土曜日

Page 13: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

標準プラグイン例•チケットリンクプラグイン• “#22” で Redmine のチケットページにリンク

•チケット作成プラグイン• 発言にRedmine のチケット作成ボタンを追加

•汎用リンクプラグイン• jenkins や hatena にリンク

•コードハイライトプラグイン• ruby::\n から始まるコードをハイライト

特徴5-2

2011年2月26日土曜日

Page 14: A realtime chat application for Developers: AsakusaSatellite

デモ

2011年2月26日土曜日

Page 15: A realtime chat application for Developers: AsakusaSatellite

名古屋 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日土曜日

Page 16: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

Redmine / Git• TiDD (チケット駆動開発)でアジャイル開発!

•チケットの無いコミットは許可しない

•→ コミットの”意図”があとからトレースできる

• bleis-hook (http://d.hatena.ne.jp/mzp/20101118/hooks)

2011年2月26日土曜日

Page 17: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

Jenkins (Hudson)•継続的インテグレーションの実現

•カバレッジを下げることを恐れて、メンバがテストを書くようになる

•ビルドを壊すことを恐れて、メンバが事前にテストを走らせるようになる

•自動で最新版をデプロイすることにより、バグの再現確認が容易になる

2011年2月26日土曜日

Page 18: A realtime chat application for Developers: AsakusaSatellite

名古屋 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日土曜日

Page 19: A realtime chat application for Developers: AsakusaSatellite

名古屋 Reject 会議 02 (#NagoyaReject) 2011/02/26

Q&A

•質問・要望ご自由にどうぞ!

• http://codefirst.github.com/AsakusaSatellite/

2011年2月26日土曜日