I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

Transport Tycoon for iOS

I really wanted to love this game, as a huge fan of Transport Tycoon ever since Casey and I played it as teenagers for many hours instead of going outside.

But I can’t recommend the new iOS version.

Transport Tycoon is a very click-heavy, micromanagement-heavy game. By the standards of the ’90s, when it came out, this was normal — anyone playing PC simulation games in the ’90s probably didn’t have anything else to do than click a million times to accomplish fairly common tasks, such as “Add two more passenger cars to every train on this route,” “Make this train stop at every station it passes,” or “Make six identical buses that go between these two stops.” It has a very complex interface full of tiny, cryptic controls to manage its very complex feature set.

When they announced that they were bringing it to iOS, I hoped that they would redesign the game for touch, not just port it. iPad and (especially) iPhone games can’t have all of the same mechanics as a game designed for a mouse and played by people with too much free time almost 20 years ago.

Doing it well would have required simplifying the mechanics by removing some features, big and small, to reduce the interface complexity and make it fit better in today’s context of simpler, more accessible games that require less instruction up front and can be played in blocks of a few minutes at a time.

Unfortunately, it’s much closer to a straight port, so it feels exactly as you’d expect: like clumsily, tediously playing a game on a touch screen that was designed for different hardware in a different era. It’s not even that great of a port — the graphics are low-resolution, gloomy, and dated, it’s hard to fit much on screen, and they missed tons of opportunities to improve the interface. Even though I know this isn’t the case, it almost feels as if they’re just running the original game in a DOS simulator.

Playing it feels like work. It’s not fun. I tried getting into it a lot over the last two months since I was accepted into the beta, but I rarely got past building my first transit line before wanting to throw my iPad out the window and find something else to do.

All it did for me was motivate me to reinstall the fantastic OpenTTD on my Mac so I could play the game properly. A few hours into it — since time flies when you’re having fun, a feeling I never got from the iOS version — I was reassured that I’m not sick of Transport Tycoon.

Sherlocking Myself Just Fine Over Here

I disagree with Justin Williams’ premise in Stop “Sherlocking” Yourself:

For some reason, developers are almost universally fascinated by building yet another todo list, notes app, weather app, or (most recently) a podcasting client.

“For some reason”? There’s a great reason.

In this modern App economy, stop sherlocking yourself out of the gate and focus on harder problems than just another version of Elements or Clear with a different interface skin. Those markets are saturated to the point where you’re betting against yourself before you even ship 1.0. Look to emerging markets that have a need ready to be filled, or even existing niche markets that have a few products poorly executed.

Whether you should enter a crowded market is complex, and it deserves a much more nuanced answer than simply, “No.”

Yes, there are a lot of to-do apps. But Justin’s representative for this category, Clear, was released just a year and a half ago, and there were a lot of to-do apps then, too.

Six months before that, Tweetbot was released into a very crowded market dominated by Tweetie, Twitterrific, TweetDeck, and Echofon, plus tons of lesser-known alternatives.

The podcast-app market shouldn’t exist at all, since Apple only permitted podcast clients in the App Store after they had been shipping one in iOS and iTunes for years. Yet there are many apps thriving there today, and more coming out soon.

And the weather market has always been crowded with seemingly insurmountable barriers: not only has Apple shipped a very good weather app since day one, but the few users who seek alternatives generally go with established names like The Weather Channel. Yet Dark Sky launched in mid-2012, did something different, and kicked ass. Great new weather apps come out all the time and find substantial audiences, such as Check The Weather and Perfect Weather, and I’m beta-testing another great one right now.1

Titans rise and fall quickly in most app categories, and iOS 7 is a clean slate that’s accelerating this process. Are you still using the same to-do, note, weather, and podcast apps today that you used a year ago?

A given category may seem crowded and impenetrable today, but if you want to start working on a new app of that type, suppose it’ll take you 6–12 months to ship 1.0. How many of the apps in that category today will still be widely used and frequently updated in 6–12 months? How likely is it that at least one new competitor will enter that market during that time and earn high praise from Viticci, Rene, and their audiences? What’s stopping your app from being one of those?

Justin’s right that “just another version of Elements or Clear with a different interface skin” isn’t much of a guarantee for success, but that’s grossly trivializing the differences between apps in the same broad category. As I wrote in my Overcast announcement, similar-sounding apps can differ tremendously by their respective developers making hundreds of small decisions differently along the way.

Seeking out new niches is good, but often, a niche is underserved because it’s underpopulated. Maybe there aren’t any apps to do X, or the only two X apps suck, because there aren’t enough people who need an X app for any developers to build and maintain a good one.

Emerging markets can also be dangerous because they’re extremely volatile. If your market hasn’t been Sherlocked yet, you don’t know what the effects or extent of a Sherlocking will be. Mature, crowded markets behave much more predictably: the chances of becoming a huge success are smaller, but so are the chances of being suddenly steamrolled out of business.

