Zeitgeist: The Road to Maverick Meerkat

Just like last year Zeitgeist developers were present at UDS...
It was amazing I will write about the UDS exprience in another blogpost.
I think my favorite moment was Mark announcing Unity and using Zeitgeist for file management on the desktop. Although Mikkel knew about it (he works for Canonical), it took the rest of the team by surprise. It is very nice to feel appreciated. And I think i speak on behalf of the whole team when I say "Thank you Ubuntu and Canonical for giving us a chance".

This being said, working with Ubuntu and Canonical is in  an honor and we need to provide them with something stable and maintainable. To cut to the point here is a list of how we should proceed within the next couple of months:

Zeitgeist Core:

We need to focus on providing a good product. We had and still have good ideas but we need to look into setting limits for a short period of time.

  • Feature Freeze set date: We should freeze any set of features we have in a queue... maybe we should set a deadline for discussing any new ideas someone might want to add to Zeitgeist. IMHO we should freeze after the current blueprints. New features mean new API methods means new bugs and more maintenance on a short term. Which leads us to the second point.
  • Bug fixing: We need to fix every bug in our list. There is not much left an to be honest, we did do a good job on that so lets focus on working them all off.
  • QA: By far the most important point. If we want to be taken seriously and deploy on a larger scale we need to prove we are stable. One of the obstacles we have is that we are written in python. For the hardcore fanatic developers it is a no go. However IF we can prove that we are:
    • STABLE: Fix all bugs. Nothing should crash etc...
    • MEMORY EFFICIENT: We should look into where we can reduce memory consumption and maybe not loading all libs or init everything on startup. Mikkel suggested looking into SQLite caching.
    • PERFORMANCE EFFICIENT: I think we are good in that department but still we should go over it again.
    • RELIABLE: We might be stable by delivering results but we need to be reliable by delivering the expected. This means writing lots and lots of Tests. we should try reaching 200 test. There is no such thing as a redundant test.
    • MAINTAINABLE: Clean up code. Try to split big big big methods into smaller methods to make it readable and maintainable. I know it collides with performance but I think we should reach some middle ground there.
  • Documentation: Look into having reliable documentation. Just like unit tests there in no such thing as too much documentation. If we can document a method or a variable then we should do it. It will make life easier for us to maintain each others modules and methods. Also the online documentation has to be always up to date, a nightly build from trunk would be awesome.


    Now we need to integrate more with the desktop more. So IMHO we should set and focus on a couple of deployment opportunities. We will try to use the libzeitgeist as much as possible to assist Mikkel with bug tracking as well looking more into C code and stabilizing it. So back to some deployment opportunities, I wouldn't mind coordinating those things.

    • GAJ: we should stabilize it for GNOME 3 (even though we did not make it in) or the next Ubuntu Release. Randy (tehk) is doing some nice work with that.
    • Ubuntu Music Store: *secret for now* :P
    • Windicators and Indicators: Look into Michal's (mhr3) recentlyused stuff in AWN and deploy it as an indicator or windicators for different applications.

    Part of being Ubuntu upstream we need to look at our community that surrounds us. There is a big amount of enthusiastic developers that have nice ideas of how to integrate Zeitgeist into the Desktop Experience. To reach out to the community and developers we set up some tools to ease the development and contribution to Zeitgeist. Launchpad is our main development infrastructure thus it is easy to cooperate and get in contact with us:

    • The main Project page: https://edge.launchpad.net/zeitgeist-project . You will have a quick access to all kind of Zeitgeist related project such as GAJ etc...
    • PPA for Engine: https://edge.launchpad.net/~zeitgeist/+archive/ppa
    • Data Providers: https://edge.launchpad.net/zeitgeist-dataproviders . While Zeitgeist comes with a standard recentlyused monitor, we have another set of data providers that are either not supported by the recentlyused manager, such as tomboy and rhythmbox, or allow us to get more info through them than through recently used maanger. We need to finish an installer package for our dataproviders and update it on a constant basis with every dataprovider release or update. Installation of data providers should be straight forward.
    • Documentation: http://zeitgeist-project.com/docs/trunk/ is a documentation with a few tutorials and examples.
    • Mailing List: you can always contact us on dev <at> zeitgeist-project <dot> com
    • IRC: just join us at #zeitgeist on irc.freenode.net
    These are interesting times ahead, and the Zeitgeist team is psyched like never before...