RockingWithZeitgeist

Dev Week -- Rocking with Zeitgeist -- manish and seiflotfy -- Tue, Mar 1st, 2011

   1 [19:01] <seiflotfy> manish, ready
   2 [19:01] <seiflotfy> ?
   3 [19:01] <manish> yes
   4 [19:01] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/03/01/%23ubuntu-classroom.html following the conclusion of the session.
   5 [19:01] <manish> Hello everyone
   6 [19:01] <manish> This session will introduce you to zeitgeist
   7 [19:01] <manish> and its related to components
   8 [19:01] <manish> the agenda is here https://wiki.ubuntu.com/UbuntuDeveloperWeek/Sessions
   9 [19:01] <manish> scroll down
  10 [19:01] <manish> I will post it here
  11 [19:01] <manish> What is Zeitgeist and what it is not - 10 mins
  12 [19:02] <manish> Security Implications - 5 mins
  13 [19:02] <manish> Technologies used - 5 mins
  14 [19:02] <manish> Components of Zeitgeist - 10 mins
  15 [19:02] <manish> Integration of Zeitgeist in applications - 10 mins
  16 [19:02] <manish> Latest release numbers and installing zeitgeist - 5 mins
  17 [19:02] <manish> and finally FAQ for 15 mins
  18 [19:03] <manish> I have allocated FAQ for 15 mins because I see there are a lot of confusion reguarding what zeitgeist is
  19 [19:03] <manish> Let us start with first
  20 [19:03] <manish> What is zeitgeist?
  21 [19:03] <manish> Zeitgeist is an event logger which keeps a track of your activities while you are using your computer (any supported computing device).
  22 [19:03] <manish> Events such as opening files, closing files, recieveing calls, sending a message on Instant Messenger (GTalk, Yahoo etc) are logged by Zeitgeist.
  23 [19:04] <manish> The logging can be configured, so you have the complete control on what is logged and what is not.
  24 [19:04] <manish> This data can then be used for variety of useful activities.
  25 [19:04] <manish> Some of the possibilities are having a complete skype, empathy, pidgin call log.
  26 [19:04] <manish> Finding out with you converse the most.
  27 [19:04] <manish> You can check which applications you launch the most and how many times you have opened a specific file.
  28 [19:05] <manish> People ask me - what are the possibilities of the things we can do with this
  29 [19:05] <manish> I reply - The possibilities are endless, the sky is the limit
  30 [19:05] <manish> I am hoping on you people to come up with innovative ideas after this session
  31 [19:05] <manish> after coming to know what zeitgeist is exactly an what it is not
  32 [19:05] <manish> so now what zeitgeist is not?
  33 [19:06] <manish> First and formost - Zeitgeist is not a search engine!!!
  34 [19:06] <manish> remember this
  35 [19:06] <manish> it is an event logged
  36 [19:06] <manish> *logger
  37 [19:06] <manish> If you have some file on your system, then don't expect zeitgeist to search for it.
  38 [19:07] <manish> It is not the work of zeitgeist to scan you disks and find files.
  39 [19:07] <manish> It's work is to track your activities and log it.
  40 [19:07] <manish> As opposed to general misconception, zeitgeist doesn't track files
  41 [19:07] <manish> Zeitgeist deals with events and not files.
  42 [19:07] <manish> There are events where no file is involved like recieveing a call.
  43 [19:07] <ClassBot> UndiFineD asked: are there apps for mobiles, to be keeping track of my android
  44 [19:08] <manish> actually work is going on to port it to phones too
  45 [19:08] <manish> we had a prototype for Maemo
  46 [19:08] <seiflotfy> and android
  47 [19:08] <manish> but sadly Maemo's future is not clear after it got merged with Meego which again is a bit confusing
  48 [19:08] <manish> we are working on android
  49 [19:09] <seiflotfy> http://zeitgeist-android.com/
  50 [19:09] <manish> since Android doesn't use the standard linux stack, some work is needed for making it run on android
  51 [19:09] <manish> esp testing the port is very important
  52 [19:09] <ClassBot> darkdevil71 asked: is it a key logger ?
  53 [19:10] <seiflotfy> darkdevil71, no its not
  54 [19:10] <manish> darkdevil71: I will come to it. It is the next topic. The security implication
  55 [19:10] <manish> darkdevil71: it doesnt track each and every key you press
  56 [19:11] <manish> it just logs your activity
  57 [19:11] <manish> most opening and closing of files
  58 [19:11] <manish> and some other events
  59 [19:11] <manish> which events you want to send is configurable
  60 [19:11] <manish> though the api is still a bit crippled
  61 [19:11] <manish> Next is - Security Implications
  62 [19:11] <manish> You might heard that Zeitgeist is a malware/spyware which tracks your activities.
  63 [19:11] <manish> This is not an exact definition of malware/spyware.
  64 [19:12] <manish> Malwares record your activity, steal your data without your approval and sneak into the system without system. They have a destructive intention.
  65 [19:12] <manish> Contrast this with zeitgeist, it records events so that it can be used for constructive purposes.
  66 [19:12] <manish> It's like nuclear technology.
  67 [19:12] <manish> Use it constructively, it will benefit mankind, use it destructively and you will be harmed.
  68 [19:12] <manish> One concern people raise is that if some malware is installed, then it can steal the zeitgeist data.
  69 [19:13] <manish> In this scenario, if a malware is installed, then you are at a bigger risk than just getting your zeitgeist data stolen.
  70 [19:13] <manish> Your pidgin passwords are stored in plain text in your home directory.
  71 [19:13] <manish> (last when I used pidgin)
  72 [19:13] <manish> Your browser's history is very easily accessible.
  73 [19:13] <manish>  If you have not set the master password in Firefox, then even your passwords are available to the malware.
  74 [19:14] <manish> any questions related to security implications?
  75 [19:15] <manish> Next up we have - Technologies used in Zeitgeist
  76 [19:15] <manish> Zeitgeist is written using Python and uses sqlite to store the events.
  77 [19:15] <manish> It exposes an API using DBus using which other applications can communicate with it.
  78 [19:16] <manish> Below the hood, it is basically dependent on glib which makes zeitgeist portable.
  79 [19:16] <manish> Get a proper port of dbus and glib on windows and zeitgeist should run there without much issues.
  80 [19:17] <manish> or in this case any other OS
  81 [19:17] <manish> Next up -  Components of zeitgeist
  82 [19:18] <manish> Zeitgeist is not a single project
  83 [19:18] <manish> but a collection is components
  84 [19:18] <manish> helper libraries etc
  85 [19:18] <seiflotfy> a framework more or less
  86 [19:18] <manish> yeah
  87 [19:18] <manish> the core part is the engine
  88 [19:18] <manish> or the daemon
  89 [19:19] <manish> At the core of zeitgeist is an engine which stores all the events and acts as the store.
  90 [19:19] <manish>  It recieves and provides relevant information(events) to other process.
  91 [19:19] <manish> The information is exposed via a DBus Session bus.
  92 [19:19] <manish> If the zeitgeist server is not running, the first time an application invokes a method over DBus, the daemon is started.
  93 [19:20] <manish> I don't remember the exact name what this is called - autostarting a session bus when first call is made. Hope someone can tell me on #ubuntu-classroom-chat
  94 [19:20] <manish> The second component is called the datahub
  95 [19:20] <manish> I know sounds dangerous a bit
  96 [19:21] <manish> it is a passive logger
  97 [19:21] <manish> there needs to be some component which keeps on pushing data to the daemon
  98 [19:21] <manish> or the daemon is nothing more than a white elephant
  99 [19:21] <manish> Thanks to aquarius that is called DBus activation --  autostarting a session bus when first call is made.
 100 [19:21] <manish> coming back
 101 [19:22] <manish> so datahub is a logger
 102 [19:22] <manish> which also runs as a daemon
 103 [19:22] <manish> and looks at the recently used files
 104 [19:22] <manish> and pushes them in the daemon
 105 [19:23] <manish> so basically when you open a file by double clicking using nautilus datahub comes in picture
 106 [19:23] <manish> I wont go much in the geekery of implementation
 107 [19:23] <manish> for adventurous people - "bzr branch lp:zeitgeist-datahub" is your friend
 108 [19:24] <manish> one more thing I forgot was telling you people about our website, sorry
 109 [19:24] <manish> http://zeitgeist-project.com/
 110 [19:24] <manish> Download section: http://zeitgeist-project.com/download/
 111 [19:24] <manish> development - http://zeitgeist-project.com/development/
 112 [19:24] <manish> and we are always available at #zeitgeist on freenode
 113 [19:25] <manish> next up - Activity Journal
 114 [19:25] <manish> it was formely called gnome-activity-journal
 115 [19:25] <manish> it is a GUI viewer for your events
 116 [19:25] <manish> like a dashboard
 117 [19:26] <manish> With proper zeitgeist extensions you can even have more detailed logs including when you joined an IRC channel or when you received or dropped a call over your IM client.
 118 [19:26] <manish> you can install it, it is in the repos
 119 [19:26] <manish> as gnome-activity-journal
 120 [19:26] <manish> If you right click on any event and select "More Information", you can come to know what other files were opened or which other activity you were engaged in during this event. You can delete the event if you do not like it.
 121 [19:26] <manish> next up is - Dataproviders
 122 [19:27] <manish> Dataproviders are small extension/addins/addons/plugins into applications which can push events to zeitgeist.
 123 [19:27] <manish> we also call it datasources
 124 [19:27] <manish> same thing
 125 [19:27] <manish>  Datahub cannot push everything to the daemon.
 126 [19:27] <manish> It mostly tracks opening of files by double-clicking from file browser.
 127 [19:27] <manish> Using data-providers more *relevant* events can be added like "Creating a new playlist", "Buying a track from foo music store"
 128 [19:27] <manish> next up is - Extensions
 129 [19:28] <manish> When we say extensions, it refers to zeitgeist daemon extensions.
 130 [19:28] <manish> means the extensions for the daemon
 131 [19:28] <manish> and not the client
 132 [19:28] <manish> Zeitgeist extensions are those components using which you can control he behavior of how the daemon behaves. You can expose additional information via DBus.
 133 [19:28] <manish> In a nutshell, you this is your tool of trade if you are not satisfied with how zeitgeist behaves. One size doesn't fit all. :)
 134 [19:28] <manish> If you want to have an inner scoop of extensions behavior, check
 135 [19:28] <manish> http://milky.manishsinha.net/2010/11/27/zeitgeist-daemon-extensions-explained/
 136 [19:29] <ClassBot> chadadavis asked: facilities for plugins, e.g. Facebook to include external activity streams?
 137 [19:29] <manish> chadadavis: yes
 138 [19:29] <manish> that is what I was telling about dataproviders
 139 [19:29] <manish> I or you can write dataprovieders
 140 [19:29] <manish> which can probably run as a daemon pulling data from all your web apps
 141 [19:29] <manish> and logging them in zeitgeist
 142 [19:30] <manish> which is again browsable
 143 [19:30] <manish> chadadavis: nice idea. Added to my TODO
 144 [19:30] <ClassBot> MickStep asked: is it likly that a syncing service will every be created for zeitgeist, like tomboy created snowy
 145 [19:30] <manish> MickStep: yes. We were working on it
 146 [19:30] <manish> but due to some shortage of time
 147 [19:30] <manish> personal lie
 148 [19:31] <manish> and other important priorities related to zeitgeist pushed this feature a bit below our priority queue
 149 [19:31] <manish> thanks for bringing it up
 150 [19:31] <manish> will look into it
 151 [19:31] <manish> People, ask your questions :)
 152 [19:31] <ClassBot> jderose asked: Speaking of syncing, are alternate storage backends a possibility for Zeitgeist, like say desktopcouch?
 153 [19:31] <manish> jderose: right now none. It can be looked into
 154 [19:32] <manish> but the thing is that is not worth the effort as of now. Since right now we are spending our time in deploying zeitgeist
 155 [19:32] <manish> integration with applications
 156 [19:33] <manish> for you call,  you can add our zeitgeist ppa or latest packages. Sadly most of the packages are for Maverick
 157 [19:33] <manish> https://launchpad.net/~zeitgeist/+archive/ppa
 158 [19:33] <manish> this PPA
 159 [19:33] <manish> there are many zeitgeist-datasources-* packages
 160 [19:33] <manish> like one for tomboy
 161 [19:34] <manish> if you install that package
 162 [19:34] <manish> zeitgeist-datasource-tomboy
 163 [19:34] <manish> then your opened, closed notes will appear in GAJ :)
 164 [19:34] <manish> if you install the -xchat datasource
 165 [19:34] <manish> it will show you which all channels you joined
 166 [19:34] <manish> when you talked
 167 [19:34] <manish> when you quit, parted
 168 [19:35] <manish> cando_ is the current maintainer of gnome-activity-journal
 169 [19:35] <manish> there are many datasources/dataproviders have a look at them in the PPA
 170 [19:36] <manish> next is Language bindings
 171 [19:40] <manish> by language bindings I mean, language specific wrappers over zeitgeist api
 172 [19:40] <manish> you can use zeitgeist using it's python client
 173 [19:40] <manish> which is shipped along with the daemon
 174 [19:40] <manish> for C/Vala we have libzeitgeist
 175 [19:40] <manish> http://launchpad.net/libzeitgeist
 176 [19:40] <manish> for mono (C#) we have zeitgeist-sharp http://launchpad.net/zeitgeist-sharp
 177 [19:40] <manish> Qt - libqzeitgeist
 178 [19:40] <manish> http://gitorious.org/kde-zeitgeist/libqzeitgeist
 179 [19:40] <manish> and we also have for javascript
 180 [19:40] <manish> but still it is not not yet mature
 181 [19:40] <manish> needs work
 182 [19:40] <manish> next is Zeitgeist integration
 183 [19:40] <manish> 1) Unity
 184 [19:40] <manish> okay I will come to it
 185 [19:40] <manish> now lets goto questions
 186 [19:40] <ClassBot> techbreak_ asked: its in gsoc ?
 187 [19:40] <manish> if you asked if zeitgeist is in gsoc, then we are trying, not sure if we need to apply independently
 188 [19:40] <manish> it doesnt make sense
 189 [19:40] <manish> we need zeitgeist integration in applications like kde, gnome apps
 190 [19:40] <seiflotfy> zeitgeist will be offering some work over several organizations
 191 [19:40] <seiflotfy> such as KDE, GNOME and hopefully Ubunut
 192 [19:40] <ClassBot> UndiFineD asked: can we read out data from zeitgeist, if so could we get some statistics, maybe people would like to compare productivity
 193 [19:40] <manish> UndiFineD: yes. you can
 194 [19:40] <manish> use the API
 195 [19:40] <manish> if you like, you can use the language of your choice
 196 [19:40] <manish> Python, C, Vala, C#, Javascript
 197 [19:41] <manish> as I can see in the -chat channel, there is some confusion
 198 [19:41] <manish> zeitgeist doesnt look for any data
 199 [19:41] <manish> it just sits and waits for events to be pushed
 200 [19:41] <manish> when asked it hands out events
 201 [19:42] <manish> the pushing it done by datasources
 202 [19:42] <ClassBot> jeyd asked: what about the xchat datasource in LUCID?
 203 [19:43] <manish> jeyd: we need to put that too. I can see that -datasources package is there for lucid
 204 [19:43] <manish> and the lucid package doesnt have xchat
 205 [19:43]  * manish puts this in TODO
 206 [19:43] <manish> for more info https://launchpad.net/~zeitgeist/+archive/ppa/+packages
 207 [19:44] <ClassBot> godbyk asked: Does Zeitgeist only pay attention to the channel part/join events and ignore what was actually said in the channel?
 208 [19:44] <manish> godbyk: it wont log each and every line you said
 209 [19:44] <manish> use your irc client's logging functionality
 210 [19:45] <ClassBot> techbreak_ asked: which language it is written inn ?
 211 [19:45] <manish> as I said zeitgeist is written in Python
 212 [19:46] <ClassBot> MickStep asked: What is the simplest example you can provide for how to write a dataprovider
 213 [19:46] <manish> there is one
 214 [19:46] <manish> I will use Python's example
 215 [19:47] <manish> you can check it in git.
 216 [19:47] <manish> git.gnome.or
 217 [19:47] <manish> this one
 218 [19:48] <manish> http://git.gnome.org/browse/rhythmbox/tree/plugins/rbzeitgeist/rbzeitgeist/__init__.py
 219 [19:48] <manish> the RB plugin
 220 [19:48] <manish> We have implemenation for Unity
 221 [19:48] <manish> Unity makes use of Zeitgeist in its dash where it provides the user with easy access to its most and recently used data (files/folders/applications) as well as searching over the Zeitgeist FTS (Full Text Search) extension.
 222 [19:48] <manish> There is more development going on to bring the same features to a contacts dash where the user can browse his contacts by most/recently used.
 223 [19:49] <manish> a snapshot by seiflotfy
 224 [19:49] <manish> http://zeitgeist-project.com/wp-content/uploads/2010/12/unity-most-used-apps.png
 225 [19:49] <manish> then we have it integrated in Synapse
 226 === sre-su_ is now known as sre-su
 227 [19:49] <manish> the uber-cool launcher written by mhr3 and his team
 228 [19:49] <manish> Other than heavily depending on the Zeitgeist FTS (Full Text Search) extension for searching, you can also browse recent items which were logged by Zeitgeist, in case you close a document by mistake or just want to hear again the music track that played a few minutes ago.
 229 [19:50] <manish> It also has a relevancy service, which makes sure that applications you use often end up among the first results of a search – this is done using Zeitgeist, so you can also track the popularity also in other Zeitgeist clients.
 230 [19:50] <manish> obligatory snapshot - http://zeitgeist-project.com/wp-content/uploads/2010/12/synapse-search-sort-apps-ranking.png
 231 [19:50] <manish> I already told about Activity Journal
 232 [19:50] <manish> http://zeitgeist-project.com/wp-content/uploads/2010/12/gaj-diary.png
 233 [19:50] <manish> http://zeitgeist-project.com/wp-content/uploads/2010/12/gaj-timeline.png
 234 [19:50] <seiflotfy> manish, i think it would be cool to show them the tomboy plugin that provides "used with"
 235 [19:50] <manish> yeah
 236 [19:51] <ClassBot> There are 10 minutes remaining in the current session.
 237 [19:51] <manish> The used with is here http://thoughts.manishsinha.net/photo/1280/2890463378/1/tumblr_lfh52cBm7g1qcwfsm
 238 [19:51] <manish> here you can even see bzr plugin in action
 239 [19:51] <manish> and xchat plugin in action
 240 [19:51] <manish> seiflotfy: you have a snapshot with tomboy plugin
 241 [19:51] <manish> can you take one and upload before this session gets over?
 242 [19:52] <seiflotfy> yeah
 243 [19:52] <manish> last in integration section is Docky
 244 [19:52] <manish> The integration with Zeitgeist is in the form of generating jump-lists for applications and folders
 245 [19:52] <manish> An application that is provided a jump-list is populated with the most and recently used data that was used with it. This also applies for folder where the most and recently used files are displayed in its jump-list.
 246 [19:52] <manish> snapshot: http://zeitgeist-project.com/wp-content/uploads/2010/12/docky-folder-jump1-300x289.png
 247 [19:52] <manish> http://zeitgeist-project.com/wp-content/uploads/2010/12/docky-app-jump-300x300.png
 248 [19:53] <seiflotfy> http://seilo.geekyogre.com/2010/08/zeitgeist-hearts-tomboy/
 249 [19:53] <seiflotfy> this is a video of zeitgeist being used by tomboy
 250 [19:53] <manish> Next is Installation:
 251 [19:53] <manish> Stable PPA: http://launchpad.net/~zeitgeist/+archive/ppa
 252 [19:53] <manish> I have an experimental PPA where i love to upload packages
 253 [19:53] <manish> bleeding edge
 254 [19:53] <manish> enough to break your system
 255 [19:53] <manish> http://launchpad.net/~manishsinha/+archive/experimental
 256 [19:54] <manish> use it with care, if you are adventurous, this is you best best
 257 [19:54] <manish> The best way to install zeitgeist is from PPA of official repos
 258 [19:54] <manish> *or
 259 [19:54] <manish> or if you want to check the latest versions
 260 [19:54] <manish> Zeitgeist Engine - 0.7 "All I have is this woodchuck"
 261 [19:54] <manish> http://launchpad.net/zeitgeist/0.7/0.7
 262 [19:54] <manish> Zeitgeist Datahub - 0.7.0
 263 [19:54] <manish> http://launchpad.net/zeitgeist-datahub/0.7/0.7.0
 264 [19:54] <manish> Activity Journal - 0.6.0 "Pink Unicorns don't exist"
 265 [19:54] <manish> http://launchpad.net/gnome-activity-journal/0.6/0.6.0
 266 [19:55] <manish> libzeitgeist - 0.3.2 Rattleweed
 267 [19:55] <manish> http://launchpad.net/libzeitgeist/0.3/0.3.2
 268 [19:55] <manish> zeitgeist-sharp - 0.1.1 Lily
 269 [19:55] <manish> Lily is the character from HIMYM (I love that series) :)
 270 [19:55] <manish> http://launchpad.net/zeitgeist-sharp/0.1/0.1.1
 271 [19:55] <manish> libQZeitgeist - 0.1 "Hit ‘n Run"
 272 [19:55] <manish> http://www.gitorious.org/kde-zeitgeist/libqzeitgeist/archive-tarball/master
 273 [19:55] <manish> and for dataproviders we have only snapshot releases
 274 [19:55] <manish> which we package
 275 [19:56] <ClassBot> There are 5 minutes remaining in the current session.
 276 [19:56] <ClassBot> godbyk asked: What are some of your favorite future plans for Zeitgeist? How and where would you like to see it be used in the future?
 277 [19:56] <manish> godbyk: nice question
 278 [19:56] <seiflotfy> godbyk, alot
 279 [19:56] <manish> fav plans are
 280 [19:56] <manish> having a good blacklist plugin
 281 [19:56] <manish> that is wat everyone wants
 282 [19:56] <manish> and Banshee integration
 283 [19:56] <manish> which is my fav thing
 284 [19:56] <seiflotfy> and the geolocation deployment
 285 [19:56] <manish> yes
 286 [19:57] <manish> and syncing service
 287 [19:57] <manish> which is half implemented
 288 [19:57] <manish> it uses django
 289 [19:57] <manish> seiflotfy: shall we move to next quesiton?
 290 [19:57] <ClassBot> JackyAlcine asked: Zeitgeist is a semantic framework, like NEPOMUK, no? Is it possible to use this to do automation tasks like perhaps, backups of the last few used documents?
 291 [19:57] <seiflotfy> JackyAlcine, no its not like NEPOMUK
 292 [19:57] <manish> seiflotfy: your turn to answer this
 293 [19:57] <seiflotfy> NEPOMUK is a ontology
 294 [19:57] <seiflotfy> NEPOMUK KDE is a repository
 295 [19:58] <seiflotfy> NEPOMUK KDE knows about what your files are about
 296 [19:58] <seiflotfy> Zeitgeist is a log
 297 [19:58] <seiflotfy> it knows how you use your files and how they are contextually related
 298 [19:58] <seiflotfy> !q
 299 [19:59] <ClassBot> techbreak_ asked: any video log it keeps ?
 300 [19:59] <seiflotfy> what do you mean
 301 [19:59] <seiflotfy> if u have any questions please join #zeitgeist
 302 [19:59] <seiflotfy> we will be happy to help you out there
 303 [19:59] <seiflotfy> our time is up
 304 [19:59] <seiflotfy> so thanks you
 305 [19:59] <manish> we have most of our discussion on irc
 306 [19:59] <manish> and we hardly use mailing lists
 307 [19:59] <manish> thanks you everyone
 308 

MeetingLogs/devweek1103/RockingWithZeitgeist (last edited 2011-03-02 05:54:46 by nigelbabu)