Software Tools

Do one thing well, and work together.

Archive for April 2006


leave a comment »

Faceting is tagging, but the tags used are not English words. Facets are abbreviated concepts, with numbers for disambiguation. Combine facets to form tags, with more meaning, but less readability, than English words.

A faceter is an authority with a list of facets. Since anyone can make a list of facets, everyone is an authority. Each facet list from an authority is given a sequential number when first published, so faceters can publish smaller, more focussed lists. Note these with a number after the faceter's initials. For example, CJD1 means facet list "Jason David Catena 1".

Since facets can easily recur, prefix every facet with its faceter, and facet list number, so we know which facet we're talking about. (This constructs a namespace to avoid facet collisions). For example, the tag "CJD1WP1" means "WordPress (Jason David Catena 1)". If this faceter had a facet list for encyclopedic internet sites, "CJD2WP1" could mean "Wikipedia (Jason David Catena 2)".

Append additional facets from the same faceter. Combine facets from different faceters with a space or underscore. For example: the tag CJD1t1t2_diu1tool means "tool trap (Jason David Catena 1), tool ( 1)".


Written by catena

30 April 2006 at 1919

web acme – acme-like interface to web services

leave a comment »

Rob Pike designed acme, a tiling-window-manager interface with a small editor and shell integration, to work with the plan9 filesystem. Web Acme (WA) reimplements this interface as a rich internet application, using web services (eg, YubNub, grep/feedster) to work with web site feeds.

Acme Windows

Acme windows are a one-line status bar, and a resizeable, scrollable text frame. The status bar contains the path and name to a directory or file, and a few commands to work with the window, the contents of the window, or the named directory or file. The text frame contains a directory listing or file contents.

WA has four types of windows: tag cloud (shown on startup), tag, feed, and article.

Feed Windows

WA reuses this interface. Instead of files, WA presents feeds, so a file-type window contains the text of a feed from a web site. The status bar of a file-type window contains the URL to the feed displayed in the window. The commands on the status bar refresh the feed, mark the currently displayed articles as read, search for text in the feed, refresh the feed, subscribe/unsubscribe the feed, and close the window.

Article Windows

Selecting an article in the feed brings up another window, which contains the complete article. This window's status bar contains the URL to the article, and commands to refresh the article, mark read/unread the article, tag the article, forward the article (eg, to a blog, account, digg counter, or email address), and close the window.

Tag and Tag Cloud Windows

Instead of directories, WA presents a list of feeds selected by a tag in the status bar. This tag window is opened by selecting from the tag cloud window, which is a tag cloud constructed by gathering all the tags added by the user (eg, to blogs, accounts, feeds, or email addresses).

The status bars for tag windows contain the tag, and commands to refresh the list of feeds, mark read/unread all feeds, and close the window.

The status bar for the tag cloud window contains the name of the user, and commands to refresh the tag cloud, customize the presentation of the tag cloud (eg, cloud or list, alphabetical or frequency order, minimum number of items indexed by the tag), and close the window.


In addition to working with files, acme also works with commands. Users select text and apply it to a command: the selected text becomes the parameters to the command.

Feeds may contain web-service commands instead of articles (eg, Users select text from articles, or feeds from tag windows, and then apply the text or feed to a web-service command.

Written by catena

27 April 2006 at 2342

Zen Tools

leave a comment »

We could describe a software tool with a zen aesthetic as an unconventional, odd little hack, which quietly handles messy parts of a task, with an appropriate interface.

Written by catena

25 April 2006 at 1537

Posted in Software Design, zen

Tagging Google Earth

leave a comment »

So, here's a question. With the usefulness of tags, or at least nonexclusive categories, proven to me (eg,, why none to help organize marks in desktop applications? I'm really looking forward to using applications that replace hierarchical storage of information with tags. For example, I gave up on storing bookmarks in browsers as soon as I found Google Earth. I'd much rather have a little search box, and a list of matches, in the Places pane, than the hierarchical tree under My Places. They use this kind of interface in the Fly To/Local Search/Directions pane, why not give it to users too? I can think of a half-dozen different ways to categorize any place on earth, so why do I have to shoehorn it in to only one place in the hierarchy?

Don't tell me to copy a mark into multiple folders. If I ever want the change the mark, then I have to hunt them down and change them all one-by-one. Aliases (symbolic links) aren't much better, because I'd have to create and maintain them. (Besides, I don't think Google Earth has them, so this is mostly an argument against symbolic links as a solution to the filing problem in filesystem directories.)

Even better, I'd love a dynamically-sized tag cloud that reflects my relative interest. Each word changes color if the tags are active. If two or more tags are active, then it shows only marks with all selected tags. There should also be a way to select tags to add marks, rather than match combined tags, perhaps by adding a plus sign before each tag like In this approach, selecting another tag by the tag name adds those marks, but selecting another tag with the prepended plus sign limits the displayed marks to those with all tags selected.

Written by catena

25 April 2006 at 1536

Tools of the Software Craft

leave a comment »

Software engineering is a craft. With any craft, the tools you use determine your productivity, and the quality of your product. Unlike most crafts, you apply the same skills to develop your tools, as you do to develop your product.

Written by catena

25 April 2006 at 1533

Posted in Productivity/Tools