Magpie Hoard

Random Thoughts I

A bunch of things that occurred to me.

The Toolkit Triangle

Page description/vector graphics formats and text markup formats form two corners of a triangle. The third corner is widget toolkits. Feature creep will very probably move something that starts at a corner towards the other two.

For instance:

  • Widget toolkits gradually add rich text facilities and a graphics format matching their drawing primitives
  • PDF started as a page description language, and had interactive features and reflowable text added.
  • TeX and Groff are at their core quite physical, but use large macro packages to double as semantic markup languages.
  • Web browsers started out processing semantic markup with hypertext, and now can be approached as a widget toolkit for javascript, or a page layout engine.
  • Even text terminals have this, if one sees block mode terminals as an evolution of character mode. Even if you don't, ECMA-48 hints at a concept of fields similar to the 3270 one.
  • Teletext as used on analog TV (in Britain, at least) was concerned almost entirely with visual presentation (in only two places is anything else considered1). Its intended replacements such as MHEG-5 consider interactivity much more.

Much of the awkwardness of the web platform is a combination of organic growth, and that a semantic markup language started being bolted to features for physical formatting, and then features for interactivity beyond, as it were, a block-mode terminal with better fonts.

File pickers

Are surprisingly confusing for unaware users, who may assume each program accesses a distinct storage location. RISC OS handled this nicely by using drag-and-drop to identify where to save a file, or which application to load it in. I'm not sure how to make that keyboard-friendly, though.

Capability-heavy OS design

Doesn't obviously fly well with command-line interfaces or other suites of programs that handle entire groups of objects. The obvious adaptation is to launch one's shell, IDE2, etc, using a particular set of caps as a workspace, an object that grants quite free access to the amalgamated caps. The directory concept in a hierarchical filesystem can easily be adapted to this role (indeed, some text editors already work this way).

Mount namespaces and union filesystems

These are pretty much two subsets of the same general concept. First consider a unionfs that lets you place the upper layers somewhere other than /. Then add a flag which makes anything from lower layers be entirely concealed by this layer, rather than merged. Tada, you have mountpoints.


  1. The Newsflash flag (which as far as the standard is concerned is distinct from subtitles only in what kind of content it is applied to), and the fifth and sixth entries in the packet defining what the colour buttons do. Five is a preload hint, and six points at an index page.
  2. No, using a minimalist set of tools actually makes this problem worse because you have so many more tools to share the capabilities between.