[Zeitgeist] Zeitgeist development methodology

2009-06-14 Thread Mikkel Kamstrup Erlandsen
Hi all,

Please don't take this as ranting or any personal attack, but I have a
few issues I think I need to bring up regarding the Zeitgeist Engine
development - at least for making it possible for people in similar
situations as me to participate. This email is motivated by the fact
that I used almost all of the development time I had for today trying
to catch up with changes and fixing the collection of regressions that
had sneaked in since my last pull.

 - Commit messages, can we please write usable commit messages. It is
very hard to keep track of the changes for people like me who can't be
online all the time. Commit logs is my primary way to understand what
has happened since my last pull. Write a line about each change you
have made - not one line about the entire commit.

 - Testing, if one is doing non-trivial stuff in the engine.py and
base.py modules for which we actually have unit test, please assert
that these tests pass before you push your code. On my last update
ZeitgeistEngine.insert_item() and get_item() where broken - which is
silly because they are tested by test/zeitgeist-engine-engine-test.py.

Unit tests:
Here's how to run the unit tests in the test/ dir. Simply run:

  test/zeitgeist-engine-base-test.py

and/or:

  test/zeitgeist-engine-engine-test.py

I will not force everyone to write unit tests for everything (although
I would like that - that's no secret :-)), but let's at the very least
use those we have. When Zeitgeist really takes off we are going to
deal with _crucial_ user data. If the Zeitgeist core is not *rock
solid* and people loose data at odds, then we are in for a heck of a
ride and Zeitgeist will loose users fast...

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Directories installed in the system

2009-06-24 Thread Mikkel Kamstrup Erlandsen
2009/6/24 Siegfried Gevatter :
> [Launchpad's lists are working again.]
>
> 2009/6/24 Mikkel Kamstrup Erlandsen :
>> Maybe zeitgeist.api instead of .util - that way it is more clear that
>> it is indeed public api.
>
> Wouldn't this cause confusion? If it was zeitgeist.api I'd expect it
> to do the same as the D-Bus API.

Well, I didn't think of this, but if you get that thought it probably
means that 50% of the world would think that. I hate to be
bikeshedding this - maybe zeigeistlib? That would be in line with a
number of other Python libs like urllib and bzrlib.

 - or just make a decision, I promise I wont complain :-). It wont be
a huge disaster changing the name before we really announce the API as
stable.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Structure and items of an event object

2009-07-16 Thread Mikkel Kamstrup Erlandsen
2009/7/16 markus korn :
>
> I just found a few issues and a few things I would like to discuss:
> 1a.) although it is stated here otherwise, mimetype is not an optional
> entry, the engine itself will discard events without a mimetype
> 1b.) is mimetype really required for an event? Seif: as you are
> working on this application watcher, what is the mimetype of a
> CloseTab/CloseWindow event?

I think that mimetype should be optional. By definition the mimetype
of an item is about the binary format of the datastream the item
represents. Events does not have binary datastreams hence they can not
have a mimetype.

The best approach is probably to require on on items that do have a
datastream associated with them. In the case of Zg this probably means
all non-event types...

> 2a.) for the same reason, what is in such case the 'uri' of a
> closetab/closewindow event?

In the case of events I think it is the duty of the engine to assign
them. This is a problem in the Zg API - not differentiating between
"real items" and events.

> 2b.) is 'uri' really required? What is the uri of a tag added as an
> user activity (adding via GUI or such)?

Like events, tags are not real items, but pure metadata and are
probably best off if Zg internally provided a uri for them.

> 3.) aren't "timestamp", "source", "content" the only required items?

To some degree yes. Although that is probably really rooted in a
problem with the API.

> 4.) what should the engine do in case of invalid event dicts (required
> items missing, wrong type, unknown keys like 'time', 'mimetypes' or
> 'somerandom'? raise an Exception (noticed by the client) or just print
> a warning to the logs and discard the event (client does not know
> about it). currently we are doing a mix of both.

Only if the engine can be absolutely certain that it is not dropping
important data can it drop stuff silently. Genereally I am in the
favor of throwing meaningful DBus errors whenever we decide to not
accept data.

Strictly defined error handling is just as important in an API as the
return types of methods. Otherwise apps are shooting completely in the
dark.

About the API: The current problem with the API is that we have a "do
it all"-method, namely InsertItem(). The semantics of this method is
really unclear. Zg deals with roughly three kinds of objects: Events,
Real Objects(files, web pages, etc), and Virtual Objects (tags,
ratings, and other annotation types). I think we must be very clear
about how each type is handled. This may mean separating the API in to
different parts.

Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 397978] Re: Remove Storm ORM dependencie

2009-07-19 Thread Mikkel Kamstrup Erlandsen
** Branch linked: lp:~kamstrup/zeitgeist/zeitgeist-querymancer

-- 
Remove Storm ORM dependencie
https://bugs.launchpad.net/bugs/397978
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
In the current state of zeitgeist we are using python-strom ORM as our database 
engine, but we are doing big parts of our queries by hand anyway. So we should 
drop strom as soon as possible.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Structure and items of an event object

2009-07-20 Thread Mikkel Kamstrup Erlandsen
2009/7/17 Seif Lotfy :
> Hey Here is my take again on the issue
> An event is something that happens
> Something happens needs and application to triger it and a target on which
> the happening takes place (in our case a doc, note or webpage)
>
> So my current proposal is to send around a tuple of 2 dicts that describe
> the event:
>
> eventinfo: timestamp, app, eventype, eventtags and eventbookmark (if this
> specific event is important)
> targetinfo: name, uri, tags, comment, mimetype, origin, source, content.
>
> I think this makes sense to be honest and I hope most of you agree with me.
> This way we can clearly sperate the info we have. PLEASE PLEASE AGREE :P

Sorry for the late response, but I don't think this makes a lot of sense.

I think an event (or within Zeitgeist a "log entry") consists of five things:

 Event:
 - action: What happened (The URI of some formal action defined in an
Events Ontology)
 - subject: What did it happen to (the target URI)
 - actor: The entity (app or other) from which the event was sent
 - timestamp: At what point in time did this happen (Unix epoch)
 - A persistent unique id for the event itself (a carefully
constructed URI would do fine)

Note that I am not sure that restricting 'actor' to applications is
entirely future proof. What about web apps? If I am tracking events
from Google Docs saying that the actor is Firefox is not good enough.

What we need to know about items linked in event.subject:

Item:
 - URI
 - Any annotations (such as tags, comments, and ratings)
 - Mimetype
 - Content type
 - Source type

With these Event, Item (and indirectly Annotations) metaphors in place
I think I would make sense to really differentiate them in the API. So
instead of a Insert(event, item) I think we should have a:

  LogEvent(event_struct)

Thus *no item struct here*. We also need apps to be able to inform us
about they items, so a method like:

  RegisterIterm(item_struct)

This method will also automagically update the item if it already
exists. Calling RegisterItem will *not* implicitly generate an event.
Items in their own right are timeless entities.

With this mindset it also makes sense to differentiate the lookup
functions, so we have something like:

  FindEvents(...filters...)
  FindItems(...filters...)

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Structure and items of an event object

2009-07-20 Thread Mikkel Kamstrup Erlandsen
2009/7/20 Seif Lotfy :
>
>
>> 2009/7/20 Mikkel Kamstrup Erlandsen 
SNIP
> LOVE IT LOVE IT LOVE IT
> however what happens if i want to log an event where the subject has not
> been registered yet?

My initial idea here was to accept that and create a dummy item for
that uri. Haven't given it deep thought really


-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Structure and items of an event object

2009-07-20 Thread Mikkel Kamstrup Erlandsen
2009/7/20 Siegfried Gevatter :
> I tend to agree with your comment but I'm unsure about one thing:
>
>>> With this mindset it also makes sense to differentiate the lookup
>>> functions, so we have something like:
>>>
>>>  FindEvents(...filters...)
>>>  FindItems(...filters...)
>
> Maybe I'm just misunderstanding that, but if you imply that FindEvents would
> only return a reference to the item (eg., it wouldn't have the URI, title
> nor anything else of that) I don't think that makes much practical sense.
> Ie., that information is required almost always and having to do two calls
> to get it is inconvenient; I'd like to keep the API as simple as possible
> (but I agree that indeed it isn't ideal right now).

Yeah, I think you are right. I purposely didn't suggest what
FindEvents should return because, really, I am not sure. I fear that
the full item data for each event might be a lot of overhead. Maybe
some more clever DBus structure where we only return one copy of each
item involved... Basic human interaction patterns will most likely
mean that the same item will be replicated numerous times in the
result if we don't do something about it.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] Zeitgeist API Ramblings

2009-08-02 Thread Mikkel Kamstrup Erlandsen
Hi Zeitgeisters!

I wrote a longish blog post spilling my brains with a lot of Zeitgeist
thoughts I've been brewing in my head lately. Maybe it is completely
bonkers - http://www.grillbar.org/wordpress/?p=345, or how do you guys
feel?

Don't get me wrong - I don't want to throw the baby out with the bath
water or start a complete rewrite or anything like that. I just see a
lot of potential problems that I think we need to make conscious
decisions about.

Any comments or questions most welcome.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Zeitgeist API Ramblings

2009-08-02 Thread Mikkel Kamstrup Erlandsen
2009/8/2 Seif Lotfy :
> SNIP ...
> FindEvents however will retrun the EventInfo dict as well as the following
> dict (How we do it will be optimized i have a solution for that)

It needs to be an array of item dicts. An event can have several targets.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Zeitgeist API Ramblings

2009-08-02 Thread Mikkel Kamstrup Erlandsen
2009/8/2 Siegfried Gevatter :
> SNIP...
> What I think we really need to decide now is how we want to represent
> events and items (when returned by FindEvents et all).

I think you hit the nail on the head here. I think the current Zg API
leaves a blurry line for what Zeitgeist actually is. If we really
stick to the "Zeitgeist is an event log" mantra we should not have to
know about Items at all...

If we move closer to the "log" concept the individual targets of a
logged event consist solely of the data that is provided at event
registration time. Just like a line in a log file only consist of the
data you put there.

As it stands you log an event on some given subject URL and Zg
automagically knows something about this URL. This implies that Zg is
also some weak content repository which is a bit problematic from a
pedagogical point of view - and maybe also from a "separation of
responsibilities point of view".

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 397978] Re: Remove Storm ORM dependency

2009-08-09 Thread Mikkel Kamstrup Erlandsen
I am working on a new engine called querymancer_engine.py in the branch
lp:~kamstrup/zeitgeist/zeitgeist-querymancer-engine. Progress is good,
but I have not completed the port away from Storm just yet (read:the
engine is not in a working state).

** Branch linked: lp:~kamstrup/zeitgeist/zeitgeist-querymancer-engine

** Changed in: zeitgeist/0.3
   Importance: Undecided => High

** Changed in: zeitgeist/0.3
Milestone: None => 0.2.1

** Changed in: zeitgeist/0.3
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

** Changed in: zeitgeist
   Importance: Medium => High

** Changed in: zeitgeist
Milestone: 0.3 => 0.2.1

-- 
Remove Storm ORM dependency
https://bugs.launchpad.net/bugs/397978
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New
Status in Zeitgeist Engine 0.3 series: New

Bug description:
In the current state of zeitgeist we are using python-strom ORM as our database 
engine, but we are doing big parts of our queries by hand anyway. So we should 
drop strom as soon as possible.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 397978] Re: Remove Storm ORM dependency

2009-08-09 Thread Mikkel Kamstrup Erlandsen
** Branch unlinked: lp:~kamstrup/zeitgeist/zeitgeist-querymancer

-- 
Remove Storm ORM dependency
https://bugs.launchpad.net/bugs/397978
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New
Status in Zeitgeist Engine 0.3 series: New

Bug description:
In the current state of zeitgeist we are using python-strom ORM as our database 
engine, but we are doing big parts of our queries by hand anyway. So we should 
drop strom as soon as possible.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 411399] [NEW] Comment annotations

