SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
DEVELOPERS!
                         Y U No Open Source Ur Code?




                                             http://ragecomics.memebase.com/
Tuesday, 1 November 11
SOMETHING ABOUT ME

                            Craig Marvelley

                          Developer @ Box UK

                            @craigmarvelley

                              boxuk.com


                              http://www.flickr.com/photos/jimmiehomeschoolmom/
                                          http://www.flickr.com/photos/catatronic/
Tuesday, 1 November 11
What is open source software?




                                        http://ragecomics.memebase.com/
Tuesday, 1 November 11
Hands up if you use open source software



                                                       http://www.flickr.com/photos/cheesy42/
Tuesday, 1 November 11
Hands up if your company uses
                               open source software

                                                http://www.flickr.com/photos/cheesy42/
Tuesday, 1 November 11
Hands up if you release open source software



                                                         http://www.flickr.com/photos/cheesy42/
Tuesday, 1 November 11
Hands up if your company releases open source
                                   software

                                              http://www.flickr.com/photos/cheesy42/
Tuesday, 1 November 11
A recent survey of 300 companies found:

                Using Open Source Software            Don’t intend to use it           Experimenting with it




                                            28%

                                                                      50%

                                              22%



                           Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045
Tuesday, 1 November 11
A recent survey of 300 companies found:

                  Willing to contribute software back to the community                Unwilling to contribute




                                                                     29%



                                              71%




                             Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045
Tuesday, 1 November 11
OPEN SOURCE AT BOX UK

    •   Utilised in many of our products

    •   Particularly the Amaxus ® Content Management System

    •   Amaxus is mainly written in PHP

    •   Version 3 (2002): ~1,439,295 lines of PHP, 3% open source

    •   Version 4 (2008): ~1,474,994 lines of PHP. ~81% open source


Tuesday, 1 November 11
Avoid reinventing the wheel
                                                 http://www.flickr.com/photos/rvignes/
Tuesday, 1 November 11
Quality is paramount
                                                http://www.flickr.com/photos/zigdon/
Tuesday, 1 November 11
Make sure it’s accessible
                                              http://www.flickr.com/photos/potatojunkie/
Tuesday, 1 November 11
Check the license suits the usage
                                                    http://www.flickr.com/photos/ecastro/
Tuesday, 1 November 11
THE TURNING POINT




Tuesday, 1 November 11
http://ragecomics.memebase.com/
Tuesday, 1 November 11
OBSCURA

    • PHP           component to perform thumbnailing

    • Written             for PHP 5.3 - namespaces, autoloading, fully unit
       tested

    • Integrated            back into Amaxus

    • Could              we do another one?


Tuesday, 1 November 11
BOXUK-DI

    • Amaxus   has an annotation-based dependency injection
       container

    • Uses           the Addendum library to parse doc-blocks

    • We          refactored Amaxus to extract the DI code

    • Existing           unit tests made sure we didn’t break anything

    • We          now had two libraries on our hands

Tuesday, 1 November 11
“What if we open sourced them?”

                                                  http://ragecomics.memebase.com/
Tuesday, 1 November 11
PRECEDENT

                   • Zend            • Gradwell

                   • Sensio   Labs   • openSky

                   • Liip AG         • knpLabs




Tuesday, 1 November 11
GOING OPEN-SOURCE

    • Hosted             the libraries on a company github account

    • Redesigned            our ‘labs’ page on boxuk.com

    • Authored     content for the website to announce and document
       the libraries

    • Tweeted             about it from the company account


Tuesday, 1 November 11
Tuesday, 1 November 11
Feedback for Obscura


Tuesday, 1 November 11
Feedback for boxuk-di

Tuesday, 1 November 11
“Lets do some more!”

                                            http://ragecomics.memebase.com/
Tuesday, 1 November 11
BOXUK-ROUTING

    • Refactored             and extracted the routing system from Amaxus

    • Slightly           different to other routing components

    • Decreased             coupling

    • Improved             code quality

    • Improved             test coverage


Tuesday, 1 November 11
DESCRIBR


    • Component               to extract metadata from any file

    • Wraps              php-reader, adding a plugin architecture

    • Encourages             others to contribute plugins and functionality

    • First        library to be used outside Amaxus



Tuesday, 1 November 11
Bringing it all together
                                               http://www.flickr.com/photos/pinksherbet/
Tuesday, 1 November 11
CODING STANDARDS
    • We          had a defined coding standard

    • It    was only written down; no way to enforce it

    • Enter              PHPCodesniffer

    • We   wrote a set of sniffs to check code conformed to our
       standard

    • Integrated             it into our Continuous Integration process

    • Open               sourced the sniffs on Github
Tuesday, 1 November 11
DEPLOYMENT

    • We          started using the libraries in live projects

    • Git       isn’t ideal at dependency management

    • Looked             into using PEAR as a deployment mechanism

    • Wasn’t             straightforward to begin with - documentation lacking

    • Eventually           successful - and it was worth it


Tuesday, 1 November 11
The Future
                                      http://www.flickr.com/photos/alejandroamador/
