Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,834 posts.
Book of the Runtime – Internals of the .Net Runtime not in the documentation
The Microsoft Docs at https://docs.microsoft.com are really fantastic lately. ...
Examples of Parallel Algorithms from C++17
MSVC (VS 2017 15.7, end of June 2018) is as far as I know the only major compiler/STL implementation that has parallel algorithms. Not everything is done, but you can use a lot of algorithms and apply std::execution::par on them! Have a look at few examples I managed to run.
Parsing the C64 Bubble Bobble Wind Currents
This would be my website, I guess.
Lush: My favorite small programming language
I meant to write about this when I started my blog in 2009. Eventually Lush kind of faded out of my consciousness, as it was a lot easier to get work doing stuff in R or Matlab or whatever. The guy…
Things You Can Do with Python and POV-Ray
This post presents Vapory, a library I wrote to bring POV-Ray’s 3D rendering capabilities to Python. POV-ray is a popular 3D rendering software which …
Building Products at Stripe
What is Stripe’s product culture like? Interview with a Stripe product leader demonstrate an embrace of going deep, moving fast, and maintaining a multi-decade perspective.
Extending Rust's Effect System
This is the transcript of my RustConf 2023 talk: "Extending Rust's Effect System", presented on September 13th 2023 in Albuquerque, New Mexico and streamed online.
Introduction to strace
There will come a time when you will find yourself asking “What the heck is that process doing?”. To uncover the mysteries behind the behaviour of a process, we have a tool called strace .
Rebuilding the spellchecker
How I decided to write a spellchecker and almost died trying
Create a simple cross-platform desktop game with Go
A few months ago I fiddled around with writing Space Invaders using Go. I had a lot of fun writing it but the output only worked on iTerm2 because it used a specific feature of that terminal. In order to play the game you’d really have to download iTerm2 and run it on the command line. I thought it’d be fun to muck…
Unprojecting text with ellipses (2016)
Using transformed ellipses to estimate perspective transformations of text.
Bevy XPBD: A physics engine for the Bevy game engine
Bevy XPBD 0.1.0 has finally been released on crates.io!
Color.js Released
It has taken Lea and I far too long – there is always something more that really should be added, always some conversion that really needs an authoritive set of data to validate our code against – but we finally decided, time to actually release Color.js .
Thinking in Events: From Databases to Distributed Collaboration Software [video]
Keynote at 15th ACM International Conference on Distributed and Event-based Systems (DEBS) , Online (originally planned to be in Milan, Italy), July 2021.
A beginner's guide to extending Emacs
How to build a custom completion backend for emacs from scratch.
Writing a lunar lander game for an actual lunar lander
As it’s the 50th anniversary of the Apollo 11 moon landings, I thought this would be a great opportunity to live code a demonstration of using my new compiler to write a simple lunar lander game… but first, I’m going to port the compiler to generate code for an actual lunar lander. Yes, my target platform is the…
Continuations by example: Exceptions, time-traveling search, threads, and more
Continuations are the least understood of all control-flow constructs. This lack of understanding (or awareness) is unfortunate, given that continuations permit the programmer to implement powerful language features and algorithms, including exceptions, backtracking search, threads, generators and coroutines.
LightningJS: safe, fast, and asynchronous third-party Javascript
Olark CTO Matt Pizzimenti explains why Javascript and LighteningJS are safe, fast and asynchronous options.
A Guide to Parsing: Algorithms and Terminology
An in-depth coverage of parsing terminology an issues, together with an explanation for each one of the major algorithms and when to use them
Building a “Simple” Distributed System – Formal Verification
In the last post , we described a protocol that should satisfy the requirements and invariants established in the first post . Today we will look at formal verification with TLA+. Formal verification is just another (niche) tool in the toolbox. Some tools require more skill than others to use. So
MGBA Integration: Introducing the Integrated GBA
Your eyes are not deceiving you. As of 5.0-14690, Dolphin now has mGBA directly built into it as a new way to handle Game Boy Advance connectivity with GameCube titles. For those who don't know, mGBA is the most renowned and accurate GBA emulator of this era and has been…
Visualizing SQL Plan Execution Time with FlameGraphs
Update: I wrote a follow-up article about adding Loop Counters and Row Counts to SQL Plan FlameGraphs. I also show some old examples of “Bookshelf Graph” visualizations there. Check it out after reading this post first. Introduction Brendan Gregg invented and popularized a way to profile & visualize program response…
The Reliability of Go
As part of the Canonical Cloud Sprint taking place in San Francisco last week I attended Dave Cheney's talk at the GoSF meetup on the...
Does scrum ruin great engineers or are you doing it wrong?
A question on Stack Overflow’s Software Engineering site caught our attention recently. It tries to come to terms with the impact of scrum on developers' ability to do a great job. The claim is a bold one: Scrum is turning good developers into average ones. Could that be true?