RSSAmplifier

Blog

Vlad's Website

vlad.websiteRSS feed ↗33 posts

Latest posts

Open Source Burnout Claims Another Project

Yet another OSS maintainer quits because of burnout. To fix this, we need better mental health resources for maintainers.

npmx: A Lesson in Open Source's Collaboration Feedback Loops

npmx launched today , and witnessing its incredible development journey has taught me a lot about what I’m calling the collaboration feedback loops of successful Open Source projects — patterns where every contribution to a project makes future contributions easier, creating a virtuous cycle of collaboration, enabled by trust and collective governance. Let’s start with some details…

Binary Dependencies: Identifying the Hidden Packages We All Depend On

We need better tools for uncovering phantom binary dependencies. Not having these tools makes our global tech infrastructure less secure, and puts a strain on the Open Source maintainers we rely on.

How Binary Dependencies Work Across Different Languages

Have you ever wondered how it’s possible to call C code from other languages like Python? Here are the technical details — and also why this topic is important for security and sustainability.

LLMs Are Accelerating the Open Source Sustainability Crisis

Adam Wathan , the creator of Tailwind CSS , has been speaking about how LLMs have made his project more popular than ever…while also making it fall apart financially, causing him to fire 75% of his engineers. “I think AI is a huge reason why our business is struggling, even though it’s making Tailwind more popular than ever.” — Adam Wathan ( 12:03 ) How is this possible? A major cause is…

Keystone Maintainers Keep the Internet Going

96% of all companies depend on Open Source software. But the most depended upon software is maintained by a relatively small number of people. Some have estimated that “80% of downloads are the gift of 4,000 people”, meaning that a few thousand people maintain a majority of the most depended upon Open Source software packages. But what should we call these most depended upon packages that keep so…

Open Source: Deceptive Power or Collective Governance?

In October 2024, it emerged that WordPress co-founder Matt Mullenweg has extensive power over the entire WordPress ecosystem, which 43% of all websites on the internet run on. When he exercised this power by seizing control of code that runs on tens of thousands of websites, the WordPress community realised that it was not in control of the software it was using, despite this software being Open…

Why and How Companies Should Pay Open Source Maintainers

Download the mp4 video . Or watch on YouTube On 2 Feb 2025, I gave a talk at FOSDEM 2025 on improving the sustainability of the Open Source ecosystem, titled “Why and How Companies Should Pay Open Source Maintainers”. This page includes information on this talk, as well as ways to submit your own feedback and views on these topics. See talk info See slides Thanks to leo for this photo. Join the…

The Legal and the Good

We recently launched the Open Source Pledge , and the response has been very positive, particularly from developers , but also from foundations , companies and the press . But yesterday, David Cramer pointed out a perplexing sentiment some people express — that developers of Open Source software ought not to be paid. He gave this comment as an example: In reply to: Open Source developers ought to…

On Structures

When I lived in London, my flat was at the corner of a generally quiet intersection. However, a couple of times per day, traffic would spill over from the nearby road, and the intersection would get so busy that dozens of cars would become stuck, struggling to move forwards or back. This happened because of how parking spaces had been placed — the street had way too many parking spaces on either…

The Philosophy of the Open Source Pledge

Today, we launched the Open Source Pledge . Virtually all companies use Open Source software 1 , making the Open Source ecosystem crucial to virtually all of the technology we use. That Open Source software is created and supported by maintainers. But the companies that use Open Source software almost never pay the maintainers anything. This means that the maintainers end up doing a huge amount of…

Long-Term Members of our Communities Should Be Able to Vote Regardless of Their Citizenship

The ability to vote in parliamentary elections should be granted based on long-term integration into one’s community and country, yet we unjustly deny many people this right simply because of the place they were born in, leaving them with no say in policies that directly affect them.

Effective Apologies

There are bad apologies, and good apologies. I think an effective apology is one that communicates our feelings accurately to the person we have wronged, and that enables them to forgive us for our transgression so that the relationship can be repaired. The best resource I know of for figuring out how to make a good apology is a 2009 literature review by Kirchhoff, Strack and Jäger, in which they…

What is the Most Minimal UK Address Possible?

Postcodes in the UK are pretty specific — a postcode such as “SE1 6AD” will often identify one or a few specific buildings, unlike countries where a postcode represents an entire neighbourhood. This leads to an interesting question: how short can you get an address and still have Royal Mail deliver post there? To figure this out, I decided to find the most minimal way to write my home address,…

User-Friendly Hostnames with Yggdrasil

Yggdrasil allows you to easily set up a private virtual network based on IPv6. Your machines will then receive an IPv6 address such as 201:2af6:fcc4:30e7:b22d:15d6:a55d:10bb . However, that’s not very fun to have to type, and it would be nicer to be able to refer to your machines by their hostnames, e.g. by doing ping apples and ping pears . I tried to do this in an intelligent way and…

Tiny Code Christmas Day 4

Tiny Code Christmas is a fun Christmas-themed coding challenge. I did day 4 in Hare (making it not so tiny). Code: 04.ha Download here: plasma.mp4 .

Our Schools Should Teach Communication

