Archive for the ‘Microsoft’ Category:

A debugging war story

The bug has been around for most of the last year.  It’s intermittent and a pain to replicate.  We hadn’t heard anything about it from our customers, but our test system threw the errors up when we performed our nightly runs.  But the failures were all slightly different.  And different tests were failing each time.

All we knew were we were blue-screening, and that the problem was something to do with memory corruption.

The first thing to do was look at the crash dumps.  And the good news was that our drivers weren’t on the stack.  The bad news was that more and more testing showed the problem only occurred when our drivers were loaded.  You see, the problem was clearly a memory corruption – but the crash wasn’t happening at the time memory was being corrupted – no, the crash was happening when the memory got freed. You couldn’t tell who corrupted the memory, just that it got corrupted.

We tried driver verifier.  As soon as we put verifier to work on the driver we suspected, all the problems went away.

We did find that close to where the corruptions occured there was often a memory pool allocated with the tag ‘HAL’ – what was interesting about this pool, which looked like being some sort of mapping between addresses and page frame numbers, was that it seemed to have one entry too many – it had overflowed the space allocated for it.  The good news is it wasn’t one of our pools.  The bad news – I was beginning to suspect it was something like a double free of memory which caused this situation to arise.

Because we thought our driver might be causing this, we added all the instrumentation in the world to its memory allocations and frees.  But this didn’t show anything up.  The driver seemed to be working perfectly.

We were close to giving up.

One of our test engineers went through the test logs, and came up with a set of situations most likely to cause the problem.  With a bit of effort he made a reproduction of the bug that could happen in about an hour – much better than the six hour repro we had earlier.  One of the things he found was that the issue mainly happened on Windows 2008 Sp2 32 bit.

We then wen’t through ruling out any number of potential hypotheses.  Everythign from ‘Was a DVD in the drive at the time?’ to ‘Does it only happen at on machines with 2 CPUs’.  Once we had ruled out the impossible, whatever reamined, however unlikely was sure to be the cause.

Unfortunately, we ended up with the same suspicious driver.  And the same lack of clues.

Not knowing where else to look, I tried reproducing the reproduction on a checked build of 2008 sp2.  I didn’t hold out much hope.  We frequently use checked builds in developing our code, and this issue looked like being timing specific – the checked build was going to play havoc with the timing.

I installed the drivers, rebooted, and:

Assertion failed: RaidIsRegionInitialized

OK.  great.  What now?  Google was our friend.  Well, almost.  We found two results.  One was an MSDN page which didn’t mention anything about this.  The other wasn’t clear but had a few lines of hope

You may need to call GetUncachedExtension, even if you’re not going to use it. IIRC, on Win7 Storport would allocate the DMA adapter object during the GetUncachedExtension context. Your adapter likely doesn’t have any DMA restrictions, so Storport probably doesn’t really need the DMA adapter object, which is why everything works without the call.”

And, as it turned out, we did.  We did need to call GetUncachedExtension, even though there was no reason for us to do so.

One line fixed our storport driver, removed the bugs, fixed everything.

A year of irritating, intermittent, bluescreens gone.  And a good reason to help us understand what, roughly, was happening:  Microsoft Windows was freeing memory which we had never asked it to allocate.  More or less a double free.

Its astounding how often my job ultimately comes down to being a Google Monkey.  But there was a lot of work to lead us to Google.  And some bad luck too – we used checked builds a lot, but – it turns out – not the 2k8 checked build, which was the one that had the assertion.  We only used that this time because 2k8 was part of the repro we found.

But figuring this out is something that our team (and it was absolutely a team effort) can be proud of.

Today is a good day to code.

The Rebirth of the PC

People are talking about the death of the desktop PC.  While Rob Enderle is talking about it’s rebirth.  I’m conflicted about both these stories.  I think they are missing the trends which will really shape how we come to think of the PC in the future.