There are so many to-do, note, weather, and podcast apps because there are tons of potential customers in those categories, and the potential for differentiation is much larger than a simplistic category label suggests. That’s why so many people are dissatisfied with their to-do, note, weather, and podcast options, why so many of them will buy every major new one that comes out, and why there will always be dissatisfied developers making more.

  1. I bet almost everyone who writes about Apple stuff is beta-testing a weather app at least 50% of the time. ↩︎

GoDaddy, (((Media Temple))), And The Horrible World Of Web Hosting

Web hosting is a horrible business.

There’s potential for massive profits: most customers of shared hosting and VPSes never come anywhere near their resource allocations so the machines can be extremely oversold, and most dedicated-server customers keep paying the “new” price of the server every month for years after its value has plummeted through the floor.

But it’s also highly commoditized: hosts can’t differentiate their products very much, there’s effectively no barrier to entry, switching at any time is fairly cheap and easy, and most customers buy primarily on price.

Long-term reliability and reputation are spotty and hard to evaluate. Most customers haven’t tried many hosts, so reviews have little context or credibility. Even credible reviews may not apply to your situation, since customer needs vary so widely — a novice running a small phpBB forum on a managed VPS with cPanel will have a very different experience than a sysadmin running a high-traffic web app from ten unmanaged dedicated servers. And since large hosts have complex infrastructures, different customers of the same company at the same time with the same needs can have very different experiences by being in different datacenters, behind different routers, or served by different virtualization-host servers.

Most hosts are mediocre or overpriced, so when word of a good, reasonably priced host gets around, they usually get a deluge of new customers, leading to frequent changes and growing pains. So even if you pick a “good” hosting company, being their customer today or next year might be significantly worse than it was when their good reputation was built.

The combination of high profitability, heavy competition, lack of differentiation, and volatile reputations leads to frequent mergers and acquisitions.

As just one small example: if you were an EV1 Servers customer ten years ago, a 2007 merger forced you to become a customer of The Planet instead. But in 2010, SoftLayer — which was formed by ex-executives of The Planet — pulled a NeXT and “merged” with The Planet by taking it over, “sunsetting” its infrastructure, and making you a SoftLayer customer… until a few months ago, when IBM bought SoftLayer. Now you’re a customer of a Wikipedia article with “multiple issues”, wondering where your commodity web host fits in “a branded ecosystem of cloud computing products and solutions from IBM” as they assure you nothing will change for the worse.

Web hosting customers are nomads. If your host hasn’t been ruined yet, just wait.1

Today, news broke that GoDaddy bought Media Temple. GoDaddy is a horrible company run by horrible people selling horrible products. Media Temple made a big name for themselves in the late 2000s with modern design, strong branding with lots of parentheses, and heavy marketing in the Rails and design communities, but I’ve never been a customer of theirs — they always looked overpriced to me, and they’ve had a lot of growing pains.

If you’re a Media Temple customer wondering whether you should prepare for the worst, the short answer is: probably. While GoDaddy claims that Media Temple will be run as a separate business, with the implication that nothing will be changing and Media Temple customers shouldn’t be worried, look at the language they’re using:

As for why [Media Temple] decided to finally exit after all this time, co-founder Demian Sellfors said that this was always the plan.

“We’ve had our eye on an exit since we started 15 years ago,” he told me. “We regard ourselves as entrepreneurs first and we designed it for exit from the start, even if on the way we accidentally built a phenomenal culture and a business that resounded with the marketplace.”

Translation: “I’m outta here.”

Virb was acquired by Media Temple last year, but isn’t included in the GoDaddy acquisition. Virb’s blog post is so clear that you don’t even need to read between the lines: (emphasis theirs)

After early meetings with GoDaddy, it quickly became apparent that we shared different visions for our website builders. So… I’m thrilled to announce, GoDaddy has decided Virb will be sold back to its original founder and investors, Brad Smith (that’s me) as well as Media Temple’s co-founders Demian Sellfors and John Carey.

Translation: “We hate GoDaddy, and we’re all outta here.”

It looks like there are about to be a lot of job openings at Media Temple, even at the highest ranks. (And who will GoDaddy replace them with? Open-minded, outside hires? Sure.) Some turnover after an acquisition is normal, but this looks above average already, and likely to get worse — how many people with enough taste to create and run Media Temple are likely to have a positive opinion of GoDaddy?

Shawn Blanc is more optimistic, hoping that this “new GoDaddy” is improving and becoming less horrible, but I don’t believe that for a second.

