Tiny FORTH from scratch in 1 week (bootloader-based Arduino UNO, 2K of RAM)
Building a tiny FORTH for an Arduino UNO in one week
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,497 posts.
Building a tiny FORTH for an Arduino UNO in one week
I have to admit, my research blog posts are getting longer and longer. From one side I find it genuinely encouraging, because if one gets so much information just by scratching the topic, imagine what’s hidden beneath the surface! One university professor once said “what could be interesting in databases?”, and it…
The conflict between subclassing and composition is as old as object-oriented programming. The latest crop of languages like Go or Rust prove that you don’t need subclassing to successfully write code. But what’s a pragmatic approach to subclassing in Python, specifically?
This post is the last in a three-part series about Cranelift . In the first post , I covered overall context and the instruction-selection problem; in the second post , I took a deep dive into compiler performance via careful algorithmic design.
Elon Musk is a master promoter. His ability to bring his many endeavors into the limelight is unmatched in the technology industry.
Growing up, I never felt like I fit in.
A workaround to get nice stack traces for errors in Go.
How types might be the missed part of the future of code
Recent events highlight our need to take serious measures to counter lies that are undermining democracies.
I've recently become active again on twtxt.net , the platform that puts the "social" in "anti-social social media". There is a lot of intelligent discussion to be had there, and for the past couple days a discussion has been going on about technology buzzwords and, later, unnecessary complexity on websites. I was…
Starting March 2021, I’ve been spending the majority of my working time co-working with my friends over video in my virtual gather.town office. The sessions are usually pre-scheduled, last 2-16 hours, and we do brief check-ins every 30 minutes. Most people I co-worked with told me that they really enjoyed the…
The notation [x] reigned for nearly two centuries before being replaced by ⌊x⌋. Why the latter is much better and what else we might learn from its inventor.
This is a follow-up to Error handling in Rust from a couple of days ago. The moment we want to use error propagation for different error types, we have to rely on trait objects with Box<dyn Error>, which means we defer a lot of information from compile-time to runtime, for the sake of convenient error handling.
WebAssembly and WASI show great promise for the future of computing outside the browser, and the WebAssembly component model aims to improve the portability, cross-language, and composition story for Wasm. This article explains the goals of the component model, and showcases how to use tooling from the Bytecode…
on bottlenecks, crashes and what diversity really looks like
The Internet King on why the Internet is a force for good, on media conformity, the inevitable triumph of the WEIRD, Crypto, Retards, etc.
Technical blog of Ryan Jerue
“Writing is its own reward.” – Henry Miller Writing doesn’t just communicate ideas; it generates new ones. Writing forces you to think. It’s nature’s way of telling you how sloppy your thinking is. The ultimate test of how well you understand something is how clearly you can explain it in writing — clear writers are
[This is part two in a series — you should read part 1 first for context and then you might go on to part 3.] The Dublin Core — metadata made dumb Just when librarians were in despair o…
Version 0.9 of the Zig programming language is planned to release in about a week. One of the major changes coming in this release is a restructuring of how allocators work, which has been termed Allocgate . This is a breaking change to the Allocator API provided by the standard library, so pretty much any code that…
Offset pagination gets a bad rap because it’s backend inefficient, but it’s actually a nice feature from a consumer’s perspective. How to bring those advantages to cursor-based APIs.
This is an introductory article about shell injection, a security vulnerability allowing an attacker to execute arbitrary code on the user's machine. This is a well-studied problem, and there are simple and efficient solutions to it. It's relatively easy to design library API in such a way as to shield the application…
The other day I asked myself a seemingly trivial question: What was the first ATAPI CD-ROM drive and when was it available? Given that ATAPI was a major technology which instantly obsoleted all proprietary CD-ROM interfaces and made SCSI much less desirable, one might expect that there would have been some press…
Updated in 2026: glibc 2.43 added experimental support for building with Clang. In September 2021, I wrote "So, dear glibc, will you be happy with my sending Clang patches?" in Build glibc with LLD 13. We have come to a turning point. In Linux Plumbers Conference 2021, at the glibc Birds of a Feather session, I asked…
Enumerating and analyzing 40+ non-V8 JavaScript implementations