Some Zeitgeist news

July 2nd, 2009

The last 3 weeks were a pain in the ass concerning Zeitgeist. However it was very productive and dynamic. We finished implementing the new DB design and got it running.

David Barth helped us a lot with organizing the transfer to the new engine that was designed by Mikkel (the XESAM dude). And all the dataproviders were modified accordingly thanks to Markus Korn.

One of the things that got me jumping up and down like a child is when Alex Graveley (Tomboy and Gimmie) told me he was considering building Gimmie again using the Zeitgeist engine (I guess that won’t happen though he seems to busy). I will look into that at some point after October.

As for our vague roadmap:

Zeitgeist engine 0.1 and GNOME Zeitgeist 0.1:

We froze development and are only fixing bugs for a 0.1 release:

We currently cover the use cases with the engine and UI:

  1. What did I do in any time period.
  2. Search activities by tags etc…
  3. Allow application push their events in Zeitgeist(engine)
  4. Get most used Documents and websites within any time period
  5. Bookmark and Tag Documents
  6. Allow applications to subscribe to events form Zeitgeist(engine)

We will be releasing on Friday hopefully.

Zeitgeist engine 0.2 and GNOME Zeitgeist 0.2:

0.2 Release should be in a month it will be a more or less extending the API and UI.

We intend to cover: (All these points are possible but need to be covered by the API)

  1. What applications were used in any time period
  2. Bookmark/Tag applications
  3. Most used applications in any time period
  4. Most occurring events (reading/writing or visiting)
  5. Bookmark/Tag events

Of course all that needs some refurnishing from the UI side. So the current UI is not our final implementation while the engine wont be seeing major changes until 2.28

After GNOME 2.28 we intend to go a little further by first logging events from online applications and exporting all our dataproviders to be extensions residing in the applications themselves. For that we will need some support form the GNOME developers to extend their apps if possible with plugins. This will allow us then to:

Know how long an activity on an document lasted which then would allow us to:

  • Auto Tag intersecting events and their documents
  • Create relationships between items
  • Restore a full state of a computer (which docs and apps were open)

Also my GSoC student “RainCT”, who is amazingly proficient at making me feel redundant (I will be blogging about that topic soon), has done amazing progress with the engine, API as well as the Shell integration. He has become one of the most important people in the team. Canonical or Google I recommend hiring the little dude!

I think I should mention that Shane Fagan is working on a new KDE UI.

Federico, Thorsten and me are working on the slides for our GUADEC talks. Pretty exciting shit!

However I will be taking 2 weeks off after GUADEC since I have been actively working on Zeitgeist since last October (almost everyday). I need to focus on my exams and the new Zeitgeist extension “Codename Cookie Monster”(we still need a better name) that I will be designing the backend of it with Alex Gabriel from Mayanna and Natan.

Seif Lotfy Uncategorized

An unexpected surprise!

June 30th, 2009

This is not really a post for people under 18 but I will keep it as clean as possible !!! I just have to blog about it !!!

So on my way to play sports I couldn’t find my standard sports bag so i decided to get one from the top of my cupboard. I found one (A mickey mouse bag) that I have not used for at least 4 years. Holding the bag upside down I shook it to just get everything out of it. Some of the the things that landed on the floor were a pair of shoes, deodorant, shirts, a short and socks. Most of them wouldn’t fit me any more since I gained some massive weight in the last 3 years.

But nothing surprised more than the huge black cigar tube that dropped out. Since I don’t smoke it can not be mine. The thing was weirdly shaped though so I was not sure. I picked it up and tried to open the cover only to find out the thing turned in my hand and the started vibrating.

Yes ladies and and gentlemen sometimes I am so naive i mistake a cigar tube with a *ladies toy*.

My first reaction was to drop the thing on the floor. and watch it move around in a circle. When I decided to pick it up again and turn it off, I noticed the battery meter (3 LEDs) on the side that showed it was 2/3 full. Which means someone already used it. There was no real smell to it (I know I am disgusting but I had to make sure how long the thing was there) it more or less smelled like my old cloth.

So now the question was how did it get there and whom does it belong to?

Since the bag was inside a bigger bag and no one has access to the top of my cupboard it can not belong to someone who dropped it off at my place. Which leaves me with the option of the last place I took the bag with me. I can not remember!

Did someone drop it in? Or is someone sending me a message!

