Tag Archives: twitter

Lifestreaming clients round N

I guess two posts on lifestreaming clients isn’t enough?.

Yesterday MacHeist started offering pre public beta access to Tweetie 2 for Mac.   That caught my eye because Syrinx, my primary Twitter client has been a little slow at keeping up with Twitter features.   I didn’t really want to get the MacHeist bundle (don’t want to hassle with packages that I don’t want) just to get the private beta, but I mentioned on Twitter that I was thinking about it.   Several folks suggested that I try Echofon.   I gave it a whirl, found some things that I like and other that I didn’t.   I started keeping notes about Syrinx vs Echofon, and now it’s turned into a blog post.

My usage style / requirements

I follow a bunch of people, including many people who live in Europe who tweet while I am asleep.   I need a client that can remember unread tweets from overnight.    I’ve found very few clients that are able to do this.     My reading style tends to be bursty as well, so I want the client to do a good job of keeping track of what I’ve read and what I have not.    These two requirements are what has kept me on Syrinx – it can hold days worth of tweets without a problem.   Syrinx’s bookmark also gives me definite way of marking what has been read and what has not, and puts control of that mark directly in my hands.

The other major requirement is that I spend some time (probably too much) on airplanes, without net access.   I want a client (mostly on my iPhone) that can go back in fill in the gaps left by being in the air.   Tweetie 2 for the iPhone can do this, but the experience of switch back and forth between reading the stream on desktop Syrinx and iPhone Tweetie 2 is annoying.

A minor requirement is to be able to monitor a number of Twitter searches at once – that means opening a window for each search, something that Syrinx also does.

Now, let’s have a look at how Syrinx and Echofon stack up for me.


The obvious things that I like about Syrinx are that it can hold as many tweets as I want, as well as the bookmark.    I’ve also grown accustomed to the way that it displays time in absolute format, something which Tweetie 2 / iPhone also does.   One other nicety in Syrinx is that it can display real names in addition to Twitter handles, because sometimes handles and people are hard to match up.   When you have tons of tweets lying around in the? client, sometimes you want to go back to one, and Syrinx obliges with the ability to search all the tweets that it currently has in memory.

So what are the problems with Syrinx? It’s been occasionally unstable, but not in a show stopping fashion. It doesn’t have good support for lists, but I still haven’t made much use of lists. Syrinx does great on opening windows for searches, but it doesn’t remember what searches you have open, so you have to keep track of that yourself. Probably the biggest drawback of Syrinx is that its development is going slowly because its author has a day job.


When I compare Echofon and Syrinx, I realize that a lot of the things that I prefer in Echofon are niceties. I like that it can open browser links in the background. I like the way that the drawer is used for dealing with Twitter users and profiles and for displaying conversations.   I just wish it could display more than one conversation at once – but that’s hard in the drawer model. The ability to colorize tweets matching keywords makes it easier to pick out tweets on high priority topics.    As a photographer, I appreciate the ability to display pictures without going all the way to the browser.    I do wish there was a way to get some kind of preview of those pictures right in the tweet stream.   Echofon does this clever thing where it combines “rapid-fire” tweets from the same person.   This seems to work really well, and the visual cue is definitely helpful.  

Looking at the tweet authoring side,  I love the “retweet with comment” option.   One reason that I stopped commenting on retweets was that it was annoying to do it.  No more.   Echofon can tab complete Twitter id’s when @replying or direct messaging.    I still wish for a direct message “rolodex” – there are some people who have hard to remember Twitter id’s.   bit.ly is my preferred URL shortener because of the analytics, but you have to be logged in to bit.ly in order for that to work well.   Fortunately Echofon is able to log into bit.ly accounts so that your analytics work.

In theory, I like the idea of an Echofon ecosystem that syncs the desktop and mobile clients.   I haven’t tried this yet because I have iPhone Twitter client fatigue, and because as much as I like Echofon, there are some issues that make it hard for me to switch over.

The first of these issues is that Echofon won’t hold all of the tweets that happen overnight.  It looks like Echofon will hold about 5 hours of tweets before it starts to drop them on the floor.  There go some of those European tweets.

The next big issue is that marking read/unread doesn’t work for me.  If I am scrolling up through my home tweets and I hit the top, everything gets marked read.   It’s easy to do that by accident.   Switching to the @, DM, or search tabs also marks my home tweets as all read, and that doesn’t work for me at all.

