Searching tags | Automatic Saves | Unique Items | Delete Items | Why use Tobu?
![]() |
|
- Intro -
-
Tobu is a freeform information organizer. It can be used to organize
notes, todo lists, files, clips, code snips, diary entries and more or less
any type of intformation that can be entered as text or stored in a file;
its goal is to make very large number of items of information (hundreds of
thousands or more) easily manageable, but it's also well suited to managing
smaller collections of data.
Tobu revolves around tagging each item of information and using filters to create lists of items, to sort and filter them further as needed; the aim of Tobu is to avoid organizing data as it is added and instead to limit the job of adding items to describing them with tags and sortable tags (more on that below), it is only when user is looking for data it is organized on the fly by filtering tags and sorting resulting lists.
Tobu has many functions which work in the ways that are not obvious. Therefore it's highly recommended that you at least scan through this guide. In order to start using Tobu it's necessary to understand the basics of adding tags, filtering, using sortable tags, searching for a tag. The optional topics that can be left off for later are templates, views and favorite tags. Keyboard shortcuts are not an afterthought in Tobu - they are carefully assigned to make the most important functions easily available without having to use mouse, you can look at them at any time by going to Help | Keyboard Shortcuts.
Tobu uses standard sqlite data file to store the database. It's stored in "data.db" in program's directory; you can use any tools that work with standard sqlite files to use it, in one of the upcoming versions of Tobu I will provide a script that will create linked html files or a plain text file out of the database, as well as in-program option to do the same for the current filtered item list.
Please look at the Graphical Overview page shown on the right side above to get a quick walkthrough of basic Tobu features.
-
Tobu already comes with a few items stored in the database as examples. To
see them, type in 'astronomy' in one of the four filter boxes on top and
hit Enter. You can test sorting by clicking on column titles and you can
filter by an additional tag by adding it to the second filter box. For
instance, filtering by tag 'star' will make a listing of two items.
-
Let's make a simple shopping list: enter 'lentils' in title area (i will
always add quotes in this guide but you don't need them) and 'buy, lentils,
cost:0.89'; press 'save' button on the bottom row of buttons. Let's enter
the second shopping list item: press 'new copy' button on the bottom row
- now you can change to 'laptop battery' as title and 'buy, battery, cost:50'
in tags; again, press 'save' button followed by 'new copy' button. Enter the
third item with 'graphics tablet' as title and 'buy, graphics,
cost:100' as tags, followed by 'save' button. Now we have a shopping
list of 3 items and we can try searching for it and sorting it - let's
first search for the list by entering 'buy' in one of the filter boxes
on top, and then hitting 'list' button to the right. Now you should see
all three items listed in the listbox in upper half of the window. You
can now sort these items by cost by clicking on cost column header. You
can also sort them alphabetically by clicking on title column header.
-
A crucial point to understand is that there is nothing special about
'cost' tag, except that it is a sortable type of tag. Sortable tags, unlike
the regular kind, have a name and a value, separated by semicolon - where
the value can be a number or a string of text. When tobu sees a sortable
tag, it inserts the value of the tag into relevant space in the listing, as
opposed to a regular tag where it will insert an 'x' if the tag is attached
to the item or an empty space if the tag is not attached.
-
We are not limited to just one sortable tag per item - we can have as
many as needed. In our shopping list we might have chosen to have an
additional sortable tag called 'priority' and give a value of 1 for high
priority, 2 for medium and 3 for low. In fact, we can do this right now -
click on each item, add priority tag and hit save. Now you can sort items
based on their priority, price or title. In fact, you can sort items based
on any tag but that only becomes useful when a number of items will have a
regular tag in common while some other items will not have that tag -
currently we have each item have one unique regular tag that others don't
share and one common regular tag that all of them have.
-
Sortable tags will normally be sorted alphabetically if they are textual
and numerically if they are numbers. There are a few special values that
will be sorted differently: short month names, short day names and
priority descriptions - 'low', 'medium', 'high', 'urgent'.
More special sorting rules will be added in future releases.
-
Let's enter an item of general information - not a buying list item
- and see how it will get automatically connected to one of the items in
buying list. So, here we go: title - 'lentils nutrition facts', tags -
'lentils, nutrition', body:
per 1/4 cup:
dietary fiber, 14g, 56% dv
protein 13g
calcium 2%
iron 2%
folate 50%
magnesium 12%