2009-08-10 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

As it stands we have an item["comment"] field on our data items which is
a single string. This contrasts what we actually have in the underlying
datamodel where each comment is actually an annotation type. Meaning
that the actual data model supports tagging comments, having events on
them etc.

The über simple hack would be to turn the comments into a list of
strings, but that still doesn't work either - unless the strings in the
list where the URIs of the comment items...

Comments? (pun intended)

** Affects: zeitgeist
 Importance: Undecided
 Status: New

** Description changed:

- As it stands we have an item["comment"] field on our data items. This
- contrasts what we actually have in the underlying datamodel where each
- comment is actually an annotation type. Meaning that the actual data
- model supports tagging comments, having events on them etc.
+ As it stands we have an item["comment"] field on our data items which is
+ a single string. This contrasts what we actually have in the underlying
+ datamodel where each comment is actually an annotation type. Meaning
+ that the actual data model supports tagging comments, having events on
+ them etc.
  
  The über simple hack would be to turn the comments into a list of
  strings, but that still doesn't work either - unless the strings in the
  list where the URIs of the comment items...
  
  Comments? (pun intended)

-- 
Comment annotations
https://bugs.launchpad.net/bugs/411399
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
As it stands we have an item["comment"] field on our data items which is a 
single string. This contrasts what we actually have in the underlying datamodel 
where each comment is actually an annotation type. Meaning that the actual data 
model supports tagging comments, having events on them etc.

The über simple hack would be to turn the comments into a list of strings, but 
that still doesn't work either - unless the strings in the list where the URIs 
of the comment items...

Comments? (pun intended)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 407369] Re: Define content and source types in one central place

2009-08-10 Thread Mikkel Kamstrup Erlandsen
** Changed in: zeitgeist
   Status: New => Fix Committed

** Changed in: zeitgeist/0.3
   Status: New => Fix Committed

-- 
Define content and source types in one central place
https://bugs.launchpad.net/bugs/407369
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Fix Committed
Status in Zeitgeist Engine 0.3 series: Fix Committed

Bug description:
currently there are two places where content and source objects are defined
 * zeitgeist/datamodel.py (definition and URI abstraction)
 * _zeitgeist/engine/base.py (mapping, lookup, and caching content/source URI 
-> database ID)

We should change this to
 * have the URI (etc.) definition in one central place
 * make it easily possible to added new content and source types
 * allow easy lookup in the database implementation
 * there should still be a datamodel module in the public API, which knows 
about all definitions but nothing about the database

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 404915] Re: Add API method to change annotations of an item

2009-08-10 Thread Mikkel Kamstrup Erlandsen
Note that this bug heavily interlinks with:
https://bugs.launchpad.net/zeitgeist/+bug/411399

-- 
Add API method to change annotations of an item
https://bugs.launchpad.net/bugs/404915
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New
Status in FUSE filesystem for zeitgeist: New

Bug description:
It would be nice to have a method in the DBus API to change the annotations 
(tags/bookmarked) of an item. The item should be identified by its URI. 
Something like this

ChangeAnnotation("file:///boo/bar/test.dat", {"tags": ["one", "two"], 
"bookmarked": False})

The 2nd argument must at least contain one item.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 397978] Re: Remove Storm ORM dependency

2009-08-10 Thread Mikkel Kamstrup Erlandsen
I just merged lp:~kamstrup/zeitgeist/zeitgeist-querymancer-engine. And
is *almost* working. Storm is stil the default backend though. To test
it out set the ZEITGEIST_ENGINE=querymancer environment variable.

-- 
Remove Storm ORM dependency
https://bugs.launchpad.net/bugs/397978
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New
Status in Zeitgeist Engine 0.3 series: In Progress

Bug description:
In the current state of zeitgeist we are using python-strom ORM as our database 
engine, but we are doing big parts of our queries by hand anyway. So we should 
drop strom as soon as possible.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 411399] Re: Comment annotations

2009-08-10 Thread Mikkel Kamstrup Erlandsen
Right, as you described here also I take it:
https://lists.launchpad.net/zeitgeist/msg00081.html

-- 
Comment annotations
https://bugs.launchpad.net/bugs/411399
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
As it stands we have an item["comment"] field on our data items which is a 
single string. This contrasts what we actually have in the underlying datamodel 
where each comment is actually an annotation type. Meaning that the actual data 
model supports tagging comments, having events on them etc.

The über simple hack would be to turn the comments into a list of strings, but 
that still doesn't work either - unless the strings in the list where the URIs 
of the comment items...

Comments? (pun intended)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] Call for testing: querymancer engine

2009-08-12 Thread Mikkel Kamstrup Erlandsen
Hi all,

With Siegfried's latest updates (and some trivial fixes from me) the
Querymancer engine is ready for testing before we go gold in 0.2.1.

We *REALLY* need your help to dust out any hidden regressions!

To test it out start you Zeitgeist daemon with
ZEITGEIST_ENGINE=querymancer in the environment. Fx. like:

   ZEITGEIST_ENGINE=querymancer ./zeitgeist-daemon

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] Zeigeist vs launchpad teams

2009-08-12 Thread Mikkel Kamstrup Erlandsen
I was just trying to makte this very list open for the general public
to subscribe. Turns out that this is not possible with the current Zg
project structure.

Launchpad (LP) has a one-to-one mapping of teams<->mailing list. So in
effect all on this mailing list has commit access to lp:zeitgeist.
What we need to do is set up a project topology like so:

             Zg Project (open)
               /                   \
Zg Engine(restr.)   Zg UI (restr.)

There is already a https://edge.launchpad.net/zeitgeist-project
project, but no corresponding team, so no ML.

Comments?

--
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 404914] Re: Inconsistency in FindEvents/CountEvents filter

2009-08-12 Thread Mikkel Kamstrup Erlandsen
My gut instinct says "Require arrays everywhere" in order to make the
API more uniform and clear - so that the signature of a filter can be
written a{sav} (instead of the weaker a{sv} as now).

-- 
Inconsistency in FindEvents/CountEvents filter
https://bugs.launchpad.net/bugs/404914
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Some of our filters (eg., tags, source, content, etc) take an array of 
different possibilities, but uri does only take a single string; this should be 
made more consistent (probably making the uri take an array too). Maybe we 
could even consider accepting everywhere either a single value or an array.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Zeigeist vs launchpad teams

2009-08-12 Thread Mikkel Kamstrup Erlandsen
2009/8/12 Siegfried Gevatter :
> We created http://launchpad.net/~gnome-zeitgeist-users for that.

Hmmm... Ok, but it is not very discoverable then...

Also the list name seems to imply this is about the UI development?

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 404914] Re: Inconsistency in FindEvents/CountEvents filter

2009-08-13 Thread Mikkel Kamstrup Erlandsen
> Well, stuff like "bookmarked" won't be an array ever.

But wont that info be passed in the annotations in the new API?

-- 
Inconsistency in FindEvents/CountEvents filter
https://bugs.launchpad.net/bugs/404914
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
Some of our filters (eg., tags, source, content, etc) take an array of 
different possibilities, but uri does only take a single string; this should be 
made more consistent (probably making the uri take an array too). Maybe we 
could even consider accepting everywhere either a single value or an array.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 404914] Re: Inconsistency in FindEvents/CountEvents filter

2009-08-13 Thread Mikkel Kamstrup Erlandsen
Actually I am talking about both. I stand by what you describe in
comment 8 and I myself in comment 3 and you realize in comment 8 :-).

But the question in comment 6 is about something else.

The bookmarked True/False is also a too weak description. It is not fx.
not compatible with the standard hierarchical bookmarks of the Places
menu in the Gnome panel. Where ones has folders of bookmarks...

-- 
Inconsistency in FindEvents/CountEvents filter
https://bugs.launchpad.net/bugs/404914
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
Some of our filters (eg., tags, source, content, etc) take an array of 
different possibilities, but uri does only take a single string; this should be 
made more consistent (probably making the uri take an array too). Maybe we 
could even consider accepting everywhere either a single value or an array.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 404914] Re: Inconsistency in FindEvents/CountEvents filter

2009-08-13 Thread Mikkel Kamstrup Erlandsen
Ok, but then I am basically saying that the only possible consumer of
the "bookmark" field is the dedicated Zeitgeist UI. This design concerns
me a little...

-- 
Inconsistency in FindEvents/CountEvents filter
https://bugs.launchpad.net/bugs/404914
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
Some of our filters (eg., tags, source, content, etc) take an array of 
different possibilities, but uri does only take a single string; this should be 
made more consistent (probably making the uri take an array too). Maybe we 
could even consider accepting everywhere either a single value or an array.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] Testing Zeitgeist 0.2.1

2009-08-15 Thread Mikkel Kamstrup Erlandsen
2009/8/14  :
> Hey,
>
> I'm attaching a tarball of the current zeitgeist-0.2 branch. Please test it
> and see if there's anything missing before we can release 0.2.1. I'd like to
> get it out tomorrow as on Monday I'm leaving for two weeks.

I get a lot of log messages, that seems to indicate all is fine except:

ERROR:zeitgeist.logger.datasources.evolution:Evolution database error:
no such table: Sent
Traceback (most recent call last):
  File "/usr/share/zeitgeist/_zeitgeist/loggers/datasources/evolution.py",
line 90, in get_items_uncached
" FROM Sent WHERE dsent>?", (self.last_timestamp,)).fetchall()
OperationalError: no such table: Sent

Next thing - which version of Gnome Zeitgeist should I test against
this engine? And where can I download it?

Last thing - we might want to switch off debug logging for the release.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 425258] Re: origin should be a property of events, not items

2009-09-07 Thread Mikkel Kamstrup Erlandsen
Note that events should be regarded as sub types of items, meaning that
an event is comprised of both the relevant row in the item table and the
corresponding row in the event table. This means that events do in fact
have origins.

I do agree, however, that an origin is a URL, and as such should be
stored in the uri table. Meaning that item.origin should converted to an
INTEGER and be renamed to item.origin_id.

-- 
origin should be a property of events, not items
https://bugs.launchpad.net/bugs/425258
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
Both http://live.gnome.org/GnomeZeitgeist/DatabaseDesign and our current 
implementation have "origin" as a property of items, but this makes no sense, 
as the origin can be different for every event and should as such be a property 
of it. (Further, to improve disk space usage we should save the actual value of 
it in the "uri" table).

I'm filling this bug so that we don't remember to fix it, but please let's 
ignore it until we get the basic event/item separation stuff merged - most 
important stuff first.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 425258] Re: origin should be a property of events, not items

2009-09-07 Thread Mikkel Kamstrup Erlandsen
Would it be possible for anyone to throw up a draft of the new design?
(keeping a copy of the old database design spec around...)?

-- 
origin should be a property of events, not items
https://bugs.launchpad.net/bugs/425258
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
Both http://live.gnome.org/GnomeZeitgeist/DatabaseDesign and our current 
implementation have "origin" as a property of items, but this makes no sense, 
as the origin can be different for every event and should as such be a property 
of it. (Further, to improve disk space usage we should save the actual value of 
it in the "uri" table).

I'm filling this bug so that we don't remember to fix it, but please let's 
ignore it until we get the basic event/item separation stuff merged - most 
important stuff first.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 435099] Re: zeitgeist needs a more powerful testing framework

2009-09-23 Thread Mikkel Kamstrup Erlandsen
I don't know a lot about nose, but can't you use nose to run the tests
we already have and then accomplish what you want?

My primary concern here is probably keeping the third party deps to a
minimum - also for developers.

Also I don't quite agree that it is so hard to run individual tests...
just:

  ./foo-test.py MyTestClass.testFrobnicator

Is that so bad? It is probably because I don't know what I am missing
out on :-)

-- 
zeitgeist needs a more powerful testing framework
https://bugs.launchpad.net/bugs/435099
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Right now zeitgeist is using pure python unittest plus a self written script to 
run all tests. I think there are cases where we need a more powerful testing 
framework, I suggest using nose [1].
Some examples:
 * we are using temporary databases for our tests, it would be nice if we could 
