Working in and withthe Apache SoftwareFoundation
Bertrand Delacrétaz, ASF member and board member
Senior developer, Day Software, www.day.com
[email protected], http://grep.codeconsult.ch
Find the slides at http://www.slideshare.net/bdelacretaz slides revision: 2008-06-10
Meet the Communities, Luxembourg, 12.6.2008
1Tuesday, June 10, 2008
Let’s talk about...The ASF structure.
How Day works with the ASF.
How the ASF works with Day.
ECM? Sling, Jackrabbit.
2Tuesday, June 10, 2008
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 ;-)
3Tuesday, June 10, 2008
1765 committers65 projects (+ incubator)
No officesalmost no f2f meetings
all decisions on mailing lists
Tens of releases every year
close to 300 members3 TB/day www traffic
The ASF in 2008
4Tuesday, June 10, 2008
The ASF backbone?
logos: Adium, Roller, Colloquy, MoinMoin
revision control system
mailing lists + archivesIRC
Instant messaging
Wikis
blogs
issue tracker
automated builds
httpd (of course)
5Tuesday, June 10, 2008
ASF structure
Contributors (thousands)
Committers (~2000)
PMC members(~500?)
ASF members(~300)
Board ofdirectors (9)
Public Relationscommittee
Legaladvisors
Hiredpersonnel (3)
Sponsors
7Tuesday, June 10, 2008
Shared vision Real-time updates
Real-time help requests Self-service archives
Col
labo
ratio
n
13Tuesday, June 10, 2008
Sharing the vision?
Central HubMess Media?
?
?
?
?
?
?
??
oral tradition? permanent record
15Tuesday, June 10, 2008
Sharing the vision.
mailing lists + archives
Searchable mailing listsinstead of 1-to-1 email
blogs
Blogs help for out-of-band conversations
Wikis
Wikis instead of email attachments
verba volant, scripta manent...
16Tuesday, June 10, 2008
Feedback loop
code
feedback
developer user manager
How fast is your loop?Seconds? Weeks?
19Tuesday, June 10, 2008
Real-time updates?
code
bugs
tests
decisions
email events
RSS feeds
Collaboration hub!
subscriptions
20Tuesday, June 10, 2008
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”.
Real-time updates
21Tuesday, June 10, 2008
Real-time help requests?
developermanager
A help (feature, enhancement) request is a dialog, and history is important.
23Tuesday, June 10, 2008
issue trackerIssue tracker instead of “just ask Bob to fix this”.
Real-time help requests
25Tuesday, June 10, 2008
Self-service archives?
No time to document everything that happens.
But new project members need the information, self-service.
27Tuesday, June 10, 2008
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!
Self-service archives
28Tuesday, June 10, 2008
Day and the ASF
alexkli, angela, dpfister, fielding [1], fmeschbe, jukka, mreutegg, ppiegaze, stefan, tripod, uncled
bdelacretaz [2], cziegeler, fmeschbe
[1] httpd project and Apache Group cofounder[2] member of the Board of directors
Committers, PMC members and mentors on these projects, and others
33Tuesday, June 10, 2008
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.
34Tuesday, June 10, 2008
Conclusions...
OpenCollaboration
Closed
it’s all about
and being
as opposed to being
to ideas, people and collaboration
35Tuesday, June 10, 2008
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)
37Tuesday, June 10, 2008
Sling in a few words...
RESTful application layer for JCR repositories.
Scriptable, simple things are simple to implement.
OSGi framework - extreme modularity, enterprise-ready.
Servlet API - to the max.
38Tuesday, June 10, 2008
OSGi bundles
OSGi webapp
Apache Sling architecture
OSGI and JCR based scriptable applications framework
OSGi framework(Apache Felix)
JCRrepository
javascript
JSPRuby
Velocityetc..
debugger
WebDAVserver
Sling OSGiconsole
browserfilesystem
JSR-170 API
HTTP
resource resolution
custom servletsand components
JSR 223 scripting
servlet/script resolution
standardservlets
39Tuesday, June 10, 2008
HTTPrequest
URLanalysis
Resourceresolution
Script/Servletresolution
Script/Servletexecution
JCRrepository
OSGi OSGi
OSGiOSGi
Sling request processing
40Tuesday, June 10, 2008
Repository
/cars/audi/s4.details.html
Reclaiming the web:Sling URL decomposition
41Tuesday, June 10, 2008
Repository
/cars/audi/s4.details.html
Content Repository Path
Reclaiming the web:Sling URL decomposition
41Tuesday, June 10, 2008
Repository
/cars/audi/s4.details.html
Content Repository Path
Reclaiming the web:Sling URL decomposition
41Tuesday, June 10, 2008
Repository
/cars/audi/s4.details.html
Content Repository Path...selects a particular script
Reclaiming the web:Sling URL decomposition
41Tuesday, June 10, 2008
Repository
/cars/audi/s4.details.html
Content Repository Path...selects a particular script
Reclaiming the web:Sling URL decomposition
Data First!
41Tuesday, June 10, 2008
simple write example
write me!http://localhost:7402/apps/firs
tsteps/1_write.html
<html>
<head><title>s
ling: simple w
rite example</
title>
</head><body>
<form action="
/content/first
steps" method=
"POST">
<!-- title -->
<h2>Title</h2>
<input type="t
ext" name="Tit
le" />
<!-- descripti
on -->
<h2>Descriptio
n</h2>
<textarea rows
="5" name="Des
cription">
</te
xtarea>
<!-- color -->
<h2>Color</h2>
<select name="
Color">
<option value=
"red">red
<option value=
"green">green
</select>
</form>
</body>
</html>
42Tuesday, June 10, 2008
read me!http://localhost:7402/apps/firststeps/2_read.html
<html>
<head><title>s
ling: simple r
ead example</t
itle>
</head>
<body>
<script src
="/system/slin
g.js"></script
<script>
var node=Sl
ing.getContent
("/content/fir
ststeps");
var div='<d
iv style="back
ground-color:'
+node.Color+'"
>';
document.wr
ite(div);
</script>
<h2><script>
document.write
(node.Title);
</script></h2>
<p><script>
document.write
(node.Descript
ion);
</script></p>
</div>
</body>
</html>
simple read example
43Tuesday, June 10, 2008
add newhttp://localhost:7402/apps/firststeps/3_addnew.html
<html>
<head><title>s
ling: add new
entry example<
/title>
</head><body>
<form action="
/content/first
steps/entries/
*"
method="PO
ST" >
<h2>Title</h2>
<input type="t
ext" name="Tit
le" />
<h2>Descriptio
n</h2>
<textarea rows
="5" name="Des
cription"></te
xtarea>
<h2>Color</h2>
<select name="
Color">
<option value=
"red">red
<option value=
"green">green
</select>
<p><input type
="submit"></p>
</form>
</body>
</html>
add new entry
44Tuesday, June 10, 2008
list entrieshttp://localhost:7402/apps/firststeps/4_list.html
<html>
<head><title>s
ling: list ent
ries example</
title>
[...]
<script>
var entries=Sl
ing.getContent
("/content/fir
ststeps/entrie
s", 2);
</script>
<div>
<script>
for (var a i
n entries) {
var entry=ent
ries[a];
document.
write('<div st
yle="backgroun
d-color:'+entr
y.Color+'">');
document.
write('<h2>'+e
ntry.Title+'</
h3>');
document.
write(entry.De
scription);
if(entry.
Image) {
[...]
}
document.
write('</div>'
);
document.
write('<a href
="4_list.html"
onclick=
”ujax.removeCo
ntent(\'/mydat
a/entries/\'+a
+'\'">
remove</
a>');
}
</script>
<a href="3_add
new.html">add
new</a>
</div>
</body>
list entries
45Tuesday, June 10, 2008
Sling’s unique selling pointsTight integration with JCR.
RESTful processingConvention 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 frameworkExtensible, hackable, reconfigurable and future-proof.
46Tuesday, June 10, 2008
Final wordsDay 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
48Tuesday, June 10, 2008
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=127643http://morguefile.com/archive/?display=186412http://morguefile.com/archive/?display=180641http://morguefile.com/archive/?display=188806http://morguefile.com/archive/?display=189113http://morguefile.com/archive/?display=192078http://morguefile.com/archive/?display=119042http://morguefile.com/archive/?display=199947http://morguefile.com/archive/?display=196923http://morguefile.com/archive/?display=212718
49Tuesday, June 10, 2008