Using Twitter’s Lead-Gen Card to Recruit Beta Testers

It turns out that it’s pretty easy to co-opt Twitter’s Lead Generation card for anything where you want to gather a bunch of e-mail addresses from your Twitter community. I was looking for people willing to alpha test a little side project of mine, and it worked great and didn’t cost anything.

The tweet itself:

I created it pretty easily:

  1. First, go to, log in, and go to “creatives”, then “cards”.
  2. Click “Create Lead Generation Card”. It’s a big blue button.
  3. You can include a title and a short description. Curiously, you can also include a 600px by 150px image. This seems like an opportunity to say a bit more about what you’re doing.
  4. You do have to set up a privacy policy URL. I used a simple google doc.
  5. You also need to configure a fallback URL, which is where people will go if they don’t have a Twitter client capable of the one-click signup. I used a Google form, which let people give me their e-mail addresses directly.

And that’s it! Tweet enthusiastically, then wait patiently, because if you don’t integrate your Twitter card with your CRM, you have to wait ~24 hours for the download link to appear in the Twitter cards manager. The resulting CSV looks like this:

Timestamp,User id,Name,Twitter handle,Email
2013-12-12T23:36:05,774485611,Robots Rule,RobotzRule,

A little bit of awk later and I had a list of e-mails ready to go. I ended up getting 49 responses through the Google form and 197 through the Twitter card. It was easy and I’ll definitely do this next time I need to collect people’s e-mail addresses for a project.

Speaking: Title Slides + Twitter = You Win

Your title slide should focus on the title of the talk. It should also include your name and affiliation, your logo if you have a cute one, possibly your blog or e-mail address if you want people to get in touch, and your twitter handle.

Here’s one of mine:


I usually mention that the beginning of the talk that if people have questions they can tweet them at me. This isn’t just because Twitter is a great way to get questions from people too shy to speak up (or who don’t get an opportunity). Here’s the hack: letting people know that you’ll be reading everything they say about your talk on Twitter makes them more likely to say nice things.

Further, in a multi-track conference, people who weren’t actually in your talk (or were there but not paying a lot of attention) will judge your talk based on what people on Twitter say about it. Get a few good tweets, and you’ve created the wide perception that you’ve given a good talk.

Of course, it helps to actually give a good talk. More on that soon.

This article is part of my series of speaking hacks for introverts and nerds. Read about the motivation here.

Twitter Succeeds Because it Fails

How can twitter be so popular and successful if it’s down all the time?

We base statements like this on the assumption that quality of a web application maps linearly to the application’s stability. This is obviously true for most sites most of the time, but things get interesting at the edge where rare, unpredictable failure actually enables more complex human interactions around the service.

Unlike e-mail, twitter etiquette doesn’t demand that you read or reply to every message from every person you follow (or who follows you). Combine that lightweight social touch with occasional technical issues and human communication patterns, and we start to see some interesting behavior.

Twitter’s lack of reliability as a platform allows us to use the technical failings to mask our own social imperfections. How often have you heard or said something like “I was sure I was following you” or “I must not have gotten that DM” or even “I think I tweeted that…”? Even just a small percent of users behaving this way changes the social expectations.

I’d love to construct an experiment to figure out whether this idea has merit, and if so, what the optimal amount of unavailable operations for social deniability is. Should 1 in 100 actions fail? 1 in 10,000? 1 in 1,000,000? Does it matter if any fail, as long as we believe that every so often failure occurs? (How often do things really get lost in the mail, anyway?)

It’s amusing to conceive of a system that succeeds socially because it often fails technically.

A quick twitter bot, @bc_l

Several months ago, on a whim inspired by an off-hand comment from Chris, I created a bot to bring the wonders of the Unix bc language to twitter.

bc is a command-line calculator that’s fast and has the capacity to do some fairly complex math.

Try it out on the command line:

echo '100 / 10' | bc -l

…Or by sending a direct message to bc_l (if you follow bc_l it will follow you back within a few hours).

I released the code under GPL, and it’s available on github:

John Cook mentions the bot and makes some great observations in his post three surprises with bc.