hook into a testfailure with a sqlite3 terminal to introspect the content and 
run queries manually before deleting the database
 * right now it is a pain to select individual testcases, nose can help us alot 
with this
 * at the moment we are just ignoring the output of logging, but especially in 
cases where a testcase fails this information is useful, nose has a plugin to 
capture this logs and append it to the report

[1] http://somethingaboutorange.com/mrl/projects/nose/0.11.1/

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 462890] Re: Add engine version identifier and expose this ID over the DBus API

2009-10-28 Thread Mikkel Kamstrup Erlandsen
This is a standardized DBus Properties interface we can use for this...

We might also want to version our DBus interfaces (like fx. Tracker does
since 0.7), but that is not exactly what this bug is about...

-- 
Add engine version identifier and expose this ID over the DBus API
https://bugs.launchpad.net/bugs/462890
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
The latest changes to the API demonstrate that we need an API version ID and we 
also should make this ID accessible over DBus, something like:

>>> iface = DBusInterface()
>>> iface.getVersion()
'0.3'

Sample usecases:
* some (external) dataprovider might only work with some API versions
* same for client

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 462890] Re: Add engine version identifier and expose this ID over the DBus API

2009-10-29 Thread Mikkel Kamstrup Erlandsen
I think it looks really good. Easy to extend with new properties,
readable, as well as writable. You should propose the branch for a
merge.

-- 
Add engine version identifier and expose this ID over the DBus API
https://bugs.launchpad.net/bugs/462890
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
The latest changes to the API demonstrate that we need an API version ID and we 
also should make this ID accessible over DBus, something like:

>>> iface = DBusInterface()
>>> iface.getVersion()
'0.3'

Sample usecases:
* some (external) dataprovider might only work with some API versions
* same for client

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483550] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper unittests

2009-11-16 Thread Mikkel Kamstrup Erlandsen
If you can convert test/remote-test.py to use the unittest module that
is fine with me. I can not see any code in your linked branch though..?

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper 
unittests
https://bugs.launchpad.net/bugs/483550
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
I know mikkel had a hard time at the hackfest trying to make this dbus API 
tests unittests, but I think I found a solution for it.
Having this test in unittests too would allow us to create one big testsuite 
for zeitgeist easily.
I will add a branch with unittests for the remote API soonish

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483585] [NEW] Update to use new logo everywhere

2009-11-16 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

During the hackfest we decided on a new logo (small blue ghost). We
should update our presence on the web with this logo (ie. launchpad and
elsewhere).

I believe that Seif has the logo somewhere...

** Affects: zeitgeist
 Importance: Medium
 Assignee: Seif Lotfy (seif)
 Status: Triaged

** Changed in: zeitgeist
   Status: New => Triaged

** Changed in: zeitgeist
   Importance: Undecided => Medium

** Changed in: zeitgeist
 Assignee: (unassigned) => Seif Lotfy (seif)

** Changed in: zeitgeist
Milestone: None => 0.3

-- 
Update to use new logo everywhere
https://bugs.launchpad.net/bugs/483585
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
During the hackfest we decided on a new logo (small blue ghost). We should 
update our presence on the web with this logo (ie. launchpad and elsewhere).

I believe that Seif has the logo somewhere...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483556] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to the engine configurable

2009-11-16 Thread Mikkel Kamstrup Erlandsen
+1

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to 
the engine configurable
https://bugs.launchpad.net/bugs/483556
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
right now the relevancy-provider is loaded by default. Unfortunately this 
extension is kind of buggy and not well tested, so in case of errors while 
loading this extension the whole engine would fail to run.
We need a configurable plugin-system for our extensions, and for now we should 
per default disable loading the relevancy provider. If this provider gets more 
stable we should easily be able to add this extension to the default extensions 
which are automatically loaded on engine initialization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483556] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to the engine configurable

2009-11-16 Thread Mikkel Kamstrup Erlandsen
There is quite a lot of whitespace twiddling in your branch, making it
hard to review...

I can not see exactly how you plan to load the extensions and how you
plan to use the __public_methods__ of the extensions..?

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to 
the engine configurable
https://bugs.launchpad.net/bugs/483556
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
right now the relevancy-provider is loaded by default. Unfortunately this 
extension is kind of buggy and not well tested, so in case of errors while 
loading this extension the whole engine would fail to run.
We need a configurable plugin-system for our extensions, and for now we should 
per default disable loading the relevancy provider. If this provider gets more 
stable we should easily be able to add this extension to the default extensions 
which are automatically loaded on engine initialization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483550] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper unittests

2009-11-16 Thread Mikkel Kamstrup Erlandsen
Ok. Looks sane to me, but I haven't tested it. If the three(?) tests
still run and pass fine its fine to merge I think

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper 
unittests
https://bugs.launchpad.net/bugs/483550
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
I know mikkel had a hard time at the hackfest trying to make this dbus API 
tests unittests, but I think I found a solution for it.
Having this test in unittests too would allow us to create one big testsuite 
for zeitgeist easily.
I will add a branch with unittests for the remote API soonish

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483603] Re: Use REAL for timestamps

2009-11-16 Thread Mikkel Kamstrup Erlandsen
We don't use seconds. We use milliseconds since the Unix epoch.

I dislike floating point timestamps because of two things:

 * Python is the only language I have ever heard of that use floats for 
timestamps
 * Float-comparisons (and thus db-indexes) are less effective than integer 
comparisons

-- 
Use REAL for timestamps
https://bugs.launchpad.net/bugs/483603
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Seconds are not fine-grained enough to differentiate events, so we should store 
the timestamps as floating-point numbers.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483556] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to the engine configurable

2009-11-16 Thread Mikkel Kamstrup Erlandsen
I think that extensions should expose their own DBus APIs. The engine
could expose its server-object to allow extensions to do this cleanly...

Regarding the two underscores; the gobject bindings use such constructs
as well (for __properties__ and __signals__). So if we have a *really*
good reason to keep it like this then I think we could do it. Otherwise
we should have something more clean (eg. a simple method or class
property).

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to 
the engine configurable
https://bugs.launchpad.net/bugs/483556
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
right now the relevancy-provider is loaded by default. Unfortunately this 
extension is kind of buggy and not well tested, so in case of errors while 
loading this extension the whole engine would fail to run.
We need a configurable plugin-system for our extensions, and for now we should 
per default disable loading the relevancy provider. If this provider gets more 
stable we should easily be able to add this extension to the default extensions 
which are automatically loaded on engine initialization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483603] Re: Use timestamps with milliseconds granularity (was: use REAL)

2009-11-16 Thread Mikkel Kamstrup Erlandsen
>> We don't use seconds. We use milliseconds since the Unix epoch.
>Do we? 
I believe you meant to say "o rly?!" :-) Anyway, in the places where I've coded 
I've used int(time.time()*1000) and time() returns seconds since the Epoch...

While walking the dog I had some further thoughts on why reals/floats
are such a bad idea...:

 * We can not use == for comparison. This means that we can not use a
simple CONSTRAINT in the SQL to guard against duped events. Furthermore
an Event "equals" function becomes meaningless becuase we can not do ==
on the timestamps. We can only use a "roughly equals" by checking that
the timestamps lie within a small delta.

 * We lock down our internal data representation because we can not use
"bit fiddling" with floats. As an example from the real world I had to
pack a timestamp into a 64 bit int (in the lower 40 bits) and use the
remaining 24 bits to hold a unique id. This gave a *huge* performance
increase in my particular situation - AND allowed me to keep backwards
compat with a DB schema. Tricks like these are not possible if we hard
code ourselves to a float

-- 
Use timestamps with milliseconds granularity (was: use REAL)
https://bugs.launchpad.net/bugs/483603
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Seconds are not fine-grained enough to differentiate events, so we should store 
the timestamps as floating-point numbers.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483603] Re: Use timestamps with milliseconds granularity (was: use REAL)

2009-11-17 Thread Mikkel Kamstrup Erlandsen
Siegfried stated on IRC yesterday that he was in favor of the
milliesecond resolution using an INTEGER column (ie. what we have now).
I think this means that we have rough consensus..?

As for use cases with sub-second resolution think of messaging (IRC,
IM). If I continuously say "spam" on IRC I can easily send you 3-4
messages/s. Basically any situation where a user can flood some app with
events with repeated button clicks. Alternate things include events
generated by external sources where network latency or other factors may
tend to "cluster" events send to you.

-- 
Use timestamps with milliseconds granularity (was: use REAL)
https://bugs.launchpad.net/bugs/483603
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Seconds are not fine-grained enough to differentiate events, so we should store 
the timestamps as floating-point numbers.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483556] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to the engine configurable

2009-11-18 Thread Mikkel Kamstrup Erlandsen
I think I like the engine.extensions.some_extension_method() approach
the best.

This way alternate extensions can provide the same method and the caller
does not need to know who implements it.

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to 
the engine configurable
https://bugs.launchpad.net/bugs/483556
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
right now the relevancy-provider is loaded by default. Unfortunately this 
extension is kind of buggy and not well tested, so in case of errors while 
loading this extension the whole engine would fail to run.
We need a configurable plugin-system for our extensions, and for now we should 
per default disable loading the relevancy provider. If this provider gets more 
stable we should easily be able to add this extension to the default extensions 
which are automatically loaded on engine initialization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485433] Re: Dont' raise an exception when a duplicate event is detected

2009-11-19 Thread Mikkel Kamstrup Erlandsen
For duplicate events this I think that Markus' proposal  is OK. But do
we have any other error scenarios when inserting events? What is the
solution in this case then?

-- 
Dont' raise an exception when a duplicate event is detected
https://bugs.launchpad.net/bugs/485433
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
19:52  thekorn: raising an exception on "Duplicate event detected" is 
evil
19:53  thekorn: tell me how you want recent.py to work this way
19:53  RainCT, catch this exception
19:54  thekorn: doesn't help, if I'm sending 50 event and event 10 is 
already there then events 11-50 won't get inserted
19:55  RainCT, ok, so the only problem is when you are importing the 
existing history?
19:55  thekorn: no, with the current one too, because recent.py doesn't 
know when the last run was
19:55  RainCT, let's open a "critical" bugreport for it
19:56  this has to be discussed and needs more thoughts
19:56  (we should workaround that in some way but still the Zeitgeist 
API not allowing this is a problem)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] GIO And the Magical Patch: A Zeitgeist Story

2009-11-19 Thread Mikkel Kamstrup Erlandsen
2009/11/19 Jason Smith :
> Zeitgeist Developers,
>
> There is an amazing amount of activity surrounding the happenings of
> Zeitgeist. Lots of excitement going on and obviously Zeitgeist will
> continue to be an important part of the linux experience in the coming
> years. Zeitgeist has not been without issues, there have been two major
> ones I can think of.
>
> - The API is too complex
> - The information quality is fairly low without lots of item providers
>
> The API issue has been largely addressed with the 0.3 release and I hope
> the API can be stabilized almost completely at this point. The
> information quality issue has also received considerable attention,
> however I believe more can be done.

I think you are right about this, and it is basically also what we
agreed on in the hackfest.

About the Zeitgeist API I actually think the new API is pretty sound
(at least InsertEvent, GetEvent, and FindEventIds - we have not worked
a lot on the last parts of the API). Just yesterday we landed a branch
of mine adding a client lib (in Python for now) on top of the DBus
interface. I think that it makes it pretty much as easy as it gets
(modulo the fact that there are no sync methods in the API, only
async; synchronous methods are made of evil).

When we have some more experience with the client API in Python I'll
start on a client lib in C/GObject. It is my hope that I can line it
up with the inclusion of GVariant+GDBus in GLib, but I don't intend to
block on it if the inclusion drags out.

