My Take on Zeitgeist and GAJ not being in GNOME (A Personal Rant)

Rejection reasons for GAJ:

  • The original design idea is one we want to see happen during the GNOME 3 development.

And what is the current idea… Sorry but it is EXACTLY the same features. Browsing Activity through time and finding associations using Zeitgeist and Searching, Tagging and Bookmarking using Tracker. The reasoning here is to vague…

  • needs more integration with the rest of the desktop and the overall.

You mean integrating Zeitgeist not GAJ… GAJ is a UI so do you want us to provide GAJ widgets like Empathy does with its widgets?

  • GNOME design; right now, it feels too much like a standalone application.

It took us a lot of effort to get it looking the way it does now and I believe it Truly blends in with the Desktop. Hylke Bons did some amazing designs. And sorry it is not like we came out with a surprise design and implementation. We worked in the open. We blogged about the development. You could have told us it looks to “standalone”… Empathy is a standalone app AFAIK. I somewhat agree that GAJ might feel out of place in GS, it feels more like a G2. That is partly because of the highly themed environment GS sports, anything that is not native to GS will feel out of place there actually.

  • The team might need to work a bit more closely with other GNOME teams for the integration.

Integrate a UI??? Again this makes no sense at all… Again you seem to not be able to differentiate between Zeitgeist and GAJ…

Rejection reasons of Zeitgeist:

  • Not needed since GNOME Activity Journal is not approved. If another module will need it for 3.0, this decision will get revisited.

I don’t know any official module that use Tracker yet. However it is a blessed dependency, which makes A LOT of sense to me, since it encouraged us to write Tracker extensions and make it a GAJ dependency. How do you expect people to depend on something that is not blessed. We will be shipping out shit loads of plugins soon so maybe you will revisit this decision (Thank you GSoC for Michal Hruby).

These being official reason, I know there are a lot of other reasons that could have played a role:

  • Zeitgeist in Launchpad.

A lot of people hold a grudge against us for that but hey its free, open source and wont bite you. Sorry but GNOME’s infrastructure from my point of view just doesn’t match launchpad. I am not talking Bazaar vs Git. But the whole Management System.

  • Not integrating with Shell.

We want to but there were many problems in the way that we managed to put aside. Yet we need to find the time. If anyone wants to integrate into Shell contact us. But as long as we are not blessed it makes it hard for us. It make sense to integrate Zeitgeist into Shell and give it functionality but it makes no sense to reject GAJ for that. GAJ will offer more Zeitgeist functionality than Shell… More detailed browsing is one example.

  • Our high affiliation with Ubuntu and Canonical.

Their mentality about encouraging development and innovation ACROSS the desktop. Yes *apparently* Canonical did its fair share of *mean* stuff but hey lately they have been amazingly nice and supportive. Plus all our devs use Ubuntu.

Canonical hired our lead architect and payed him to write libzeitgeist a C Wrapper around our DBus interface. It would make perfect sense for other GNOME projects to look at it… Thank you Canonical

  • Our professional image

Yes I am over enthusiastic but why should my team suffer from that. Zeitgeist has 5 core devs and 3 contributing devs. We all make sure that we are having fun and every1 established his role in the team to offer the best possible combination. Our code is reliable. We hunt all bugs out and are very stable and efficient even though written in python.

For now we will live with the downstream, ISV and community projects that embraced us, ask GNOME people to help us get things right, with the Zeitgeist and GAJ inclusion for 3.2…

More takes on a Zeitgeist based Open File Dialog

So here are more attempts on a open file dialog (NOT A FILE BROWSER)

Thanks for David Siegel for the help… Once we have the design and prototype stable it will be hacked in Vala…

Constructive criticism is always welcome…

UPDATE #1:

Changed themes and some padding. looks much better now

Rhythmbox rocking Zeitgeist

We are very busy preparing:

  1. Zeitgeist 0.4
  2. GAJ 0.3.5
  3. Sezen 0.1
  4. Zeitgeist-Extensions  0.1 (Tracker, Geo-Location and Full Text Search)
  5. Zeitgeist-Loggers 0.1 (Package with plugins for apps to send infos to Zeitgeist)
  6. LibZeitgeist (A C wrapper around our D-Bus API)

But most interesting would be some integration we are working on to blend into the desktop experience… we have a new plugin that displays some of the statistics of your listening habits in Rhythmbox. It needs some polishing and will be released with the next wave of release.

Concepts for a new “Open File Dialog” and “Search Dialog” using Zeitgeist

I have been pissed at the open file dialog for a while now and decided to make use of Zeitgeist to hack up a new one from scratch. I decided to use the concepts from Elementary’s Sezen for a Search Dialog…
The nice thing is we killed 2 birds with one stone here.
We have a prototype for a search and a open file dialog in one…

With Zeitgeist we will be able to associate other recent or most used files from other apps. The search is live too :)

I am now asking you guys here to tell me what you think of the 2 different views…
This is a functioning prototype that will be released with the next Zeitgeist if there is any demand and positive feedback…

* UPDATE #1:

I modified the UI again hope this is good enough :) keep criticizing where to move the widgets…

To explain a bit the arrows navigate in time between “Today, Last 2 Days, This Week, …., This Year, All Time”. “Latest and Popular” are for sorting :) latest being recently used and popular being most used.

* UPDATE #2:

More improvements done… it should look a bit more like danrabbits mockups…

There is another implementation I was playing with…

Zeitgeist: Location Awareness

