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.
Yet another OSS maintainer quits because of burnout. To fix this, we need better mental health resources for maintainers.
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…
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.
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.
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…
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…
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…
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…
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…
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…
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…
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.
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…
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,…
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 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 .
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…
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…
Book recommendations on the topic of work.
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…
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…
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…
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…
An essay about ways to structure work.
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…
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…
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…
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…
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…
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…
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…
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…
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…