Tuesday, March 20, 2012

Dear Microsoft, here’s how to get this developer to switch back from Mac to PC

This is a letter to Microsoft. It’s boring. So unless you’re Microsoft I suggest you look at something else, such as the underappreciated post: clusterduck.

Dear Microsoft,

It’s been about five years since I bought a new computer. At that time I made the switch from a Windows PC to a MacBook Pro. That MacBook Pro is looking a little long-in-the-tooth now, and Apple has hinted that their next OS won’t support it, so the time’s coming up when I’ll want to buy a new computer. If I’m going switch back from Mac to PC, now’s your chance. Here’s what you gotta do to make that happen:


First you need to understand why I switched to Mac five years ago. It’s because I’m a developer, and to be a developer had come to mean writing at least as much code for servers as for clients. “Server” had long ago come to mean “Linux”. Face it, part of what nearly any developer does now involves some server code, and when a developer thinks “server” they think “linux”, that’s just the way it is. Accept that!

Since OSX was based on BSD, which is basically the same thing as Linux, by switching to Macintosh my personal machine could have a terminal that acted nearly identical to my servers, and that removed a lot of friction between developing and testing on my laptop and deploying on my servers. I could run the same *nix servers on my Mac as on my Linux servers, I could compile the same tons of open-source tools on my Mac as on my Linux servers, and I could test and debug the same on my Mac as on my Linux servers. Very little friction.

If I wanted to have as frictionless an experience using a Windows machine I had two choices: 1) choose Windows for my servers (“server” == “Windows” is just a contradiction in terms for nearly any developer) or 2) run *nix emulation layers on my PC which remains an annoying pain in the ass (developers spend a lot of time on their asses, so you don’t want to be adding pain there).

So I switched from PC to Mac, felt lost for a few days learning a new set of keystrokes, and then got to work coding.


Give me a text-mode minimal Linux environment built and supported, by default, on my PC. Make all the standard compilers, libraries, paths, and tools, be there by default. Make it use ‘/’ instead of ‘\’. That’s it. That’s all it takes, and it’s not asking very much at all. It doesn’t have to support fancy graphics or user tools or interact with other Windows programs or the Windows API (because my and everyone else’s linux servers are minimal installations and won’t support those either). The basic Linux I need is tiny compared to a full OS like Windows, and will maybe occupy just 1/1000th of the disk space, so it’s no big deal. I don’t much care how you do it (support cygwin, fix interix, use a VM, or your own linux port), just do it and make it frictionless so I can download, build, and run the same tools and commands on my PC as on my Linux server.

That’s all it takes. Do the above and I can get what I need out of a $1000 PC laptop instead of a $3000 Mac laptop. Thanks.

Oh, crap, I almost forgot. With the above I would still need a Mac to develop for iOS clients (iOS clients are important). Figure out a magic fix for that (code? emulation? lawsuit?) Again, thanks.

Oh yeah, another thing. Tell the vendors who make PCs to give us a goddam power connector that won’t break, OK? Want to know how to do that? look at a Mac!


I know, most users won't use the Linux shall. They won't even know it's there. But developers are your most important customers because we lead the way. The computer we get accustomed to using is the one we are gong to innovate for. (repeat after me: developers developers developers)


As long as I have your attention, and we’ve defined how to make a PC as good as a Mac, why not take it one step further and make it better than any Apple device. I’m hearing Windows 8 software may actually be better, now tell your hardware partners to make the computers better too. Way way better. Here’s how:

Start with a tablet. In the simplest view, the next PC (aka, the post-PC PC) should be a tablet, and if I’m futzing around the living room that’s what I might carry with me. Next, add a multipurpose tablet cover that doubles as a keyboard that doubles as a support for the tablet that doubles as the carrying case. This means the computer is also every bit as good as any laptop (when that’s the tool you need for heavy work), but also fixes the tablet problems of 1) screen protection, 2) typing for long-form content creation, and 3) support when you’re lying in bed or sitting on a plane watching a movie (it gets very tiresome holding up a tablet). Finally, provide a wide over-the-shoulder carrying strap that doubles as a power cable. This fixes the laptop problems of 1) hassle of getting into and out of a case, 2) losing the power cable, and 3) the power cable getting tangled. The result is super sweet: a better tablet, a better laptop, and a better lifestyle.


