Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
P2P Bug Tracking with SD
                 http://syncwith.us



Jesse Vincent
Best Practical

jesse@bestpractical.com
Hi!
I’m Jesse (obra)
clkao and I own a small
   software company
(Best Practical)
I’ve been making issue
  trackers since 1995
Our software
has some bugs
All software
has some bugs
(All software
is made of bugs)
I spend a lot of time
    on airplanes...
...and at conferences
     with bad wifi
I need to keep track of
our bugs and our work
I’m the boss
I have no excuse for
 not doing my work
I need to keep track of
our bugs and our work
even when I don’t have
    Internet access
I’ve tried everything
Text files
Text files in
version control
IMAP Servers
RSS Feeds
Running RT on
  my laptop
Keeping browsers open
Nothing was quite right
So we built SD
SD is a P2P Bug Tracker
It syncs the way you do
Clone a project’s bug
database over HTTP
Work offline
Pull from anyone you
       work with
Publish your database
  replica with rsync
Topology doesn’t
    matter...
Don’t worry
It won’t break
SD learns how to
resolve each conflict...
based on how everyone
    else resolves it
But you already have a
     bug tracker?
No Problem!
SD can talk to foreign
    bug trackers
RT, Hiveminder and
 Trac work today
Google Code is next
Want to help with
Bugzilla, Github or
 something else?
Time to get SD
up and running
SD is in Perl
SD uses 45-90
CPAN modules
Are you afraid?
Are you afraid?
Don’t be
You’ll need:

curl, perl 5.8, C compiler
You won’t need:

    CPAN
You won’t need:

to answer prompts
You won’t need:

to fix dependencies
curl http://fsck.com/sd|perl
export PATH=$PATH:~/sd/bin
curl http://17h.local/sd|perl
export PATH=$PATH:~/sd/bin
Using SD (CLI)
Getting Started
SD Shell

$ sd
./
Getting help

$ sd help
Creating a new project

$ sd init
Project settings

$ sd settings
Config file

$ sd config
Mirroring a project

$ sd clone
Publishing

$ sd publish
Pulling

$ sd pull
Create a bug

$ sd ticket create
Listing bugs

$ sd ticket list
Show a bug

$ sd ticket show
Update a bug

$ sd ticket update
Log

$ sd log
Git Integration

$ git sd
Using SD (Web)
Web? Isn’t SD an
 offline tool?
Local microserver
Home
Search
Show a bug
Update a bug
History
Create a ticket
Working with others
Working with others
   (Using SD)
Any topology
It doesn’t matter who
     you sync with
You get all the updates
      eventually
Cloning

$ sd clone
Make a copy of
someone else’s
  database
Pulling

$ sd pull
Grab unseen changes
from another database
       replica
Publishing

$ sd publish
Write out your
database replica for
      sharing
(As SD changesets
 and static HTML)
Hackathon mode
 (using Bonjour)
Publish your replica

$ sd server
Pull updates

$ sd pull --local
Working with others
(Using other systems)
What other systems?
Sync with RT
Sync with Trac
Sync with Hiveminder
Sync with lots more...
(If you help write code)
Star topology
One SD node acts as a
      gateway
Clone

$ sd clone
SD reverse engineers a
   database history
Pull

$ sd pull
SD reverse engineers
partial database history
Push

$ sd push
SD figures out local
 updates and sends
  them upstream
What’s wrong with SD?
$ sd clone http://fsck.com/~jesse/sd-bugs
You don’t want to
   install SD?
Point your browser at
http://fsck.com/~jesse/sd-bugs
What’s next?
Push to Trac
Google Code support
Indexing
GPG-signed changesets
Actually releasing 1.0
Questions?

http://syncwith.us
jesse@bestpractical.com
Bonus Material
Perl and Dependencies
SD is in Perl
SD uses CPAN
  modules.
This is a blessing.
This is a curse.
CPAN
      =
Dependency Hell
123 Dependencies
...one hour later:
95 Dependencies
...another hour later
82 Dependencies
Where we are today:
42 Dependencies
Only one needs a
   compiler.
Shipwright gives us
one-command install
curl http://fsck.com/sd|perl
export PATH=$PATH:~/sd/bin
What’s that do?
$ head /Library/WebServer/Documents/sd

open (my $tar,'|tar xz 2>/dev/null');
while (<DATA>) {
    print $tar $_;
}
close ...
Then it installs some
  Perl modules...
...in order
Array-Compare            Params-Util
                                               Module-Pluggable
Carp-Assert          ...
I’m never offline. Why
do I care about P2P bug
        tracking?
...about cloud
   computing     ☔
Living in the cloud
           =
sharecropping         )
(That’s bad)
The bad old days:
Pic of sharecroppers
You farmed land you
    didn’t own...
...with tools you
couldn’t really afford
You paid for it with
part of your harvest...
It sounded like a
pretty sweet deal...
...until things got bad
(Things always got bad)
(Internet)
(Cloud)




          (Internet)
In a bad year, you got
  further in debt to
   the land owner
So, what does this have
 to do with software?
The (more recent)
  bad old days:
pic of mainframes
You ran code you didn’t
 own on hardware you
      didn’t own
Things started to get
 better in the 1980s
Pic of PCs
Users started to be
able to make choices
 about computing...
They weren’t all rosy
Pic of BSOD
Sometimes new
versions of software
   broke things...
...leaving you locked in
     to old versions
pic of win 31?
Things got ‘better’
rms
che
Now, things are getting
   worse again...
What happens when
your favorite service
    goes down?
pic of twitter being
        down
...or stops accepting
     new signups?
...or starts making
arbitrary choices about
 what’s ‘safe’ content?
...or breaks
You don’t own the
 services you use
You probably don’t
even have a contract
When a service
provider cuts you off,
      you lose
Not so secret shame:

I still need the cloud
My calendar lives at
   google.com
I make a Web 2.0 todo
   list service called
    Hiveminder.com
pic of hiveminder
☣ Using hosted apps
is going to hurt you! ☣
What about Google
Gears, Adobe Air, etc?
Great. now you can use
 your word processer
  while you’re offline!
Pic of wordperfect
Real offline apps
should not need servers
Real offline apps
should sync like you do
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
SD, a P2P bug tracking system
Upcoming SlideShare
Loading in …5
×

SD, a P2P bug tracking system

13,781 views

Published on

Published in: Technology
  • This is Amazing! He Won the Lotto Jackpot 7 Times, and Doesn't Mind Revealing His Secrets? ■■■ http://t.cn/Airf5UFH
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL eBOOK INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL eBOOK INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

