Search is at the heart of Ubuntu. Whether you search for applications or content in the dash, search for functionality in your applications the HUD, or search within applications and your file manager, for Ubuntu to be successful we have to get search right.
As we build search more and more into Ubuntu, it becomes increasingly popular. As an example, the HUD has been a really popular feature, but if there is one piece of feedback we hear more than ever is that it would be nice if the search in the HUD was even smarter.
This is a great way in which Open Source and community can iterate and improve.
One core project being worked on to consolidate search best practice is libcolumbus.
libcolumbus is an implementation of the Levenshtein distance algorithm, but with a fast search and custom errors. The library is currently used by the HUD, but it is designed to be used across other parts of the desktop and devices as well as embeddable in applications. As with all search algorithms, iterations help bring better user experiences, and
libcolumbus is something we would welcome community involvement in to help bring these improvements.
It is written in C++ and the author, Jussi Pakkanen, is keen to work with our community to grow involvement. Hacking on and improving
libcolombus will not just help search in one place, but everywhere.
First, be sure to see Jussi’s blog about libcolombus for more information about the goals and architecture of the library.
Also see the Launchpad project and you can get the code with:
bzr branch lp:libcolumbus
I have asked Michael Hall to work with Jussi to help get a hacking guide, list of bugs, and feature goals online soon, so stay tuned for more information. Also, Jussi is in UTC+2 timezone and is available in
#ubuntu-unity on Freenode (his nick is Satoris).