Intel demos USB 3.0 at 4.8 Gbps. Wow.

Not sure if this will play out in commercial production, but Intel demoed USB 3.0 at the Intel Developer Forum last week.

There is good coverage of the event and the specification here on CNET.

Intel is working fellow USB 3.0 Promoters Group members Microsoft, Hewlett-Packard, Texas Instruments, NEC and NXP Semiconductors to release the USB 3.0 specification in the first half of 2008, said Pat Gelsinger, general manager of Intel’s Digital Enterprise Group, in a speech here at the Intel Developer Forum.

In an interview after the speech, Gelsinger said there’s typically a one- to two-year lag between the release of the specification and the availability of the technology, so USB 3.0 products should likely arrive in 2009 or 2010. A prototype shown at the speech is working now, and USB 3.0 will have optical and copper connections “from day one,” he added.

The current USB 2.0 version has a top data-transfer rate of 480 megabits per second, so a tenfold increase would be 4.8 gigabits per second. Many devices don’t need that much capacity, but some can use more, including hard drives, flash card readers and optical drives such as DVD, Blu-ray and HD DVD. The fastest flash card readers today use IEEE 1394 “FireWire” connections that top out at 800 megabits per second.

In addition, USB 3.0 will offer greater energy efficiency, Gelsinger said. It will be backward compatible, so current USB 2.0 devices will be able to plug into USB 3.0 ports.

It took me a while to trust USB 2.0 for high speed peripherals like hard drives (versus IEEE 1394 Firewire), but my recent 500GB USB 2.0 external drives have converted me.  The key is to keep them on a dedicated bus, so that USB 1.x devices don’t slow them down.

At 4.8Gbps, I’ve got to wonder whether or not 10G Ethernet will be available in the home in 2 years.  If not, I could see actually preferring USB 3.0 to either eSATA or GigE for my multi-terabyte NAS.

We’ll see.  A lot can happen in 2+ years.

Getting Ready to Write an Apple Mail.app Plug-in for Mac OS X

Blowing some dust off the old compiler this weekend… after about 8 years, I’m actually getting ready to write some real client-side software again.  Just a personal project, for fun.

Nothing fancy, but I’ve decided to see if I can’t write some useful plug-ins for Mac OS X.  In particular, I’m going to see if I can’t improve:

  • Apple Address Book
  • Apple Mail

I tend to joke with friends that when I went to business school, part of the admissions process was officially “turning in” my compiler.  To show you how dated I am, the last serious Mac OS development I did was in Metrowerks Codewarrior.

Over my vacation in August, I went through Cocoa in a Nutshell from the O’Reilly series, just to refresh my memory.  Even when I was on the WebObjects team at Apple, I primarily wrote framework code in Java, not Objective-C, so basically I’ve got to come up to speed again on:

  • Objective-C
  • XCode 2.4
  • Five versions of Mac OS X (the version I worked on became 10.0)
  • Documented methods of extending Apple Address Book
  • Undocumented methods of extending Apple Mail

I managed this weekend to get a sample plug-in for Apple Address Book working.  This wasn’t a huge feat, really, since XCode includes a sample project for this as a default install, and it’s fairly trivial to customize the three Objective-C messages that define the functionality.

If you are looking for the documentation on extending Apple’s Mac OS X Address Book, check out:

Pretty basic really, although adding a contextual menu command for certain fields is hardly the best interface.  I’ve been playing with Plaxo Toolbar for Mac, and trying to figure out how they inserted their drawer into the GUI.

Creating plug-ins for Apple Mail is much trickier, because it’s completely not supported or documented.  Well, I shouldn’t say not supported… it’s not supported officially.  However, Apple Mail does implement a plug-in architecture, and with a few quick setting changes, you can install a wide range of third party plug-ins.