If you’re at Media Temple and not running for the exits yet, I suggest that you at least make an escape plan.

  1. People always ask me what host I recommend. Since the environment is so volatile, take all of this with a grain of salt:

    For VPSes, I use and recommend Linode. They’ve been remarkably consistent over the last couple of years, and their control panel is excellent. I ran some test servers on the cheaper, SSD-equipped DigitalOcean over the last few months, but found them to be inconsistent and immature. I think they’re having trouble keeping up with their growth.

    For dedicated servers, after prior mediocre experiences with Rackspace and ServerBeach, I hosted both Tumblr and Instapaper at SoftLayer (well, The Planet first) and was generally happy most of the time. But in the last year, their pricing (especially on RAM) has become less competitive and the salesman discounts have become weaker, and the IBM acquisition has me worried for their future. After testing Overcast cheaply for months on Linode, I just deployed it full-scale on a server at Limestone Networks, which has very good pricing, but looks a bit young and unproven. Here’s hoping it doesn’t suck.

    Of all types of web hosting, shared hosting is consistently the worst. It’s the cheapest by far, and you get what you pay for: I’ve never used or heard of a shared host that was consistently good for most of its customers. My least-horrible experience was with DreamHost, so I guess I “recommend” them: if you need the worst kind of web hosting, you might as well not pay much for it. ↩︎

Podcast App Playback Speeds

One of my most surprisingly difficult decisions for Overcast is how to label the playback speeds.

In the early days of iOS podcast playback, when Apple first implemented multiple speed settings, they used inaccurate labels. Apple’s “2x” setting, for instance, was really 1.5x. Their “1.5x” setting was really 1.25x. And their “½x” setting was really 0.8x.

Podcast apps therefore face a difficult choice: do you use Apple’s old label scheme, which is familiar but inaccurate, or do you use correct labels? Here’s how the top apps chose, as of today:1

Note that nobody has a true speed of less than 0.5 or greater than 2.0, and nobody offers any unique intermediate speeds such as 1.1x or 0.9x that actually sound different from nearby “even” speeds such as 1.0 or 1.25. Why?

As far as I can tell, all popular podcast players on iOS are using Apple’s AVAudioPlayer or AVPlayer rate parameter to offer variable-speed playback. Under the hood, those use the AUiPodTime AudioUnit, which only supports a handful of speeds:

The kTimePitchParam_Rate parameter declared in AudioUnitParameters.h is used to control audio playback rate from 0.5x to 2.0x speed. AudioUnitParameterValue is a Float32 rounded by the unit to whichever of the following is closest: 0.5, 0.66667, 0.8, 1.0, 1.25, 1.5, 2.

If you dive down to very low-level APIs, you can use different audio units to vary playback speed by different amounts, or you can bundle a third-party time-stretching algorithm such as Dirac. But they’re much more complex to use, much harder on the CPU and battery, and mostly designed for music. They’re not nearly as natural-sounding and listenable as Apple’s built-in (but limited) AVAudioPlayer/iPodTime algorithm that’s specifically designed for processing speech.

It’s very unlikely, therefore, that we’ll see an iOS podcast app that can legitimately offer playback faster than 2x. (And that’s probably for the best: true 2x playback is very fast and hard to keep up with.)3

Labeling the speeds in the interface is still a non-obvious choice, though.

If you use the old, inaccurate labels, people accustomed to the old labels will see your speeds as equivalent. You can even offer a “3x” label, representing 2x playback, since Apple’s old scheme topped out at a “2x” label for 1.5x playback.

But this tricks customers and reviewers into thinking you’re offering something you’re really not, and thinking any competitors with speed-accurate labels are inferior.

If you use speed-accurate labels, you’ll look worse in direct comparisons. Customers will request that you add speeds from inaccurately-labeled apps (e.g. “3x”) that you already support. This will haunt you in reviews and feature comparisons forever. But you’ll be technically correct.

Overcast will use speed-accurate labels. I’ll take the heat in reviews.

  1. It’s easy to measure: use a separate stopwatch (either a real one or a second iOS device) and see how much real time passes relative to the podcast’s timestamp. ↩︎

  2. Pocket Casts has a speed slider that advertises 0.1x-granularity over a range of 0.5–3.0. Between 0.5 and 2.0, it appears to be rounding to the nearest kTimePitchParam_Rate value.

    During “3x” playback, the audio is actually playing at 2x speed, but every 1.5 seconds, it skips ahead by 0.5 seconds. Playback completes in the correct amount of time for true “3x”, but you’re missing a third of what’s being said.

    I asked Pocket Casts’ developer about this, and the app isn’t specifically creating this behavior — this is just what happens when you give AVPlayer a rate of greater than 2.0.

    I’ve tried listening to a few shows like this, but I don’t find it useful. I’d rather unsubscribe to a third of my shows or skip a third of the episodes. ↩︎

  3. This is probably why Apple originally used the misleading labels: to give people what’s probably best for them, while giving them the illusion that they’re getting what they think they want. It was a very 2008-era-Apple decision. ↩︎


Something felt a bit off about this week’s Apple event.

