Open source is a major tech key nowadays for companies. In this presentation I try to explain how to carefully choose your OS libraries and how to share some bits of your company code to the OS world.
5. Open Source
In production and development, open source as a development model
promotes a universal access via a free license to a product's design or
blueprint, and universal redistribution of that design or blueprint,
including subsequent improvements to it by anyone.
— Wikipedia
/ˌoʊ.pənˈsɔːrs/
6. Open Source
Generally, open source refers to a computer program in which the source
code is available to the general public for use and/or modification from its
original design.
— Wikipedia
7. 19%
of the web is running Wordpress websites*
* Automattic, Wordpress editor - July 2013
8. 90%
of the web is running UNIX servers*
* W3Techs - February 2014
9. Your Mac is running UNIX..*
* No kidding. And Apple is making an insane amount of money out of this
10.
11. 1/
Why you should use Open Source in your
company
26. Choose carefully your libs
Angular Backbone Ember
Look for community activity: issues & PRs
27. Choose carefully your libs
Angular Backbone Ember
v1.3.0
~1 release / 15 days
~8 commits / day
!
Last commit:
yesterday
v1.8.0
~1 release / 15 days
~15 commits / day
!
Last commit:
yesterday
v1.1.2
~1 release / 2 months
~2 commits / day
!
Last commit: last
week
Look for recent activity: commit frequency, release cycle
41. Choose a proper name
Do not choose an
already existing name..
!
Prefer a memorable
name (angular, ember..)
or a very explicit name
(intercom-php-client,
php-excel-exporter..)
42. Respect language code standards
Try to use best fitting
language standard to
ease future contributors
reading your code and
writing new pieces of
code.
!
!
!
!
!
http://sideeffect.kr/
popularconvention
43. Produce good & documented code
Try to ease code
understanding for others
developers.
Your code should be so
simple to read and
understand that it does
not needs comments,
unless it really does.
44. Have a good test suite
Developers would feel
comfortable then to
add new features /
modify code without
fearing to break things.
It also make your
project more robust and
trustable.
45. Have a nice & friendly documentation
Try to ease code
understanding for others
developers.
Your code should be so
simple to read and
understand that it does
not needs comments,
unless it really does.
46. AND
Have package managers configured (bower, npm, packagist..)
Display a contribution philosophy and guidelines guide
Try to answer in a reasonably timely fashion to issues & PRs..
Be gentle
Be patient
…
50. Elephant.io
Many improvements and small bug fixes
socket.io 1.x protocol cracked for v3
socket.io 0.x protocol legacy implemented in v3
51. Basil.js
Smart javascript frontend persistent layer
• Uses localStorage, sessionStorage, cookies and arrayStorage
• Detect available storages and store in most appropriate one
• Handles objects
• Unified API for all storages
• Exception and errors bulletproof
• Available plugins Redis-like (lists, sets)
52. Parsley
Front end javascript form validation framework
• Validates forms frontend
• Handles UX
• 15+ built-ins validators
• 20+ languages provided
• Easy DOM-API
• Powerful remote validator plugin
53. Others
What we also share:
!
• jsgettext
• ExcelAnt
• Totem
• CalendArt..
!
!
Other pieces of code we could share:
!
• Single Page javascript application PDF exporter
• Push server on socket.io
• Backbone framework wrapper
• Sketch to svg / sprite gulp script
54. THANK YOU
!
ANY QUESTIONS?
Guillaume Potier — @guillaumepotier