Looking at the market now, there are desktops, there are laptops, there are tablets and there are phones.  We also have vague attempts to cross genre, with Windows 8 trying to reach between tablet and laptop, while IOS and Android reach between tablet and phone.  But this isn’t the future, this is a market still trying to figure itself out. I’m going to limit my predictions to a particular segment of the market – the segment which is currently dominated by the desktop PC.

The reasons we have desktops are:

  • They are more powerful than laptops
  • They are tied to a single desk, so that management can control where we work (and where our data stays)
  • They are more comfortable to use than laptops or tablets (at least for keyboard entry and pixel perfect design)

However, the game is changing.  The question of power is becoming moot.  Machines seem to be gaining power (or reducing power consumption) faster than applications are taking it up.  There is less and less need for more powerful machines.  And, where more powerful machines are needed in a company, it doesn’t make sense to hide them under individual’s desks.  It makes more sense to put them in the datacenter, allocating processing power to the people that need it.

In short, we don’t need computers under our desks, we need reasonably dumb clients.  Network computers.  Oracle could have told you that years ago.

That said, dumb clients never quite seem to happen.  And the reason for this is that is that smart is so cheap, there is in point in tying yourself down, limiting yourself to this year’s dumb.

Tying the computer to the desk is increasingly being seen as a limitation rather than a benefit.  It doesn’t just prevent working from home, it also prevents hotdesking, and simple team re-orgs. What is more interesting to companies are technologies which let them keep data in controlled locations – and again the same technologies which let people work from home are also keeping data in the cloud – but locking it there so that it is harder to misuse.  This argument for the desktop PC is gone.

Comfort is more important.  But by comfort we specifically mean comfort for typists, and mouse operators.  Tablets are going to cut into the market for mouse operators, and combinations of gesture and speech technologies will gradually reduce the advantage of the poweruser’s keyboard.  Text entry will probably remain best done by keyboard for the time being.  But the comfort aspects are changing.  My bet is we will see an increase in big, screens angled for touch rather than display, while tablets are used for on screen reading.  Keyboards will remain for people who do a lot of typing, but onscreen keyboards will be commonplace for the everyday user.

So – by my reckoning we will have (probably private) cloud data, applications running on virtual machines which live in the datacenter and being distributed to big screens (and still some keyboards) on the user’s desks.

This isn’t a particularly impressive point of view.  Its the core of a number of companies who are playing in that field’s business plans.

But what is missing from the view is the PC.  As I said : there might be big monitors acting as displays for clients, but clients doesn’t mean dumb.

Smart is cheap.  We could probably power the monitors running smart clients – and some local personal, and personalized, computing – from our phones.  We could certainly do it from our laptops.  But we won’t.  Because we won’t want to become tied down to them.

We will want our tablets and laptops to be able to carry on doing what we were doing from our desktops – but thats an entirely different issue.  Indeed, since I’ve suggested we might want to run some personal programs locally, it suggests we need something on our desktop to mediate this.

It has felt, recently, that the IT industry is moving away from letting us own our own devices.  That the Apple’s and Microsofts want to control what our computers run.  Some have shouted ‘conspiracy’, but from what I know of the people making these decisions, the reason is hands down ‘usability’ tied with ‘security’.  However, there is a new breed of entrant in the market which cares little about this usability thing – the Raspberry Pi’s and android dongles.  Smart, but cheap.  You – not any company – control what you do with these devices.  They are yours.  And in a company environment, they can quite happily sit in a DMZ, while they run software that gets full access to the corporate intranet.

The desktop computer could easily be something along these lines.  No need to make the devices limited.  No need to limit what they are able to do.  All you need to limit is their access to privileged data and privileged servers.  These devices become the hub that you connect whatever hardware and whatever display are appropriate for the job.  I can keep my keyboard. Designers can have their Wacom digitisers.

But you also make sure that these devices can be accessed from outside the corporate network – but only the things running locally on them.  This might require a bit of local virtualization to do well, but Xen on ARM is making significant progress – so we’re near.

This is my bet about the desktop.  Small, smart, configurable devices tied in with private cloud services, and whatever UI hardare you need.

