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

Main project page: https://github.com/akkartik/mu

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'

permalink

* *
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)

Caveats:

  • No support for combining characters yet (https://en.wikipedia.org/wiki/Combining_character) 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')

permalink

* *
Aug 15, 2021
A network-less, read-only browser built up from machine code

https://archive.org/details/akkartik-mu-2021-08-15 (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: https://github.com/akkartik/mu

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.

permalink

* *
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.

permalink

* *
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.

permalink

* *
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.

https://archive.org/details/akkartik-mu-2021-07-30 (video; 9 minutes)

Main project page: https://github.com/akkartik/mu

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

permalink

* *
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.

Source: http://akkartik.github.io/mu/html/apps/color-game.mu.html

Main project page: https://github.com/akkartik/mu

permalink

* *
Jul 14, 2021
I was just reminded after years of the "weird number" in 2's complement arithmetic:

https://en.wikipedia.org/wiki/Two%27s_complement#Most_negative_number

The reason it came up: it's the result of trying to convert a floating-point Infinity or NaN to an integer.

https://c9x.me/x86/html/file_module_x86_id_61.html


Color dithering on the Mu computer.

Here is a before/after pair of images. Before has 256x256x256 colors. After has 256 colors.

Before:

Screenshot of original .ppm file (since Mastodon doesn't render the original directly)

After:

Same image after running through Mu's dithering.

Notice all the yellow pixels in the first image that turn into alternating greens and oranges in the second. Also, the stem looks very different. But overall, it looks gratifyingly similar to the original. My eyes took a while before they started to notice differences.

Main project page

permalink

* *
Jul 12, 2021
Generalizing dithering to color (assuming a fixed palette) turns out to be surprisingly complex. The r/g/b channels are mostly independent copies each analogous to the greyscale dither, but there's tangling in one place in the center that complicates everything.

A chart showing how the r/g/b channels are dithered.

permalink

* *
Jul 11, 2021
Dithering 256 levels of greyscale using 16 levels of greyscale.

Before:

256 levels of greyscale

After:

16 levels of greyscale

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)