Part of it was the lack of surprises, which isn’t Apple’s fault. All of the product upgrades, while nice, were incremental and predictable. None of the pricing was a surprise. In fact, the only unexpected product announcement is the zombie iPad 2 sticking around for another year, shamelessly at the same price as last year.

The presenting executives seemed a bit off, too. Their energy was flat, as if Apple wasn’t particularly excited about these announcements either (with the notable exception of Craig Federighi, who was properly energized and most polished). Most of the jokes and digs at competitors were awkward. The lines were so tightly scripted that the presenters often stumbled off-script slightly, and rather than rolling with it naturally, they’d just jump back and awkwardly retry the line. Nothing about the speeches seemed natural — at best, the presentation felt uptight.

The product messaging was almost entirely just rehashing old talking points. We’ve seen the Dots video for months.1 We know Microsoft’s tablets suck, and the market leader doesn’t need to kick them while they’re this down. We know that effectively nobody browses the web on their Android tablets full of stretched-out phone apps. We know the iPad is number one in customer satisfaction. Hardware, software, services, technology, and liberal arts, right?

We know that people are using iPads in all sorts of different ways. Look, firefighters are launching space shuttles with an iPad! Farmers are building wind turbines and composing songs! And Apple can’t wait to see what we do with our iPads.

But they already know. Everyone knows what people do with iPads, because iPads have been heavily used in public for over three years. It looks like most people use iPads for basic web tasks (email, browsing, Facebook), reading, and, importantly, casual gaming. Going into the holiday season, in which tons of iOS devices are usually sold that will primarily be casual-gaming devices, Apple hardly even mentioned games.2 Is that because they don’t need to, since games are already a popular iPad use, or because they’re not in touch with one of the biggest reasons people buy iPads?

Suppose the event worked, and we’re all jazzed up to buy the new iPads. Well, too bad — you can’t even preorder either of them yet. The iPad Air will be released 10 days after the event with no preorders, and the one likely to be in much higher demand — the Retina Mini — doesn’t even have a release date yet, except “later in November”.3

Mavericks, iLife, iWork, and the incrementally updated Retina MacBook Pros look good, but I can’t help but feel like the event wasn’t up to Apple’s standards.

  1. Is it just me, or has the premade-video time been steadily increasing in Apple events? One or two, fine. But this felt like too much. It’s a live event — nobody needed to travel out there to watch videos. Videos should support the presentation, not lead it.

    Highly produced marketing videos don’t feel substantial or sincere. We want to hear more from the humans who are right there in the room! Let us continue to believe that these are relevant industry events rather than giant commercials. ↩︎

  2. There’s also no new iPod Touch to address that market this year, although the iPad Mini probably somewhat reduced the demand for the Touch. ↩︎

  3. Maybe they’ll release the Retina Mini on Black Friday. It would get a lot of people and attention to Apple stores on the biggest shopping day of the year. ↩︎

Younger Than The iPad 2

The iPad 2 was released on March 11, 2011 for $499. Apple reduced its price to $399 in March 2012, and they announced this week that it will continue to be available at that price, probably until at least late 2014.

Steve Jobs proudly presented the iPad 2 to the world, in his second-to-last keynote, proclaiming that it had a whopping 65,000 apps.1 It was the first iPad to offer Verizon 3G, cameras, Smart Covers, and GarageBand, and it shipped with iOS 4.3: not only did this predate iCloud, but it predated Siri, which debuted seven months later on the cutting-edge iPhone 4S.2

BlackBerry was still a month away from releasing the PlayBook, HP was preparing to launch the TouchPad shortly after that, and the Kindle Fire was still six months out. Google was busy finishing the first version of Google+. President Obama hadn’t yet been re-elected, Osama Bin Laden was still alive, and most of the Arab Spring hadn’t happened yet.

It was a while ago.3

Not only will the iPad 2 likely remain for sale for another year, but Apple also repackaged its hardware into smaller dimensions just last year to make the first iPad Mini, which is also still for sale for at least another year. And the first-generation Mini is perfectly fine for most usage by most users, just like the iPad 2. I wouldn’t be surprised if the iPad 2 and iPad Mini both ran iOS 8 next year and continued to be useful well into 2015 — in fact, I’d be surprised if they didn’t.

Rather than asking how Apple can keep selling the relatively ancient iPad 2 at just 20% less than its original price, maybe we should be asking why all tablets aren’t expected to be fully useful for over three years after their launch.

Or maybe Apple should be concerned that most people are using their iPads for such mundane tasks that years-old hardware is still adequate.

  1. In this week’s iPad event, Tim Cook announced that there are now 475,000 iPad apps. ↩︎

  2. Which is still being sold. But at least it’s had a price cut every year. ↩︎

  3. But the iPad 2 isn’t nearly as old as the Xbox 360↩︎