Tuesday, March 26, 2013

Hey, Men! Let's Be Awesome.

There's been much talk about the role and treatment of women in the tech industry lately.

Let's step away from the cesspit of online debate and focus on some positive things we can do. There is a time and place for pointing out what others have done wrong. Since the rest of the Internet has that covered already, let's focus on awesome things we can do.

As men, let's:

  • Recognize that we have a position of privilege and power in the overwhelmingly male technology industry. "Privilege" doesn't mean you haven't worked hard and earned your achievements. I believe you when you say you've worked your butt off.
  • Recognize that, particularly if you're a white male, you may have never experienced what it's like to be in the minority. Let's not tell women or anybody else how they should feel about it. This does not mean you are bad because you are a white male! I'm a white male; I think I'm pretty alright.
  • Realize that a lot of women don't appreciate sexual jokes and conversation from men they don't know. Some enjoy it, some don't care, and many dislike it. They may even find it threatening. Even if you think this is dumb (it's not) then simply accept that a lot of women feel that way. We would not want our mothers, sisters or wives subjected to unwanted sexual conversations from strangers.
  • Realize we can still make jokes about boobs and penises. Nobody is taking that away from us. Let's save it for our friends (of any gender) who enjoy those kinds of jokes.
  • Realize that engineering is the art of creative problem-solving, and we benefit from others' perspectives. Solving problems involves understanding them. Often, this means understanding people. We need more perspectives, not less.
  • Realize that accepting women into our industry means accepting women. Not just accepting women as long as they "think like men."

This industry is important; I really believe in it. If you're reading this, I think you believe in it. We really hurt this industry when we exclude bright minds and new perspectives from our field.

So, let's be awesome.

Thursday, March 21, 2013

What Would A "Computer For Developers" Look Like?

"Workstation" computers typically seem designed for graphics/video professionals, or users who run scientific software.

Why have there been so few systems designed for software developers? The only example that really comes to mind is the Developer Edition of Dell's XPS 13 laptop. In this case, "Developer Edition" means that it comes preloaded with Ubuntu and Dell has sorted out any possible driver issues for you. (Dell, are you listening? I'll take one. Thanks.)

Software developers certainly seem like a market worth pursuing. There are over 1.25 million Americans who identify as software engineers or computer programmers. This is a well-paid profession full of people who use their computers in a demanding fashion for at least eight hours a day, nearly every day. Why aren't computer manufacturers falling over themselves to serve this market?

One reason is because it's hard to define exactly what a software developer would want out of computer hardware, other than "fast, has a nice keyboard, and is hopefully portable."

Virtualization might be an answer. Software developers (and QA professionals) love to run multiple operating systems on a single computer, to test their software and take advantage of tools that only work under a particular operating system. Even the most diehard of Linux developers often needs multiple Windows installs around, if she's making web applications and needs to test them on Internet Explorer.

Existing desktop virtualization software like VMWare and Parallels works well, but can be clunky. You can't boot a guest operating system without booting the host, and guest operating systema have limited access to hardware resources like GPU acceleration. Full hypervisors like Xen or VMWare vSphere get around this issue, but are complex to configure and administrate.

I'd love to see a company take Dell's "Developer Edition" approach a step farther and sell a machine with something like Xen preinstalled, so that we could install/migrate/clone/snapshot multiple operating systems as easily as we copy around .txt files today.

Dell, are you listening?

Apple, Mac Pros, and the "Halo Effect"

John Sircacusa makes a case for Apple to re-invest in the Mac Pro line.

In the automobile industry, there’s what’s known as a “halo car.” Though you may not know the term, you surely know a few examples. The Corvette is GM’s halo car. Chrysler has the Viper. ...Let’s talk about the Lexus LFA, a halo car developed by Toyota over the course of ten years. (Lexus is Toyota’s luxury nameplate.) When the LFA was finally released in 2010, it sold for around $400,000. A year later, only 90 LFAs had been sold. At the end of 2012, production stopped, as planned, after 500 cars. Those numbers should make any bean counter weak in the knees. The LFA is a failure in nearly every objective measure—including, I might add, absolute performance, where it’s only about mid-pack among modern supercars. The explanation for the apparent insanity of this product is actually very simple. Akio Toyoda, the CEO of Toyota, loves fast cars. He fucking loves them! That’s it.

I'm a big believer in the halo effect, but I question whether it can be achieved in today's computer market. Apple, of course, is limited to using the same Intel chips that the rest of the industry uses, and just about anybody computer-savvy enough to crave a faster computer knows this.

Imagine a slightly parallel universe where the entire car industry had standardized on engines and power trains from General Motors. You'd never get excited about the new Ferrari or the new Mercedes because, at best, it'd be powered by the same Corvette engine that every other high-end car is using. It might have nicer seats and a better stereo, but those are nice-to-haves, not things you lust over.

Additionally, computers have been "fast enough" for most users for years now. I'm a software developer and I push my CPU pretty hard, and the fact is that the CPU in my 2011 MacBook Pro is almost never a limiting factor.

Are there any other ways Apple could build a "halo product" in today's computer industry? (Their crown jewel, of course, is OSX but you already get that with every Mac.)

Possibility #1: The "GPU Beast Mac Pro." Suppose Apple sells a Mac Pro that's stuffed to the gills with the biggest, best professional-grade GPUs that nVidia offers. That wouldn't be a bad idea but unlike a faster CPU, very few users would benefit from extra GPU compute power. The vast majority of applications simply can't benefit from the speedup offered by GPU acceleration. Perhaps Apple could somehow make automatic utilization of GPU compute power more pervasive in OSX 10.9, but that's doubtful - Mail.app isn't going to fetch your emails any faster with the GPUs helping it out.

Possibility #2: The "4K Retina Display iMac Pro." Apple's shown an inclination to differentiate its high-end notebook lineup by introducing displays with densities approaching 300dpi. One has to believe they're itching to be the first to accomplish this on the desktop, though of course they're limited by what the display manufacturers can currently produce. What if the next "professional Mac" is a slightly more expandable iMac with an integrated 4K resolution display? It's only a matter of time before Apple brings the high-DPI concept to the desktop, of course - it's just a question of how exactly they'll target it, and whether or not it will be part of an expandable "pro" machine that many of us are hoping for.