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.

Batman-Shark-gif

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 red99ballons@gopingme.com. 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 asshole38dirks@gopingme.com, 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 luft99balloons@gopingme.com 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 “nadxtk@gopingme.com.”

Later Update: I almost forgot: the FAIL address assigned to the user was asshole38dirks@gopingme.com.


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.


STRIP on the iPhone

2008-11-11 19:00:00 -0500


We’ve long had a product called STRIP for Palm OS. This Secure Tool for Recalling Important Passwords encrypted account records in its database using a password supplied by the user. It’s been very popular on the Palm platform, in particular with IT folks, for quite some time (here’s an article on ZDNet from back when the Internet’s crust was cooling, and here’s a write-up on CNN.com).

Given the almost universal abandonment of the Palm platform and OS over the past few years, we’ve ceased to officially support Palm Strip. Many of our users have gotten in touch to inquire if we might take the program to another platform going forward, and to date our response has been to decline.

However, Stephen recently completed assembling a version of SQLite that provides high-grade OpenSSL encryption for embedded databases, sqlite-cipher. With this proven, secure technology as our foundation, we’ve decided to build a new version of STRIP on the iPhone platform.

It’s currently in development and we hope to have it ready to rumble by December.


On The Way To Work Today

2008-11-11 19:00:00 -0500

These were being passed out today in NYC and LA (I’m told 1.2 million copies), a fake NY Times. Whatever your feelings on the war, it’s brilliantly done:

Iraq War Ends

You’d never know looking at it right away that it wasn’t a real paper. It’s dated July 4th, 2009.

Update: looks like there’s a bit of video about the prank.


New York Times Special Edition Video News Release – Nov. 12, 2008 from H Schweppes on Vimeo.