Hey all I'm a sucker for note taking applications. I can't get enough of applications like zim or tomboy notes. Both have served me well but, after many years using them, I can't get over some features they're missing that I find important. I decided I would hack my own note taking application. While I would like to have something functional in useful time, I have many ideas of future features. This is also a good opportunity for me to experiment with scheme, since I've never written any application in scheme or any other lisp dialect. I hope I also learn something about not-so-trivial data structures. Racket comes with a fairly straight-forward gui library which should be enough to put something usable together in relatively short time. Hence my choice.
So, the killer feature both zim and tomboy are missing is a modern search. Tomboy's search works as I type, which is cool, but in order to navigate through a note, I need to either use the mouse, or else navigate through all the widgets in the dialog using tab or arrow keys which is always require 4-6 keypresses. IMHO that is not practical at all, specially for those who find mice unpractical. I think something like firefox' awesome bar is the way to go. Search results are shown as I type and search targets both the title (More relevant I suppose) and contents. My first question is: which kind of kind of data structure should I use in order to perform such a quick search? I'm guessing I should split my notes' data into words and store each single word in some kind of tree. But should I just jam every single word in the memory? Is this a common practice? I have many more questions that I'll leave for latter. ____________________ Racket Users list: http://lists.racket-lang.org/users