Freewheeling Apps Devlog
Oct 8, 2021
Marceau, Fisler and Krishnamurthi, "On novices' interactions with error messages"

A rare empirical study that I found extremely useful.

Outside of a univ course, my lessons are slightly different from the paper's:

  • Maintain a map of error messages for a project, use this to minimize the vocabulary of error messages.
  • Be enigmatic rather than risk misleading.
  • Make affordances beyond error messages optional. Color-coding has a cost. Not highlighting may be better.


* *
Sep 27, 2021
I'm tempted to blindly implement in Mu without questioning any of its design choices.


* *
Sep 1, 2021
Hackiest possible support for rendering Unicode combining characters using GNU Unifont

This is the equivalent of backing up a typewriter by one character and overlaying a second letter on the same space.

Main project page:

Detail of a Qemu window showing a few characters being rendered.

Top left: an 'à' created from an 'a' and a U+0300 combining grave accent. Having it right at the corner shows how the accent is almost invisible against the window boundary.

Middle column: an 'à' under a regular 'g' showing that the accent is again almost invisible against the descender of the character above.

Right column: an 'à' to the right of a regular 'g' looks best of all, though the accent is still too high.

Bottom half: a list of devanagari vowel diacritics modifying the same consonant. Looks reasonable except for a couple of cases where lines overlap.

This is the best we can do with a single glyph for any accent without getting into glyphs for individual ligatures, since it has to work with a large variety of letter shapes.


* *
Aug 30, 2021
Unicode in Mu's network-less read-only browser

Main project page:

Before: Before: A Qemu window showing an image and some text. A single word is highlighted: 'Schr00f6dinger'

After: After: A Qemu window showing an image and some text. A single word is highlighted: 'Schrödinger'


* *
Aug 30, 2021
The Mu computer now loads 140KB of Unicode glyphs from its system font

Unicode blocks now supported: latin, greek, cyrillic, armenian, hebrew, arabic, syriac, thaana, n'ko, indian (ISCII), sinhala, thai, lao, tibetan, myanmar, georgian (< U+1100)


  • No support for combining characters yet ( This makes the other languages I know (Hindi, Tamil) well-nigh useless.
  • Unifont's glyphs for the non-Latin languages I know turn out to be quite spectacularly ugly.

A Qemu window showing a pidgin sentence in Hindi ('chhat kam bas sach' which I squint and translate as 'a low roof, that's the truth,' as close to a motto for Mu as I can get without _matras_ or combining characters).

Further down, a single word in Tamil ('nada' or 'walk')


* *
Aug 15, 2021
A network-less, read-only browser built up from machine code (video; 5 minutes; includes instructions to try it out)

A lot gets said about simplicity in software, about essential vs accidental complexity. If you really want a simple stack that empowers everyone, it isn't enough to just eliminate accidental complexity (even if we could all agree on what it is). You need to also avoid other people's essential complexity.

Main project page:

Screenshot of a Qemu window running a mostly text-mode browser, with a list of channels on the left, a search bar on top, a list of posts on the right, and a menu of keyboard shortcuts at the bottom. Posts include images for avatars on the left.


* *
Aug 13, 2021
It's amazing how fast computers are. Before I took the trouble to build a search index I figured I'd try the simplest possible way to search every single post and comment of 5 years of archives of a fairly active community. 150MB of text.

It's instantaneous.

Running emulated on Qemu. Without any acceleration.


* *
Aug 8, 2021
This talk really puts Mu's accomplishments and failures in context.

Timothy Roscoe, "It's Time for Operating Systems to Rediscover Hardware"

My next step maybe: assemble hardware. Some candidate specs:

  • Screen with graphics
  • Keyboard
  • Persistent storage
  • Network
  • Touch screen
  • Suspend/hibernation

No BIOS/UEFI/Linux/mobile.

Maybe an MNT Reform?

I worry about debugging flow. But Mu had the same problem at the start.


* *
Jul 30, 2021
Images (kinda) and files (kinda) on the Mu computer

The Mu computer has only 256 colors by default, but approximates arbitrary RGB combinations using dithering. (video; 9 minutes)

Main project page:

Screenshot of the Mu computer running within a Qemu computer, showing a thumbnail of an image in the programming environment.


* *
Jul 28, 2021
A little game: guess the result of mixing two colors

Testimonial from 4 year old: this is the best program you've made.


Main project page:


* *
RSS (?)
twtxt (?)
Station (?)