tl;dr
Rackspace changed their Ubuntu 11.04 (Natty) server image without telling their customers. Our installation scripts unexpectedly broke. In the cloud, the rug can be pulled out from underneath you without warning, even in a very simple setup.
The Story
My employer is a small shop, and we use Rackspace Cloud Servers for our QA and Production systems. We use unmanaged VMs, from 256 MB to 16 GB in size, running Ubuntu.
Rackspace has generally been a very good hosting provider. My only significant complaint is with their cloud administrative dashboard — it’s slow, clunky, and often hangs. But we’ve learned to live with it.
When we upgraded from Ubuntu 10.10 to 11.04, we had some typical upgrade pain with our Operations scripts. We had to remove some 10.10 package workarounds, and we switched some software from source builds to packages, because the 11.04 repository’s version was now acceptable.
We got past all that, and moved our systems to 11.04. Since then, re-building servers meant selecting Ubuntu 11.04 as the server image, running our Fabric scripts, and everything working predictably without surprises.
Until November 21…
Read more…
47.631545
-122.364657
How badly can you build and QA an application? If you’re WordPress, you can do a bang-up horrible job with your crap iPhone app. It changes titles, inserts and removes newlines, and applies other wonderful transforms to your blog’s posts at will.
It’s a pity Apple doesn’t allow negative stars in a review. The WordPress app is less than worthless.
47.631545
-122.364657
Here’s another cautionary performance tale.
If you use Celery subtasks to manage parallel work, know going in that it uses spin-loops to monitor subtask progress. Specifically, if you get a TaskSetResult from a TaskSet and then use iterate() or join(), the underlying code will eat your CPU alive. Here’s the code in celery.result.TaskSetResult:
Read more…
47.631545
-122.364657
It’s sad when an otherwise attractive FOSS project has zero documentation. I’m loathe to use code without documentation, no matter how simple it seems to be is. By documentation, I mean installation instructions, reference usage examples, and complete (OK, I’ll take nearly complete) information about any turnable knob.
Today’s Undocumented Project Hall of Shame Exhibit A is Sunburnt. Its author describes its rationale in a blog post that practically had me salivating. I want to replace Lucene with Solr, but don’t want to leverage Django’s ORM to do it. Although Sunburnt sounded like the solution, its total documentation turned out to be a ~25-line readme. Good grief. It might be the greatest thing since sliced bread, but I won’t touch it without docs that include a working example.
Read more…
47.632017
-122.364990

MSNBC, home of surefooted assertions
MSNBC says the economy “may be close to finding a bottom.”
From now on, I won’t read blogs that have commenting disabled. There will be only one exception to this rule — Andrew Sullivan’s The Daily Dish gets a pass.
I decided this after reacting to a post about Amtrak on plope. The author, Chris McDonough, felt that Amtrak’s cost was too high, and its predictability too low, relative to using his car for the same trip. Tracking automobile expenses is a minor hobby of mine, and so I wanted to comment on the blog post. (Amtrak’s Seattle – Portland run is a major win over driving.) Read more…
I visited Zipcar to see what car makes and models were available in my neighborhood. Alas, I couldn’t log in, because I couldn’t remember my password.
It, apparently, wasn’t one of my standard web passwords, nor was it in 1Password. (I haven’t logged in to the site in over a year.) So, I clicked their password-reset link…
At the first screen, I entered my e-mail address, and clicked Submit. This form’s HTML was trivial:
<form class="generic-form" method="post" action="user-login" id="login_form" name="login">
<fieldset class="dp_box">
<h2>Forgot your username or password? We can help.</h2>
Please verify yourself by providing your email address below:
<ul>
<li>
<label for="email">Email Address:</label>
<input type="text" id="email" name="email" size="20" /></li>
<li>
<div class="form-action-buttons">
<span class="graphical-btn"><button type="submit" class="submit">Submit</button></span></div></li>
</ul>
</fieldset>
</form>
Their server redirected me, I kid you not, to this URL:
https://www.zipcar.com/register/index?message=Enter+your+username+or+Zipcard+number+and+password%2e++
Your+username+was+orginally+made+up+of+the+first+part+of+your+e%2dmail+address%2c+
before+the+%27%40%27+sign+%28your+welcome+letter+has+this+information+as+
well%29%2e+Your+Zipcard+number+is+on+the+bottom+right+corner+of+your+Zipcard%2e.
There are two problems here. One, their password-reset sequence seems to be broken. Two, that URL is horrific.
Recent Comments