Announcing VeloTweets, Pulse of the Peloton

Posted by Luke Francl
on Sunday, May 10

I’m pleased to announce VeloTweets, the pulse of the peloton, a curated collection of professional cycling Twitter activity. The idea and driving force came from Jamie Thingelstad. I did most of the development, and Norm Orstad designed the site. Chris Hatch helped a lot on the back end, providing a list of cyclists on Twitter, filling out profiles and affiliations, and doing research.

What’s Different about VeloTweets?

We wanted to make VeloTweets different than the other subject matter aggregators out there. We wanted a hook that would combine the immediacy of Twitter with pro cycling in a compelling way.

Here’s what we came up with.

First, we focused on who to include. Instead of everyone who’s talking about cycling, this contains only pro cyclists (and a few others associated with the sport, like managers or team mechanics).

Second, we extended the data that is given to us by Twitter. We can enter every cyclist’s real name, nationality, and team, as well as expanded biographical data (here’s Lance Armstrong’s profile for instance).

Third, we collected cycling events in a calendar that’s displayed on the site, and added a Message of the Day that’s tuned to what’s happening in the racing world each day.

Forth, we brought in photos from the tweets (only TwitPic is supported right now). We store references to the photos in our DB so we can show the latest photos, along with photos that individuals have posted, and all of them. This turns out to be really cool because where else are you going to see photos like this one as they happen?

After all this we still weren’t totally satisfied with what we’d come up with, because it still looked too much like Twitter (long list of messages in reverse chronological order). Then Jamie came up with the idea of only displaying each cyclist’s most recent tweet in a grid. We really like how this works because people who tweet a lot (like Lance) don’t dominate the page. It gives you an overview of what the whole peloton is talking about without letting a few people dominate it.

Behind the scenes

This application uses Rails 2.3, the Suspenders base app, make_resourceful, semantic_form_builder and the excellent HTTPClient library for interacting with Twitter (give up on net/http – it is full of fail).

Twitter API access is done directly with JSON. We pull the friends_timeline and insert those tweets into the database.

Developing for Twitter

I’ve been doing a number of Twitter-related projects lately. The first was Twistr, which combines Twitter and Flickr LOLcat style for occasionally amusing results. Then Barry Hess and I built Follow Cost, which tells you how much someone tweets before you follow them. I created a prototype for FanChatter’s next product based on Twitter conversation aggregation. Now comes VeloTweets and another project that’s not public yet.

I really enjoy working with the Twitter APIs. It’s fun to develop applications that utilize the platform that the Twitter folks have built.

On that front, I recently received a copy of Twitter API: Up and Running (Follow Cost is mentioned on page 70!) which I will give a full review to soon. You don’t need a book on the Twitter API to develop applications for it, but it does provide some ideas and a useful reference, as well as details on some interesting aspects of Twitter (for example, I did not know that direct messages disappear if they are deleted by either party.).

iPhone as conference computer

Posted by Luke Francl
on Tuesday, November 18

I recently joined the cool kids and got an iPhone. As mentioned Jon and I are going to Voices that Matter: Professional Ruby Conference (or as I like to call it, Ruby that Matters) as guests of Pearson Education. Except at this conference, I am not going to bring my computer, just my iPhone.

Ruby that Matters

I think computers actually take away from the conference experience. They are heavy and distracting and you gotta baby sit the stupid thing all the time. The two redeeming qualities are that you can kill time if a session is boring, and you can hack code. Well, if the session is boring, instead of reading blogs, I’m going to leave. And if I want to hack, I’ll do some pair programming.

I’ll be taking notes in my trusty Moleskin as well as tweeting interesting bits using my iPhone. If you want to keep up with that, follow @lof on Twitter.

Update: So how’d it go?

I liked not having to lug around my computer—this is the lightest I’ve ever packed for a conference. Getting through airport security was a breeze.

I was able to tweet sporadic observations and I picked up a few new followers (hi!). I was also able to keep up on my email which was nice because I had some work stuff that needed attention.

There were two problems:

  1. MobileSafari crashes constantly. It drives me nuts.
  2. The iPhone 3G’s battery life is not long enough to stand all-day internet usage.

follow cost: what a day!

Posted by Luke Francl
on Monday, October 13

Whew. It’s been a crazy day.

Barry and I launched follow cost this morning with a blog post here and at his blog—and of course, we tweeted it.

Despite some problems (which we later figured out was our site getting rate limited by Twitter) the site really took off.

We had requests to sponsor the site within minutes.

By 2 PM we were on valleywag (though without a link. Thanks guys!)

This evening, Scoble tweeted about the site which lead to a blizzard of requests. I’ve got to say he has a great sense of humor about the whole milliscoble thing!

And now, we’ve signed up our first sponsor: Peter Cooper and Dan Grigsby’s (friend of the site) new mobile development blog Mobile Orchard.

Whew. Making something that goes viral is fun, but it’s a lot of work!

Announcing follow cost: Is that Twitter celebrity worth the pain?

Posted by Luke Francl
on Monday, October 13

Have you ever wondered if it was worth following someone on Twitter?

Now you have another tool to help you make that decision: follow cost. Give follow cost a Twitter user name and it will calculate how often they tweet on average. As a yard stick, follow cost uses the milliscoble, defined as 1/1000th of the average daily Twitter output of Robert Scoble. As an example, here’s my follow cost (currently, 133 milliscobles).

There’s even a bookmarklet you can use when viewing a Twitter profile.

We’ve got some neat features planned for the future, but to do them, we need better hosting. So we’re looking for a sponsor. Contact me if you’re interested.

Building follow cost

I built follow cost with my friend (and Harvest developer) Barry Hess. The idea for a service “to tell you how annoying someone would be to follow on Twitter” was hatched on our road trip to Windy City Rails a few weeks ago. (Fourteen hours in a van with 6 programmers is a long, long time.)

Barry and I decided that we wanted to do something a little different than the traditional Rails project.

We chose to use Sinatra. Sinatra was perfect for this project. It has very few dependencies. The routing is explicit and an integral part of your app. The app itself has only a few pages and doesn’t use a database. Really, anything else would be overkill.

We also decided to use jQuery for JavaScript, since neither of us had tried it before. It worked well, I can see why people like it.

To actually power the application, we call the Twitter API (using REXML) and the Twitter Search API (using JSON).

To keep things snappy, we implemented a page caching system for Sinatra that works very similarly to Twistr’s, which I described earlier.

Deployment was handled with Passenger and Rack based on these instructions.

Twistr: Twitter + Flickr = LOLs?

Posted by Luke Francl
on Monday, September 08

Eric Chapweske and I are pleased to announce Twistr, the mashup than answers the question: what happens when you combine Twitter messages with Flickr photos?

The results are frequently nonsensical or downright stupid. But sometimes they are simply sublime:

twistr photo

Check out the site and vote for your favorites. The cream should rise to the top.

Twistr is powered by the Twitter Search API (using JSON), and the Flickr API using flickr_fu. The photos are mashed up using ImageMagick. The photos themselves are all Creative Commons Attribution licensed, which makes this possible. Thanks photographers!

I’ve wanted to create a mashup for a while, and Twistr was inspired by Twistori, Oh My Science, and Get Hoffed. The site is hosted on Dreamhost with Phusion Passenger (which is a story in itself).

Since creating Twistr, I’ve since come across a couple of other similar projects. LOLCanvas is a bookmarklet that will LOLify any Flickr image with a random message. Meanwhile flolcatr is almost the exact same idea, but they don’t say where they get the text from.