Compared to those two issues, everything else is just nits, but here goes, just to be complete.   Echofon doesn’t display absolute time or real names.    Also, Echofon doesn’t let you search your home tweets.

Wild and crazy wishes

Certain URL shortening services (su.pr and ow.ly come to mind) wrap the page in a header bar, which is annoying.  I’d love if my client would route through those services so that the URL that I got in the browser was the actual content.

Sometimes there are links that are retweeted a bunch.   I would love it if a client could compress all those retweets into a single entry which showed how many / which people I follow retweeted a link, along with an indication of whether or not I had already “read” an earlier retweeter (which would mean I had already read the link).

I guess I’ll have to do another version of this post when Tweetie 2 for Mac finally ships.   Or maybe it’s still early enough for some of these ideas to make the cut.


Why I finally believe in hashtags

I’ve been using Twitter for a while now, but I’ve never really used hashtags much. I’ve never been much for doing the stuff it takes to get a highly promoted blog or twitter stream. I figure that if my content is worthwhile, that should be enough. At PyCon I found the compelling hashtag use case for me.

There were a lot of people using hashtags in their PyCon tweets, and Jacob Kaplan-Moss showed me Twitterfall, which made it easy to keep track of uses of the tag. That made it *much* easier to find the virtual twitter stream for PyCon. This was also true at Lang.NET, the DSL DevCon, and the MySQL conference. This week(end) I’ll be using hashtags to track the progress of JSConf.   From now on I’ll always use hashtags when I’m at a conference or event.

One reason that it’s taken me so long to get the hash tag thing is that I use Twitter primarily via rich desktop (or iPhone) clients. Until recently I wasn’t using clients that could do searching. I had tried TweetDeck, and it never stayed with me. When Nambu came along, I was pretty enthusiastic because it was a native TweetDeck. Unfortunately, I had crashing problems with it at Lang.Net (since fixed, I think), and I put it aside when I realized that Syrinx 2.0 had searches. While Syrinx doesn’t save searches across restarts, its memory use is tolerable enough to leave it running all the time, so it’s not a big problem, and I am hopeful that MRR will include saved searches in a future version. Commenters: yes, I tried Tweetie for Mac, and I didn’t like it. I love Tweetie for iPhone, though. Go figure.

Tim and Twitterbucks

So Tim Bray wants to make sure that Twitter stays around, and therefore wants a business model for Twitter. I’d like it to stay around too, which means there has to be a business model for it, but I’m not sure that directly charging people for it is the right model. I don’t have any visibility into Twitter’s economics, but I do have some decent visibility into my usage of the service. All of Tim’s proposals for Twitter are predicated on the notion of wanting to “reach people”. He also cited the classification of Twitter as microblogging, which might be sort of accurate, but which doesn’t capture the whole situation, at least not for me.

My usage of twitter breaks down into several categories:

Reaching people in the sense that Tim means. This breaks down by category into several groups, some overlapping: technologists, photographers. These are tweets of links, facts, ideas and so forth. This is the most blogging/microblogging usage of Twitter

Random spicy commentary about nothing This is just random information about me, the virtual equivalent of the water cooler at work. These tweets add color, but probably are devoid of directly useful information. Alhough you never know how people might use intimate knowledge of your lunch habits.

Social banter One of the twitter tribes that I am in is the local Seattle Flickr tribe. This group is one of the reasons that Facebook became sticky for me, at least for a time. That pretty much stopped when a critical mass of those folks discovered twitter. These tweets are where people are, what they are having for lunch, dinner, etc. They play the role of building a social fabric which is essential for that group to be as successful as it has become.

Social arranging This happens because of the SMS Twitter gateway and accessibility of Twitter via mobile devices. Twitter killed whatever usage I might have had on Dodgeball. When I am at conferences, Twitter has become an essential part of the hallway/after hours track. So much so that this usage will drive me to buy a 3G class web enabled telephone, as soon as Jobs announces it.

So there are many usages besides “reaching people” in a blogging like sense, and it’s not clear to me that some of these usages would continue if Twitter raised the bar by charging for usage. For the social connections part, reducing the ubiquity of the service is a real negative. The value of Twitter would definitely be reduced by cutting out people who couldn’t/wouldn’t afford to pay for it, like starving aspiring photographers.