So after consulting some of my friends here are the solutions they came up with for me to do with the *toy*, and my thoughts on those suggestions:

  • Keep it! (Why? I don’t want to *play* with it!)
  • Burn it! (Huh?)
  • Sell it on ebay (Yeah I really want my profile to be associated with a *ladies toy*
  • Disinfect and send it to someone (Well I have no clue who I can give this thing as a gift to. It is a lose lose situation. My girlfriend would kill me if I give it to her or if I give it to any other girl)
  • Use it as décor (Hi mom look at this sweet modern antique! REALLY?)

So any other suggestion would be very helpful!

P.S: I found it very entertaining to put the thing on the switch part and make it vertically spin around on my desk. Maybe my cat in Egypt would like it.

Seif Lotfy Uncategorized

Stereotyping Arabs

June 29th, 2009

A Chat with my buddy Diego (who is working with me on “Data Relevancy using a Heat Emission model” ) was so odd I have to blog it:

(22:58:45) diego: seif
(22:58:52) seif: yes
(22:58:53) seif: :)
(22:58:55) diego: do you know any arab terrorist website?
(22:59:02) seif: uhm
(22:59:03) seif: WTF?
(22:59:05) seif: no
(22:59:13) seif: and if i know I wouldn’t be telling you here
(22:59:20) seif: do you want to get me in trouble
(22:59:22) seif: dear god
(22:59:46) diego: i need to bookmark a terrorist website
(22:59:48) diego: for a seminar
(22:59:53) diego: about delicious.com
(23:00:06) diego: so any leads you have about finding one
(23:00:11) diego: would be highly appreciated
(23:00:12) seif: so because I am Arabic you come and ask me ???
(23:00:16) diego: no
(23:00:21) diego: i’m asking everyone
(23:01:10) diego: yeah the point is that i want to find out whether delicious is going to do anything about it
(23:01:18) diego: if i tag terrorist web sites
(23:01:25) diego: not necessarily terrorist
(23:01:29) diego: but extremist
(23:01:47) diego: or any fundamentalist
(23:01:49) diego: group
(23:02:10) diego: i’m also trying to tag bunch of porn web sites
(23:02:22) diego: and i’m also looking for child pornography
(23:02:50) diego: but so far nothing
(23:02:51) diego: http://delicious.com/saschamikov
(23:08:45) diego: have you ever heard of any satanist group?
(23:08:50) diego: something nearby?
(23:10:42) seif: ok good look finding a paedophile a necromancer and a witch!

LOL

Seif Lotfy Uncategorized

Understanding the Event Centric Experience

June 29th, 2009

Application Centric Experience (ACE), e.g: Every Application knows the documents it touched.
Document Centric Experience (DCE), e.g: Every Document knows the applications that touched it.

Event Centric Experience(ECE): ACE U DCE

The only constant variable on your computer are events. If no events are happening then computer can not be running.
An event consists of minimum 5 variables:

1) Timestamp: time of the event
2) Subject: The application
3) Object: The target (Document)
4) Type: Activity (the user does something thus triggers an Event) or Notification(something happens that the user can not control)
5) Predicate: What did the Subject do with the Object, e.g: Modified, Visited, Linked. Deleted, etc…

Zeitgeist tries to tackle this issue by logging, analysing and storing events.
To be continued…

Seif Lotfy Uncategorized

Lesson of my life: 1.01 Overthinking things as a kid!

June 16th, 2009

Well this actually happened when I was 3. It is pretty embarrassing and I know it might land on some planets but i think its fun.

drawing

It took me five minutes to draw it. Why not share an embarrassing moment of your life drawing it :)

Seif Lotfy Uncategorized

Cool Observation!

June 12th, 2009

Zeitgeist is being maintained by a Moslem (Seif), a Jew (Natan) and a Christian (Siegfried).

Some of the developers are Atheist and still things are at peace.

Long live FLOSS

Seif Lotfy Uncategorized

Some Zeitgeist Visuals

June 5th, 2009

Sebastian Faubel came up with a nice icon for Zeitgeist

zeitgeist-icon

Before UDS I started hacking on an alternative GTK+ UI for the Zeitgeist engine and within days I will have it complete. I think this view could be used for ARM based UNR distributions since they don’t use clutter. The Categories are created dynamically. I will add most used and bookmarks to it soon. It is simple, clean and touch friendly.

untitled

Now its time to hang out on the roof!

Seif Lotfy Uncategorized

Candidate for the new Zeitgeist DB

June 5th, 2009

At last we  have a candidate for the DB. After the Xesam dude (Mikkel Kamstrup Erlandsen) joined the team he took my last proposal of a new DB design and did his voodoo to end up with.

