Designs
2021-04-29
Introduction
I like to design software, particularly operating systems, network protocols and user interfaces. Realizing that my designs are too ambituous to hope I can ever implement them, I decided to put them on my website, so others may do something with them.
emsg
emsg, short for electronic message, is a modification to email that reduces the damage done by spam, as well as making sending spam less attractive. The basic idea is that the messages are kept by the sender, and only a link to the message is actually transfered to the recipients. This reduces the network traffic and storage space that is wasted when messages go unread, and facilitates sender identification.
Friendly File Format
FFF or Friendly File Format is a simple data serialization language. It allows any kind of data to be expressed using a simple, human readable (hence friendly) syntax. This makes FFF an excellent choice for a configuration file format.
Graphical Usable Interfaces
In my experience of working with various operating systems, I have also seen various graphical user interfaces. Although they almost invariably build upon the same elements (windows, buttons, icons, ...), they differ quite a bit in appearance and usability. This essay collects my thoughts and ideas about GUIs.
mailfiles
There is a variety of formats for storing email. The most known are mbox (the traditional UNIX mailbox format), the MH format, and maildir. Besides these fairly standard formats, there are a number of proprietary formats, and some lesser used ones. All these have known strenghts and weaknesses. mailfile is yet another format, which aims to be simple, scalable, free of locking issues, and to play nice with replication and archiving.
Micropal
Micropal is a design that combines 8-bit color values with a small lookup table to enable 12-bit RGB colors (4 bits each for red, green and blue). Traditionally, graphics hardware that uses color lookup tables has used the color value purely as an index into the lookup table, with the lookup table providing all the actual RGB bits. Micropal instead uses the 8-bit color value to provide the least significant RGB bits, with the lookup table providing only the 4 most significant bits. This reduces the required hardware to extend color capability beyond fixed 256-color palettes, at the cost of not being able to freely choose all the RGB bits.
Structured Graphics
There are many graphics libraries out there, for various languages and platforms. Some provide only low-level access to the framebuffer, allowing the display to be controlled by standard byte or file operations. Others provide a set of drawing primitives to draw not just pixels, but also lines, circles, boxes, etc. Besides being more intuitive to the programmer, these primitives can sometimes be accelarated, giving primitive-based solutions an edge in both usability and performance. This design goes a step further, by composing the image of logical units that can be manipulated independently. This provides additional expressive power and potential for performance gains.