PingMe Updated

2008-12-07 19:00:00 -0500

Tonight we made the following adjustments to PingMe:

  • When you specify a ping without a year, and the date has already passed this year, the parser assumes you mean next year and adjusts the schedule accordingly.
  • Our follow-back code for Twitter should be a bit more reliable.

More to come in the weeks ahead, stay tuned.

FAILCamp Continued: Word List Fail

2008-12-07 19:00:00 -0500

Over the Summer, Stephen and I attended the excellent RubyFringe conference in Toronto, hosted by Unspace. One of the best events was FAILCamp, hosted by Joey Devilla. In FAILCamp we all shared our stories of failure, big and small. It was an interesting way to get to know everyone and to share strategies for working through screw-ups and taking something decent away from them.

So, in keeping with that experience, we’re going to share a bit of FAIL; today’s story is brought to us by the PingMe Address generator.


When we need to provide a user with a remote e-mail address on one of our services, we usually want it to be somewhat obscure to that it would be difficult to guess, like The user can change it, but we set an initial one for her as a convenience, and include it in the welcome e-mail. The design goal was to ensure the address was somewhat random, but somewhat easy to remember, so we’ve been using a big word dictionary to smash two words together with a number in between. We do this as a security measure to prevent attacks that would try to deliver spam using PingMe’s messaging transports

Now, as you might expect, we did go through the dictionary to take out some words that would pose obvious problems. But we missed a really obvious one and weren’t as imaginative as our address generator can be, and as a result we got a pretty angry letter yesterday:

I won’t be using your sevice as it lacks professionalism. Scroll to the bottom of this e-mail and look at the generated pingme e-mail address. – Frank [not real name]

Ouch! Fail! Apparently Frank had been assigned, something that we really ought to have caught.

Taking a real close look at our word list I started seeing lots of possibly problematic combinations with regular words in the dictionary: “closet55bugger”, “douche44monger”, “goat11fakir”. Now some folks are probably fine setting their own address, or clicking the “suggest another” button, but some folks are bound to be a tad more sensitive.

So I started going through the word list looking for any classic cusses that we might have missed, but also things that might be sensitive to some folks and are just best avoided. While I was doing this, two important things occurred to me:

  1. I need an intern.
  2. I can’t guess at every potentially disastrous or offensive word combination in the dictionary. No way.

Everyone’s got different quirks and different cultural backgrounds, and I honestly make a poor censor. The chances of me personally (or even a team of three of us) knocking out every word that might lead to disastrous results in a list of thousands are very poor indeed. I’m willing to bet that this is an NP problem, but I’m not about to draw up a proof.

I don’t think the problem here is that we are using a large dictionary, nor do I think we really should have to cleanse the list. The trick is to get the obvious offending words out of the way, and to also provide the user with a bit more context. In Frank’s case, he doesn’t know that these are two random words, he didn’t have any exposure to the process by which it was selected. Adding something like this to our welcome message will probably cut down on this lack of understanding in the future (I hope):

If you’d like to create Pings on the road, add to your mobile’s contacts and your e-mail address book. This address was generated randomly to protect you from SPAM. If you find it undesirable you can change it at any time on your profile page in PingMe.

You can’t make everyone happy (would that be NP-Complete?), but a little clarification can go a long way.

So that’s our story of fail. Perhaps we can make a meme of this – have you any stories you want to write-up and share? Feel free to post links in the comments.

Update: Question to our users: Would anyone like to see purely random addresses like we generate for Tempo? There we use use a pretty long series of random numbers converted to Base26, so they end up looking like “”

Later Update: I almost forgot: the FAIL address assigned to the user was

Service Announcements

2008-12-04 19:00:00 -0500

On Sunday, Decemeber 7th at 9:00pm EST we’ll be performing a maintenance and reliability update on PingMe, so the web interface will be temporarily unavailable, possible until 10pm EST, although we expect things to go a bit quicker than that.

On Monday, December 8th at 9:00pm, we’ll be moving the beta version of Tempo to the main site so that it will be come the default interface. The web interface will be temporarily unavailable and any existing sessions will be closed, requiring you to login the next time you visit the site.

We’re very excited about that second one, been a long time coming! After months of vetting and feedback from our users, the new user interface for Tempo will become the default.

PingMe is getting a patch to take care of setting dates in the next calendar year without having to specify the year, and code that improves our follow-backs on Twitter.

Just a suggestion

2008-12-04 19:00:00 -0500

Don’t publish API documentation in PDF and then disable copy & paste.

But if you do, please don’t use images for the code examples on your web documentation.

A tip for O2 users on PingMe

2008-12-02 19:00:00 -0500

When setting up a mobile target in PingMe, customers of the UK service O2 usually run into a snag – they need to first enable their phone’s e-mail to SMS service (which is how we send SMS messages). I’m not an O2 customer myself, but after working through the issue with a number of users, the process I outline below seems to be correct.

Note: many of the carriers, including O2, have been making noise about charging a little bit of extra for each email to SMS message. I’ll skip the editorializing and just say that you should check with your carrier about charges. I believe O2 customers can dig into this issue over here.

Update: One of our users has kindly looked this up and reported that it costs 10 pence per message! Not cool at all. Beginning to wonder if we should only provide e-mail and Twitter targets. Paying for an actual SMS gateway is cost-prohibitive.

Now then, for O2 users:

  1. Send the message ON to the number 212
  2. You will get an e-mail back on your phone congratulating you and telling you the new email addy for your phone
  3. It will look something like
  4. Use that to setup your mobile target in PingMe

You can either set the carrier to ‘Other’ and drop that whole address in there, like so:

Setup o2 Target

Or you can set the carrier to O2 and just drop the number in the box, like so:

Setup o2 Target 2

I realize that it’s more than 10 digits! Obviously, I need to update the display on there, but for now trust that it will allow you to add more than 10 numbers in the field.

Feel free to e-mail us with questions or share your results in the comments.

As a tip to everyone looking for SMS interaction – the most reliable thing to do is probably to set up a Twitter target, as they run over actual SMS (the big bucks!)