Leverage the power of Open Source in your company Blend Web Mix - 30/10/14
Jun 30, 2015
Leverage the power of Open Source in your
company Blend Web Mix - 30/10/14
Hi
@guillaumepotier
Entrepreneur, geek and web enthusiast. Co-founder & CTO @Wisembly
Got a question ?
Ask it during the presentation on
app.wisembly.com/blend
What does Open Source inspire you ?
3 words to define it
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/
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
* Automattic, Wordpress editor - July 2013
19%of the web is running Wordpress websites*
* W3Techs - February 2014
90%of the web is running UNIX servers*
Your Mac is running UNIX..*
* No kidding. And Apple is making an insane amount of money out of this
Why you should use Open Source in your
company
1/
PROS
FREE*
* Free as in free speech, not as in free beer
FAST*
* In term of releases rythme and software performances
RELIABLE*
* Nowadays
SECURE*
* Really. Look at Bleeding Heart and Shellshock
CONVENIENT*
* Someone must have been through the same needs
CONS
FAST*
* And breaks things
SLOW*
* Changing a line could take 10 ppl and 3 months
COMPATIBILITY*
* Often too cutting edge technology
MAINTENABILITY*
* It’s like a big puzzle
SUPPORT*
* Have you ever tried to maintain an OS project?
HOW?
Choose carefully your libs
Look for traction: watchers, contributors
Choose carefully your libs
Look for community activity: issues & PRs
Angular Backbone Ember
Choose carefully your libs
Look for recent activity: commit frequency, release cycle
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
Choose carefully your libs
Look for tests & test suites
Choose carefully your libs
Other “intangible” things: !• lib philosophy • core team members • ecosystem • license type..
2/
Why you should share some of your company
code in Open Source
CONS
COMPETITION
PRODUCTIVITY
SECURITY
PROS
QUALITY
PRODUCTIVITY
COMMUNITY
RECRUITMENT
HOW?
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..)
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
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.
Produce good & documented code
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.
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.
Have a nice & friendly documentation
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
…
EXAMPLES
Elephant.io
Elephant.io
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
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)
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
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
THANK YOU !
ANY QUESTIONS?
Guillaume Potier — @guillaumepotier