But my next bet is we won’t even notice this is happening.  These devices wills tart turning up in the corporation without the CTO or CIO giving permission.  At first it’ll be techies – and the occasional person using an old phone or tablet as a permanent device.  But gradually it will become more common – and devices will be sold with this sort of corporate use in mind.  You’ll get remote client software preinstalled with simple user interfaces for the common user.  They’ll come into their own as corporations start mandating the use of remote desktops and sucking everything into the cloud – taking advantage of the same networks that the engineering services teams have been forced to make available for phones and pads.

The desktop PC will stay.  It will stay because we want more, better, personal control of our work lives.

When the network computer does, finally, make the in roads we have been promised, it will have been smuggled in, not ordered.

(Oh, and we won’t call them desktops, we won’t call them PCs.  We will think of them as something different.  We’ll call them dongles, or DTBs (Desk Top Boxes), or personal clients, or something else.  This is going to happen without anyone noticing.  It might happen differently from the way I’ve suggested, but ultimately, our desktops will be low powered, small devices, which give users more control over their computing experience.  They’ll probably run linux or android – or maybe some MacOS/IOS varient if Apple decide to get in on the game.  And while companies will eventually provide them, the first ones through the door will belong to the employees.)

The Ubiquitous Tablet

I’m not going to say anything about the new range of Kindles yet – that deserves consideration alongside whatever comes from Microsoft and Apple in the next month or so.  I do want to talk about the trend which is becoming clear with the pricing of the Kindle fire:  Tablets are becoming cheaper.  Tablets are going to continue to get cheaper.  We will stop considering tablets as expensive pieces of technology, and start considering them part of our lives – like we do with phones and wrist watches.

Here is my prediction:  Fairly soon, we will all own lots of tablets.  We will leave tablets littered around the house and workplace, and we will use whichever tablet is closest to us when we want to do something.

My key assumption here is that tablet UI development is not dead.  That one day, we will probably settle on a fairly common UI pattern for tablets – much as we have with the desktop metaphor for PCs – but it took us 15 years to firmly settle on the PC UI – and I’m going to guess there is another half decade before we come close to doing the same with tablets.

So what does this mean for how tablets should develop:

1.  We will not store our data on tablets.  We may cache our data on tablets, but the data will be stored in the cloud (or – possibly – on a server you own.  I think the cloud is more likely, but the geek in me likes the idea of being able to control my own data)

2.  Since I don’t think there will be just one brand of tablet, any more than there is just one brand of notebook (yes, you are allowed to use notebooks which are not Moleskines, just like you are allowed to use tablets which are not iPads), and since tablets will be interchangeably used, this brings into question native apps.  I don’t think native apps will die, but I think they will become less ubiquitous.  More and more, I foresee people using javascript and html based apps which they can access from any of their tablets.  Native apps will exist for a few purposes:

  • Games – assuming games are not streamed from your media centre box or somesuch, many games will remain native apps
  • Turning a particular tablet into a particular thing.  If I buy a 32″ tablet and decide ‘this will be my TV set’, then I might buy a specific native TV guide app for it.  In this case, the app will be an app you don’t want to move between devices – so it will be installed on a per device basis (perhaps with an access control list of approved users)

It is just possible that Android apps will become the default – but that seems unlikely.  Since you will want your personal collection of apps to move with you between devices (not having to install every app on every device), I think there will probably be initially space for an app which acts as an installer for these new apps in some way.  I don’t quite know how this will work – I’m guessing we’ll see it on Android first, followed by Windows, then Apple last.

3. Multi account tablets are not the way forward.  With tablets just lying around to be used this seems non-obvious, but my thought is that tablets should not be multi or single account, they should haves no account.  What I want is to go to a friend’s house I have never visited before, pick up his tablet and start using it – with all my apps there waiting for me.  If all the data (including your set of apps) is stored in the cloud, this isn’t a pipe dream, all it would take is some form of federated log in – I expect the best way to do this will be by bumping your NFC enabled phone up against the tablet.

