Category Archives: Uncategorized

The Side: Everything fails

In which I whine about tools.

I’m sure for developers who work with Ruby the maze of tools, installs, and dependencies is like swimming in water to a fish. Except just from work, the fishes complain a lot about it too. For me, though, it’s so fucked up I want to throw something at it.

Let’s say I want to install Ruby and Rails on my Mac.

% brew install ruby
(vwhoosh! works)
% gem install rails
(bombs on crazy UnknownHost error)
% gem install rails
(vwhoosh! installs a ton of stuff)
% rails –version
Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails

You can then rerun your “rails” command.


Okay, so let’s figure out how to do that. Stack Overflow answer says this is a command line tools issue. Do I have the command line tools? I’ll check — Crap, it returns a “Can’t install software because it is not currently available in the Software Update server” error. That makes no goddamn sense.

Back to Stack Overflow… ah! That’s a bug. I guess I’m actually fine. BLARGH.

Except rails will install and then tells me it didn’t. Still haven’t figured that one out.

And hey — as in Python, there’s a huge set of version differences!

Q: Hey, I’m a normal dude trying to get this thing up, which version of Ruby do I —
A: (shrug)
Q: Thanks for that.

To deal with all these dependencies, I can use rvm which… I don’t even know! Woo!

This seriously makes me want to go back to wrestling with Python. Or set fire to my computer.

Review skimming escalation

Dungeon Keeper’s catching flak for its terribleness, and today’s story is their new implementation of review skimming.

Check out their writeup.

Here’s their picture of where this goes beyond anything I’d seen before:

Where, say, OkCupid asks “love us?” and “leave feedback” to try and skim off only the people who’ll leave good reviews, Dungeon Keeper’s explicitly asking you what your star rating would be, as if you’re rating it right then (in a window labelled “Rate Your Experience”)(!).

Logical next step would be to present a fake Android rating screen that discards 1-4 star reviews and then submits 5-star reviews on the user’s behalf.

How skimming reviews makes apps twice as slimy

I read the fine “Choices and Consequences” (which responds to John Gruber on one-starring apps that obnoxiously beg for feedback).


At the other end, you find blatant harassment and tricky language meant to confuse users into capitulating. Modal alert panels might interrupt a user’s workflow at inopportune times, demanding that they either leave a review now or be reminded later to do so.

Part of the frustration is much deeper than that, and goes to a deeply scummy tactic Apple’s let proliferate. I’m going to call this skimming reviews: you pop up a request for a dialogue, but in a way that encourages only people who are going to leave good ones to do it. OkCupid’s app is the clearest example of this:


Check out the levels of ridiculousness:

  1. They’re first trying to make users self-select. Do you love the app? Well, then…
  2. The call to review is not “review us” it’s “Rate us highly.” What if you don’t want to review them highly? Presumably you look for another option, which…
  3. “Send feedback” keeps them out of the review ecosystem

Right? As much as the cumulative annoyance of “rate us” requests might grind us down, this kind of thing is way more toxic and makes the whole experience seem dirty to me, because it’s not even a sincere request for feedback, but an attempt to turn users into positive reviews.

I don’t understand why this passes App Store review.

Mavericks power savings on a macro level

I did some napkin math on the overall effect of the new version of Mavericks, and wanted to share. Standard caveats apply: as you’ll see, I’m doing a lot of hand-waving.

Starting assumptions:

  • Adoption of Mavericks will equal Mountain Lion* for ~30 million users
  • 75% of Mac sales are laptops
  • I’m using the Mac Mini for desktop power consumption to concentrate on processing/disk tasks
  • I’m also using it for the under-load draw for laptops

So! Thirty million Macs, idling, draw 195 megawatts. Under load, they draw 2,380 MW.

Assume Mavericks gets you a 15% savings in power both at idle and under load.*** If all Macs are at idle, you’re saving 30MW. If all the Macs are running at the same time, you’re saving 357MW.

How much is that?

  • The smallest nuclear reactor in the US generates 438 megawatts
  • An average coal plant generates about 500 megawatts

