Facebook, Themes, Twitter, WordPress

Keyring River: A new WordPress theme to complement Keyring Social Importers

It’s no secret that I use Keyring and Keyring Social Importers to import my activity on third-party services into a WordPress blog. All of my Facebook posts and photos, Twitter updates, foursquare checkins, and Reddit comments and submissions are archived in a single location; this makes it simple to see a snapshot of my online life at any point in time. I’ve even imported my IM chat transcripts from over a decade ago.

I’ve long been searching for the perfect WordPress theme to showcase all of this data. Typical blog themes didn’t work because each “post” needed different styling based on the service it came from, so it was unlikely that I was going to find what I needed already built for me.

But then, I came across an effort by David Hariri to build a non-WordPress lifestreaming product called River. While I’m already committed to using WordPress, his frontend design was exactly what I had been looking for. Luckily, David’s project is open source and MIT-licensed, so I was able to use his design and adapt it to a WordPress theme. With that, I present Keyring River:


Keyring River is a new WordPress theme coded specifically to complement Keyring Social Importers. It’s feature-poor and purposefully so; there are no sidebars, no footers, no menus, no comments — just a search box and a list of activity. For maximum enjoyment, install Jetpack and activate the Infinite Scroll module so that you can scroll infinitely into your online history. See it in action on my example lifestream blog, where I’ve imported my Twitter and Reddit history.

The timestamp on each entry links to the single-item view in WordPress, and the logo links to the item on the service it was originally posted on. Amuse yourself by scrolling back a couple of years, finding an interesting Facebook post, and reviving discussion on it!

Keyring River currently supports posts imported by the following plugins:

…and of course, regular WordPress posts.

Download Keyring River from Github, and let me know if you put it into practice. Taking ownership of your data is important, and more importantly, it’s fun!

Browser Add-ons, HootBar, HootSuite, Mozilla, Mozilla Firefox, Twitter, TwitterBar

TwitterBar is now HootBar

Update: TwitterBar for Firefox was sold to HootSuite and renamed HootBar in March of 2011. TwitterBar for Chrome was discontinued in October of 2012.

My Firefox add-on TwitterBar, the world’s most popular Twitter client for Firefox’s URL bar, has been acquired by HootSuite and has been renamed “HootBar.”

HootBar users now have access to great HootSuite features like the Hootlet: instead of typing “–post” at the end of your tweet, if you type “–hoot”, you can schedule your tweet for later, send your message to networks besides Twitter (like Facebook or LinkedIn), and track stats for link clicks.

The rebranded version of TwitterBar is still awaiting approval by Mozilla, but you can install it manually here. More information on the TwitterBar-to-HootBar change is available at HootSuite’s “TwitterBar to HootBar” transition page.

Browser Add-ons, Mozilla Firefox, Twitter, TwitterBar

TwitterBar 2.9 Available: Post to Multiple Twitter Accounts

Update: TwitterBar for Firefox was sold to HootSuite and renamed HootBar in March of 2011. TwitterBar for Chrome was discontinued in October of 2012.

Version 2.9 of TwitterBar for Firefox was made available on Mozilla Add-ons today, and it has a very cool new feature: you can now use TwitterBar with more than one Twitter account.

To post to a specific account, just type your message like this:

I am posting to my other account. –@other_account –post

If you haven’t yet authorized TwitterBar for @other_account, you’ll be walked through the authorization process.

If you’ve authorized more than one account, and you don’t specify which account you want to post to, you’ll be given a list of choices:

You can manage your accounts from the TwitterBar options (just type “–options”).

Finally, to authorize a new account without posting to it, just type “–account” in the URL bar.

To install this new version of TwitterBar, download it from Mozilla Add-ons.

The next obvious step is the ability to post to multiple accounts simultaneously, and the next version of TwitterBar will offer than feature. If you’d like to beta-test that update, e-mail me and let me know.

Browser Add-ons, Mozilla, Mozilla Firefox, Twitter, Twitter Filter

Extending the Web, not just the browser, with Twitter Filter

One of the things that annoys me about Twitter is the constant “check-ins” from location apps like foursquare and Gowalla. Since I don’t use these apps, I don’t especially care that you’re at the Starbucks in Dallas or that you’re the mayor of your bus stop.

Foursquare checkins on Twitter

To solve this problem, I wrote a browser add-on called Twitter Filter. It adds a little “X” next to the source of each Twitter status update; if you click that X, you will never see updates from that source again (at least not on the Twitter website):

8 minutes ago from foursquare (X)

The sources you’ve blocked are listed in Twitter’s right sidebar so that you can easily unblock them:

Blocked Sources: foursquare, Gowalla

That’s all there is to Twitter Filter, and it’s a new type of browser add-on for me. It has options, but no options dialogs. There’s no toolbar button, no browser sidebar – everything related to the add-on is controlled via the Twitter Web interface, so it’s not so much an extension of the browser but rather an extension of Twitter itself. Go ahead and install it on a friend’s computer and convince them that Twitter added the feature – it’ll be fun! Be sure to come back and recount your grand prank in the comments below.

