New
The latest blog posts to take off on Hacker News. 21,823 posts.
A look at Unison: a revolutionary programming language
Unison is a pure functional programming language that comes with a few revolutionary ideas. Seriously, it makes everything we’re used to, like long builds, dependency version conflicts, tests that run every single build even when nothing checked by them has changed, manual encoding and serialization of data, and lots…
High level mods/patches for console video games
This blogpost explores my journey of bringing higher level languages (in this case C) to console video-game modding, as an alternative to hand-tailored assembly mods.
Linux Touchpad like MacBook Update: 2022 progress and new poll
Bill is driven by the challenge of how best to quantify valuable questions that defy quantification. It's possible this instinct may have been awakened in Bill at age 14, when he won a soft, stuffed bunny at the orthodontist for guessing the number of jelly beans in the gumball machine.
The Art of LaTeX: Common mistakes and advice for typesetting proofs
When was the first time you had to use LaTeX? If you are like most people, it was probably suddenly forced upon you during your first math or CS class where you had to start writing proofs, with minimal guidance on how to get started. Unfortunately, this meant that while many people have good operational knowledge of…
OOP in C
The art of good programming depends upon the discipline of the programmer, no matter what language is being used. The purpose of object oriented programming (OOP) is to produce well designed reusable code. In principle OOP can be done in any language, even assembly. This is because all OO language compilers/assemblers…
SDL2 common mistakes and how to avoid them
SDL has grown on me over the past year. I didn’t understand its value until viewing it in the right lens: as a complete platform and runtime replacing the host’s runtime, possibly including libc. Ideally an SDL application links exclusively against SDL and otherwise not directly against host libraries, though in…
There is no software maintenance
Every time I hear about software maintenance as a distinct activity, I cringe. That’s because it is based on the outdated notion that first software is developed, then it is maintained. But t…
The Safari bug that never was (2022)
In October 2021, Ian, a fellow frontend developer at GDS posted a message in our support channel for the GOV.UK Design System on Slack:
Modern C for C++ peeps (2019)
(update 26-Aug-2020: the MSVC team has recently added C11language support to their roadmap, hooray!)
Software horror show: SAP Concur
From the highly eclectic blog of Mark Dominus
Modern Polars: A comparison of the Polars and Pandas dataframe libraries
A side-by-side comparison of the Polars and Pandas libraries.
X servers no longer allow byte-swapped clients
In the beginning, there was the egg. Then fictional people started eating that from different ends, and the terms of "little endians" an...
A practical comparison of build and test speed between C++ and Rust
A practical comparison of build and test speed between C++ and Rust.
Transcoding Unicode with AVX-512: AMD Zen 4 vs. Intel Ice Lake
Most systems today rely on Unicode strings. However, we have two popular Unicode formats: UTF-8 and UTF-16. We often need to convert from one format to the other. For example, you might have a database formatted with UTF-16, but you need to produce JSON documents using UTF-8. This conversion is often called…
A Lisp interpreter implemented in Conway's Game of Life (2021)
Lisp in Life is a Lisp interpreter implemented in Conway’s Game of Life.
Microfeatures I'd like to see in more languages
There are roughly three classes of language features: Features that the language is effectively designed around, such that you can't add it after the fact....
Babashka Babooka: Write Command-Line Clojure
There are two types of programmers in the world: the practical, sensible, shell-resigned people who need to google the correct argument order for ln -s ; and those twisted, Stockholmed souls who will gleefully run their company’s entire infrastructure on 57 commands stitched together into a single-line bash script.
Reverse Engineering the DualShock 4
This year I got a very special gift for Christmas: a broken DualShock 4. :smile:You may say it’s a relatively poor gift, but the person who gave me this know...
How to Optimize a CUDA Matmul Kernel for CuBLAS-Like Performance: A Worklog
In this post, I’ll iteratively optimize an implementation of matrix multiplication written in CUDA.My goal is not to build a cuBLAS replacement, but to deepl...
Two surprises in browser crashes
A small Figma war story.
Urllib3 in 2022
Funding In total urllib3 received $26,615 USD in financial support and distributed $18,622 USD to maintainers and community contributors. We're thankful for the financial support we receive from o...
QBittorrent v4.5.0: The Hitchhiker's Guide to Legible Text
L.C. Bakken technical blog
Ruby 3.2.0 is from another dimension
I don’t know what you were doing on 25th of December 2022. I was eating pierogis, while Ruby team did some epic sh***!
The faker's guide to reading x86 assembly language
Assembly code scares people. There’s a good reason for that. For many people, writing code in assembly language seems equivalent to writing code in ancient dwarven runes, or calculating pi in roman numerals. The fact that RollerCoaster Tycoon was almost completely written in assembly language sounds almost too amazing…