Hiring Christian Kellner

October 8th, 2009 by mr

More recently we have been looking into hiring more developers/managers and we managed to entice Christian Kellner into the company. We are thrilled to have him work for us. Welcome Christian!

We have received many requests for work and we are still processing those. If we haven’t got back to you yet, we will. Thank you everyone who applied! :)

Tracker + Totem

October 7th, 2009 by mr

Bastien has been complaining that the Tracker plugin for Totem doesn’t work any more since 0.6. So I decided to see how quickly I could update it today. All in all, it only took me a few hours and here it is. You will have to excuse the crappy file naming and video tests I have to play with – normal users probably title these a bit better I think :)

On another note, we released 0.7.1 on Friday gone with some really nice fixes since the first release. We plan on doing another release this Friday too.

Tracker 0.7 Released!

September 30th, 2009 by mr

Finally it was released and announced last Friday.

As part of this work we added an applet called tracker-search-bar which is just a quick way to access your content.

Here is a video of Tracker search bar in action

So now developers can start getting stuck in!

Lanedo is hiring!

September 23rd, 2009 by mr

We at Lanedo are currently looking at hiring people with development experience around GNOME, GTK+, X11 and related technologies. We are also looking for people with project management experience in this area.

If you have this and are interested in working for us, please send your CV to info at lanedo.com.

Tracker Update

September 18th, 2009 by mr

libtracker-miner

So Carlos and I have been working on libtracker-miner for the last few months. Since tracker-store (formerly known as trackerd) is now handling all reads/writes from/to database and doing it much faster than ever before with a much more expressive language to query with (SPARQL), we had to merge the old tracker-indexer and parts of trackerd from the 0.6 branch into one binary that could crawl the file system, insert file specific metadata and call tracker-extract for file type metadata (for example: none “file” data, but actually data like image height, width, etc.).

As we had to do this anyway, we took the opportunity to refactor the parts we were unhappy with and to make libtracker-miner a library which other “data miners” could use. This gives the following things:

  • DBus integration for free
  • An API to find other miners both available and running
  • An API to get/set status, progress, name and description for each miner
  • An API to pause/resume each miner
  • Signals to know when all miners or specific miners start/stop/pause/resume/error/progress.

More recently, Adrien Bustany has been working on “bridges”, which in fact are the same principle, they are miners of data but for web applications like:

  • Facebook
  • Flickr
  • Twitter
  • etc.

We are working together to integrate this into the “miner” framework we already have set up in master right now and it is quite exciting to see integration in other areas than just desktop applications.

Additionally, Philip is making Evolution use the same miner API so we will have support for 3 miners as standard out of the box for:

  • Email data
  • File data
  • Application data

tracker-status-icon

Formerly known as tracker-applet, this has been refactored by Carlos recently to work with the new miner API too, so now you can see (much like the network manager) a list of miners and their state/progress. It also allows pausing/resuming of ALL or single miners at a time which is very useful.

tracker-preferences

The tracker-preferences application was also really out of date. The whole configuration system has changed since 0.6 so we decided to use Vala and GtkBuilder to build the new dialog. This dialog only services tracker-miner-fs preferences right now because they are really the only settings that make any difference to the user at this point. There is some polish that is needed here, but it looks good so far:

screenshot-tracker-preferences

0.7 Development Release

The current roadmap is mostly done now with a few exceptions which we have decided to not worry about for the 0.7 release. Next Friday we plan on doing this release now that most of the UIs are in reasonable states and people should be able to start using it normally now all the big features have been integrated. This has been put off by 2 weeks already but we don’t want to delay any further. So look out for a new version of Tracker next week!

OSiM

September 18th, 2009 by mr

So this week, as Tim already blogged, we were at OSiM in Amsterdam. It was great to see how the mobile market is getting involved in open source and to meeting some really interesting people there. It was also good to see friends there from Collabora, Codethink, Igalia and Intel.

Tracker Update

July 29th, 2009 by mr

Roadmap to 0.7

While I was at the desktop summit, I decided to come up with a roadmap so we all had something to work to for the 0.7 unstable release which we are hoping to do soon. The roadmap is on live.gnome.org here:

http://live.gnome.org/Tracker/Roadmap

As you can see, it is progressing nicely.

Config

The configuration system in Tracker has always consisted of one TrackerConfig inheriting from a GObject and used to load/save applying the GKeyFile API. The problem we found here, is that we really want configurations to be more fine grained to specific binaries. Some of the options (like log verbosity) would apply to ALL binaries that use the config otherwise. So now we have TrackerConfigFile as a base class with tracker-object-keyfile.[ch] to do some utility functions for us in libtracker-common and all binaries that want their own TrackerConfig with object properties now inheirt from TrackerConfigFile. This is quite nice because it reduces the code duplication we had and now we have a nice set of separate config files in $HOME/.config/tracker/.

With 0.6. we also had this concept of “modules” which would be for each type of data we wanted to track. We had “files”, “applications”, “email”, and some others… These modules also have a configuration pertaining to how to index their data. Things like globs for including and ignoring certain files. There are also options to make sure data isn’t indexed too regularly (which was needed for some content that was constantly updating). All of this is in the process of being revised and merged with the TrackerConfig machinery. This mostly applies to the “files” module though. The module config and module code (which was a complex GModule implementation) is all going to be simplified now that we have separate binaries for mining each data we are interested in.

Album Art

