Vlad's Website
I work on programming and philosophy that contributes to the public good. I have much to learn, and I celebrate playful creation over alienated wage labour. I think that being kind is important, and I love cats and birds.
I run Peony Software, a one-person software development studio in lovely Edinburgh, Scotland, where I work on next-generation spreadsheet software. I’m also working on redirecting money to open source software developers by building Open Source Pledge and thanks.dev together with friends. When I find time, I co-maintain the Hare programming language, and work on my 3D game engine. Even more occasionally, I teach others to appreciate programming things from scratch.
https://vladh.net (RSS)
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. @dmb on Slashdot, 25 Oct 2024...
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 an inch one way or another. This happened because of how parking spaces were...
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 an inch one way or another. This happened because of how parking spaces were...
Today, we launched the Open Source Pledge. Virtually all companies use Open Source software, 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...
Today, we launched the Open Source Pledge. Virtually all companies use Open Source software, 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...
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...
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...
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...
This is a list of books I have enjoyed. This page has two purposes. Firstly, I’d be happy to point people to books they might like. Secondly, it’s a convenient archive for my own purposes. I’m no smarter for having read these books. Also, having read or enjoyed a book does not mean that I agree with its content (e.g. Atlas Shrugged).
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.
Certain ways of using LLMs can harm the ways in which we acquire knowledge.
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,...
As you may know, I create educational programming videos under the name clumsy computer where I show how to program everyday tools such as a regular expression engine from scratch without using any libraries. So far, the videos have been hosted on YouTube. That’s fine, and virtually every single viewer has discovered the channel there. However, I...
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...
Book recommendations on the topic of work.
It is undeniable that we live in a time of considerable economic inequality. As I write this, one of the headlines on the homepage of The Guardian reads: “UK cost of living crisis: More than one in eight UK households fear they have no way of making more cuts”. This necessarily means that some are able to live a very comfortable life just as...
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...
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...
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...
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...
This is a list of videogame cheats that are infuriatingly simple to develop and use. Please don’t cheat in online games. https://github.com/jbzdarkid/witness-trainer https://github.com/RatPoison-dev/RatPoison https://github.com/jire/charlatano https://github.com/sagirilover/animesoftware https://github.com/danielkrupinski/vac-bypass-loader...
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...
2023-08-06Dumfries House, Ayrshire, Scotland
2023-07-23St Dunstan in the East, London, England
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...
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...
I find the current state of programming quite frustrating. We have more tutorials, Stack Overflow answers and programming courses than ever. Our computers are more powerful than ever. There are many software developers who can piece together a mesh of libraries to create cross-platform applications. However, we seem to have lost our understanding...
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,...
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...
(This is a post I wrote for the Hare blog.) 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...
I’ve helped many people learn programming throughout the years, and I’ve noticed one thing — people increasingly fail 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...
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. This page uses Javascript to print out the LaTeX math. You have it disabled, so the math will look funny. Sorry! I figured it...
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...
Vlad-Stefan HarbuzVlad-Stefan Harbuz MenuMenu AboutAbout MusicMusic
Pieces Waltz for Cat 2017 For Waltz for Cat, I wanted to write a waltz in a style similar to that of Chopin. Once the piece was done, my friend and I snuck into the Musik-Akademie in Basel to record this. Through some miracle, I played through everything more-or-less correctly first try, which we were very hyped about. Take a Break, Come Back...
I live in Edinburgh and spend most of my time on programming and philosophy. I'm originally from Bucharest. I moved to Manchester to study, where I got a degree in computer science. After spending a little bit of time in Berlin, I managed to move to lovely Basel in Switzerland, where I ran a software company and studied computational biology. In...