in Ruby
for Linux

Here's the Rubyforge project page, and here's the latest README and the latest screenshot.

There's also a help file now.


This project stems from my love of the Windows program Info Select and my wish that I had something similar on Linux.

When we hear the term "PIM" (Personal Information Manager), it is usually used to describe a boring program like a contact manager. I have used or looked at various programs of this nature in the past; some were the boring type, and others were almost operating systems in their own right, like Commence or Ecco.

But my favorite has long been Info Select. I’ve been a user off and on since 1987, when it was still called Tornado. If you’re curious about it, you can go to their website to learn more.

What I liked about Tornado was basically three things. It was extraordinarily easy to use; it handled totally random information, without making any assumptions about format, length, or content; and it had a blindingly fast incremental search feature.

Of course, in those days it was a DOS program that ran as a TSR. Later on, there was a Windows incarnation. This was not in itself a bad thing. But then the feature bloat set in. Info Select is now apparently a web browser, email client, bookmark handler, calendar/reminder system, image catalog program, and more.

Even if I could, I wouldn’t implement all the features in the current Info Select. It has some features I hate. But, in any case, we have to walk before we can run.

The Tycho Model

There’s no basic metaphor involved here, unless it is that of the "yellow sticky note" that is so ubiquitous in our culture. At its heart, Tycho is storing nothing but notes.

I’m prematurely discussing some interface issues here, since the user interface is so intimately tied to the concept of "how this software works."

Each note will be kept in a small window of its own which may be minimized or maximized. The notes will be viewed onscreen as a bunch of overlapping windows with the current one highlighted in some way. Each note will typically have a short one-line title; in the absence of a title, the first line of the note will be used as such.

Edit a note by first clicking on it. End editing by clicking somewhere outside the note or pressing escape.

The notes can be arranged under topics; the hierarchy of topics will be shown in a tree view. There will be three basic views or modes.

In every view, the topic tree is on the left, and the "pile of notes" is on the right. In the first view, this description summarizes what we see on the screen. Here’s a crude drawing of what it would look like:

In the second view, we’re a little more organized. A middle pane has been added which shows all the titles of the notes in the current topic. For topics that have many notes, this will scroll. Here’s another drawing showing this view:

In the third view, we add the note titles to the topic tree itself, making it one big hierarchy (see image below). This may be preferable for users who do not store much information.

Initial features

With relatively few features, this could be a useful app. Basically you need to be able to manipulate topics and notes in all the obvious ways: Add, delete, move, copy, edit, and so on.

The one remaining feature that is absolutely critical is search (and I mean incremental search, which was cool in 1987 and is still cool today).

So here are some rough notes on the essential features of Tycho.

Progress so far

There’s almost none. I have a skeleton of a GUI in place. Here’s a screenshot.

Since then I’ve created a very preliminary data storage scheme. It’s based on files and directories following the same hierarchy as the data.

You would think this would be slow. Well, I dummied up a medium-sized tree (randomly generated) consisting of over 6,000 nodes and a total of over 4.2 megs. It loaded in less than a second, far faster than I expected.

I’ve also made a stab at displaying the notes in the righthand pane. Right now they are not editable and are not sized reasonably. But for version, it’s reasonable. Here’s a screenshot:

Features for later

Why should I worry about the future when a working app is still so far off? But I need to preserve my notes and ideas, so here they are.

To be continued…