P2P Bug Tracking with SD

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Event

    P2P Bug Tracking with SD - Presentation Transcript

    1. P2P Bug Tracking with SD http://syncwith.us curl fsck.com/sd|perl; ~/sd/bin/sd SD を使った P2P バグトラッキング
    2. Hi! こんにちは
    3. I’m Jesse (obra) Jesse です
    4. I own a small software company 小さな会社の社長をしています
    5. (Best Practical)
    6. I’ve been making issue trackers since 1995 1995 年からバグトラッカーを作ってきました
    7. Our software has some bugs うちのソフトには バグがあります
    8. All software has some bugs どんなソフトでもバグはあります
    9. (All software is made of bugs) ソフトなんてバグでできているのです
    10. I spend a lot of time on airplanes... 私はよく飛行機に乗ります
    11. ...and at conferences with bad wifi ネットにつながりにくい イベントにもよく行きます
    12. I need to keep track of our bugs and our work でも、バグや仕事から目を 離すわけにはいきません
    13. I’m the boss 社長ですから
    14. I have no excuse for not doing my work 言い訳は通用しません
    15. I need to keep track of our bugs and our work even when I don’t have net access ネットがなくてもバグや仕事は 管理しないといけないのです
    16. I’ve tried everything あらゆる方法を試してみました
    17. Text files テキストファイル
    18. Text files in version control バージョン管理した テキストファイル
    19. IMAP Servers IMAP サーバ
    20. RSS Feeds RSS フィード
    21. Running RT on my laptop ラップトップで RT を走らせてみたり
    22. Keeping browsers open ブラウザを開きっぱなしにしてみたり
    23. Nothing was quite right どれもイマイチでした
    24. So we built SD そこで作ったのが SD です
    25. SD is a Bug Tracker SD はバグトラッカーです
    26. SD is a Distributed Bug Tracker SD は分散型のバグトラッカーです
    27. SD Features ( の特徴 ) Tracks bugs P2P Sync CLI Trac Sync Web UI RT Sync Scriptable Hiveminder Sync Works offline GitHub Sync Attachments Comments Google Code Sync Customizable workflow Conflict Resolution Custom properties Git integration Darcs integration
    28. Principles of distributed computing 分散コンピューティングの原理
    29. Bill Joy, Tom Lyon, Peter Deutsch and James Gosling created these ビル・ジョイらはこんなものを作りました
    30. The network is reliable ネットワークが信頼できて
    31. Latency is zero 遅延時間はゼロで
    32. Bandwidth is infinite 帯域幅は無限
    33. The network is secure ネットワークは安全で
    34. Transport cost is zero 転送料はゼロ
    35. The network is homogeneous ネットワークは均質で
    36. Topology doesn't change ネットワークの構成は変化しない
    37. There is one administrator 管理者はひとり
    38. I didn’t make those up 私にはそんなもの用意できませんでした
    39. Bill Joy, Tom Lyon, Peter Deutsch and James Gosling did 彼らは用意しましたが
    40. s ie of lac Principles l a F distributed computing 分散コンピューティングの原理
    41. Those are all LIES そんなものは真っ赤な嘘です
    42. The network is not reliable ネットワークなんて信頼できません
    43. SD isn’t network- dependent だから SD はネットワークに依存しません
    44. Latency hurts 遅延時間もひどいものです
    45. SD runs at the edge だから SD は境界上で動作します
    46. Bandwidth is always a problem 帯域幅はいつでも悩みの種です
    47. SD knows which changesets you’ve already seen だから SD はどのチェンジセット を見たか覚えています
    48. The network is insecure ネットワークは安全ではありません
    49. SD doesn’t depend on a network security layer だから SD はネットワークのセキ ュリティ層には依存しません
    50. Topology is unpredictable and fluid ネットワークの構成は予測 できませんし流動的です
    51. SD is topology- agnostic だから SD は構成不可知 論の立場をとります
    52. There is no administrator 管理者なんていません
    53. (But there are many people who think they’re administrators) そのつもりでいる人はたくさんいますが
    54. SD lets you implement policy in the centralized systems it syncs to だから SD は同期先の中央管理システム側で ポリシーを実装できるようになっています
    55. Transport costs money 転送料はタダではありません
    56. SD doesn’t use much bandwidth & can use non-network substrates だから SD はあまり帯域幅を使いません。 ネットワーク以外の下位層にも対応しています
    57. The network is heterogeneous ネットワークは均質ではありません
    58. SD is designed to sync to foreign systems だから SD は外部のシステムと同期 できるようになっています
    59. SD runs locally SD はローカルで実行できます
    60. SD plays well with others ほかのソフトともうまくつきあえます
    61. It syncs the way you do 同期の取り方は人間と同じ
    62. Clone a project’s bug database (over HTTP) (HTTP 経由で ) プロジェクトの バグデータベースのクローンを作って
    63. Work offline オフラインで作業して
    64. Pull changesets from anyone you work with 仕事仲間からチェンジセットを取ってきて
    65. Publish your database replica with rsync データベースの複製を rsync で公開
    66. Topology doesn’t matter... ネットワークの構成なんて関係ありません
    67. Don’t worry ご心配なく
    68. It won’t break それでも壊れませんから
    69. SD learns how to resolve each conflict... SD は衝突の解決策をひとつ ひとつ学んでいきます
    70. ...based on how everyone else resolves it ベースとなるのは、ほか の人がどう解決したかです
    71. Using SD (CLI) SD の使い方 (CLI)
    72. Getting Started 使ってみましょう
    73. SD Shell $ sd シェル
    74. ./
    75. Getting help $ sd help ヘルプ
    76. Creating a new project $ sd init 新規プロジェクトの作成
    77. Project settings $ sd settings プロジェクトの設定
    78. Config file $ sd config 設定ファイル
    79. Create a bug $ sd ticket create バグ情報を登録する
    80. Listing bugs $ sd ticket list バグ情報の一覧表示
    81. Show a bug $ sd ticket show バグ情報を表示する
    82. Update a bug $ sd ticket update バグ情報を更新する
    83. Log $ sd log ログ
    84. Git Integration $ git sd Git に統合
    85. Using SD (Web) SD の使い方 (Web)
    86. Web? Isn’t SD an offline tool? あれ、 SD ってオフラインツー ルじゃなかったの?
    87. Local microserver ローカルのマイクロサーバ
    88. $ sd browser
    89. Home ホーム
    90. Create a ticket チケットを登録する
    91. Search 検索
    92. Show a bug バグ情報を表示する
    93. Update a bug バグ情報を更新する
    94. Comments コメント
    95. History 履歴
    96. Working with others ほかの人と一緒に作業する場合
    97. Working with others (Using SD) ほかの人と一緒に作業する場合 (SD を利用 )
    98. Any topology ネットワークの構成は任意
    99. It doesn’t matter who you sync with 同期する相手は誰でもかまいません
    100. You get all the updates eventually そのうちすべての更新情報が届きます
    101. Cloning $ sd clone クローン
    102. clone makes a replica of someone else’s database クローンするとほかの人のデー タベースの複製を作ります
    103. Pulling $ sd pull 取得
    104. pull imports unseen changes from another database replica ほかのデータベースの複製から未見 の変更をインポートします
    105. Publishing $ sd publish 公開
    106. publish writes out a copy of your database replica for sharing データベースの複製のコピーをほかの人と共 有できるように書き出します
    107. (As SD changesets and static HTML) SD のチェンジセットと静的な HTML の形で
    108. Hackathon mode (using Bonjour) ハッカソンモード (Bonjour を使って )
    109. Publish your replica $ sd server
    110. Pull updates $ sd pull --local 更新を取得
    111. Working with others (Using other systems) ほかの人と一緒に作業する場合 ( ほかのシステムを使う )
    112. But you already have a bug tracker? もうバグトラッカーを使っていますって?
    113. No Problem! 大丈夫!
    114. I use at least two others. 私も少なくともあと 2 つ使っています
    115. I wrote at least two others. 少なくともあと 2 つ書きました
    116. We designed SD talk to foreign bug trackers Sd は外部のバグトラッカーともや りとりできるように設計しました
    117. RT
    118. RT::Client::REST (By DMITRI, DAMS & AMS)
    119. Hiveminder
    120. Net::Jifty (by SARTAK)
    121. Trac
    122. Net::Trac (by JESSE & TSIBLEY)
    123. Google Code
    124. Net::Google::Code (by SUNNAVY and FAYLAND)
    125. GitHub
    126. Net::GitHub (by FAYLAND)
    127. Lighthouse (VERY beta!)
    128. Net::Lighthouse (by SUNNAVY)
    129. Redmine (Read-only for now)
    130. Net::Redmine (by GUGOD)
    131. Want to help with Bugzilla, Jira, FogBugz or something else? Bugzilla とかも使いたい?
    132. Work with foreign replicas in a Star Topology スター構成にすれば外部の複製も使えます
    133. X An SD node can act as a gateway SD のノードはゲートウェイにもなります
    134. Clone $ sd clone クローン
    135. Clone from Google Code $ sd clone --from gcode:k9mail Google Code から
    136. Clone from RT $ sd clone --from "rt:https://rt.cpan.org|DBI|" RT から
    137. Clone from Trac $ sd clone --from trac:https://trac.parrot.org/parrot Trac から
    138. Clone from GitHub $ git sd clone --from github:miyagawa/remedie Github から
    139. SD reverse engineers a database history SD はデータベースの履歴を逆解析します
    140. Pull $ sd pull
    141. SD reverse engineers a partial database history SD は部分的なデータベースの 履歴も逆解析します
    142. Push $ sd push
    143. SD figures out local updates and sends them upstream SD はローカルの更新を見 つけて上流に送ります
    144. (Then it does a bunch of book-keeping) それからさまざまな記録をつけます
    145. So what’s that all look like in the real world? 実際の例を見てみましょう
    146. Google Code Alice’s SD Bob’s SD Create some bugs clone --from gcode:k9mail Alice’s SD makes a full copy of the k9mail from google code Someone updates ticket 12 ticket update 13 ticket create pull --from k9mail SD integrates upstream changes from Google Code since Alice ran the ‘clone’ command. push --to k9mail SD figures out what’s changed locally since the original ‘clone’ command. SD then sends any changes that Google Code hasn’t seen upstream as ticket updates. Alice’s new ticket and her updates to ticket 13 are now part of the upstream bug database in Google Code publish --to SD exports a full copy of Alice’s bug database and rsyncs alice.com:public_html/k9 it up to alice.com/k9. Anyone browsing alice.com/k9 can clone her SD replica. (Or see it in static HTML) clone --from http://alice.com/k9 Bob makes a full copy of Alice’s SD replica of the k9mail database. He’s now free to make changes to his local database replica. ticket update 45 ticket create ticket create ticket update 45 publish --to bob.com:public_html/k9 Bob publishes his full K9 bug database. Anyone browsing bob.com/k9 can clone Bob’s K9 replica. Anyone who already has a copy of Alice or Bob’s database can incorporate Bob’s new ticket and his changes to ticket 45. pull --from http://bob.com/k9 Alice’s SD pulls all previously unseen updates from Bob’s published database replica and incorporates them. If Bob's edits to ticket 45 didn't conflict, Alice's SD incorporate them. If they did conflict, Alice will be prompted to resolve the conflict.
    147. Installing SD SD のインストール
    148. It’s time to get SD up and running いよいよ SD を走らせてみましょう
    149. SD is in Perl SD は Perl で書かれています
    150. SD uses 45-90 CPAN modules 45 ~ 90 個の CPAN モジュールを使っています
    151. Are you afraid? 大変そう?
    152. Don’t be 心配ご無用
    153. I have a novel idea for a Perl application これまでの Perl アプリとは違う 新しいやり方を思いついたんです
    154. One-tweet install. インストールはつぶやき 1 回分
    155. I’m installing #SD (http://syncwith.us) after seeing @obra’s talk at #YAPCASIA! YAPCASIA で @obra の話を見て #SD (http://syncwith.us) をインストールしてる
    156. 80 bytes! I still have 60 to work with! 80 バイト !  まだ 60 バイトもありますよ !
    157. I’m installing #SD (http://syncwith.us) after seeing @obra’s talk at #YAPCASIA! curl fsck.com/sd|perl; export PATH=~/sd/bin:$PATH; sd curl fsck.com/sd|perl; export PATH=~/sd/bin:$PATH; sd
    158. You’ll need: curl, perl 5.8, C compiler 必要なのは curl, perl 5.8, C コンパイラ
    159. You won’t need: CPAN CPAN 不要
    160. You won’t need: to answer prompts 質問に答えたりする必要もなし
    161. You won’t need: to fix dependencies 依存モジュールの修正も不要
    162. SD is in Perl SD は Perl で書かれています
    163. SD uses CPAN modules. CPAN モジュールも使っています
    164. This is a blessing. ありがたいことです
    165. This is a curse. 呪いでもありますが
    166. CPAN = Dependency Hell CPAN は依存地獄です
    167. When we first built SD, we used anything we thought was useful SD を最初に作ったときは便利 そうなものを使いまくりました
    168. (The first version of SD used a SVN backend) 最初のバージョンはバックエンドに SVN を使っていました
    169. The first ~useful version of SD: 最初のバージョンがほぼ使えるように なったときはこんな感じでした
    170. 123 Dependencies 123 個の依存モジュール
    171. ...a couple hours later … 数時間後には
    172. 54 Dependencies 54 個の依存モジュール
    173. Only one needs a compiler. コンパイラが必要なのは 1 つだけ
    174. Shipwright gives us one-command install Shipwright のおかげでコマンド 1 つでイン ストールできるようになりました
    175. curl fsck.com/sd|perl export PATH=$PATH:~/sd/bin
    176. What’s that do? どうなってるのか
    177. curl
    178. perl
    179. $ head /Library/WebServer/Documents/sd open (my $tar,'|tar xz 2>/dev/null'); while (<DATA>) { print $tar $_; } close $tar; exec("cd sd-build; bin/shipwright-builder --install-base=$ENV{HOME}/sd"); __DATA__ ?I?Isd-build.tar?<is?F???_1? 䀌 yH?"#‫{$ٲ‬U???H?eH ...
    180. Shipwright installs a few Perl modules... Shipwright は Perl モジュールをいくつかイ ンストールします…
    181. ...in order 順にあげると…
    182. Scalar-List-Utils String-BufferStack Class-Accessor Class-Data-Inheritable Tree-DAG_Node Test-Simple Sub-Uplevel Test-Exception Array-Compare Test- Warn Template-Declare URI HTTP-Server-Simple Params-Util Class-Inspector File-ShareDir DBI DBD-SQLite HTML-Tagset HTML-Parser HTML-Tree Crypt- SSLeay JSON YAML-Syck JSON-XS JSON-DWIW JSON-Any Mouse Any-Moose Compress-Raw-Zlib Compress-Raw-Bzip2 IO-Compress libwww-perl HTTP- Response-Encoding WWW-Mechanize WWW-Mechanize-GZip File-Slurp Test- MockModule Net-GitHub MIME-Types Class-Singleton Params-Validate version ExtUtils-CBuilder ExtUtils-ParseXS Test-Harness File-Temp Module- Build DateTime-TimeZone List-MoreUtils DateTime-Locale DateTime File- MMagic Net-Google-Code Term-ReadLine-Perl Digest-SHA1 Digest-HMAC Net- IP Net-DNS Net-Bonjour TermReadKey UUID-Tiny XML-Atom-SimpleFeed Digest-SHA Exporter-Lite IPC-Run3 MIME-Base64-URLSafe Sub-Install Data- OptList Sub-Exporter Path-Dispatcher Module-Pluggable Time-Progress Carp- Assert Proc-InvokeEditor Test-HTTP-Server-Simple Module-Refresh Carp- Assert-More Test-LongString Test-WWW-Mechanize Test-Script-Run prophet.git Devel-StackTrace Exception-Class Error RT-Client-REST Email- Address YAML Path-Class Clone Hash-Merge UNIVERSAL-isa UNIVERSAL-can Test-MockObject Net-Jifty Lingua-EN-Inflect Text-CSV Net-Trac boolean Time- Piece Test-MockTime DateTime-Format-Natural sd.git
    183. (104 dists with our sync plugins) sync プラグイン経由で 104 個
    184. What’s wrong with SD? SD にバグがあったら?
    185. $ sd clone --from http://fsck.com/~jesse/sd-bugs
    186. Don’t want to install SD? インストールはしたくない?
    187. Point your browser at http://fsck.com/~jesse/sd-bugs/html ブラウザからでも大丈夫
    188. What’s next? SD のこれから?
    189. Indexing インデックス
    190. GPG-signed changesets GPG 署名付きのチェンジセット
    191. Actually releasing 1.0 本当に 1.0 をリリースすること
    192. Thanks! Questions? curl fsck.com/sd | perl http://syncwith.us jesse@bestpractical.com

    + obrajesseobrajesse, 2 months ago

    custom

    970 views, 0 favs, 0 embeds more stats

    SD is a new distributed issue tracking system desig more

    More info about this document

    CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

    Go to text version

    • Total Views 970
      • 970 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 3
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events