Top all-time · #1148
Ian Henry
Personal blog · ianthehenry.com · on HN as ianthehenryprogrammingdesign
Ian Henry's personal blog at ianthehenry.com covers programming and design. Since 2014, 62 different Hacker News readers have linked it 107 times, most often “How to Learn Nix”. It is still writing: the last post was on 2026-07-27, and you can follow it by feed.
Most-linked posts?
- How to Learn Nix6 people · 6 mentions · first linked 2021-11-22
- Drinking with Datalog5 people · 7 mentions · first linked 2022-02-21
- Sd: My Script Directory5 people · 5 mentions · first linked 2021-03-15
- Visualizing Delaunay Triangulation5 people · 5 mentions · first linked 2022-07-11
- How to Learn Nix4 people · 4 mentions · first linked 2021-05-08
- Making a Game in Janet4 people · 4 mentions · first linked 2021-10-13
- How to configure tmux, from scratch3 people · 5 mentions · first linked 2021-11-16
- The Problem with Macros3 people · 4 mentions · first linked 2021-10-12
- A different kind of keyboard3 people · 4 mentions · first linked 2021-09-22
- Why Janet?3 people · 3 mentions · first linked 2023-04-12
What Hacker News says?
https://ianthehenry.com/posts/sd-my-script-directory/
Comment linking /posts/sd-my-script-directory/
on “Start all of your commands with a comma (2009)”Submitted A different kind of keyboard as a story · 418 points
HN discussionThis post is dead-on. I've been trying nix in different forms for years, and it's been incredibly painful. The way the folks who use it normally talk about it is so different from real-life use by non-experts it feels like gaslighting. I only felt vindicated when reading https://ianthehenry.com/posts/how-to-learn-nix/ -- it's not me it's them. Maybe one day it'll get good enough to be usable. Right now it's a long,…
Comment linking /posts/how-to-learn-nix/
on “The Curse of NixOS”Submitted Tmux lets you select and copy text with your keyboard as a story · 332 points
HN discussionI love this, I've been iterating on workflows like this for something like a decade now. Over time I've tried to peel back as many of my custom layers as possible, because all of those layers have a maintenance cost. Stock Vim (without `tmux`) can actually do most of what's shared in this post with `rg --vimgrep restore_tool | vim -c cb -` (`vim -c cb -` is my favorite feature in Vim; I find it strange that it's so…
Comment linking /posts/tmux-copy-last-command/
on “How I use my terminal”Submitted How to Learn Nix as a story · 322 points
HN discussionI stumbled on this lately, which I've borrowed myself and I'm finding it pretty convenient: https://ianthehenry.com/posts/sd-my-script-directory/ Shell completions are essential for it, so I had to stumble through writing my own for Fish, but now that it's setup it's quite nice.
Comment linking /posts/sd-my-script-directory/
on “Useful sed scripts and patterns”Submitted Janet for Mortals (2023) as a story · 241 points
HN discussionTo others who might be interested in trying Nix instead of Homebrew: There is a `brew install` equivalent in vanilla Nix -- `nix-env` provides an imperative interface pretty similiar to `brew`. `nix-darwin` is a third-party thing that tries to give you a NixOS-like experience on macOS. It's not necessary if you're only interested in replacing Homebrew. You can have `shell.nix` files and ad-hoc environments without r…
Comment linking /posts/how-to-learn-nix/switching-from-homebrew-to-nix
on “macOS Nix setup: an alternative to Homebrew (2020)”Submitted Building Bauble as a story · 205 points
HN discussionWe use ReactiveCocoa [0] extensively at work and can't recommend it highly enough [1]. (Although admittedly KVO makes Cocoa almost the ideal platform for reactive programming.) [0]: https://github.com/ReactiveCocoa/ReactiveCocoa [1]: http://ianthehenry.com/2014/5/4/kvo-101/
Comment linking /2014/5/4/kvo-101/
on “An Introduction to Reactive Programming”Submitted Visualizing Delaunay Triangulation as a story · 176 points
HN discussionThere exists `sd` which does the same! Maybe details differ. See intro in https://ianthehenry.com/posts/a-cozy-nest-for-your-scripts/
Comment linking /posts/a-cozy-nest-for-your-scripts/
on “Ask HN: Can I see your scripts?”Submitted The Problem with Macros as a story · 151 points
HN discussionIf you're looking to learn Nix start-to-end, there manuals for Nix and NixOS, both are good. This is an extensive study at trying to 'understand' Nix, because is does so many things differently: https://ianthehenry.com/posts/how-to-learn-nix/ If you're just looking to start building your system, follow NixOS manual up until you have a running system, then pace yourself as you will. You can also setup Nix on existing…
Comment linking /posts/how-to-learn-nix/
on “A decade of dotfiles”Submitted How to Learn Nix as a story · 150 points
HN discussionOh hi! Author here. Fun thing to wake up to. I wanted to point something out that the series doesn't do a good job of highlighting: You can use Nix alongside your existing package manager. They won't conflict. You can set up dev environments with Nix without drinking the kool-aid. I still have Homebrew installed, and I still occasionally reach for it in the rare cases where Nix is missing some package I want to try.…
Comment linking /posts/janet-game/how-to-patch-emacs/
on “How to Learn Nix”Submitted A different kind of keyboard (2021) as a story · 134 points
HN discussion> Whatever package is thrown your way, you can rebuild it locally and check whether you have the expected build output. This is analogous to verifying a binary downloaded from the Web by computing its sha256 hash, and comparing it to the one provided by the publisher of the binary. Can someone explain this to me? There is an experimental feature to add content-addressable packages that will give you this, but Nix pa…
Comment linking /posts/how-to-learn-nix/
on “Nix: An idea whose time has come”Submitted Sd: My Script Directory as a story · 128 points
HN discussionNix needs a new porcelain interface for it's CLIs. Moreover, this post sums up one of my biggest issues stopping me from trying Nix for real again: https://ianthehenry.com/posts/how-to-learn-nix/ambiguous-pac... Finally, needing to rewrite everything in Nix is nice for poorly written configurations or undocumented packages in general, but seems redundant for well maintained software. Has anyone else come up with a s…
Comment linking /posts/how-to-learn-nix/ambiguous-packages/
on “Nix: Taming Unix with Functional Programming”Submitted Quote-unquote "macros" as a story · 101 points
HN discussionI think the problems with nix-env come down to two things: - nix-env -i and nix-env -u will almost certainly eventually do the wrong thing for you if you use them enough (nix-env -iA is ok): https://ianthehenry.com/posts/how-to-learn-nix/ambiguous-pac... - It's not reproducible as it depends on the state of your nix-channel setup at that time. How much of a problem this is depends on your use case. nix-as-homebrew-r…
Comment linking /posts/how-to-learn-nix/ambiguous-packages/
on “Our Roadmap for Nix”Submitted Zsh-autoquoter makes shell quoting slightly less annoying as a story · 90 points
HN discussionNo janet despite https://ianthehenry.com/posts/janet-game/ (article copyrighted between 1899-1907, but doesn't look vintage that's a shame)
Comment linking /posts/janet-game/
on “Lisp: Icing or Cake?”Submitted My kind of REPL (2023) as a story · 87 points
HN discussionIan Henry has, thankfully memorialized the learning process so that we can all readily rediscover it. https://ianthehenry.com/posts/how-to-learn-nix/introduction/
Comment linking /posts/how-to-learn-nix/introduction/
on “Nix-GUI: Make NixOS usable for non-technical users through settings / GUI”Submitted sd – a cozy nest for your scripts as a story · 85 points
HN discussionI've been writing about my first impressions of the language here: https://ianthehenry.com/posts/janet-game/ Not a whole lot of content yet, but I plan to keep going with it. I am pretty firmly in the Haskell/OCaml "let me program with types" camp for most development, but it's a great to have a little scripting language to reach for instead of bash or Python or Perl. Using Janet (coming from Python) reminds me a bi…
Comment linking /posts/janet-game/
on “Janet – a Lisp-like functional, imperative programming language”Submitted Decoding UTF-8 with Parser Combinators as a story · 69 points
HN discussion