Here are some cool links if you are interested:

  • Demystifying Mail App Plugins.  This blog post covers some high level tips and source code, in Python, to write a quick Mail.app plugin.  Thanks to this post, I re-discovered class-dump, which lets you inspect the classes and methods for any Mac OS X application (very cool).
  • Mail Plugin Template 1.0. Aaron Harnly, you are my hero.  Aaron has posted an excellent XCode project template, with class-dump headers, for building your own Apple Mail plug-ins and installer scripts.  He even answered a simple project question for me over email.  Very cool.
  • CocoaDev.  This is a wiki site dedicated to Cocoa development.  Aaron’s code pointed me here, since it features “Method Swizzling”.  It’s a very sneaky feature of the Objective-C runtime, where you can effectively not only over-ride an method for an object you don’t own, but you can even replace the parent class method in applications that you don’t control!  Read this for specifics (very cool if you’re into programming).
  • Apple Mail Plug-Ins and Tools.  A whole directory site of Apple Mail plug-ins.
  • Apple Mail Plug-In Roundup.  This post on The Unofficial Apple Weblog covered a lot of cool Mail.app plugins.
  • Mail Act-On.  Very cool Mail.app plug-in that lets you map individual rules to keyboard commands.  My favorite Eudora feature, now on Mail.app

So far, I have an Apple Mail plug-in that compiles and loads correctly in Mail.app and logs data into the console.  But I’m going to put that in the “W” column for this weekend, given my incredible level of rust around the gears.

I’m going to be flying to Omaha this week to visit the LinkedIn customer service team… I’m going to try and use the flight time to get a little bit more working.

My biggest question now is how far can I go in terms of influencing the Mail.app UI.  I already know how to:

  • Create a plug-in
  • Insert menu commands and menus into the main application
  • Create my own preferences panel & preferences file
  • Create my own window

However, if I really want to integrate,  I need to figure out how to:

  • Add commands to existing contextual menus (I can’t find them in the NIB files anywhere)
  • Add views/panes to the existing windows (ala a toolbar)

I haven’t found sample code that does either of the above yet, but I’m still looking.

All in all, it’s fun to be compiling again.

Office 2.0 Conference & Social Computing Panel

For those of you in the city, I’ll be on a panel at the Office 2.0 conference at 1:30pm on Thursday, September 6th. The panel is on social computing, and will feature the following people:

Shiv has a post up already about the panel. I haven’t met any of the panelists before this conference, but I’m looking forward to it. You can find out more about the conference here, and more about the panel here (as it is posted). The full schedule is here.

Apple iPhone: Web Development Site is Now Live!

Apple hasn’t released an SDK for client application development for the iPhone, but they have launched a new website for developers interested in customizing their web-based applications for the iPhone.

Apple Developer Connection: iPhone

The site consists of a link to the beta download of Safari 3.0 for Windows & Mac.

The real detail, however, is in this mini-site for web specifications for development for the iPhone version of Safari – specifications for size, what is and isn’t supported, etc.

Very cool.  There may in fact be a halo-effect around websites that optimize for the iPhone.  Given the buzz around the device and the first true rich-browser experience on a mobile phone, there could be a mutually beneficial relationship between compelling web-applications customized for the iPhone and the iPhone itself.  After all, great applications will make the iPhone feel that much more compelling, and tailored experiences can make those applications the preference of the 700K and growing iPhone users.

Google Reader, Meet the Mac OS X Look & Feel

Now this one is a lot of fun…

I moved my blog reading from My Yahoo to Google Reader about 6 weeks ago.  It has been tough to adjust to the new habit – my instinct is to always go to My Yahoo.  But My Yahoo just wasn’t scaling for the number of blogs I like to keep tabs on (now over 100),  and I noticed that a majority of the people reading my blog were now using Google.

Thankfully, Firefox has made this easier.  The ability to quickly change the behavior of “adding a feed” to Google from My Yahoo made the transition simple for new feeds.

For exporting my old feeds from My Yahoo to Google, I found a nifty tip online on how to export an OPML file from My Yahoo and import into Google Reader.  Just spent a few minutes categorizing all my feeds, and I was ready to go.

Well, today I discovered a new trick.

This post shows you how to skin Google Reader using CSS to look like Mac OS X.  It’s really neat, although it’s a little weird that the author’s name is Adam Pash.

On Firefox, you basically want to go here and download Stylish.  Stylish is an add-on that lets you customize the CSS for any website.

Then, go here to download the Mac OS X theme for Google Reader.

Once you unzip, open the CSS in a text editor, and copy & paste it into Stylish.  On Mac OS X, I had to do this manually by opening the Add-Ons dialog, and open the Stylish preferences, but I got it to work.

It’s pretty neat, and I like the new look & feel of Google Reader.  It’s also pretty neat to see CSS as a form of “lightweight plug-in” for websites.  I’ve got to show this to some of the front-end folks on eBay Express – we use CSS heavily, and I bet you could come up with some pretty neat skins for the site using Stylish.

