SlideShare a Scribd company logo
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

More Related Content

PDF
Intro to Micro-frameworks
PDF
Business of APIs
PDF
What every successful open source project needs
PPTX
PDF
DevOps: What is This Puppet You Speak Of?
PDF
Declare independence from your it department sysadmin skills for symfony dev...
PPTX
Minimal Containers for PHP
PDF
Twitter streamingapi rubymongodbv2
Intro to Micro-frameworks
Business of APIs
What every successful open source project needs
DevOps: What is This Puppet You Speak Of?
Declare independence from your it department sysadmin skills for symfony dev...
Minimal Containers for PHP
Twitter streamingapi rubymongodbv2

Similar to Developers! Y U No Open Source Ur Code? (20)

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

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Machine Learning_overview_presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Approach and Philosophy of On baking technology
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25-Week II
Encapsulation theory and applications.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Machine Learning_overview_presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
The Rise and Fall of 3GPP – Time for a Sabbatical?
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
Building Integrated photovoltaic BIPV_UPV.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25-Week II
Ad

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