Tuesday, 1 November 11
MORE OPEN SOURCE SOFTWARE



    • Continue            to release PHP components

    • Perhaps            contribute to the Symfony CMF project

    • Release            code for other languages?




Tuesday, 1 November 11
SUMMING UP
        Thanks to our open source experiment:

    •   We have improved our code
        quality                        •   Our website has more content

    •   We have an enforced coding     •   The company has increased
        standard                           visibility

    •   We have a PEAR channel         •   Our developers can work on
                                           diverse, contained projects that
    •   We have experience using Git       make a difference
        and Github

Tuesday, 1 November 11
LESSONS LEARNED


    • Remember YAGNI             - You Ain’t Gonna Need It

    • If    refactoring existing code for release, choose wisely

    • Use         the right tools for the job




Tuesday, 1 November 11
THANKS FOR LISTENING!


                                 @craigmarvelley
                             http://github.com/boxuk
                           http://joind.in/talk/view/3810




Tuesday, 1 November 11

Mais conteúdo relacionado

Mais procurados (6)

Twitter streamingapi rubymongodbv2
Twitter streamingapi rubymongodbv2Twitter streamingapi rubymongodbv2
Twitter streamingapi rubymongodbv2
 
03/2012 - Popping the gherkin stack
03/2012 - Popping the gherkin stack03/2012 - Popping the gherkin stack
03/2012 - Popping the gherkin stack
 
WordPress Under Control (Boston WP Meetup)
WordPress Under Control (Boston WP Meetup)WordPress Under Control (Boston WP Meetup)
WordPress Under Control (Boston WP Meetup)
 
InfectNet Technical
InfectNet TechnicalInfectNet Technical
InfectNet Technical
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMO
 
Togetter matome matome
Togetter matome matomeTogetter matome matome
Togetter matome matome
 

Semelhante a Developers! Y U No Open Source Ur Code?

Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
zeeg
 
Jeff mc cune sf 2010
Jeff mc cune sf 2010Jeff mc cune sf 2010
Jeff mc cune sf 2010
Puppet
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
Caridy Patino
 

Semelhante a Developers! Y U No Open Source Ur Code? (20)

Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
 
Phorum - PHP Community Conference
Phorum - PHP Community ConferencePhorum - PHP Community Conference
Phorum - PHP Community Conference
 
Power tips to get your app discovered and not forgotten
Power tips to get your app discovered and not forgottenPower tips to get your app discovered and not forgotten
Power tips to get your app discovered and not forgotten
 
Nuxeo Iks 2009 11 13
Nuxeo Iks 2009 11 13Nuxeo Iks 2009 11 13
Nuxeo Iks 2009 11 13
 
Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
 
Apcug 2011 07-17-intro_to_drupal_jeff_schuler
Apcug 2011 07-17-intro_to_drupal_jeff_schulerApcug 2011 07-17-intro_to_drupal_jeff_schuler
Apcug 2011 07-17-intro_to_drupal_jeff_schuler
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
 
Interop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A ServiceInterop 2011 - Scaling Platform As A Service
Interop 2011 - Scaling Platform As A Service
 
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan GallimoreJava EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
Java EE | Apache TomEE - Java EE Web Profile on Tomcat | Jonathan Gallimore
 
Free Your Mind and Your Data Will Follow: Open Source for Libraries
Free Your Mind and Your Data Will Follow: Open Source for LibrariesFree Your Mind and Your Data Will Follow: Open Source for Libraries
Free Your Mind and Your Data Will Follow: Open Source for Libraries
 
Fred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UIFred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UI
 
Jeff mc cune sf 2010
Jeff mc cune sf 2010Jeff mc cune sf 2010
Jeff mc cune sf 2010
 
Toolset of Beansmile
Toolset of BeansmileToolset of Beansmile
Toolset of Beansmile
 
Chandler, Carmody, Dixon, Orrell, Norris, and Ward "Single Sign-On Authentica...
Chandler, Carmody, Dixon, Orrell, Norris, and Ward "Single Sign-On Authentica...Chandler, Carmody, Dixon, Orrell, Norris, and Ward "Single Sign-On Authentica...
Chandler, Carmody, Dixon, Orrell, Norris, and Ward "Single Sign-On Authentica...
 
10 Things you should know about Ruby
10 Things you should know about Ruby10 Things you should know about Ruby
10 Things you should know about Ruby
 
Caridy patino - node-js
Caridy patino - node-jsCaridy patino - node-js
Caridy patino - node-js
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
 
JRubyConf 2009
JRubyConf 2009JRubyConf 2009
JRubyConf 2009
 
