Forking Encouraged: Folk Programming, Open Source, and Social Software Development

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

    6 Favorites

    Forking Encouraged: Folk Programming, Open Source, and Social Software Development - Presentation Transcript

    1. Forking Encouraged Folk Programming, Open Source, and Social Software Development Kirrily Robert Yoz Grahame Jason Douglas Linden Lab Metaweb (creators of Second Life) (creators of Freebase)
    2. How to contribute code to an open source project • Identify something • Build attempt #3 • Enjoy fix to fix • Something’s wrong • Create patch • Find the repository with the makefile • Submit patch • Install new trendy • Who the hell • Wait for patch source control tool understands make merge to trunk • Check out anyway? • Wait some more repository • Google • Snark about • Find build • Find and apply maintainer instructions makefile fix • Start nagging • Install the right • Build attempt #9 • Meanwhile, build on build tools • WORKING APP! fix, make more • Build attempt #1 • Search source for patches • Install missing bug • Provide own dependencies • Read API docs tarballs • Build attempt #2 • Fathom API docs • Multiple anguished • Install more missing • Create fix flamewars dependencies • Test fix • Fork
    3. Please, for the sake of your project: REDUCE FRICTION
    4. How to contribute code to an open source project • Identify something • Build attempt #3 • Enjoy fix to fix • Something’s wrong • Create patch • Find the repository with the makefile • Submit patch • Install new trendy • Who the hell • Wait for patch source control tool understands make merge to trunk • Check out anyway? • Wait some more repository • Google • Snark about • Find build • Find and apply maintainer instructions makefile fix • Start nagging • Install the right • Build attempt #9 • Meanwhile, build on build tools • WORKING APP! fix, make more • Build attempt #1 • Search source for patches • Install missing bug • Provide own dependencies • Read API docs tarballs • Build attempt #2 • Fathom API docs • Multiple anguished • Install more missing • Create fix flamewars dependencies • Test fix • Fork
    5. Folk Programming is... • The social life of code • How it breeds, travels and evolves • ... especially amongst non-programmers beginning
    6. Less like this... http://flickr.com/photos/timsamoff/316400866/
    7. ... more like this http://flickr.com/photos/brighterworlds/301705464/
    8. (it’s not a new analogy)
    9. Consumption
    10. Consumption
    11. Minor Alteration
    12. Confirmation
    13. Experimentation (pt 1)
    14. Safe Failure
    15. Investigation (pt 2)
    16. Innovation
    17. Cargo cult programming is not a problem (yet)
    18. WAR ON DAUNT
    19. Folk Computing: Revisiting Oral Tradition as a Scaffold for Co-Present Communities Rick Borovoy, Brian Silverman, Tim Gorton, Jeff Klann, Matt Notowidigdo, Brian Knep and Mitchel Resnick MIT Media Lab, 2000 SIGCHI’01, March 31-April 4, 2001 http://llk.media.mit.edu/papers/folk-computing.pdf (or just type “folk computing” into your favourite search engine)
    20. • 128KB Flash • 48x32 pixels • 1-channel sound 3.15 inches • Replaceable batteries • 45 grams
    21. The i-ball editor
    22. ,' #' 9#,>'.&)./&'9#*&';#$+#,%47'C"+4'1#4'9)$&'+,'6&&.+,-'1+%"' (/&4' %"&'*&!&,%$#/+N&*',#%3$&')2'2)/6/)$&7'' "&+$' Sjors squest ’s ")4&' Eli ’s them $#9' Sangjun ’s Sangjun ’s hquest hquest Sjors ’s Jason ’s squest Ultraq#4 Eli ’s Bryce ’s lukas UltraQs t Sjors ’s squest Eli ’ s Jason ’s hquest squest #!6' T i m ’s m & m s T im ’s Eli ’ s m & m s hquest Ziwei ’s freed &'%)' Sangjun ’s hquest Sjors ’s Jhuana ’s Sacia ’s Reva ’s squest hquest Caleb ’s T im ’s John ’s hquest squest Kush ’s hquest m & m s Julian ’s A Quest Kquest broken-VMU ’s Z i w e i ’s hquest Bryce ’s Natercia ’ s Helen ’s Akiana ’s hquest hquest Najma ’s UltraQst hquest hquest Jutin Kush ’s hquest Jhuana ’s hquest Eli ’ s Reva ’s hquest Yuxin ’s hquest hquest Am y ’s hquest broken-VMU ’s brain q. Philippa ’s hquest Kush ’s Helen ’s broken-VMU ’s hquest broken-VMU ’s Kquest hquest Philippa ’s hquest T im ’s Joel ’s hquest -'%)' m & m s hquest Sacia ’s Najma ’s Kush ’s hquest Alex ’s Helen ’s hquest Kquest squest C a m a r a Natercia ’s ’s hquest hquest Leia ’s broken-VMU ’s Natasha ’s hquest Jutin hquest hquest Natalie ’s Susanna ’s hquest Z i w ei ’ s Alejandra ’s hquest hquest Kush ’s hquest Super Q hquest Eric ’s Z i w e i ’s Helen ’s hquest T im ’s Philippa ’s fre e hquest 1470 so fin e Phakamile ’s broken-VMU ’s Lukas ’s hquest hquest Sjors ’s Eli ’s my qest hquest Fekadu ’s hquest Yuxin ’s Caleb ’s broken-VMU ’s Reva ’s Sports Fekadu ’s Joel ’s hquest hquest Helen ’s hquest Sports hquest hquest Natercia ’s hquest broken-VMU ’s Alex ’s Yuxin ’s Sjors ’s Jutin hquest Reva ’s hquest hquest hquest Natercia ’s broken-VMU ’s Reva ’s hquest $)9' Sacia ’s Jutin hquest hquest Sacia ’s squest Reva ’ s Fekadu ’s squest Helen ’s Najma ’s Julian ’s hquest Sports broken-VMU ’s hquest Gilberto ’s hquest hquest C am ar a ’s Z i w ei ’ s Natasha ’s hquest hquest hquest Jason ’s hquest hquest Reva ’s Natasha ’s Sacia ’s hquest alex Q hquest squest Billy ’s Yuxin ’s broken-VMU ’s Fekadu ’s hquest Akiana ’s hquest hquest Sports adventur Am y ’s Philippa ’s Akiana ’s brain q. Reva ’s hquest Helen ’s female s John ’s Alex ’s Matt ’s hquest hquest hquest hquest hquest Adelina ’s Fekadu ’ s Amanda ’s Reva ’s Sports Najma ’s hquest Jhuana ’s hquest hquest Jhuana ’s hquest hquest Helen ’s Leandra hquest’ s Najma ’s Alex ’s hquest Philippa ’s Julian ’s hquest alex Q Sjors ’s hquest build hquest Philippa ’s hquest Fekadu ’s Ziwei ’s broken-VMU ’s so fin e Jhuana ’s Jhuana ’s hquest hquest hquest John ’s hquest hquest hquest Lillian ’s Natasha ’s Helen ’s hquest Leia ’s Kush ’s Helen ’s hquest Jason ’s hquest kewlques Reva ’s Kquest alex Q Philippa ’s hquest Sacia ’s Fekadu ’s Eli ’s hquest Helen hquest ’ s squest hquest hquest hquest Natasha ’ s Joel ’s Fekadu ’s hquest hquest Dara ’s hquest Helen ’s D ar a J hquest broken-VMU ’s Fekadu ’s Philippa ’s Kush hquest ’s hquest Sports broken-VMU ’s Kquest Eric ’s John ’s Philippa ’s Kush ’s Sjors ’s hquest Kush ’s Aquest Z i w e i ’s hquest Kquest Alex ’s hquest Kquest hquest broken-VMU ’s hquest hquest broken-VMU ’s hquest hquest Lukas ’s Yuxin ’s Helen ’s Sjors ’s Jarvis ’s Fekadu ’s Reva ’s hquest hquest hquesthquest Helen ’s hquest Sports hquest Graham ’s hquest %"+4' Eric ’s 9 Noah ’s hquest Jhuana ’s hquest Kush ’s Najma ’s Joel ’s hquest broken-VMU ’ s Am y ’s kquest Lia ’s Fekadu ’s hquest hquest hquest ghost q. Mackendy ’ s Lia Q hquest hquest Yuxin ’s Kush ’s Ziwei ’s Leia ’s hquest hquest Jarvis ’s hquest Dara ’s hquest Jhuana ’s Kush ’s Am y ’s J QU E S T D ar a Q hquest Kquest Natercia ’s Fekadu ’s Lukas ’ s brain q. Sacia ’s Jutin hquest my qest Am y ’s Natasha ’s Halima ’s hquest brain q. hquest hquest Leia ’s broken-VMU ’s hquest Noah ’s Natercia ’s Fekadu ’s Jhuana ’s hquest Lia ’s hquest Jutin Dara ’s Lia Q Sports hquest D ar a t (#//' Fekadu ’s Eric ’s Sports hquest Fekadu ’s Sports Fekadu ’s Sports Fekadu ’s Sports *'+5 Fekadu ’s Eric ’s Sports hquest Blake ’s D ar a t Jarvis ’s J QU E S T Noah ’s 4+N&' sexy Jesse ’s J ESSE Q !6/>' Jesse ’s ' ' J ESSE Q Jesse ’s J ESSE Q Jesse ’s J ESSE Q Jesse ’s Jesse ’s J ESSE Q J ESSE Q (#//' ' #*>' )$#/' !"#$%&'()'*$+,+"-.'/"0$,1"2,+"-.'-3',.'4.31$&.+",1'456,11' ?*&5 78&&'9-1-%':1,+&'-.':,#&';;;<' #,*' Adding New Dimensions to Folklore
    23. What are the easy ways to create, run and share code today?
    24. LambdaMOO > exam rube Rube Goldberg contraption (aka #6498, Rube Goldberg contraption, Rube Goldberg, and contraption) Owned by Aladdin. An incredibly complicated contraption. There is a lever on one side. A sign on the other side says "To run contraption, 'pull lever on contraption'; to add parts to contraption, first 'enter contraption'" Obvious verbs: en*ter rube g*et/t*ake rube d*rop/th*row rube pull <anything> on rube > pull lever on contraption Rosy_Guest pulls down the handle on Rube Goldberg contraption. The lever pulls on a string, releasing a steel ball high up. The ball enters a maze of passages. Somewhere deep inside, the ball hits a switch with an audible click. A large television comes to life, showing re-runs of "Gunsmoke." The sheriff's bullets fly out of the screen A Kung Fu master catches them in his teeeth. The subtitles read "I should've ordered glutinous rice chicken!" He spits out the bullets, which fly toward poor Mel Torme. Sorrow drifts over the land for the death of Mel Torme. ...and now for something completely different... A gigantic puffball bursts, filling the air with spores. A hush falls over the contraption; everything has stopped. A horde of monkeys runs all over the contraption, setting everything back sort of the way it was.
    25. What’s the power here? 1. Create your own code 2. View, clone and modify someone else’s code 3. Free, always-on, ubiquitous hosting 4. Huge array of diverse data sources/objects 5. Code creates new data for use by others
    26. The Server’d Gentry
    27. … begat…
    28. We like: ... but we want: Easy! Features! Social! Ownership! Control!
    29. Cloning on Ning
    30. Developer Cloning User Pa ion ck ag lat ing tal Ins Distribution
    31. The Child App
    32. Timeliner
    33. What makes this possible? • Create your own code • View, clone and modify someone else’s code • Free, always-on, ubiquitous hosting • Huge array of diverse data sources/objects • Code creates new data for use by others
    34. Folk programming = more people in your project
    35. Cloning.
    36. Forking.
    37. FLOSS licenses • View the code • Modify the code • Redistribute the code
    38. There is strong social pressure against forking projects. It does not happen except under plea of dire necessity, with much public self-justification, and requires a renaming. Eric S. Raymond, Homesteading the Noosphere
    39. Hosted?
    40. Hosted? Source Dev Distribution code platform
    41. Hosted? Source Dev Distribution code platform wiki mailing bug tracker lists website
    42. Hosted? Source Dev Distribution code platform wiki mailing bug tracker lists website
    43. Hosted dev environments? • Google App Engine • EC2 • Dreamwidth Dreamhack • Heroku, Kodingen, Reasonably Smart...
    44. Google App Engine
    45. Google App Engine • Free (no cost) • Python or Java • Run your apps on Google’s infrastructure
    46. Google App Engine • Free (no cost) • Python or Java • Run your apps on Google’s infrastructure • BUT... code them on your own
    47. Amazon EC2 • Servers on demand • Pre-configured • Low cost (not quite free) • Any language
    48. Dreamhack • Single project (Dreamwidth) • Shared server • Pre-configured • Free
    49. But can you clone it?
    50. But can you clone it?
    51. But can you clone it?
    52. Huge array of diverse data sources Proximity Openness Queryability
    53. Proximity High Low
    54. Proximity High • in memory Low
    55. Proximity High • in memory • local key/value store Low
    56. Proximity High • in memory • local key/value store • nearby database server Low
    57. Proximity High • in memory • local key/value store • nearby database server • web API Low
    58. Openness High Low
    59. Openness High • US Govt public domain data Low
    60. Openness High • US Govt public domain data • Creative Commons Low
    61. Openness High • US Govt public domain data • Creative Commons • Friendly TOS Low
    62. Openness High • US Govt public domain data • Creative Commons • Friendly TOS • Unfriendly TOS Low
    63. Queryability Low High
    64. Queryability Low • scanned, non-OCR documents High
    65. Queryability Low • scanned, non-OCR documents • text documents High
    66. Queryability Low • scanned, non-OCR documents • text documents • structured data High
    67. Queryability Low • scanned, non-OCR documents • text documents • structured data • well-structured data High
    68. Key points • FLOSS license • Easy cloning • Free, hosted development platform • Huge array of readily-accessed data
    69. FLOSS Cloning Hosted Data Github Y Y N N App Engine ? N Y Y Amazon EC2 ? N Y Y Dreamwidth Y N Y N
    70. • Openly licensed database • ~120M facts about 6.2M topics • Anyone can edit... including schema • Open API
    71. Open Code for Open Data http://freebaseapps.com
    72. *.freebaseapps.com
    73. Open Code
    74. Sharing Code
    75. Sharing Code
    76. Sharing Code
    77. Sharing Code
    78. Sharing Code
    79. Sharing Code
    80. Examples
    81. Data Games
    82. Data Games
    83. Data Games
    84. Data Games
    85. Data Games
    86. Data Games
    87. Data Games
    88. Social Apps
    89. Social Apps
    90. Social Apps
    91. Social Apps
    92. Social Apps
    93. Lessons Learned
    94. Reduced Friction = Increased Collaboration
    95. Collaboration → Dependencies • What happened? (diff, audit trail) • Undo the damage (revert)
    96. Collaboration → Dependencies • What happened? (diff, audit trail) • Undo the damage (revert)
    97. Collaboration → Dependencies • What happened? (diff, audit trail) • Undo the damage (revert) • Don’t break me! (versioning)
    98. is this the future?
    99. we need better Web-based tools
    100. CodeMirror http://marijn.haverbeke.nl/codemirror/ jsdifflib
    101. Editors
    102. Debugging
    103. Collaboration
    104. Collaboration • Source Control
    105. Collaboration • Source Control • Diff/Merge
    106. Collaboration • Source Control • Diff/Merge • Collaborative Editing
    107. let’s make it happen
    108. Thanks very much! • Find our slides on the OSCON site (later) • Kirrily Robert: kirrily@metaweb.com • Yoz Grahame: yoz@lindenlab.com • Jason Douglas: jason@metaweb.com

    + Kirrily RobertKirrily Robert, 3 months ago

    custom

    1324 views, 6 favs, 5 embeds more stats

    The term "Folk Computing" was coined 20+ years ago more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1324
      • 1155 on SlideShare
      • 169 from embeds
    • Comments 0
    • Favorites 6
    • Downloads 25
    Most viewed embeds
    • 102 views on http://infotrope.net
    • 63 views on http://blog.freebase.com
    • 2 views on http://embedded.dreamwidth.net
    • 1 views on http://127.0.0.1:8795
    • 1 views on http://feeds.feedburner.com

    more

    All embeds
    • 102 views on http://infotrope.net
    • 63 views on http://blog.freebase.com
    • 2 views on http://embedded.dreamwidth.net
    • 1 views on http://127.0.0.1:8795
    • 1 views on http://feeds.feedburner.com

    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