Debuggers Suck
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
The latest blog posts to take off on Hacker News. 1,357 posts.
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
You’re making morning drip coffee. You need to make 2 cups. Do you:
I’m a big fan of interactive tool support for programming. I often use features like “go to definition”, “find symbol”, compile error underlining, etc. Also, earlier this year, I launched Muon, a new low-level programming language. As no tooling existed beyond the compiler, writing the initial Muon programs (such as a…
Essentially a flick is just a really big number, specifically the number 705,600,000 and tries to solve a problem that nobody in digital media actually has.
Here’s a common pattern that I see play out very often in software teams: There is a need to change the existing system behavior to accomplish new functionality. The software engineer l…
Long ago, I wrote git-subtree to work around some of my annoyances with git submodules. I've learned a lot since then, and the development e...
This week, let’s take a look at a few core language features that enable us to design really lightweight APIs in Swift, and how we can use them to make a feature or system much more capable through the power of composition.
Mergeable replicated data types Kaki et al., OOPSLA’19 This paper was published at OOPSLA, but perhaps it’s amongst the distributed systems community that I expect there to be the greatest in…
This blog post is a slightly edited version of the live transcript of the talk I gave at RustFest 2019 in Barcelona on November 10th, 2019. As it's a transcript some parts of it are a bit repetitive or badly worded, but I hope the message behind the talk will be conveyed by this post anyway.
Update 26 Sep 2020: A followup to this post is Towards principled reactive UI.
Rust's error handling is a pleasure to use thanks to the Result type . It ensures Rust's error handling is always correct , visible , and performant . And with the addition of the ? operator in Rust 1.13 , and the addition of return types from main in Rust 1.26 Rust's error handling has only kept improving.
GitLab release announcements and feature highlights.
Opinions and discussions of various topics, mostly related to programming.
In the previous post , I described what my new hobbyist computing stack looks like today, and how the design decisions seemed to accumulate inevitably from a small set of axiomatic goals. In this post I describe some (far more speculative) future plans for Mu and try to articulate how the design process continues to…
The Official Web Site of Nicholas C. Zakas
This year, I’ve become increasingly acquainted with the DEV platform. It’s a refreshingly positive oasis in the large sea of angry Reddit commenters and “well actually” connoisseurs that is the broader software world. One interesting facet of this community is that it seems pretty beginner-heavy. I regularly see posts…
A “Feature of Last Resort” (FOLR) is a useful feature which solves certain otherwise hard-to-solve problems, but are often best avoided.
Multi-value is a proposed extension to core WebAssembly that enables functions to return many values, among other things. It is also a prerequisite for Wasm interface types. Nick Fitzgerald has ...
Recently, my colleague introduced me to QMK 1, an open-source keyboard firmware. Like many non-trivia C projects, macro is heavily used everywhere, especially in keymap files 2. It didn’t bother me much since I have been programming C for many years. But I kept thinking to myself, “what would it look like if I can…
Made by Developers and Non-Developers
Stuff about things
As a computer engineer who has spent half a decade working with caches at Intel and Sun, I’ve learnt a thing or two about cache-coherency. This was one of the hardest concepts to learn back in coll…
Writing a faster wc utility in Go
Open Source, Web Development, and more
Collaboration with a large team is challenging, and even more so if it’s on a single codebase, like the Shopify monolith. Shopify changes 40 times a day. We follow a trunk-based development workflow and merge around 400 commits to master daily. There are three rules that govern how we deploy safely, but they were hard…
Create a WhatsApp chatbot using Python & Flask with Twilio's API. Follow our step-by-step guide to build, deploy, & enhance your chatbot. Start building with Twilio.
OK, fine maybe they DID teach you this in class. But, you'd be surprised how ...