A Design for Hexadecimal Digits

Tags: 

0 1 2 3 4 5 6 7 8 9 A B C D E F --- how ugly mixing letters and digits together like that. In order to remain consistent with the 10 decimal digits that are independent from the alphabet, we really need 6 more digit-like characters for hexdecimal numbers. To this end I have been considering what these digits should look like. Having some resemblence to the letters A-F or their lowercase equivalents is clearly desirable but not essential. Using the forms of existing digits so they look in place seems reasonable, so long as the digits are clearly distinguishable from each other.

Suggestively B (eleven = 8 + 3) looks like its octal representation 13. F (fifteen = 8 + 7 = octal 17) looks like a mirrored 7 crossed in the european style. If we munge 1 and 5 together the result looks kind of like a D or a d with a decoration on top (D = thirteen = 8 + 5 = octal 15). So we have the basis of character representation for hexadecimal digits taking its inspiration from octal --- very nice.

To express A, C and E in terms of octal 12, 14 and 16 requires a greater suspension of disbelief (a facility in which I personally excel).

...

hexadecimal digits realized

Basilisk II

Tags: 
My old 68030 based Macintosh LC III in its bodily form is gathering dust upstairs, but its spirit lives on through an extraordinary emulator called Basilisk II. I just got around to porting the LC III's partition images from my old dell box to the new core 2 box and am pleased at how well it runs. Despite the LC III application software being totally obsolete, it is still quite functional and fast --- very very very fast.

Using a Wysiwyg Input

Tags: 
This is my first post using a wysiwyg editor through drupal.  All my previous attempts to use wysiwyg have been horrible so I have never tried it on this blog, but the new wysiwyg API fro drupal is a very good first step to getting things working better.

KVM. Ushering In the Latest in 1960s Technology

So, it looks like I will be a guinea pig for a new KVM virtual machine to supplant my current LVM one (a pity really as I quite approve of the LVM design); KVM being virtualization at the processor level for the newest generation of AMD and Intel processors. Presumambly this should make better use of the processors virtual addressing hardware and so improve performance. LVM is a clever hack that runs at a much higher level as an ordinary user space programme on a linux kernel with only a smattering of kernel support and no processor support at all.

The Dell Vostro 220 Gets a Name and a New Kernel to Tame its Annoying Fan

The first computer in the draisey.ca domain, the dell dimension L600cx had an exceedingly boring name --- I called it della. Boring. The new machine has a far better name --- it is Thoron. What a heroic sounding name. It is really a decay product of Thorium with a half-life of 5 seconds and should properly be called Radon 220, but Thoron sounds just right. Neither della nor thoron are reachable from the internet except by mail, though I may eventually add them via ip6. That has been a pet project I have put off for a good 5 years.

MoinMoin

Tags: 
I am quite happy with the MoinMoin site I set up last week, but naturally not a sole is using it. I wonder why I bother to do this. It wasn't very hard to do, if a little time-consuming up-front trying to wade through the documentation for the half-dozen or so wiki's I was evaluating. I set up the dirt simple cgi script which is needlessly wasteful of cpu cycles but much easier on brain cycles.

A Dirt Simple Algorithm for a Reflexive Generalized Inverse

Tags: 

let A be a m by n matrix considered as a list of columns
construct B, an n by m matrix (considered as a list of rows), by elimination
such that BAB = B, ABA = A and AB an orthogonal projection onto the image of A

in exact artihmetic and pythonesque psuedo-code:


B = array(A)
for k,a in enumerate(A):
    v = B[k] # pivot row
    va = inner(v,a)
    if va: # note that v nonzero if and only if va positive
        v *= 1/va # scale on <a>
        for j,b in enumerate(B):
            if j == k: continue
            b = b - inner(b,a)*v # elimination on <a>

Projects To Do

  1. A wiki for the Sailor's Nite Out (on Wednesdays)

    I am going to call it snow.sailclub.ca.

    So far the candidates for installation are:

    • DokuWiki
    • MediaWiki
    • PmWiki
    • MoinMoin
    • Nanoki
  2. A mailing list manager for South Port

    Mailman is the only candidate so far.

Vostro

So the new machine is plenty fast, but not yet up to snuff. I managed to get a working kernel on my fourth compile. The first three would have been ok but for my disabling initrd support and compiling in support for every filesystem except the one I needed to boot (nested kernel options and the outermost one I had left as M). Grub concealed the true problem through trying to pass UUIDs to the kernel for the root device, which it didn't understand. This is first time I have used grub, and I don't see the advantage over lilo.

Pages

Subscribe to Matt's Blog RSS