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.
Deployment:
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*
- Windicators and Indicators: Look into Michal’s (mhr3) recentlyused stuff in AWN and deploy it as an indicator or windicators for different applications.
Community:
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…
I hope you realize how porn-user-unfriendly this is
Firefox understood this and now provides the “private browsing” option.
You dont always want every other user that might happen to access your computer to know what you’ve been browsing for or what files you have been working on – true you might click on “start a guest session”, but still. Every person who had a friend start to type “youtube” and see all your youporn links will know that you deserve some privacy
I wouldnt turn this on by default unless there is a really easy way to deactivate it.
we are introducing an incognito mode… right now u can deactivate logging over dbus using blacklists
If you are looking for speed, forget SQLite – look toward CouchDB or better yet – Tokyo Cabinet.
Very good opportunity 4 you and all Zeitgeist Team. I love Zeitgeist i want to try zeitgeist-windicators (very powerfull superhero
).
But rewrite zeitgeist engine in C or Vala how many memory clean? actually on my PC daemon and datahub need 15+mb.
First thing I do is always kill all the Python crap that is running on Canonical systems. They need memory like the integrity of universe depends on them and they are dog slow. You will not make Zeitgeist work on underpowered slow mobile devices if you stay with Python. Google tried to speed up Python with Unladen Swallow and they mostly failed. Python is slooow and will always be slow.
OK, I will stop ranting and give some constructive thoughts:
Maybe you should have a look at Genie (part of Vala) it has similar syntax as Python but compiles down to efficient C.
If you look how fast Henry was able to port Tomboy from Mono to C++ then porting Zeitgeist from sloow Python to fast Genie should be something within reach. Maybe you won’t hit MM, but Python is IMNSHO a dead end. Canonical is really stupid to use it everywhere. That way they will never have Apple like smoothness, because Python is soo dog slow and crappy at everything (startup, memory usage, stability, performance, etc)
congrats zeitgeist team. your hard work shows.
Hi Barra
Well we r getting rid of the datahub, this means Zeitgeist will stay waaaaaaaay below 10 MB
Rewriting in C or Vala wont help since most of the time spent and memory used is in sqlite and dbus. We did some profiling. It wont make a difference…
Maybe for startup times. But right now we are sticking with our development.
@ Tom:
Rewriting in C or Vala wont help since most of the time spent and memory used is in sqlite and dbus. We did some profiling. It wont make a difference…
Maybe for startup times. But right now we are sticking with our development…
And replace sqlite with couchdb (used in many other Canonical application) or other DB may be good choice?
“we should stabilize it for GNOME 3 (even though we did not make it in)”
Who said that, where and when?
CouchDB is slow, check out gwibber’s developer comments on this issue.
@andre: Well according to Vincent http://itmanagement.earthweb.com/osrc/article.php/12068_3881686_2/Future-GNOME-What-to-Expect-in-GNOME-30.htm
also fredp had the same opinion at UDS
[...] 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”. [...]
hi dear salaman
So what’s the current state of Zeitgeist and all that stuff? Is it already usable in Lucid? I installed and started Tracker but it appeared to be still quite slow and unpredictable. But I don’t know whether Tracker is actually necessary for ZG… And are there any apps available in Lucid that actually use ZG so far?
@oliver: You dont need tracker to run Zeitgeist
you can run Zeitgeist on its own…
Docky and GAJ are in lucid and use Zeitgeist
Even for an area I know well, I prepare a shooting list of subjects I need.
has been acknowledged by newcomers.