Browser Add-ons, Twitter, TwitterBar

TwitterBar 2.4, Now With 2% Longer Tweets

Update: TwitterBar for Firefox was sold to HootSuite and renamed HootBar in March of 2011. TwitterBar for Chrome was discontinued in October of 2012.

TwitterBar 2.4 was released this morning, and the main change is that it now integrates the URL shortening service tweak.tk. The URLs that .tk generates are the shortest you can get, weighing in at 15 characters; TwitterBar’s previous URL shortener, is.gd, generated 18-character URLs.

What does this mean? Well, now when you post a URL to Twitter with TwitterBar, you have 125 characters for your message instead of 122. So feel free to toss an extra LOL or BRB in there; you’ve got plenty of room.

Browser Add-ons, Mozilla, Mozilla Firefox, OAuth, Twitter, TwitterBar

TwitterBar updated with OAuth, shorter URLs

Update: TwitterBar for Firefox was sold to HootSuite and renamed HootBar in March of 2011. TwitterBar for Chrome was discontinued in October of 2012.

Everyone’s favorite tool for posting to Twitter from your Firefox address bar (TwitterBar) has been updated to version 2.0. Changes in this version include:

  • URL shortening
    • Long URLs are now shortened by http://is.gd/ before being sent to Twitter. is.gd offers the shortest URLs around, so you have more room in your tweet for your words. (TwitterBar’s character counter takes into account the fact that all of your URLs will only be 18 characters long when they’re posted, so you always know exactly how much room you have left to tweet.)
  • Support for OAuth.
    • OAuth is basically a way to allow applications (like TwitterBar) to act on your behalf (update your status) without having to disclose your Twitter password to the application. So it’s safer for you, since you don’t have to worry about malicious programmers stealing your usernames and passwords, since you never gave them out. After you upgrade to this version of TwitterBar, you’ll have to authorize it once, but then you’ll never have to do it again.
  • Bug fixes and code cleanup
    • These are good!

You can download TwitterBar from Mozilla Add-ons (for free!), or you can wait for Firefox to automatically notify you of the update. (By the way, if you want to connect with me on Twitter, I’m @cfinke.)

Programming, Python, Twitter

Retweeting in Python

My friend Eliot has been running a retweet bot named @SanMo for some time that is designed to serve Twitter users in the Santa Monica, California area by allowing them to broadcast tweets to other Santa Monica-area users without explicitly friending them. He wrote up the full details of the service and the script behind it on his blog, and after reading about it, I wanted to start a similar service for Twitterers in my immediate vicinity.

After grabbing a copy of the code running @SanMo, (it’s the same Perl script created to power @lotd, available here), I quickly decided that I would rather write my own, for three reasons:

  • Strike 1: It was written in Perl.
  • Strike 2: It didn’t implement a feature that links the retweet to the original tweet.
  • Strike 3: It required MySQL – a bit much for simple bot.
  • Bonus Strike 4: It was written in Perl.

I sought out to write a lightweight script that would accomplish the same end goal (republishing tweets directed at a given account), and I’m happy to say that it’s finished: retweet.py has been running smoothly for the past few weeks behind the Twitter account SWMetro, a service for Twitter users in the southwest metro area of the Twin Cities.

It’s 40 lines of Python (if you omit blank lines and comments), and you can grab a copy of it from here. It uses SQLite for storage (which you should already have installed if you have Python installed), and it utilizes the great python-twitter library from Dewitt Clinton of Google. (Make sure you get the latest version for trunk; you’ll need simplejson as well, as python-twitter requires it.)

Just download the script and replace “username” and “password” at the top with your account credentials. (You can manage multiple accounts by adding another username/password pair to the ACCOUNTS variable.) Change the DB_PATH variable to point to the directory where you’ll keep your SQLite databases, and then add this to your crontab:

*/2 * * * * python /full/path/to/retweet.py

The script will run every other minute, republishing any tweets that start with “@username”, where “username” is the value you gave the USER variable. The only thing it stores in the SQLite database are the status id’s of the tweets it republishes, and it links each retweet to the original message being republished. If the new message is longer than 140 characters, it chops words off of the end, replacing them with “…” until it’s under the 140 character limit.

If you’re using this script to replace an existing retweet bot, you can supply it with the status id of the last message it re-published so that you don’t end up republishing a bunch of old tweets. To do that, just run it once like this:

$ python retweet.py 12345

where 12345 is the status id of the last message your existing bot published.

Feel free to download retweet.py and use it for your own purposes. All I ask is that if you make an improvement (or start up a new service with it), take a minute and mention it in the comments below.

Update: Some people have had to use the full path to Python (version 2.5 or greater) in their crontab to get retweet.py working properly.

Update: Retweet.py has been updated to ensure it keeps working as intended after Twitter started categorizing all tweets that contain a username as replies, not just ones that start with the username. Grab the updated version here.