I will keep this short, since the title says it all… We are adding a couple of new user stories into the repertoire of Zeitgeist and GAJ:

  • What did I do most/recent at location X ?
  • Where did I use file A or contact person B most/recently ?
  • What did I do on my way from X to Y ?

The current status is still under development… We get the data in the DB yet we need a pretty nifty API for it. GAJ is already setting up support for this feature…

It is a matter of days a prototype will go public… It will be an extension for Zeitgeist so no hard dependency and it will be using geoclue for now…

If you are interested in the backend implementation for it don’t hesitate to contact us at #zeitgeist on irc.freenode.net and for the UI integration in GAJ come to #gnome-zeitgeist on irc.gnome.org

Zeitgeist developer in need of new hardware (appeal for donation)

After my laptop (Dell XPS 1330) broke at GCDS. I came back to Germany and bought me a little nettop (I got 100 Euro discount on it) since it was the only thing i was able to afford. I used it with my 22 inch screen and even took both of them with me to the OpenSuSE Conf. Right before the Zeitgeist hackfest I added a little extra and switched my nettop with a notebook. So all the Zeitgeist development on my side since after GCDS was done on a Atom 1.66 GHz processor, and let me tell you its a PITA. I don’t want to sound whiny but it is slow. GNOME Shell takes forever to compile. To open the applications menu for the first time in Shell takes 10 seconds here and 17 for the Recent Documents. Other things took me around 30 – 90 minutes compile such as evolution and nautilus. It is becoming a bottleneck for development. I really would like to look into more Zeitgeist deployment as well as hacking on some bigger integrations:

  • Zeitgeist integration with Evolution: Show me what files i used during a meeting. Which contacts I interacted with most.
  • Zeitgeist integration with Unity: I already have a python implementation of the UI using Zeitgeist and intend to support the DX team with the Vala implementation.
  • Zeitgeist integration with Nautilus: Add the Recently Accessed as well as Commonly Accessed in the sidebar.
  • Zeitgeist integration with Shell: Basically finish the implementation of http://blogs.gnome.org/mccann/tag/gnome-shell/
  • More stuff…

The notebook in mind is the Lenovo x201 and costs 999 € at a local notebook shop. This beast will allow me to undertake at least twice as much hacking. One of the reasons I usually hack in python is my fear of compiling taking forever. This won’t be the case with a proper notebook. It will motivate me to hack in C and Vala. However being a student and unemployed makes it hard for me to afford it. So if you could find it in your heart to donate something I would be very appreciative. I will put up a little Paypal dontation box on the sidebar of this blog as well as on the bottom of this post…

Update: Thanks for donating guys… Right now I collected 527 out of 999 :)

Update #2: Wow you guys rock… 607€ out of 999€

Update #3: 832€ out of 999€ Thanks alot guys… BTW can anyone recommend a charity or a school I can donate my netbook too…

Update #4: 1005 out of 999€ THANK YOU ALL FOR DONATING I took out the donation box out of the post… I will buying the new Notebook and blogging about unboxing it as well as giving credit to the donators starting Wednesday. I have to move out so I am a bit in a jam the next few days.. Thank you all again… I will keep the donation box on the blog (not the post) for those who like my work :)

Sheldon Cooper uses Ubuntu

Straight from the King of Geeks and Lord Bazinga!

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* :P
    • 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…

    Zeitgeist attracting new Rockstars

    This time of the year is just awesome. Around a year ago (same time) the Zeitgeist core team was created. GSoC 2009 blessed us with (The Great) Siegfried Gevatter and during UDS we got Markus (The Incredible) Korn as well as (The Magnificent) Mikkel Kamstrup…

    After one year of almost fulltime development and 2 rewrites the engine reached a very stable condition. Now a new team is slowly taking shape, that are deploying Zeitgeist in applications.

    • We all know Randy Barlow (tehk), who is now a GNOME Activity Journal maintainer, when not hacking on GAJ he works on the zeitgeist-sharp library and some banshee plugin…. (I am waiting for a video of it). Also he wrote the new core logic for GAJ form scratch and gave it a tiny bit of a make over…

    • Morten Mjelva (sjokkis), is working on the telepathy logger. Thanks to him Zeitgeist is now informed about chats, voice calls as well as video calls. He is also working with me on some exciting an top secret “Location aware” extensions for Zeitgeist. Also he plans to give GAJ a little more telepathy magic such as displaying avatars and contact online status.
    • Michal Hruby (mhr3) is our new GSoC student mainly focusing on assisting the development and fixing of libzeitgeit as well as deploying Zeitgeist in new apps. He already sent in his first patches as well as rewrote the totem-plugin and firefox plugin… But above all his latest AWN hack introduced me to what I would refer to as “Nerdgasms”…

    • No Name (ammonkey) who is infamous for his work on the nautilus-elementary is also helping find problems with libzeitgeist and is working on the nautilus integration…

    nautilus-elementary zeitgeist – first draft from ammonkey on Vimeo.

    The video is explained as follows:

    The video show requests on the today events of zeitgeist. (of course i can choose the time period i want). And u can filter the results with a string as u type in the search entry (no return needed).

    empty string = show all the result for the default time period.
    if i type gaga it show all the files i opened today containing gaga, so in my case i show all the music files of Lady Gaga i listened today with rhyhtmbox.

    the goal is to implement a bar like in the following mockup and perform zeitgeist browsing/search from nautilus.
    http://danrabbit.deviantart.com/art/Search-Filter-Bar-158883186

    So please welcome the new kids on the block and give them credit for their work by commenting on their blogs or give them a nice shout out in the comments of this post.

    Zeitgeist @ GUADEC 2010

    More info here