You might worry that not having accounts with passwords might mean tablets get stolen.  I don’t share this worry.  Tablets are cheap, for most of the tablets we wil leave lying around and lend to friends, you won’t be bothered stealing them any more than you would steal the crockery from their dinner table.  Expensive tablets can till have some sort of pin locking mechanism before they let you in.


In thinking about this new, tablet, world, I’m wondering how far off we are.  Right now, I can’t see any reason why companies wouldn’t stick six iPad mini’s or Nexus 7s in each of their meeting rooms, to allow people to get to that email they need on the spur of the moment without having to bring in their laptop (and all the associated distractions).  Since these are special tablets with a special purpose (sitting in a meeting room), we might also want to install some sort of video conferencing app on them – each person having their own camera and being able to look whoever is speaking in the eye (or quickly go to another speaker and send a sidebar message), might well make multi-site videoconferences work.

We haven’t yet seem the impact of the tablet on the world.  It will be a different impact from the PC – more like the impact of the mobile phone, but without needing the mobility, since ubiquity and cheapness works just as well.  My predictions are probably conservative – but we’ll see them happening, and they’ll probably begin happening in the next few months. Give it five years, and the idea of not having a tablet to hand will be a strange as going anywhere without your mobile.


Microsoft Surface For Windows 8 – is it a good idea?

Some quick and initial thoughts on MS releasing their own Surface tablets:

Q. Did I expect this?

A. A week ago, no.  A day ago, I thought it was a possibility, based on the ideas below.  I still thought that an ARM tablet for developers to have early access to was more likely.

Q. Will their OEM partners mind?

A. Yes.  Yes they will.  And they may well bitch and moan a bit.  But let me ask you a few more questions:

Assuming Microsoft really are betting the consumer shop on windows 8 (and it seems they are), do they actually have to compete with anyone other than Apple?

If Microsoft are competing with Apple, will they (based on previous experience of the OEMs) have a better chance if they make design decisions about hardware?

Would their OEM partners mind if today MS announced that they could license XBox?

Q. Will OEM partners keep on manufacturing tablets?

A. Yes.  Probably.  If I told you you could go out and sell your own ipad compatible device, do you think you might consider it.  If MS is clever they will design one device (well, two – one for ARM, one for Intel) and put it at the sweet spot, price wise, for the home user.  Other OEMs can fill the niches on price, power or features.  My bet is that they will.  A bigger question is:  if MS are successful, how long will they feel the need to support their OEMs as much as they do today in the consumer segment?

Q. Can MS function as a hardware company?

A. They don’t have to.  They are no more a hardware company than Apple.  Or indeed than Dell.  All their hardware is going to be built by the Foxcons and DNIs of the world.  What MS are is a brand label, a design house, a venture capitalist, an advertising agency and end user support.

Q. Can MS keep prices low?

A. They would be stupid not to. Each tablet sold is the loss of one windows licence fee.  So thats how much profit they need to make on the tablets.  Meanwhile, by keeping quality high, and prices low, they will be telling their OEM partners the prices they need to aim for.  There was no other way MS would be able to ensure that the pricing of windows tablets would be competitive with the iPad.

Q. Overall?

A. MS are adapting to a new marketplace. And are doing it rather slowly, but more skillfully than I would have expected a year ago.  They really do seem to be betting their consumer shop – but they are trying their best to stack the deck in their favour.  Will it work?  I think there is a good chance they will carve out a strong postion, albeit not the market leading position they used to have.  With this new hardware strategy, they are playing an interesting game : will licensing their OS to other manufacturers be a bigger win, than the amount it costs to support said manufacturers.  Interestingly Apple played this game once and that gamble didn’t pay off.

Oh, and I don’t think this affects the corporate / enterprise space at all (at this point).

Q. Will MS’s history mean they only repeat the bits of Apple’s history that they want?

A. Watch this space.


A potential game changer for Microsoft

We know ARM tablets won’t run old Windows applications, right?

What if they did?

Not by actually running them.  They won’t be up to doing that – at least not well.

But MS keeps talking about its cloud play.  About SkyDrive and about Azure.  About all the new features of Remote Desktop.  About the VDI things they could do.

