Hi,
While working on the mobile application I needed a notification system that
would send enough but not to many notifications of changes in a wiki. Also
I needed the message to be short.
In the end I looked at changes every five minutes and I constructed a short
message depending on the amount of changes (if only one page is added then
send the page title, if multiple pages are changes in one wiki send the
wiki names and the number of changes, etc..)
After using this for a while on my mobile I found the result quite
interesting and I thought this could also apply to the activity stream.
Here comes an activity stream experiment based on this method:
http://www.xwiki.org/xwiki/bin/view/Main/ActivityStreamDemo (on a multi
wiki)
http://incubator.xwiki.org/xwiki/bin/view/Main/ActivityStreamDemo (on a
single wiki)
Additionally this method allows to implement it quite efficiently, as you
can see at the bottom of the page. It was possible to make this display
with only 2 queries (plus loading of documents for the security checks,
which could in the end be the most costly). One queries finds the intervals
of 5 (or more) minutes in which there are data. From there we know how much
data we need from the activity stream and can retrieve all that data in one
query. Finally group by group we construct the message display. The fact
that you can run this in 2 queries is very important as it means you can
have steady performance both for very active wikis but also for wikis that
have much less or much older activity. One of the big problems of activity
stream displays is that you never initially know how much data you need to
display results.
By clicking on the group you can load in ajax the details of the changes.
You can also change the group delay and the number of groups displayed.
Here 60 minutes showing 40 groups
http://www.xwiki.org/xwiki/bin/view/Main/ActivityStreamDemo?max=40&dela…
What is interesting with this system is that the use could decide the delay
so that he gets a general view of the activity over a long period of time.
You could display a couple weeks with a 24 delay and if you click on the
day you show by groups of 30 minutes. This opens a lot of possibilities.
You could also get into the details of the last hour, then be less detailed
for the less recent changes.
Food for thoughts for the redesign of the activity stream.
Ludovic
--
Ludovic Dubost
Founder and CEO
Blog:
http://blog.ludovic.org/
XWiki:
http://www.xwiki.com
Skype: ldubost GTalk: ldubost