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.
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Working In And With the Apache Software Foundation
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
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
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
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
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
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
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