Category Archives: internet

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.

Lifestreaming, round 2

Macintosh

MRR Software has released a beta of Syrinx 2.0 just in time for PyCon this week (or ApacheCon EU or EclipseCon, if you are at one of those events). My biggest complaint with Syrinx 1.0 was that it was using up a lot of memory and CPU. That’s totally fixed in Syrinx 2.0. I’ve left Syrinx running for over a day with very little discernable growth in memory. I used to have to restart it several times a day. Scrolling and searching are both much faster as well. Retweet and URL shortening have been added, which pretty much takes care of me featurewise, although I’d like a retweet button in the button bar of a tweet, and I’d prefer bit.ly as the URL shortening service. Minor complaints to be sure. The last UI issue for me is that Syrinx 2.0 now expands the current tweet from it’s slightly compressed list element version. This is a problem for tweets that contain links (the best kind), because you have to click once to zoom the tweet, and then click again to open the link. I know that MRR is working on this one.

iPhone

Several week ago I also switch my iPhone client from Twitterific to Tweetie. I love everything about Tweetie except for 2 things:

1. Tweetie goes to the network all the time. This wouldn’t be a problem if iPhone latency was just a bit better.

2. I don’t like the way the Tweetie segments replies and direct messages. I like having tabs to see just those things, but I don’t like it that they no longer appear in the main view. Syrinx is doing it the way that I prefer.

My favorite features about Tweetie are:

1. Network lag aside, Tweetie is speedy.

2. The swipe actions, particularly favorites – I now favorite a lot more. This saves me from losing tweets with interesting links when I am in a hurry. I fave them on the phone and then read the faves from the desktop.

3. Instapaper support. I’m glad this is here, but I use it less than I thought I would, because of favorites

4. The landscape mode keyboard – This is taking some getting used to, but it’s good practice for iPhone 3.0

5. Ability to say how many tweets to load – good for making sure you don’t miss anything

6. Retweeting – too bad it doesn’t fit in the swipe bars.

There’s still no direct message rolodex, something that I am sure I will be wishing for this week at PyCon.   

At least I’ll be well armed for the next few months, where I’ll be at a number of conferences.

LinkedIn tips for job seekers

After this past week, a lot of people are looking for work.   LinkedIn is a hugely valuable tool when you are in this situation.

You need a good profile

When I did my job search about a year ago, I hardly sent out any resumes – all the relevant information was in my LinkedIn profile. In January of 2007, Guy Kawasaki wrote a must read post on improving your profile. More and more people are using LinkedIn, so you need all the help you can get to make your profile stand out.

You need a high quality network

I think that it is very important to protect the quality of your LinkedIn network. Early on in my LinkedIn usage, I someone I didn’t really know asked me to introduce/recommend them to someone I knew fairly well. It was a very uncomfortable solution. In order for LinkedIn to provide the maximum value, you need to feel that you can actually make recommendations across your network. This is one place where the game of “how many contacts do I have” can backfire. Save the contacts game for Facebook or Twitter.

You should use LinkedIn to reverse screen

Normally job seekers have very little information about those who might interview them. No longer. When you are contacted by a recruiter or a company, you can use LinkedIn as a way to screen the person contacting you. You can do this when recruiters or hiring managers contact you — you should read their profile to help you decide whether to proceed. You should definitely read the profile (as well as any other information, like blogs) of a hiring manager before an in person interview. When I did hiring as a manager, I was always impressed (once I got used to it) when a candidate demonstrated that they had read my blog or profile.


Lifestreaming clients

I have usernames on most of the major lifestreaming services (Twitter, FriendFeed, identi.ca, and so on). For a variety of reasons, I really only use Twitter, and the only way that Twitter is useful / manageable for me is the existence of rich client side applications.

Mac OS X

For some time, I’ve been using Craig Hockenberry’s excellent Twitterific. I liked the UI, and the feature set was good. From time to time, I would try the Adobe AIR based twhirl, which had the virtue of also being a FriendFeed and identi.ca client. Unfortunately, I could never keep twhirl because of a bug in AIR 1.1 that caused clicked URLs to open in a new Firefox window instead of a new tab. That bug was fixed in this weeks AIR 1.5 release, so I gave twhirl another try earlier this week. I liked having FriendFeed and identi.ca up (having identi.ca up meant that I saw Allison Randall’s messages about the Parrot Developer summit and their new release schedule). I didn’t like having a window for each service — I don’t care about keeping it separate, and I’m still having some trouble finding a theme that works for my aging eyes. Twhirl also doesn’t seem to remember window positions between runs, which makes the multiple windows even more of a pain. I also miss seeing people’s “real names” and the Growl notifications that I was getting from Twitterific. I put twhirl back on the shelf, but will probably come back to it again.

A week or two ago, I discovered Syrinx, which is a Twitter only client. There were a few things that persuaded me to try it out. The ability to set a bookmark at some point in the message stream and then go back to it. This seems to work better for my style of reading than individual read/unread markers on each Tweet. The keyboard shortcut means that I can jump right to where I left off, which is nice. Syrinx also lets you search the stream, which is useful. I follow enough people that searching is useful. I was also (incorrectly) under the impression that Syrinx would save a slice of the message stream locally, which would be a nicety. I can page backwards on the Twitter site, but that way lies pain. Syrinx has a way of tracking twitter “conversations” and finding the supposedly relevant tweets and presenting them. I like this idea, I just wish it wouldn’t take over the main message stream window in order to show it. The biggest problem with Syrinx is that there something awfully bloated in there, which means that after some time, the app is eating memory and slowing down. Which means you have to restart it, which means you have to catch up first. MRR, the author of Syrinx, knows that this is a problem and is working on a solution. I hope that won’t take a long time.

