Substack (James Halliday)

substack.net · Personal blog · on HN since 2010

James Halliday (substack) writes about Node.js, npm, browserify, and browser tooling, and also posts generative art and experiments.

What HN saysHN links it for Node and browserify tooling, such as npm run scripts and DNode. Commenters point to it when discussing maintainers and releases.
40HN people shared it
20linked it in comments
49stories submitted
836story points
8 months agolast shared
2010people per year2026

Most-shared posts

  1. 1
    Task automation with `npm run`
    7 people · 27 points · first shared 2013 · 1 comments on HN
  2. 2
    Weaning yourself off jQuery
    6 people · 24 points · first shared 2013 · 10 comments on HN
  3. 3
  4. 4
    Offline decentralized single sign-on in the browser
    3 people · 3 points · first shared 2014 · 1 comments on HN
  5. 5
    Analog Television Simulation
    2 people · 98 points · first shared 2020 · 17 comments on HN
  6. 6
    Semver your services with seaport
    2 people · 3 points · first shared 2012 · discussion on HN
  7. 7
    Many Things
    2 people · 2 points · first shared 2013 · discussion on HN
  8. 8
    substack art
    2 people · 1 points · first shared 2019 · discussion on HN
  9. 9
    The node.js aesthetic
    1 people · 136 points · first shared 2011 · 76 comments on HN
  10. 10
    Serial over webaudio
    1 people · 127 points · first shared 2015 · 26 comments on HN
  11. 11
    Javascript AST trickery with burrito
    1 people · 64 points · first shared 2011 · 6 comments on HN
  12. 12
    Heatmaps for node.js and the browser
    1 people · 56 points · first shared 2011 · 3 comments on HN
  13. 13
    Bounce your http requests around with bouncy
    1 people · 44 points · first shared 2011 · 18 comments on HN
  14. 14
    Show HN: Heatwave - our node.js knockout project
    1 people · 41 points · first shared 2011 · 8 comments on HN
  15. 15
    Browserify: browser-side require() for your node.js
    1 people · 40 points · first shared 2011 · 9 comments on HN

What HN people wrote when they linked it