My NYC Python Meetup Presentation: Practical Data Analysis in Python

I gave a talk at the NYC Python Meetup on July 29 on Practical Data Analysis in Python.

I tend to use my slides for visual representations of the concepts I’m discussing, so there’s a lot of content that was in the presentation that you unfortunately won’t see here.

The talk starts with the immense opportunities for knowledge derived from data. I spent some time showing data systems ‘in the wild’ along with the appropriate algorithmic vocabulary (for example,‘s ‘books you might like’ feature is a recommender system).

Once we can describe the problems properly, we can look for tools, and Python has many! Finally, in the fun part of the presentation, I demoed working code that uses NLTK to build a Twitter spam filter with 90% accuracy*.

Please let me know if you have questions or comments.

* I’ll post the code and training data shortly

Twitter: A greasemonkey script to show who follows you

A couple of days ago I saw @skap5’s comment:

“Dear Twitter Is it too much to ask to add a follower marker so I can know if someone is following me and not just if I am following them?”

I think that Twitter could benefit from displaying more information on the home page, and this idea was easy enough to code up. It should save some time and make the Twitter homepage that much more useful.

twitter_showfollowers_screenshotThe script displays a tiny icon on top of the portrait of people who are following you back on your Twitter home page. It leaves your non-followers alone, though it would be easy enough to develop a version that puts silly mustaches on them.

This is only a first version, and I welcome your comments and suggestions.

If you already have Greasemonkey installed, get the script here, or install it from here as a Firefox extension thanks to the script compiler.

The icon is a free icon courtesy of famfamfam.

Updated February 5, 2009: The script has been updated to work with Twitter’s recent UI changes.

Updated March 31, 2009: The script has been updated to account for Twitter’s recent UI changes and the addition of AJAX updates.

Following a group of Twitterers without exhausting SMS

I’m at SXSW, and I want an ability to see the latest Tweets from the group of Twitterers that I follow who are here in the area. I also have a limited number of text messages on my phone (1500, but still).

I coded up a quick app that allows you to great a group of twitterers and see their latest tweet on a mobile-friend page. Check it out.

Comments are welcome!

Create a group Twitter account

Twitter rocks. It’s useful for all kinds of things, but especially for chronicling a live event as it happens, including the pre-event discussion and post-conference wrapup.

We’re very excited to be hosting NewB Camp here in Providence, RI on February 23rd. In preparation for the event, Sara created a NewBCamp Twitter account and I coded up this quick script to pull in all tweets related to the conference.

It examines all of your followers tweets for a particular phrase or tag, and then reposts those tweets containing the tag to its own timeline with the author’s name prepended. I’m running this as a cron job on my hosting account. You can see it in action here.

This is a quick hack. It has a couple of issue that I’m aware of:

  • Someone has to log in and manually add followers.
  • The Twitter API only returns the previous 20 friends posts, and it’s possible we might miss some if we have so many friends that the post rate exceeds 20/50 secs (our permitted API request rate).

I do hope that you find this useful for creating your own Twitter event monitor!

include("twitter.php"); // Twitter API class
// Available:

// configurable options
$twitter_user = "newbcamp"; // Twitter username
$twitter_pass = "passwordgoeshere"; // Twitter password
$tag = "newbcamp"; // tag for friends to use

$twitter = new Twitter($twitter_user, $twitter_pass);

$last_post = json_decode($twitter->getUserTimeline("json",$twitter_user,1), true);
$last_post = $last_post[0]['created_at']; // get the datetime stamp of the last post to the account

// get new posts from friends since last update
$friends_posts = json_decode($twitter->getFriendsTimeline("json",$twitter_user,$last_post), true);

foreach($friends_posts as $key => $post) {
 if (stripos($post['text'],$tag)) { // if the tag is present
  if ($post['user']['screen_name'] != $twitter_user) { // no infinite loops, please
   $new_post = $post['user']['screen_name'] . ": " . $post['text'];
   // post the new post to the newbcamp account with the user's name prepended

Update 10.16.2009: This script is basically superseded by Twitter’s lists feature. Use that instead!