Amazon S3: Backbone to Cheap Multi-GB Web Backup for Mac OS X?

About a year ago, Amazon launched it’s S3 storage service.  This seemed a little strange to me at the time, because Amazon’s core business is as an online retailer… it was unclear to me what type of strategic advantage they would have as a long term of provider of cheap, online storage.

“Let a thousand flowers bloom,” I guess… (one of the most misunderstood quotations used around innovation, by the way.  Check out the source!)

In any case, I received my regular TidBITS digest email today, and it featured web-backup services for the Mac.  What was interesting was that the article featured primarily applications that use Amazon S3 as their backbone!  At $0.15 per GB, and $0.20 per GB/transfer, Amazon is a fairly cheap way to backup & store large libraries, like music & photos.

Several small software shops have built applications to help users do just that…

Here is the original TidBITS article.  The applications covered include:

  • Jungle Disk.   This application is the most polished of the bunch.  It does not handle incremental backups, yet, but it does support scheduled backups.  It will cost $20 when it reaches 1.0, but it’s free right now in beta.  Jungle Disk is available for Mac OS X, Windows & Linux.
  • S3 Backup.  This application, by Maluke, offers different named backups, as well as the ability to exclude files based on pattern matching.  However, it doesn’t offer scheduling or incremental backups, yet.  Still in beta.
  • Bandwagon.  This application is tailored for music lovers who want to backup and maintain a large music library online, to be available to multiple machines or for safe keeping.  Very interesting because it offers menu-bar controls, and support for multiple “storage clouds”, including Amazon S3.

I remember a few years ago looking into online backup solutions, and being totally disillusioned with the low storage volumes and costs offered.  I have about 300GB of content to backup, with daily increments that vary from 10MB all the way up to 2-3GB on days I upload a new set of photos from my camera.

These solutions aren’t there yet, but they are closer.  And the pricing is closer too.

Anyone out there actually try one of these?  Or are you using Amazon S3 for anything else interesting?

How to Set Up an Anonymous Proxy Server on Mac OS X

Several years ago, a good friend of mine worked as an electrical engineer for a company here in Silicon Valley. It was a pretty cool company, and they made pretty cool chips for networking applications.

Ironically, they were incredible tyrants internally when it came to “personal internet usage” – which meant they monitored and/or shut off common ports at the workstations of individual engineers. So while you could be designing a microprocessor capable of routing Gigabit traffic, you couldn’t actually use any of it for common applications like accessing My Yahoo or eBay.

At the time, I wanted to help my friend set up an anonymizing proxy server so he could still access personal email at work. Unfortunately, at the time, it seemed like too much effort.

Well, it’s a few years late, but here is an excellent post on how to set up an anonymous proxy server on your home machine running Mac OS X, and then use it at work to avoid internal monitoring and/or blocking.

Please note, before you click the link, the blog that has the article features some unsavory language in its topics and related posts.  I’m rating it “AL” for adult language.  It’s still a really useful post, however.

There is something still very cool about Mac OS X being unix at heart. Little tricks like this just remind me of that fact.

Third Parties Rush to Fill the DVD to AppleTV Gap

Wow.  That was fast.

I’ve previously written about the AppleTV, and how there was significant potential for the idea to work if there were simple ways for people to convert their existing DVD libraries to iTunes.

The problem is, due to legal liability, Apple likely has no intention to integrate DVD-ripping into iTunes.  So much for Rip. Mix. Burn.

Well, it’s the day after the AppleTV shipped, and already there is a third party application available specifically to rip DVDs to AppleTV supported formats.

DVD to Apple TV Ripper by WonderShare

Ironically, it’s Windows-only.  🙂

Cross Platform Development, Round 2

Even though my blog is now over six months old, I continue to be flattered when I see links to my posts on other sites. I love clicking through each one, and seeing what the author found interesting about my comments and my site.

Most of the links incoming to my site recently have been about coins. Apparently, my write-ups on the new Presidential $1 Dollar Coin program are finding a fan base.

However, I saw an interesting incoming link from the blog of an old friend of mine, Tony Chor, who runs the Internet Explorer 7 team up at Microsoft. It’s called, Cross Platform Development, and it’s basically a refutation of my recent comments about Joost.

I left a comment on Tony’s blog, but I thought it was worth a follow-up post here.

