Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #7656

G

GFX::Monk

Personal blog · gfxmonk.netprogrammingsystems

GFX::Monk is a personal blog at gfxmonk.net about programming and systems. Since 2010, 10 different Hacker News readers have linked it 19 times, most often “Defer: Taming asynchronous javascript with coffeescript”. It is still writing: the last post was on 2026-01-10, and you can follow it by feed.

Visit the blog
19mentions?
10HN people?
2010–2024first – last linked?
Links on Hacker News per year · peak 5 in 2014

Too few sampled comments (6) to say how often HN recommends it.?

Why HN links it

HN readers link these posts on asynchronous JavaScript, especially a 2010 post on defer and await-style continuations in CoffeeScript. Other links cover Node.js control flow and a GNOME shell extension.

Summarised by Claude from a sample of 6 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Defer: Taming asynchronous javascript with coffeescript
    5 people · 5 mentions · first linked 2010-07-04
  2. I turned gnome-shell into a tiling window manager
    2 people · 2 mentions · first linked 2011-06-26
  3. /dist/0install/index/
    2 people · 2 mentions · first linked 2014-09-20

What Hacker News says?

  1. You might be interested by this Gnome extension http://gfxmonk.net/shellshape/

    Comment linking /shellshape/

    on “I3: Improved Tiling Window Manager”
  2. Submitted NixOS and Stateless Deployment as a story · 218 points

    HN discussion
  3. Cool :), glad it's supported, at least for the simple case of line-wise transforms. Some things can't be done without reading everything. But there are still a number of operations on "all of stdin" that can safely be done lazily. I'm particularly fond of "divide stdin into chunks of lines separated by <predicate>" [0]. Which does need context, but only enough to determine where the current chunk ends (typically a f…

    Comment linking /dist/doc/piep/

    on “Show HN: Pythonpy – the swiss army knife of the command line”
  4. Submitted OS Technologies to Watch as a story · 143 points

    HN discussion
  5. I wrote a similar tool a while back: http://gfxmonk.net/dist/doc/piep/ Mostly out of frustration for PyP not being lazy (on large inputs it reads the entire file up-front, or at least used to). But it was quite interesting to implement all the standard python idioms (like slicing) in a lazy way, and it's not that complicated a tool. I still use it a lot whenever I have a nontrivial pipeline to write.

    Comment linking /dist/doc/piep/

    on “Show HN: Pythonpy – the swiss army knife of the command line”
  6. Submitted Defer: Taming asynchronous javascript with coffeescript as a story · 69 points

    HN discussion
  7. The problem with benchmarking raw node.js code is that not a lot of real web apps will look like that. Naked node.js pushes all the asynchronous complexity on the application writer - writing everything with callbacks is equivalent to hand-writing a state machine. Since V8 does not have native continuation support, realistically it's going to devolve to libraries either doing CPS transformation ( http://gfxmonk.net/…

    Comment linking /2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html

    on “Clojure's edge on Node.js”
  8. Submitted Piep: bringing the power of python to stream editing as a story · 47 points

    HN discussion
  9. papaf · 2011-08-05Recommends
    It never became production ready, but I found this article an interesting discussion of the problem and a solution to it in Coffeescript: http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-java...

    Comment linking /2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html

    on “Node.js - A Giant Step Backwards”
  10. Submitted I turned gnome-shell into a tiling window manager as a story · 45 points

    HN discussion
  11. Thanks for the last link[1]. It is pretty amazing. I've studied some Scheme and call/cc on college (and played around with it on Ruby), but this post made me realize how much more powerful can continuations be (besides doing basic control flow/exception stuff). A post that stands on its own, whether you like/care about Coffeescript/Javascript or not. [1] http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-java...

    Comment linking /2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html

    on “Await and Defer in Coffeescript core”
  12. Submitted My new bash script prelude (2012) as a story · 4 points

    HN discussion
  13. For the curious -- previous discussion about adding TameJS constructs: https://github.com/jashkenas/coffee-script/issues/1710 And the history of a previous attempt at doing something similar: https://github.com/jashkenas/coffee-script/issues/241 https://github.com/jashkenas/coffee-script/issues/287 https://github.com/jashkenas/coffee-script/issues/350 http://gfxmonk.net/2010/07/04/defer-taming-asynchronous-java...

    Comment linking /2010/07/04/defer-taming-asynchronous-javascript-with-coffeescript.html

    on “Await and Defer in Coffeescript core”
  14. Submitted On Maintenance, or “I’ve written a lot of software, and now I have regrets” as a story · 3 points

    HN discussion
  15. It's inspired by a similar tool called `pyp`, which I considered extending but ended up going my own route instead. Here's some more information on why: http://gfxmonk.net/2012/03/28/why-piep.html

    Comment linking /2012/03/28/why-piep.html

    on “Piep: bringing the power of python to stream editing”
  16. Submitted Why Zero-Install Will Succeed as a story · 1 points

    HN discussion
  17. Great :D Sounds like you already found my vim feed, but yeah, it's at http://gfxmonk.net/dist/0install/vim-custom.xml (it's not on that index page, because nobody else is likely to want it). I've contributed to both the python & ocaml versions (and I made the logo :)). The ocaml version has not existed for all that long, I've only sent a few patches - I believe the porting itself was entirely done by Thomas, who's d…

    Comment linking /dist/0install/vim-custom.xml

    on “Simplifying 0install's solver with OCaml's functors”
  18. Ok, I hate you. I will look into 0install more seriously this time around, because you made a good pitch. Still, two questions: - The 0install feed for your customized vim install, can you link to it? - Out of curiosity, have you contributed to the Python and OCaml versions, or only one? If one, which? UPDATE: For others interested, obviously your 0install feed what onerous to find, haha. http://gfxmonk.net/dist/0in…

    Comment linking /dist/0install/index/

    on “Simplifying 0install's solver with OCaml's functors”
  19. I am a contributor, and I use it all the time. I publish a lot of my own stuff (mostly small utilities / libraries) at http://gfxmonk.net/dist/0install/index/ , as well as a bunch of third-party software. Making distro-specific packages for all of these would be a stupid amount of effort - with a single zeroinstall feed I can run cross-platform code without having to package it N different times. It is fairly easy t…

    Comment linking /dist/0install/index/

    on “Simplifying 0install's solver with OCaml's functors”

Search all of HN for gfxmonk.net

Linked by the same people?