Frustrating UX Design At Twitter

Like any self-respecting web developer, I’m pretty pissed at Twitter right now.

No, it’s not about that whole API thing where they are intent on becoming the next Compuserve.

It’s about what has to be the most idiotic settings page user experience I’ve had in a long, long time. (I’m just going to ignore that checkbox in my own application that didn’t do anything for about 3 years that I discovered last week)

About a week and half ago, in a bit of snit, I decided to “protect my tweets”

Through no fault of Twitter’s – I’m using 1Password for my twitter password. When you change your twitter settings, – it presents a javascript modal to provide your password. Unfortunately, the by-product of this was to enter my username in the email field which was then submitted along with the “checkbox” for Protect My Tweets, which then submitted the email as “jasonadamyoung” – which came back from Twitter as “This email is invalid” – but then Twitter in their UX brilliance, didn’t show “jasonadamyoung” in the email field (which it would have dawned on me as invalid) – it showed me my email address.

I took this as some Fail Whale event on twitter’s part at the time. I ended up working around it by managing to change my email to another email address and then cancel the confirmation of changing it.

Tonight, I decide to change the setting back, and finally – after multiple “this email is invalid” – both from the AJAX email lookup – plus the form submissions, managed to realize that 1Password was the likely culprit.

Only now, I want to check the setting off on my Twitter stream – and WHILE NOT CHANGING ANY OTHER SETTTING – I get this:


or “Sorry, but you’ve reached your limit on email updates for now.”

And I can’t change a single setting.

Clearly, I understand they’ve implemented the settings as a “change ALL THE THINGS” kind of deal. I pretty sure I have more than one of these in my own apps with far worse error messages. But I’m not Twitter, I’m not raking in millions in revenue, I’m not hundreds of employees strong. I’m not what is like thousands and tens of thousands of settings changes a day.

And while I probably should take some solace that even the bigco’s get it wrong too? I don’t. I just want to change a single setting, and it makes me curse Twitter like you wouldn’t believe. Okay, you’d probably believe it.

Importing A Google Spreadsheet Into A Rails Application

Recently at work I have been updating an application that provides a listing service for Extension professional development opportunities in order to facilitate some of the application’s features to be used for our upcoming conference (the application is typically geared toward interactive online sessions).

I work best in applications when I have real data to work with, and not a bunch of automatically generated “Lorem Ipsum” data. That’s why, as part of my development, I operate on copies of live data for pretty much every application I work with (which fortunately, other than a few transmogrifications like dumping passwords, we can do with our data). I even added an option to the tool a colleague and I wrote to post our deploys to a central deployment monitor to facilitate the data download.

So, I wanted real data to work with for our sessions. Fortunately, a few days ago, one of my colleagues sent out the sessions in a spreadsheet, which I spent a few hours reformatting and dumping to a csv – and then importing that data into the application.

But after doing all that work, on data that wasn’t yet fully complete (I didn’t yet have descriptions, or all the presenters in the data) – I realized that was going to be a continued pain in the ass to keep updating my translation of that data, dumping to csv, adding to the seeds, or wherever I would do a on it – to keep it updated to when this actually gets deployed in production (after which it can just be updated in the application).

To be sure, there has to be a better way™ (I’m hereby trademarking this phrase because it is the muse for every podunk Dev/Ops/DevOps innovation ever, and should be a repeated mantra for all of us).

And it turns out there is. Publishing Google Spreadsheets to the web.

By publishing my import spreadsheet to the web – and using the csv output:


I can then import it at will (if you look close, you’ll see it’s only a one time thing, there’s no provision for a unique key in this particular data set to do a find_or_create on import – but the source data on this is only 4MB – so I’m constantly doing a capatross getdata rake db:migrate ruby importer.rb nexc_import) as needed.

In theory, updating the spreadsheet can now be crowdsourced among our staff. In practicality – probably not, but at least I can stop exporting, committing, and then running scripts on it any time a change is made.