SD, a P2P bug tracking system

  1. P2P Bug Tracking with SD http://syncwith.us Jesse Vincent Best Practical jesse@bestpractical.com
  2. Hi!
  3. I’m Jesse (obra)
  4. clkao and I own a small software company
  5. (Best Practical)
  6. I’ve been making issue trackers since 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 Internet access
  16. I’ve tried everything
  17. Text files
  18. Text files in version control
  19. IMAP Servers
  20. RSS Feeds
  21. Running RT on my laptop
  22. Keeping browsers open
  23. Nothing was quite right
  24. So we built SD
  25. SD is a P2P Bug Tracker
  26. It syncs the way you do
  27. Clone a project’s bug database over HTTP
  28. Work offline
  29. Pull from anyone you work with
  30. Publish your database replica with rsync
  31. Topology doesn’t matter...
  32. Don’t worry
  33. It won’t break
  34. SD learns how to resolve each conflict...
  35. based on how everyone else resolves it
  36. But you already have a bug tracker?
  37. No Problem!
  38. SD can talk to foreign bug trackers
  39. RT, Hiveminder and Trac work today
  40. Google Code is next
  41. Want to help with Bugzilla, Github or something else?
  42. Time to get SD up and running
  43. SD is in Perl
  44. SD uses 45-90 CPAN modules
  45. Are you afraid?
  46. Are you afraid?
  47. Don’t be
  48. You’ll need: curl, perl 5.8, C compiler
  49. You won’t need: CPAN
  50. You won’t need: to answer prompts
  51. You won’t need: to fix dependencies
  52. curl http://fsck.com/sd|perl export PATH=$PATH:~/sd/bin
  53. curl http://17h.local/sd|perl export PATH=$PATH:~/sd/bin
  54. Using SD (CLI)
  55. Getting Started
  56. SD Shell $ sd
  57. ./
  58. Getting help $ sd help
  59. Creating a new project $ sd init
  60. Project settings $ sd settings
  61. Config file $ sd config
  62. Mirroring a project $ sd clone
  63. Publishing $ sd publish
  64. Pulling $ sd pull
  65. Create a bug $ sd ticket create
  66. Listing bugs $ sd ticket list
  67. Show a bug $ sd ticket show
  68. Update a bug $ sd ticket update
  69. Log $ sd log
  70. Git Integration $ git sd
  71. Using SD (Web)
  72. Web? Isn’t SD an offline tool?
  73. Local microserver
  74. Home
  75. Search
  76. Show a bug
  77. Update a bug
  78. History
  79. Create a ticket
  80. Working with others
  81. Working with others (Using SD)
  82. Any topology
  83. It doesn’t matter who you sync with
  84. You get all the updates eventually
  85. Cloning $ sd clone
  86. Make a copy of someone else’s database
  87. Pulling $ sd pull
  88. Grab unseen changes from another database replica
  89. Publishing $ sd publish
  90. Write out your database replica for sharing
  91. (As SD changesets and static HTML)
  92. Hackathon mode (using Bonjour)
  93. Publish your replica $ sd server
  94. Pull updates $ sd pull --local
  95. Working with others (Using other systems)
  96. What other systems?
  97. Sync with RT
  98. Sync with Trac
  99. Sync with Hiveminder
  100. Sync with lots more...
  101. (If you help write code)
  102. Star topology
  103. One SD node acts as a gateway
  104. Clone $ sd clone
  105. SD reverse engineers a database history
  106. Pull $ sd pull
  107. SD reverse engineers partial database history
  108. Push $ sd push
  109. SD figures out local updates and sends them upstream
  110. What’s wrong with SD?
  111. $ sd clone http://fsck.com/~jesse/sd-bugs
  112. You don’t want to install SD?
  113. Point your browser at http://fsck.com/~jesse/sd-bugs
  114. What’s next?
  115. Push to Trac
  116. Google Code support
  117. Indexing
  118. GPG-signed changesets
  119. Actually releasing 1.0
  120. Questions? http://syncwith.us jesse@bestpractical.com
  121. Bonus Material
  122. Perl and Dependencies
  123. SD is in Perl
  124. SD uses CPAN modules.
  125. This is a blessing.
  126. This is a curse.
  127. CPAN = Dependency Hell
  128. 123 Dependencies
  129. ...one hour later:
  130. 95 Dependencies
  131. ...another hour later
  132. 82 Dependencies
  133. Where we are today:
  134. 42 Dependencies
  135. Only one needs a compiler.
  136. Shipwright gives us one-command install
  137. curl http://fsck.com/sd|perl export PATH=$PATH:~/sd/bin
  138. What’s that do?
  139. $ head /Library/WebServer/Documents/sd open (my $tar,'|tar xz 2>/dev/null'); while (<DATA>) { print $tar $_; } close $tar; exec(quot;cd sd-build; bin/shipwright-builder --install-base=$ENV{HOME}/sdquot;); __DATA__ ?I?Isd-build.tar?<is?F???_1?䀌yH?quot;#‫{$ۿ‬U???H?eH ...
  140. Then it installs some Perl modules...
  141. ...in order
  142. Array-Compare Params-Util Module-Pluggable Carp-Assert Params-Validate Net-DNS Class-Accessor Path-Class Sub-Exporter Class-Data-Inheritable Proc-InvokeEditor Test-Exception Class-Inspector Scalar-List-Utils Test-HTTP-Server-Simple Class-Singleton String-BufferStack Test-LongString Clone Sub-Install Test-MockObject Compress-Raw-Bzip2 Sub-Uplevel Test-MockTime Compress-Raw-Zlib TermReadKey Test-Script-Run DBI Test-Harness Test-Warn Data-UUID Test-Simple libwww-perl Devel-StackTrace Text-CSV Carp-Assert-More Digest-SHA Time-Piece DateTime-Locale Digest-SHA1 Time-Progress DateTime-TimeZone Email-Address Tree-DAG_Node HTTP-Response-Encoding Error UNIVERSAL-can Mouse Exception-Class UNIVERSAL-isa Net-Bonjour Exporter-Lite URI RT-Client-REST ExtUtils-CBuilder XML-Atom-SimpleFeed Template-Declare ExtUtils-ParseXS YAML WWW-Mechanize File-Temp YAML-Syck Any-Moose HTML-Tagset boolean DateTime Hash-Merge version DateTime-Format-Natural IO-Compress DBD-SQLite Net-Jifty IPC-Run3 Data-OptList Net-Trac JSON Digest-HMAC Path-Dispatcher JSON-XS File-ShareDir Test-WWW-Mechanize Lingua-EN-Inflect HTML-Parser - prophet.git List-MoreUtils HTML-Tree - sd.git Module-Refresh HTTP-Server-Simple Net-IP Module-Build
  143. I’m never offline. Why do I care about P2P bug tracking?
  144. ...about cloud computing ☔
  145. Living in the cloud = sharecropping )
  146. (That’s bad)
  147. The bad old days:
  148. Pic of sharecroppers
  149. You farmed land you didn’t own...
  150. ...with tools you couldn’t really afford
  151. You paid for it with part of your harvest...
  152. It sounded like a pretty sweet deal...
  153. ...until things got bad
  154. (Things always got bad)
  155. (Internet)
  156. (Cloud) (Internet)
  157. In a bad year, you got further in debt to the land owner
  158. So, what does this have to do with software?
  159. The (more recent) bad old days:
  160. pic of mainframes
  161. You ran code you didn’t own on hardware you didn’t own
  162. Things started to get better in the 1980s
  163. Pic of PCs
  164. Users started to be able to make choices about computing...
  165. They weren’t all rosy
  166. Pic of BSOD
  167. Sometimes new versions of software broke things...
  168. ...leaving you locked in to old versions
  169. pic of win 31?
  170. Things got ‘better’
  171. rms che
  172. Now, things are getting worse again...
  173. What happens when your favorite service goes down?
  174. pic of twitter being down
  175. ...or stops accepting new signups?
  176. ...or starts making arbitrary choices about what’s ‘safe’ content?
  177. ...or breaks
  178. You don’t own the services you use
  179. You probably don’t even have a contract
  180. When a service provider cuts you off, you lose
  181. Not so secret shame: I still need the cloud
  182. My calendar lives at google.com
  183. I make a Web 2.0 todo list service called Hiveminder.com
  184. pic of hiveminder
  185. ☣ Using hosted apps is going to hurt you! ☣
  186. What about Google Gears, Adobe Air, etc?
  187. Great. now you can use your word processer while you’re offline!
  188. Pic of wordperfect
  189. Real offline apps should not need servers
  190. Real offline apps should sync like you do

×