Blog
-
Maybe Everything Is a Coroutine
I was inspired, after reading the excellent blog post Let Futures Be Futures, by the author's thought experiment of a language in which all functions are coroutines and this is used to express asynchr…Read more → -
Parentheses are Just Typechecking
Consider this Scheme expression, taken from the Rosetta Code example for the Mandelbrot set:
-
Project Roadmap
I come up with new programming projects so quickly that I can barely keep track of them. This is probably why I rarely finish them. But I've been trying to organize them into a dependency graph, so that I can keep track of what's most important to work on and what my next steps are.
-
An Object-Oriented Language for the '20s
Object-oriented programming is out of fashion now, and it has been for a while. Rarely are new programming languages intentionally object-oriented. And there are good reasons for this: OO often requires a lot of boilerplate, it forces code into unnatural object hierarchies, and it encourages hidden mutable state.
But, if we made a new statically-typed OO language from scratch in 2021, something in the vein of Java or C#, taking everything we've learned from functional programming and a decade-plus of scathing OO criticism, could we fix this? Especially if we had no expectation of compatibility with legacy code?
-
Converting CJK Fonts to WOFF is Harder Than You'd Think
tl;dr: Don't even try online converters. They'll drop the CJK characters. Just install
woff-tools
and/orwoff2
on your own machine. Most Linux package managers will have them; on Windows, you can use the EXEs in this GitHub repo.A few days ago, I needed to install a web font (Noto Sans JP) for Japanese text on a site I was working on. The site supports IE11, so I would at least need a WOFF file, and a WOFF2 for newer browsers.
The obvious place to look was Google Fonts. It used to provide a ZIP download of any web font in multiple formats (at least TTF, WOFF, and WOFF2). But Google Fonts seems to have removed this feature; ZIP downloads only include OTF files now. If I wanted IE11 support, I'd need to convert these to WOFF.