Can we make a Rust program that’s as small as it’s assembler equivalent?
This is the personal blog of Graham King. I write mostly about software engineering, and occasionally about society. I am also on twitter and github.
Thanks to Address Space Layout Randomization you can use the address of a stack variable as a zero-cost random number.
Rust avoids memory copies by optimizing return value placement.
On x86 it doesn’t really matter what sync::atomic::Ordering you choose.
Safety is boring, let’s do pointer arithmetic.
Linux’s epoll API solved the C10K problem, enabling fast and afforable Internet services.
Minecraft has an API. If you run your own server you can program it from Python.
Is your Rust program CPU bound? Here are the very first things you can do on Linux.
An adventure in CPU out-of-order instruction execution.
Rust’s traits are a single concept that unifies interfaces, abstract classes, mix-ins, operator overloading, contraints on generics, and more.
Just a normal day reversing linked lists on the whiteboard.
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.
… 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.
In Go, what’s the simplest possible way to put all your ad-hoc tools in one place?
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.
Two days at PDX DevOpsDays, a gathering of system administrators who use version control, and write a lot of YAML.
- Credit card numbers
- Credit card generator
- SSH and OpenPGP keys
- Research Papers Archive
- Behaviour Change Toolkit