I Want Off Mr. Golang's Wild Ride
My honeymoon with the Go language is extremely over. This article is going to have a different tone from what I’ve been posting the past year - it’s a proper rant. And I always feel bad writing tho...
My honeymoon with the Go language is extremely over. This article is going to have a different tone from what I’ve been posting the past year - it’s a proper rant. And I always feel bad writing tho...
There is a playful way to study the architecture of computers of the past. Find a piece of software you know well and try to find out how it was ported to these machine you don't. A good choice would be DOOM. id Software's 1994 mega-hit has been ported to everything. It is designed around a core with no layering…
What is the complete path between visiting thepiratebay and sublimating an mp3 file from thin air? In this post, we'll implement enough of the BitTorrent protocol to download Debian. Look at the [Source code](https://github.com/veggiedefender/torrent-client/) or skip to the [last…
The Maersk Triple-E Class container ship is 1,300 feet long, carries over 18,000 containers across 11,000 miles between Europe and Asia, and… Its entire crew can fit inside a passenger van. As a former naval architect and a current marketing consultant to startups, I found that
rga is a line-oriented search tool that allows you to look for a regex in a multitude of file types. rga wraps the awesome ripgrep and enables it to search in pdf, docx, sqlite, jpg, zip, tar.*, movie subtitles (mkv, mp4), etc. ExamplesPDFs Say you have a large folder of papers or lecture slides,
In this post, I describe the phenomenon of the so-called expert beginner -- someone with mediocre skill who thinks he's an expert.
People have been comparing software components to LEGO blocks for a couple decades. We should be able to assemble applications by snapping together modular components, just like LEGOs. There has been progress, but for the most part we haven't realized the promise LEGO-style software development. Integrating two…
Some time back, I was working on a project where it felt like the timebomb of technical debt was exploding in our faces. We couldn’t refactor the whoositz because of the whatsitz and when we asked about the whatsitz no one knew about the whatsitz and how it exactly worked with the whoositz and there certainly weren’t…
That half-finished thing you threw on PyPI and forgot about? The world is genuinely slightly better for it existing.
Some examples of using unix tools in a pipeline
Roben Kleene’s blog
Have you ever had to draw an architecture diagram and found the repetitive clicking and dragging tedious? Did you have to do modifications to that diagram and found it complicated? Graphviz is an open source graph visualization software that allows us to decribe a diagram using code, and have it automatically drawn…
YOW! Talk My YOW! talk, "Designing Distributed Systems with TLA+", is now available! You can watch it here. Donald Knuth Was Framed The other day I was...
I'll try to leave the pulp in here and keep this as chronological as I can. In that spirit, no tweets were harmed in the making of this post.
I've been comparing notes with people who run corporate engineering blogs and one thing that I think is curious is that it's pretty common for my personal blog to get more traffic than the entire corp eng blog for a company with a nine to ten figure valuation and it's not uncommon for my blog to get an order of…
Two years ago, I had a blog entry describing falling in love with Rust . Of course, a relationship with a technology is like any other relationship: as novelty and infatuation wears off, it can get on a longer term (and often more realistic and subdued) footing – or it can begin to fray. So well one might ask: how is…
Earlier this year, I lost the ability to use a keyboard and mouse for extended periods. Fortunately, this wasn't as catastrophic as it sounds! This article chronicles my experience using adaptive tools like dictation and eye-tracking as my primary mechanisms for writing code.
[Thanks for many comments and votes on Hacker News! ] It’s been two years since I started working as a software engineer. I sometimes tell my colleagues about a student project I did in my junior year of university, and it’s so well-received that I’m writing this post. 1 Now, let me ask you a question. Have you ever…
To help fellow engineers wrap their head around Apache Kafka and event streaming, I wrote a 4-part series on the Confluent blog on Kafka’s core fundamentals....
Location-based language setting is a bad idea. It's much better to use the browser's language.
Have you ever been curious about how Software engineering within SpaceX works? I did some research and compiled my notes in this article. There are also some…
Updated: this was solved on Hacker News. Details in Bug #915: solved!
Clang is an “LLVM native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles […]
One day a coworker mentioned that he was thinking about APIs for distributed compute clusters and I jokingly responded “clearly the ideal API would be simply calling telefork() and your process wakes up on every machine of the cluster with the return value being the instance ID”. I ended up captivated by this idea: I…
Introducing Skija, Java bindings for Google graphics library, Skia
Graphical artifacts caused by a CPU, not GPU? Sure thing.