Now, you don’t of course get all the savings at once, and I’m totally omitting how Mavericks affects machines staying in minimal power draw states longer instead of waking, working, sleeping, waking…

I welcome thoughts on how to improve my napkin math and get to a better number.

Even as a rough guess, 80% of a coal plant… that’s pretty awesome.

* I assume this will be low, as new Macs will come with Mavericks installed and replace ones that don’t, and also because with power-saving features, there’s a huge incentive for laptop users to upgrade if they are able but haven’t. Also, it’s free.
* nuke cite
*** I’m guessing, based on anecdotal reports of battery life improvements, mostly during betas

My AT&T Customer Service Nightmare

First, I worked for AT&T Wireless for five years, and more generally, I know how at the ground level, you can make a mistake or be limited in your ability to act by policies.

And second. I entirely acknowledge that in normal circumstances, I’d have looked over my bill at some point before I did.


At the end of November, I was getting divorced and called AT&T to de-activate the phone my wife used. The rep said she’d de-activated it, and it would stop working at the end of that billing cycle (December 22nd).

What actually happened: the rep did not cancel that account, and somehow after that call I had *two* accounts: one, for my phone, and a second, for hers (at $120/mo+tax = $140/month). That there’s two plans is actually kind of important, because it meant that checking on my phone showed everything was cool, and there was the old phone showing up on its separate tab, and the only way I’d have figured it out was to say “hey, the total billed amount isn’t what my phone plan is.”

My wife calls them a week later to confirm with them that they’re canceling the line. They say “yup!”

Then because I was getting divorced, I go deal with the other stuff in my life for months, totally ignoring all my auto-billing like rent, auto insurance, and phone. I finally notice at the start of this month what’s screwed up. I call in, I get a friendly rep, he’s apologetic, puts in a case (CM20130805-70519441), cancels the phone, and says I should expect a credit of about $971.91 (there’s some tax uncertainty).

What actually happened: he submitted the case, but the second phone/plan was not cancelled.

At the end of this billing cycle, I check the bill, see it’s not cancelled, see I’ve only received a small credit.

The math: AT&T owes me ~$979.91 + $140 another month they billed me after not canceling again (and let’s assume it’s all set up so that’s the end of that).

They’d refunded $423.83 of the $979.91. No one ever contacted me to talk about what happened.

I call back in. I talk to a guy who seems more stymied than anything.

He reports the “back room team” took the case, looked at the account and said that because there was usage on it for some of those months, they weren’t going to refund those months.

Now, when you look at the usage, it’s clearly accidental. In one month, In another, they forwarded a phone call to her new phone. For the April-May billing cycle, the statement says 4mb of data used, and when you look at it, it’s 0kb. For May-June, someone sent her a text message, and there’s another couple random phone-dialed in usages.

None of which should have happened, if they’d cancelled the account. I just don’t understand this part.

I went around and around with that rep, in which he repeated the reason why they’d denied my refund, I said “look, I understand that’s not you, but this is crazy” and he’d say there was nothing to be done about it. I asked about appealing, he said I couldn’t, there was no way to escalate, if I filed another case about those three months it would just be denied. I asked him what I should do about this and he says “there’s nothing you can do”. Eventually, after about an hour, he told me he’d set me up with a supervisor callback.

His supervisor calls back! He wants to know about the call, if there’s anything (rep name) was unable to help me with. I say “no” and say it’s not really his fault, he’s clearly constrained, so I’m glad he escalated it.

The supervisor’s a little baffled. It seems like he’s calling because he saw his rep was on that call for so long, not because the rep put me in for a callback.

I don’t know if that’s a mixup or the rep told me he’d have someone call me back and then just dumped me, but if it’s the latter, that’s reaaaally frustrating.

So he walks through the whole thing with me, does a lot of math, credits me for what I’m being billed this month, puts a thing in for next month (since we’re now on another billing cycle and I still have both plans attached).