Live or semi liveblogging conferences has been getting more and more difficult for me to do. The combination of meetings, networking/parties, and photographs means that it takes longer to assemble the requisite material. Here’s a bit on CommunityOne, which took place on Monday.

Many people (mostly Sun folks) have been asking me if this is my first JavaOne. My answer is, “it’s not, but it is my first one in ten years”. It’s been quite some time since I’ve been to a conference run by a big company like Sun (as opposed to an O’Reilly or open-source community conference). Even though the basics are the same, I definitely feel a kind of culture shock. I was asked to be on a panel during the general session, first thing in the morning, in order to get miked up and to run though the flow. Production values are much higher than I am used to. I keep thinking of CommunityOne as a small event, but in reality it is huge. I am told that registration was around 5000 people, which is twice the size of OSCON, which is the largest conference that I’ve been to in the last 4 or 5 years. Some pictures might help with the scale and production values:

CommunityOne 2008

CommunityOne 2008

The panel was on community models, although the content was closer to the edge where companies and open source communities meet/collaborate/fight. I think that I had two or three chances to speak, including the final set of remarks before the close of the panel. I have some more thoughts on that topic, but they are deserving of their own post, so that will be showing up after JavaOne is over.

Probably my favorite thing that happened at CommunityOne was the demonstration of ZFS’s reliability in the face of hardware failures. Sun Fellow Jim Hughes has demonstrated this a few times at Sun Tech days, and I’ve been meaning to write about that. I got to meet Jim before the keynote, and I had a very good seat to observe the hardware failure.

CommunityOne 2008

Jim usually destroys 2 of the drives in the ZFS pool, and it looked like Rich Green (EVP of Software) was going to get to smash the other one, until Jeff Bonwick, the inventor of ZFS, showed up to do the honors himself.

CommunityOne 2008

Smashing things makes for cool demos – you can watch the video replay if you like.. I’ve been paying more attention to ZFS ever since Theo Schlossnagle sat with me and a few other people in a bar at ApacheCon in Atlanta last year. We were talking about the voracious storage needs of photographers, and Theo was really singing the praises of ZFS. There were so important things that happened to ZFS for OpenSolaris 00805 (which was launched at CommunityOne). The most important is that you can now boot off of a ZFS volume. I hope (but don’t know for sure) that the work that made this possible will make it possible for Macs to boot off of a ZFS volume. My photo storage is getting all fragmented, and I could really put ZFS to good use. I suppose that I could build a ZFS storage appliance based on OpenStorage, but at the moment that is more work that I want to do.

I spent much of the rest of CommunityOne at the Redmonk unconference. I was drafted for an impromptu discussion on dynamic and other programming languages, which included a drop in from David Pollak, developer of the very cool lift framework for Scala, and organizer of the Scala liftoff which is happening on Saturday, right after JavaOne. There was also a very active session on Twitter – probably the biggest of the unconference. Jim Jay Evans Edwards from Twitter came along to participate in that one

CommunityOne 2008

I have a bunch more photos from CommunityOne. At the rate that things are going, I will probably just do a single post on JavaOne. There are plenty of other people doing liveblogging, for those who need a bigger information flow.

Update: corrected Jay Edwards’ name. Thanks to @monkchips

Next Stop: CommunityOne/JavaOne

I’ll be in San Francisco for CommunityOne and JavaOne. My schedule is fairly full for CommunityOne, but I am only on the hook for one official program thing during JavaOne. I’ll be around till the end of the Scala liftoff unconference on Saturday the 10th.

The last time I attended JavaOne was when I worked on porting Java to the Newton back in the late 90s, almost 10 years ago. I have no doubt that it will be quite the madhouse. If you’d like to get together, you can leave a comment, or send mail. Once the conference starts, the best way to reach me will likely be direct messaging me on Twitter, since that goes directly to my phone via text messaging. With any luck, this will be my last conference without a modern cellular/wifi handheld device. Bob Lee has posted a good directory of people to watch on Twitter.

On Conferences