zeitgeist-2

Again please forgive me for using UML class diagram tools for designing the DB.

Here you can read more and get into details. I will try to finish the implementation until monday leaving the current interface unharmed.

Xesam as described by their page is:

short for eXtEnsible Search And Metadata and is an umbrella project with the purpose of providing unified APIs and specs for desktop search- and metadata services. We are collaborating with several projects such as Tracker, Strigi, Beagle, Pinot, Recoll, and Nepomuk-KDE.

This will allow us to use annotation as tags, bookmarks,and custom comments. Also its a good preparation for a optional Tracker backend as well as co-operation with other FLOSS Projects involved with RDF semantics while still being a project of our own. I am worried however how it is going to scale. But I guess nothing that some indexing and tweaking wont fix.

Seif Lotfy Uncategorized

First attempts on improving the Zeitgeist DB before GUADEC

June 3rd, 2009

During UDS we changed the DB a bit to store the applications that were used for the activities. allowing us to bookmark applications, and detemrining most used ones.

Well here is the current Zeitgeist DB (pretty simple and stupid)

zeitgeist

Natan has suggested improving the tag table. After some thought i decided to give it a shot on hopefully the rest of the Zeitgeist team agrees with me on this table. Working with INTEGERS instead of STRINGS should improve performance as well as disk space. But take a look first.

zeitgeist-new

Here are the major features the new design would bring with it.

  1. The timetable should be able to differentiate between event types: Activities (things the user does) Notifications (Other peoples activities (sending you an email) that could trigger your attention and lead to new activities (Replying the mail or sending a tweet)) Maybe we could use the notify-osd to capture notficaitons of interest.
  2. Giving every registered application its own table to store specific info about a a uri (example position of the item in UNR) or Shell specific rankings.
  3. Allowing opening data from a timestamp with the Application that was used back then.

Any suggestions now are welcome. We will be developing it during next week to be done on saturday. I will then write a little API Doc for applications to use Zeitgeist. Current functions will not be replaced we will just add new ones.

Seif Lotfy Uncategorized

UDS’s influence on GNOME Zeitgeist

June 3rd, 2009

Last week, Siegfried (my GSoC student) and I, attended UDS. I would have loved more from the Zeitgeist team to be there but sadly it did not work out.

It was my first time to meet Siegfried. He was pretty shy at the beginning but started coming out as a jerk later on when he made my heart skip some beats with a stupid blue screen of death game. But I was very pleased to meet him and had an amazing productive time with him. I also got to meet the Do Crew and Canonical’s newly formed User Experience Team, who showed a lot of support for GNOME Zeitgeist and helped promoting it.

Before UDS, GNOME Zeitgeist was getting some good attention, but sadly we never got directions from anybody concerning the engine. All of the Developers are actually students so our time and resources are limited. This however all changed during UDS. Thanks to David Barth and Emmet Hikory who took the time to sit down with us to understand Zeitgeist, thus setting new directions for the Zeitgeist “Service” as well as a strategy to avoid any political problems (sorry guys I am a Mono fan boy, but sadly the 2 other maintainers in the Team aren’t, so no worries the only language the engine would be ported to would be C). And for the first time we have a semi roadmap, thanks to the UNR team Milo, which we never got to set up since we were busy developing and going with the flow.

We successfully managed to split the engine (Zeitgeist) and UI (GNOME Zeitgeist) into two different packages as well as projects, Making development, debugging and deployment more focused. Several UIs over Zeitgeist are being developed thus we are creating one team Zeitgeist Desktop eXperience short Zeitgeist-DX to manage the UI’s being developed by the team and working close with  Canonical User Experience Team and Jason Smith.

The engine is our current focus now so we can finish the Shell integration as well as deliver it for the Karmic release to work with Projects such as UNR and the Parental Control. For UNR we are going to provide it with most used or interesting Data to the current moment or work-flow. Parental Control will be able to use Zeitgeist to monitor the child’s current activity and inform the parents by mail or whatever they want. Another thing we will be doing is a bzr extension (if any1 wants to git extension feel free to go crazy :P). Natan is working on an optional (for those who use Tracker) backend that uses Tracker stored data information.

My next blog post will about the current changes that are to be done on the Zeitgeist engine as well as a ranking library we David Siegel suggested to write to provide applications with currently relevant Data.

Thanks UDS and every1 who participated it was one amazing and productive week.

Seif Lotfy Uncategorized