A few people have been asking about how we live-blogged the Global Mobile Internet Conference last week, so I thought I’d share a little. I toyed with TextMate Snippets last year and I thought that this GMIC live-blog might be another case where I could use it.
Spoilers: Here are the end results> Live-blog day 1 | Live-blog day 2
Here’s what I wanted to do starting out:
- Have anchor links (or Winerlinks) for each update, each with a unique timestamp
- Provide a ‘Tweet This’ option after quotable quotes
On day 1, I used the following TextMate Snippets (read: keyboard shortcuts that produce long reusable strings of text) to achieve those two requirements.
For the anchor links:

This string appears when I type ‘t+[TAB].’ Then when I type the timestamp in the ‘1:enumerate’ area, the other two instances of ‘$1’ are filled in simultaneously, and then I press
to skip to the ‘$0’ placemark. Ta-da! Anchor links achievement unlocked!(Possible improvement: ISO time?)
For the ‘Tweet This’ link I type ‘w+[TAB]‘ to insert the following string, which is just a Twitter status link tacked onto my anchor link snippet. When I write the live blog content (in the ’2:enumerate’ area, it gets mirrored and types into the Twitter status link. Cool! Note that there’s another ‘$1’ at the end of the URL to link directly to the anchor tag. Now we can send the link to this particular live blog update to Twitter. (and the peasants rejoice!)

Yes, I had to determine our live-blog URL before it was actually published, but that’s easy enough. The problem here lies in having a Twitter status link that includes a Penn-Olson URL with hashtag. It just won’t work (i.e. paste it into the browser and it doesn’t fill out the Tweet for you).
My first thought was to convert the Penn Olson link to a bit.ly link using the bit.ly TextMate bundle. It shortened the Penn-Olson link alright, but it stripped out the hashtag. By the time the conference rolled around, I just decided to do it manually (*high-school flashbacks*) by shrinking the links in my Echofon Twitter client. This did not strip out the hashtags.
So the live-blog worked. I even had time to put up a table of contents at the beginning, an ordered list of speaker links jumping to the corresponding updates below. I could post to the WordPress blog directly from TextMate too thanks to the blogging bundle. Although I did have to jump into WordPress and manually add photos later. I’m not THAT slick with TextMate just yet.
But still, this was far from the elegant solution that I wanted. The manual link shrinking was taking away from my time of taking notes and photographing the GMIC speeches.
For the second day of talks I decided to only use a single ‘tweet this’ link in the subheading for each talk. It wasn’t exactly what I wanted, but it would give me more time to devote to note-taking. I knew who would be talking, so I prepped a few subheadings beforehand and managed to take a lot more notes than I had on the previous day. The second day results turned out pretty good.
A friend of mine suggested that the WordPress Live-Blog plugin may be a good solution too, although I’m a little bit averse to using to whimsically installing plugins. Nonetheless I am curious to see whether I could implement the format above by changing the plugin’s template to the following:
![]()
where DATE is the time, preferably no spaces or colons.
For ‘tweet this,’ I could experiment with:

I’ve not tested this, but I’m eager to give it a try.
Anyway, I’m not just sharing this just because I’m in a sharing mood. I’d like to know if there are any TextMate pros out there who might have a better plan of attack. I’m a HUGE fan of Brett Terpstra from my days over at TUAW, and I’m sure he could tackle this with his eyes closed.
For those interested, grab the code over on github (I hear that’s where the cool kids put their code) and let me know if you have suggestions.
Note: Don’t infer from my use of TextMate that I’m a programmer, I’m just a writer who’s fed up with MS Word as a Word Processor. This stuff is way more fun. Hat tip to Takaaki for the initial recommendation.


RECENT COMMENTS
Recent Comments