Bruce Eckel was unhappy about some things that happened at PyCon and wrote about them. A lot of his concerns are relevant to conferences in general, so I decided to break this into another post. The PyCon one was getting long. The crux of his dissatisfaction was that he felt that sponsors had been given too much access to the conference content (keynotes and lightning talks) in exchange for their sponsorship. I agreed with this and I told Bruce that in person. Frank and I were given a sponsored lightning talk slot, which we used to try to explain our new jobs to the Python community. Having been to PyCon previously it was a bit uncomfortable to be there in a “priority scheduled” slot. No sane company would want to make a bad impression on the attendees of a conference, yet in aggregate, this is precisely what happened this year. Having also talked with some of the organizers during sprint week, I am pretty sure that this will never happen again.

Predictably, there has been a lot of commentary, in response to Bruce’s post. Lots of people are upset for various reasons. Attendees are unhappy for one reason or another, and organizers and volunteers feel that they have worked a thankless task only to be kicked in the teeth.

I am both happy, and unhappy. I love PyCon. I love it even more than ApacheCon, because it has managed to retain more of that volunteer spirit. While there was a production company involved, from what I was able to see, the volunteers are still doing most of the work. I think that this is incredibly important, because no production company can know a community as well as a diverse set of volunteers drawn from the community itself. Without that knowledge, it is very hard to do a good conference.

Even with intimate knowledge of a community things are still complicated. The Python community itself is diverse, and growing. That means that the community is going to have different segments in it. I would be willing to be that there were a lot of people who came to PyCon to kick the tires on Python and it’s associated technologies, or to learn something new after maybe a year or so of programming in Python. Those folks have very different needs from people like Bruce or me. Bruce isn’t really interested in an eyes forward conference, and neither am I for the most part (unless Armin Rigo is going to talk about abstract interpretation o r partial evaluation). But many folks coming to a new topic area are looking for stuff more like tutorials, and introductory talks, which tend to be eyes forward stuff.

The key here is for everyone to have enough choices, and to me, that means that a good conference (not just PyCon) will look something like this.

  • The Hallway track – this just happens
  • Open Spaces for long time community members and/or advanced/specialized topics – this needs modest resources but needs promotion so that people understand how important these are and how to use them. O’Reilly has run OSCamp alongside of OSCON for a few years now, but OSCON is always played up as the major thing. But in today’s day and age, I think those roles probably ought to be inverted.
  • Lightning Talks – I am sad to admit that I want to far too many conferences where I ignored the lightning talks – to my detriment. I think that we owe the Perl folks a rich debt for having come up with the idea. Educating people on the value of lightning talks is good. I’d like to see the lightning talks moved to a more prominent spot, say, earlier in the day. I also think it would be worth soliciting a few people to give a lightning talk.
  • Regular Talks – If you are giving a real/regular talk, then I expect a lot. If you start reading to me about your project, I will be unhappy, because I guarantee you that I can learn more about your open source project by reading your project website during your talk than by listening to you. If I can’t, then there are larger problems a foot. You need to really say something really interesting or unusual in order to give a talk.
  • Keynotes – keynotes either need to be expansive, of incredibly broad interest (like python-3000, which Guido himself said was getting boring to talk about, since it’s been the same talk the last 2-3 years), or very entertaining. Best example of very entertaining would be the end of OSCON keynotes by the guys from WETA digital featuring theretofore unseen footage from the Lord of the Rings movies
  • Tutorials – this is basically old hat, but the people that need them, really need them

Also, for PyCon, we need to keep up the tradition of code. I loved walking down those hallways at GWU and seeing people huddled in pairs over a laptop cranking stuff out. It was amazing this week to walk through the entire downstairs area and see all the sprint labels on the doors.

One other note on conferences. Twitter is it. As usual, there were some difficulties with the PyCon WiFi – first time in a hotel that has never hosted geeks before, so it was inevitable. For those of us not smart enough to bring an EVDO card and router, getting connectivity was tough. The reason I missed that the most was the Twitter backchannel. There was an official pycon twitter feed (a bot, I’d guess), but there was also the backchannel of friends. Here are some real life examples of Twitter in action at PyCon.

  • Bruce Eckel decided to host an open space on concurrency, a topic I am really interested in. The only way that I found out about it was that Dianne Marsh, twittered it to the pycon reflector. I managed to get there in time for some interesting discussion, and to see who else was interested in the topic.
  • During the sprints, Donovan Preston was tweeting things like
  • Compiled nginx with mod_wsgi, so far so good, now to test

    which ultimately goaded me into going down the hall to find out what he was up to.