malandrew · 2013-12-04
Joyent, Please do the classy thing and have Isaac create a NodeJS organization on Github and move the project to that organization under his stewardship. With great power came great responsibility and using the Joyent corporate blog to excoriate one of the community's most valuable contributors is the path to the dark side. http://substack.net/images/coronation.png
sirgawain33 · 2015-07-26
I highly recommend this road as well. Three exercises along the lines of the parent that I found particularly valuable: 1. Compare VanillaJS TodoMVC to your framework of choice http://todomvc.com/ https://github.com/tastejs/todomvc/tree/gh-pages/examples/vanillajs What does the framework buy you? Is the framework-powered code easier to read? Easier to understand for a newcomer to the code base? 2. Read every line of Effective Javascript (it's short and eminently practical) and write out every code example. http://www.amazon.com/Effective-JavaScript-Specific-Software-Developme… There are about a dozen small errors in the code in the book, see if you can find them. 3. Read substack's alternative Javascript build flow: http://substack.net/task_automation_with_npm_run Think about the possibilities and limitations. (I personally love his approach at the beginning of projects when I could care less about fiddling with gulp and want to get into exploring the guts of a problem)
chapel · 2011-02-15
I wanted to cross post this here as I already posted it in the comments. ----- I am glad you wrote about this, but I feel you are missing the real 'magic' that can be done with node.js and Backbone, or any client code you choose. Socket.io is great, fantastic even, and I think it is something that really shows the power of node.js; there is something built on top of socket.io that is even more wonderful, and it is called dnode[0]. It is really simple to use, but has a lot of potential for server process to server process and server to client communication. It is in effect RPC, and I really can't do it justice. For the example you give up here, you could easily overwrite the Backbone.sync function and have it instead send the appropriate objects you need to fetch models on the server, while having the server call back to the client with said models. Not only that but you could easily remotely invoke the model changed functions in Backbone directly from the server. There is so much more you can do, but I lack the knowledge at this point to put it in play just yet. [0]: https://github.com/substack/dnode & http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-Method-Invo…
Mathnerd314 · 2022-06-01
Browserify had a PR merged on master in March for switching from non-ECMA String.substr to String.slice: https://github.com/browserify/browserify/pull/2036 Apparently it's too trivial for a release but the maintainers still seem to be around. Substack.net listed in package.json seems to be working: https://substack.net/cv.html
oftheoaks · 2021-01-10
Us cabal devs really like irc. Cabal was inspired in part by it. You might enjoy this explanatory zine: https://substack.net/zine/cabal.html
rashkov · 2020-12-07
You all might also enjoy analog TV encoding/decoding in your browser: https://substack.net/tv based on these repositories: https://github.com/substack/glsl-ntsc-video - modulate and demodulate an ntsc video signal in a shader https://github.com/substack/ntsc-video-simulator - real-time ntsc television simulator https://github.com/substack/analog-tv-simulation - the demo itself
potomak · 2015-05-15
About the topic of replacing jQuery I really enjoyed reading "Weaning yourself off jQuery"[0] by James Halliday. It shows how to replace some of the jQuery features with the DOM API and/or with npm libraries such hyperquest[1]. [0] http://substack.net/weaning_yourself_off_jquery [1] https://www.npmjs.com/package/hyperquest
andrezsanchez · 2015-01-29
That's an interesting perspective. I don't have any inherent problems with large libraries, but my problem with some of these 'monoliths' is that other libraries start to depend on the entire library when they only need a small piece of functionality that the library provides. Substack wrote an article [1] explaining some of the problems that monolithic libraries cause in an ecosystem. [1] http://substack.net/many_things
fiatjaf · 2014-12-04
Instead of focusing on an installable client you should use these new techniques: http://substack.net/offline_decentralized_single_sign_on_in_the_browse…
williamcotton · 2014-12-03
What about something like this? http://substack.net/offline_decentralized_single_sign_on_in_the_browse… Edit: This article describes a solution that uses an appcache manifest with a far-future max-age that stops the browser from refetching the application code. It then uses an alternative mechanism to load updates presumably with a future option capable of verifying the legitimacy of the code with some sort of public key infrastructure ala Microsoft's Authenticode.
2mur · 2014-03-11
Here's the thoughts of substack on this issue. I use npm and bash scripts. http://substack.net/task_automation_with_npm_run
indubitably · 2014-01-16
A couple more links on this topic: Vanilla JS vs jQuery https://gist.github.com/liamcurry/2597326 weaning yourself off jquery http://substack.net/weaning_yourself_off_jquery
seoguru · 2011-06-14
have a look at dnode: https://github.com/substack/dnode bidirectional remote method invocation. Oh, and a complimentary robot free of charge: http://substack.net/browse/2010-11-08%2022:16:39 :-)
indexzero · 2011-04-04
Is it your plan to just spam HackerNews with this project? I'm going to put this to rest here: this is not interesting Just use dnode and socket.io. The authors (substack and guille respectively) have ridiculous chops when it comes to Node.js and have been working on their projects for more than a year. http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-Method-Invo… http://socket.io
simonw · 2010-09-12
Have you seen DNode? http://substack.net/posts/85e1bd/DNode-Asynchronous-Remote-Method-Invo… Doesn't solve that problem (which is really, really hard) but it's a very interesting step.
pluma · 2015-06-05
It'd all be so much easier if people just stuck to what's already there. If you use NPM (which, if you're doing modern JavaScript, you should be using) you already have a task runner. If you can write shell scripts (whether actual shell scripts or just arbitrary scripts with a hashbang) you can write tasks. What's more, you can combine existing tasks and everything that has a CLI is already a task: http://substack.net/task_automation_with_npm_run Seeing all these grunt-* and gulp-* wrappers makes me sad. Unless your project is very complex, all you need can fit in your package.json (and, maybe, some scripts if you can't find anything that already does what you need it to do). There are some projects that benefit from using dedicated build frameworks like Grunt, Gulp and so on. But the vast majority of projects using them just use them to run one or two tasks that already have a CLI. In those cases it's over-engineering a non-problem. I agree that AngularJS is needlessly complex. It hides a lot of straightforward ideas behind confusing terminology ("this is a service, this is a constructor, but a constructor isn't actually a constructor, it's a function that creates a service, no not that kind of service, that one's just a function called service because reasons"). But I don't think that's representative of all libraries and frameworks. jQuery for example, though ridiculed by many at this point, still exists and is still a go-to solution for conventional web pages. If…
dshaw7 · 2012-07-10
SHOW NOTES: Ryan Dahl - How it all started. - http://twitter.com/ryah Matthew Podwysocki - Node at Microsoft - http://twitter.com/mattpodwysocki Matthew Eernisse - Node at Yammer - http://twitter.com/mde Isaac Schlueter - Node at Node - http://new.npmjs.org - http://twitter.com/izs Visnu Pitiyanuvath - Node Knockout, Nov 10-11, 2013 - http://nodeknockout.com/tell-me-a-story - http://nodeknockout.com - http://twitter.com/visnup Guillermo Rauch - Story of Socket.io and Socket.io 1.0 announcement. - Socket.io came out of wanting to implement operational transforms ala Etherpad. - http://twitter.com/rauchg Daniel Shaw - “More Realtime” - RedisStore Docs, Socket.io-Announce, Redis Monitor - http://dshaw.github.com/2012-07-nodeconf - http://twitter.com/dshaw Mikito Takada - “Real time at larger scale” - http://mixu.net/slides/nodeconf - http://twitter.com/mikitotakada Bert Belder - libuv - http://twitter.com/piscisaureus Fedor Indutny - Candor - https://github.com/indutny/talks/ - http://twitter.com/indutny James Halliday - http://substack.net/doc/nodeconf_2012/ - http://twitter.com/substack Voicebox Party - Top 5 songs: Bohemian Rhapsody, Never Gonna Give You Up, Fresh Prince, Sabotage, Don’t Stop Believin’ - http://voiceboxpdx.com/nodeconf-2012-aftermath/ - http://voiceboxpdx.com/api - http://search.npmjs.org/#/voicebox-karaoke Tim Caswell - Luvit (Lua + libUV + jIT) - https://github.com/creationix/nodeconf2012 - https://twitter.com/creationix/ Marco Rogers -…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close