Apr 13

On peanut butter and chocolate and APIs…

A friend recently posted a link to this blog. It’s an interesting read about where you should focus when building your app; should you have one app for each platform, or an API that goes as high up as possible into each platform?

In particular, he quotes the expression, “the API is the asset, the UI is simply throwaway”.

I get the point he’s trying to say. Platforms come and go – but an API should be designed to be durable. I kind of agree, and I kind of don’t. Let me explain.

When a developer builds an API, it generally exposes rough verbs that relate to user tasks. When a designer or developer builds an application, it should be entirely defined by the tasks that a user needs to complete, and ideally, take advantage of distinct benefits of each platform where the investment to comply with those hooks increases the ease of use of the application.

In a nutshell, you are designing an API to expose a service, and an application to deliver an experience. The goal of a good development team should be to take the API as high up the stack as the application will allow – without exposing the user to the flow of the API directly. Think of an old recliner with the padding crushed down over time. You feel every nuance of the springs or metal bars holding it together. A good application design provides the padding to shield the end user from that pain, without overstuffing it. You want to invest enough in the UI to deliver an experience representative of (your application + that platform). Perhaps the expression quoted isn’t intended to be so harsh towards the UI as to make it seem like a wood veneer appliqué, but that’s how I read it. It’s true – you want to make as much of your code as portable as possible (the API), but invest where you need to in order to provide the best experience (the UI).

The goal of the API is to provide structure, the goal of the user interface is to provide the abstraction between your API and the user experience your application seeks to deliver for that platform. Peanut butter and chocolate.

Apr 13

“Bring this country to its knees…”

“It’s increasingly likely that a small group of well-financed people are going to be able to really bring this country to its knees.”

I couldn’t agree more, which is why we shouldn’t let them be re-elected. Anyone willing to grab a pitchfork and stab the rule of law in the name of fear doesn’t deserve to hold office in this country.


Fox News: Republican lawmaker defends call to torture

(Linked from USA Today)




Apr 13

Learn one weird old trick to reducing your disappointment in life

Stop buying more stuff, believing that buying more stuff will make you happy.


Happy Earth Day.

Apr 13

Windows 8 and OS X Mountain Lion – separated at birth?

Alright – shake out the giggles from the title, and let me show you why I said that.

Until recently I had been using Windows 8 every day – and recently switched to a Mac (running 10.8 Mountain Lion) as my primary computing device. The more I have used Mountain Lion – especially with apps in full-screen mode – the more certain things felt subtly similar to Windows 8.

I believe that Mountain Lion is yet another step in Apple’s gradual (some might say slow) rhythm to converge the iOS and OS X platforms, as iOS devices become more capable and OS X becomes more touch friendly, but Apple is doing it in a very cautious way – slowly building a visual and functional perimeter around Mac applications to make them behave much more like iOS applications. I have a thesis around that, which I’ll try to discuss in another post soon. But the main point is that Apple and Microsoft are both shooting for relatively common goals – immersive applications available from an application marketplace that they control for their platforms – with an increasing emphasis on touch – or at least on gestures. I’m not going to say who cloned whom, as many of these are simply examples of multiple discovery, where Apple and Microsoft, largely now chasing common goals, implement similar features in order to achieve them. Let’s take a look at a few similarities.

Pervasive Cloud Storage

From the first time you sign on to Windows 8 or Mountain Lion, the similarities begin. On Windows 8, it tries the hard sell to get you to use a Microsoft Account for your identity – not linking it to a local account as you can do with an Active Directory account, but making your Microsoft Account a local account, and enabling you to synchronize settings (but currently not applications and the Start screen) between two or more computers.

Windows SkyDrive Sync

Apple, on the other hand, doesn’t embed iCloud quite as in-your-face, and doesn’t use it to synchronize most settings (or Dock items – unlike its predecessor, MobileMe) but does embed it all over the operating system with several built-in features (such as Safari tab synching across OS X and iOS) Photo Stream, Notes, and Reminders, with applications also able to hook in on their own for storage. Unlike SkyDrive, iCloud (like the file system on iOS) is opaque, and not user navigable – only exposed through applications and operating system features that elect to hook into iCloud. Speaking of hooking into iCloud, some apps like TextEdit ask if you want to save new or existing documents locally or in iCloud (with a dialog that is, honestly, un-Apple-like).

