Archive for the ‘projects’ Category

So yesterday I finished enough code to feel comfortable launching Tweet Cascade. This is the post where I talk about it a bit.

I noticed sometime last year that, due to the way that Twitter is set up, there’s this interesting gap in the “what sorts of discussion Twitter supports” zone. Now, this is pretty much true of any communications medium (telephones are notoriously bad for groups to talk on, for instance), but two things stood out to me for Twitter.

1) It’s a communications platform. The open API is specifically designed to encourage new and interesting uses of the Twitter infrastructure and ecosystem. Further, the platform is almost entirely software-based. That is, I don’t have to design new hardware (like a new telephone) to take advantage of the platform’s flexibility.

2) I saw a solution. This is a big one. Generally I note a problem with a system and just shrug, unable to see an easy fix. This time it was different. In fact, it was such an obvious move that I’m now left wondering if the fact that I haven’t turned up any similar attempts makes me a total genius, or represents some equally obvious flaw with the scheme that I’m blind to.

Like most communication tools, Twitter is largely a product of its origins. It began, as far as I can tell, as an attempt to solve a massive flaw in SMS messaging: the inability to manage group conversations. Maybe I’m wrong, but this is how things have always felt to me. So Twitter started off as a way for close-knit friends (that is: people you might SMS) to keep in touch.

It’s grown since then, of course. Changed and evolved. But that original set of assumptions has shaped that growth and evolution so that Twitter is still largely focused on keeping tight-knit groups in touch with each other.

Of course this isn’t everyone’s experience of the service, which is one of the beauties of Twitter, really.

Anyway, because of that focus, Twitter is really good at managing the sorts of conversations and interactions that friends have. Whatever your friends post, even if it’s something like “I sure do like cheese!”, chances are you care simply because you care about the person writing. It’s not that you have some general interest in peoples’ cheese opinions. It’s that you have specific interest in the opinions of your friends.

Now, a second sort of thing has snuck onto Twitter, and that’s highly focused accounts. You know, like the one CNN uses to talk about breaking news. If you follow these, chances are you’re interested in everything that comes from them because they are curated/edited/filtered up front. They are narrow in scope because they aren’t about people, they’re about purpose. This is a pretty cool thing.

The problem I see is the one in the middle. What about those people who aren’t really your friends to the point where you CARE that they like cheese? One option is to simply ignore them. But what if they also happen to have occasional insights into a topic you do care about? Like (for instance) knitting. Currently you’re stuck between choosing to follow their account and ignore most of the stuff on it, or miss out on their amazing knitting advice.

Tweet Cascade is an attempt to find a middle ground. And it’s built on a relatively old internet pattern: the email listserv. Much like a listserv, Tweet Cascade works by establishing a new address (in this case, a Twitter account) for the robot which handles the discussion list. Then, when you want to talk to the group, you just send your message to the robot’s address and it handles the rest.

Using the language of Twitter… If you mention (that is use an @robot) a robot account (we call them Cascade accounts over at Tweet Cascade), the account picks up on that. Then it checks to see if it is following you (that is, checks to see if you are a member, this is important because anyone can mention a Twitter account, and we don’t want those people gaining access). If the robot is following you, then it simply retweets your message. That way anyone who follows the robot, but doesn’t follow you, will see it. And if they reply to the robot, you (and everyone else in the group) will see that reply.

It’s very listserv-y. Like in email, each address is treated as a person, except for the robot. And talking to the the robot stands in for talking to everyone you want to. It’s also a discover-assisting device in that it aggregates interesting discussion in a centered, rather than horizonal, social structure. That makes it easy to find, and easy to join.

At the same time, Tweet Cascade adds something new. Something that isn’t necessary with email, but is helpful with Twitter. See, in email, you only get messages that are specifically targeted at you. But Twitter, in some ways, acts more like an aggregator, pulling in lots of data from sources you choose, regardless of whether that source wants to target you with that information or not.

Because of this aggregator-like behavior, and the unpredictable nature of the messages the various sources you follow might choose to send, having systems to filter those sources becomes useful. Twitter implemented one of these a while back: you don’t see messages that begin with a mention of someone you don’t follow. So you don’t see conversations between your friend and people you don’t know. Or, that’s the theory, and it mostly works.

Tweet Cascade provides yet another filtering mechanism. It lets you choose to add specific types of discussions to your feed without having to worry about their sources. Also, using the built-in suppression of mentions of unfollowed accounts, it frees you from any guilt over having massive discussions using Tweet Cascade. Your friends who don’t follow the Cascade account in question won’t have to see what you’re saying.

One final note: in order to better integrate things with Twitter, Tweet Cascade is managed through DMs rather than through a web interface. Once an account is hooked into the Tweet Cascade robot, all further modifications are handled through your Twitter client. I happen to think this is a nicely elegant design decision since it means that you don’t have to learn any new tools beyond the specific command style/language that Tweet Cascade uses.

So that’s Tweet Cascade. It’s up and running if you want to try it out, and I’d love to hear your thoughts on it.

This actually could have gone up eight weeks ago, but there was what I suppose is a traditional post-thesis crash. Which isn’t to say I didn’t get plenty of other things done (there’ll be a post on that in a minute), but it is to say that I’ve basically put off any thinking/work related to Banyan Speak since then.

It’s about time to get back to that. But first, to catch people up if they’ve been here on the blog and haven’t seen the work I’ve been doing.

I gave my final presentation on May 3. You can check that out right here (it’s about 20 minutes long):

If you’d like to take a look at the current draft of the paper I’ve got explaining the project, feel free to take a look at the most recent Google Document. The appendices, especially, need work and clean-up, but the core ideas are all in place.

Which means now it’s time to get back into things. I think the place to start is with the Dreamwidth people. They’ve got some very smart developers who have a strong understanding of community. They’ve also begun implementing some features that make some of the ideas behind Banyan Speak worth implementing on a strictly local level, which would mean getting to test out architecture and dealing with some user issues without having to worry about cross-site support.