-
Now, let's filter by "lentils" - you should see the buy list item and
the last item we entered. Go ahead and add a diary entry: title 'lentils',
tags - 'diary, lentils', body - 'today i found out an interesting fact
about lentils - they have 13 grams of protein and 50% of folate for each
1/4 cup serving.' When you save this item, it should show up in current
list of items (which is refreshed after each save). Now you will have
three items of completely different 'main' categories that will show up
when you search for lentils. If you are a nutritional scientist or an
agronomist you may end up having thousands of entries under 'lentils' and
then you might prefer to add a second and third filters to suit your
current scope of interest.
If you will enter a few more items tagged with 'nutrition', the lentils item will show up in that listing, as well.

-
Take a note that each item will also automatically have 3 additional
columns to the very right - the first is for filename, second for created
date and third - modified date. This is useful for any item, but it's
particularly useful for diary entries, because without any further effort
you will be able to sort them by date. If you wish to be able to look at
the list of diary entries filtered by certain month and year, you can add
month and year as tags when you enter each diary, e.g. You might add two
tags, 'nov' and '2008', and then filtering by these tags will only show
you relevant items.
These fields will of course also be very useful for buy list items, if you wish to keep them around after you bought that item, for appointments and so forth (however, keep in mind that Tobu currently does not notify you about approaching appointments - this feature will be added in the future.)
-
You might be wondering about the field at the bottom labeled as
'attached file'. This field allows you to use tobu effectively as a
tag-based filesystem - at least, for the purposes of searching for files
or sets of files and for opening found files easily. You may attach any
type of single file to the item and describe it with tags. Hitting 'open'
will open the file with associated viewer app. Unfortunately, this is not
as easy to do as it would be to tag a file inside file manager and
filter/sort/search files inside the same file manager, but this it can
still be reasonably easy to do for some limited set of files that you
think you will need to find later; in addition, you can use this feature
to attach a file to illustrate or expand on the body of an item; for
instance the lentil entry could have a jpeg of lentils attached to it.
You can also drag and drop files into text area or in attach area, they will end up in attach area either way.
-
Let's quickly look at all the other features of tobu. In file | list tags
you can view all tags used with all items stored at the moment. It limits
the range to first 2000 tags to keep things quick. File | apply filters
will perform the same action as hitting the 'list' button as we did
before, which can also be done by hitting Ctrl-L shortcut. File | new tab
is the shortcut for using 'new tab' button on the bottom row (you can also
open a new tab by double-clicking in the empty area to the right of last
tab). File | find will search full items (including content) for entered
text and show matching items in the list window. There is also a separate find
command available by hitting Ctrl-F inside text area that will invoke
search inside just the current item. This command will work much slower
than filtering by tag names if you have a large database - use it only if
tag filtering did not turn up needed items. Options will let you set the
custom editor program used to edit text in content area when you click
'edit..' button. Built-in content area editor is very basic; you might want
to use gvim or notepad or some other editor of choice for longer entries
and for more advanced printing options (basic printing is provided by Tobu).
Note that in Linux, some editors fork when started by another program,
making it seem for Tobu that they finished editing and exited while still
running. Tobu will fix this automatically for gvim by appending '--nofork'
to the command, if you have this problem with some other editor, find out
the command line argument and add it to the editor command in options screen.
The symptom of this problem is that text in the text area is not updated
after you edit it with external editor, save and close the editor. The
reason is that the editor forks and sends 'finished successfully' return
code back to Tobu, then Tobu loads the temporary text file (which wasn't
changed yet) and loads it in text area. When external editor exits,
nothing happens because Tobu has no way of knowing about this.
New copy button will create a new record with contents of all fields copied from current record. This can be useful if you're entering a large number of records that are similar to each other, i.e. if they have mostly the same tags - like the buying list we did earlier or a todo list.
Usually, the most labor-intensive part of using Tobu is entering tags, aside from entering text area content. Tobu can not do anything to do the latter part easier, but it can help you type tags faster by using auto completion by pressing 'tab' after a few characters of a tag are typed in - Tobu will look at last 2000 tags used or searched for and will try to auto-complete the tag; if more than one match is found, they will be listed in the status bar. Since this feature uses the Tab key to auto complete tags, pressing tab will not take you to the text area as you might expect. In order to go to the text area, you can either hit Enter or press a space and then press Tab or enter a comma and then press Tab. In effect, if Tobu sees that you may be trying to autocomplete previous word, it will not switch to text area, even if no matches are found - it would be too confusing to try to do autocompletion, fail and end up in textarea even though you still need to add more tags or finish typing in the current one. In fact, you might want to use Enter key to go from Title area to Tags area and then to Text area - it will always work consistently.
Tobu About box will show you the total number of items currently stored in the database - you can see it by going to Help | About.
Normally, you can click on an item in the list to load it into the current tab - the only exception is the case when an item you click is already selected in the list pane; in this case you usually don't need to load it because it would already be loaded when you selected it in the first place, but in some cases you might need to load it again - for instance if you loaded it, closed the tab and now wish to load it in current tab. To load an item that was already selected in the listing, double click on it or select another item and then select current item again.
Note that tabs in Tobu have automatically-assigned colors - these colors don't have any special meaning except that they make it easier to find the tab you're looking for.
You can see the list of keyboard shortcuts by going to Help | Keyboard Shortcuts.
Note that in 0.4.11 Tobu was changed to show only columns with tags that match two or more items - the ones that match just one item will not be shown because they're relatively useless since they don't allow you to see a set of items by sorting the column - and add too much clutter when thirty or more items are listed.
-
"Views" is a feature that allows you to save a number of filters under
a single name, therefore letting you perform combined filtering quicker.
It produces the same result as entering the same filters in filter boxes
and pressing 'list' - in other words, it's just a shortcut. Under view
menu, you can save, delete and apply views. For instance, if you filter
for diary entries made during last month often, you can enter filter
'diary', then 'mar' for the current month, then go to views | save and
enter 'march diary'. When you go to views again and choose 'march
diary' (which should now be there), you will see the list of your
items.

