An overconfident genius personal assistant in my pocket | Continue reading
Don’t dismiss the statistically probable | Continue reading
How does Rust allocate a zeroed Vec and what does it cost? | Continue reading
A Rust object that survives program restart thanks to Rust allocators, systemd’s file descriptor store, and syscall memfd_create. | Continue reading
Linux’s epoll API solved the C10K problem, enabling fast and afforable Internet services. | Continue reading
On Linux what can you turn into a file descriptor and then monitor with epoll? | Continue reading
How does Rust return values, and does it make any difference to us programmers? | Continue reading
When is the linear scan Two Sum solution faster than a map? What if we use AVX-512 instructions? | Continue reading
In Rust, what is the performance cost of using sync::Once after the initial setup? | Continue reading
In Rust, how does using a different primitive type (u8, i32, u64, …) change the generated assembly? | Continue reading
Assembly: In all the world of the programmer, there is no more important output. | Continue reading
Can we make a Rust program that’s as small as it’s assembler equivalent? | Continue reading
Thanks to Address Space Layout Randomization you can use the address of a stack variable as a zero-cost random number. | Continue reading
Rust avoids memory copies by optimizing return value placement. | Continue reading
On x86 it doesn’t really matter what sync::atomic::Ordering you choose. | Continue reading
Safety is boring, let’s do pointer arithmetic. | Continue reading
Minecraft has an API. If you run your own server you can program it from Python. | Continue reading
Is your Rust program CPU bound? Here are the very first things you can do on Linux. | Continue reading
An adventure in CPU out-of-order instruction execution. | Continue reading
Rust’s traits are a single concept that unifies interfaces, abstract classes, mix-ins, operator overloading, contraints on generics, and more. | Continue reading
Just a normal day reversing linked lists on the whiteboard. | Continue reading
It will take longer to learn than most languages, the standard library is small so you’ll need dependencies, and a lot of behavior is in traits. | Continue reading
… because, at every new incident, your fortitude was to be called forth, and your courage exhibited; because danger and death surrounded it, and these you were to brave and overcome. For this was it a glorious, for this was it an honourable undertaking. | Continue reading
In Go, what’s the simplest possible way to put all your ad-hoc tools in one place? | Continue reading
In Go, how do you run several operations that might return an error, and return those errors at the end? Here’s how I do it. | Continue reading
As a professional software engineer and enthusiastic pro-am systems administrator, I have long been curious about DevOps. I spent the last two days at [PDX DevOpsDays]( Across organised talks, Igni… | Continue reading
Two days at PDX DevOpsDays, a gathering of system administrators who use version control, and write a lot of YAML. | Continue reading
Javascript can now record, manipulate and play sound thanks to a whole range of audio-related API’s. One of the simpler and more useful parts of that is MediaRecorder which can record sound, typically from the user’s microphone.const stream = await navigator.mediaDevices .getU … | Continue reading
This is a very common pattern in Javascript: | Continue reading
Gardening is my preferred metaphor for software. When I grow a new piece of software, there is a very predictable path I go through as I attempt to manage it’s complexity. It is, in fast-forward, the history of programming language design. That process is short enough to capture … | Continue reading
What Made Maddy Run by Kate Fagan, is a book about the importance of doing what you love, of really listening to the people close to you. | Continue reading
Learn Better, by Ulrich Bosner is an interesting, valuable book, that is too long. | Continue reading
To start a server on a port below 1024 (i. | Continue reading
Three years ago when I wrote The Joy of Upstart, that was the easiest way to turn your scripts into daemons. | Continue reading
Over 170 years ago, on Friday 21st July 1843, at 4 o’clock, Ada Lovelace was working on a mathematics problem, possibly on the first known computer program (it was written that summer). | Continue reading
tl;dr: It looks like Facebook is getting the textbook results of ignoring code quality.Update: More examples, and insights from ex-employees in the reddit discussionFacebook has a software quality problem. I’m going to try to convince you with three examples. This is important be … | Continue reading
tl;dr Use the mitmproxy doc, return here if trouble. | Continue reading
I attended OSCON for the first time this year in Portland. | Continue reading
GopherCon was in Denver again this year, and a lot of fun it was, mostly the meeting of wonderful people. | Continue reading
When the President of the United States of America wants to send an email, we don’t close email-space, and delay your email so his very important one can go through. | Continue reading
In part 1 we called a very simple Go shared library from Python. | Continue reading
A selection of software engineering practices, from notes I took at an XTC meetup many years ago. | Continue reading
In the interests of illustrating the complicated programmer psyche for the benefit of anyone involved in recruitment, here’s the two things I look at in a job advert: | Continue reading
Go’s empty interface{} is the interface that everything implements. | Continue reading
It was a gesture meant to comfort. | Continue reading