New
The latest blog posts to take off on Hacker News. 3,821 posts.
Compile time evaluation in Nim, Zig, Rust and C++
Evaluating code at compile time is a capability that most, if not all, compiled programming languages possess, even if it can't be directly used by the programmer, but rather applied as an optimization. In this post, we'll explore a bit how to execute code at compile time in Nim, Zig, Rust and C++.
Sorbet and 100% cov makes Ruby refactoring possible
Safely refactoring Ruby traditionally involves many incremental steps and feature flags. Sorbet and 100% branch coverage make it possible to refactor a lot of code safely.
Things I sort of believe about making music
I've now been recording music at home for most of my life. I started at around 14. I would record things into audacity, sometimes with my friend Cameron, but more often by myself. I had no real idea of how to write, arrange, or record music. Besides a few covers I would mostly record incredibly abstruse 'experimental…
Hexells – Self-Organising System of Cells Drawing Textures [WebGL]
is a Self-Organising System of cells, that was trained to build textures using neighbour communication only. This work exposes the relation between the life of an individual cell, and the cell collective as a whole.
The Machine Learning Job Market
I was on the job market recently, open to suggestions on what I should do next. I'm deeply thankful to all those who reached out and pitched their companies, and also to people who shared their wisdom of how they wanted to navigate their own careers.
Start with who, not why
Work with amazing people you love collaborating with, the rest (mission, purpose, etc) falls out from that.
Principles of Engineering Management
More than 2 years ago, I decided to try to create a brief, digestible manual on the expectations of management for senior engineers at my company who are considering making the shift. At the time, …
I sold 640 copies of my book in one year
A breakdown of selling 640 copies of my first product Deployment from Scratch.
Whats New in PHP 8.2
PHP 8.2 has a new randomizer engine, readonly classes, disjunctive normal form types, redacted parameters, performance improvements, and more.
Beginners Guide to 0day/CVE AppSec Research
A while ago I took up the challenge to get Offensive Security Web Expert (OSWE) certified. During this journey I learned many awesome things. The most important lesson learned was that with source code and a debugger, I could find vulnerabilities exponentially faster than by using traditional Blackbox/Bug-Bounty…
Resumes are dangerous?
I've been interviewing engineers for a while now, and it seems the more interviews I do, the more I realize how many my initial assumptions about hiring were wrong. For example, take resumes. Initially, before every interview I'd carefully review resumes. I'd look at candidate's past
How macOS manages M1 CPU cores
From the 8 cores of the original M1 chip to the M1 Ultra’s 20, this is how macOS manages threads from apps, services and other code.
Why LSP?
LSP (language server protocol) is fairly popular today. There's a standard explanation of why that is the case. You probably have seen this picture before:
Shanghai video overwhelms Chinese censor, gets 400M views
A peek behind the curtain into the struggles of the Chinese censorship office
Against Bayesianism – David Deutsch
Bayesianism, the doctrine that it's always rational to represent our beliefs in terms of probabilities, dominates the intellectual world, from decision theory to the philosophy of science. But does it make sense to quantify our beliefs about such ineffable things as scientific theories or the future? And what separates
Atomic Habits: An Easy and Proven Way to Build Good Habits and Break Bad Ones
How do habits work? How do you change your habits? How do you hold yourself accountable? This complete habits guide contains everything you need to know.
Pushing back against contract demands is scary but please try anyway
From the highly eclectic blog of Mark Dominus
Some of the forces blocking new ideas in science
Some of the forces blocking really new ideas in science
10 years since Google said to “hang tight” about Linux support for Google Drive
We've been waiting since April 24, 2012 for a Google Drive Linux client.
Fedora 36: A brave new (DRM/KMS only) world
The upcoming Fedora release includes a change proposed by Peter Robinson and yours truly, that disables all the Frame Buffer Device (fbdev) drivers in the Linux kernel package. This means that star…
Patching an embedded synthesiser OS from 1996 with Ghidra
For reasons I won't get into, I've been working on a tricky reverse engineering puzzle recently: how to patch the operating system of a 26-year-old synthesizer. To be specific, the Kurzweil K2500, a...
No one expects young men to do anything and they are responding by doing nothing
Garbage in garbage out
Everyone should learn the slide rule (2021)
The obsolescence of the slide rule is mostly un-mourned, but as with many technological obsolescences, we have lost something valuable with its demise. The type of thinking which goes along with us…
Software Mise En Place
I am really, really into cooking. In the heady days of 2016 I regularly threw dinner parties for 30+ people. These days I don't hate myself that much, but...
The candy stores of Oxford Street
» email me » follow me on twitter » follow the blog on twitter » follow the blog on Bluesky » follow the blog on RSS
Extracting WhatsApp Messages from an iOS Backup
Find where WhatsApp chats live in an iPhone backup, decrypt an encrypted iOS backup with Python, and read your messages from ChatStorage.sqlite.