-
What can you do if you forget the tag you used for a certain record?
Not to worry - filter boxes allow you to search for tags interactively;
enter any substring of the tag, whether it's in the beginning or the
middle, and a drop down box will show all matching tags. You can move in
the results box by using cursor keys and can choose highlighted tags by
hitting 'enter' or by clicking on it. Once tag is chosen from list, you
can hit 'enter' again to list items using current tags.
You can also click in the filter box or use down keyboard key to pick from a list of recently searched tags and a list of favorite tags. Recent list will be on top and contain 5 recently used tags, right below it you will see the list of favorite tags that can be added and removed from Tags menu.
You have to hit Esc to use text you typed in as-is, since Enter will always load a match from drop-down box if there is at least one match. This can be confusing because exact match is not necessarily highlighted in the drop down menu.
-
Note of caution - Tobu is geared for entering large number of small-to-medium
items quickly, therefore it saves an item automatically if it was changed
since last save when you do any of the following actions: enter a new item,
make a new tab, switch to another tab, load a new item from the filtered
list, close current tab and when you quit the program. It follows, then,
that you almost never need to use the 'save' button - it will only be
useful if the program crashes before you had the chance to perform any
action mentioned above. On the other hand, this means that if you change
the item by mistake and then do any of the actions that save, it will be
lost forever, barring possible backups you made. The lesson here is that
you should be careful in particular with important and long items, and to
maintain regular backups (I don't and I am often sorry not to). On the
plus side, you won't lose data as you would in a standard text editor if
you make changes and then click "don't save" by mistake.
Currently Tobu has one level of undo in a text area that will restore last change, beyond that all changes are lost. Eventually Tobu will support multiple levels of Undo.

-
Finally, a word on what makes a unique item. The title does not have
to be unique - that would be very inconvenient. Instead, the combination
of title and tags has to be unique. If you enter the exact same title and
tags, Tobu will tell you there's a mistake and will not save the item. For
technical reasons, items with the same title, when listed in the same
listing window, will show up as 'title-1', title-2', ... This will only
apply to the title shown in the list, real title stored with the item in
database and shown in lower portion of the window will still be 'title'
for all the items.
-
You can delete an item completely by right-clicking on it in the list and
selecting 'delete'. Note that item will be deleted from database, not only
from the list!
-
If you have to enter many items that look similar, you'll find templates
incredibly useful; templates work much in the same way as templates found
in many other programs, they let you enter title, tags and body text and
save all of them under a name for future use. In order to save a template,
fill any or all of the three fields as I mentioned, go to Templates | Save
menu and enter the name for your template. To use a template simply go to
the Template menu again and choose the name you saved your template under.
There are a few special directives you can use in your templates. Here they are: '%a' will insert an abbreviated weekday name, %d - day of month, %b - abbreviated month name, %Y - current full year and finally %% will insert a single percent sign.
-
You can print out current text area by using File | Print.. command. This
is a very simple plain text print function - it's currently colorless and
always uses default font style and size. If you need a more sophisticated
print function, you can use external editor command to print.
-
Tobu was tested with 100k records with a database size of 1.36GB and
performed very well without noticeable slowdown, but it's difficult to
predict how it will perform with a specific database because search speed
will depend on the number of records matching a particular tag and the
number of unique tags shared between all matching records. Performance
will probably be very fast except for that cases when a single tag
matches tens of thousands of records and the records have thousands of
unique tags between them.
-
As with most freely available programs, although I will try to do my best
to avoid possibility of any data loss, but I can't be held responsible for
any bugs that may cause data loss. Data is stored in the sqlite format file
called data.db. You can back it up separately if you don't do complete
system backups.
-
What is the big idea of tobu? Tobu is not particularly useful when you
have a small number of records. If you have a hundred data items, it's
reasonably easy to organize them in some sort of a tree branching
structure, similar to files organized in directories in a file manager or
records organized in a 3-pane outliner such as an excellent 'Treepad'. Once
you hit 500-1000 records, it may be difficult to navigate because you'll
find that some records belong to one or more categories; when you look for
a certain record, you will not know where to look and you'll end up
searching in too many places; in addition, you will only be able to look at
the collections of records as they fit in structure you set up when
entering them.
You will be able to see all diary entries for a certain month but you won't see a list of items related to a certain topic spanning many categories. As the number of items grows to 5k, 10k, 50k and more, it becomes exponentially harder to find a set of relevant items; it's also harder to enter items in the tree structure because you have to choose between many categories that may be relevant. Full-text search helps but it will almost always produce a set of results that is too big or too small, it is particularly difficult to use search if you're looking for a set of items instead of just one particular items, and naturally you won't be able to sort results as you may do with tobu.
Tobu makes it easier to enter new items because you are not trying to foresee how you might need to find the information later, or how it fits into the grand hierarchy - you're only describing the item as it is. The task of organizing information is relegated to the time you search for a set of items, as opposed to an outliner or a folder structure where you organize information as you add it and then use that old organization - which may be unsuitable - when you look for records. In short - you don't have to organize your information at all - you only have to describe it and the only time you have to see organized information is when you search for items or sets of items.
One way to look at tobu is to see it as a database that can be used quickly and easily by direct interaction. Another way to view it as an evolution of a tree-like outliner that lets you maintain multiple web-like connections between items as opposed to single descending parent | children connection.
The only tricky part of using Tobu is knowing which tags will describe the items in a way that will be most helpful when you search and sort them in the future. There are no definite rules here, and the only way to learn is to use Tobu for some time, but some rule of thumbs are as follows: you don't need to duplicate text that is already used in title and put it in tags area at all times, filter boxes will search and try to match titles as well as tags, but tags will create a column that will mark whether an item has this tag or not. For example, if you have an item called 'buy lentils', you might put 'buy, lentils' or 'buy, lentils, buy lentils' in tags - the difference is that second item will have a mark in the column titled 'buy lentils' while first will not. If you have a number of items that are marked with 'buy lentils' tag, you will be able to sort them apart from buy list, which is something you probably don't need in most cases - it should be enough to be able to filter for two tags, 'buy' and 'lentils' or to filter by 'buy' and sort by 'lentils' column.


