Working In And With the Apache Software Foundation

  • 2,301 views
Uploaded on

My presentation at the "Meet the Communities" event in Luxembourg, June 12th, 2008 (http://www.mtc.lu/Prochain-Event.html). Mostly about how Day works in and with the ASF, includes a brief …

My presentation at the "Meet the Communities" event in Luxembourg, June 12th, 2008 (http://www.mtc.lu/Prochain-Event.html). Mostly about how Day works in and with the ASF, includes a brief presentation of Sling.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,301
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
53
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Working in and with the Apache Software Foundation Meet the Communities, Luxembourg, 12.6.2008 Bertrand Delacrétaz, ASF member and board member Senior developer, Day Software, www.day.com bdelacretaz@apache.org, http://grep.codeconsult.ch Find the slides at http://www.slideshare.net/bdelacretaz slides revision: 2008-06-10 Tuesday, June 10, 2008 1
  • 2. Let’s talk about... The ASF structure. How Day works with the ASF. How the ASF works with Day. ECM? Sling, Jackrabbit. Tuesday, June 10, 2008 2
  • 3. Why me? ASF member and (since last week) board member - though not officially representing the the ASF today. Day hired be based on my ASF activities. Not a marketing/business strategy person. I speak french ;-) Tuesday, June 10, 2008 3
  • 4. The ASF in 2008 65 projects (+ incubator) 1765 committers close to 300 members 3 TB/day www traffic Tens of releases every year No offices almost no f2f meetings all decisions on mailing lists Tuesday, June 10, 2008 4
  • 5. The ASF backbone? revision control system blogs mailing lists + archives IRC issue tracker Instant messaging Wikis automated builds httpd (of course) logos: Adium, Roller, Colloquy, MoinMoin Tuesday, June 10, 2008 5
  • 6. Collaboration Tuesday, June 10, 2008 6
  • 7. ASF structure Board of Contributors (thousands) directors (9) Public Relations Committers (~2000) committee Legal advisors Hired personnel (3) PMC members ASF members (~500?) (~300) Sponsors Tuesday, June 10, 2008 7
  • 8. Collaboration but how? Tuesday, June 10, 2008 8
  • 9. Collaboration Without a vision... Tuesday, June 10, 2008 9
  • 10. Collaboration What’s our status right now? Tuesday, June 10, 2008 10
  • 11. Collaboration Where can I help? Tuesday, June 10, 2008 11
  • 12. Collaboration Why did we do this? Tuesday, June 10, 2008 12
  • 13. Collaboration Shared vision Real-time updates Real-time help requests Self-service archives Tuesday, June 10, 2008 13
  • 14. Sharing the Vision Tuesday, June 10, 2008 14
  • 15. Sharing the vision? ? ? ? ? ? ? ? ? Mess Media? Central Hub oral tradition? permanent record Tuesday, June 10, 2008 15
  • 16. Sharing the vision. verba volant, scripta manent... Searchable mailing lists mailing lists + archives instead of 1-to-1 email Wikis instead of email Wikis attachments Blogs help for out-of- blogs band conversations Tuesday, June 10, 2008 16
  • 17. Real-time updates Tuesday, June 10, 2008 17
  • 18. We need fast feedback! Tuesday, June 10, 2008 18
  • 19. Feedback loop code developer user manager feedback How fast is your loop? Seconds? Weeks? Tuesday, June 10, 2008 19
  • 20. Real-time updates? code subscriptions tests email events bugs RSS feeds decisions tio nhub! bor a C olla Tuesday, June 10, 2008 20
  • 21. Real-time updates Source code control system instead of “code on the fileserver”. Issue tracker events instead of “what did you do today”? Mailing list “events” instead of “yell around the office”. Automated builds instead of “wait for Bob to build it on Linux”. Tuesday, June 10, 2008 21
  • 22. Real-time help requests Tuesday, June 10, 2008 22
  • 23. Real-time help requests? manager developer A help (feature, enhancement) request is a dialog, and history is important. Tuesday, June 10, 2008 23
  • 24. Real-time help requests ? ? ? ? ? ? ? ? Mess Media? Issue Tracking Tuesday, June 10, 2008 24
  • 25. Real-time help requests Issue tracker instead of issue tracker “just ask Bob to fix this”. Tuesday, June 10, 2008 25
  • 26. Self-service archives Tuesday, June 10, 2008 26
  • 27. Self-service archives? No time to document everything that happens. But new project members need the information, self- service. Tuesday, June 10, 2008 27
  • 28. Self-service archives Subversion logs, traceability of code. Structured and searchable issue tracker data. Semi-structured and searchable mailing lists. Blogs and Wikis stay around. Zero effort if using the rights tools! Tuesday, June 10, 2008 28
  • 29. Are We There Yet? Tuesday, June 10, 2008 29
  • 30. Collaboration Vision Updates Help Archives Extra tools: Tuesday, June 10, 2008 30
  • 31. Migration path? Will your team buy it? Tuesday, June 10, 2008 31
  • 32. Why would you work with the ASF? Collaboration Learn Practice Integrate Tuesday, June 10, 2008 32
  • 33. Day and the ASF alexkli, angela, dpfister, fielding [1], fmeschbe, jukka, mreutegg, ppiegaze, stefan, tripod, uncled bdelacretaz [2], cziegeler, fmeschbe Committers, PMC members and mentors on these projects, and others [1] httpd project and Apache Group cofounder [2] member of the Board of directors Tuesday, June 10, 2008 33
  • 34. What does Day get out of this? Great infrastructure software. Many eyeballs. Industry recognition (+ JSR-170) Credibility with world-class people. The Open Source way of working. Works inside the company as well. Contacts. Networks. Ideas. Tuesday, June 10, 2008 34
  • 35. Conclusions... it’s all about Collaboration and being Open as opposed to being Closed to ideas, people and collaboration Tuesday, June 10, 2008 35
  • 36. And by the way, what are these? Tuesday, June 10, 2008 ? 36
  • 37. Jackrabbit in a few words... JSR-170 (JCR) reference implementation Codebase initially donated by Day No user interface, few tools Infrastructure for Day’s products Used in more and more projects (ASF and elsewhere) dev@ (360) users@ (440) Tuesday, June 10, 2008 37
  • 38. Sling in a few words... RESTful application layer for JCR repositories. Scriptable, simple things are simple to implement. Servlet API - to the max. OSGi framework - extreme modularity, enterprise-ready. Tuesday, June 10, 2008 38
  • 39. Apache Sling architecture HTTP debugger filesystem browser standard custom servlets WebDAV Sling OSGi servlets and components server console javascript resource servlet/script OSGi bundles JSR 223 JSP Ruby resolution resolution scripting OSGi framework Velocity etc.. (Apache Felix) OSGi webapp JSR-170 API JCR repository OSGI and JCR based scriptable applications framework Tuesday, June 10, 2008 39
  • 40. Sling request processing HTTP URL Resource request analysis resolution OSGi OSGi JCR repository Script/Servlet Script/Servlet OSGi execution OSGi resolution Tuesday, June 10, 2008 40
  • 41. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Tuesday, June 10, 2008 41
  • 42. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Repository Tuesday, June 10, 2008 41
  • 43. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Content Repository epository Path R Tuesday, June 10, 2008 41
  • 44. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Content Repository epository Path R Tuesday, June 10, 2008 41
  • 45. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Content ...selects a Repository epository Path R particular scrip t Tuesday, June 10, 2008 41
  • 46. Reclaiming the web: Sling URL decomposition /cars/audi/s4.details.html Content ...selects a Repository epository Path R particular scrip t Data First! Tuesday, June 10, 2008 41
  • 47. simple write example itle> exam ple</t le write STquot;> > <html itle>sling : simp method=quot;PO <t first stepsquot; <head> body> ntent/ >< /co </head rm action=quot; --> fo itle < <!-- t e</h2> equot; /> tl name =quot;Titl <h2>Ti ype=quot;textquot; t > <input cription -- onquot;> !-- des ption</h2> =quot;Descripti < >Descri name <h2 ws=quot;5quot; rea ro <texta rea> a </text or --> ol <!-- c r</h2> lo quot;> <h2>Co name=quot;Color edquot;>red t quot;r <selec tion value= reenquot;>green op quot;g < tion value= op < > ct </sele > </form > </body write me! > </html irststeps/1_write.html http://localhost:7402/apps/f Tuesday, June 10, 2008 42
  • 48. simple read example itle> exam ple</t simpl e read <html> tle>sling: <ti <head> ipt > g.jsquot;></scr </head m/slin squot;); <body> src=quot;/syste t/firststep lor+'quot;>'; <s cript nt(quot;/conten r:'+node.Co <scr ipt> ng.ge tConte ground-colo de=Sli style=quot;back var no '<div v= ; var di .write(div) nt docume > pt </scri cript> tle); h2 ><s (node.Ti < ument.write doc </h2> n); </s cript> t> riptio rip e.Desc <p><sc t.write(nod n docume /p> t>< </scrip /div> < > </body read me! http://localhost:7402/apps /firststeps/2_read.html </html > Tuesday, June 10, 2008 43
  • 49. add new entry le> xample</tit new entry e > <html itle>sling : add es/*quot; t steps /entri <head>< ody> ntent /first </h ead><b action=quot;/co form < od=quot;POSTquot; > meth /> le</h 2> ame=quot; Titlequot; h2>Tit pe=quot;textquot; n < put ty area> <in ionquot;></text iption</h2> e=quot;Descript h2 >Descr ows=quot;5quot; nam < xtarea r te < </h2> h2 >Color e=quot;Colorquot;> >red < lect nam quot;redquot; <se n value= reenquot;>green <optio value=quot;g option < > ct </sele ></p> pe=quot;submitquot; add new http://localhost:7402/apps/firststeps/3_addnew.html < </form p><in > put ty > </body > </html Tuesday, June 10, 2008 44
  • 50. list entries le> xampl e</tit t ent ries e 2); <htm l> >slin g: lis s/entriesquot;, <title ststep <head> conten t/fir [...] nt(quot;/ t> g.ge tConte <scrip ntries=Slin var e pt> </scri or+'quot;> '); <div> y.Col t> ries) { olor: '+entr <scrip ar a in ent es[a]; ackgr ound-c ; for (v entry=entri iv style=quot;b le+'</h3>') var '<d Tit nt. write( h2>'+entry. on); docume .write('< Descri pti nt y. docume .write(entr nt docume ){ ry.Image if(ent [...] } ''quot;> '</div >'); ist.h tmlquot; tries/'+a+ nt. write( a href=quot;4_l '/mydata/en docume .write('< ent( nt veCont docume =”ujax.remo k onclic a>'); http://lo list entries calhost:7 remove </ 402/apps/ } > </a> firststep s/4_list. t mlquot;>add new html </scrip 3_addnew.ht f=quot; <a hre </div> Tuesday, June 10, 2008 ody> 45
  • 51. Sling’s unique selling points Tight integration with JCR. RESTful processing Convention over configuration - convention over code! Scriptable (javascript, JSP, Ruby, Velocity, etc.) Both client-side and server-side javascript. Servlets and scripts are interchangeable. Integrated OSGi framework Extensible, hackable, reconfigurable and future-proof. Tuesday, June 10, 2008 46
  • 52. Tuesday, June 10, 2008 47
  • 53. Tuesday, June 10, 2008 47
  • 54. see dev.day.com Tuesday, June 10, 2008 47
  • 55. see dev.day.com Essentially: builds a Re- ” a SS++ t app. “T ten con Tuesday, June 10, 2008 47
  • 56. Final words Day is very happy about our relationship with the ASF. The open source way of doing things works for us, both internally and externally. Jackrabbit + Sling = solid foundation for all our products: WCM, DAM, Wiki, blogs, and more to come. Balance between open source and making a living is still a work in progress. incubator.apache.org/sling jackrabbit.apache.org www.apache.org Tuesday, June 10, 2008 48
  • 57. photo credits All photographs come from the morguefile.com public image archive, used according to the morguefile license. Thanks to users gracey, click, jusben, taliesin, wallyir, peekaysee, jpkwitter, penywise and cohdra. Original URLs: http://morguefile.com/archive/?display=127643 http://morguefile.com/archive/?display=186412 http://morguefile.com/archive/?display=180641 http://morguefile.com/archive/?display=188806 http://morguefile.com/archive/?display=189113 http://morguefile.com/archive/?display=192078 http://morguefile.com/archive/?display=119042 http://morguefile.com/archive/?display=199947 http://morguefile.com/archive/?display=196923 http://morguefile.com/archive/?display=212718 Tuesday, June 10, 2008 49