Git as a debugging tool
Debugging with Git Grep, Git Blame, Git Log and Git Bisect
The latest blog posts to take off on Hacker News. 14,540 posts.
Debugging with Git Grep, Git Blame, Git Log and Git Bisect
In January 2008 David DeWitt and Michael Stonebraker published an article criticising MapReduce. As far as I can find, the article is no lon...
It gives my brain a pleasant thrum to learn new mathematics which mimics the algebra I learned in middle school. Basically this means that the new system has operations with properties that match those of regular numbers as much as possible. Two pretty important operations are addition and multiplication with the…
Yet another programming blog. Thoughts on software and related misadventures.
learning a lot about sed, awk and other commands by making a spotify statusbar widget
Projects and articles by Chris Gioran
This is my personal site, where I write about Ruby, programming, and any of my varied fascinations.
Why TypeSpec is the best way to write OpenAPI
Bringing the great successes of financial engineering to Rust.
Talk is cheap, show me the code Introduction A common problem my friends and I have is receiving actionable emails whose priorities are medium level. They do require action of some sort ($ \geq lowest\ priority$), but the action is due in the near future ($\leq highest\ priority$). I tend to skim over these emails…
esbuild and Redis1 are two examples of codebases with exceptional documentation. Through their READMEs, changelogs, architecture documents, and code comments, both projects explain their design in such a way that someone new to the codebase can understand where things are, how things are done, and why they are done…
Back in 2019, Nick Fitzgerald published always bump downwards, an article making the case that for bump allocators, bumping “down” (towards lower addresses) is better than bumping up. The biggest reasons for this are bumping up requires 3 branches vs 2 for bumping down and rounding down requires fewer instructions…
Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But…
A Hubris Bug Story
A common refrain is that threads can do everything that async/await can, but simpler. So why would anyone choose async/await?
I have this weird hobby of trying to get good unix tools to run natively on Windows. I find this is the most efficient use of my laptop's resources, and therefore the nicest experience. WSL is nice, but it takes up a lot of RAM on my system. I prefer to use MSYS2 . Getting unix tools to work correctly under MSYS2 is a…
Introduction Today’s post will take us in a slightly different direction than the last few. Today’s post will be about hooking up some Python code to the X-Plane flight simulator to enable development of an autopilot using PID (proportional-integral-derivative) controllers. I’ve been a fan of flight simulators for…
We got it in 1983, I think, so it only took me about 41 years to get around to it. This Tomy Tutor isn't a replacement system I secondarily ...
I did a livestream where I talked about Object Storage. The how and why. The Bad Old Days. And also the neat and interesting stuff just beyond the basics. I figured I'd cover that in text as well.
I’ve been learning at least one new programming language a month through Exercism which has been really fun and interesting. I frequently say that “every language you learn teaches you something about all the others you know” and with nearly a dozen under my belt so far I’m starting to worry about the combinatorics of…
All the “C++ killers”, even these which I wholeheartedly love and respect like Rust, Julia, and D, help you write more features with fewer bugs, but they don't much help when you need to squeeze the very last FLOPS from the hardware you rent. As such, they don’t have a competitive advantage over C++. Or, for that…
I’ve invested leisure time to save time when I’m working hard, not to save keystrokes but to save mental energy for the project at hand.
For the past few months, I’ve been curious about two technologies: the Zig programming language and Ethereum cryptocurrency. To learn more about both, I’ve been using Zig to write a bytecode interpreter for the Ethereum Virtual Machine. Zig is a great language for performance optimization, as it gives you fine-grained…
This article is about a bit of surprising behavior I recently discovered using Python's regex module (re) while developing SBOM tooling for CPython. Folks who've worked with regular expressions be...
Andrey Mokhov, Neil Mitchell, Simon Peyton Jones Published in Journal of Functional Programming, Vol 30(E11) View PDF Download BibTex