Latest Posts (15 found)

Abstraction, not syntax

Alternative configuration formats solve superficial problems. Configuration languages solve the deeper problem: the need for abstraction.

0 views

The story of Musium

One of my longest running side projects is Musium, the music player I built for myself. In this post I explain why I built it, and I highlight some interesting parts of the process.

0 views

Automating configuration updates with rcl patch

Configuration formats that humans can read and maintain, are hard for scripts to edit safely. With the new patch feature, RCL now has a principled way to enable safe, automated edits.

0 views

A float walks into a gradual type system

In this post I explore the design space of adding floats to RCL, a gradually typed configuration language. With floats in place, RCL is finally a true json superset.

0 views

LLM text makes human interactions less fun

Building connections with other people is what makes life fun. When humans communicate through LLM-written text, we lose that.

0 views

A type system for RCL: Implementing a typechecker in Rust

I am adding a type system to RCL, my configuration language. In part 4, we look at how the typechecker is implemented in Rust, and at how it is able to generate good error messages.

0 views

A type system for RCL: The type system

I am adding a type system to RCL, my configuration language. In part 2, I explain how the type system works. It is based on lattices and features a generalized subtype check.

0 views

A type system for RCL: Related work

I am adding a type system to RCL, my configuration language. The type system is based on ideas from other systems. In part 3, I highlight prior work, and I contrast RCL’s type system with that of other configuration languages.

0 views

A type system for RCL: Introduction

I am adding a type system to RCL, my configuration language. In part 1, I explain what I want from the type system.

0 views

AI alignment starter pack

In this post I share resources for learning more about AI alignment, and why misalignment is a risk that I take seriously.

0 views

A reasonable configuration language

I was fed up with the poor opportunities for abstraction in configuration formats. The many configuration languages that exist already were not invented here, so I wrote my own, at first just for fun. But then it became useful.

0 views

An algorithm for shuffling playlists

When shuffling a playlist, a true shuffle is rarely what we want, because it might play the same artist twice in a row. In this post I introduce an algorithm that avoids this when possible.

0 views

The yaml document from hell

As a data format, yaml is extremely complicated and it has many footguns. In this post I explain some of those pitfalls by means of an example, and I suggest a few simpler and safer yaml alternatives.

0 views

Please put units in names

Using strong types, or putting units in names, is a small effort that can make a tremendous difference for code readability.

0 views