SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
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
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
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
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
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
Collaboration

Tuesday, June 10, 2008          6
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
Collaboration
                         but how?


Tuesday, June 10, 2008              8
Collaboration




                         Without a vision...
Tuesday, June 10, 2008                     9
Collaboration




                         What’s our status right now?
Tuesday, June 10, 2008                              10
Collaboration




                         Where can I help?
Tuesday, June 10, 2008                   11
Collaboration




                         Why did we do this?
Tuesday, June 10, 2008                     12
Collaboration

                         Shared vision             Real-time updates




                         Real-time help requests   Self-service archives


Tuesday, June 10, 2008                                                     13
Sharing the Vision
Tuesday, June 10, 2008                    14
Sharing the vision?

                          ?            ?


                          ?            ?


                          ?            ?


                          ?            ?


                         Mess Media?        Central Hub
                          oral tradition?   permanent record


Tuesday, June 10, 2008                                         15
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
Real-time updates
Tuesday, June 10, 2008                   17
We need fast feedback!




Tuesday, June 10, 2008     18
Feedback loop

                                      code

                         developer              user   manager

                                     feedback


                                 How fast is your loop?
                                 Seconds? Weeks?
Tuesday, June 10, 2008                                           19
Real-time updates?

                         code                    subscriptions

                         tests                  email events
                         bugs
                                                RSS feeds
                         decisions

                                           tio nhub!
                                    bor   a
                             C olla

Tuesday, June 10, 2008                                           20
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
Real-time help requests
Tuesday, June 10, 2008                         22
Real-time help requests?

                         manager   developer

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

Tuesday, June 10, 2008                                            23
Real-time help requests

                          ?      ?


                          ?      ?


                          ?      ?


                          ?      ?


                         Mess Media?   Issue Tracking


Tuesday, June 10, 2008                                  24
Real-time help requests


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




Tuesday, June 10, 2008                                              25
Self-service archives
Tuesday, June 10, 2008                       26
Self-service archives?

                         No time to document
                         everything that
                         happens.
                         But new project
                         members need the
                         information, self-
                         service.


Tuesday, June 10, 2008                         27
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
Are We There Yet?




Tuesday, June 10, 2008               29
Collaboration
                         Vision       Updates    Help   Archives




                                  Extra tools:


Tuesday, June 10, 2008                                             30
Migration path?




                         Will your team buy it?
Tuesday, June 10, 2008                            31
Why would you work with the ASF?




                Collaboration
                     Learn
                          Practice
                         Integrate


Tuesday, June 10, 2008                  32
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
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
Conclusions...
                                    it’s all about


              Collaboration          and being


                  Open          as opposed to being


                 Closed  to ideas, people and collaboration

Tuesday, June 10, 2008                                        35
And by the way, what are these?




Tuesday, June 10, 2008
                         ?            36
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
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
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
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
Reclaiming the web:
                         Sling URL decomposition
                           /cars/audi/s4.details.html




Tuesday, June 10, 2008                                  41
Reclaiming the web:
                         Sling URL decomposition
                           /cars/audi/s4.details.html

    Repository




Tuesday, June 10, 2008                                  41
Reclaiming the web:
                         Sling URL decomposition
                           /cars/audi/s4.details.html

                  Content
    Repository epository Path
             R




Tuesday, June 10, 2008                                  41
Reclaiming the web:
                         Sling URL decomposition
                           /cars/audi/s4.details.html

                  Content
    Repository epository Path
             R




Tuesday, June 10, 2008                                  41
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
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
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
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
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
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
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
Tuesday, June 10, 2008   47
Tuesday, June 10, 2008   47
see
                         dev.day.com




Tuesday, June 10, 2008                 47
see
                         dev.day.com




                          Essentially:
                               builds a
                            Re- ” a
                            SS++ t app.
                          “T ten
                           con

Tuesday, June 10, 2008                    47
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
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

Mais conteúdo relacionado

Semelhante a Working In And With the Apache Software Foundation

TikiFest Montreal Mars 2009 fr.
TikiFest Montreal Mars 2009 fr.TikiFest Montreal Mars 2009 fr.
TikiFest Montreal Mars 2009 fr.Régis Barondeau
 
TikiFest Montreal March 2009
TikiFest Montreal March 2009TikiFest Montreal March 2009
TikiFest Montreal March 2009Régis Barondeau
 
Javaone 2008: What’s New In Ajax
Javaone 2008: What’s New In AjaxJavaone 2008: What’s New In Ajax
Javaone 2008: What’s New In Ajaxdion
 
Visual Design - Alfresco Green Theme
Visual Design - Alfresco Green ThemeVisual Design - Alfresco Green Theme
Visual Design - Alfresco Green ThemeAlfrescoUE
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010Patrick Chanezon
 
Prophet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseJesse Vincent
 
Presentation Bsh westerstede
Presentation Bsh westerstedePresentation Bsh westerstede
Presentation Bsh westerstedeVincent Everts
 
