I have looked at many programs which organise notes and build a personal knowledge base. Many of them were not worth keeping installed on my computer for various reasons.
Of all the programs I have looked at three stand out as being better than the others in my opinion. Of these three there doesn’t seem to be a ‘best’ program they are all good, but in different ways. The three programs which remain installed on my system are ConnectedText, MyInfo and Ultra Recall. I have been using ConnectedText for about two years, I have been using MyInfo for about a year and Ultra Recall for about ten months (as of December 2014).
Ultra Recall and MyInfo
Ultra Recall and MyInfo are very similar to each other and so it is easier to compare the two. They are both note taking programs which put documents into a tree structure. The layout of the user interface and the structure of the collection of documents is preset by the programmer and although there is some flexibility you cannot change the basic structure as you can with Connected Text. Ultra Recall allows more flexibility in the layout of the user interface than MyInfo does.
There is no scripting in either program.
Ultra Recall is technically superior to MyInfo but MyInfo has a much better user interface, it is easier to use and so it is the one I find myself using for day to day note taking despite the fact that I feel I ought to be using the more powerful Ultra Recall. This blog post is being composed on MyInfo the same as the rest of my blog posts.
I just find MyInfo nicer to use than Ultra Recall.
Cloned documents on Ultra Recall are true clones, if you add a sub document to one of the clones on Ultra Recall then the other clones also get that sub document added to them. On MyInfo child documents of a clone have to be kept in sync manually which can be tiresome.
When using a 2 gigabyte database containing 20,000 documents they both perform well, searches are lightning fast but MyInfo takes a much longer time to initially open the file. I don’t usually have this many documents in my database, I just use a few texts from Project Guttenberg to test how these programs will cope if I ever do get that many documents.
Ultra Recall handles embedded OLE (Object Linking and Embedding) objects better than MyInfo. By OLE objects I mean Excel spreadsheets and Word documents. OLE objects can be problematic for programs. For an OLE link to work properly both the server side and the client side need to be implemented properly. Ultra Recall have implemented the OLE client properly.
Microsoft products have both server and client working properly, this is unsurprising since they wrote the standard. Other programs are less successful. If you try to embed an Open Office Calc spreadsheet in Ultra Recall then it doesn’t work because Open Office have not implemented the server correctly.
So there are very few programs other than Microsoft Office applications which will work with OLE. MyInfo is able to embed documents from Microsoft Office applications via OLE but there are many caveats and restrictions so it is not that useful in practice.
The tagging interface on MyInfo is much better than Ultra Recall. MyInfo also handles tables better than Ultra Recall and it can display meta-data in columns next to the tree which is quite useful.
The meta-data in MyInfo is communal, that is every document in the file has the same meta-data, this encourages you to split up your data in separate files, but you can have many files open at once in tabs just below the toolbars.
With Ultra Recall each document can have different meta-data, this has the advantage that you can keep different types of data in the same file but has the disadvantage that the meta-data can become disorganised.
Ultra Recall also allows many files to be open at once.
ConnectedText is completely different to either Ultra Recall or MyInfo. It is a Wiki engine, it contains plain text in it own markup language styled by a standard HTML CSS file. The markup language contains many directives for classification and linkage and can also contain scripts using the Python programming language. There are also queries which may be placed on a page, that page will then display the results of the query.
The interface consists of the main window displaying your page (or editing your page) plus a number of other windows which may be displayed or not depending on whether you want to see them or not. They may be docked within the main window or floating. You can even place them on another monitor if you have one. The layout of the interface is very flexible.
MyInfo and Ultra Recall organise their documents into a hierarchical tree structure. At first sight this is lacking in ConnectedText but that is not the case. ConnectedText does ‘outlines’ which can be filled with links to ConnectedText pages in a hierarchical tree structure, in fact you can have as many different trees as you want, each one giving you a different perspective on your data.
Connected Text is very very powerful, but not very intuitive or interactive. It has a separate viewing and editing mode so what you see is not what you get. The program takes a lot of learning to be able to use it fluently.
There is a trick which can be used to make ConnectedText a little more interactive, it allows a ‘floating window’ to be opened so you can view one topic whilst editing another. But the topic in the ‘floating window’ can be the topic you are editing. It won’t be updated continuously but every time you hit the save button on the toolbar the ‘floating window’ will be updated. So you can see the effects of your edits in semi-real time.
The structure of the collection of documents is whatever the user wants it to be, although most times it does end up looking like web pages on a website. This analogy is apt because working with a ConnectedText wiki feels very much like maintaining your own personal website, except that the facilities available are far more powerful than HTML. The pages can often be more graphical than MyInfo or Ultra Recall which tend to be plain text. But to achieve this takes more work than in Ultra Recall or MyInfo.
Tables have to be thought through beforehand and carefully programmed, this is usually an iterative process.
With too much data the performance of Connected Text falls considerably and searches on large data sets become very slow and the program sometimes runs out of memory (no matter how much memory you have in your computer Connected Text version 6.0 will only use 2Gb). This test was with just 10,000 documents and the program was floundering, MyInfo and Ultra Recall were performing very fast searches and suffering no loss of speed of navigation with a database of twice that size.
ConnectedText also has a lot of plug-ins, there is GraphViz for drawing directed graphs which I use quite a lot and is very useful. There is Ploticus which draws graphs, which I have used but not that much. There is TeX for rendering mathematical formulas and a map plug in for getting Google Maps and displaying them in a page (you need an internet connection for this to work).
The most useful plug-in of all must be Python, you can write scripts in Python and they get run whenever the page is rendered. Also the internals of the ConnectedText database are available for use in Python.
There is so much depth to this program, I have been using it on and off for about two years now and I am still learning what it is capable of. Be warned if you get ConnectedText the learning curve is very steep. But it gets easier with time.
I think that at some point soon I will uninstall Ultra Recall. Technically it is better than MyInfo but MyInfo is just so damn convenient and useful. They both perform the same function so I can’t justify keeping them both, and keeping them both in sync is very tiresome and so the Ultra Recall database has fallen behind I now no longer bother to update it.
As to which one is the winner between MyInfo and ConnectedText …
I don’t know.
They are both extremely good. But they are so very different. Whilst the databases I had in Ultra Recall and MyInfo were just copies of each other the database in ConnectedText is quite different from the one in MyInfo. The programs work differently and different things are possible in each.
I still haven’t decided.
Maybe I will keep both.