Using Node.js for Everything
- Let a process crash (but use
- Find issues with
- not everyone uses semantic versioning, you may need to be stricter with your dependencies
- keep your apps stateless
- but if you need state, use redis
- keep it simple, use npm, and write tests
Success in Open Source
Owen Barnes starts his journey with an idea he had in 2010 - single page apps and websockets and the future, so why not combine them? He ended up creating SocketStream. This was his first big opensource offering, and people loved it! Stars, pull-requests and tweets came flooding in, but something started to go wrong. When the project started, it was opinionated (stylus for styles, redis for state), but people used other tools, and so they sent pull requests adding support for them. Who could say no to that? Sadly the vision became diluted, the project became bloated, and it was no longer fun. Sure people liked it, but noone loved it anymore. Owen explained his 5 big lessons:
- Know what you're building. Is it a tool or experience? Tools should do one thing well, experiences needs to be opinionated with one way to do everything.
- Know who you're building for.
- Know why you're building it.
- Know your strengths.
- Enforce the vision!
Paul Jensen helped to lend a hand in saying no to people and bringing the love back, but they currently have a slot open for a new visionary leader.
Mikeal Rogers (the master of ceremonies) gives and explanation of the changes that node has gone through, but from the eyes of a http proxy library. From using using the
sys library (remember that?) all the way to a simple one liner with pipes, Mikeal shows how node has evolved to fit its users. With eyes towards the future, he then shows how promises are being drowned out by the sheer number of new libraries, and how generators are the future. With libraries like
co, we can start using these new standards while staying compatible with our past.
"Just turn it into a node module," and other mantras Edna taught me.
Soledad Penadés shares her guilt that accumulates with bad projects that get reused. With help from Edna, jetlag and cats she takes us through the journey of learning the philosophy and best practices of node. She actually explains the mental blocks that most of us have seen but forgotten to tell anyone about. Things like why do we create new modules? Why do we use code from other people? Why don't we just copy and paste? These are questions that we now just shoo away, but are real stumbling points for people who are picking up node for the first time. She ends things with 5 major points:
- Node Modularity is awesome
- Find a mentor
- Or hang out on the proper channels
- Publish your code!
Building offline data sync
Miroslav Bajtoš starts by asking the audience "Who here has built a mobile webapp?". Almost everyone raises there hands. "Who managed to make it work offline?". Everyone put their hands down. He then introduces LoopBack, an api framework powered by node. He then shows how easy it is to create a new api, and then goes into the problems and the solutions that result in having one api that can be used online and offline.
His slides are also available here.
Silo free realtime applications!
Lloyd Watkin starts by quoting Tim Berners-Lee on open standards: "When they succeed they dramatically lower the cost of creating something". Lloyd shows the cost of relying on these silos in terms of data, freedom, and signing ourselves away. He then gives reignites passions for XMPP, the 15 year old standard. By using the node-xmpp-* libraries, we shows how easy we can start using XMPP, and not have to touch XML!
His slides are also available here.
Max Ogden shows that despite node's lack of 64bit integer support, its native streams are great for managing large datasets. With dat, Max plans on making data easier to share and use. Dat's ultimate goal is to enable a vibrant ecosystem of reusable data modules by using the unix philosophy along with its small core. After some neat demos and some inspiration to help work on projects like bionode, genome.js, bio.js and torrent-mount, he announces that dat will see its first stable release soon.
Next Level Chat Robots
Ole Michaelis talks about something close to our hearts - how awesome chat is! After giving his opinion on why chat rooms are so useful for software projects (asynchronous communication etc), he laments on how isolated some web tools are. However, by using hubot, you can start bringing the web to your chat room. This helps teams share, preserve instruction history and collaborate in ways not possible before.
Using Node-RED to help build the Internet of Things
Dave Conway-Jones finishes up the talks by showing off node-red, a
tool experience to make working with the internet of things easier. He demonstrates the large number of "nodes" that allow for plug and play experimentation and data manipulation. Its being used in the real world and allows for easy tweaking and makes everything easier for people who are just getting into software via the hardware scene.