At one point, he talks to his supervisor, and comes back with a partial solution. It sounds like the supervisor’s unwilling to go back farther than three months. Through some customer service foo, he refunds ten things in varying amounts that add up to $369.50 and after talking to me for a minute about the gap, credits me $150.

I’m entirely uncertain of whether that happened or not, because when I look at my account, it doesn’t show the credits he talked about. But it’s not super-easy to figure out credits and adjustments on the online site.

Here’s where I am, then.

Best case: the zombie plan is cancelled. Next month’s bill will show up with a credit for the zombie plan. There will appear on my account a $200 credit towards this month’s bill and a $150 credit that don’t show up on my AT&T account on the site.

Math as it shows on my bill right now
~971.91 owed
+140 charged after that
-$423.83 credited by secret back room team
-$369.50 by supervisor ninja service against past bills
= I’m still out ~$319 because AT&T didn’t cancel the account back at the end of November

And next month, assuming the supervisor’s right, I get billed again for the zombie plan, but also credited for it.

Now, if you assume that the credit the supervisor yesterday is happening but just not there yet, I’m actually to the good. But you’ll forgive me if at this point having someone tell me they’re crediting $350 to this month’s bill but where that does not actually show up on my bill, I’m pretty skeptical that
a) there actually was a credit or
b) there will be a credit

Much less that zombie phone/plan is actually cancelled, or that I’m not going to be having this exact same conversation next month.

And at this point, it’s been five calls and hours on hours on the phone being frustrated, and having guarantees that something will be done turn out to almost always be entirely untrue.

The most galling thing is the back-room team dismissal based on trivial usage. Who gets a ticket like that, where it’s clearly entirely their company’s fault, and looks for the slightest pretense to deny it? I don’t even understand why, given that their error allowed that trivial usage, it’s even a pretense — is there a huge fraud problem with people who cancel, wait to see if it’s not cancelled, and then send one text message?

But yeah. From looking at my bill, AT&T’s got me for $300+.


Shogun 300 Review

As a collector of vintage steel bikes, I was delighted to find a Shogun 300 at a bike swap. It had clearly spent the last twenty years in a basement or garage, but cleaned up okay.

What an unremarkable piece of shit. Only the main tubes are double-butted cro-moly (Tange 900 DB, seamed), the fork is a manganese monstrosity that produces a muddy road feel with lack of responsiveness while still managing to transmit road shocks directly to your shoulders. It doesn’t have forged dropouts either.

It has what I believe were at the time low-or-mid-range components which is part of why I’m sure this beast hasn’t been touched in twenty years, because no one who rode this wouldn’t spend the ten dollars to upgrade them.

I’m reluctant to slag on it too much. This was probably as good as they could do for their entry into that segment. But even if I was going to give this to someone as a light or entry bike, I would need all new components or I’d be plagued with guilt.

It’s a reminder of how far we’ve come. This isn’t junk… And it is steel… but an entry-level bike today is so much better. Progress! Of sorts.

It does descend like a brake less freight train coming down from Mt. Shasta, if you need more excitement in your life. Or your life insurance beneficiary is in dire financial straits.

Getting your relationship off to a rip-roaring start

The installer’s the first thing most users interact with. Before “what are they trying to use the app for?” or “how do I build the best interface?”

Parallels Desktop 6 for Mac has in the course of the purchase and install
– forced me to create a log in
– tried to get me to install some crapware
– sent me a weird email asking me to go back and register for a second site*
– blackmailed me into registering to get updates

And now we’re here:

So I’ve now created an account, and I’m being asked to give it again, plus sign up for a complimentary magazine subscription (I guess) and when I’m done with that, I’m supposed to do it a third time in case I ever need to file a support ticket.

If you hit that question mark, you go to a page that tells you “Parallels needs this information in order to provide our customers with the best software and service.”

Great. Let me know when you’re doing that. Because right now, I’m regretting purchasing your products.