iCloud Sync

Heads-up Application Launcher

Both Windows 8 and Mountain Lion provide a “heads-up” approach to launching applications. With Windows 8, this is the Start screen. With OS X, it is Launchpad, first introduced with OS X Lion in 2011. Windows 8’s Start screen (love it or hate it), is a full-screen (usually multi-screen, continuously scrolling) launcher. This launcher can feature notifications and additional information from the applications themselves. Applications can be grouped, and “tiles” can be resized, but not combined into collapsible folders, and are somewhat fussy about placement. Windows does provide interactivity through the Start screen, in the form of Live tiles. See the Weather app below for an example of a Live tile, and Productivity as an example of a group. To my point about fussiness – note the Remote Desktop tile, and the two to its left. Remote Desktop cannot currently be placed underneath CalcTrek in that column – the Start screen always wants columns of a set width (one wide column or two double-width columns), not a single-width column.

Windows Start screen

Since OS X Lion (10.7, almost two years ago), Apple has included Launchpad, which is a feature that presents a (drum-roll, please) full-screen (usually multi-screen, individually paged, as in iOS) application launcher. Unlike the Start screen, Launchpad does not feature any sort of status for applications. They are a static “sea of icons” as Microsoft likes to say about iOS. Instead, notifications now use the Apple Notification Center, which is integrated into the shell. Launchpad application icons don’t ever have notification “badges”, say for reminders or new mail. Instead, notifications are available for applications that are in the OS X Dock or in Notification Center. One or more application icons in Launchpad can be grouped together into a folder, which can be named – just as in iOS. Here is Launchpad:


Intriguingly, OS X Mountain Lion added a much needed feature to Launchpad (which Windows 8 featured from the first day the public saw it), type to search the list of applications. Here is Windows 8 app search, and here is the same feature in OS X.

Application Store

File under “obvious comparison point”. Beginning with OS X Lion in 2011, the Mac App Store offered a limited selection of applications for free download or purchase. In Lion, these were effectively just Mac Apps that were willing to forego 30% of their sales revenue to be in the store (they didn’t have to live within tight constraints). In Mountain Lion, apps were forced to live within the confines of a sandbox, much like applications on iOS – where the damage one app can do to others, the operating system, or user data, is limited. Windows Store applications (WinRT applications) by definition must live within a very strict sandbox – in many ways more strict than the rules required beginning with Mountain Lion.

The Windows Store follows the same design paradigms as other Windows 8 applications. In general, the design of the Windows Store and the App Store on OS X are remarkably similar. A significant difference is that Windows Store applications can be – at the developer’s discretion – provided as trials. No such feature is explicitly available in the App Store, though some developers do achieve a similar goal by providing a free simplified or limited version of the application that is unlocked through an in-app purchase.

Here is the Windows Store:
Windows Store

Here is the App Store on OS X (running windowed, though it can of course run full-screen too):
App Store on OS X

Immersive Applications

Windows Store applications, by definition, are immersive. The full-screen user interface is designed to remove window chrome and let the application itself shine through. Windows Store applications must be either full-screen, snapped, or backgrounded. The next release of Windows is expected to add more window modes for Windows Store applications, but will still not add (back) overlapping windows – in other words, it will still be more like Windows 2.0 than Windows 3.0.

Here is an example of a Windows Store application, the immersive mode of Internet Explorer – which is only capable of being run full-screen or snapped with another app, not in a standalone window:

Modern IE

Here is an example of a full-screen application on OS X Mountain Lion. Note that not all applications can run full-screen. However all applications that can be can also be run windowed. Here is an example of Pages running full-screen on Mountain Lion:

Here is Pages with that same document in a window. The full-screen models of both Mountain Lion and Windows 8 feature hidden menus. The Windows 8 App bar as implemented for Windows Store applications is hidden off the screen to the top or bottom of the application, and can be implemented in wildly varying implementations by developers. The menus for full-screen applications in Mountain Lion are effectively the same Apple Menu-based menu that would normally appear when it was running not in full-screen. The main difference is that the Apple Menu in non Full-screen mode is detached – like Mac applications have always been. In full-screen mode, the menu behaves much more like a Windows application, stuck to the application running full-screen. The menu is hidden until the cursor is hovered over an area a few pixels tall across the top of the screen. Similarly, the Dock is always hidden when applications are running full-screen, until the cursor hovers over a similar bar of space across the bottom of the screen.

What is kind of fascinating to consider here is that Internet Explorer 10 in Windows 8 is, in many ways, mirroring the functionality provided by a Lion/Mountain Lion full-screen application. It is one binary, with two modes – Windowed Win32, and full-screen immersive – just as Pages is displaying in the images shown and linked earlier.


In “desktop mode”, both Windows 8 and OS X Mountain Lion focus more on gestures than previous releases of both. With a touch-screen or trackpad, Windows 8 is very usable (I believe more usable than it is with a mouse), once you have mastered the gestures included. Both have aspects of the shell and many applications that recognize now common gestures such as pull to refresh, pinch to zoom, and rotation with two fingers.

Windows 8 provides a single, single-finger in from the left, gesture to switch applications one at a time, which can be expanded to show a selection of previously run applications to be available, but also includes the desktop. Though I feel Windows 8’s app switching gesture to be limited, it works, and could be expanded in the future to be more powerful. Here you can see Windows 8’s application switcher.

I have used gestures in iOS for the iPad since they first arrived in a preview form that required you to enable them through Xcode. The funny thing about these gestures is, while they aren’t necessary to use on the iPad, they are pretty easy to learn, and can make navigating around the OS much easier. When I started using my rMBP with its built-in trackpad and a Magic Trackpad at my desk, I quickly realized that knowing those gestures immediately translated to OS X. While you don’t need to know them there either, they make getting around much easier. Key gestures are common between iOS on the iPad and on OS X:

  1. 5-finger pinch – iOS: “closes” application and goes to shell application launcher – OS X: Goes to Launchpad
  2. 4 finger-swipe left or right – navigates up or down the application stack of iOS applications/OS X full-screen applications, desktop, & Dashboard (which I disable, as I don’t find it useful).
  3. 4 finger swipe up (or double-press of home button) – on iOS, shows you the list of recent applications from most recent  to least (left to right). Swiping left moves you down the stack. Swiping right moves you up the stack (see 2, above). On OS X, this shows you “Mission Control”, which is effectively the same thing as iOS, just with desktop and full-screen applications included
  4. 3 or 2 finger swipe to the left while on the desktop exposes OS X’s Notification Center.
  5. 2-finger swipe in many OS X applications is used to navigate backwards or forwards, including Safari and the App Store. Regrettably, two-fingered navigation back and forth is not available in the Finder (a weird oversight, but perhaps a sign of the importance Apple feels about the Finder).

Here is OS X’s Mission Control feature, exposing two full-screen applications (iTunes and Pages) and three applications on the desktop (Reminders, Safari, and Mail):

Mission Control

The most fascinating thing here is that, while Windows 8 has been maligned for it’s forced duality of immersive-land and the legacy desktop, the Mac is actually doing the same thing – it just isn’t forcing applications to be full-screen (yet). Legacy applications run on the desktop, and new applications written to the latest APIs run full-screen and support gestures. Quick – was that sentence about Windows 8, or Mountain Lion? It applies equally to both!

I think it’s very interesting to take a step back and see where Apple has very gradually moved forward over the last several instances of OS X, towards a more touch and immersive model, where Microsoft took the plunge with both feet, focusing first on touch, while leaving the Win32 desktop in place – but seemingly as a second-class citizen in priority to WinRT and Windows Store applications.

The next several years will be quite interesting to watch, as I think Apple and Microsoft will wind up at a similar place – just taking very different steps, and very different timeframes, to get there.

