Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,843 posts.
Planjure: A* and Dijkstra's in Om
I wrote Planjure to learn ClojureScript and Om. It’s a fun little program. You paint islands on a canvas and run path-planning algorithms to find the optimal path for your ship to traverse from start to finish. Sailing across blue ocean is faster than hiking through green islands. The three algorithms implemented are…
Writing an SDK with Core Bluetooth
Software Development For People That Help People.
Gitlab default branch name changes to main
Why we're joining the Git community and updating "master" to "main".
Why I Left the .NET Framework
The .NET Framework was good. Really good. Until it wasn’t. Why did I leave .NET? In short, it constrained our ability to choose (which is a huge deal for
PHP 5.5.5 Released
PHP is a popular general-purpose scripting language that powers everything from your blog to the most popular websites in the world.
That boolean should probably be something else
One of the first types we learn about is the boolean. It's pretty natural to use, because boolean logic underpins much of modern computing. And yet, it's one of the types we should probably be using a lot less of. In almost every single instance when you use a boolean, it should be something else.
Python is the new BASIC
The above is the Hello World program for Java, arguably one of the most popular programming languages. Encapsulated in the above three lines are several different concepts ranging from static functions to return types to stdout and to the entirety of object oriented programming in general.
A simple makefile is a unicorn
Whenever there is a discussion online about the tools to build software, there is always That One Person that shows up and claims that all b...
Representing the Impractical and Impossible with JDK 10 “var”
Having benefited from “var” for many years when writing c#, I’m delighted that Java is at last getting support for local variable type inference in JDK 10. From JDK 10 instead of saying ArrayList<String> foo = new ArrayList<String>(); we can say var foo = new ArrayList<String>(); and the type of “foo” is inferred as…
Any application that can be written in a system language, eventually will be
Atwood's Law predicted JavaScript's dominance through accessibility. A new corollary is emerging: system languages will win through operational efficiency and AI-assisted development.
PHP in 2024
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
Regexp-based RFC822 email address validation
Mail::RFC822::Address is a Perl module to validate email addresses according to the RFC 822 grammar. It provides the same functionality as RFC::RFC822::Address, but uses Perl regular expressions rather that the Parse::RecDescent parser. This means that the module is much faster to load as it does not need to compile…
Don't test with SQLite when you use Postgres in Production
Yesterday, I was looking for some help trying to have a clean way to roll back database transactions at the end of a test in a Python TestC...
Why are coding agents so dumb?
Models are getting better and better, while the agents that drive them languish.
For processing strings, streams in C++ can be slow
The C++ library has long been organized around stream classes, at least when it comes to reading and parsing strings. But streams can be surprisingly slow. For example, if you want to parse numbers, then this C++ routine is close to being the worst possible choice for performance: std::stringstream in(mystring)…
Banish missing glyphs with Unifont
The GNU Unifont project is amazing. It contains every Unicode glyph in one single file! I am going to argue that you should bundle it with your apps, your operating systems, and - at a pinch - your websites. The Unifont is a perfect fallback font. If your app or website uses a Unicode character which isn't supported…
Let the Type System do the Work
How to use your language's most-overlooked feature to its utmost.
You don't need Next.js – Why we migrated from Next to React
Why we moved the ComfyDeploy dashboard from Next.js to React with TanStack Router and Rspack: build time fell from 3 minutes to 18 seconds.
APL: An Array Oriented Programming Language (2018)
APL was invented by Ken Iverson in the early 1960s as a notation for array oriented calculations. It was precise and useful enough, so it…
AI made coding more enjoyable
To me, one of the most annoying parts of software engineering is writing code that doesn’t require thinking. It’s just a typing exercise, and that’s boring.