The value in conferences is all being there together. There are plenty of different ways to structure that time together, each able to serve a different kind of audience. Why not have them all and give people a choice?

Twitter, meet Planet…

So Cote thinks that it’s time for organizations and companies to aggregate Twitter:

In theory, this whole pulse idea could be packaged up to be as easily deployable as ‘planet’ sites. Here, ‘pulse’ is the operational brand-name of aggregating Twitter accounts, where as ‘planet’ is the tried and true operation brand-name of aggregating blogs.

Last time I looked, There was an RSS feed for every person on Twitter, and the code for Planet is available (I’m pointing to Sam’s Venus version). About the only thing missing here is a nice web based UI that lets you put in people’s Twitter user names….

Twitter in Scala

David Pollak shows a simple Twitter clone written in Scala. Last night was our first Bainbridge reading group meeting on Programming Erlang, so this is timely, as Scala’s actor libraries are modeled after Erlang. Also of interest is the use of David’s lift web framework for Scala, which includes ideas lifted from Seaside, Django, Rails and Erlyweb.

More thoughts on Ambient Intimacy and Twitter

After several months of Twitter usage, Leisa Reichelt’s characterization of Twitter as Ambient Intimacy still resonates with me. I have some more thoughts on ambient intimacy in the context of Twitter, and I’m going to take them in the reverse order of the catchphrase.


From dictionary.com:
2. a close, familiar, and usually affectionate or loving personal relationship with another person or group.
3. a close association with or detailed knowledge or deep understanding of a place, subject, period of history, etc.

For me, the intimacy comes from the fact that I choose whose Twitter streams to subscribe to, and the fact that the content that people are putting in their Twitter streams tends toward the more personal. So there’s a technology part (subscribe to people) and a social part, the content of the streams.


From dictionary.com:
1. of the surrounding area or environment:
2. completely surrounding;

It seems to me that the ambience is largely a function of which modality you use to access your Twitter stream.
I run an odd Twittering confguration (at last I think so). My Twitter following is multi-applcation and multi-modal. I have the Jabber Twitterbot in my Adium contact list, I’m running Twitterific, and I use the Twitter web page. My Twitter posting is similarly multimodal, with me using the closest Twitter input box, and also a QuickSilver action. If I use the web page, the degree of ambience is low. I don’t sit there with a Firefox tab focused on the page. Usually I go to the page when I am trying to catch up after being away from the computer for a while. I also used it from my cell phone, since a days worth of tweets would blow my text messaging plan. If the IM bot didn’t die so much, or if Twitterific saved an arbitrary amount of history, I probably wouldn’t use the web page at all. When the IM bot was working, I liked it because it showed the full text of all the tweets. Usually I didn’t care that I got the the tweets in real time, and most of the time it was annoying to have Adium making the event message received sound all the time. The only time where I really cared about getting Tweets in real time was when I was using Twitter as a real time back channel. At the moment I’m relying on Twitterific, but I don’t like the fact that I can only see one tweet or the limited tweet history. It appears that the next version will allow you to see the text of multiple tweets, which would be a big improvement.
Twitter interfaces
In an ideal world, I’d like to have a single app (on my computer, anyway – mobile devices are something else), which would allow me to deal with tweets at a degree of ambience that corresponds to my mental state. I’m not sure that this is possible, although it might be fun to play with some heuristics related to how many messages were received recently, perhaps with some measure of burstiness. That might be interesting or it might turn out to be worthless. I’d like a “shut up for the next 3 hours while I work” type of button — and of course, I want to be able to see what I missed without switching to a different app.

There’s also a set of features unrelated to ambience:

  • Another feature that I’d like is a personal Twitterbuzz, so that I could see what my friends think is important. The problem that I have with a lot of social aggregation sevices (del.icio.us, digg, and so forth) is that someone else controls the group making the recommendations. I’d like a way to specify that group myself.
  • Something else that would be useful is streamlining the situation where I am conversing with someone — it’s a pain typing @name all the time during those moments when you are using Twitter in an IM like fashion. Maybe I’d even want to be able to start an IM or Skype session with that person.
  • Quite often I wish that I could search my Twitter stream. A good client would have a way to do that without forcing me to the web page

A major way that I’ve noticed my computing environment changing over the years is the introduction of more and more ambient data of various kinds. Perhaps there’s more understanding to be had by looking at various technological changes through the lens of ambience…