First, let me just say, Tony has been a Program Manager at Microsoft since before I even declared Computer Science as my major at Stanford.  So he knows what he is talking about.

However, in this case, I want to explain a bit more about why I think that high-quality, cross-platform development is an excellent indicator of a great software team.

As Tony points out, writing great cross-platform code is hard. It is very easy to end up with “lowest common denominator” code. Also, if approached poorly, cross-platform development can include layers of code that hurt performance and optimization for any platform:

Also, in order to ease development, cross platform apps often have intermediate layers to factor out the underlying OS. These layers can impede performance and may prevent the app from taking advantage of native services like DirectX or Quartz. The resulting apps aren’t usually as fast as their native counterparts. Microsoft’s Mac apps certainly ran into this problem when writing cross platform “core code” apps on our Windows Layers for Macintosh (WLM) back in the mid ’90s (anyone remember Mac Word 6?)

Yes, I do remember Word 6. Ugh. What a mess. Unfortunately, that was a classic example of a very poorly implemented cross-platform framework, in my opinion. Rather than find commonality across high-level OS services, the Windows Layer Framework attempted to “reassemble” native high level services by re-aggregating low level services. Result? Great Windows application, since that was the model for Windows applications at the time. Terrible Mac application.

I know where Tony is coming from. IE 7 is a platform-specific application. They have not made the browser cross-platform, and Firefox has. Strategically, I believe this was likely a mistake, since it left an opening for a new entrant (Firefox) to enter a market that long since should have been closed. But I’m sure Tony & team have put a lot of thought into the implications of taking applications cross-platform.

It’s actually Tony’s last comment that I want to take issue with, however, in relation to my impression of Joost.

Finally, developing cross platform reduces the overall innovation a developer can provide. Building for multiple operating systems (or browsers) is never less work than building for one. The time spent architecting, coding, testing, and debugging for multiple platforms is time not spent adding new features, making the product more reliable or secure, or satisfying other user demands (or saving investors’ money).

There are certainly no guarantees of a gorgeous, OS-exploitive, fast application when you target only one OS, but it’s way harder when you are trying to serve multiple masters.

There’s no doubt that teams that can execute cross platform consistently well over time are probably great, but just think what they could accomplish if they chose to focus all that talent and energy on one platform.

This is where I have to humbly disagree. The top 10% of software engineers are not just a little bit better than the average software engineer. They are many, many times better. And in my limited experience, I have found that the great engineers can and do produce cross-platform applications that are best-in-class.

More importantly, I believe that being cross-platform makes great engineers better. Some of the best Windows engineers that I worked with in the late 1990s had a history of working on the Mac OS. There is something about an engineer who stays cross-platform that is like someone who learns multiple languages at an early age. They end up with an innate sense of architectural design and trade-offs that is so much deeper and more robust than a single-platform specialist.

True, I believe my biases are based more on entertainment applications than productivity applications. Bungie, before Microsoft acquired them, was an example of a company that produced great cross-platform games with simultaneous cross-platform release. Blizzard, makers of World of Warcraft, currently release their titles with simultaneous cross-platform release. Would their games be better, or more optimized, if they focused on a single platform? More importantly, would their releases be any more successful if they were single platform?

Maybe the difference is that an entertainment application, like a video game, has a custom interface that doesn’t have to live or work with other applications. They just take over your machine, for the most part. Productivity applications have to “play nice” – they need to look and behave like all of your other applications.

I’m not sure, but I will tell you this – I still believe that when you see rapid or simultaneous release of high-quality, cross-platform applications, in general you are looking at a very strong development team.

Many thanks again, Tony, for reading my post, and taking the time to respond. And sorry, by the way, that your site is now filled with Mac OS and Firefox ads… 🙂

Joost Now Available for Mac OS X Intel

Just posted on the Joost blog last week.  Joost, previously known as The Venice Project, is now available on Mac OS X.

As reported on GigaOm, In an interview earlier this year the CEO Fredrik de Wahl had explained how easy it was for the company to port their client to other operating environments. He had promised a Mac client in less than two months.

I will self-admit to being biased, but I always believe that it is an exceptionally good sign to see a client-software company go cross-platform almost immediately.  Supporting multiple platforms requires well thought out architecture and code decomposition, and I’ve found that the engineers that know how to do this tend to be on the high end of the scale.  Not only that, the code they produce tends to also stand up better over time.  Blizzard, makers of World of Warcraft, are the ultimate examples of this.  Every release of every product comes out simultaneously for Windows and for the Mac.