Now. I’ve only got a few months before I start shopping, Microsoft. Can you get this done in time, or will I feel compelled to Mac it up again?

Update Apr. 18, 2011: Just saw a couple of nice posts from Charlie Kindel about how to do unixy stuff on windows here and here.

Sunday, March 18, 2012


I have difficult news. My recent Apple-related post, “Apple expands its China market by 1 million overnight,” contained what I like to call “significant fabrications” (I would call them “lies” but “significant fabrications” contains eight times as many syllables).

I take full responsibility. I should have never let myself post a blog without fact checking myself. You can be sure I’m going to give myself a severe spanking.

To set the record straight: No, Apple will NOT be increasing the pay of its Foxconn workers enough so that they can afford to buy the products they make. I just totally made that up.

But that part about Tim Cook wanting to be called “Tim Timinney Tim”; that’s totally true.

Tuesday, March 6, 2012

And the on-demand music streaming iPhone app winner is…

I recently held an X-prize-like competition for any application that would stream a playlist of music to my iPhone. To win this prize, an app would have to pass the following strenuous task:

I would start the playlist streaming at home (where I have wifi), then put the iPhone in my shirt pocket while I walked to the coffee shop (through zones of 3G and occasional Edge coverage) and then back home again. Throughout the walk the prize-winning app would need to keep playing my playlist.
In other words, to win the prize the continuously streaming music app would have to continuously stream music. Is that too much to ask?

The coveted award for the winner would be $10/month from my own personal bank account.

The contestants, culled from an elite worldwide list of entrants, were Rhapsody, Spotify, MOG, and Rdio.
  • Rhapsody – Rhapsody was my favorite interface, so I really wanted this one to win and gave it a lot of chances to pass the test (more chances than any other). Unfortunately Rhapsody could stream no more than a few songs without hanging at some point (it would just stop, forever, at some random point within a song), and needed me to press “next song” to kick it into playing again. Sometimes it crashed. Some of the crashes were so bad that I had to reinstall the app.
  • Spotify – Spotify would often get stuck at the beginning of songs. Like Rhapsody I’d have to press the “next song” button to kick-start it into playing again. With all its funding, Spotify is far from the underdog that Rhapsody is so I didn’t give it as many chances. Also, I was annoyed at Spotify for bugging my Facebook friends, so I gave it only two chances to survive the walk-to-the-coffee-shop test.
  • MOG – Even the MOG web page got stuck in songs while I was setting up the playlist, and I really hated the drag-and-drop method of creating the playlist (my palsied hands just can’t do such fine motor control). So MOG didn’t make it to the iphone test. Sorry, MOG. You coulda been a contender.
  • Rdio – Rdio passed the test! I tried it a few times, and Rdio always kept on playing. The worst case was when I walked into a grocery store with zero cell signal, and for a couple of minutes Rdio did pause until I got back outside where there was a weak Edge signal, but Rdio never gave up and it never hung and I never had to interact with it to kick-start it into playing again—Rdio just kept on keeping on.
Congratulations, Rdio, from my tests it appears you’re the only continuously streaming music player that actually continuously streams music. Those other apps seriously should be ashamed. The $10/month prize belongs to Rdio (my check is in the mail).


Bonus For Techies Only: If you’re technically minded, and want to understand the fundamentals behind WHY those other applications don’t work in the real world, it’s because most developers don’t develop in, and therefore don’t understand, the real world. I’ve been trying to understand the issue myself lately, and recently created the first version of a tool to help developers and QA solve the problem (see CrappyNet for a more-generic version of a tool that helped us solve streaming problems for RadioWeave). If you’re into this kind of thing please take a look at CrappyNet and give me some feedback. Thanks.