Archived post — originally dated 2014-12-09.
Historical context: This list reflects December 2014 book editions, tooling, and io.js news. The Streams, Tape, io.js, and Hexbin illustrations are unavailable. The other images may differ from their 2014 versions.
Catching up on a bunch of stuff by substack and ogd and learning some things when developing tempy, plus a few other tangents.
Browserify all the things!
-
Browserify-handbook - Read all of it!
Browserify didn’t really make sense until I was able to understand
require.People used to think that exporting a bunch of handy utility-style things would be the main way that programmers would consume code because that is the primary way of exporting and importing code on most other platforms and indeed still persists even on npm.
-
Rails is omakase - More on why small modules are nice.
-
Node Packaged Modules A nice dose of sanity to the insanity that is front-end JS library management.
There is only one problem: browsers don’t have a good way to load modules. The state of the art is to have a ton of script tags that either leak globals e.g. how jQuery plugins all use $ or use RequireJS to manage loading code into the correct scopes.
-
ES6 Modules: The End of Civilization As We Know It? - dlmanning pointed this article out regarding the future of module loading. Excellent read.
-
Browserify-middlware - A connect style middleware for generating your browserified bundles.
-
wzrd.in - CDN for common.js packages.
-
multi-shim-example-including-dependencies - Adapting global JS libs for browserify.
Streams and Promises
Streams Handbook illustration link — Original illustration unavailable. Original image reference
-
Streams can help to separate your concerns because they restrict the implementation surface area into a consistent interface that can be reused.
Streams have always been more confusing than callbacks, and after reading this, they are much easier to understand. That being said, its concerning to see how different APIs are of the various stream versions.
-
Speaking of streams, promises seem weirder the more I hear about them:
23:51:54 <rvagg> Promises are a huge pollution to interoperability, an abstraction on top of an abstraction
23:52:51 <rvagg> Domenic: they are an hack on top of synchronous languages that haven’t grown up with first-class functions and they are an uncomfortable fit in JS because of this
23:53:18 <rvagg> they allow you to defer your learning of what "asynchronous programing" means, further delaying your ability to write more performance and parallel code
23:54:44 <rvagg> callbacks are the very definition of a representation of "stuff that happens in the background", we have that mechanism already
23:55:23 <rvagg> helping people adapt to full CPS is a more worthy goal than allowing them to defer that for even longer (and they do have to get there in the end no matter what route they take) rvagg on #io.js
Testing and Tasking
-
Tape drive illustration unavailable. Original image reference
Converted all tests to use tape. Testing becomes much simpler when you don’t have a magical framework doing things for you. Mocha be gone! At least the workings of mocha is clear too.
-
Paired with tape-spec
-
How to Use npm as a Build Tool - instead of make, gulp, grunt.
io.js/node stuff
io.js Jupiter artwork unavailable. Original image reference
Node.js is forked. Here is all that you need to know.
Misc
-
In line with only using NPM as your task runner, but only using basic modules as an http server.
-
Hexbin.io - Yay hex stickers Hexbin illustration unavailable. Original image reference
-
Node.js Hackday: Building a federated architecture by James Haliday
Node.js Hackday: Building a federated architecture by James Haliday Covered in this video:
Blog posts about these tools:
-
shared rendering in node and the browser - Template DSL languages are annoying and the HTML only ones are usually no better.
Books
Want / reading / read:
A few links from the book:
-
“Node.js might be the most exciting single piece of software in the current JavaScript universe. Ryan received standing ovations for his talk and he really deserved it!”
The video is actually dead at this link, but its been archived to youtube.
Node.js by Ryan Dahl -
Ryan Dahl Talk - NodeConf Theatre 2012.ogv
Ryan Dahl Talk — NodeConf Theatre 2012 -
Javascript: Your New Overlord -
jslinux - Linux runnuing in your browser