GAJ getting some love

Finally i’ve found some time for hacking on GAJ. While preparing my thesis ( on IMS, SOA and services  compositions — maybe i’ll write a post about these awesome “technologies”– ) i’ve worked on some mockups that the great Dave Richards has prepared for me.

Here’s a list of my last changes:

  • The second(Thumb View) and third(Timeline View) views  are zoomable;
  • I’ve added three buttons in the toolbar that allow navigation in the Journal;
  • I’ve started to work on bug #719016 : in the ThumbView website and Xchat events are grouped, and a fancy number on the top-right corner shows the number of grouped items.
  • I’ve added the support for attaching notes to Journal’s items. (bug #715910)
  • Randal Barlow has fixed some visualization problems and other bitesizable bugs.

As always, a screencast is better than 1000 words…

Another important feature has landed in GAJ : we call it “THE BIG FAT ERASE MODE“.
Here’s a message from the Zeitgeist’s mailing list that explains this “mode”:

Speaking of a big fat eraser – that’s interesting.  What if we literally
had an Eraser tool in the journal?  Turn it on, and any events that you
click on get erased.  That would allow really quick sanitization of your
timeline, both for pr0n-y and time-waste-y things.

Again, here’s a video:

Comments and suggestions are welcome.

Pubblicato in Activity Journal, development, GNOME, open source, python, zeitgeist | 9 commenti

Hurray! I’ve landed on Planet GNOME!

Hurray!I’m so glad my blog has landed in such an awesome blogging platform that Planet Gnome is. It’s awesome having the opportunity to  communicate with the large and enthusiastic audience that the GNOME community is: this is my “Hello World” to you, but c’mon, i guess i should introduce myself.

My name is Stefano Candori, a 21 years old Computer Engineering italian student and open-source entusiast.
I’m also an agonist swimmer and in my sparetime when i don’t hack on something i play the guitar or i ride my bike.
I’m currently the maintainer and most active developer of GNOME Activity Journal (previously known as GNOME Zeitgeist), but i’m also involved with the whole Zeitgeist infrastructure. Randomly i hack in other projects like Unity, Emesene, Emesene2, Cloudsn, and others.

I’ve requested to be added to Planet GNOME for keeping you guys informed and up-to-date on what happens to the Activity Journal’s world but, if you don’t know what GNOME Activity Journal or Zeitgeist are, please check this post: it’s an introduction to the wonderful world of Zeitgeist.

What else? Well, thanks again GNOME community…keep tuned!

Pubblicato in Activity Journal, development, GNOME, open source, spare time, zeitgeist | Contrassegnato | 3 commenti

Gnome Activity Journal 0.6.0 released!

On behalf of the Gnome Zeitgeist team I am proud to announce the release of Gnome Activity Journal 0.6.0 “Pink Unicorns don’t exist”.

2011-1-23: GNOME Activity Journal 0.6.0 “Pink Unicorns don’t exist”
* General New features
– Added drag and drop support to the three views (LP: #553385).
– Added drag and drop support to the bookmark/pin area (LP: #365048).
– Improved items preview adding information tooltip. (LP: #561863).
– Added tooltip for peeking quickly into categories.
– Added preview for Audio items.
– Added appindicator/Tray icon support.
– Added support for Xchat.
– Added support for Bazaar version control system.

* Eye candy tweaks
– Added “welcome screen” showed when the Activity Journal starts and loads the items.
– Go to Today button always highlighted.
– Path’s label clickable in MoreInformation window (LP: #532303).
– Usability tweaks to the views toolbar.
– Item’s categories becomes coloured when containing a searched item.

* Bug fixes
– Fixed bookmark/pinning feature (LP: #680653).
– Fixed support for RECEIVE_EVENT (LP: #667870).
– Fixed day’s part timerange (LP: #655045).
– Fixed crash caused by gstreamer (LP: #705545).
– Fixed problem with dialog windows (LP: #706543).
– Fixed title of MoreInformation window(LP: #706544).
– Fixed video previews problem.
– Fixed visualization bug in TimeLineView.
– Fixed internationalization and localization problems.

* Misc
– Added support for DELETE_EVENT (fx. deleted Tomboy’s notes aren’t showed).
– Cleaned up code (fixed some gtk and gio warnings, remove unused code).
– Added new translations (ast, it, el, eo, et, eu, ko, sl, zh_TW).

Manish Sinha will package it as soon as possible…meanwhile you can check it out here:

I’ll write a review post with video and pictures as soon as possible…

UPDATE: You can find it in the official Zeitgeist’s ppa: ppa:zeitgeist/ppa .

Comments and suggestions are welcome.

Pubblicato in development, open source, python, zeitgeist | 7 commenti

Zeitgeist gains the XChat Dataprovider

During these last days I’ve implemented the dataprovider for the famous multiplatform irc client XChat.
If you don’t know what a dataprovider is, please check these links:

In simple word:

Dataproviders are small plugins for applications whose work is to push the user’s activities as events in the Zeitgeist daemon.

By the way, at the moment the XChat dataprovider pushes to the Zeitgeist daemon these events:

  • Joining a channel
  • Quitting a channel
  • Sending a message
  • Receiving a personal message (when your nickname is mentioned in the message)
  • Quit from XChat

I’ve already updated GAJ to support that new dataproviders and here you can see a screenshoot:

At the moment you can find it in trunk:
UPDATE: Great Manish Sinha has packaged this dataprovider; you can find it here.

Comments and suggestions are welcome.

Pubblicato in development, open source, spare time, zeitgeist | Lascia un commento

GAJ towards a new view

Great news dudes!
Some days ago “big Seif Lotfy” asked me to write a new view for GAJ. In his imagination this view should help the user to see when and how much he has worked on a particular item/file/anything else…
Well, in the last week I’ve hacked on that request and these are the results.

The graph is painted with a little great cairolib called Beauty-timeline that I’ve hacked and adapted to our needs…
Pay attention! This feature is in a early alpha state and it’ll be strongly improved (hopefully…when i’ll find some time after univ exams… :P).

I want a video! I want a video! I do want a video!!

Really???Are you sure?? Well, here you are… 🙂

Well, now you only have to tell me what do you think…..:P

Comments and suggestions are welcome.

Pubblicato in development, open source, python, spare time, zeitgeist | 16 commenti

GAJ gets an App Indicator

Nowadays almost every applications has an app indicator. Why GAJ shouldn’t have it?
Well, i’ve answered to that question  and today i’ve pushed to trunk this new feature hoping to do a good thing for all GAJ/Zeitgeist users.

Obviously it’s possible to disable the app indicator and in fact by default it’s disabled. You can enabled it in the preferences dialog.

But wait app indicators work only for Ubuntu! And pure Gnome users that don’t have libappindicator?

Relax, dude! If GAJ runs in a pure Gnome environment, instead of the app indicator a simple Gnome tray-icon is showed!
As always i post a screencast of the feature. Here you are:

At the moment with the app indicator you can only show/hide GAJ (and close it): in my humble opinion this is better than open and close every time GAJ because with the indicator the application is more responsive and “near a mouse click”. 🙂

Obviously comments and suggestion for improving the App indicator are welcome.

Pubblicato in development, open source, python, zeitgeist | 1 commento

GAJ continues to improve

Yesterday i’ve commited new mods to GAJ.

The Folder dilemma

The most important and the most discussed one ( see this bug, and these comments) is the possibility to add a right click entry “Open the folder containing the item” in every item’s context menu.
Well, someone has pointed out that doing that isn’t useful, as we return back to file manager scenario. Someone else instead, finds this click entry really useful ( please read the previous comment’s link).
Well, I’ve tried to please everyone and this is my solution:

Yup, it’s very simple: if you want to open  the item’s folder you can click on the label indicating the item’s path (it becomes red and the cursor becomes an hand). Doing that I don’t have to add any new click entry but opening the folder is still simple.
Pay attention: you can only click on items that really have a parent folder!
For example you can’t click on notes or webpages’s path!

GAJ becomes careful to deletions

The others two mods that i’ve commited might appear a bit technical but i think they’re very important.
In those commits I’ve fixed GAJ, so now it can handle correctly DELETE_EVENTs. What does it means?? Well, it means that from now on deleted items doesn’t appear in GAJ.

But…wait..It’s been a while that deleted items don’t appear in GAJ!

Yep, you’re partially true because that is only the case of “common” files (text, pdf, odf, etc..). With my mods GAJ becomes aware of delete events coming from external data-providers ( if you don’t know what data-providers are, check out this post). For example from now on deleted Tomboy’s notes aren’t showed, and so on…
The nice thing is that my mod will work out of the box also for other future data-providers that will send DELETE_EVENT to Zeitgeist’s daemon… 🙂

GAJ updates item’s name

Finally, the last mod permits to GAJ to update in “real-time” the name of an item that is being modified. For example if you’re working on a note and you change its name, this change is istantly showed in GAJ.

In opposition to the previous mod, this works only for external data-providers. Normal file are updated only if you close and reopen GAJ. We’re working to fix that, but it seems there is no simple way to get a rename_event from the Gtk framework.

Comments and suggestions are welcome.

Pubblicato in development, open source, python, Uncategorized, zeitgeist | 4 commenti

GAJ becomes Draggable

Yup! Yesterday I’ve hacked a little more on GAJ and I’ve finished my previuos work with drag ‘n drop.

In particular I’ve added this feature to the Bookmark/Pinning area (after closing a little bug concerning the same area). Now you can drop an item onto that area and the item is automagically bookmarked. Nice, isn’t it?

With these last mods Gnome Activity Journal becames fully compatible with Drag ‘n Drop…..well, you can’t drop a file on GAJ and expect that it’s added to the current day’s list: you can’t because it doesn’t make sense. Except for that you can do everything else: you can drag ‘n drop an item in your Desktop and the item is copied, you can drag an item in a chat conversation and the item’s uri is copied and much more.
Wise men say that a screencast is better than 1000 words…so here you are (in this screencast you can see also the other feature I’ve implemented: audio preview).

Hoping that  so much rock music hasn’t broken your speakers, now you’ve to do only one thing: check it out!!!!!!
(Obviously for the moment these features are only avaible in trunk.)

Be honest: you can’t wait for the new release, can you?

Update: Now you can also drag ‘n drop a file over an empathy conversation and the file is sent to the buddy you were talking to… 🙂

Pubblicato in development, open source, python, zeitgeist | 20 commenti

Becoming a GAJ Team Member

Great news! Seif (if you don’t know who he is, he is the Zeitgeist project manager, aka the boss!! ^^ ) has granted me the access to the repository of GAJ. This means that I’m a member of the Gnome Activity Journal Team!

Woooooooo! :O..That’s amazing!

Thanks Seif, I’m honored of having the opportunity to work with you and the other great hackers of the team…I’ll do my best to help you out, creating a better GAJ/Zeitgeist!

Pubblicato in development, open source, spare time, zeitgeist | Lascia un commento

Me and Zeitgeist

In the last few weeks I’ve started hacking with Zeitgeist.
For those who do not know what it is, Zeitgeist is in my humble opinion one of the most interesting projects born in the open-source panorama in the last few years.

But…what’s Zeitgeist?I’m pretty sure it was a movie!

Simplifying, Zeitgeist is a service which logs the users’s activities and events, anywhere from files opened to websites visited and conversations. It is also able to establish relationships between items based on similarity and usage patterns.

It’s magic is simple: consider a daemon always running in background waiting for an user action, like opening file or listening to music, for logging them in a useful manner.

Wow!!You exclaim…. yup, you should!

Uses cases.

Zeitgeist kicks out the old, useful but not very intuitive folder paradigm. Zeitgeist wins where folders organization fails.

If for example you don’t remember on which files you were working last week, Zeitgeist helps you; if you want to know to whom you’ve talked yesterday when working on a particular document, Zeitgeist helps you; if you want to know what file you used together a particular one, Zeitgeist helps you; if you want to know what was the really nice site you visited last month, but you don’t remember exactly his name, Zeitgeist helps you. Zeitgeist integrates with Ubuntu Software Center adding “raccomandation” feature. Zeitgeist also figures out, which are an user’s most used items, not only in general, but also applying time scoping as in “What was most relevant to me, while I was working on project X, for a month last year?”.

This is only a really really small list of possible uses (trust me!). If i haven’t convinced you consider also these uses cases.

I should also mention that Zeitgeist will be shipped with the Unity Ubuntu Interface, creating a new really exciting user experience. Here’s an amazing example of  Zeitgeist integration with Unity from Seif Lotfy, the Zeitgeist project manager.

GAJ: the Zeitgeist’s portal

But wait, Zeitgeist is “only” the daemon; there is also an user interface called Gnome Activity Journal that permits you to dig into your events and actions. It incorporates search, preview, tag, bookmark and other useful features: GAJ is your portal to the world of Zeitgeist. Here’s a screenshoot:

Yes! you guessed it: GAJ stands for Gnome Activity Journal.


Zeitgeist is magic, but “he” needs help to take care of all user actions/events: Zeitgeist simply (well…that’s not so simple) logs events but “he” needs that someone notifies him those events. All simple events like opening, modifying, deleting a file are signaled to Zeitgeist by the GNOME infrastructure, but the others like music playing, web surfing or creating tomboy notes aren’t.

Data-providers do that! They are plugins ( written by the Zeitgeist team) that plugged to the respective applications report to the daemon their particular event.
Rhytmbox has a data-provider, Banshee has a data-provider, Tomboy has a data-provider, Firefox has a data-provider, Chrome has a data-provider, Telepathy has a data-provider, Bazaar has a data-provider and so on. With them Zeigeist can log __every__ user action.

Are you begin to understand the big picture?

My turn.

My first contributions to Zeitgeist  have focused on GAJ: I’ve added the Drag’n Drop feature and added the audio preview to the music files showed in your Activity Journal. The Zeitgeist Team has approved my changes so you’ll can found them in the next release. I’ve also improved the bzr data-provider adding the support to the pull-event and fixing small bugs here and there.

Yep, you’re right…it’s not such a great thing…:)

Ah!The Zeitgeist Team!

Yeah!It’s awesome! Honestly I’ve not personally met the members of the team, but to every question, they have __always__ been kind and helped me out a lot.

Do you want to meet them? Join #zeitgeist irc channel..

What’s next?

Well, i think you should really check it out.
You can install the daemon and GAJ on Ubuntu with the following commands:

sudo add-apt-repository  ppa:zeitgeist/ppa
sudo apt-get update
sudo apt-get install zeitgeist gnome-activity-journal

You should install also data-providers for a complete Zeitgeist experience. Just type those commands (I consider that your current working directory is ~/gaj):

bzr branch lp:zeitgeist-dataproviders
cd ~/gaj/zeitgeist-dataproviders
make && make local-install (change to make install if you want to install globally)

Manish Sinha, another great new developer of Zeitgeist, reminded me the presence of a PPA for the data-providers created by Markus Korn:
There is also a PPA for the Tomboy’s data-provider that’s not included in the previous PPA:

Finally, don’t forget to check out this post for a panoramic tour of all Zeitgeist related projects.

Comments and suggestions are welcome.

Pubblicato in development, open source, python, zeitgeist | 12 commenti