New
The latest blog posts to take off on Hacker News. 1,535 posts.
PyPy v7.3.16
PyPy v7.3.16: release of python 2.7, 3.9, and 3.10 The PyPy team is proud to release version 7.3.16 of PyPy. This release includes security fixes from upstream CPython, and bugfixes to the garbage col
The Optimizations in Erlang/OTP 27
The official home of the Erlang Programming Language
Piet: Programming language in which programs look like abstract paintings (2002)
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian , who pioneered the field of geometric abstract art. I would have liked to call the language Mondrian, but someone beat me to it with a rather mundane-looking scripting language. Oh well, we can't…
Building a full Django project, starting with a single file
MP 90: Building a complete Django project from a single file. Note: This is the first post in a series about building a full Django project, starting with a single file. This series will be free to everyone, as soon as each post comes out. 1 For a long time,
Simulating Jupiter
I'm a Technical Artist with over a decade of professional experience in both AAA and independent projects.
Scooping the Loop Snooper (2000)
No general procedure for bug checks will do. Now, I won’t just assert that, I’ll prove it to you. I will prove that although you might work till you drop, you cannot tell if computation will stop. For imagine we have a procedure called P that for specified input permits you to see whether specified source code, with…
Understanding and avoiding visually ambiguous characters in IDs
Designing a dictionary of visually unambiguous characters for IDs.
The Performance Impact of C++'s `final` Keyword
If you're writing C++, there's a good reason (maybe...) as to why you are. And probably, that reason is performance. So often when reading about the language you'll find all sorts of " performance tips and tricks " or " do this instead because it's more efficient ". Sometimes you get a good explanation as to why you…
An Exploration of SBCL Internals (2020)
SBCL is a Common Lisp implementation, with a performant compiler and support for a wide range of platforms. It has excellent documentation , and even a guide to internals (... this is written towards people who already know a lot about how it works though). This paper about SBCL's fairly unique build process is also…
Py2wasm – A Python to WASM Compiler
Since starting Wasmer five years ago we've been obsessed with empowering more languages to target the web and beyond through Webassembly. One of the mo...
Curl is just the hobby
Jan Gampe took things to the next level by actually making this cross-stitch out of the pattern I previously posted online. The flowers really gave it an extra level of charm I think. As a cross-stitch As a pillow This quote is from a comment by an upset user on my blog, replying to one … Continue reading curl is just…
The problem with invariants is that they change over time
Cliff L. Biffle blogged a great write-up of a debugging odyssey at Oxide with the title Who killed the network switch? Here’s the bit that jumped out at me: At the time that code was written…
The Design of Everyday APIs (2022)
What makes a good API for a library? Or more importantly, what makes it bad? This talk discusses the principles of what goes into user-centered design, and how best to apply those principles when writing a Python library for fellow developers.
Programming Is Mostly Thinking (2014)
Pretend you have a really great programming day. You only have to attend a few meetings, have only a few off-topic conversations, don'...
A Sketch of the Biggest Idea in Software Architecture (2022)
Narrow waists: an idea in software architecture that relates to networking, operating systems, language design, compilers, and distributed systems.
Bringing Exchange Support to Thunderbird
Thunderbird will support Microsoft Exchange Web Services (EWS) natively, all written in Rust! Read about our Rusty adventures, the technical nature of the EWS
Coroutines and effects
For the past few months I’ve been mulling over some things that Russell Johnston made me realize about the relationship between effect systems and coroutines. You can read more of his thoughts on this subject here , but he made me realize that effect systems (like that found in Koka) and coroutines (like Rust’s async…
Zig 0.12.0 Release Notes
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
JEP draft: Exception handling in switch
Enhance the switch construct so that exceptions thrown by the selector (the e in switch (e) ... ) can be handled in the switch block. Alongside a previous enhancement to handle null selectors, this makes switch even more useful for pattern matching. This is a preview language feature .
Setting up PostgreSQL for running integration tests
Setting up PostgreSQL for tests is crucial for achieving performance and reliability. In this article, I'll explain how to set up PostgreSQL for tests and discuss some common pitfalls to avoid.
The Rust calling convention we deserve
I will often say that the so-called “C ABI” is a very bad one, and a relatively unimaginative one when it comes to passing complicated types effectively. A lot of people ask me “ok, what would you use instead”, and I just point them to the Go register ABI , but it seems most people have trouble filling in the gaps of…
Multi-tenant queues in Postgres
How we implemented fair queueing strategies for Postgres-backed task queues to ensure fair execution time across tenants.
Implementing Natural Conversational Agents with Elixir
In my last post , I discussed some work I had done building Nero, the assistant of the future that I’ve always wanted. I ended up creating an end-to-end example which used Nx, OpenAI APIs, and ElevenLabs to create an in-browser home automation assistant. For a first product, it’s decent. Nero is a neat little party…
How Antithesis finds bugs
Can solving Super Mario Bros. help solve your distributed systems issues?
Embeddings are a good starting point for the AI curious app developer
Vector embeddings have been an Overton window shifting experience for me, not because they’re sufficiently advanced technology indistinguishable from magic, but the opposite.