So what if your ARM tablet came with the ability to subscribe (cheaply – and probably with a free trial) to an online service which gave you a virtual windows PC?  A Virtual PC you could install all your old software on, and run the software on.  Imagine they linked this to a ‘Desktop’ icon.  For most people, most of the time, they wouldn’t be able to tell the difference.  All the documents could be synced by skydrive.  And you would get perfectly reasonable performance.

Could MS do this?  Why not?

Wouldn’t it create quite a stir when they announced it – especially if they managed to keep it secret right until the tablets were unveiled?  Your ARM tablet can run all your legacy software… but you won’t want to, because you’ll prefer to work with Metro.  And you’ll be able to run this software from any Windows computer… or Windows 8 Phone.

I’ve not heard any suggestion MS are thinking of doing this – but if they did, it would be the thing that would give them the greatest chance of winning the tablet wars.  A war in which, right now, they are not even considered a particularly important contender.

Feeling more Metro-politan : 10 things the Windows 8 Consumer Preview has made clear to me

Having played with the Consumer Preview of Windows 8 for a few days, I’m beginning to pick up a feel for it:  indeed, more than that, for the first time in years I’m beginning to feel like I want to own a windows desktop PC, because for the first time I’m realising I really want to develop software for Windows.  Its all down to the Metro interface – and how much smoother it has become to use since the developer preview.  I thought I would list 10 things I have come to understand about how Metro works – and how you work with it:

1) You live your life in Metro.  The desktop is a distraction.  You avoid it when you can.  Metro is where you prefer to spend your time – at least when you’re working with touch.

2) But the desktop now works with touch.  Unlike the developer preview, where I had to keep reaching for a stylus to do anything desktoppy, I can now control desktop applications with my fingers.  Touch works on the desktop – you’ll probably use it instead of a mouse most of the time, if you have a touch enabled monitor which is comfortably positioned.

3) You’ll probably wind up treating the desktop a bit like Metro.  When you pin the desktop to the side of your screen, you get each application listed separately.  Now, to be fair, you’ve had this with alt-tab for a while, but now you just touch to get to where you want.  It feel natural to treat each desktop app like a full screen application.

4) Linking online accounts works wonderfully, but feels a bit creepy.  I installed W8 on a VM, and logged in with my live id.  My face grinned back at me – a photo I had taken months ago with the developer preview.  I didn’t expect it to be at work.  Similarly, various apps started sucking information from google, facebook, linked in.  I had given them permission, but it all integrated too well – better than I had come to expect from my phone.  It crossed that line into feeling like I had less of a computer than I did a stalker.

5) But, that said, the ‘People’ App shows exactly how integration can be effective – and how Metro is meant to work.  I look at a live feed of my twitter and facebook statuses, seamlessly integrated.  Sometimes I click on a link someone has posted, and I’m taken to the web browser.  I may surf onwards, doubling back by scrolling to the left, and then when I want to get back to the People app, I drag it on from the left hand side – which is exactly where I expect to find it.

6) Metro is made for dashboards.  Right now, the only dashboards we are given are people (a social media dashboard), weather and finance.  Weather and finance are very similar, and probably shows what an awful lot of Metro apps will look like.  You scroll left and right to see the data you want, use semantic zoom to get to a table of contents, data is updated live from the net, you can flick between certain displays of data by touching onscreen buttons, and a summary of the most important facts are shown on the live tile when you return to the start screen.

7) There is no good way of taking notes – yet.  Evernote for metro is available, but doesn’t work in portrait mode (which is the most comfortable way to hold the tablet and type).  You can use your favourite desktop application, but for me, that’s gvim, and the touch keyboard doesn’t have an escape key, which kills its usefulness.  The skydrive version of Word doesn’t work properly (it won’t bring up a keyboard when you want to write), so right now, I’m left with either notepad, or Google docs.  Neither are a great choice.

