Algorithms are delightfully distracting, but w/o data, they are distraught.

de-uglified X Protocol description

(subdir containing eaab structured expression files by ttn-do rescue-xcb)

Kudos to the Xorg folks for moving from the m4-based (unbearably ugly) description of the X protocol to the XML-based (barely bearably ugly) format. Here, we de-uglify completely, transforming the description to structured expressions that not only look more pleasing to the eye, but are useful in other contexts.

For the time being, there are versions 1.0 and 1.14.1. We'll get around to de-uglifying more at some point, probably.

Guile-WWW modules

(1087 bytes, htmlization map by ttn)

Updated 2013-07-28 from Guile-WWW 2.28.

Guile-SDL modules

(532 bytes, htmlization map by ttn)

Updated 2012-02-14 from GNU Guile-SDL 0.3.10.

Mixp modules

(353 bytes, htmlization map by ttn)

Updated 2011-08-22 from Mixp 0.5.

Guile-BAUX modules

(389 bytes, htmlization map by ttn)

Updated 2011-08-17 from guile-baux 20110731.1559.21c949f.

Emacs coding-system to PostgreSQL client-encoding

(5195 bytes, association list by ttn)

This alist is to help programs map an Emacs' coding-system to a PostgreSQL client-encoding, suitable for composing a "SET client_encoding" SQL command (presuming the architecture is Emacs : PostgreSQL :: client : server).

Each CAR is a symbol, a GNU Emacs (22.x) coding system.

Each CDR is a string, a PostgreSQL (7.4.12) client encoding.

Guile-PG modules

(986 bytes, htmlization map by ttn)

Updated 2010-08-23 from Guile-PG 0.37.

ttn-do modules

(443 bytes, htmlization map by ttn)

Updated 2009-10-15 from ttn-do 329.

Guile modules

(9718 bytes, htmlization map by ttn with some help from sed)

Updated 2009-10-15 from Guile

Guile-Syscalls modules

(383 bytes, htmlization map by ttn)

Updated 2009-10-15 from Guile-Syscalls 0.3.

de-uglified magic file

(69523 bytes, compiled file for ttn-do magic by ttn-do magic -C)

What is that binary bag of bits? A magic(5) file is used by file(1) to answer that question. But magic(5) is so ugly! Well, that's why we transform it to this more pleasing form, which is designed to be friendly to the Guile procedure read. (Note: this format (version 2) is friendly to Emacs, too, although version 1 isn't.)

Normally installed as ~/.magic.ttn-do-magic, along side its progenitor, ~/.magic, these particular files are notable in that they start with two entries that enable both file(1) and "ttn-do magic" to recognize them.

map data from xearth-1.1

(256983 bytes, text db table by ttn-do xearth-mapdata-to-text-db-table)

This is the map_data array of shorts from mapdata.c, with some slight decoding (the run-length encoding split into three fields: type, init and path). At some point, we hope that Guile-SDL will be able to sport a pretty demo using this data.

GNUVOLA Data Formats!

If a program manipulates a large amount of data,
it does so in a small number of ways. -- Alan Perlis

association list

This is a list of pairs, with (normally) unique cars. If the elements of the pairs are limited to symbols, strings, and simple numbers, then the alist can be read by many programs, including Emacs, Guile, and other Scheme and Lisp implementations.

text db table

This is a flexible file format that is partially self-describing. For example, this text itself comprises the #:description field of an entry in the file format text db table -- pretty funky stuff!

Because it is only partially describing, the rest of the semantics must necessarily be provided by the specific program in question.

htmlization map

This file format is used by a ttn-do command in creating the cron job map (of era), among other things.

eaab structured expression

This file format is a sexp with the following constraints:

We use it to avoid XML (blech!).

compiled file for ttn-do magic

This file format is a compiled from a magic(5) file (the same format used by the file(1) command). Far out!

The first bytes of the file are ".ttn-do-magic-N", where N is the ASCII representation of a small (fitting in one byte) integer. This is the format version. For versions 1 and 2, the rest of the file consists of structured expressions, amenable to Guile read, mirroring the entries of the originating magic(5) file.

Each entry has the form: (LEVEL OFFSET TYPE VALUE OUT-STRING), where

Format versions 1 and 2 differ in the possible values for VALUE and OUT-STRING. In version 1, VALUE could also take the form (#t #t) and OUT-STRING could also be #f. These tokens cannot be read by Emacs (an interop target) however, so version 2 uses x and the empty string, respectively, in those cases.

For more info, please see the magic(5) manpage.

Copyright (C) 2005-2021 Thien-Thi Nguyen
Up. ChangeLog.