Activity streams: not just for the cloud

At the end of last year, I was asked to contribute my wishlist for Linux on the desktop for an issue of Linux Format magazine. Here’s what I submitted:

I want an activity stream for my activity on my local computer, and across my network. When, for example, I make a change to a document, I want my PC to record it on my activity stream as “Ben Werdmuller edited ‘Linux Format wishlist’ in LibreOffice Writer.” By default, those changes are private to me only, but I can set access permissions per file, application, location on disk and type of update (“status update”, “text file”, etc). In a network environment, I can share my activity streams across the network, and see the updates that other network users have allowed me to view. This stream is at an infrastructure data level, so I can choose a number of applications to view it with – although I can easily imagine Ubuntu, for example, shipping a beautiful default app.

Then, I want to be able to program against the activity stream, and the activity streams I can see on my network, using a simple API. This would allow me to sync files, status updates and other things, while not being bound to any one application or utility. It also could provide an interesting underlying basis for social web applications running on Linux servers.

This is a little convoluted, so let me explain: I want my activity on my computer, my activity across my enterprise network, and my activity on the web to be saved to a single activity stream that I control. I want to be able to conditionally share and have access to the entire activity stream – and then do stuff with it, using tools like the excellent ifttt.

Consider the following unified stream:

  • Ben Werdmuller saved Technical white paper to Work out tray 3 seconds ago
  • Ben’s mom sent you an email: A little family news to 15 minutes ago
  • Ben’s cousin sent you a message: I’m engaged! on Facebook 1 hour ago
  • Your task: Finish technical white paper is due 3 hours ago
  • You were tagged in a photo: ElggCamp San Francisco 2012 on Flickr 4 hours ago

In the example above, the act of saving something to the folder Work out tray could automatically cause it to be uploaded to Basecamp, or emailed to a few people for review. Similarly, my being tagged in a photo on Flickr could cause it to be automatically downloaded into my local Photos folder.

Why should my activity stream just contain stuff that happened on the web? Now that we have apps like Google Drive, these separations are arbitrary at this point. What matters is that I did something, not where I did it.






7 responses to “Activity streams: not just for the cloud”

  1. David V Avatar

    today’s computing – point A to point B – replication method; tomorrow’s computing – point A and point B – streaming method.

  2. gdupont Avatar

    Nice idea indeed. Try GNOME Activity Journal which is a start (relying on Zeitgeist logs if I’m not wrong). I would love to see it linked with stuff like “Getting things gnome” or hamster tracker for productivity and more !

  3. Marcus Povey Avatar

    Sounds like someone should write a dbus/libnotify – activity streams bridge, bagsy not me.

    Shouldn’t be earthshatteringly hard, but I expect there’s a lot of devil in the detail.

  4. Marcus Povey Avatar

    Also, you should look at webhooks.

  5. TheGreeks Avatar

    I’m thinking the easiest thing would be to fork Growl. 

    Though be careful what you wish for…As soon as something like this exists, employers & advertisers will decide it is a great way of monitoring their retrospective livestock.

    1. Ben Werdmuller Avatar

      See, I’m thinking that for teams in a work environment, it could actually be pretty awesome. Although I take your point about monitoring, the key to the whole thing has to be access permissions – otherwise you get information overload.

      For advertisers, yeah, you make a good point. Although it could lead to free versions of proprietary operating systems, which might have some upsides.

      1. TheGreeks Avatar

        It raises an interesting semantic problem for developers of any kind of activity stream. How do you label events so that it is possible to do something useful with the information. 

        {subject | verb | object | time}
        person::Ben | wordpress::completed | blog post(UID) | on the 24th April

Leave a Reply

Your email address will not be published. Required fields are marked *