3 days ago
Young people lack the wisdom that comes from hardship. They fall for scams, uncritically participate in corporate viral marketing campaigns specifically aimed to take advantage of them, believe improbable things, and take risks that could lead to permanent harm. They try stuff that, to an older person, is obviously going to fail. This is because they are not yet jaded. Their belief system has not yet been scarred by living in this world. They lack the coping mechanisms that older people have developed over time to avoid getting hurt the same way over and over again. This is both a blessing and a curse. Older people are more adapted to living in the real world, but young people are more driven to change it. We need the wisdom that comes with age, but we also need the blind eagerness of youth, the willingness to try again something that has already failed a million times. We need unfettered optimism; the ability to find joy even in the wasted ruins of what was once a great city.
The bells! They toll for me… ON a less doomer note, my next class using C++ is a great excuse to finally learn a big boy systems language. If I am a #RealGrinder, this could be a great language for implementing basic distributed systems and such. Lock In!
A handy guide to the Janet language, which is a lisp dialect inspired by closure and lua.
4 days ago
The folks behind the Lua programming language maintain a page detailing the release dates of all released versions of the language. My favourite thing about that page is that right at the top there is a graphical timeline, with years marked below the line and a little vertical marker above the line at the appropriate place for each release. This timeline makes it immediately obvious at a glance that Lua is doing something all software projects ought to aspire to but very few actually manage to achieve: it is slowing down.
5 days ago
Rust ISN’T like any other language. In Rust, it’s EASY to write code that never crashes. So why DON’T people do that?!
Very good question.
8 days ago
Tail-recursive code in JavaScript still risks stack overflow in real-world runtimes. Learn when recursion is safe and when to switch to iterative patterns.
The trampoline pattern is really cool. And I am only lightly upset that ECMAScript runtimes don’t implement tail call optimization as specified. :’)
9 days ago
I made Quake run on MP3 players.
Very cool port!
27 Jul 26
An outlook on AI-assisted programming, and how having AI write code means we miss out on the tiny brain-rewards that writing code by hand grants us.
21 Jul 26
Structured cospans are a categorical method for turning closed systems into open ones. We show how structured cospans of Petri nets can be used to construct complex epidemiological models in a compositional way.
Very interesting, although it went over my head a bit.
20 Jul 26
The idea of a C-set was introduced in an earlier post. In this post, we explain how C-sets are implemented as a data structure in the Julia programming language.
see: https://blog.algebraicjulia.org/post/2020/09/cset-graphs-1/
Through the course of this blog we will encounter a diverse cast of algebraic structures generalizing the concept of a graph. In this post we start at the very beginning, with how category theorists understand graphs, how graphs are an example of a general class of structures called “C-sets,” and how C-sets can be used as data structures in Julia through Catlab.jl.
I’m finally doing it. This post is not too bad now that I’ve picked up on a lot of the core ideas over the past few months.
via: https://github.com/AlgebraicJulia/ACSets.jl?tab=readme-ov-file#learning
15 Jul 26
When you’re proficient with your editor of choice—whatever it is—it disappears into the background. But the moment it cannot handle something easily, it stops being invisible. What baffles me is that so many people treat that friction—the effort of working around a tool’s limitations—as the “fun” part, and then advertise it as evidence that the tool is great.
Part of why these debates turn religious is that a tool choice becomes a flag you plant—it says something about who you are. The “hacker vibe” isn’t a mere aesthetic; it’s tribal signaling, and that’s the real trap. Once your identity is invested in a tool, admitting its flaws starts to feel like admitting something about yourself.
Designing an ergonomic tool is fundamentally about having good defaults, while still allowing escape hatches where they’re possible/needed.
Much in common with Borretti’s “You Can Choose Tools That Make You Happy.”
see: https://borretti.me/article/you-can-choose-tools-that-make-you-happy
Beautiful, incredibly lightweight, incredibly extensible text editor written (and extendable) in Lua.
14 Jul 26
And how to build things the right way.
In his first week at SingleTrac, a video game company that made cult classics like Twisted Metal, Jay Barnson discovered the “black triangle” – a way of describing problems that are giant in engineering scope but don’t tend to be all that impressive to anyone else.
via: https://github.com/coln-project/Coln
13 Jul 26
Project Mage is a quest for seamless structural editing, a decent GUI toolkit, and, overall, an environment where interactivity, flexibility and power are valued very highly. A few applications are on the roadmap, notably the ones providing for note-taking, computational notebook capabilities, project-info tracking, decentralized version control, and an IDE for Common Lisp.
I totally forgot about this project. Not much has happened since I started following it in 2024. Likely will die of over-ambition, even though much of its ideas are sorely needed.
I’m a software engineer at Tyba, open-source maintainer, amateur musician, recovering entrepreneur, and father of two. In my copious free time I work on Biff (Clojure web framework) and Yakread (reading app).
Had a lot of really interesting ideas on unbundling social media while Twitter was going through the shitter. Unfortunately, a lot of his business bets on said ideas didn’t work out the way he wanted, but still an impressive designer and engineer, nonetheless.
see: https://obryant.dev/unbundling-social-media/
12 Jul 26
Around 2000 I took an AI course at the University of Guelph. I don’t think I learned too much. We didn’t talk about neural networks, as far as I can remember. My end of term project was, I think, a pathfinding algorithm wearing an AI costume. There were certainly no discussions of transformers. No CUDA. No PyTorch. None of that existed.But what I remember doing a lot of was coding in Lisp - a lot of Lisp in the dark University of Guelph CIS lab.
When you’re proficient with your editor of choice—whatever it is—it disappears into the background. But the moment it cannot handle something easily, it stops being invisible. What baffles me is that so many people treat that friction—the effort of working around a tool’s limitations—as the “fun” part, and then advertise it as evidence that the tool is great.
Part of why these debates turn religious is that a tool choice becomes a flag you plant—it says something about who you are. The “hacker vibe” isn’t a mere aesthetic; it’s tribal signaling, and that’s the real trap. Once your identity is invested in a tool, admitting its flaws starts to feel like admitting something about yourself.
Designing an ergonomic tool is fundamentally about having good defaults, while still allowing escape hatches where they’re possible/needed.
Much in common with Borretti’s “You Can Choose Tools That Make You Happy.”
see: https://borretti.me/article/you-can-choose-tools-that-make-you-happy