Getting an RSS feed of a user's Twitter timeline

I like to keep a few Twitter feeds in my RSS reader, but can never remember how to get them from Twitter.

I found "Creating an RSS feed of a users Twitter timeline"...

However, I found there is a simpler method (for now)--replace USERNAME with the twitter name. This probably fails when a user changes names, but for stable usernames, this seems to work:

http://twitter.com/statuses/user_timeline/USERNAME.rss

All Twitter clients are worthless

That was my thought today as I was looking at the wonderfully developed, yet totally worthless, TweetDeck. Tweetdeck is so far my favorite, despite playing with Seesmic Desktop, and sobees bDule.

It seems like everyone has their own Twitter client: there are Excel clients, shell script clients, Perl clients, and many online Twitter interfaces.

What do I want?

  • If I use a new client, I better be able to import my Tweetdeck groups. I've never latched on to any other clients because of this barrier.
  • I don't really want a limit on groups.
  • For every new person I follow, I should be able to have the opportunity to add them to one or more groups as a new follow.
  • I want to thread conversations and/or people's updates.
  • I want a "show less" of this person update.
  • I would be thrilled if it would work on my mobile phone.

The democratization of the news #cnnfail #IranElection

Social Media, especially Twitter, is so much faster than the traditional media channels at spreading the word about hot topics. I've been following @BreakingNews since they used @BreakingNewsOn, and found that I heard about news 1-2 hours before the "breaking news" placeholder showed up on major news sites.

It looks like CNN has demonstrated this point.

ReadWriteWeb posted an article last night @ 11:46 pm: Dear CNN, Please Check Twitter for News About Iran. This morning, it's still a "developing story" on CNN.

At the same time, it looks like CNN is fanning the flames of the protests by posting the "football match" quote as a headline. That does ring like a member of the Iran state media.

Bureaucracy may be good for government. A hierarchical structure may be good for large corporations. However, I would imagine the editorial chain of command prevented timely reporting. Maybe there was too much thought given to being "politically sensitive" to Iran. Either that, or CNN is just *that* unaware of what's going on in the world.

Social media is an enabler for the freedom of speech and of the press. It seems that by contrast, the analysis paralysis of a large news organization is a barrier.

Also: '#CNNFail': Twitterverse slams network's Iran absence | Webware - CNET.

Updated: CNN was outscooped by 9 1/2 hours.

@BreakingNews tweet @ 9:44PM on Jun 12th:

IRAN VOTES -- Iranian president Ahmadinejad wins the presidential election, the official results show

@CNNBrk (CNN Breaking News) tweet @ 7:16 AM on Jun 13th:

Iranian President Mahmoud Ahmadinejad won country's election with 62 percent of vote, government says.

Is the #Twitpocalypse overhyped?

Initially heard through Programmable Web: The Twitpocalypse is Near: Will Your Twitter Client Survive?, twitter is rapidly approaching the maximum for a 32-bit signed int. You can view the countdown here.

This got a also mention at GigaOM: Today, We Think Think Twitter is Dead (for now). While the Twitpocalypse was not the primary topic of the post, it made use of it as a supporting argument:

there is a bug in the Twitter system that would be like Y2K. Apparently each tweet is identified by an integer value and the maximum signed 32-bit integer value for most database applications is 2,147,483,648. And since Twitter is getting so popular, we are inching close to that number.

The implication of the mention here is that Twitter itself will come crashing down. It shouldn't, although many clients might have issues: those written in C (anyone?), those using the default INT in MySQL (which is 32-bit, unsigned) or SQL Server (even 2008).

Interestingly enough, SQLite would only have a problem for INTEGER PRIMARY KEY (32-bit signed int), which could be a problem for TweetDeck, although it doesn't look like status IDs are stored as INTEGER PRIMARY KEY (apparently, it's the only fixed type in SQLite).

Apparently each tweet is identified by an integer value and the maximum signed 32-bit integer value for most database applications is 2,147,483,648.