> In short I believe the problem with Zeitgeist is it works largely at the
> application level. Getting individual applications to provide
> information to Zeitgeist, or watching applications through wnck.
> Instead, I believe a lot more can be achieved at the toolkit level with
> a relatively small patch (or perhaps set of patches) to GIO and
> libgnome-desktop.

Indeed! I am glad you bring this up. I have been wanting to go down
that route myself for a while - like hooking into GtkRecentManager
etc. I have not looked much into it because we have been busy
finalizing the API though.

> By patching these parts of the toolkit, we can be notified easily of
> every file the user intentionally opens, every applications they launch,
> every process they use, quickly and efficiently with very little code. I
> have attached a GIO patch that adds a new extension point into GIO that
> allows a loadable GIO Module to track all launches of .desktop files.
> This patch is early and should be considered beta quality, however it
> provides the needed interface to begin writing a GIO module that will be
> extremely useful to Zeitgeist. I have also included a skeleton (and very
> quickly written) GIO module that essentially does nothing using this
> extension point.
>
> I believe there to be good reason to look into getting this patch
> upstreamed, and I believe it can be done in a reasonable time frame. The
> benefit to Zeitgeist really could be amazing.

I had a quick look at the patch and it looks pretty solid. I have not
found the time to take it for a test spin though.

I think it could be a good idea to write down a list of things we want
to hook into in the lower levels to find out just how much hacking we
need done to get to Zeitgeist nirvana. Off the top of my head I can't
come up with anything more than app launching and GtkRecentManager,
but it needs some more thought[1]. Then there are application level
plugins off course, we track those on
https://blueprints.launchpad.net/zeitgeist/+spec/zeitgeist-external-dataproviders.

-- 
Cheers,
Mikkel

[1]: I am wary of hooking directly into GIO to track all IO ops  as we
might get too much "noise" here, although it would be wicked to track
all file operations that was done through Nautilus (and any other GIO
based file manager for that matter).

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485698] Re: create an external dataprovider for evolution

2009-11-20 Thread Mikkel Kamstrup Erlandsen
Is there a related branch?

I am also wondering if we can in some way hook us into the Tracker
eplugin?

-- 
create an external dataprovider for evolution
https://bugs.launchpad.net/bugs/485698
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: In Progress

Bug description:
I'm using this bug to track progress for an evolution eplugin sending events to 
zeitgeist until I have a running version which is worth its own project.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485966] Re: Using filters (text match / exclusion / etc)

2009-11-20 Thread Mikkel Kamstrup Erlandsen
Sorry; in the second paragraph above I meant "... events CAN'T have
a..."

-- 
Using filters (text match / exclusion / etc)
https://bugs.launchpad.net/bugs/485966
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
 - How can I get all events except those with interpretation VISIT_EVENT?

 - In case you give me above the awful answer "looking for all interpretations 
except VISIT_EVENT", how can I get all events except those from application 
"firefox.desktop"?

 - How can I get all those events whose URI ends with "myfile.txt"?

- And those events whose title contains "zeitgeist"?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485966] Re: Using filters (text match / exclusion / etc)

2009-11-20 Thread Mikkel Kamstrup Erlandsen
For this question to make sense you have to give a use case and explain
why it is not good enough to filter out events manually in the Firefox
example.

For nitpicking: events can have a "title that contains zeitgeist". They
can have a subject with text field containing 'zeitgeist'. If we want to
make such queries efficient we need a full text index on the
event.subject_text column, which would require the FTS extension for
sqlite and I am not quite sure that this is a standard dependency..?

If we are serious about scaling to millions of events then we can never
under any circumstance allow queries that force us into a table scan.
And I think massive scalability is more important than esoteric queries,
but this is simply my opinion, and up to discussion.

If zeitgeist was implemented on top of something like Xapian or Lucene
instead of SQLite we could allow more complex queries. But for the near-
to mid term future I don't see that happening.

On the negation issue I suppose we could add some sort of negation
switch (fx '!') before the fields where we use controlled identifiers
(that'd be uri, iterpretations, manifestation, mimetype, etc., but not
payload or subject_text). But I still need a convincing argument showing
that we need this...

-- 
Using filters (text match / exclusion / etc)
https://bugs.launchpad.net/bugs/485966
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
 - How can I get all events except those with interpretation VISIT_EVENT?

 - In case you give me above the awful answer "looking for all interpretations 
except VISIT_EVENT", how can I get all events except those from application 
"firefox.desktop"?

 - How can I get all those events whose URI ends with "myfile.txt"?

- And those events whose title contains "zeitgeist"?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 486996] Re: testInsertGetWithoutTimestamp testcase fails

2009-11-23 Thread Mikkel Kamstrup Erlandsen
I think a nice default is to use the timestamp of object creation time.
That was the idea behind the test at least, and indeed it also worked
like that at some point (where the test worked). Otoh - the engine will
use the current time as timestamp if the incoming event doesn't have
one, so it might be nicer to leave it out...

That said - Having the engine assign timestamps does give a slight lag
on the stamps though, so that's why I prefer having the client
generated.

And just so that we are sure we agree; timestamps are millis since
epoch, ie. int(time.time()*1000). In the Event case it needs to be a
string, so wrap a str() around that.

-- 
testInsertGetWithoutTimestamp testcase fails
https://bugs.launchpad.net/bugs/486996
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Running
   python test/resonance-engine-test.py
I get one failed testcase

==
FAIL: testInsertGetWithoutTimestamp (__main__.ZeitgeistEngineTest)
--
Traceback (most recent call last):
  File "test/resonance-engine-test.py", line 87, in 
testInsertGetWithoutTimestamp
self.assertTrue(ev.timestamp)
AssertionError

--

I would have fixed this if I were totally sure what the correct fix is. Right 
now the default timestamp of an event is an empty string, which is why this 
testcase fails. Is this the expected behaviour, and should we fix the test. Or 
should the default timestamp be a string containing the timestamp of object 
creation time?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 486996] Re: testInsertGetWithoutTimestamp testcase fails

2009-11-23 Thread Mikkel Kamstrup Erlandsen
@Seif: I think we can allow empty timestamps for convenience. And as I
said in comment 1 paragraph 3; we meassure time in milliseconds, hence
timestamps are genrated with int(time.time()*1000).

-- 
testInsertGetWithoutTimestamp testcase fails
https://bugs.launchpad.net/bugs/486996
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
Running
   python test/resonance-engine-test.py
I get one failed testcase

==
FAIL: testInsertGetWithoutTimestamp (__main__.ZeitgeistEngineTest)
--
Traceback (most recent call last):
  File "test/resonance-engine-test.py", line 87, in 
testInsertGetWithoutTimestamp
self.assertTrue(ev.timestamp)
AssertionError

--

I would have fixed this if I were totally sure what the correct fix is. Right 
now the default timestamp of an event is an empty string, which is why this 
testcase fails. Is this the expected behaviour, and should we fix the test. Or 
should the default timestamp be a string containing the timestamp of object 
creation time?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 486996] Re: testInsertGetWithoutTimestamp testcase fails

2009-11-23 Thread Mikkel Kamstrup Erlandsen
@Seif: I wouldn't have to care about the timestamp format when sending
events if my app doesn't need high precision timing. Just create the
Event instance and send it along. Recall that not all apps will be
written in Python and using our client libs...

-- 
testInsertGetWithoutTimestamp testcase fails
https://bugs.launchpad.net/bugs/486996
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
Running
   python test/resonance-engine-test.py
I get one failed testcase

==
FAIL: testInsertGetWithoutTimestamp (__main__.ZeitgeistEngineTest)
--
Traceback (most recent call last):
  File "test/resonance-engine-test.py", line 87, in 
testInsertGetWithoutTimestamp
self.assertTrue(ev.timestamp)
AssertionError

--

I would have fixed this if I were totally sure what the correct fix is. Right 
now the default timestamp of an event is an empty string, which is why this 
testcase fails. Is this the expected behaviour, and should we fix the test. Or 
should the default timestamp be a string containing the timestamp of object 
creation time?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 487321] Re: Origin

2009-11-23 Thread Mikkel Kamstrup Erlandsen
WHY NOT?

-- 
Origin
https://bugs.launchpad.net/bugs/487321
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
>> +   origin = 
>> info.get_uri().rpartition("/")[0]

WHY?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485433] Re: Dont' raise an exception when a duplicate event is detected

2009-11-23 Thread Mikkel Kamstrup Erlandsen
I'll do this tonight, and update the unit tests accordingly

** Changed in: zeitgeist
 Assignee: Seif Lotfy (seif) => Mikkel Kamstrup Erlandsen (kamstrup)

-- 
Dont' raise an exception when a duplicate event is detected
https://bugs.launchpad.net/bugs/485433
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Triaged

Bug description:
19:52  thekorn: raising an exception on "Duplicate event detected" is 
evil
19:53  thekorn: tell me how you want recent.py to work this way
19:53  RainCT, catch this exception
19:54  thekorn: doesn't help, if I'm sending 50 event and event 10 is 
already there then events 11-50 won't get inserted
19:55  RainCT, ok, so the only problem is when you are importing the 
existing history?
19:55  thekorn: no, with the current one too, because recent.py doesn't 
know when the last run was
19:55  RainCT, let's open a "critical" bugreport for it
19:56  this has to be discussed and needs more thoughts
19:56  (we should workaround that in some way but still the Zeitgeist 
API not allowing this is a problem)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483603] Re: Use timestamps with milliseconds granularity (was: use REAL)

2009-11-23 Thread Mikkel Kamstrup Erlandsen
Yes. Plugins *must* send the timestamps in millis since the Epoch. If
apps only use second granularity then we will have three zeroes in the
end of the timestamps.

-- 
Use timestamps with milliseconds granularity (was: use REAL)
https://bugs.launchpad.net/bugs/483603
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: New

Bug description:
Seconds are not fine-grained enough to differentiate events, so we should store 
the timestamps as floating-point numbers.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 425258] Re: origin should be a property of events, not items

2009-11-23 Thread Mikkel Kamstrup Erlandsen
Yeah. We had a discussion about this at the hackfest and everyone agreed
that origin must be a property of the subject(s). So the meaning og
origin is "where does the subject come from?". For files it is the
parent folder. For websites it is the root URL (eg. http://youtube.com).

We do need to figure out however if we want trailing slashes on origin
or not... That's another issue however.

** Changed in: zeitgeist
   Status: Triaged => Invalid

-- 
origin should be a property of events, not items
https://bugs.launchpad.net/bugs/425258
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Invalid

Bug description:
Both http://live.gnome.org/GnomeZeitgeist/DatabaseDesign and our current 
implementation have "origin" as a property of items, but this makes no sense, 
as the origin can be different for every event and should as such be a property 
of it. (Further, to improve disk space usage we should save the actual value of 
it in the "uri" table).

I'm filling this bug so that we don't remember to fix it, but please let's 
ignore it until we get the basic event/item separation stuff merged - most 
important stuff first.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485433] Re: Dont' raise an exception when a duplicate event is detected

2009-11-24 Thread Mikkel Kamstrup Erlandsen
Fixed in revision #1157

** Changed in: zeitgeist
   Status: Triaged => Fix Released

-- 
Dont' raise an exception when a duplicate event is detected
https://bugs.launchpad.net/bugs/485433
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Fix Released

Bug description:
19:52  thekorn: raising an exception on "Duplicate event detected" is 
evil
19:53  thekorn: tell me how you want recent.py to work this way
19:53  RainCT, catch this exception
19:54  thekorn: doesn't help, if I'm sending 50 event and event 10 is 
already there then events 11-50 won't get inserted
19:55  RainCT, ok, so the only problem is when you are importing the 
existing history?
19:55  thekorn: no, with the current one too, because recent.py doesn't 
know when the last run was
19:55  RainCT, let's open a "critical" bugreport for it
19:56  this has to be discussed and needs more thoughts
19:56  (we should workaround that in some way but still the Zeitgeist 
API not allowing this is a problem)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 486996] Re: testInsertGetWithoutTimestamp testcase fails

2009-11-24 Thread Mikkel Kamstrup Erlandsen
Fixed in r1158