Responsible Web Development (Enei 2008)
Responsible Web Development (Enei 2008)Responsible Web Development (Enei 2008)
Responsible Web Development (Enei 2008)Opensoft
 
Codebits Handivi
Codebits HandiviCodebits Handivi
Codebits Handivicfpinto
 
Keynote speech at COST 292 final workshop on future of multimedia search and ...
Keynote speech at COST 292 final workshop on future of multimedia search and ...Keynote speech at COST 292 final workshop on future of multimedia search and ...
Keynote speech at COST 292 final workshop on future of multimedia search and ...Touradj Ebrahimi
 
Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vincent Everts
 
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoPresentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoThierry Koscielniak
 
Council Introduction
Council IntroductionCouncil Introduction
Council IntroductionSoCo Partners
 
Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Griffin Technology
 

Semelhante a Working In And With the Apache Software Foundation (16)

TikiFest Montreal Mars 2009 fr.
TikiFest Montreal Mars 2009 fr.TikiFest Montreal Mars 2009 fr.
TikiFest Montreal Mars 2009 fr.
 
TikiFest Montreal March 2009
TikiFest Montreal March 2009TikiFest Montreal March 2009
TikiFest Montreal March 2009
 
20100608sigmod
20100608sigmod20100608sigmod
20100608sigmod
 
Javaone 2008: What’s New In Ajax
Javaone 2008: What’s New In AjaxJavaone 2008: What’s New In Ajax
Javaone 2008: What’s New In Ajax
 
Visual Design - Alfresco Green Theme
Visual Design - Alfresco Green ThemeVisual Design - Alfresco Green Theme
Visual Design - Alfresco Green Theme
 
The PSF and You
The PSF and YouThe PSF and You
The PSF and You
 
Google App Engine - Devfest India 2010
Google App Engine -  Devfest India 2010Google App Engine -  Devfest India 2010
Google App Engine - Devfest India 2010
 
Prophet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected databaseProphet - A peer to peer replicated disconnected database
Prophet - A peer to peer replicated disconnected database
 
Presentation Bsh westerstede
Presentation Bsh westerstedePresentation Bsh westerstede
Presentation Bsh westerstede
 
Responsible Web Development (Enei 2008)
Responsible Web Development (Enei 2008)Responsible Web Development (Enei 2008)
Responsible Web Development (Enei 2008)
 
Codebits Handivi
Codebits HandiviCodebits Handivi
Codebits Handivi
 
Keynote speech at COST 292 final workshop on future of multimedia search and ...
Keynote speech at COST 292 final workshop on future of multimedia search and ...Keynote speech at COST 292 final workshop on future of multimedia search and ...
Keynote speech at COST 292 final workshop on future of multimedia search and ...
 
Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010Vefica presentatie TV2.0 & IFA 2010
Vefica presentatie TV2.0 & IFA 2010
 
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and AlfrescoPresentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
Presentation Jasig 2010 : portlet integration in uPortal of Ametys and Alfresco
 
Council Introduction
Council IntroductionCouncil Introduction
Council Introduction
 
Is the iPad just a big iPhone?
Is the iPad just a big iPhone?Is the iPad just a big iPhone?
Is the iPad just a big iPhone?
 

Mais de Bertrand Delacretaz

VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?Bertrand Delacretaz
 
Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Bertrand Delacretaz
 
Repoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationBertrand Delacretaz
 
The Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationBertrand Delacretaz
 
GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?Bertrand Delacretaz
 
How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...Bertrand Delacretaz
 
L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019Bertrand Delacretaz
 
Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Bertrand Delacretaz
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Bertrand Delacretaz
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesBertrand Delacretaz
 
State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018Bertrand Delacretaz
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Bertrand Delacretaz
 
Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Bertrand Delacretaz
 
They don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesThey don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesBertrand Delacretaz
 
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Bertrand Delacretaz
 
Project and Community Services the Apache Way
Project and Community Services the Apache WayProject and Community Services the Apache Way
Project and Community Services the Apache WayBertrand Delacretaz
 
La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017Bertrand Delacretaz
 
Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Bertrand Delacretaz
 
Building an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBuilding an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBertrand Delacretaz
 

Mais de Bertrand Delacretaz (20)

VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?
 
Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity
 
Repoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initialization
 
The Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaboration
 
GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?
 
Open Source Changes the World!
Open Source Changes the World!Open Source Changes the World!
Open Source Changes the World!
 
How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...
 
L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019
 
Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
 
State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
 
Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)
 
They don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesThey don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenches
 
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
 
Project and Community Services the Apache Way
Project and Community Services the Apache WayProject and Community Services the Apache Way
Project and Community Services the Apache Way
 
La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017
 
Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017
 
Building an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBuilding an Apache Sling Rendering Farm
Building an Apache Sling Rendering Farm
 

Último

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
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
  • 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
  • 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
  • 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
  • 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
  • 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