You can argue about the reasons why, but to me, it’s because they are just that good.

I’m excited to play with Joost first hand.

Skype Releases Version 2.5 for Mac OS X: Now with 640×480 Video Chat

Skype continues to release incredibly great software at a record pace. They have just officially released the new Skype client for Mac OS X, version 2.5.

The new release features:

  • Conference Calls with up to 10 people simultaneously
  • Send SMS messages to buddies with cell phones

You can download Skype 2.5 for Mac OS X here.

Jason O. Grady has also found a cool new hack for the new Mac OS X client – 640×480 Video Chat.

You can find the instructions here, in the Skype Garage. Basically, you just edit the config.xml file.

High-quality video calls

Save and close config.xml, restart Skype and do a video call. The remote party should now see your picture in 640×480 resolution, instead of the standard quality 320×240.

To enable high-quality video calls with Skype for Mac, first download the latest version of Skype for Mac. You need version 2.5.0.85 or newer.

Then, quit Skype, navigate to “~/Library/Application Support/Skype/yourskypename/”, i.e go to your home folder, and then the Library folder in it, and then Application Support in Library etc. Find the file called config.xml.

Open the file and find the <video> block that is itself inside the <lib> block. The <video> block probably looks as follows.</video></lib></video>

<video>
<device>Built-in iSight</device>
</video>

Now, edit this <video> block, adding capture height and width settings. The block should now look like this.</video>

<video>
<capturewidth>640</capturewidth>
<captureheight>480</captureheight>
<device>Built-in iSight</device>
</video>

Note that both parties need a fairly high-end computer (Mac or PC) to get good quality and framerate, plus a good Internet connection.

I’ve got to hand it to Skype. Not every company can produce high quality desktop software for multiple operating systems and still maintain the level of innovation, quality, and speed that Skype does. As a former developer, that tells me that Skype has an outstanding development organization, the right spirit, and the right people to continue to outperform.

I also love the open communication about experimental features like this, through a page like Skype Garage. People think innovating and moving quickly is unique to web development, but the right engineers and the right engineering philosophy can and will leverage the strength of their community to produce great client software as well.

Kudos to the Skype team on another great release.

Microsoft Caught with a Bad Case of Mac OS Envy

There is a new blog on WordPress called Graceful Flavor, and they tend to focus on Apple news. They had a post yesterday that immediately caught my eye, entitled:

New Microsoft Email Shows Panic Over OS X Tiger Features

Now, everyone these days expects Microsoft to have iPod-envy, iTunes-envy, even iPhone-envy. But given that the OS wars were largely fought and won in the late 1980’s and early 1990’s, it’s a bit surprising to see a dominant giant like Microsoft caught with not only acknowledging the strengths of Mac OS X, but almost despairing at them.

A snippet here, from an email from Lenn Pryor, the former Director of Platform Evangelism:

Tonight I got on corpnet, hooked up Mail.app to my Exchange server and then downloaded all of my mail into the local file store. I did system wide queries against docs, contacts, apps, photos, music, and … my Microsoft email on a Mac. It was fucking amazing. It is like I just got a free pass to Longhorn land today.

What about this one?

Here’s my take on this:

  1. Big suprise, Mac OS X is a strong product.  Let’s face it – the dominance of Windows over Mac OS had everything to do with x86 and DOS compatibility, and very little to do with the overall design of the 100s of features that make up modern operating systems.    At minimum, it’s fair to say that Mac OS X is an extremely strong product in many areas, and it’s not surprising to see Microsoft clearly interested in learning from its competition.  I know that within Apple, we spent plenty of time discussing new and planned Microsoft features.
  2. Microsoft is a huge company, these quotes didn’t come from Bill Gates.  Is it really so shocking that there are Apple fans within Microsoft?  Come on.  It’s a huge company, and it’s not surprising that several people in middle management are Apple fans.  Sometimes your best people are the ones who can look outside your four walls and see the world differently.  I don’t know if these people are considered thought leaders or pariahs within Microsoft, but either way, these emails aren’t really surprising.
  3. The grass is always greener…  When I was at Apple, while most people were convinced of Apple’s superiority in design, innovation and approach, there was always an inherent sense of insecurity and envy of Microsoft’s ability to reach the broadest audience.  There was envy of their resources, their ability to fund money-losers for years on end in long term markets.  But this wasn’t unique to Apple.  Or Microsoft.  All companies who compete ferociously in technology develop an appreciation, which can quickly turn to envy, for the unique advantages of their competition.  The trick is to remember that strategy is about unique differentiation – what makes your company, your products, your services and your brand unique in the market.  Trying to match your competitors feature-for-feature is a death spiral towards commoditization and lack of identity.

