Some nice changes in Neovim 0.12.0. The out-of-the-box experience is growing in capabilities.
I spent some time this weekend refreshing my config and wrote up some notes in my blog
justinhj.github.io/2026/04/06/r...
Posts by justinhj
When to use Zig instead of Rust
freedium-mirror.cfd/https://medi
I don't normally post my email newsletter, but I thought this one was a banger: on the dualities between constructor injection, the reader monad, comonads, and effect handlers. If that sounds like your jam: buttondown.com/functionalpr...
(Or just grab the book! functionalprogrammingstrategies.com)
I’m still open to work: I’m a software engineer in Sydney who’s as hands on building products, as he is wrangling architecture and integration, or managing devops, observability and infrastructure.
Typescript/Node/React/AWS is my primary stack, but adaptable to whatever else.
onsite/remote/hybrid
I wrote a post about a cool feature that's actually been in Grace for a while: type-safe eval
This feature also powers Grace's support for type-safe dynamic imports, a feature which had long been requested in Dhall
haskellforall.com/2026/01/type...
Blog post: A deep dive into four different ways to merge sorted runs of data, with interactive guides for each.
justinhj.github.io/2026/01/19/v...
I love anything that enables people to understand the power of composition visually. I always remember this great article on procedural graphics:
www.gamedeveloper.com/production/p...
🤖 Many teams don’t live in a Scala-only world. This session shares what it’s like to use Scala inside a Go-first company and where it shines.
Check out "Using Scala in a Go-First Company" from Christian Hollinger
Enjoyed the article! I find Liskovs papers on Clu and abstraction really interesting. Especially that they sort of ignored inheritance initially to focus on other abstractions.
New year, new newsletter! This one's all about the Liskov Substitution Principle and how it applies to more than just object oriented programming!
buttondown.com/hillelwayne/...
Image shows a box of ferrero rocher chocolates where the upper triangle has been eaten like 2d matrix where the lower half triangle is ones
Ferrero Causal Attention Mask so AI can learn what chocolate I will likely eat next
Yeah, it may be a while for a mature v1 of the language and the std lib will take longer perhaps. I do find it fun to work with and it doesn't have any backwards compatibility to worry about.
You have inspired me to catch up on the latest C though.
I made a video about patterns with closures in C using the new nested functions to illustrate my point.
Closures are going to make C programming SO MUCH EASIER AND SAFER.
And GCC new "safe" nested functions are going to be good enough for now.
youtu.be/MriJGb1ZimI?...
I have a love hate relationship with c++ and I'm mostly thankful I rarely need it for work. I am a big fan of Zig but I worked for a few years in C and still have good feelings about it.
Nice I have been keep up to date with C++ but had no idea C was getting closures
Let's fix the links :D
Program Development by Stepwise Refinement - Niklaus Wirth
sunnyday.mit.edu/16.355/wirth...
Notes on structured programming - Dijkstra
www.cs.utexas.edu/~EWD/transcr...
Abstraction Mechanisms in CLU - Barbara Liskov
dl.acm.org/doi/10.1145/...
In particular the CLU language was very forward looking. I find it ironic that Liskov is so well known for inheritance, which she did work on, but her work before that eschewed inheritance entirely and focused on other abstractions. After her work on sub-typing she shifted to distributed systems.
Holiday reading for software engineers
[Program Development by Stepwise Refinement - Niklaus Wirth](sunnyday.mit.edu/16.355/wirth...)
[Notes on structured programming - Dijkstra](www.cs.utexas.edu/~EWD/transcr...)
[Abstraction Mechanisms in CLU - Barbara Liskov](dl.acm.org/doi/10.1145/...)
To paraphrase the author "It's not just playing Pokemon it's doing science"
blog.jcz.dev/gemini-3-pro...
Cool
Nice intro to where algebraic effects fit into the Scala ecosystem
run it with zig build run-day8-part3 -- day8zig/input.txt 2> input.csv
(then chop off the top two lines)
It does not solve the problem just visualizes building the circuits in the order each vector was added.
In order to generate the data I I modified part1 of my solution to output the vectors and their circuit id comma delimited.
github.com/justinhj/adv...
Hey Advent of Coders.
I made this visualizer with Gemini. Pretty nice to watch it build the circuits in 3d using three.js.
heyes-jones.com/circuitbuild...
You can paste in your own code for examples or the input. This is hard coded with my input.
I was interviewed by Serokell regarding my job in Scrive and how we use #Haskell in production, enjoy! serokell.io/blog/haskell...
Happy to share a new blog post! I've been working on a side project to learn more about the tokenization process of LLM's. In the blog post I explore porting Andrej Karpathy's minbpe tokenizer from Python to C++: justinhj.github.io/2025/07/30/j...
Some of the most popular disk copying utilities for the BBC Micro. I found Howard Spurr's 'Disk Duplicator III' was very effective with most protected disks. All were used to make backups of originals of course!
Empty food tray with a label reading "Antipasta Pasta Salad, $7.99 /lb" next to trays with food at a self-service counter.
i'm no stephen hawking but i think what happens is that they cancel each other out