working in and with the apache software foundation

57
Working in and with the Apache Software Foundation 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 1 Tuesday, June 10, 2008

Upload: bertrand-delacretaz

Post on 16-Apr-2017

2.815 views

Category:

Technology


0 download

TRANSCRIPT

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

Collaboration

6Tuesday, 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

Collaboration

but how?

8Tuesday, June 10, 2008

Without a vision...

Col

labo

ratio

n

9Tuesday, June 10, 2008

What’s our status right now?

Col

labo

ratio

n

10Tuesday, June 10, 2008

Where can I help?

Col

labo

ratio

n

11Tuesday, June 10, 2008

Why did we do this?

Col

labo

ratio

n

12Tuesday, 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 Vision14Tuesday, 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

Real-time updates

17Tuesday, June 10, 2008

We need fast feedback!

18Tuesday, 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

22Tuesday, June 10, 2008

Real-time help requests?

developermanager

A help (feature, enhancement) request is a dialog, and history is important.

23Tuesday, June 10, 2008

Mess Media?

?

?

?

?

?

?

??

Issue Tracking

Real-time help requests

24Tuesday, June 10, 2008

issue trackerIssue tracker instead of “just ask Bob to fix this”.

Real-time help requests

25Tuesday, June 10, 2008

Self-service archives26Tuesday, 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

Are We There Yet?

29Tuesday, June 10, 2008

Vision Updates Help Archives

Extra tools:

Col

labo

ratio

n

30Tuesday, June 10, 2008

Migration path?

Will your team buy it?

31Tuesday, June 10, 2008

Why would you work with the ASF?

CollaborationLearn

PracticeIntegrate

32Tuesday, 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

And by the way, what are these?

?36Tuesday, 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

/cars/audi/s4.details.html

Reclaiming the web:Sling URL decomposition

41Tuesday, 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

47Tuesday, June 10, 2008

47Tuesday, June 10, 2008

seedev.day.co

m

47Tuesday, June 10, 2008

Essentially:

Re-build “TSS++” as a content app.

seedev.day.co

m

47Tuesday, 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