Pursuing a Business I'll Love
Two of my businesses had record-setting months, and I’m finally building the app I’ve always wanted.
Introduction to SerenityOS Programming
This post will give you a quick intro to the basics of GUI programming for SerenityOS.
Launch an App
On May 14th, I launched Oh Bother — my first independent app in 7 years. I wrote a bit about my decision to build Oh Bother here, but now that my little app ...
What Comes After Zoom?
Zoom is the Skype of video - it turned a technology few people used much into a mass-market product. But next we’ll get the equivalents of Instagram and Snap - products that ask different questions. Zoom solved getting into a call, but why are you in the call?
Why Life Can’t Be Simpler
We’d all like life to be simpler. But we also don’t want to sacrifice our options and capabilities. Tesler’s law of the conservation of complexity, a rule from design, explains why we can’t have both. Here’s how the law can help us create better products and services by rethinking simplicity.
Knuth versus Email (1999)
I have been a happy man ever since January 1, 1990, when I no longer had an email address. I'd used email since about 1975, and it seems to me that 15 years of email is plenty for one lifetime.
HN Alternative UIs
hn.algolia.com HackerNews with a search function and 16.8+ million posts indexed. Alexa: 8.7k
0xF Rules
I have been writing articles on this website for twelve years. If you were to look at the early versions , you would think it is a fresh-out-of-school project with icons drawn in Microsoft Paint. And that is exactly what it was. The site started in a world before smartphones and tablets at a time where Apple products…
GNU GCC does not round floating-point divisions to the nearest value
I know that floating-point arithmetic is a bit crazy on modern computers. For example, floating-point numbers are not associative: 0.1+(0.2+0.3) == 0.599999999999999978 (0.1+0.2)+0.3 == 0.600000000000000089 But, at least, this is fairly consistent in my experience. You should simply not assume fancy properties like…
Time spent programming is often time well spent
I concur so strongly not only because he writes about RSS, which I'm on record as supporting and using. I enjoy rolling my own simple software in almost any domain. Simple has a lot of advantages. Under my control has a lot of advantages. But the biggest advantage echoes what Dr. Drang says: Programming is often more…
Reversing the technical interview (2017)
If you want to get a job as a software witch, you’re going to have to pass a whiteboard interview. We all do them, as engineers–often as a part of our morning ritual, along with arranging a beautiful grid of xterms across the astral plane, and compulsively running ls in every nearby directory–just in case things have…
Hours
A novelist friend introduced me to a productivity technique I’ve found effective. I spread it to my friends, and now to my horror management types have discovered it. A friend just told me he…
Big Trouble in a Deep Void
The following is a guest post by Indranil Banik, Moritz Haslbauer, and Pavel Kroupa (bios at end) based on their new paper Modifying gravity to save cosmology Cosmology is currently in a major cris…
KVM host in a few lines of code
Trying to figure out how KVM-based virtual machine hosts work by implementing one from scratch.
Summary of all the MIT Introduction to Algorithms lectures (2009)
As you all may know, I watched and posted my lecture notes of the whole MIT Introduction to Algorithms course. In this post I want to summarize all the topics that were covered in the lectures and point out some of the most interesting things in them. Actually, before I wrote this article, I had started writing an...
Corporate Socialism: The Government Is Bailing Out Investors and Not You
(With Mark Spitznagel)
Achieving 100Gbps intrusion prevention on a single server
Achieving 100 Gbps intrusion prevention on a single server, Zhao et al., OSDI’20 Papers-we-love is hosting a mini-event this Wednesday (18th) where I’ll be leading a panel discussion including one …
Adding tests when you don't have time to
Here's a recipe you can follow when you want to add tests on Legacy Code, but you don't have much ti
Building a WireGuard jail with FreeBSD's standard tools
Recently, I had an opportunity to build a WireGuard jail on a FreeBSD 12.1 host. As it was really quick and easy to setup and it has been working completely fine for a month, I’d like to share my experience with anyone interested in this topic. I would like to use WireGuard app on my Android phone to access my home…
How the 8086 processor handles power and clock internally
One under-appreciated characteristic of early microprocessors is the difficulty of distributing power inside the integrated circuit. While...
Training GPT-2 to Play Chess
Almost 25 years after Kasparov vs. Deep Blue, another seminal man vs. machine matchup: Neither competitor has much to be proud of here. White has a poor opening. Black screws up and loses his queen…
ARM Mac: Why I'm Worried About Virtualization
It's late 2020 and you just got a brand-new Mac with Apple's own ARM processors. Exciting! But what will development be like?