** Changed in: zeitgeist
   Status: Triaged => Fix Released

-- 
testInsertGetWithoutTimestamp testcase fails
https://bugs.launchpad.net/bugs/486996
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Fix Released

Bug description:
Running
   python test/resonance-engine-test.py
I get one failed testcase

==
FAIL: testInsertGetWithoutTimestamp (__main__.ZeitgeistEngineTest)
--
Traceback (most recent call last):
  File "test/resonance-engine-test.py", line 87, in 
testInsertGetWithoutTimestamp
self.assertTrue(ev.timestamp)
AssertionError

--

I would have fixed this if I were totally sure what the correct fix is. Right 
now the default timestamp of an event is an empty string, which is why this 
testcase fails. Is this the expected behaviour, and should we fix the test. Or 
should the default timestamp be a string containing the timestamp of object 
creation time?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 425258] Re: origin should be a property of events, not items

2009-11-24 Thread Mikkel Kamstrup Erlandsen
Siegfried, I think you make a good case. However I don't see it
conflicting with what we have now though. Whether origin is something on
the event or the subject(s) is purely a matter of how one looks at it
now that we have a 1 to 1 mapping between events and subjects in the db.

The tricky part is defining how we want to assign the origins for which
types of events. It would be most useful to have a written spec here.
Consider your download example (which is a good one btw!), what if I
downloaded the files via a download manager app? Then the event context
is lost and we have to resort to guess work to establish the origin (and
likely use the host URL of the subject). Let's not go into these details
here. We should have a spec!

For me, I don't think it makes a lot of sense to talk about the origin
(or root) of an event, events are intangible things. All relations to
the physical world is described in the subjects. Furthermore it is
technically impossible to use the event as the entity to store the
origin since an event can have several subjects each with their own
origin. Consider for instance if I select files ~/foo/bar.txt
~/other/one.txt and move them to the trash in Nautilus. This is one
event, but each subject will have a different origin.

Then there's the topic of full text searching. I think there are two
sides of the matter you touch in your comment. 1) In relation origin,
and 2) in the more general sense where we want full text search on any
fields that make sense.

So for 1), one reason that the parent folder is useful for file events
is that we can look for "hot origins". Like we can detect that a lot of
activity has been in the folder ~/Projects/zeitgeist in the past two
days. We could for instance introduce new ResultTypes for the
FindEventIds() method, like ResultType.MostRecentOrigin and
ResultType.MostPopularOrigin. Such things can not be done easily with
full text searching (it can be done though, and it is called
"clustering", but no desktop search engine provides that atm. (and they
likely wont in the near to mid-term future)).

That said I still think that a full text search could be useful, but I
don't think we should intermix it with our FindEventIds() method. Full
text searching is very different in nature than strict SELECTS on a DB.
We can maybe open up a separate bug report to discuss full text
searching the events?

-- 
origin should be a property of events, not items
https://bugs.launchpad.net/bugs/425258
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Engine.

Status in Zeitgeist Engine: Invalid

Bug description:
Both http://live.gnome.org/GnomeZeitgeist/DatabaseDesign and our current 
implementation have "origin" as a property of items, but this makes no sense, 
as the origin can be different for every event and should as such be a property 
of it. (Further, to improve disk space usage we should save the actual value of 
it in the "uri" table).

I'm filling this bug so that we don't remember to fix it, but please let's 
ignore it until we get the basic event/item separation stuff merged - most 
important stuff first.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 447417] Re: Zeitgeist should have any kind of system to protect users privacy

2009-11-25 Thread Mikkel Kamstrup Erlandsen
Markus - we already have a DeleteEvents() method taking an array of ids.
Just do FindEventIds(templates) and pass them to DeleteEvents. This
makes it easy to do highly advanced event deletion schemes.

As for blacklisting this is really an issue in apps pushing events to
Zeitgeist I think.

-- 
Zeitgeist should have any kind of system to protect users privacy
https://bugs.launchpad.net/bugs/447417
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist should respect the following use cases:
 * Tim has a directory ~/Videos/pr0n, he does not want zeitgeist to track any 
events regarding this directory
 * Tina played a card game at work and found out that this event is shown in 
her zeitgeist client, she would like to remove this  event to hide it from her 
boss

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 447417] Re: Zeitgeist should have any kind of system to protect users privacy

2009-11-25 Thread Mikkel Kamstrup Erlandsen
I think that Siegfried has an important point. Since we like to relay
events around the system the Zeitgeist core will need a blacklisting
mechanism. There are several steps in such a solution as I see it...

We need a matches_template(event_templ) method on the Event class. This
will be mighty handy for lots of things.

Then we we should IMHO not just broadcast any old event over the bus. We
should do some kind of subscription service where apps register event
templates they want to listen for. And then we only notify apps that
have registered matching templates.

Embedded in this subscription system should be a blacklisting mechanism.

-- 
Zeitgeist should have any kind of system to protect users privacy
https://bugs.launchpad.net/bugs/447417
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist should respect the following use cases:
 * Tim has a directory ~/Videos/pr0n, he does not want zeitgeist to track any 
events regarding this directory
 * Tina played a card game at work and found out that this event is shown in 
her zeitgeist client, she would like to remove this  event to hide it from her 
boss

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 435099] Re: zeitgeist needs a more powerful testing framework

2009-11-25 Thread Mikkel Kamstrup Erlandsen
Yeah, we've got the json importer now. That helps a lot at least.

-- 
zeitgeist needs a more powerful testing framework
https://bugs.launchpad.net/bugs/435099
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
Right now zeitgeist is using pure python unittest plus a self written script to 
run all tests. I think there are cases where we need a more powerful testing 
framework, I suggest using nose [1].
Some examples:
 * we are using temporary databases for our tests, it would be nice if we could 
hook into a testfailure with a sqlite3 terminal to introspect the content and 
run queries manually before deleting the database
 * right now it is a pain to select individual testcases, nose can help us alot 
with this
 * at the moment we are just ignoring the output of logging, but especially in 
cases where a testcase fails this information is useful, nose has a plugin to 
capture this logs and append it to the report

[1] http://somethingaboutorange.com/mrl/projects/nose/0.11.1/

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488327] Re: Problems with unicode

2009-11-25 Thread Mikkel Kamstrup Erlandsen
I am pretty sure that the reason for this bug is that we would at times
try to decode an already decoded unicode string within our magical
UnicodeCursor class. I fixed this in lp:zeitgeist r1164.

-- 
Problems with unicode
https://bugs.launchpad.net/bugs/488327
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
[rainct, zeitgeist-0.3]$ rm 
/home/rainct/.local/share/zeitgeist/activity.sqlite*[rainct, zeitgeist-0.3]$ 
./zeitgeist-daemon DEBUG:zeitgeist.engine:Creating engine 'resonance'
INFO:zeitgeist.engine:Creating database: 
/home/rainct/.local/share/zeitgeist/activity.sqlite
DEBUG:root:Checking for another running instance...
DEBUG:root:No running instances found.
INFO:root:S'està iniciant el servei Zeitgeist...
DEBUG:root:S'està actualitzant la base de dades amb noves activitats: Recently 
Used Documents
ERROR:root:Error logging item from "Recently Used Documents": 
org.freedesktop.DBus.Python.UnicodeEncodeError
Traceback (most recent call last):
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../zeitgeist-datahub",
 line 126, in _insert_events
self._client.InsertEvents(events)
  File "/usr/lib/pymodules/python2.5/dbus/proxies.py", line 140, in __call__
**keywords)
  File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 622, in 
call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Python.UnicodeEncodeError: Traceback (most 
recent call last):
  File "/usr/lib/pymodules/python2.5/dbus/service.py", line 702, in _message_cb
retval = candidate_method(self, *args, **keywords)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/remote.py",
 line 134, in InsertEvents
return _engine.insert_events(events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 442, in insert_events
return map (self.insert_event, events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 474, in insert_event
stext_id = _text.lookup_or_create(subj.text).id if subj.text else None
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 95, in lookup_or_create
ent = self.lookup(value)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 79, in lookup
row = self._cursor.execute("""SELECT id FROM %s WHERE value=?""" % 
self.get_name(), (value,)).fetchone()
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 70, in execute
parameters = [self.fix_unicode(p) for p in parameters]
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 65, in fix_unicode
obj = obj.decode("UTF-8")
  File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: 
ordinal not in range(128)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488327] Re: Problems with unicode

2009-11-25 Thread Mikkel Kamstrup Erlandsen
I am wondering how I can link to a particular revision inside a branch in 
launchpad bugs? Testing:
lp:zeitgeist:1164
1164:lp:zeitgeist

-- 
Problems with unicode
https://bugs.launchpad.net/bugs/488327
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
[rainct, zeitgeist-0.3]$ rm 
/home/rainct/.local/share/zeitgeist/activity.sqlite*[rainct, zeitgeist-0.3]$ 
./zeitgeist-daemon DEBUG:zeitgeist.engine:Creating engine 'resonance'
INFO:zeitgeist.engine:Creating database: 
/home/rainct/.local/share/zeitgeist/activity.sqlite
DEBUG:root:Checking for another running instance...
DEBUG:root:No running instances found.
INFO:root:S'està iniciant el servei Zeitgeist...
DEBUG:root:S'està actualitzant la base de dades amb noves activitats: Recently 
Used Documents
ERROR:root:Error logging item from "Recently Used Documents": 
org.freedesktop.DBus.Python.UnicodeEncodeError
Traceback (most recent call last):
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../zeitgeist-datahub",
 line 126, in _insert_events
self._client.InsertEvents(events)
  File "/usr/lib/pymodules/python2.5/dbus/proxies.py", line 140, in __call__
**keywords)
  File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 622, in 
call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Python.UnicodeEncodeError: Traceback (most 
recent call last):
  File "/usr/lib/pymodules/python2.5/dbus/service.py", line 702, in _message_cb
retval = candidate_method(self, *args, **keywords)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/remote.py",
 line 134, in InsertEvents
return _engine.insert_events(events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 442, in insert_events
return map (self.insert_event, events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 474, in insert_event
stext_id = _text.lookup_or_create(subj.text).id if subj.text else None
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 95, in lookup_or_create
ent = self.lookup(value)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 79, in lookup
row = self._cursor.execute("""SELECT id FROM %s WHERE value=?""" % 
self.get_name(), (value,)).fetchone()
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 70, in execute
parameters = [self.fix_unicode(p) for p in parameters]
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 65, in fix_unicode
obj = obj.decode("UTF-8")
  File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: 
ordinal not in range(128)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488327] Re: Problems with unicode

2009-11-25 Thread Mikkel Kamstrup Erlandsen
Fixed in r1166. We had another double decode of a unicode string in
querymancer.

** Changed in: zeitgeist
   Status: Confirmed => Fix Released

-- 
Problems with unicode
https://bugs.launchpad.net/bugs/488327
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Fix Released

Bug description:
[rainct, zeitgeist-0.3]$ rm 
/home/rainct/.local/share/zeitgeist/activity.sqlite*[rainct, zeitgeist-0.3]$ 
./zeitgeist-daemon DEBUG:zeitgeist.engine:Creating engine 'resonance'
INFO:zeitgeist.engine:Creating database: 
/home/rainct/.local/share/zeitgeist/activity.sqlite
DEBUG:root:Checking for another running instance...
DEBUG:root:No running instances found.
INFO:root:S'està iniciant el servei Zeitgeist...
DEBUG:root:S'està actualitzant la base de dades amb noves activitats: Recently 
Used Documents
ERROR:root:Error logging item from "Recently Used Documents": 
org.freedesktop.DBus.Python.UnicodeEncodeError
Traceback (most recent call last):
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../zeitgeist-datahub",
 line 126, in _insert_events
self._client.InsertEvents(events)
  File "/usr/lib/pymodules/python2.5/dbus/proxies.py", line 140, in __call__
**keywords)
  File "/usr/lib/pymodules/python2.5/dbus/connection.py", line 622, in 