No matter the bravado, I guarantee you that there are people at Apple writing memos about the inspiration they have gotten from Vista.  Sure, they’ll say, there’s a “better way” to do some of these things.  But they’ll have a note of envy for DirectX 10.  They’ll be jealous of how quickly third parties come in to fix holes in the Vista feature set.  And Mac OS 10.6 will likely end up stronger for it.

Has HD DVD’s AACS Protection Been Cracked Already?

Caught this on Gizmodo this morning:

They told us it was bullet-proof, unbreakable. Yet in a mere eight days, a hacker by the name of Muslix64 has managed to single-handedly break the Advanced Access Content System (AACS), the standard that Disney, Intel, Microsoft, Sony, and others developed to protect HD DVD and Blu-ray discs. Or has he? The BackupHDDVD software Muslix64 posted on a Doom 9 forum thread lets you decrypt Full Metal Jacket, Van Helsing, and a few other popular HD DVD titles, but there’s still no way of telling how he managed to get a hold of the decryption keys. Only time will tell if Muslix64 is the DVD Jon of the next-gen optical discs. – Louis Ramirez

If true, this is extremely interesting for a number of reasons.  The music industry is still in denial about what their customers want and will allow them to monetize, after years of digital music.  To date, most digital music is still acquired through a purchased CD and ripped to the MP3 format, which is compatible with all players.

It seems obvious, by default, that video will follow the same path.  That the preferred method of acquisition will be a lawfully purchased DVD (now less than $5.99 in some places), ripped easily to the MP4 format, with no digital rights management to deal with.

Wouldn’t it be ironic, if, in all the fury over the HD-DVD vs. Blu-Ray formats, if one of them is cracked and the other isn’t?  The movie industry might swing to the “safe” format, while consumers might quickly gravitate to the one that allows them to more easily use the content (the “open” format).

Of course, both of these formats will be cracked in relatively short order.  It seems inevitable given the complexity involved in protecting content for delivery, and the literally millions of young hackers out there trying to become the next DVD Jon.

We’ll see if this one pans out.  It might be just a one-off crack for a few titles.

Microsoft’s Jim Allchin: ‘I would buy a Mac if I didn’t work for Microsoft’

Sorry, but I found two Apple/Microsoft snippets worth posting today.

This ComputerWorld article is amazing.

Jim Allchin is the long-time development chief for Windows at Microsoft. ComputerWorld is reporting that a 2004 e-mail from Allchin chastizes Microsoft for having lost focus on the user, and says that he would buy a Mac if he didn’t work for Microsoft.

“In my view, we lost our way,” Allchin, the co-president of Microsoft’s platform and services division, wrote in an e-mail dated Jan. 7, 2004. The e-mail was presented as evidence late last week in the Iowa antitrust trial, Comes v. Microsoft Corp.

“I think our teams lost sight of what bug-free means, what resilience means, what full scenarios mean, what security means, what performance means, how important current applications are, and really understanding what the most important problems our customers face are. I see lots of random features and some great vision, but that does not translate into great products.”

I haven’t read the email in detail, but as much of an Apple fan as I am, I think his tone represents more of your typical “wake-up call” email that gets sent from time-to-time as a senior executive in software.

Even great software teams and companies can easily get caught up in their own internal analysis, politics, and design cul-de-sacs.  Great UI designers can get caught up in their “frameworks”.  Great product managers can get caught up in their “strategies”.  Sometimes, the needs of the end user can get lost in the passion of pursuing the perfect model for your software application.

As a result, it’s hard as a leader as a software company to not be forced to remind your team periodically that it is the customer that matters.  Listen to them, focus on them, respect them, and delight them.  Not your competitors, not your frameworks, and not your strategies.  Sometimes, to be emphatic, you try to evoke a passionate response by invoking taboos.  I have to imagine that the head of Windows saying that he would buy a Mac is as taboo as it gets.

I don’t fault Allchin here, although these days you pretty much have to assume that any executive email at a large company can get circulated publicly.