Apr 13

The PadFone is not the future

I’ve been pondering the existence of devices like the Asus PadFone and PadFone 2 recently.

Not really convertible devices, not really hybrid devices, they’re an electronic centaur. Like an Amphicar or a Taylor Aerocar, the PadFone devices compromise their ability to be one good device by instead being two less than great devices.

I haven’t found a good description of devices like the PadFone – I refer to them as “form integrated”. One device is a dumb terminal and relies on the brain of the other.

While a novel approach, the reality is that form integrated devices are a bit nonsensical. Imagine a phone that integrates with a tablet, or a tablet that integrates into a larger display. To really work well, the devices must be acquired together, and if one breaks, it kills the other (lose your Fone from the PadFone, and you’ve got a PadBrick).

You also wind up with devices where the phone must be overpowered in order to drive the tablet (wasting battery) or a weak phone that results in a gutless tablet when docked.

Rather than this “host/parasite” model of the form integrated approach, I would personally much rather see a smart pairing of devices. Pairing of my iPhone, iPad, and Mac, or pairing of a Windows Phone, Windows 8 tablet, and a Windows 8 desktop.

What do I mean by smart pairing? I sit down at my desktop, and it sees my phone automatically over Bluetooth or the like. No docking, no need to even remove it from my pocket. Pair it once, and see all the content on it. Search for “Rob”, and see email that isn’t even on the desktop. Search for “Windows Blue”, and it opens documents that are on the iPhone.

The Documents directory on my desktop should be browsable from my phone, too (when on the same network or if I elect to link them over the Internet).

Content, even if it is stored in application silos, as Windows Store applications and iOS/OS X applications do, should be available from any device.

I think it would also be ideal if applications could keep context wherever I go. Apple’s iCloud implementation begins to do this. You can take a document in Pages across the Mac, iPad, and iPhone, and access the document wherever you are. Where Asus is creating a hardware-based pairing between devices, Apple is creating a software-based pairing, through iCloud. It is still early, and rough, but I personally like that approach better.

My belief is that people don’t want to dock devices and have one device be the brain of another. They don’t want to overpay for a pair of devices that aren’t particularly good at either role and instead will pay a premium for two great devices, especially if they integrate together seamlessly and automatically.

Much as I believe the future of automotive electronics is in “smartphone software integrated” head units rather than overly-complex integrated computing built into the car, the future of ubiquitous computing lies in a fabric of smart devices that work together, with the smartphone most likely being the key “brain” among them. Not with its CPU driving everything else, but instead with it’s storage being pervasively available wherever you are, without needing to be docked or plugged in.

Apr 13

Windows XP – Hitting the Wall

Just under one year from now, on April 8, 2014, Windows XP leaves Extended Support.

There are three key questions I’ve been asked a lot during the past week, related to this milestone:

  1. What even happens when Windows XP leaves Extended Support?
  2. Will Microsoft balk, and continue to support Windows XP after that date?
  3. What will happen to systems running Windows XP after that date?

All important questions.

The first question can be exceedingly complex to answer. But for all intents and purposes, the end of Extended Support means that you will receive absolutely no updates – including security updates – after that date. While there are some paid support options for Windows XP after 4/8/2014, however as we understand it they will be very tightly time limited, very expensive, and implemented with a contractual, date-driven expectation for a retirement of the organization’s remaining Windows XP desktops. There’s no “get out of jail” card, let alone a “get out of jail free” card. If you have Windows XP desktops today, you have work to do, and it will cost you money to migrate away.

If you want to look for yourself, you can go to Microsoft’s downloads site and look – but Windows XP still receives patches for both Windows itself or Internet Explorer (generally 6,7, and 8 all get patched) every month. From April 2012 to April 2013, every month saw security updates to either Windows XP or IE on it – and 8 of the 13 months saw both. Many of these are not pretty vulnerabilities, and if left unpatched, could leave targeted organizations exceedingly vulnerable after that date.

