New
The latest blog posts to take off on Hacker News. 49,221 posts.
I put my whole life into a single database
Back in 2019, I started collecting all kinds of metrics about my life. Every single day for the last 2.5 years I tracked over 100 different data types - ranging from fitness & nutrition to social life, computer usage and weather.
Increasing the surface area of blogging
Open feeds, OPML, books, blogs and graphs
Is it the “New York Review of Each Other’s Books”?
Measuring the extent of self-reviewing at the New York Review of Books from 1963-2022
I got a computer science degree in 3 months for less than $5000 (2020)
Software developer based in Montréal, Canada
Google almost convinced me to spend $400 on useless laser treatments
Online health information is terrible. How can we fix it?
No, you can’t save £30 per year by switching off your “standby” devices
Every few years, a dodgy stat does the rounds claiming you can save £££ if you switch off all your gadgets at the wall. The standby mode of your TV is bleeding you dry!!! Energy Saving Trust@EnergySvgTrustA quick way to #saveenergy at home is to turn off tablets, laptops and consoles as soon as you stop using them…
Four Eras of JavaScript Frameworks
From jQuery widgets to the first frameworks, component-centric view layers like React, and today's full-stack frameworks: a look back at each era of JavaScript development and what it taught us.
SELinux is unmanageable; just turn it off if it gets in your way
I’ve been an SELinux complexity apologist for years. Lately, I’ve concluded that every implementation with difficult-to-configure policies is just unmanageable.
How to write a Git commit message (2014)
Commit messages matter. Here's how to write them well.
Why Pessimism Sounds Smart
Optimism requires believing in an unknown, unproven future
An update on the campaign to defend serious math education in California
Update (April 27): Boaz Barak—Harvard CS professor, longtime friend-of-the-blog, and coauthor of my previous guest post on this topic—has just written an awesome FAQ, providing his pers…
Reversing a 2.4GHz Remote Control
I have an old project on Github called rf-car for controlling a radio car with HackRF. A few months ago, my daughter received a new RC car made by Dickie Toys :
High-Security Mechanical Locks (2020)
Outside of a very few specialized fields high-security locks are almost totally unknown. Even in the field of locksmithing where high-security locks are known, they are often misunderstood. Today I am going to offer you a primer on the fascinating world of high-security mechanical locks, the securit
Implementing a safe garbage collector in Rust
In my last post I introduced an Emacs Lisp VM I was writing in Rust. My stated goal at the time was to complete a garbage collector. I think Rust has some really interesting properties that will make building garbage collectors easier and safer. Many of the techniques used in my GC are not original and have been…
Talk like a systems engineer: Yaks all the way down
Professional niches have – time immemorial – built their own special dialects and languages, sometimes using this as an…
Things I can’t do on macOS which I can do on Ubuntu (2020)
I've never "got" the appeal of a Mac. But I have to use one for work. Here's a partial list of everything I cannot do on a Mac, but I can do on Ubuntu. These are all objective facts. These are things which either are impossible, or require adding unsupported 3rd party software - sometimes at a cost. Resize the system…
There Is No CD Revival
Unless Maybe You are Adele
Tools for a Culture of Writing (2021)
A set of useful tools for cultivating a culture of writing, namely the RFC, the Decision Record and Decision Log, and the Pre-mortem/Prospective and Post-mortem/Retrospective
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…