8 ) In fact, there is still quite a lack of useful apps all around.  Hopefully this will be fixed soon.  Things I’m missing are:  A notepad.  A hypercard style thing for creating my own metro dashboards (as described above) and books.  A decent version of Amazon Kindle which takes advantage of Metro… right now I find the windows app running in the desktop to make particularly poor use of the tablet’s screen.  A metro calculator (in fact, I would quite like python and Idle for metro.  That’s probably a wish too far – especially as the lack of special keys on the metro keyboard is quite limiting).  A metro version of explorer.  A metro version of powershell.  And finally a metro iPlayer.

9) Lots of things are quite tricky to find – especially power features.  I tired to change set the APN so that I could use a data sim .  I managed it, but it took a lot of looking – and the old windows way of doing it no longer worked. (incidentally, for folks in the UK with a Build developer preview tablet, if you want to use mobile data, a giffgaff pay as you go sim works well in mine now I’ve figured it out)  Unpinning and uninstalling metro apps is easy once you know how [touch and hold a tile, drag it down slightly so it gets an orange border, then use the bottom of screen menu] – but I had to search the web to find out how to do it.  The menu bars remain quite unintuitive… they’ll probably get better as I get more used to it, but I can’t help feeling the design reflects how the Metro framework works internally more than what a user might want to do with it.

10) Ultimately, it feels good to use.  The developer preview didn’t.  Some of this is due to stability.  Some due to performance.  Some due to the ‘right click’ touch gesture is now far easier to do.  I’m not sure how convinced people will be when Windows 8 replaces their desktop, but for people coming in to Metro as a touch first interface, I expect it to be widely considered a good thing.

How to make a Windows 8 Article… Insanely Irritating

This article from Forbes is meant to be about ‘How to make Windows 8 Insanely great”.  Unfortunately it fails to be insightful either as punditry, and yet offers no informational content.  In order to explain why it is so bad, I’m just going to have to address each element of the article point by point

