Utterance Addendum

Just a brief update:

When I wrote yesterday's post on Utterance, one feature I hadn't gotten working yet was direct messaging. They could be sent, but not received, and it wasn't immediately obvious why this was. Last night I figured this out, and a few minutes later had two-way direct messaging working quite nicely.

So what does this mean? Twitter and Identi.ca have in essence become completely IM-like. Granted, it's a slow IM with a few minutes between messages and the 140 character limit, and I'd not recommend using it over any other form of IM if you have the chance, but with this feature I've finally succeeded in creating an IM-like interface to microblogging that works regardless of which XMPP client you're using.

I think I'll take a break from Utterance for the moment, both because I'm getting tired of hacking on it and because I need to work on other projects. Next, however, I plan to add a chatroom-style interface. Following/unfollowing users will be a matter of inviting or kicking them from the chatroom. You'll also be able to group users into custom rooms, separating some updates out from the larger stream. Finally, Utterance will detect based on several factors whether or not to use the classic or chatroom interface, thus keeping you connected on clients from the desktop to the phone.

But for now I shift gears and chase another shiny. :)

Announcing Utterance

No, this isn't the major post I promised–that's still being worked on–but I did want to announce a project I've been hacking on for the past few months now that is finally becoming usable.

Microblogging is a fun way to communicate en mass, though in actuality it is little more than web-based IM, deriving its origins from IM status messages. Twitter even had a simplistic IM interface earlier on, though this was axed soon after I began using it (I'm sure the two are unrelated. :) Other microblogging services like Identi.ca still do provide these interfaces, though they're quite simplistic and offer an incredibly limited featureset.

A few months ago, I set out to write an XMPP-based interface of my own. The result is Utterance, and I rarely need to visit either the Twitter or Identi.ca websites these days. Here is what currently works:

  • Messages are relayed via IM to and from multiple accounts on either Identi.ca or Twitter. It is also possible to post to only one account. All other IM interfaces of which I am aware are limited to a single account on just one service.
  • Quick @ replies. Each message has a small identifier that can be used to not only prepend the @username, but also to direct the reply at the correct notice. Most existing IM interfaces assume that replies are intended for the last message received from any given user, which is often inaccurate.
  • Viewing of previous messages in the client. If you've received a message recently enough that it is still archived, then sending the message identifier resends the message. Currently Utterance archives nearly 4000 messages per user, so you're likely to find just about any received message without hitting the web.
  • Conversation fetching. A three-character command displays an entire conversation, so you need not leave your client to view context for a notice.
  • Follower management via the buddy list. An optional feature lets you follow or unfollow users by adding or removing them as regular IM contacts. Also, new followers appear as if an IM contact has just subscribed.

There's more that's not mentioned, and even more planned. Feel free to try it out if such things interest you. Mind the alpha warning, and the occasional bug. The bit about wiping the database is no joke. I deleted and restarted it just last weekend due to needing to test a number of fixes in production, but in general I find it stable and reliable enough that I've used it almost exclusively for months.