Also, because I had way too much computer science in college, some technicalities (both articles above made this error):

  • The correct range is [-2147483648,2147483647]. The representation for 2,147,483,648 (0x80000000) would actually be understood as -2147483648 (two's complement).
  • The range for signed 32-bit integer values doesn't change.

Update: Mashable has mentioned that Twitterific, Tweetdeck, Destroy Twitter, and possible Tweetie have experienced issues. It also looks like Tweets are down to 133 per second.

The rampant dismissing of social media

(This was inspired by Jason Fall's post on the Sustainability of Social Media)

What's lost in the dismissing of social media as a fad is the fact that social media is simply an extension, through technology, of what has been around for ages. Determined people have always found a way to connect with others with similar challenges or interests. How long have networking groups and professional societies been around? What about Alcoholics Anonymous or other support groups? The geeks among us have been discussing things on BBS discussion boards pretty much since the modem was invented. On the web, those discussion boards made their way to hobby sites and company sites via phpBB and uBB.

What has changed? Two things:

Technology has drastically lower the barrier to entry for joining one of these groups. You no longer have to configure the modem with the right ATDT string, or walk as a green-faced introvert into a room of people who already know each other. "Following" someone or "friending" someone is so much easier, and less painful. (Even the pain of rejection is significantly lower.)

Secondly, social media has pulled connection groups out of a taxonomic hierarchy and into folksonomy.

Wha?

Think Dewey Decimal or Library of Congress system for cataloguing information. Some "higher authority" decided how information should be organized--a taxonomy. By contrast, everyone's favorite pages on their personal web pages and blogs define the keywords that feed into the page ranking algorithm on Google. Ordinary people create the classification system, and if nothing currently fits, they create another classification system--that's more or less a "folksonomy".

Back to social media. What happens if no one is talking about your favorite topic? You create your own (possibly duplicate) group on Facebook, your own hashtag on Twitter, your own blog, or your own discussion board. Our associations no longer belong to the bureaucracy of "significance". If one person is interested, it's significant. You can now associate yourself with all fans of "Nuts the Squirrel" if you want to.
 

Breaking down Tweetdeck configuration and storage.

I decided to look at the possibility of eventually exporting the configuration data contained in TweetDeck:

You can find the groups, friends, and columns settings in a SQLite database file in a path like:
C:Documents and Settings{USERNAME}Application DataTweetDeckFast.{some hideously long hex string}Local Storetd_{version?}_{twitter username}.db

I used SQLite database browser to look at this file. (I copied it first, of course.) The data storage is pretty simple.

CREATE TABLE columns (cID INTEGER PRIMARY KEY, cName TEXT, cOrder INTEGER, cType INTEGER, cTerm TEXT);
CREATE TABLE friends (fUserID INTEGER PRIMARY KEY, fName TEXT, fScreenName TEXT, fScreenNameHTML TEXT, fLocation TEXT, fDescription TEXT, fProfileImageURL TEXT, fUrl TEXT, fProtected TEXT, fFollowers INTEGER);
CREATE TABLE groups (gID INTEGER PRIMARY KEY, gCID INTEGER, gUserID INTEGER);
CREATE TABLE queue (qID INTEGER PRIMARY KEY, qText TEXT);
CREATE TABLE sinceID (sID INTEGER PRIMARY KEY, sService TEXT, sType TEXT, sTerm TEXT, sTID INTEGER);

The columns table actually defines the groups, group names, and group displays.

The groups table provides the linkage between the columns and friends tables.

There is a preferences_{username}.xml in this same directory as well, for colors, positioning, etc...

Twitter Game #stucksonggame

I think I've just invented a new Twitter game.

Reference a song that will get stuck in people's heads until they expel the demons by listening to the song, or replacing the song with another "catchy" song. When you're caught by a "stuck song", you have to either pass that song on, or replacement song.

Mmm-Bop, everyone.

TwitterThreads.com - what I've been looking for. Almost.


I just searched on "twitter" and "threads" in google. What I found was TwitterThreads.com. Simple, huh?

It's not 100% what I had envisioned: My vision was probably something more like expandable threading by author sorted by date of most recent update. The TwitterThreads version looks like it shows all posts that you'd normally see if you were following someone, but limited to a single day's posts.

This is pretty much what I wanted to build, with a few additional features... Other things I thought of were [+]/[-] Expand/Collapse functionality, an option to configure the number of days shown, and read/unread functionality of some sort.

There is also a mobile TwitterThreads site. On my ancient Treo 650, this is a beautifully elegant and simple interface. It may become my new twitter interface on my phone.

Something both interfaces are missing are direct links to "reply-to" and "favorite" individual tweets. I was also a little disappointed that the timestamp link on each tweet went to the person's home instead of direct linking to the tweet on Twitter. This makes the lack of reply-to and favorite functionality more of an issue for me. If the timestamp had linked to the individual tweet, I could reply-to or favorite through the Twitter web interface.

Overall, I am still thrilled to see that someone has implemented this idea. Like any programmer geek, I would have liked to be the first, but I wouldn't really have made the time to throw something like this together.