call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Python.UnicodeEncodeError: Traceback (most 
recent call last):
  File "/usr/lib/pymodules/python2.5/dbus/service.py", line 702, in _message_cb
retval = candidate_method(self, *args, **keywords)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/remote.py",
 line 134, in InsertEvents
return _engine.insert_events(events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 442, in insert_events
return map (self.insert_event, events)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 474, in insert_event
stext_id = _text.lookup_or_create(subj.text).id if subj.text else None
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 95, in lookup_or_create
ent = self.lookup(value)
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/dbutils.py",
 line 79, in lookup
row = self._cursor.execute("""SELECT id FROM %s WHERE value=?""" % 
self.get_name(), (value,)).fetchone()
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 70, in execute
parameters = [self.fix_unicode(p) for p in parameters]
  File 
"/home/rainct/Desenvolupament/Python/zeitgeist-project/zeitgeist-0.3/zeitgeist/../_zeitgeist/engine/resonance_engine.py",
 line 65, in fix_unicode
obj = obj.decode("UTF-8")
  File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 1: 
ordinal not in range(128)

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 447417] Re: Zeitgeist should have any kind of system to protect users privacy

2009-11-25 Thread Mikkel Kamstrup Erlandsen
>> templates they want to listen for. And then we only notify apps that
>> have registered matching templates.
>
>Is this even possible at all with D-Bus?

Yes. The direct solution is to have clients register some callback
interface. The more elegant approach would be to send directed signals.
Then a third approach would simply be using DBus Match rules (but I
think this will restrict the API a bit). I am not 110% sure that
directed signals are possible, but I think I read about it somewhere...

-- 
Zeitgeist should have any kind of system to protect users privacy
https://bugs.launchpad.net/bugs/447417
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist should respect the following use cases:
 * Tim has a directory ~/Videos/pr0n, he does not want zeitgeist to track any 
events regarding this directory
 * Tina played a card game at work and found out that this event is shown in 
her zeitgeist client, she would like to remove this  event to hide it from her 
boss

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488550] Re: DB BUG: event id column is redundant

2009-11-25 Thread Mikkel Kamstrup Erlandsen
This is a coindidental match. The event.id column is not a primary key
(as rowid is). We can have multiple subjects/event which will give more
than one row with the same event id.

** Changed in: zeitgeist
   Status: New => Invalid

-- 
DB BUG: event id column is redundant
https://bugs.launchpad.net/bugs/488550
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Invalid

Bug description:
we currently have the id in event set but if u notice it always matches the 
"rowid" since we just increment.
This should be fixed and it will save us one index :) "rowid" is indexed by 
default

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488656] Re: firefox extension: use XPCOM instead of communicating via files

2009-11-26 Thread Mikkel Kamstrup Erlandsen
How can you talk to Zeitgeist over XPCOM? Is there some bridging
mechanism? Otherwise it might be useful to use a real DBus impl. for
Xulrunner http://wiki.github.com/FireRabbit/mozjs-dbus

-- 
firefox extension: use XPCOM instead of communicating via files
https://bugs.launchpad.net/bugs/488656
You received this bug notification because you are a member of
Zeitgeist-Engine, which is subscribed to Zeitgeist Data Providers.

Status in Zeitgeist Data Providers: New

Bug description:
Due to a missing pyxpcom package in ubuntu karmic the firefox extension was 
hacked by files in the dbus communication process. this is VERY inefficient. We 
should use XPCOM instead.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488656] Re: firefox extension: use XPCOM instead of communicating via files

2009-11-26 Thread Mikkel Kamstrup Erlandsen
Ah, now I get it. You want to load a Zeitgeist XPCOM component, written
in Python, into Firefox, and then from that component import DBus (or
simply zeitgeist.client.ZeitgeistClient). This component is then used to
implement the extension in Javscript, or am I out on a limb?

-- 
firefox extension: use XPCOM instead of communicating via files
https://bugs.launchpad.net/bugs/488656
You received this bug notification because you are a member of
Zeitgeist-Engine, which is subscribed to Zeitgeist Data Providers.

Status in Zeitgeist Data Providers: New

Bug description:
Due to a missing pyxpcom package in ubuntu karmic the firefox extension was 
hacked by files in the dbus communication process. this is VERY inefficient. We 
should use XPCOM instead.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488790] Re: inconsistency in DB

2009-11-26 Thread Mikkel Kamstrup Erlandsen
I am unsure what to do. I, for one, have several versions of Firefox
installed. To identify which one sending the event we'd need the whole
path to the .desktop file. OTOH getting the correct path to the .desktop
file might not always be easy.

In the .recently-used.xbel apps are identified simply by their name, eg.
'gedit'. So one way to generate a canonical application name would be to
take the name of the .desktop file but strip the .desktop part. Eg
/usr/share/applications/anjuta.desktop  has name 'anjuta'.

Since we are not required to use URIs everywhere I think that a simple
application name like 'anjuta' is easiest to work with. If we want to
add other types of actors they can come with their own namespace. Fx. if
we want to store tweets with actor set to the person sending it we could
use the mailto:john@gmail.com URI scheme to identify the contact. So
in some sense applications are in the "default namespace" because they
don't require an URI scheme.

So in short i propose simply 'app'.

-- 
inconsistency in DB
https://bugs.launchpad.net/bugs/488790
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
Our DB has some inconsistency  when we insert applications:
recently used inserts something like /path/to/app.desktop
while the other loggers use application://app.desktop
WHICH ONE SHOULD IT BE

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488067] Re: add more logging statements to the engine

2009-11-26 Thread Mikkel Kamstrup Erlandsen
We now have debug statements with timing and count for insert, find, and
get.

** Changed in: zeitgeist
   Status: New => Fix Released

-- 
add more logging statements to the engine
https://bugs.launchpad.net/bugs/488067
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Fix Released

Bug description:
The old version of the engine is more verbose, has more logging statements. For 
example it prints out if and how many objects are inserted into the database. 
This information is useful when developing a dataprovider to see if everything 
is working. We should re-add this statements.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] [NEW] Add event notification and subscription system

2009-11-26 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

Zeitgeist 0.2 relayed all incoming events over the bus. This might be a
bit over the top, but apps still need a way to get notified of events
elsewhere in the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of
system to protect users privacy" where a dynamic black listing system is
needed. This is sort of inverse to a notification system (only "sort of"
mind you).

I want to use this bug as a tracker an reminder for us/me to finish this
feature. I have it pretty cut out in my head, so if any one else starts
on this please ping me...

** Affects: zeitgeist
 Importance: High
     Assignee: Mikkel Kamstrup Erlandsen (kamstrup)
 Status: Confirmed

** Changed in: zeitgeist
   Status: New => Confirmed

** Changed in: zeitgeist
   Importance: Undecided => High

** Changed in: zeitgeist
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

** Changed in: zeitgeist
Milestone: None => 0.3.1

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488968] [NEW] Caching of Event objects for use with GetEvents

2009-11-26 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

We should cache the full Event objects in an LRUCache (of size something
like 500 or less). We can update the cache in InsertEvents() and
GetEvents(). The primary idea behind it is to massively speed up
GetEvents().

Anyway not hugely important, just an optimization.

** Affects: zeitgeist
 Importance: Wishlist
 Status: Confirmed

** Changed in: zeitgeist
   Importance: Undecided => Wishlist

** Changed in: zeitgeist
   Status: New => Confirmed

-- 
Caching of Event objects for use with GetEvents
https://bugs.launchpad.net/bugs/488968
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
We should cache the full Event objects in an LRUCache (of size something like 
500 or less). We can update the cache in InsertEvents() and GetEvents(). The 
primary idea behind it is to massively speed up GetEvents().

Anyway not hugely important, just an optimization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 487321] Re: Origin

2009-11-26 Thread Mikkel Kamstrup Erlandsen
This bug is mostly about eactly what we want to store in origin, and how
to interpret origin exactly. I am deferring it to 0.3.1 because it's
unrealistic that we get full clarity on this before the weekend.

** Changed in: zeitgeist
Milestone: 0.3.0 => 0.3.1

-- 
Origin
https://bugs.launchpad.net/bugs/487321
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
>> +   origin = 
>> info.get_uri().rpartition("/")[0]

WHY?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 485966] Re: Using filters (text match / exclusion / etc)

2009-11-26 Thread Mikkel Kamstrup Erlandsen
Do we really want to block 0.3.0 because of this bug? I would say no,
otherwise we will ship some very untested code if we want to ship 0.3.0
this weekend. I say defer to 0.3.1, it's only a micro API break.

-- 
Using filters (text match / exclusion / etc)
https://bugs.launchpad.net/bugs/485966
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
 - How can I get all events except those with interpretation VISIT_EVENT?

 - In case you give me above the awful answer "looking for all interpretations 
except VISIT_EVENT", how can I get all events except those from application 
"firefox.desktop"?

 - How can I get all those events whose URI ends with "myfile.txt"?

- And those events whose title contains "zeitgeist"?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483556] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to the engine configurable

2009-11-26 Thread Mikkel Kamstrup Erlandsen
I believe Markus' branch was merged and the focus stuff removed for now?
So we can close this bug?

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make the loading of extensions to 
the engine configurable
https://bugs.launchpad.net/bugs/483556
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: In Progress

Bug description:
right now the relevancy-provider is loaded by default. Unfortunately this 
extension is kind of buggy and not well tested, so in case of errors while 
loading this extension the whole engine would fail to run.
We need a configurable plugin-system for our extensions, and for now we should 
per default disable loading the relevancy provider. If this provider gets more 
stable we should easily be able to add this extension to the default extensions 
which are automatically loaded on engine initialization.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] Prepare for Zeitgeist 0.3.0 this weekend

2009-11-26 Thread Mikkel Kamstrup Erlandsen
Hi there,

We a prepping up for rolling our first development release in the
Zeitgeist 0.3 series (which will lead up to a stable 0.4 eventually).
Our plan is to roll the release this weekend.

So developers, please have a look over launchpad (fx. starting at
https://launchpad.net/zeitgeist/+milestone/0.3.0) and see if anything
is missing before we hit the button. Bear in mind that this is the
_first_development_release_ in this series so we don't have to make
things perfect. Better punt things to 0.3.1 than to have
last-minute-panic hacks that always stays in the code base for longer
than anyone likes.

Happy hacking!
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-26 Thread Mikkel Kamstrup Erlandsen
If we want to re-instate the old system it is a matter of a few lines.
But that would be a step back IMHO. And writing a full template based
notification system could not be done in two hours by one. It's not a
huge task, but definitely more than two hours :-)

Besides, I really think we should stop shoveling features into 0.3.0 and
go with a slimmer, more stable release, instead of one packed with
features and API we need to change afterwards.

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-27 Thread Mikkel Kamstrup Erlandsen
Let me add a comment here on why we can't just emit a signal to
everyone...

In the future it is not impossible that many apps are connected to
Zeitgeist. Indeed if we have a hook in Gtk+ or Glib then *all* apps are
connected to us. Thus we'd send a signal to all desktop processes -
waking them up - meaning bad power and CPU usage. Especially on embedded
devices and netbooks this could be notable.

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-27 Thread Mikkel Kamstrup Erlandsen
I think I read somewhere in the Tracker changelogs that they committed a
fix for this, but maybe I mistook a normal comment on the matter as a
real committed fix...

Regarding 0.3 status I think we should ship 0.3.0 without it. There's
nothing stopping us having 0.3.1 next week already of we have good
features and fixes lined up. It's just to make sure that we in fact get
*something* out there. We are in danger of ending in perpetual-feature-
creep lan otherwise...

As I also stated to Seif I'd rather delay this a bit until we've figured
out a good API, than ship something we have to change shortly after.

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-27 Thread Mikkel Kamstrup Erlandsen
I am looking into the directed signals approach, and from a look at the
DBus spec this should be possible. If we can somehow create our own
dbus.lowlevel.SignalMessage then we can call
set_destination(unique_name) on that. See
http://dbus.freedesktop.org/doc/dbus-python/api/. Alse see
http://dbus.freedesktop.org/doc/dbus-specification.html#message-
protocol-messages.