This leads us to the second question. In a game of chicken, will Microsoft turn and offer support after 4/8/2013?

Why are you asking? Seriously. Why? I was on the team that shipped Windows XP. I wish that, like a work of art, Windows XP could be timeless and run forever. But it can’t (honestly, that theme is starting to get rather long in the tooth too). It’s a piece of machinery – and machinery needs maintenance (and after a time, it usually needs replacement). Windows 2000 received it’s last patch the month before it left Extended Support. So, while 4/8/2014 is technically a Patch Tuesday, and Microsoft might give you one last free cup of joe, I’d put a good wager down that if you want patches after that day, you’d better plan your migration, get on the phone to Microsoft relatively soon, get a paid support contract in place, and be prepared to pay for the privilege of support while you migrate away.

Companies that are running Windows XP today – especially in any sort of mission critical or infrastructure scenario – especially if connected to the Internet, need to have a migration plan away to a supported operating system.

At a security startup I used to work at (not that long ago), it shocked me how many of our prospects had Windows 2000, Windows NT, or even older versions of NT or 9x, in production (and often connected to networks or the Internet. Even more terrifying, many of these were mission critical systems.

And this segues us to the third question. What happens to systems running after 4/8/2014? You can quote Clint Eastwood’s “Dirty Harry” character, “Do I feel lucky? Well do you?” It’s not a good bet to make. Again, we’ve seen some nasty bugs patched in IE 6,7, and 8, and Windows XP itself over the last year. While one would hope an OS 12 years out would be battle-hardened to the point of being bulletproof, that is not the case. Windows XP isn’t bulletproof. It’s weary. It’s ready to be retired. Organizations with critical infrastructure roles still running Windows XP will have giant targets on them after next April, and no way to defend those systems.

A common thread I’ve also seen is a belief that a wave of Windows XP migrations over the next 12 months will mean anything, economically. It really isn’t likely to. While we will likely see a good chunk of organizations move away from Windows XP over the next year, doing so may mean finding budget to replace 5+ year old PCs, and patch, update, or purchase replacement Windows, Java, and Web applications that can run on newer operating systems. Most of the easy lifting has already been done. The last customers remaining are likely extremely hard, extremely “financially challenged”, or both. It may be unfortunate, but this time next year (and likely the year after that, and years after that), there will still be Windows XP systems out there, some of them running in highly critical infrastructure. Dangerous, but unfortunately, likely to be the case.

Apr 13

A few of my favorite movies (or: Hollywood – death by 1,000 paper cuts)

Over a year ago, I wrote a missive about how idiotic Hollywood’s “Rental Window” was. Luckily, things have changed, and now you can easily stream a movie from almost any streaming service the same day it comes out on Blu-ray and DVD.

I kid. You know that’s never going to happen. I recall as a kid when we wanted to rent a movie on VHS, we had to go to the video store and see if they a) stocked it or b) had a copy in stock (or were all out). If you really wanted a movie, say for a child’s birthday party or similar, you might have to hit several video stores before you could find a copy (and hopefully it wasn’t the copy with the spot of the tape that was bent or demagnetized. TRACKING!!! SOMEBODY ADJUST THE TRACKING!

But I digress. My point is that we’ve come more than 30 years into the future from when that era started, yet we haven’t moved at all. I was out with some friends the other day, and mentioned a few of my favorite movies. They asked for a list, and I thought – sure, in fact, I’ll add links to streamable versions for those I can.

But the insanity that is trying to find streamed movies results in so much chaos. There are dozens of streaming services, each with different catalogs. And some movies – either because they’re too old, or the studio is holding them hostage for a later day, aren’t available on streaming, only on shiny media.

Enter Can I Stream It?, a service that attempts to tell you where you can stream (or rent) movies. It’s an IMDB of movie availability, and also has apps available for several platforms.

Here are some of my favorite drama or suspense movies:

Here are some of my favorite comedy movies (I accept no liability if you watch them and hate them):





Mar 13

The mythology of MinWin, MinKernel, and BaseFS

Beginning with Windows NT Embedded, an effort was started to refactor the Windows operating system in such a way that embedded device manufacturers could tweak the operating system to only include the parts that they needed to run their application or workload. Though it wasn’t completely decomposed/recomposable, it was a huge step in the right direction. By removing components not necessary to run a certain workload (say a point of sale terminal or a control system for manufacturing), the security footprint, as well as the overall footprint of the OS (sometimes CPU, but more often HDD/RAM and video) could be constrained, resulting in a device that was better at what it was supposed to do, while minimizing security and cost risks. Take a look at the claims on that Windows NT Embedded page – 9MB for a standalone OS runtime that didn’t include the Windows shell or networking.

This effort kept progressing throughout Windows, and the next major release, Windows XP Embedded, took the effort, referred to as componentization, even further. This effort required the XP Embedded (XPE) team to go out across Windows and evangelize componentization, and convince teams to help them break down their dependencies up and down the stack. You would be shocked to learn about how intertwined pieces of Windows were with each other. Nobody had, for the life of NT, ensured that components at the top levels of Windows had logically defined or clarified their dependencies down the stack. As a result, if you added one component of the Windows shell, you could wind up bringing in a gigantic stack of components. Add a certain runtime, and you needed to add a control panel (.cpl) file, because… well, it made sense at the time to put that library inside the cpl file instead of another DLL.

At that same time during Windows XP (Windows Whistler) development, I was on the setup and deployment team, which was separate from Windows Embedded (but would later merge). I was the second program manager (I  took the specs from the customers to the developers) for WinPE, also known as Windows Preinstallation Environment. If you’ve never heard of Windows PE, imagine a tiny OS runtime, about 120MB, that could run in 96MB or less of RAM. It featured TCP/IP networking, NTFS and FAT disk access, and cmd.exe as it’s shell. Most importantly, WinPE booted from CD, and was intended to replace MS-DOS for the pre-installation needs of Windows, whether you needed to kick off a scripted install of setup, or throw down an image to disk. WinPE was created primarily because the new Itanium platform had no deployment OS to help OEMs deploy Windows to their hardware. While Windows on Itanium died, WinPE became the underpinning of effectively every deployment and recovery tool in Windows.

I mention WinPE for one reason – I explicitly lived the XPE team’s pain trying to understand dependencies. Not long after we revealed WinPE to OEMs, they came back with wish lists of things they wanted added – including a Web browser. Eventually, I was able to talk them down from a Web browser, because they really wanted HTML Applications (HTA). I also hacked together Windows Script Host support and ADO connectivity to SQL Server. You cannot imagine the work I did to find the dependencies for those three components – which had not been defined individually in a way I could just grab and reuse. Finding someone who knew IE internals to the level I needed was almost impossible.

So what does this have to do with MinWin? Not long after Windows XP wrapped, there was a goal to come up with a minimal version of Windows (MinWin) that could serve as the centerpiece of every version of Windows. Whether you were building Windows Server or a Windows client release, or even WinPE, MinWin was the idea of a bootable version of Windows that featured the core components of the OS. I guess you could perhaps think of it as the quark of Windows. A common misstatement I’ve heard is that “MinWin is the minimal Windows kernel” or anything relating just to the kernel. It is more than just the kernel. MinWin, like the development of Windows on ARM that also occurred while I was at Microsoft, was never officially discussed outside, other than a few leaks. As a result, there was always much confusion about it. Most importantly, MinWin was never “a thing”. You never would be able to buy MinWin by itself, it was always intended to be a core of every version of Windows. In essence, it wasn’t about making a thing, it was about refactoring what we already had, to make it more nimble, both for continuing and growing embedded scenarios for Windows, but also to create products like Windows Server Core is today, as well as the current version of WinPE.

I encourage you to keep that in mind as you read this piece on MinKernel and BaseFS. While I have not talked with anyone inside Microsoft about either of these projects, I can only assume that they are the continuation of the refactoring of Windows. The Windows kernel was, for a long time, much more regulated than most of Windows. However, it still grew “big-boned” over time as things like Win32, networking, video,  .NET, WinSxS, and now WinRT required the kernel to be constantly updated – in a completely monolithic form. That would be fine, if every device required everything that was in the kernel. But it doesn’t. Windows Phone 8 likely includes at least some aspects of Win32, even though it will never run a full legacy Win32 application. So here again, my assumption is that the MinKernel project isn’t anything new per se, rather it is a modular, rather than monolithic, approach to building the Windows kernel. The result would be a layer of native-mode pieces that can be combined as needed for numerous platforms (Windows Phone 8+, Windows 8+, Windows RT+, Windows Azure, and even potentially the next generation Xbox and other hardware we aren’t aware of yet). The same could exist in the BaseFS realm. NTFS includes a ton of baggage, much of which is used by a small number of customers. Many of the NTFS features I’m alluding to as baggage didn’t even make it into the first public iteration of ReFS, which attempts to replicate much – but not all – of the functionality of NTFS. So what could BaseFS be? Likely the minimal NTFS, ReFS, or perhaps a shared driver for both, that implements a minimal set of filesystem functionality.

One can imagine this kind of refactoring of both to result in not only a well-factored and malleable kernel and filesystem driver, but also the kind of thin working set that might be ideal for, perhaps, running Windows Azure or Windows Hyper-V Server on, where the role of the server is solely as a host. I’m guessing here, and time will tell if I’m right or if I’ve missed some greater scenario. But by and large, much as MinWin was never a tangible thing, I’m not clear at this point that BaseFS or MinKernel will be much that even power users will ever get to see, directly.

Mar 13

Theology… theology… theology…

Feedback on yesterday’s post, both here and on Twitter, seemed to generally be relatively uniform. Not so much divisive, but more along the lines of, “You think you’ve got it bad? Try bringing a Windows PC to a Mac environment.”

You all bring up a fair point. Personally, I find it amusing that I know of not one, but two technology journalists who at one time or another covered the religion beat on a local newspaper. Why is that amusing? Because technology isn’t really that different.

Think about it; in Windows, Apple, and Linux, we’ve got all the makings of three religions that can never be at peace with each other.

Each has fundamental belief systems, theological figureheads, and in Redmond and Cupertino, at least two of them have a central place where nerds of that respective tech cult frequently flock to.

Most significantly, though, each frequently brings with it’s theological belief system intolerance of the others. Each adopts gross generalizations about “how the other two-thirds live”. We’ve all heard it.

When it comes to non-tech theology, I have my own belief system. But you know what? When it comes to religion, politics, or technology, I’m a big believer that Wheaton’s Law still applies. Don’t be a dick to other people just because they do something that doesn’t mirror the choices you make.

Every technology (heck, every belief system) has pros and cons. Many of the pros one side will hold up are viewed by the other side(s) as cons. We don’t all have to agree on what technology is best. But can you imagine where we could get if we all could take a step back and observe the world from the perspective of other people who aren’t fanbois of our respective belief system (religion, politics, or technology? I think that could really take us beyond the angry comment troll realm to a world where we could actually move forward as a species.

Mar 13

The Stigma of Mac Shaming

I recall hearing a story of a co-worker at Microsoft, who was a technical assistant to an executive, who had a Mac. It wouldn’t normally be a big deal, except he worked directly for an executive. As a result, this Mac was seen in many meetings across campus – it’s distinct aluminum body and fruity ghost shining through the lid a constant reminder that this was one less PC sold (even if it ran Windows through Boot Camp or virtualization software. Throughout most of Microsoft, there was a strange culture of “eww, a Mac”. Bring a Mac or an iPod to work, feel like an outcast. This was my first exposure to Mac Shaming.

I left Microsoft in 2004, to work at Winternals in Austin (where I had the last PC I ever really loved – a Toshiba Tecra A6). In 2006, on the day Apple announced Boot Camp, I placed an order for a white Intel iMac. This was just over three months before Winternals was acquired by Microsoft (but SHH… I wasn’t supposed to know that yet). This was my first Mac. Ever.

Even though I had worked at Microsoft for over 7 years, and was still writing for Microsoft’s TechNet Magazine as a monthly Contributing Editor, I was frustrated. My main Windows PC at home was an HP Windows XP Media Center PC. Words cannot express my frustration at this PC. It “worked” as I originally received it – but almost every time it was updated, something broke. All I wanted was a computer that worked like an appliance. I was tired of pulling and pushing software and hardware to try and get it to work reliably. I saw Windows Vista on the horizon and… I saw little hope for me coming to terms with using Windows much at home. It was a perfect storm – me being extreme underwhelmed with Windows Vista, and the Mac supporting Windows so I could dual-boot Windows as I needed to in order to write. And so it began.

Writing on the Mac was fine – I used Word, and it worked well enough. Running Windows was fine (I always used VMware Fusion), and eventually I came to terms with most of the quirks of the Mac. I still try to cut and paste with the Ctrl key sometimes, but I’m getting better.

I year later, I flipped from a horrible Windows CE “smartish” phone from HTC on the day that Apple dropped the price of the original iPhone to $399. Through two startups – one a Windows security startup, the other a Web startup, I used two 15″ MacBook Pros as my primary work computer – first the old stamped MBP, then the early unibody.

For the last two years, I’ve brought an iPad with me to most of the conferences I’ve gone to – even Build 2011, Build 2012, and the SharePoint Conference in 2012. There’s a reason for that. Most PCs can’t get you on a wireless network and keep you connected all day, writing, without needing to plug in (time to plug in, or plugs to use, being a rarity at conferences). Every time I whipped out my iPad and it’s keyboard stand with the Apple Bluetooth keyboard, people would look at me curiously. But quite often, as I’d look around, I’d see many journalists or analysts in the crowd also using Macs or iPads. The truth is, tons of journalists use Macs. Tons of analysts and journalists that cover Microsoft even use Macs – many as their primary device. But there still seems to be this weird ethos that you should use Windows as your primary device if you’re going to talk about Windows. If you are a journalist and you come to a Microsoft meeting or conference with a Mac, there’s all but guaranteed to be a bit of an awkward conversation if you bring it out.

I’m intimately familiar with Windows. I know it quite well. Perhaps a little too well. Windows 8 and I? We’re kind of going in different directions right now. I’m not a big fan of touch. I’m a big fan of a kick-ass desktop experience that works with me.

Last week, my ThinkPad died. This was a week after my iMac had suffered the same fate, and I had recovered it through Time Machine. Both died of a dead Seagate HDD. I believe that there is something deeper going on with the ThinkPad, as it was crashing regularly. While it was running Windows 8, I believe it was the hardware failing, not the operating system, that led to this pain. In general, I had come to terms with Windows 8. Because my ThinkPad was touch, it didn’t work great for me, but worked alright – though I really wasn’t using the “WinRT side” of Windows 8 at all, I had every app I used daily pinned to the Taskbar instead. Even with the Logitech t650, I struggled with the WinRT side of Windows 8.

So here, let me break this awkward silence. I bought another Mac, to use as my primary writing machine. A 13″ Retina MacBook Pro. Shun me. Look down upon me. Shake your head in disbelief. Welcome to Mac shaming. The machine is beautiful, and has a build quality that is really unmatched by any other OEM. A colleague has a new Lenovo Yoga, and I have to admit, it is a very interesting machine – likely one of the few that’s out there that I’d really consider – but it’s just not for me. I also need a great keyboard. The selection of Windows 8 slates with compromised keyboards in order to be tablets is long. I had contemplated getting a Mac for myself for some time. I still have a Windows 8 slate (the Samsung), and will likely end up virtualizing workloads I really need in order to evaluate things.

My first impression is that, as an iPad power user (I use iOS gestures a lot) it’s frighteningly eerie how powerful that makes one on a MBP with Mountain Lion and fullscreen apps. But I’ll talk about that later.

I went through a bit of a dilemma about whether to even post this or not, due to the backlash I expect. Post your thoughts below All I request? I invoke Wheaton’s Law at this point.