The author talks about what hes hearing from Microsoft.  He doesn’t seem to be hearing much, and everything he’s heard rings of the nineties.  Things like touch screens (which really only made a significant impact with the intro of the ipad near the end of the first decade of the 21st century.  Or a Metro interface.  Which – alongside being an interface designed for touch – and an interface with a new design paradigm, also seems to be MS’s first encounter with real, high quality, design – not a characteristic the UIs of the 90s were known for.  Even the Mac was looking tired in those days.  And of course, he has left out lots of other interesting features – Windows on ARM (fair enough, I was using a Risc PC in the 90s, and could run Windows under an emulator… but most people didn’t), an interest in power consumption, virtualization technologies, a better runtime library for new code.  All ignored.  All missing.

What does he care about – apparently people replacing their old XP machines.  People who upgrade once a decade.  Frankly, if this was MS’s target market, they would have gone bankrupt years ago.  MS doesn’t care what the bottom feeders of the industry will do, they care about the people who upgrade quickly and pay for support.  The people the author cares about are not the people who lead change – rather they are the people who will pick up on change when its ready… right now, they might move into ipad space… who knows where they’ll move in 5 years… it all depends on the quality of Windows 8 – or maybe Windows 9 (MS have a habit of playing the long game – their first OS release is the one which makes the changes, the next release then capitalizes on the changes and turns it into a good product)

The author is right that Apple and Google have challenges – but he’s missing them again.  Google create lots of products, not to make money out of the products themselves, but to build up their patent portfolio (to protect themselves going forwards), to keep good people on board (because good people = good ideas) and to lead the market – jumping ahead in technology so the main players int he market have to keep up – keep up in the direction google want them to go.

Apple have to remain cool, but MS can’t rely on Apple losing that cool token any time yet – the main reason for this is that someone has to be cool to take up the crown.  And Apple’s products are good – it’ll be a few years before they start to drift – and thats only if we assume Mr Jobs was the only person at the company with a clue.

Meanwhile MS has its own market.  Pretty much every desktop machine you see is a Windows box.  So are a hell of a lot of laptops and servers (Google and Apple don’t really have any foot int he commercial server market – that is all MS and Linux).  Its the consumer space where MS are loosing the ground – which is why they seem to be building an OS experience aimed at mobile devices.  Its a gamble, but its a gamble to hit exactly  the market the author thinks they should be hitting.  However, meanwhile, they have to keep thinking about the big business side of their company – that has to keep on working too.

So the name:  Windows 8.  Drop the 8 he says.  Well, that’s one way of stopping people from ever upgrading again.  Not a smart move for MS at all.

Stop different options – or to put it another way, stop having multiple price points.  Again, that’s about as bad business decision as you can possibly make if you want to get big bucks from the enterprise space and keep being friendly with the home user.

provide all updates via Windows Update.  Well, there is a case for that – and I fully expect most OS updates to be done online in future.  But they won’t be free.

Make your OS fast – well, from what I see, Windows 8 is fast.  Really fast.  but then so is Windows 7.  The author seems to equate fast with ‘startup time’ – two very different things.

MS has been doing good work with startup time, and, if the author had read any of the tech details for Windows 8 you would see changes to hibernate making starting and stopping your PC much faster.  You would also see UEFI boot – which is much speedier than bios booting.  Windows 8 will turn on and off much more like a TV – certainly as much as a Mac Book does… and we’ve known it will for six months at least.

Leave the apps behind.  Really?  Along with killing backwards compatibility, you’re taking about significantly reducing functionality, and confusing the majority of users.  No, by hiding the old apps, and starting afresh with new apps in Metro, MS is doing the right thing here.

Operating systems should be lightweight.  Actually, that’s a fair argument.  But since we expect Windows 8 to be the base of the next generation of Windows phones, we can tell already:  it is pretty damn lightweight.  I don’t however, expect my desktop experience to be lightweight – I expect it to have the functionality which allows me to be productive.  Sure you could produce ‘Windows Metro Netbook edition’ Or some such to cater for the device market – but that’s a different market – not the home market, not the server market.  Apple have apparently figured it out.  Apparently.  My MacBook (same market space) seems to have quite a few things shipped with it.

Pricing:  Go with an annual fee.  I hate to tell the author, but that’s what the big boys do already.  We license windows.  We pay for our support contract.  It happens on a rolling basis.  The single fee is for individual machines, and people who don’t buy into (or in the authors case doesn’t seem to have heard of) this pricing model.  But maybe they should make it available to the home user… so that every year after I spend my hard earned cash on a windows device I have to keep paying for it to continue to work!

No… none of this would make Windows 8 insanely great.  But let me list a few things that might make a future version of Windows better:

Lets have a system where you can sync your laptop to your desktop, and control your laptop’s apps from your desktop.  Why not sync & control your phone in the same way?  Once a phone is connected to a PC, why not give the PC access to the telephony features – so you can text from the comfort of your desktop.

Presumably users will all have their own SkyDrive account – so let applications use this (don’t rely on apps using their own accounts – that’s taking my data away from me – which is bad).  I want to save a file on my PC, then access it from the same app on my phone.  I don’t even want to think about how I’m doing it or what I’m doing.

Ideally, I want a backdoor way into my desktop PC from my phone.  And to my laptop.  Even if its powered off.  How?  By syncing the disk image frequently – so a power off isn’t just ‘save to disk’ it becomes ‘save to network’.

I want to see the desktop ‘metro-ize’  Why not run each app in their own virtual desktop, and then display them to me separately like metro apps?

Something like Siri would be useful too – but don’t make me have to talk.  I have a keyboard in lots of situations, so let me use that – and make MSiri smart enough to know what I’m asking for – even if that relies on knowledge of my other devices.

Be social.  Frankly, if MS do one thing for consumers, get some really good UI folk working on a social network integrator.  Something that is compatible with every social network you can think of.  There is room for someone to be the best at this, and it would be a killer feature for windows tablets if they had it.
Would these make Windows insanely good? no.  But they would give it a leg up against the competition.  And they would give companies a reason to want to buy Windows tablets rather than Ipads for their workforce.  Which would ensure MS stays insanely profitable