Activity streams: not just for the cloud

April 24, 2012 | 7 comments

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.

The Facebook Timeline is the nearest thing I’ve seen to a digital identity (and it’s creepy as hell)

September 23, 2011 | 48 comments

As an application developer, I have advance access to the Facebook Timeline that Mark Zuckerberg announced yesterday. Here it is:

Facebook timeline: main

At first glance, it’s a rather beautiful replacement for the social media profiles we’ve been using since forever. Rather than simply listing your latest content, the timeline allows any visitor to browse your life, literally from birth to the present day. (If you scroll down to the bottom, Facebook prompts you to add a baby photo. Aww.)

This definitely changes the paradigm for social media profiles. As Channel 4 News’s Benjamin Cohen says:

It’s interesting from a personal perspective to look back at the past five years but there’s so much that I wouldn’t want someone else to be reading. It seems like too much information about me for people to be able to discover. While it’s been possible for people to access my photographs from years ago, in a sense they were out of context. Now you can see context because of the posts I made myself and those made by my friends on my wall.

Facebook allows you to connect with an increasing number of sites and applications using your Facebook identity. You can write documents, share what you’re reading, play games, and so on – and for most people, this has been a welcome feature. Everything is controlled from one place, with one username and password, and it’s easier than OpenID. Great!

Facebook timeline: 2006Except now, when someone clicks through from anywhere on the web that uses Facebook Connect to see your profile, they’ll really see you: your life in context. It’s a contextual identity; something you won’t get from a real name, a passport, an ID card, or even a DNA profile. Whereas previously profiles were a collection of hand-picked pieces of information coupled with some things you’d shared recently, now you’ll see wedding photos, pictures of drunken nights on the town four years ago, and perhaps a status update you made when you were hurt and upset after something you’ve long forgotten that happened in 2006 – mixed up with more professional status updates and links, of course.

On one level, it’s brilliant. On another, it’s undeniably, pervasively creepy, to a level we’ve hitherto been unprepared for in human society. These things are designed to be forgotten, but with the Facebook Timeline, much of your life is all but indelible, published front and center until you go through each item individually and hide or delete it.

Nobody’s forced to use Facebook, of course, although for many it’s pretty much a mandatory part of the social experience. What worries me is the trend of radical transparency and social context throughout the web software industry, where it’s expected that everyone will share their lives unless they’ve got something to hide. On the surface, for white males like me living in California, there’s a lot to be said for this on an individual level; don’t lie, be up-front, wear your intentions and motivations on your sleeve. But ultimately the decision about what to share has to be the individual’s – if you don’t feel like sharing something, don’t. Radically transparent interfaces are designed in a way that leads to a kind of peer pressure for disclosure: everyone else is sharing information about A, B and C, so why are you being so evasive?

Furthermore, there’s something particularly jarring about squeezing emotional life events into a social database. Facebook has become a social operating system. Where “social” means “sharing pages, files and resources through electronic means,” that’s great: a much-needed step forward. Where it refers to relationships between human beings, it’s not required, and the idea of placing these things into neat, centrally-defined categories is distasteful.

Facebook Timeline: lost a loved one?

The case for allowing users to control not just their digital identities, but the platform that defines and stores their digital identities, is stronger than ever.

Update: I was quoted about the Facebook Timeline in the New York Times.

Opera Unite: a great idea, wrong center

June 16, 2009 | 2 comments

Opera just released Opera Unite, a version of their web browser that also contains a built-in web server. As Harry McCracken explains over at Technologizer:

While it’s impossible to judge at this early date whether it’ll “forever change the fundamental fabric of the Web” as Opera promised, it’s a very big idea. Web browsers have always been about bringing information from the Web onto a PC. With Unite, Opera 10 still does that–but it can also fling information from the PC up to the Internet. [..] It launches with some apps that Opera developed itself, including a file-sharing service, a chat room, a music player, a photo-sharing tool, and a note-taker.

Engadget has a video introduction to the application.

This is yet another entrant into the decentralized social web space, but it violates one of my key rules of web application development: keep the browser invisible. Here’s why I think this is important.

I own three computers – two Windows laptops and a Linux machine that runs Ubuntu – as well as an iPhone. All can access the web. At any given moment, I can be connected with any of these devices, depending on which is the most appropriate. For example, I use a 17” laptop at home, but if I’m travelling I’ll take my 12” model; when these are switched off, I might use my iPhone to quickly check something on the web or write a swift email. Additionally, sometimes I connect using other peoples’ machines, or computers in offices I happen to be visiting.

One of the exciting features of the web is that I can use my applications and access my data from any of these. Although I have my preferences as to which device I use, my applications and my data don’t care. They’re agnostic.

As soon as I require a particular browser to be used, I limit myself. I can only access this functionality from the devices that have it installed – which in the case of my iPhone or someone else’s computer is an impossibility. The Opera Labs announcement provides a pretty sound reasoning for decentralized, user-centric services:

Our computers are only dumb terminals connected to other computers (meaning servers) owned by other people — such as large corporations — who we depend upon to host our words, thoughts, and images. We depend on them to do it well and with our best interests at heart. We place our trust in these third parties, and we hope for the best, but as long as our own computers are not first class citizens on the Web, we are merely tenants, and hosting companies are the landlords of the Internet.

However, Opera Unite provides a different kind of centralization and locks us into a particular way of accessing the web. It still yields useful functionality but is a far cry from the cloud-based social architecture that most web application providers are working towards.

Update: To clarify, you don’t need Opera Unite to access services someone else is hosting using Unite. But then aren’t you only half-participating?