Composer
ComposerComposer
Composer
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.Microformat
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Developers! Y U No Open Source Ur Code?

  • 1. DEVELOPERS! Y U No Open Source Ur Code? http://ragecomics.memebase.com/ Tuesday, 1 November 11
  • 2. SOMETHING ABOUT ME Craig Marvelley Developer @ Box UK @craigmarvelley boxuk.com http://www.flickr.com/photos/jimmiehomeschoolmom/ http://www.flickr.com/photos/catatronic/ Tuesday, 1 November 11
  • 3. What is open source software? http://ragecomics.memebase.com/ Tuesday, 1 November 11
  • 4. Hands up if you use open source software http://www.flickr.com/photos/cheesy42/ Tuesday, 1 November 11
  • 5. Hands up if your company uses open source software http://www.flickr.com/photos/cheesy42/ Tuesday, 1 November 11
  • 6. Hands up if you release open source software http://www.flickr.com/photos/cheesy42/ Tuesday, 1 November 11
  • 7. Hands up if your company releases open source software http://www.flickr.com/photos/cheesy42/ Tuesday, 1 November 11
  • 8. A recent survey of 300 companies found: Using Open Source Software Don’t intend to use it Experimenting with it 28% 50% 22% Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045 Tuesday, 1 November 11
  • 9. A recent survey of 300 companies found: Willing to contribute software back to the community Unwilling to contribute 29% 71% Source: Accenture (2010): http://newsroom.accenture.com/article_display.cfm?article_id=5045 Tuesday, 1 November 11
  • 10. OPEN SOURCE AT BOX UK • Utilised in many of our products • Particularly the Amaxus ® Content Management System • Amaxus is mainly written in PHP • Version 3 (2002): ~1,439,295 lines of PHP, 3% open source • Version 4 (2008): ~1,474,994 lines of PHP. ~81% open source Tuesday, 1 November 11
  • 11. Avoid reinventing the wheel http://www.flickr.com/photos/rvignes/ Tuesday, 1 November 11
  • 12. Quality is paramount http://www.flickr.com/photos/zigdon/ Tuesday, 1 November 11
  • 13. Make sure it’s accessible http://www.flickr.com/photos/potatojunkie/ Tuesday, 1 November 11
  • 14. Check the license suits the usage http://www.flickr.com/photos/ecastro/ Tuesday, 1 November 11
  • 15. THE TURNING POINT Tuesday, 1 November 11
  • 17. OBSCURA • PHP component to perform thumbnailing • Written for PHP 5.3 - namespaces, autoloading, fully unit tested • Integrated back into Amaxus • Could we do another one? Tuesday, 1 November 11
  • 18. BOXUK-DI • Amaxus has an annotation-based dependency injection container • Uses the Addendum library to parse doc-blocks • We refactored Amaxus to extract the DI code • Existing unit tests made sure we didn’t break anything • We now had two libraries on our hands Tuesday, 1 November 11
  • 19. “What if we open sourced them?” http://ragecomics.memebase.com/ Tuesday, 1 November 11
  • 20. PRECEDENT • Zend • Gradwell • Sensio Labs • openSky • Liip AG • knpLabs Tuesday, 1 November 11
  • 21. GOING OPEN-SOURCE • Hosted the libraries on a company github account • Redesigned our ‘labs’ page on boxuk.com • Authored content for the website to announce and document the libraries • Tweeted about it from the company account Tuesday, 1 November 11
  • 25. “Lets do some more!” http://ragecomics.memebase.com/ Tuesday, 1 November 11
  • 26. BOXUK-ROUTING • Refactored and extracted the routing system from Amaxus • Slightly different to other routing components • Decreased coupling • Improved code quality • Improved test coverage Tuesday, 1 November 11
  • 27. DESCRIBR • Component to extract metadata from any file • Wraps php-reader, adding a plugin architecture • Encourages others to contribute plugins and functionality • First library to be used outside Amaxus Tuesday, 1 November 11
  • 28. Bringing it all together http://www.flickr.com/photos/pinksherbet/ Tuesday, 1 November 11
  • 29. CODING STANDARDS • We had a defined coding standard • It was only written down; no way to enforce it • Enter PHPCodesniffer • We wrote a set of sniffs to check code conformed to our standard • Integrated it into our Continuous Integration process • Open sourced the sniffs on Github Tuesday, 1 November 11
  • 30. DEPLOYMENT • We started using the libraries in live projects • Git isn’t ideal at dependency management • Looked into using PEAR as a deployment mechanism • Wasn’t straightforward to begin with - documentation lacking • Eventually successful - and it was worth it Tuesday, 1 November 11
  • 31. The Future http://www.flickr.com/photos/alejandroamador/ Tuesday, 1 November 11
  • 32. MORE OPEN SOURCE SOFTWARE • Continue to release PHP components • Perhaps contribute to the Symfony CMF project • Release code for other languages? Tuesday, 1 November 11
  • 33. SUMMING UP Thanks to our open source experiment: • We have improved our code quality • Our website has more content • We have an enforced coding • The company has increased standard visibility • We have a PEAR channel • Our developers can work on diverse, contained projects that • We have experience using Git make a difference and Github Tuesday, 1 November 11
  • 34. LESSONS LEARNED • Remember YAGNI - You Ain’t Gonna Need It • If refactoring existing code for release, choose wisely • Use the right tools for the job Tuesday, 1 November 11
  • 35. THANKS FOR LISTENING! @craigmarvelley http://github.com/boxuk http://joind.in/talk/view/3810 Tuesday, 1 November 11