> 1. Start with the API, test it heavily, worry about GUI later
> 2. Learn from my mistakes over the last two iterations :)
> 3. Use KirbyBase for storage (for now), as it is simple, Rubyish,
>     and runs everywhere

wil have to check that, I'm using ruby itself, running eval(buf)
to load a database. Faster than xml or yaml stuff :P

> In short: Tycho is a tool for managing random information
> in the form of "notes" arranged in a hierarchy of "topics."

Could be addresses? Which is what I coded in the past few days.
with a simple CLI interface, snippet below, no API, yet.
And I don't want to stop at mere contacts/addresses.

http://handhelds.org/cgi-bin/cvsweb.cgi/rb-pim/

common/hash.rb
common/array.rb
address/     # almost all files

> Example uses of API:
>    - grab certain RSS feeds and store them
>    - scan the latest 'ri' data and store it
>    - write alternate interfaces (web, etc.)
Yeah, would be nice. iPAQ doesn't work for a CLI.

>    - perform ad hoc analyses of all content
If you wish :)

>     ====================================================
>     NOTE: My latest scribblings on the API are really
>     where I'd like feedback at the moment.
>
>     See: http://rubyhacker.com/tycho/apinotes.txt
>     ====================================================

app.find_note vs app.find_topic vs topic.find_note
is this distinction necessary? isn't it 'just' an additional
filter? (you probably have a reason for this, I'd like to know)

Possible future standard metadata uses:

  Which user/instance of the program initiated this add/change/delete?
  Make topics or notes read-only?
  Protect topics/notes from being deleted?
  Allow a note to refer to an external file rather than storing the data?
Sure, why not? I can give an URI, either way. So why not accept it and
be able to show it (start another program to show it). This could
include email addresses to start an email client; phone numbers to dial
someone (for a smartphone, or using
whats-the-open-alternative-for-skype-again) and implicitely cross
linking in the notes themselves. a note saying "Ask Hal about Tycho"
should enable me to search the contact of a certain "Hal" and other notes
about "tycho". (myeah, that's working with the content, not the
metadata.)

  Allow hidden topics/notes?
What for? (or, hidden for whom?)
  Allow password protection or security on topics/notes?
don't we have multi-user computers for that? or private computers
(handhelds, phones)?

What I'm also interested in, is exporting a set of notes or parts of
notes to other files (specifically, I want to print addresses of
my contacts; but maybe that's too specific for a general function).

I don't understand the implementation notes about dir001/dir001 vs
1:13:135; where do the numbers come from? (what key?)

> Obviously you're free to say things like "I just don't
> get it." I'm hoping however that you *will* "get it" and
> will have some high-level comments about the API.

Dunno whether I "get it". Part of it, at least :)
See some 'find' CLI session example below.

+--- Kero ------------------------- kero@chello@nl ---+
|  all the meaningless and empty words I spoke        |
|                       Promises -- The Cranberries   |
+--- M38c --- http://members.chello.nl/k.vangelder ---+

## PIM/address> search K
 1: Kero van Gelder
 2: Mr. X (with a capital k somewhere else in his record)
## PIM/address> show 1
name: Kero van Gelder
born: 30 Aug 1974
[locations: old-home2, dummy, old-home, home, work]
## PIM/address> location dummy
address: For demo purposes only
code: 
city: 
phone: 
mobile: 06-beepbeep
email: kero@chello@nl
url: http://chmeee.dyndns.org/
## PIM/address>