Nothing concrete yet - just a heads up.

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-27 Thread Mikkel Kamstrup Erlandsen
Ok. I think I know how to do this now. I just need to find the time to
actually write the code :-)

Look at the nested emit_signal() method here:
http://dbus.freedesktop.org/doc/dbus-python/api/dbus.decorators-
pysrc.html#signal

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489186] [NEW] GetHighestTimestampForActor is superfluous

2009-11-27 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

The method GetHighestTimestampForActor is superfluous as far as I can
tell. It can be simply done fully client side by using FindEventIds like
so:

template = Event.new_for_values(actor="gedit")
ids = FindEventIds(TimeRange.until_now(), [template], StorageState.Any, 1, 
ResultType.MostRecentEvents)
highest_timestamp_for_gedit = GetEvents(ids)[0].timestamp

If I am right about this then I think we should remove it from the DBus
API an simply implement a convenience method in ZeitgeistClient.

** Affects: zeitgeist
 Importance: Undecided
 Status: New

-- 
GetHighestTimestampForActor is superfluous
https://bugs.launchpad.net/bugs/489186
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
The method GetHighestTimestampForActor is superfluous as far as I can tell. It 
can be simply done fully client side by using FindEventIds like so:

template = Event.new_for_values(actor="gedit")
ids = FindEventIds(TimeRange.until_now(), [template], StorageState.Any, 1, 
ResultType.MostRecentEvents)
highest_timestamp_for_gedit = GetEvents(ids)[0].timestamp

If I am right about this then I think we should remove it from the DBus API an 
simply implement a convenience method in ZeitgeistClient.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489194] [NEW] Implement storage monitor (devices and connectivity)

2009-11-27 Thread Mikkel Kamstrup Erlandsen
Public bug reported:

This is a reminder bug.

We need to write a "storage monitor" that manage the various storage
mediums we can have event subjects stored on. The storage monitor should
write any changes back to the 'storage' table in the DB.

What we need to track is connection and disconnections of storage
volumes (probably using gio) - ie. track whether or not files on USB
thumb drives are available or not etc.  Also the network connection
state should be updated in the storage table so that we can filter out
remote files and website on request.

** Affects: zeitgeist
 Importance: High
 Status: Confirmed

** Changed in: zeitgeist
Milestone: None => 0.3.1

** Changed in: zeitgeist
   Status: New => Confirmed

** Changed in: zeitgeist
   Importance: Undecided => High

-- 
Implement storage monitor (devices and connectivity)
https://bugs.launchpad.net/bugs/489194
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
This is a reminder bug.

We need to write a "storage monitor" that manage the various storage mediums we 
can have event subjects stored on. The storage monitor should write any changes 
back to the 'storage' table in the DB.

What we need to track is connection and disconnections of storage volumes 
(probably using gio) - ie. track whether or not files on USB thumb drives are 
available or not etc.  Also the network connection state should be updated in 
the storage table so that we can filter out remote files and website on request.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489186] Re: GetHighestTimestampForActor is superfluous

2009-11-27 Thread Mikkel Kamstrup Erlandsen
** Changed in: zeitgeist
   Status: New => Triaged

** Changed in: zeitgeist
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

** Changed in: zeitgeist
   Importance: Undecided => Medium

** Changed in: zeitgeist
Milestone: None => 0.3.0

-- 
GetHighestTimestampForActor is superfluous
https://bugs.launchpad.net/bugs/489186
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
The method GetHighestTimestampForActor is superfluous as far as I can tell. It 
can be simply done fully client side by using FindEventIds like so:

template = Event.new_for_values(actor="gedit")
ids = FindEventIds(TimeRange.until_now(), [template], StorageState.Any, 1, 
ResultType.MostRecentEvents)
highest_timestamp_for_gedit = GetEvents(ids)[0].timestamp

If I am right about this then I think we should remove it from the DBus API an 
simply implement a convenience method in ZeitgeistClient.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 479985] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] move code to compare two event/subject objects to the actual Event/Subject class

2009-11-27 Thread Mikkel Kamstrup Erlandsen
I added code to check if a given Event matches some tempalte event.
We'll need that for notifications and bklacklisting. We don't have a
method to check for strict equality though afaik...

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] move code to compare two 
event/subject objects to the actual Event/Subject class
https://bugs.launchpad.net/bugs/479985
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
"test/resonance-engine-test.py" has some code to check if two Event objects are 
the same. This code should not stay in the testcase, but should be in the 
Event/Subject class,  as this code is useful in other places

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-11-28 Thread Mikkel Kamstrup Erlandsen
Cool that you did this test Markus! I am a bit troubled by the results
though...

I fear that signals are by definition always broadcasted. We may be able
to work around this by setting a match rule on each signal connection on
the client side, but I am not sure... Something like adding a named
param. destination=bus.get_unique_name() to the line where we call
object.connect_to_signal() in client.py. However it does not appear to
be possible according to http://dbus.freedesktop.org/doc/dbus-
python/api/dbus.proxies.ProxyObject-class.html#connect_to_signal.

The alternative is to do our own simple monitoring system... Maybe
adding two methods to the Log interface:

InstallMonitor(in o client_monitor_path, in E event_template)
RemoveMonitor(in o client_monitor_path)

And then defining a new interface org.gnome.zeitgeist.Monitor with a
single method

Notify(in aE new_events)

The way we'd do this in the engine is to remember the unique bus name of
the caller in InstallMonitor() and then ping back on that address and
object path client_monitor_path, on the interface
org.gnome.zeitgeist.Monitor. We'd automagically drop monitors when
clients disconnect by listening for NameOwnerChanged.

Somehow I am nore inclined to the Monitor-solution... At least we can be
sure that it will always work disregarding if the client remembers to
set up the right match rules...

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489262] Re: Interpretation conventions

2009-11-28 Thread Mikkel Kamstrup Erlandsen
I think open/close/modify makes the most sense. I prefer 'modify' over
'save' since fx. editing a contact or something like that is done in an
instant-apply dialog, without any notion of "saving".

Of course this whole deal is just a corner of our bigger problem - that
we need an event ontology. I'll start writing one down now, but it will
not be ready for this weekend. So I think we should just go with
open/close/modify for 0.3.0 and take our chance that we can build up a
good ontology around that without having to break the ontology when we
finalize it.

-- 
Interpretation conventions
https://bugs.launchpad.net/bugs/489262
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
I think using
visit/modified is non-sense
I would push for replacing it with open/close/saved
THIS IS CRITICAL FOR THE DATAPROVIDERS AS WELL AS CLIENT APPS


___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 490110] Re: bug in client.py

2009-11-29 Thread Mikkel Kamstrup Erlandsen
This bug is probably not in client.py, but rather inside
resonance_engine.py, where we generate the SQL in find_eventids(). If
you can write a test case that triggers this, then that would be great.

I don't know what Siegfrieds state of the no-more-querymancer branch is
- the SQL generation code is probably rewritten there...

-- 
bug in client.py
https://bugs.launchpad.net/bugs/490110
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
Fiddling with the client.py i found this error 

i will write down the code first so u might understand where the problem is
--
def insert_events(self):
self.event_dict.clear()
event = Event()
event.set_interpretation(Interpretation.VISIT_EVENT.uri)
event2 = Event()
event2.set_interpretation(Interpretation.MODIFY_EVENT.uri)

self.zg.find_event_ids_for_templates([event], self.handle_events1, 
[self.time*1000, (self.time+86399)*1000], num_events=5)

#HERE I GET 9 items

self.zg.find_event_ids_for_templates([event2], self.handle_events2, 
[self.time*1000, (self.time+86399)*1000], num_events=5) 

#HERE I GET 13 items

self.zg.find_event_ids_for_templates([event, event2], 
self.handle_events, [self.time*1000, (self.time+86399)*1000], num_events=5)

#HERE I GET 126

def handle_events1(self, x):
print len(x)

def handle_events2(self, x):
print len(x)

def handle_events(self, x=None):
print "*", len(x)


here the output again:
9
13
* 126


AFAIK 9+13=22 and not 126!
somthing is wrong combining 2 event templates

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] ANNOUNCE: Zeitgeist 0.3.0

2009-12-01 Thread Mikkel Kamstrup Erlandsen
Hi,

On behalf of the Zeitgeist team I am proud to announce our first
development release, Zeitgeist 0.3.0, leading up to what will be our
stable series which will be 0.4. It is our intent to aim for a 1.0
release as soon as we feel good about the stable series, but that is
still a bit in the future. Now that we've crossed the initial hurdle
in the rewrite we expect the release cycle to be much shorter than
this one, although we have not settled on something strict yet.

As many of you know the bulk work on this release was done in the
Zeitgeist hackfest in Bolzano. Since we came back we been busy little
bees polishing it up and fixing bugs - trying not to flame each others
too much when discussing the designs :-) Working face to face in
Bolzano gave us a unique chance to really discuss things through and
get to the bottom of the details. This will also affect other
developers a bit since...

We were bad boys and decided to change both our internal database
structures as well as our public DBus API. Sorry - but after long
discussions we all agreed that this was for the best. The new design
is leaps and bounds better than the old one. This means that you both
have to give up on your old log database, and accept that there are no
GUI written for the new API just yet. This is being worked on as you
read this though!

Something that might come as a shock to some other developers is that
we decided not to store annotations and bookmarks within Zeitgeist.
This should be done in Tracker or some other semantic metadata
storage[1]. Zeitgeist answers only when and how data was accessed, but
stores no information about the current state of the metadata. We will
be working very closely with Tracker from now on since 0.7 is a
blessed dependency for GNOME 2.30. Congrats to the Tracker Devs.

You can download the release from: https://launchpad.net/zeitgeist/+download

The NEWS entry reads:

First development release leading up to the stable 0.4 series. This
release features:

 - Complete rework of engine and DBus API. Read: apps written against 0.2.*
   will most certainly need an update (see fx.
   
http://mail.gnome.org/archives/desktop-devel-list/2009-November/msg00019.html)
 - Public Python client API defined in zeitgeist.datamodel and
   zeitgeist.client modules
 - Documented public API with Sphinx (we'll have an URL for you shortly)
 - Changed Ontology from XESAM to Nepomuk.
 - Removed the Storm backend (obsoleted in 0.2.1).
 - Removed the Querymancer backend.
 - Support for event payloads (binary attachments to events)
 - An extension API for the core engine, allowing extensions direct
access to the DB
   There are already a handful extensions things in the works here,
you will hear
   more about this later

There are a few DISCLAIMERS that needs to be attached to this:

 - The event notification/signals are not yet ready in the new DBus API.
   We expect to have that ready for 0.3.1.
 - We plan to support querying only for available items (eg. filtering out
   deleted files, not listing files on detached USB storage, etc.). However this
   feature is not fully supported yet, even though it is exposed in the API.
 - While we are pretty satisfied with the database layout, there may still be
   changes in the ontologies or concrete data extraction methods. This might
   require that users delete their log databases in order to rebuild them
   with the new definitions. Of course this will no longer happen when we
   go stable
 - Much related to the point above our event ontologies are not yet
set in stone,
   and minor changes are expected
 - We have only one logger enabled for now. Namely the one monitoring your
   recent files. In coming releases this logger may well be deprecated in favour
   of application specific plugins.
 - And finally. Please note that this is a *development release*. We can not
   guarantee stability of services nor APIs, although we strive hard to keep
   things stable.


Cheers,

Mikkel


[1]: There have been talk about defining (and implementing) a very
simple DBus API for storing semantic annotations (bookmarks, tags,
comments, ratings, etc). In our internal speak such a service is
called a Repository. Tracker or Soprano would expose this API in most
cases, but on platforms where they are not available the simple
Repository implementation would be most handy. This being said, it is
currently not a high priority to implement a Repository, there are
alternatives ready in Tracker and Soprano.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] ANNOUNCE: Zeitgeist 0.3.0

2009-12-01 Thread Mikkel Kamstrup Erlandsen
2009/12/1 Neil Jagdish Patel :
> Hey,
>
> Congratulations :)
>
> I've got it built and running, however have nothing to test it with --
> have the tests been ported over to the new API? They seem to fail with
> broken D-Bus signatures. Also, are there any front-ends working with it
> yet or is that effort beginning now (gnome-zeitgeist seems to have
> stalled at the moment)?