Communicating with other people is an activity that permeates almost all aspects of our lives. At the workspace, we have to reason and debate with coworkers and bosses. In family life, we have to seek common ground with loved ones who have different views — maybe we disagree with our parents or grandparents on topics which are important to us, such as religion. At home, we want to be able to enjoy…

Easy nocheckin with git

Sometimes, you want to add some code to test something out, but you definitely want to make sure you don’t git commit it. Of course, you should always check the output of git diff before you make a commit (you do, right?), but if you have a lot of changes things can slip through the cracks. A solution is to write a comment containing a string such as “nocheckin”: function…

Resources on the Philosophy of Work

Book recommendations on the topic of work.

Adding a Temperature Sensor to my Flat

I live in London now, and on the 18th and 19th of July this year, the UK saw its highest recorded temperatures ever. The south-east of England was particularly affected. I personally struggle a lot with heat, and knowing I would find temperatures of up to 40°C unbearable, I escaped London to slightly chillier Portsmouth. However, before I left, I thought it would be really cool to see how the…

Spreadsheet Formula Parsing

Lately, I’ve been working on a spreadsheet program. I think spreadsheets are cool and I often need to use them, but the current software could be a lot better. :) You basically have to choose between impossibly overcomplicated Excel or an army of Open Source clones that don’t learn from its mistakes. Anyway, the really fun part about working on spreadsheet software is that you have to…

The Hare Programming Language

Hare is a systems programming language, which means it’s useful for building video games, operating systems, real-time audio applications and other high-performance software. It’s designed to be a replacement for C, by keeping that language’s simplicity and power, but bringing significant innovations that allow users to write better, more correct programs while also having more…

Dithering

This is a short article on how to easily dither images if you’re looking for nice retro aesthetics using simple Unix commandline tools. I won’t cover the technical aspects in detail — if you’re interested in them there’s a great article on surma.dev . Dithering is a set of techniques for adding noise to images which have had their colour palettes reduced. The main reason to…

Alternatives to Wage Labour

An essay about ways to structure work.

Vlad's Recommended Japanese Learning Resources

I’ve been learning Japanese for many years, and I often make lists for people to recommend specific resources for learning the language. In fact, this is true to such an extent that at this point I’m probably more knowledgeable about Japanese learning resources than about Japanese itself, which I’m not sure how to feel about. Either way, if you’re interested in learning…

Peony — a 3D Game Engine Written From Scratch in C++

I’ve been in love with the technology behind video games my entire life. As a kid, it was incomprehensible to me how anyone could build something like Pokémon Blue, let alone Half-Life 2. Despite that, I’d never built anything resembling a game engine myself. That’s why in 2020, I decided to build my own 3D game engine from scratch in C++. My objective is to create something…

clumsy computer

I’ve helped many people learn programming throughout the years, and I’ve noticed one thing — people increasingly struggle to understand how to build things from scratch. Instead, they rely on other people’s code without understanding how it works. I wanted to do something to help, and I decided to create a series of videos where I teach people to code tools we use every day from…

I Implemented A Regular Expression Engine in Hare

Regular expressions are one of those tools that we kind of take for granted. They’re really powerful and useful in so many situations, but most people don’t quite understand how they work under the hood. I’m Vlad, the developer who implemented Hare’s regular expression engine, and I thought I’d show you why regular expressions aren’t as scary as they might seem…

pstr — A Set of Cautious and Easy-To-Use C String Functions

The default C string handling functions have a lot of problems. The biggest of these issue is the fact that they are unsafe, in the sense that they can lead to buffer overflows by copying something past the end of a string. There are safer versions, such as strlcpy , but they also have their own issues, such as implicit truncation of strings. I needed a more reliable set of string handling…

Submodule GB01

In 2019, a friend and I teamed up to make a cart reader for the Game Boy, Game Boy Color, and Game Boy Advance. Broadly speaking, he handled the hardware and I handled the software. Thus, the GB01 was born. The general idea is that the GB01 is a physical device you can buy and connect to your computer. You can then connect Game Boy games to it, which allows you to interact with the original…

vegvisir — A Music Theory Reference Site

When writing music, I often felt the need to look up the notes in a more complex chord, or the notes in a certain mode, and so on. If you’re a seasoned composer, you should probably know these things off by heart, but I found it useful to have a small tool to remind me of these things. vegvisir is a web application that can calculate various music theory concepts for you, such as the name of…

Game Engine: How I Implemented Skeletal Animation

In 2020, I started writing a 3D game engine from scratch in C++. This is a post about how I added skeletal animation to it. Drake is in it, so buckle up. This is what the skeleton looks like in the middle of an animation. I figured it would be really cool to support animated models in my engine. After all, it feels much more like a game if you can have people moving around, birds flying around and…

Figuring out Rules for German Noun Genders with Simple Machine Learning and Statistics

When learning German, one of the most confusing features of the language is the noun gender system. In German, every noun has one of three genders (masculine/feminine/neuter), but unlike many other languages, these genders are seemingly not assigned based on any logical rule. Despite this, native German speakers as well as experienced German students are able to intuitively “guess” noun genders…