Date post: | 12-Nov-2014 |
Category: |
Technology |
Upload: | alex-bayley |
View: | 4,584 times |
Download: | 5 times |
Forking EncouragedFolk Programming, Open Source, and Social Software Development
Kirrily RobertJason Douglas
Metaweb(creators of Freebase)
Yoz GrahameLinden Lab
(creators of Second Life)
How to contribute code to an open source project• Identify something
to fix• Find the repository• Install new trendy
source control tool• Check out
repository• Find build
instructions• Install the right
build tools• Build attempt #1• Install missing
dependencies• Build attempt #2• Install more missing
dependencies
• Build attempt #3• Something’s wrong
with the makefile• Who the hell
understands make anyway?
• Google• Find and apply
makefile fix• Build attempt #9• WORKING APP!• Search source for
bug• Read API docs• Fathom API docs• Create fix• Test fix
• Enjoy fix• Create patch• Submit patch• Wait for patch
merge to trunk• Wait some more• Snark about
maintainer• Start nagging• Meanwhile, build on
fix, make more patches
• Provide own tarballs
• Multiple anguished flamewars
• Fork
REDUCE FRICTION
Please, for the sake of your project:
How to contribute code to an open source project• Identify something
to fix• Find the repository• Install new trendy
source control tool• Check out
repository• Find build
instructions• Install the right
build tools• Build attempt #1• Install missing
dependencies• Build attempt #2• Install more missing
dependencies
• Build attempt #3• Something’s wrong
with the makefile• Who the hell
understands make anyway?
• Google• Find and apply
makefile fix• Build attempt #9• WORKING APP!• Search source for
bug• Read API docs• Fathom API docs• Create fix• Test fix
• Enjoy fix• Create patch• Submit patch• Wait for patch
merge to trunk• Wait some more• Snark about
maintainer• Start nagging• Meanwhile, build on
fix, make more patches
• Provide own tarballs
• Multiple anguished flamewars
• Fork
Folk Programming is...
• The social life of code
• How it breeds, travels and evolves
• ... especially amongst non-programmersbeginning
Less like this...
http://flickr.com/photos/timsamoff/316400866/
... more like this
http://flickr.com/photos/brighterworlds/301705464/
(it’s not a new analogy)
Consumption
Consumption
Minor Alteration
Confirmation
Experimentation (pt 1)
Safe Failure
Investigation (pt 2)
Innovation
Cargo cult programming is not a problem
(yet)
WARON
DAUNT
Folk Computing: Revisiting Oral Tradition as
a Scaffold for Co-Present CommunitiesRick 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)
3.15 inches
• 128KB Flash
• 48x32 pixels
• 1-channel sound
• Replaceable batteries
• 45 grams
The i-ball editor
!"#$#!%&$' ()#$*+,-' #' ./#,&0' #,*' %"&,' 1#+%' 2)$' %"&' 34&$' %)'
!),,&!%' 1+%"' #,)%"&$' +54)!6&%7' 8%' %"#%' .)+,%0' %"&' .$)-$#9'
:39.4');&$'%)'%"&',&1'+54)!6&%0'*&/&%&4'+%4&/2'2$)9'%"&')/*'+5
4)!6&%0' #,*' !),%+,3&4' &<&!3%+,-' #2%&$' %"&' :39.' (/)!67' ' =%'
+99&*+#%&/>' "+%4' #' ?$&4%#$%@' (/)!60' !#34+,-' %"&' 1")/&'
.$)-$#9'%)'$&.&#%'),'%"&',&1'+54)!6&%7''
A)9.3%#%+),#//>0' ?:39.@' +4' #' ;&$>' !)9./&<' ).&$#%+),7'
B&4+-,+,-' +%' #4' #' .$+9+%+;&' /&%' !"+/*$&,' !),4%$3!%' 9#,>'
6+,*4')2'+5(#//'.#44+,-'-#9&4'1+%"'$&/#%+;&'&7''
Designing for Conservatism and Dynamism C)&/6&,'!#//4'!),4&$;#%+49'#,*'*>,#9+49'?%"&'%1+,'/#14')2'
2)/6/)$&'.$)!&44@'#,*'4#>4' %"#%'?!),4%#,%'!"#,-&0';#$+#%+),'
1+%"+,' #' %$#*+%+),' D+4E' #' !&,%$#/' 2#!%' )2' /+2&' 2)$' 2)/6/)$&@'
FGHIHJ7''
K&' 1#,%&*' %)' 43..)$%' %"&' 6+,*' )2' ?;#$+#%+),' 1+%"+,' #'
%$#*+%+),@'%"#%'),&'1+%,&44&4'+,'43!"'2)/6'-#9&4'#4'L#$(/&4'
)$'C#-7'C"+4'9&#,%'%"#%'.&)./&'4")3/*'(&'#(/&'%)'*)!6'%"&+$'
+54)!6&%'%)'#'MA0').&,'3.'#,'+5(#//'%"&>'1&$&'.#44&*'1")4&'
23,!%+),#/+%>'%"&>'#*9+$&*0' %+,6&$'#$)3,*'1+%"'%"&'.$)-$#9'
+,'%"&'+5(#//'&*+%)$0'#,*'%"&,'4#;&'%"+4'9)*+2+&*';&$4+),'(#!6'
%)'%"&+$' +54)!6&%7'K&'+9#-+,&*'%"+4'1)3/*'&,#(/&'.&)./&'%)'
+/>'9#6&';#$+#%+),4')2'.).3/#$' +5(#//4'1+%")3%'"#;+,-' %)'
3,*&$4%#,*' %"&+$' 1)$6+,-4' &,)3-"' %)' $&(3+/*' %"&9' 2$)9'
4!$#%!"7'
B3&' %)' #' *&4+-,' %$#*&5)220' 1&' 1&$&' ,)%' #(/&' %)' -&%' %"+4'
?93%#%+),@' 43..)$%' +9./&9&,%&*' 2)$' %"&' 2+$4%' +5(#//'
!),2&$&,!&'%$+#/7'A)993,+!#%+),'(&%1&&,'%1)'!),,&!%&*'+5
4)!6&%4' %3$,&*')3%' %)'(&'2#+$/>'4/)17'K&'/+9+%&*'+5(#//'4+N&'
%)' OGP' (>%&4' %)' &,43$&' +5(#//4' !)3/*' (&' .#44&*' Q3+!6/>'
&,)3-"' %)' 6&&.' .#44+,-' -#9&4' /+;&/>' #,*' %)' 6&&.' +5(#//'
&<!"#,-&4' 4.),%#,&)347' C"&' OGP5(>%&' /+9+%#%+),' #/$&#*>'
!),4%$#+,&*' %"&' #9)3,%' )2' #,+9#%+),' #,*' (&"#;+)$#/'
!)9./&<+%>'&#!"'+5(#//'!)3/*'&<"+(+%7'L#6+,-'#,'+5(#//'?*&5
!)9.+/#(/&@' R' #(/&' %)' (&' 3./)#*&*' 2$)9' #,' +54)!6&%' #,*'
$&4%)$&*' %)' 34&$5&*+%#(/&' 2)$9' R' 1)3/*' "#;&' $&Q3+$&*'
4#!$+2+!+,-' 9)$&' +5(#//' &<.$&44+;&,&44' +,' %"&' 4&$;+!&' )2'
(#!6-$)3,*'./39(+,-7''
S+,!&'1&'!)3/*',)%'43..)$%'93%#%+),0'1&')22&$&*' +,4%&#*'#'
4&%')2'&*+%#(/&'4#9./&'+5(#//4'2)$'.&)./&'%)'34&'%)'-&%'4%#$%&*7''
T)1&;&$0' 3.),' $&;+&1' )2' #//' %"&' +5(#//4' #3%")$&*' #%' %"&'
!),2&$&,!&0'1&'1&$&'3,"#..>'1+%"'%"&'#9)3,%')2'+,2/3&,!&'
%"&4&' 4)9&1"#%' #$(+%$#$+/>' !")4&,' +5(#//4' "#*7' C"+4' $+46&*'
.3%%+,-'34'+,';+)/#%+),')2'#,)%"&$'6&>'2)/6/)$&'$&Q3+$&9&,%U'
1"#%'!),4%+%3%&4'/&-+%+9#%&'2)/6/)$&'*)&4',)%'-&%'*&%&$9+,&*'
(>'4)9&'!&,%$#/'#3%")$+%>'FV$+,-0'GHWXJ7''
82%&$'+9./&9&,%+,-'1")/&',&1'!/+&,%54&$;&$'#$!"+%&!%3$&'2)$'
%"&'+5(#//'&*+%)$40'1&'43!!&4423//>'#**&*'93%#%+),'!#.#(+/+%>'
2)$' %"&' 4&!),*' +5(#//' %$+#/' #%' %"&'Y5W' 4!"))/7'Z)10'1"&,'#'
4%3*&,%'#%'#'MA'4&/&!%&*'#,'+5(#//'),'%"&+$'+54)!6&%'%)'&*+%0'#'
!).>' )2' %"&' 3,!)9.+/&*' 4)3$!&' !)*&' 1#4' %$#,4.#$&,%/>'
3./)#*&*'2$)9'#'!&,%$#/'4&$;&$7'C"+4'9&#,%' %"#%'&*+%#(/&' +5
(#//' 4)3$!&' !)*&' *+*' ,)%' !),439&' #,>' )2' %"&' .$&!+)34' +5
4)!6&%'%)'+54)!6&%'!)993,+!#%+),'(#,*1+*%"7''
8%'%"&'4!"))/0'9)$&'%"#,'),&'%"+$*')2'#//'+5(#//4'!$&#%&*'1&$&'
93%#%+),4' )2' )%"&$' #/$&#*>5&<+4%+,-' +5(#//40' 43--&4%+,-' %"#%'
%"+4' !#.#(+/+%>' 1#4' 34&23/7' S)9&' +5(#//4' +,4.+$&*' 93/%+./&'
-&,&$#%+),4')2'93%#%+),47'[+-3$&'X'4")14'#';+43#/+N#%+),')2'
")1'),&'+5(#//'93%#%&*0'1"&$&'%"&')$+-+,#/'+4'+,'%"&'!&,%&$0'
%"&'93%#%+),4'),'+%'#$&'+,'%"&'43$$)3,*+,-'$+,-0'93%#%+),4'),'
93%#%+),4'#$&'+,'%"&',&<%'$+,-0'#,*'4)'),7''
\/%+9#%&/>0' %"&$&'1&$&'HW'*+22&$&,%' +5(#//4' %"#%'"#*'#%' /%'
),&'93%#%+),'),'%"&9'1"&$&'4)9&),&')%"&$'%"#,'%"&'+5(#//]4'
)$+-+,#/'#3%")$'34&*'%"#%'+5(#//'#4'%"&'(#4+4'2)$'#',&1'),&')2'
"+4' )$' "&$' )1,7' C"&4&' +5(#//4' 1&$&' 93!"' 9)$&' ,39&$)34'
%"#,'%"&'"#/25*)N&,'4#9./&'+5(#//4'.&)./&'34&*'+,'%"&'+,+%+#/'
%$+#/0' %"&>'$&.$&4&,%&*'#'($)#*&$'$#,-&')2'#3%")$40'#,*'%"&>'
1&$&' .#$%' )2' #,' ).&,' 4>4%&9' 1"&$&' #,>),&' #%' #,>' %+9&'
*3$+,-' %"&' %$+#/' !)3/*' !$&#%&' #,' +,2/3&,%+#/' +5(#//' ),'1"+!"'
9#,>'.&)./&'9#*&';#$+#,%47'C"+4'1#4'9)$&'+,'6&&.+,-'1+%"'
%"&'*&!&,%$#/+N&*',#%3$&')2'2)/6/)$&7''
'
Sjors ’ ssquest
Eli ’sthem
Sangjun ’ shquest
Sangjun ’s
hquest Sjors ’ssquestJason ’s
Ultraq#4
Eli ’slukas
Bryce ’ sUltraQs t
Sjors ’ ssquest Eli ’ s
hquestJason ’ s
squest
T i m ’s
m & m s
T i m ’ sm & m s
Eli ’ shquest
Ziwei ’sfreed
Sangjun ’ shquest Sjors ’ s
squestJhuana ’s
hquestReva ’ shquest
Sacia ’ s
squestCaleb ’ shquestT i m ’ s
m & m s
John ’s
A QuestKush ’s
KquestJulian ’ shquest broken-VMU ’ s
hquestZ i w e i ’shquest Natercia ’ s
JutinBryce ’ s
UltraQstAkiana ’s
hquestHelen ’shquest
Najma ’s
hquestKush ’shquest
Jhuana ’ shquest Eli ’ s
hquestReva ’ shquest Yuxin ’s
hquestA m y ’sbrain q.
broken-VMU ’ shquest Philippa ’s
hquestKush ’ sKquest
broken-VMU ’ shquest
Helen ’ s
hquestbroken-VMU ’s
hquestPhilippa ’s
hquestT i m ’ s
m & m sJoel ’ shquestNajma ’ s
hquestSacia ’ ssquest
Kush ’ sKquest
Alex ’ shquest
Helen ’ shquest
C a m a r a ’ s
hquestNatercia ’ s
JutinLeia ’ shquest
broken-VMU ’ shquest
Natasha ’s
hquestNatalie ’shquest
Susanna ’ shquest
Z i w e i ’ shquest
Alejandra ’ sSuper QKush ’ s
hquest Eric ’shquestHelen ’ s
hquestZ i w e i ’s
fre eT i m ’ s
1470Philippa ’s
so fin e Phakamile ’ s
hquestbroken-VMU ’ s
hquestLukas ’ smy qest
Eli ’shquest
Sjors ’shquest Fekadu ’ s
SportsYuxin ’ s
hquestCaleb ’shquest
Reva ’shquest
broken-VMU ’shquest
Joel ’ shquest
Fekadu ’sSports
Helen ’ shquest
Natercia ’ sJutin
broken-VMU ’ shquest
Yuxin ’ shquest
Alex ’ shquest
Sjors ’ shquest
Reva ’ s
hquestNatercia ’sJutin
broken-VMU ’shquest
Reva ’ shquestSacia ’s
squestSacia ’ ssquestReva ’ s
hquestFekadu ’ s
SportsHelen ’ shquest
Najma ’shquest
Julian ’ s
hquestbroken-VMU ’s
hquestGilberto ’ s
hquestC a m a r a ’shquest
Z i w e i ’ shquest
Natasha ’shquest
Jason ’ salex Q
Reva ’ shquest
Natasha ’shquest
Sacia ’ ssquest Billy ’ s
hquestYuxin ’ s
hquestbroken-VMU ’ s
hquestFekadu ’ sSports
Akiana ’ sadventurA m y ’s
brain q.Akiana ’ sfemale s
Philippa ’shquest
Reva ’shquest
Alex ’ shquest
Helen ’shquest
John ’shquest
Matt ’ shquest
Adelina ’s
hquestFekadu ’ s
SportsReva ’ shquest
Amanda ’ shquest
Jhuana ’ shquest
Najma ’ shquest
Jhuana ’shquestHelen ’ s
hquestLeandra ’ s
hquestAlex ’ salex Q
Najma ’ shquest
Philippa ’s
hquestJulian ’ s
buildSjors ’ shquest
Philippa ’ sso fin eFekadu ’ s
hquestZiwei ’ s
hquest
broken-VMU ’ s
hquestJhuana ’ s
hquestJhuana ’ s
hquestJohn ’ shquest
Lillian ’shquest Natasha ’s
hquestHelen ’ shquest
Leia ’ skewlques
Kush ’s
KquestJason ’ salex Q
Helen ’ s
hquestReva ’ s
hquestSacia ’ ssquest
Philippa ’shquest
Eli ’ s
hquestFekadu ’ s
hquest Helen ’ shquest Natasha ’ s
hquest
Joel ’ s
hquestFekadu ’ s
hquest Dara ’sD a r a J
Helen ’ shquest broken-VMU ’ s
hquestPhilippa ’s
hquestFekadu ’s
SportsKush ’ sKquest
broken-VMU ’ s
hquestEric ’ s
hquestPhilippa ’s
hquestJohn ’ sAquest
Kush ’sKquest
Kush ’ sKquest
Sjors ’shquest
Z i w e i ’s
hquestAlex ’ s
hquestbroken-VMU ’ shquest
broken-VMU ’ shquest Lukas ’ s
hquestYuxin ’ s
hquestHelen ’shquest
Sjors ’ s
hquestJarvis ’ shquest
Fekadu ’sSports
Reva ’ shquest
Helen ’shquest Graham ’s
9Eric ’ s
hquestNoah ’ shquestJhuana ’ s
hquestKush ’ s
kquestNajma ’shquest
Joel ’ shquest
broken-VMU ’ shquest
A m y ’sghost q.
Lia ’sLia QFekadu ’s
hquestMackendy ’ s
hquest Yuxin ’ shquest
Kush ’shquest
Leia ’ shquest
Ziwei ’shquest Jarvis ’s
J Q U E S TDara ’ sD a r a QJhuana ’s
hquestKush ’ sKquest
A m y ’s
brain q.Natercia ’s
JutinLukas ’ smy qest
Fekadu ’shquest
Sacia ’s
hquestNatasha ’ s
hquestA m y ’ s
brain q.Halima ’s
hquestLeia ’s
hquest broken-VMU ’ shquest
Noah ’ shquest
Natercia ’ sJutin
Lia ’ sLia Q
Jhuana ’s
hquestFekadu ’s
SportsDara ’ sD a r a t
Fekadu ’sSports
Eric ’s
hquest
Fekadu ’sSports
Fekadu ’ sSports
Fekadu ’ s
Sports
Eric ’ shquest
Fekadu ’ sSports
Blake ’ s
D a r a t
Jarvis ’sJ Q U E S T
Noah ’ ssexy
Jesse ’ sJ E S S E Q
Jesse ’ s
J E S S E Q
Jesse ’ sJ E S S E Q
Jesse ’ sJ E S S E Q Jesse ’s
J E S S E QJesse ’s
J E S S E Q '
'
!"#$%&'()'*$+,+"-.'/"0$,1"2,+"-.'-3',.'4.31$&.+",1'456,11'
78&&'9-1-%':1,+&'-.':,#&';;;<'
Adding New Dimensions to Folklore C"&' .$&;+)34' 4&!%+),' 2)!34&*' ),' )3$' &22)$%4' %)' .$&4&$;&' %"&'
4#/+&,%' 2&#%3$&4')2' 2)/6/)$&' +,')3$' +5(#//'*&4+-,7'C"+4' 4&!%+),'
2)!34&4'),' %1)',&1'!#.#(+/+%+&40' %$#!6+,-'#,*'!)9.3%#%+),#/'
#-&,!>0' 1"+!"' 1&' *&4+-,&*' +,%)' %"&' +5(#//4' +,' #,' &22)$%' %)'
&,"#,!&' %"&+$' &22&!%+;&,&44' #4' #' 9&*+39' 2)$' !)993,+%>'
(3+/*+,-7''
Tracking and Social X-Rays L#,>' 2)/6/)$&' 4!")/#$4' #$&' +,%&$&4%&*' +,' %"&' $)/&' 2)/6/)$&'
./#>4' +,' &*3!#%+,-' 9&9(&$4' )2' +%4' !)993,+%>0' )$' ?2)/6'
-$)3.7@'K&'#$&'.#$%+!3/#$/>'+,%&$&4%&*'+,'%"&'$)/&'2)/6/)$&'!#,'
./#>' +,' &*3!#%+,-' #' !)993,+%>' #()3%' %"&' !)993,+%>7' 84'
C)&/6&,' 4#>4' ?),&' )2' %"&' 6&>' 2&#%3$&4' )2' #' 2)/6' -$)3.'1+//'
#/1#>4'(&' %"&'&<%&,%' %)'1"+!"' +%4')1,'*>,#9+!4'!),%+,3&' %)'
+,2)$9' #,*' &*3!#%&' +%4' 9&9(&$4' #,*' 4%#(+/+N&' %"&' -$)3.@'
FGHIHJ7' K&' (&/+&;&' %"#%0' 34+,-' %&!",)/)->0' 1&' !#,'
4+-,+2+!#,%/>' +9.$);&' %"&' &<%&,%' %)' 1"+!"' #' 2)/6' -$)3.]4'
*>,#9+!4'!#,'+,2)$9'#,*'&*3!#%&'+%4'9&9(&$47''
^+6&' *>&' %"#%' +4' +,:&!%&*' +,%)' #' ;&+,' +,' )$*&$' %)' $&;&#/' %"&'
+,%&$,#/'4%$3!%3$&4')2'),&]4'()*>'),'#,'<5$#>0'%"&'+5(#//4'1&$&'
*&4+-,&*' #4' 6+,*' )2' *>&' %"#%' 2/)14' %"$)3-"' #' -$)3.' #,*'
What are the easy waysto create, run and share code today?
LambdaMOO> exam rubeRube 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 contraptionRosy_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 screenA 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.
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
The Server’d Gentry
… begat…
We like:
Easy!
Social!
... but we want:
Features!
Ownership!
Control!
Cloning on Ning
Packaging
Distribution
Insta
llatio
n
CloningDeveloper User
The Child App
Timeliner
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
Folk programming =
more people in your project
Cloning.
Forking.
FLOSS licenses
• View the code
• Modify the code
• Redistribute the code
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
Hosted?
Hosted?Source code
Devplatform
Distribution
Hosted?Source code
Devplatform
Distribution
mailinglists
bug tracker
wiki
website
Hosted?Source code
Devplatform
Distribution
mailinglists
bug tracker
wiki
website
Hosted dev environments?
• Google App Engine
• EC2
• Dreamwidth Dreamhack
• Heroku, Kodingen, Reasonably Smart...
Google App Engine
Google App Engine
• Free (no cost)
• Python or Java
• Run your apps on Google’s infrastructure
Google App Engine
• Free (no cost)
• Python or Java
• Run your apps on Google’s infrastructure
• BUT... code them on your own
Amazon EC2
• Servers on demand
• Pre-configured
• Low cost (not quite free)
• Any language
Dreamhack
• Single project (Dreamwidth)
• Shared server
• Pre-configured
• Free
But can you clone it?
But can you clone it?
But can you clone it?
Huge array of diverse data sources
Proximity
Queryability
Openness
Proximity
Low
High
Proximity
• in memory
Low
High
Proximity
• in memory
• local key/value store
Low
High
Proximity
• in memory
• local key/value store
• nearby database server
Low
High
Proximity
• in memory
• local key/value store
• nearby database server
• web API
Low
High
Openness
Low
High
Openness
• US Govt public domain data
Low
High
Openness
• US Govt public domain data
• Creative Commons
Low
High
Openness
• US Govt public domain data
• Creative Commons
• Friendly TOS
Low
High
Openness
• US Govt public domain data
• Creative Commons
• Friendly TOS
• Unfriendly TOS
Low
High
QueryabilityLow
High
Queryability
• scanned, non-OCR documents
Low
High
Queryability
• scanned, non-OCR documents
• text documents
Low
High
Queryability
• scanned, non-OCR documents
• text documents
• structured data
Low
High
Queryability
• scanned, non-OCR documents
• text documents
• structured data
• well-structured data
Low
High
Key points
• FLOSS license
• Easy cloning
• Free, hosted development platform
• Huge array of readily-accessed data
FLOSS Cloning Hosted Data
Github Y Y N N
App Engine ? N Y Y
Amazon EC2 ? N Y Y
Dreamwidth Y N Y N
• Openly licensed database
• ~120M facts about 6.2M topics
• Anyone can edit... including schema
• Open API
*.freebaseapps.com
Open Code
Sharing Code
Sharing Code
Sharing Code
Sharing Code
Sharing Code
Sharing Code
Examples
Data Games
Data Games
Data Games
Data Games
Data Games
Data Games
Data Games
Social Apps
Social Apps
Social Apps
Social Apps
Social Apps
Lessons Learned
Reduced Friction =Increased Collaboration
Collaboration → Dependencies
• What happened? (diff, audit trail)
• Undo the damage (revert)
Collaboration → Dependencies
• What happened? (diff, audit trail)
• Undo the damage (revert)
Collaboration → Dependencies
• What happened? (diff, audit trail)
• Undo the damage (revert)
• Don’t break me! (versioning)
is this the future?
we need betterWeb-based tools
CodeMirrorhttp://marijn.haverbeke.nl/codemirror/
jsdifflib
Editors
Debugging
Collaboration
• Source Control
Collaboration
• Source Control
• Diff/Merge
Collaboration
• Source Control
• Diff/Merge
• Collaborative Editing
Collaboration
let’s make it happen
Thanks very much!
• Find our slides on the OSCON site (later)
• Kirrily Robert: [email protected]
• Yoz Grahame: [email protected]
• Jason Douglas: [email protected]