This was quite a mess before. We had code in different places for this. Over the past week or so I have cleaned this up too. Now we do all album art downloads and extraction from the tracker-extract binary (called from mp3 and gstreamer extractors when they see media with such content). Before we would request thumbnails for the new art in tracker-extract, but due to the unstable nature of tracker-extract (based on dynamically loading modules using 3rd party APIs we can’t guarantee the stability of) we were always at risk of failing to queue new thumbnail requests to the thumbnail daemon if we had a crash. We only send thumbnail requests AFTER all indexing has been completed, if we don’t do this, we suffer with severe performance problems. Now all thumbnail requests are done from one place, the tracker-miner-fs and the albumart functions are no longer spread across libtracker-common and tracker-extract. They are just in tracker-extract.

Volume Support

Over the past few days Carlos re-added volume support to Tracker so now using a simple query, you can find out if your data on that MMC you just inserted or removed is available.

So, to get a list of ALL data objects and their availability (which is true or false based on if the media is mounted or not) you can use:

$ tracker-sparql -q "SELECT ?do ?av WHERE {
                            ?do a nie:DataObject ;
                            tracker:available ?av }"

You can also get a list of all data objects which are NOT available. To make things faster, we have not included “available” for EVERY item, only where items are available. This makes updating the tables a lot faster. So when looking for files which are not mounted, the query becomes a bit more complex:

$ tracker-sparql -q "SELECT ?do WHERE {
                            ?do a nie:DataObject .
                     OPTIONAL {
                            ?do tracker:available ?av } .
                     FILTER (! BOUND(?av)) }"

Of course the most common use case is, tell me files which are available, which can be done with:

$ tracker-sparql -q "SELECT ?do WHERE {
                            ?do a nie:DataObject ;
                            tracker:available true }"

We are still fine tuning the volume work to be faster but things are coming along swimmingly!

Desktop Summit, Lanedo & Imendio and Tracker

July 15th, 2009 by mr

Desktop Summit

Wanted to say thank you to everyone at the desktop summit this year. It was superb and it was good to see everyone again!

So it became quite obvious to me at this years desktop summit in Gran Canaria that no one really knows what is going on with regards to Lanedo and my involvement in projects. This is primarily because I haven’t been blogging enough. I have decided to change this.

After speaking to various people (Bastien, Lucas, etc) I was surprised to hear some of the questions about Lanedo. I thought my initial blog covered it. But clearly not.

Lanedo & Imendio

In December 2008, Micke spoke to us all in Imendio and said that he was going to shutdown the company. Of course this came as a huge surprise to everyone given our success over the years and the economic climate was not the reason for his decision. The reason was stress. If I really think back I can see how Micke was trying to change things internally to alleviate this by of-loading some of his responsibility to others. This happened probably for a year or more. In the end, I think it was just too much. Towards the end of Imendio, you could tell how stressed Micke was by his demeanor. Now-a-days, he is much happier and everyone can see the change.

Richard decided to not continue with Imendio too. As such Tim and I (who were effectively internally managing projects at Imendio) decided to start a new company if everyone (except Micke and Richard) wanted to continue. The consensus was that they did, so in January 2009, Lanedo GmbH was formed in Hamburg. We took on some of Imendio’s contracts and now we are continuing the work on our own steam.

Tracker

This year Tracker was in the spotlight somewhat. As a project it was grown considerably in the last 12 months. In the early part of last year, Carlos and I started working on it full time. More and more people got involved like Jürg Billeter, Philip Van Hoof, Ivan Frade and Mikael Ottela. These are the core developers. We refactorred a lot of it to produce the 0.6.9x releases. Jamie has been providing feedback about direction and ideas and doing one of the most important features – the SQLite module we use for Full Text Search (FTS).

About 3-6 months ago, Jürg, Philip and Ivan started looking into the 0.7 work and at the moment Jurg is leading the development there while I maintain bug fixes for the 0.6 branch. Our roles in the project are all quite well defined (I would say at least) and it is a really fun project to work on with some really brilliant people contributing. Right now, this is how it looks:

I handle the File system monitoring, crawling and database connection management. I also do the 0.6.9x releases and have been doing project management in coordination with Urho Konttori.

Carlos maintains the indexing of the data, the extensions (or modules) which know what to do with the data we extract.

Philip works on the thumbnailing and has a really good appetite for creating specifications and working with new technologies to provide ideas about how to improve areas.

Ivan is our ontology guru not to mention he added the GLib unit tests to Tracker which is a huge benefit.

Jürg has been working on completely refactoring the databases and the higher level API that sits on top of them (libtracker-data). Jürg is also leading development the 0.7 (master) branch right now.

Mikael is our extractor expert. Mikael has been improving constantly the MP3/GStreamer/JPEG/etc extractors to get better performance for each release.

ALL of us do general project maintenance it should be added, so we all contribute to each other’s areas. These are also just some of the more noteable areas which we are each involved in. It is a large project and there are a lot of things not mentioned here.

So right now Tracker is looking really good and it is an exciting project to be involved in, especially with Zeitgeist being interested in using it and other components in BOTH desktops too.

I plan to blog much more about features we add, crap we remove, etc.

Lanedo sponsors GNOME at LinuxTag

June 19th, 2009 by mr

Lanedo has only been running since January and we have been lucky enough to be able to sponsor the conferences we usually attend this year.

So far, these include the Desktop summit and Linuxtag and we are also looking into sponsoring FSCONS later in the year. For LinuxTag we are sponsoring by sending Tim and Sven and by donating to the cause.

This year as usual, Sven will be propping up the GNOME booth for us, so if you are in that vicinity, don’t forget to come by and say hello!

Hello World!

March 31st, 2009 by mr
Picture of William

William Joseph Russell was born 08:46, March 26th 2009 weighing 8lb 15oz (4.05 kg in new money)