I live in Silicon Valley. I'm really into machine learning and Formula 1. I'm 24 years old. More about me…

Friend me up! Here's where I'm at…

LinkedIn
Flickr
Delicious

Introduce yourself! Feel free to IM (Jabber/Gtalk) or email me.

Top Posts:
So I went to Startup School
Waking from a 64-bit nightmare
A quick foray into linear algebra and Python: tf-idf
Explaining my addiction
The importance of being abstract

Top Commentors:
Paul Stamatiou (4)
Gordon (4)
Arthur (2)
Anton Lindstrom (2)
m13 (2)

Friends
James Broad
Mike Speiser
Mike Heijmans
Annie Lausier
Jay Liew
Gabriel Serafini
Kevin Pratt
Ben Wann
Bart Chapin

Recommended Reading
Joel on Software
Rands in Repose
Paul Graham
Gary Vaynerchuk
Coding Horror
xkcd

All content © 2008 Tim Trueman unless otherwise noted.

Subscribe in a reader Article archives

Cupertino, start your copiers

April 6, 2008 Link

As I said at the end of this article back in February, I think Microsoft could try something crazy that just might work; Windows 7 could make Microsoft the first company to actually make use of the Internet in an operating system. Steve Ballmer gets that Microsoft needs a big change I think, but I’m not sure he really knows how to do it. In fact I’m pretty sure he doesn’t know what to do. Yahoo! isn’t the answer to your prayers Steve, trust me. Here’s a freebie for you…

Bishop's Peak, San Luis Obispo, CA

I’ve come up with the 12 Steps to Windows 7 of Awesomeness™!

1. Ditch the NT kernel; use Linux. Just because Linux wasn’t invented at Microsoft doesn’t mean it’s not a total waste of resources to maintain Windows. I’m not saying I think it’s crap; I think very highly of it, but you’re not getting any return on investment for these resources. Why spend tons of money here when you don’t have to? Just do it. And contribute the awesome things you used in NT back to the Linux kernel.

2. Ditch the Windows name. Props to ExtremeTech for this idea. The name just leaves a bad taste in my mouth, and, even if it’s not true, Windows now stands for insecurity, pain, and suffering to everyone. Leave those memories behind. Don’t pick something shitty and misty like Vista. You want to signal customers you’re doing something new, exciting, and thinking totally different.

3. Build a new type of browser that blurs the distinction between desktop and web apps. There’s a lot of reasons web apps cannot compete. Arguably the biggest difference is caused by Fitts’ law. Fitts’ law is a mathematical formula for the amount of time it will take to hit a target, depending on the size and distance of that target. Some places on the screen are easier to get to than others. As Bruce “Tog” Tognazzini explains, the easiest is directly under the pointer, because you don’t have to move anything. The next easiest location is the corner, because it has essentially infinite height and width, making it a really easy target to hit. The edges only have one infinite direction but they are also easy to reach. The thing about web apps is they cannot use the corners or the edges of the screen. Desktop apps can.

Here’s what I’m suggesting: build a browser that lets web apps have the same functionality as desktop apps. It will need to let the web app take complete control over the browser’s menus and windows. It needs to be able to open and save files like a desktop app. It should be able to provide a systray/menubar item for easy access. A few tricks to getting this to work would be thinking of each web app as a separate instance of the browser, just like desktop applications are separate. Caching web apps could provide pretty decent performance and strong offline APIs (e.g. Google Gears, or a SQLite DB similar to WebKit’s HTML 5 implementation) could blur the line even further. Imagine Google Docs in this browser. Or Flickr. Hells yes!

MacBook Air

4. Allow OS to be installed completely over the Internet. Look at the beginning of the trend: the MacBook Air doesn’t have a DVD drive. Seriously, physical media has got to die. CD/DVDs suck. A lot. The trick is how do we live without them. Trick one: allow a direct install from microsoft.com. Trick two: allow the user to install from an ISO image on another machine similar to Apple’s Remote Disk but without the physical disk. Just write some software to server up ISO images. You could use multicast DNS so that there’s no configuration, it just auto-discovers available media on the local network.

5. Stop worrying about piracy; you’re only pissing people off. Seriously. No more keys, licensing, or Windows Genuine Advantage validation shit. People have about zero tolerance for being punished just because you’re paranoid of losing revenue from a few customers. If you have to, think of the lost revenue as marketing your product as not fucking obnoxious.

6. Time Machine style backups to something functionally equivalent to Amazon S3. Copy Amazon’s Web Service work. Then you can build amazing products on top of that infrastructure. The goal here is to have all the user’s data stored on Microsoft’s servers, with the hard drive acting as more of a cache. That way the user can have way more data than their hard drive can hold and they don’t have to worry about managing it. All the user’s documents will be automatically backed up and placed in a versioning system on the Internet in a fashion similar to Apple’s Time Machine. Users don’t want to buy hardware and manage it themselves. Highly skilled IT teams do a much better job. I’ll explain later how you can afford to do this for all your users.

Storage Area Network

7. Nail the operating system’s user experience. I’ve already hammered on why using an Apple style menubar is important. I also think it’s important to come up with something better than the dock, which is one of the worst UI elements ever invented. Make use of the corners, which Ubuntu does really well. Clockwise from top-left it’s the application menu, power menu, trash, and show desktop. Both Windows and Mac OS X fail to use all four corners. What you want to do is really worry about creating a way for your users to be able to string together one small victory after another (e.g. “I downloaded a PDF, and I didn’t have anything that could read PDFs, but it downloaded and launched a reader in seconds…it just worked!”). Which leads me to my next point…

