+ All Categories
Transcript
Page 1: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

from rags to open-source

Raleigh, North Carolina 2014

Page 2: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Mike McNeil

@mikermcneilgithub.com/mikermcneil

Page 3: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

bdfl ofthe leading open-source MVC framework for Node.js

Page 4: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

the leading open-source MVC framework for Node.js

Page 5: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

at least pageviews since 2013830,000

GitHub stars 8,030

over downloads / day1,500

Page 6: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

in funding$0

Page 7: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 8: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

est. feb 2012

Page 9: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 10: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

(us)

(customer)

(Javascript app)

Page 11: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

love at first sightcirca 2011

Node.js...

Page 12: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

“We’re doing I/O completely wrong.”

Page 13: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

<— “just look at the Unterschied!”

“Not acceptable!”

Page 14: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

“Threads should be used by experts only.”

“Concurrency should be easy.”

Page 15: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

How is that possible?

(copy the browser)

Page 16: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

// synchronous!console.log(‘hi’)

// asynchronous!setTimeout(function (){! console.log(‘hi’);!}, 240000000);

vs.

incredible

Page 17: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

could we use

…for everything?

I wondered…

Page 18: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

so…

Page 19: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 20: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

You don't want to be writing all these system calls.

You need something that gives you… an ORM abstraction, or

something.

Page 21: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

so Sails.js was born

Page 22: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 23: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 24: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 25: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 26: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 27: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 28: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 29: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 30: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 31: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Sails is an MVC framework.

Page 32: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

first version (late 2011)

Page 33: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

December 2012

Page 34: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 35: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

>=20 other community adapters custom app-specific adapters

Page 36: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

January 2013

first halfway-decent docs

http://web.archive.org/web/20130514080123/http://balderdashy.github.io/sails/

Page 37: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

posted screencast in early 2013

Page 38: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

…woke up to 1000 views

Page 39: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

reddit — Feb 2013hacker news — Mar 2013and again two months later

Page 40: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 41: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

managed to get sailsjs.org online

mid-spring 2013

Page 42: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

issues pull requests

questions

Page 43: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 44: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 45: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 46: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

????

Page 47: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

???????????

Page 48: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

v0.9 introduced a new streamlined asset pipeline

Page 49: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

asset pipeline????

“what about gulp?!”

“so thirsty…”

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

asset pipeline????????!!!!

Page 50: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

so v0.10 introduced generators.

Page 51: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

feature requests are the hydra

Page 52: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

they will never stop.

Page 53: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

they will never stop.

ever.

Page 54: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

moral of the story

Page 55: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

only write code you actually need

if someone else actually needs something, they’ll write a pull request

only merge new code if someone actually needs you to merge it (i.e. there’s no other way, via a

plugin or something)

Page 56: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 57: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014
Page 58: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Supporting the Community

Page 59: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Tools

Metrics

Advice

Page 60: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

#sails on freenode (IRC)

issues

groups

Page 61: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Tools

Metrics

Advice

Page 62: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

• Github stars

• NPM downloads / day

• Google group membership

• IRC channel activity

• Number of tagged StackOverflow questions(and your answer ratio)

Page 63: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Tools

Metrics

Advice

Page 64: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

inline jsdoc comments are not enough

write docs in markdown

compile to HTML

Page 65: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

don’t repeat yourself

DRY

Page 66: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

don’t repeat ourselves

DRO

the goal of open source

Page 67: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

make an IRC channel start a Google group post a YouTube video

so

Page 68: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

support !== marketing

but remember

Page 69: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

support !== marketing

( )

but remember

Page 70: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

far more front-end developers

than back-end developers

Page 71: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

far more front-end developers

than back-end developers

eventually everyday backend development

will be commoditized

Page 72: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

Questions?

Page 73: Rags to Open Source - AllThingsOpen, Raleigh, NC  2014

from rags to open-source

@mikermcneil


Top Related