Because of the AIR 1.5 release I also tried TweetDeck this week. I tried it, and there were some interesting features. I liked the ability to make my own groups of people – but Twitter should be supporting that. I also liked the way that replies and direct messages could be in their own column – I really liked that, actually. I liked the idea of TwitScoop, but what I’d really like would be a TwitScoop of my Twitter network – that would be cool. TweetDeck was great when I put it on my 30″ main display. You can see lots of stuff and quickly see if there is anything useful. Unfortunately, I’m not willing to dedicate that much screen real estate — whatever client I use has to live (and share) on the “outboard” main LCD of the MacBook Pro.

iPhone

When I got my iPhone, I started using Twinkle. There pretty much wasn’t anything else, and I sort of liked the idea of having some kind of location awareness of people using the service. Turns out that very few people that I know use the Twinkle location stuff, and I’ve pretty much switched to using Brightkite for that kind of thing, and even there, the jury is out. User interface wise, I like the fact that it colors replies and direct messages differently — it makes them much easier to pick out. I don’t like that I have to tap on a tweet containing a link in order to open the link.

I’ve since switched to using the iPhone version of Twitterific. I don’t have to tap on tweets to follow links, and Twitterific is pretty good about storing a decent number of tweets on the phone. I can usually take a 2 hour plane flight and not have missed much when I land on the other side. I’d love to not miss anything at all. One annoyance is that Twitterific for iPhone doesn’t remember the last tweet that I was looking at very well, so I end up doing a lot more scrolling than I should have to.

Wish List

Here’s a consolidation of the some of the things that I think are important in rich clients for Twitter and services like it.

  • Good management of windows – I don’t want a window for each service – I want one big stream.
  • Good visual design that easily lets you differentiate between different kinds of messages (tweets/replies/direct messages). Make links easy to see and follow.
  • Keep a local, searchable, history of messages.
  • Provide a good, low maintenance way for me to keep my place in a busy stream.
  • Give me a way to follow conversations (chains of replies). I would be happy to have a menu for this.
  • Integrate some of the third party services that are springing up, like TwitScoop.

On the mobile side, there is one feature that I would consider killer.

I want a “direct message” rolodex. There are people who I want to direct message on a frequent basis. I don’t remember everybody’s twitter user name – that’s what computers are for. I want a “picker” that contains a “speed direct message” list. That would be awesome.

This is one space where rich/desktop applications are by no means dead.

Get Windmill

If you are working on web/AJAX based user interfaces, you owe it to yourself to go and check out the Windmill web testing framework/tool. Windmill was originally developed at OSAF for testing the very AJAXy web front end of Chandler Server. Adam Christian and Mikeal Rogers, the core developers of Windmill, have gone on to other efforts, but Windmill lives on. In fact, this summer, Adam was fortunate enough to land a job where he is able to spend significant amounts of time working on Windmill. That effort has paid off with the latest version of Windmill, which should be ready for serious use. It’s got a bunch of cool features, including nice integration with Firebug Lite.

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.

The Open Screen project

Around this time last year, Adobe open sourced its Flex framework for rich internet applications. Today Adobe announced the Open Screen project, which encompasses a number of things, probably most importantly, the removal of the license restrictions on the SWF file format used by Flash. The other aspects of the announcement relate to Adobe’s Flash Player, and while they are steps towards openness, Adobe’s player will remain closed. The importance of opening Adobe’s player has decreased because dropping the file format licensing should make things easier for the Gnash folks. The worry then is that we’ll end up with incompatible versions of Flash, which is in almost nobody’s interest. That’s probably the next problem that needs addressing.

Google Contacts and CardDAV

Earlier this week Mark Nottingham wrote about CardDAV and DAV based protocols:

All of this led me to mutter ‘DAV WTF?’ at the IETF APPS Architecture Workshop the other week. Do we really need to give folks the opportunity to mint more application-specific methods and headers?

Interestingly, Lisa Dusseault — one of the core folks in the DAV world — blogged about this the other day;

Were I to propose CalDAV today it would probably be CalAtom — some things would be easier, some harder, but it would catch a wave instead of drifting in the tail of something that was never much of a popular wave. Oh well, we needed something then, and WebDAV gave the most leverage at the time.

I gave a big sigh of relief when I read that, and I hope that the CardDAV folks take this to heart. Some parts of WebDAV (e.g., properties; see Yaron and Larry on this) deserve to be taken out back and shot — although, as Lisa says, they were necessary because of the state of the art at the time. That doesn’t mean we can’t do better now.

Almost as if in answer, yesterday Google announced the release of the Contacts API, which is AtomPub/GData based. Unlike CardDAV, it’s not based on vCard, which is both a blessing and a curse, since lots of popular contact systems (like the Mac address book) know how to export vCard information, and because vCard provides a very rich model for information about people. I’m not sure whether this is progress or not.

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….

Prism App for Photophlow

I’ve been using Photophlow a fair amount over the last few days – It’s been pretty fun, although the real value will come if we manage to use it for shoot planning or review, which hasn’t happened yet.

One thing that I’ve noticed is that having Photophlow open in a browser while I’ve got other webapps running tends to make the overall experience a bit less nicer. So taking a page from Travis Vachon, I created a Prism (Webrunner) application for Photophlow. This lets you run Photophlow as a standalone application, in a container which is essentially a custom version of Firefox. You can get the webapp here. You will also need a copy of Prism to make this work.