SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Twitter streamingapi rubymongodbv2
Twitter streamingapi rubymongodbv2Twitter streamingapi rubymongodbv2
Twitter streamingapi rubymongodbv2Jeff Linwood
 
03/2012 - Popping the gherkin stack
03/2012 - Popping the gherkin stack03/2012 - Popping the gherkin stack
03/2012 - Popping the gherkin stackdaveayan
 
WordPress Under Control (Boston WP Meetup)
WordPress Under Control (Boston WP Meetup)WordPress Under Control (Boston WP Meetup)
WordPress Under Control (Boston WP Meetup)Matt Bernhardt
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMatt Brandt
 

Was ist angesagt? (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
 

Ähnlich wie Developers! Y U No Open Source Ur Code?

Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?LB Denker
 
Phorum - PHP Community Conference
Phorum - PHP Community ConferencePhorum - PHP Community Conference
Phorum - PHP Community ConferenceBrian Moon
 
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 forgottenAppsfire
 
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
 
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_schulerhewie
 
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 StruyfNCCOMMS
 
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 ServicePatrick Chanezon
 
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 GallimoreJAX London
 
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 LibrariesNicole C. Engard
 
Fred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UIFred Spencer: Designing a Great UI
Fred Spencer: Designing a Great UIAxway Appcelerator
 
Jeff mc cune sf 2010
Jeff mc cune sf 2010Jeff mc cune sf 2010
Jeff mc cune sf 2010Puppet
 
Toolset of Beansmile
Toolset of BeansmileToolset of Beansmile
Toolset of Beansmileleondu
 
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 Rubysikachu
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSCaridy Patino
 
MiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatMiningTheSocialWeb.Ch2.Microformat
MiningTheSocialWeb.Ch2.MicroformatHyeonSeok Choi
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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 Scriptwesley chun
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 

Kürzlich hochgeladen (20)

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
+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...
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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)
 

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