Which tests are you referring to? The unit tests pass fine...

I put the API docs up on http://www.grillbar.org/zeitgeist/doc/0.3.0/,
but we probably need a more authoritative location. The docs are still
incomplete and could definitely use some inlined examples. Most
notably though; the ontology definitions are missing from the docs (I
have not figured out to automatically inject them into Sphinx). One
has to look in zeitgeist.datamodel.py for the predefined
Interpretations and Manifestations.

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488967] Re: Add event notification and subscription system

2009-12-01 Thread Mikkel Kamstrup Erlandsen
I have te beginings of an implementation along the lines I describe
above. It is still not ready for review, but I have it on
lp:~kamstrup/zeitgeist/notification.

** Branch linked: lp:~kamstrup/zeitgeist/notification

-- 
Add event notification and subscription system
https://bugs.launchpad.net/bugs/488967
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
Zeitgeist 0.2 relayed all incoming events over the bus. This might be a bit 
over the top, but apps still need a way to get notified of events elsewhere in 
the system.

This bug relates a lot to bug #447417 "Zeitgeist should have any kind of system 
to protect users privacy" where a dynamic black listing system is needed. This 
is sort of inverse to a notification system (only "sort of" mind you).

I want to use this bug as a tracker an reminder for us/me to finish this 
feature. I have it pretty cut out in my head, so if any one else starts on this 
please ping me...

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] Planning for Zeitgeist 0.3.1

2009-12-01 Thread Mikkel Kamstrup Erlandsen
Hi,

With 0.3.0 behind us it is time to plan what to aim for in 0.3.1. I
wholeheartedly think that we should aim for a short release cycle,
maybe with releases every month or so.

Right now 0.3.1 is scheduled to 24/12 on LP and I think a deadline
around that date is good. Considering that Christmas most probably
will influence our sparetime negatively I think we shold be
conservative in what we want to go in 0.3.1 - rather release a few
days early than some time after new years eve.

I created a 0.3.2 milestone on LP so we can defer bugs and blueprints
to our next-next milestone. So - comments and critics of this plan,
please!

-- 
Cheers,
Mikkel

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 491646] Re: Delete unused stuff from DB

2009-12-03 Thread Mikkel Kamstrup Erlandsen
Until we see evidence that our DB indeed clutters up in lots of unused
URIs and whatnot (after some DeleteEvents), then I don't think the added
complexity is worth it.

A more pressing issue is to delete unused URIs after a DeleteEvents
because of privacy reasons - it's fine that we delete all events about
http://example.com/explicit_content, but we still have the URI in the
'uri' table. However, we have to make sure that the URI is not reffed by
any other existing event before pruning it. But this seems to be another
bug, although heavily related to this issue.

-- 
Delete unused stuff from DB
https://bugs.launchpad.net/bugs/491646
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: New

Bug description:
 RainCT, I used REFERENCES table(column) ON DELETE CASCADE everywhere

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489262] Re: Interpretation conventions

2009-12-03 Thread Mikkel Kamstrup Erlandsen
** Changed in: zeitgeist
Milestone: 0.3.0 => 0.3.1

-- 
Interpretation conventions
https://bugs.launchpad.net/bugs/489262
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
I think using
visit/modified is non-sense
I would push for replacing it with open/close/saved
THIS IS CRITICAL FOR THE DATAPROVIDERS AS WELL AS CLIENT APPS


___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 490110] Re: bug in client.py

2009-12-03 Thread Mikkel Kamstrup Erlandsen
Seif has not been able to reproduce afaik, so marking as invalid

** Changed in: zeitgeist
   Status: New => Invalid

-- 
bug in client.py
https://bugs.launchpad.net/bugs/490110
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Invalid

Bug description:
Fiddling with the client.py i found this error 

i will write down the code first so u might understand where the problem is
--
def insert_events(self):
self.event_dict.clear()
event = Event()
event.set_interpretation(Interpretation.VISIT_EVENT.uri)
event2 = Event()
event2.set_interpretation(Interpretation.MODIFY_EVENT.uri)

self.zg.find_event_ids_for_templates([event], self.handle_events1, 
[self.time*1000, (self.time+86399)*1000], num_events=5)

#HERE I GET 9 items

self.zg.find_event_ids_for_templates([event2], self.handle_events2, 
[self.time*1000, (self.time+86399)*1000], num_events=5) 

#HERE I GET 13 items

self.zg.find_event_ids_for_templates([event, event2], 
self.handle_events, [self.time*1000, (self.time+86399)*1000], num_events=5)

#HERE I GET 126

def handle_events1(self, x):
print len(x)

def handle_events2(self, x):
print len(x)

def handle_events(self, x=None):
print "*", len(x)


here the output again:
9
13
* 126


AFAIK 9+13=22 and not 126!
somthing is wrong combining 2 event templates

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 406054] Re: Export extensions and dataproviders into a new package

2009-12-03 Thread Mikkel Kamstrup Erlandsen
** Changed in: zeitgeist
Milestone: 0.3.0 => 0.3.1

-- 
Export extensions and dataproviders into a new package
https://bugs.launchpad.net/bugs/406054
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Incomplete

Bug description:
We should take everything thath as nothing to do with the the engine itself or 
anything that communicates via dbus with the engine outside the package and 
create a new one or even a project called zeitgeist-dataproviders and 
zeitgeist-extensions. What do you think?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 397715] Re: I18N of zeitgeist

2009-12-03 Thread Mikkel Kamstrup Erlandsen
I agree with Siegfried. It will be very convenient for apps if the
display_name of Categories (Interp. and Manif.) af translated

** Changed in: zeitgeist
Milestone: 0.3.0 => 0.3.1

-- 
I18N of zeitgeist
https://bugs.launchpad.net/bugs/397715
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
zeitgeist is using gettext for I18N in various places, but its usage is 
inconsistent. A quick grep with `grep -R -E "[^\_]\_{1}\(" .` shows we are 
using gettext for:
 - some logging messages
 - the name and description of the FF DataProvider
 - display name of Content and Source objects in our datamodel (real gettext 
support is not implemented yet)

Thinking about this three items a bit I think none of them make sense at all. 
Logging is for debugging purposes, in the future we will ask our user to add a 
log file to a bugreport. If the logging messages are translated to a random 
language we will hardly understand the content. Translating the display name of 
Content and Source object also makes no sense, instead of this it should be 
done by the client. This way one database can be accessed with different 
language settings. And if we agree on the last two arguments, it also makes 
less sense for the last item.

But just in case I'm missing the point here, and we decide to have I18N support 
in zeitgeist we should decide which parts we would exactly like to translate, 
and dig trough the code to add language support to related elements 
consistently.

Markus

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489186] Re: GetHighestTimestampForActor is superfluous

2009-12-03 Thread Mikkel Kamstrup Erlandsen
I removed this method some time before we released 0.3.0. Marking as Fix
Released

** Changed in: zeitgeist
   Status: Triaged => Fix Released

-- 
GetHighestTimestampForActor is superfluous
https://bugs.launchpad.net/bugs/489186
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Fix Released

Bug description:
The method GetHighestTimestampForActor is superfluous as far as I can tell. It 
can be simply done fully client side by using FindEventIds like so:

template = Event.new_for_values(actor="gedit")
ids = FindEventIds(TimeRange.until_now(), [template], StorageState.Any, 1, 
ResultType.MostRecentEvents)
highest_timestamp_for_gedit = GetEvents(ids)[0].timestamp

If I am right about this then I think we should remove it from the DBus API an 
simply implement a convenience method in ZeitgeistClient.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 483550] Re: [lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper unittests

2009-12-03 Thread Mikkel Kamstrup Erlandsen
** Changed in: zeitgeist
   Status: Fix Committed => Fix Released

-- 
[lp:~zeitgeist/zeitgeist/zeitgeist-resonance] make test/remote-test.py proper 
unittests
https://bugs.launchpad.net/bugs/483550
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Fix Released

Bug description:
I know mikkel had a hard time at the hackfest trying to make this dbus API 
tests unittests, but I think I found a solution for it.
Having this test in unittests too would allow us to create one big testsuite 
for zeitgeist easily.
I will add a branch with unittests for the remote API soonish

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489194] Re: Implement storage monitor (devices and connectivity)

2009-12-03 Thread Mikkel Kamstrup Erlandsen
Ok, let me jot some thoughts donw on this so we have it

 * All monitoring should be done async, without polling. Ie. using signals and 
callback, not sleep(5); check_drives();
 * I think we can use gio.VolumeMonitor() to listen for connect/disconnect of 
volumes. Then we use gio.Volume.get_uuid() as the key in the 'storage' table.
 * I have not checked NetworkManager or ConnMan, but I am pretty sure that both 
provide some DBus API to get async  notifications when the connection goes away 
and comes up. We should use the key 'inet' to store the connectivity state in 
the 'storage' table.
 * All online subjects requiring a connection to be available, should have 
their storage attribute set to 'inet'

-- 
Implement storage monitor (devices and connectivity)
https://bugs.launchpad.net/bugs/489194
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Confirmed

Bug description:
This is a reminder bug.

We need to write a "storage monitor" that manage the various storage mediums we 
can have event subjects stored on. The storage monitor should write any changes 
back to the 'storage' table in the DB.

What we need to track is connection and disconnections of storage volumes 
(probably using gio) - ie. track whether or not files on USB thumb drives are 
available or not etc.  Also the network connection state should be updated in 
the storage table so that we can filter out remote files and website on request.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 488790] Re: What value should event.actor have?

2009-12-03 Thread Mikkel Kamstrup Erlandsen
** Summary changed:

- What value should "actor" have?
+ What value should event.actor have?

** Changed in: zeitgeist
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

** Changed in: zeitgeist
   Importance: Undecided => High

** Changed in: zeitgeist
   Status: New => Triaged

-- 
What value should event.actor have?
https://bugs.launchpad.net/bugs/488790
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
Our DB has some inconsistency  when we insert applications:
recently used inserts something like /path/to/app.desktop
while the other loggers use application://app.desktop
WHICH ONE SHOULD IT BE

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 489262] Re: Interpretation conventions

2009-12-03 Thread Mikkel Kamstrup Erlandsen
This is very related to the whole events ontology thing, and must also
be meticulously documented in our API docs. Since I am knee deep in
both, I'll assign this bug to myself.

** Changed in: zeitgeist
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

-- 
Interpretation conventions
https://bugs.launchpad.net/bugs/489262
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
I think using
visit/modified is non-sense
I would push for replacing it with open/close/saved
THIS IS CRITICAL FOR THE DATAPROVIDERS AS WELL AS CLIENT APPS


___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Bug 487321] Re: What value should subject.origin have?

2009-12-03 Thread Mikkel Kamstrup Erlandsen
** Summary changed:

- Origin
+ What value should subject.origin have?

** Changed in: zeitgeist
 Assignee: (unassigned) => Mikkel Kamstrup Erlandsen (kamstrup)

** Changed in: zeitgeist
   Importance: Undecided => High

** Changed in: zeitgeist
   Status: New => Triaged

-- 
What value should subject.origin have?
https://bugs.launchpad.net/bugs/487321
You received this bug notification because you are a member of
Zeitgeist-Engine, which is the registrant for Zeitgeist Framework.

Status in Zeitgeist Framework: Triaged

Bug description:
>> +   origin = 
>> info.get_uri().rpartition("/")[0]

WHY?

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


  1   2   3   4   5   >