8. Autoinstall anything needed like Ubuntu. Users will be grinning ear-to-ear when software simply works. If the user really cared about which Bittorrent app they used they would install it themselves. Which is why users don’t really care about what software they use to accomplish a task. Take care of this for the user. The average person wasn’t meant to figure this stuff out on their own and it’s just a bad experience to force them to manage software by themselves. Users want things to work and the less thinking they have to do about it, the happier they will be. Happiness is what you should be concerned with, as this quote explains how frustrating experiences are today:

Every few days some crappy software I can’t even remember installing pops up noisy bulletins asking me if I want to upgrade something or other. I could not care LESS. I’m doing something. Leave me alone! I’m sure that the team at Sun Microsystems who just released this fabulous new version of the Java virtual machine have been thinking about the incremental release night and day for months and months, but the other 5,000,000,000 of us here on the planet really don’t give a flying monkey. You just cannot imagine how little I want to spend even three seconds of my life thinking about whether or not to install that new JVM. Somebody out there is already firing up Gmail to tell me that the JVM mustn’t just upgrade itself “because that might break something.” Yeah, if the entire collective wisdom of the Java development team doesn’t know if it’s going to break something, how am I supposed to know? Sheeesh.

Joel On Software, Elegance

9. Move your apps (e.g. Office) to web for free. No sane human being is going pay $300 or whatever it is you charge as apps become more web-based. You’ve made your money here. Move on. Besides you can charge users for storage and bandwidth on a per-month basis. Same thing for businesses with collaboration packages on a per-employee, per-month basis. You’ll make more in the end. How many companies can I think of still running Office 2003 (or even 2000)? Oh yeah, all of them.

10. Decide on a regular and quick release schedule. Hey, it works pretty well for Ubuntu, although you don’t have to be as aggressive as six months. I’d shoot for 12-18 months. 60+ months just isn’t going to cut it. Don’t ever pull that shit again. Ever.

11. Do sassy advertising; I know you guys have a sense of humor. Be edgy, stick it to the guys who have been tearing you apart. People should be laughing so hard they aren’t physically able to send the YouTube URL for your commercial to their friends. I can imagine a nice, sassy marketing campaign sticking it to Apple about their “Think Different” slogan.

12. Hire some young charismatic executives and put them front and center. You’re not going to find Steve Jobs, but you can do better than Bill Gates or yourself (although that remix of your little “developers, developers, developers” speech is entertaining, in a sad way). Here’s how you should measure success: if there aren’t any rumor sites about your new OS, you haven’t succeeded.

Bonus Points

Embrace standards and go totally open source. Don’t waste time on something just because you didn’t build it. Use what’s out there. And if you contribute back to the community you’ll be buying goodwill for your brand.

Shelby GR1

What about the bottom line?

OK, I know what Steve is thinking at this point. How the fuck am I going to make any money off this? Right, I’ve got an idea. Give this futuristic OS away for free. Totally free. It’ll be brilliant. Wait that didn’t involve money going into Microsoft’s coffers. Oh yes, charge for bandwidth and storage your customers actually use. Amazon Web Services style. Backups, system installs, restores, and saving those Office documents. Charge for the storage usage and bandwidth used every month. You can probably charge more than you tried to for Vista. People will love it and not even notice you’re making more money than before–nobody likes to pay $200+ at once. For example, XP cost $200. It lasted for six years (2002-2008). This equates to $33 per year for Microsoft. If you just charge for bandwidth and storage at a rate of $5-20 a month, you’re making anywhere from $60 to $240 a year. That’s more money for you, as well as happier customers with better experiences.

What do I want to do today? Use an OS like what I just described. If anyone can deliver it, it’s Microsoft. Apple’s the only other player and they just don’t really get the Internet. Then again, nobody really does.

Maybe I’m just crazy…thinking that it’s possible Windows 7 could actually be the second coming.

So, when is the future going to arrive Steve?

Thanks to Annie and Adam for reading drafts of this!

Points 1 and 2 might not happen within our lifetimes. I hesitate to use the word “never,” but it really does seem to run completely counter to the entire Microsoft “culture,” which they’ve completely ingrained themselves in. Suggesting that they use the Linux kernel and build upon it actually makes me think of an analogy from when I took a Civil War History class.

At a later point in the war, when the south was losing, there was some general/commander/something that actually suggested, at a big meeting of officers, that they use some of the black slaves as soldiers. He thought it was a pretty neat idea, and in all actuality, it might have worked out well for them, since it would mean a significant increase in man-power. But the other generals were appalled that he would even suggest such a thing, and sent him off on what was clearly a suicide mission.

It wasn’t because it was a bad idea, at all. I mean, tactically, it was probably a very good idea. But it ran so completely counter to their whole culture, their mindset, that they saw it as being completely outrageous and discounted any possible benefits it would offer. The general mentality in the south, at the time, was that the poor, white farmers who were on the bottom of the food chain and were the lowest of the low could still find solace in knowing that there was always someone worse off–that they were always “better” than a whole group of people. But to use the slaves as soldiers would create the implication that they were actually equals, and that was just unheard of.

The same thing is true with this. Microsoft still doesn’t really view Linux as being “equal,” even though Windows is actually out-performed in many respects by its open-source competitors. Suggesting that they change their whole mindset about that would probably get you and your battalion sent off on a suicide mission.

Gordon on April 7, 2008 at 10:04 AM

Well this is a bit dreamlike don’t you think ?
Although I might want to argue about the 1. point, as much as I love Linux, and the idea of development by the community, it might not be the best idea. I think they should embrace the POSIX standard as it is, with the smallest kernel possible. But hey, I love all the other points very much so, you’re cool, thanks :D

Anonymous on May 17, 2008 at 11:02 AM

Have your say

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Safari hates me