* Parallels: “NOTE: Your account in Parallels Support Request Tracker system is different from ‘My Account’ option on site. Parallels Support Request Tracker ( is a web interface, that allows you to view and update your existing requests to Parallels Support and also submit new support requests on your own.”

Me: “First support request: why did this require me to create another account?”

Sony and the cool

I recommend this fine Brooks Review piece on how Sony’s lost their way (it was inspired, in turn, by this excellent Jeff Yang article in the Chronicle). When I was growing up, I loved, loved, loved Sony stuff. My dad owned a Walkman 2 (1981), and it fascinated me. Clunky controls: function over form, the weird selector buttons irregularly sized, paired with dials… and it broke music for me. Cassettes on headphones, with true stereo, and portable, it was a leap I couldn’t believe. I thought that thing was the coolest. For being so tiny, it took a remarkable amount of abuse and kept running. Twenty years later, writing this makes me want to go buy one.

wm-2_2 by nextartist

“wm-2_2 by nextartist, cc-licensed”

My parents bought my brother and I Discmen one Christmas. I feel the almost the same way about the Discman as the Walkman II: it’s a beautiful device, the sound quality was amazing, and I used it for years. I cracked the display in a car accident, but it took ten years of use without complaint. A year or so ago a stereo died on me and I ended up digging it out of my nerd box of components. Ran like a top. I wrote my dad a nice re-thank-you note.

I only bought Sony whenever I had a choice. When someone stole the deck out of the awful Mazda 626 I was driving, I bought the crappiest tape deck Target sold (features included “Auto-Stop”) and went back to using my Discman and an adapter.

I can’t point to where exactly I gave up on brand loyalty, but after being less and less happy with each of my purchases, I went to discontent: one of my receivers died just out of warranty, while on another the display doesn’t work unless you press on the faceplate just right, which is… yeah, it’s a loose connection somewhere that results in a terrible experience every time I need to read it. And then to open frustration: the Playstation 3’s user interface is one of the worst I’ve ever had to wrestle with (and I worked on back-end telecom systems in the 90s). Every time it sends me off to a different random corner of its nested menus, I want to grind my teeth and never have to use it again.

When I could beg the Walkman II off my dad and the batteries ran out, all I could think of was how to get a new set, or milk another five minutes out of another set that wasn’t quite dead. I wanted to use it. Now Sony makes electronics I hate to use.

I miss Sony.

Postcript: fittingly, Sony’s abandoned their “Sony History” pages, which now 404.

Interviewing: so, have you used our product?

Why answering “no” is almost a certain no-hire.

An interview loop is a full day of your time. And the company you’re interviewing at is burning at least six hours of their people’s time not developing features, or answering phones, or building a production infrastructure, to talk to you. Now, I know that not everyone on the loop reads the resume before they go in, but unless I’m tagged in at the last minute (which happens too often, certainly) I’ve spent 10-15m just reading your resume, and after we talk I’ll spend another 10-20m writing up interview feedback. Multiply that by six… You can spend 15 minutes to prepare.

If you’re considering taking a job with a company, you should know why. It can be as simple as “I need a job”. I’m fine with that. But why at the company you’re interviewing at, and not another? Or why do you think you’d be content working on this particular widget, and not another? If you have no interest in where you work, and I really care about what I work on and who I work with, well… it’s going to be hard to bridge that.

If you haven’t used the product… fire up the web site and look around. Download a demo version of the product and play with it. It says a lot of good things about you to say “yes!” and have thoughts about what features you’d add, or an issue you encountered:
– you’re curious and interested
– you’ve given the product some thought
– you can talk about the product
– there’s a reason you’re applying for this particular job

And better still if you can talk about the product compared to others, for instance.

By contrast, the immediate doubt that comes in if you say “no” is that you’ll find the work not to your liking and no one’ll be happy. Or you’ll toil away and leave when you find something you are interested in.

Not having taken a couple minutes to prepare before the loop is akin to showing up in sweats, or being late, in that they all give the people who are taking time out of their day the impression that at best you don’t really care about the interviews, and probably don’t care much about whether you get the job or not. It’s operating at an enormous disadvantage compared to other candidates, too — they’re almost certainly going in prepared and interested.