Category Archives: windows

Windows Phone 7 Series and Microsoft’s partner problem

I watched Microsoft’s Steve Ballmer, Joe Belfiore, and Andy Lees introduce Windows Phone 7 Series. It appears to be a complete departure from previous iterations of Windows Mobile, in fact borrowing more from Zune than it does from earlier Windows phones. At one point, Lees noted that it has a “new core OS” optimized in partnership with Qualcomm, though I would not rest too much speculation on that one phrase.

image

Unfortunately, the piece that I am most interested in, which is the developer platform, was not much discussed. It is to be unveiled at Mix next month in Las Vegas. Ballmer did say:

We raised the platform on which people can build … a new foundation with a rich set of development tools, built in and complete service availability that software developers can assume as a foundation.

Make of that what you will. I’d be surprised though if Silverlight is not a big part of the development story, along with revamped Windows Live services. I guess I’m expecting Microsoft to deliver with Silverlight something similar to what Adobe is doing with Flash and AIR – AIR for mobile devices has just been announced – but without the breadth of support across devices that Adobe has achieved.

We have been told that Flash will not be part of Windows Phone 7 in its first version, so it looks like it may live in its own development world to some extent.

The demo at the press launch has been well received, and it looks likely that Microsoft is creating a more usable phone than earlier generations. That’s good, though it is telling that it took Apple with iPhone and perhaps Google with Android to convince Microsoft that maybe the Start menu and a cut down Windows API wasn’t the best way to do a phone.

In the absence of technical details, what interested me most were the comments about how Microsoft relates to its partners. It is a hot topic for me. I am taking heat for talking about a poor experience on WIndows 7 that is really the fault of 3rd parties. The problem is that the partner system which worked so well for Microsoft in the early days of the PC is now working against it, and an unpleasant experience of a Windows 7 netbook is a symptom of that.

Clearly Microsoft also understands this. Ballmer noted that

We want to lead and take complete accountability for the end user experience … have more consistency in the hardware platform, more consistency in the user experience, but still enable [partner] innovation

Translation: we are being hammered by OEMs who wreck our product with poor quality hardware and add-on software.

But how will Microsoft change this aspect of Windows, whether on the desktop or a device? “There’s a bit of a conundrum here,” said Ballmer, and he is right. If Microsoft tries Apple-style lockdown, it may run into anti-trust trouble and/or drive OEMs to Linux. If Microsoft does no more than talk the talk, then the problem remains.

It is true that Microsoft is strictly specifying minimum hardware. That’s nothing new; it has done this since the earliest days of Pocket PC.

I’m inclined to think it is just talking the talk and that nothing will change. Still, here’s Lees on the same subject. He begins by restating Microsoft’s belief in the partner model:

One of the things we’ve kept constant is our belief in the partner model. There are three reasons why partners are fundamental to our business. Firstly, they add rich experience and expertise across a broad spectrum of areas, hardware, software and services. Second, is … scale. We need partners to develop, market and support Windows phones at this scale. Third, partners meet diverse needs by providing customers with choice. One size does not fit all. People want different kinds of phones.

It’s odd how Apple thrives without all that “rich experience and expertise.” But never mind. Lees adds:

We have changed how we work with them. The goal is to improve the quality and consistency.

So Microsoft says with one breath how it just loves the partner model, and with the next that it is changing it. We all know why it wants to change it. It is because it is broken, though Microsoft cannot bring itself to admit it out loud.

The question: which of these near-contradictory statements do you believe? That it is sticking with the failing partner model, or that it is changing it? My guess is the former, because I am not sure that Microsoft really has the will or even the ability to change, but I would like to be proved wrong.

Oh, and Lees says that the mobile operators:

… have tremendous value to add. They are not just dumb pipes. Our model is about enabling those innovations so that they can add software and services and benefit from our … platform.

I understand why Lees said this; but I find it hard to think of tremendous added value from the operators. Apple’s iPhone success is partly thanks to its skill in working round them.

Miserable user experience continues with Windows 7

I’ve just spent some time with a non-technical person who has just signed up for a £30 per month Vodafone internet dongle, which came with a “free” Samsung netbook running Windows 7 Starter Edition.

The user is returning it under the terms of the 14-day trial offer.

Why? Well, the requirement was for a small computer that would be connected to the Internet everywhere, within reason. The user also purchased Microsoft Office along with (for some reason I could not discern) Norton Internet Security.

The good news: the internet connection was fine when connected, something like 2.5Mb download speed on a brief test.

The bad news:

1. The little netbook was badly infested with trialware. Browsing the web was difficult because the already-small screen area was further filled by two additional toolbars, one from Google and the other from MacAfee, leaving barely half the screen for actual web pages. Google kept on prompting for permission to grab user data about location and who knows what else.

2. MacAfee was pre-installed and the task of removing it and replacing it with Norton was tricky, bearing in mind that Norton was delivered on a CD and there was no CD drive. MacAfee was constantly warning that the user was at risk.

3. Two Samsung dialogs popped up on each boot asking the user to do a backup to external storage.

4. The Vodafone connect software was bewildering. In part this was thanks to a complex UI. There also seemed to be bugs. The “usage limit” was preset at 50MB separately for 3G and GPRS; the deal allowed 3GB overall. Changing the usage limit seemed to work, but it reverted at next boot. Then it showed usage limit warnings, as 50MB had already been transferred. Once while I was there the Vodafone utility crashed completely.

5. The Vodafone dongle wobbled in the USB slot. Whenever it was attached it would come up with a dialog asking to run setup, because it included a storage area containing the utility software, even though the utility was already installed.

6. The Vodafone connection is managed through an icon in the notification area that you right-click to connect or disconnect. Windows 7 had hidden this thanks to the new default behaviour of the notification area, which is a usability disaster.

7. The Vodafone connection was set to prompt for a connection. It did sometimes display a prompt, but apparently on some kind of timeout, since it quickly closed without actually connecting. The prompt then did not reappear during that session.

The user concluded that it was too complicated to use, hence the return.

Now, for most readers of this blog I am sure none of the above would matter. We would uninstall MacAfee and Google toolbar, not buy Norton but simply install Microsoft Security Essentials, maybe use Google Chrome for a leaner browsing experience, remove any other software that was not essential (and there was other trialware that I did not have time to investigate), unset the silly option to hide notification icons, find a way of taming or replacing Vodafone’s connection utility, and all would be fine.

I am not sure of the value of the Vodafone contract; the deal is not too bad if you need to connect while out and about, though there is a heavy penalty charge of £15.00 per GB if you exceed 3GB in a month, and it is quite unsuitable if, as in this case, it is your only Internet connection and you plan to use it for things like BBC iPlayer.

That’s an aside. What I find depressing is that despite Microsoft’s efforts to improve Windows usability in 7, the real-world result can still be so poor.

In this case, most of the blame is with Vodafone for poor software, and Samsung for taking all those trialware fees. I guess it is not that bad a deal, since there is almost always someone around who is willing or enjoys solving these puzzles and getting everything working.

Still, here is a customer who wanted and was willing to pay for a no-frills, always-connected internet device, and was let down.

Here also is the market that Apple aims to satisfy with iPad, and Google with devices running Chrome OS.

I wish them every success, since it seems that the Microsoft + OEM Windows culture cannot easily meet this need.

Should IT administration be less annoying?

I am more a developer than an IT administrator but sometimes find myself doing (and writing about) admin-type tasks. I am usually under time pressure and I find myself increasingly irritated by annoyances that take up precious time.

It seems to me that there is a hidden assumption in IT, that usability is all-important when it comes to end users, but that the admin can tolerate any amount of complexity and obscurity, provided that the end result is happy users with applications that work. The analogy I suppose is something like that of a motor car with an engineer who gets hands grubby under the bonnet, and a driver who settles back in a comfortable seat and uses only clean, smooth and simple controls to operate the vehicle.

That said, any engineer will tell you that some vehicles are easier to work on than others, and some documentation (whether paper or electronic) more precise and helpful than others. No engineer minds getting oil on their hands, but wasting time because the service manual did not mention that you have to loosen the widget before you can remove the doodah is guaranteed to annoy.

A little detail that I’ve been pondering is the Internet Explorer Enhanced Security Configuration found in server versions of the Windows operating system. This is a specially locked-down configuration of IE that is designed to save you from getting malware onto your server.

That’s a worthy goal; and another good principle is not to browse the web at all on a server. Still, as we all know the first thing you have to do on a Windows server is to install patches and drivers, some of which are not available on Windows Update. In addition, not all servers are mission-critical; I find myself setting them up and tearing them down on a regular basis for trying out new software. It may therefore happen that you open up IE to grab a patch from somewhere; and it is a frustrating experience. Javascript does not work; files do not download. The usual solution is to add the target site to Trusted Sites – thereby giving the site more trust than it really needs. The sequence goes something like this:

1. Browse to vendor’s site to find driver.

2. Notice nothing works, click Tools – Internet Options – Security, Trusted Sites, Sites button, Add.

3. Click Add, forgetting to uncheck the box that says “Require server verification (https:)”.

4. Get this dialog:

image

5. Wonder briefly why IE did not spot that you are adding a site with an http: prefix before rather than after you clicked Add.

6. Uncheck the box, repeat the Add, go back to IE, refresh page to make scripts etc run and likely lose your progress through the site.

7. Find that the site now redirects to ftp://vendorsite.com and you have to repeat the process.

A minor issue of course; but if this is a sequence you have gone through a few times you will agree that it is annoying and not really thought through. Perhaps it is to do with Windows server having a GUI that it does not really need; on Linux or even Server Core you would use the fine wget utility having found the url of the file you need using the browser that you have running alongside your terminal window.

I also realise there are may ways round it, ranging from something to do with laptops and USB pen drives, to installing Google Chrome which only takes a few clicks, does not require admin rights, and happily downloads anything.

What prompts this little rant is not actually IE Enhanced Security Configuration, which is a familiar enemy, but a day figuring out the subtleties of Microsoft’s App-V, brilliant in concept but not the easiest thing to set up, thanks to verbose but unhelpful documentation, dependency on SQL Server set up in the right way that is not clearly spelt out, lack of support for Windows x64 clients except in the beta of App-V 4.6 which is available from a Microsoft Connect URL that in fact reports non-availability; you know the kind of thing:

image

At times like this, the system seems downright hostile. Of course this does not matter, because administrators are trained to do this, and don’t mind provided that the users are happy in the end.

But I don’t actually believe that. In Windows 7 Microsoft deliberately targeted  the things that annoy users because, under pressure from Apple, it figured out that this was necessary in order to compete. The result is an OS that users generally like much better. The things that annoy admins are different, but equally affect how much they enjoy their work; and effort in this area is equally worthwhile though less visible to end-users.

In fairness, initiatives like the web platform installer show that in some areas at least, Microsoft has learned this lesson. There is, however, plenty still to do, especially in these somewhat neglected areas like App-V.

My final reflection: when Microsoft came out with Windows NT Server back in 1993 I expect that being easier to use than Unix was one of the goals. Perhaps it was, then; but Windows soon developed its own foibles that were as bad or worse.

Google storage 10 times cheaper than Azure – but not as cheap as Skydrive

According to Jerry Huang of Gladinet, whose Cloud Desktop exposes a variety of cloud storage services as mapped drives in Windows Explorer, Google storage is “about 10 times cheaper” than Windows Azure. Since Amazon S3 has similar prices to Azure, I imagine Google undercuts that by some margin as well.

Gladinet compares Google and Azure using some other criteria as well. On speed, it gave the edge to Azure but observed that it might just depend which data center was nearest. On SLA, the two seem similar.  On API, it says Azure is easier if you use Visual Studio, but not if you work with “PHP, Ruby or anything other than .NET”.

In another post, Huang has a nice summary of accessing Azure storage from C#.

It’s worth noting that Microsoft Skydrive offers a relatively generous 25GB of storage for free, but there is no way to extend this limit.  There is also no official Skydrive API, though one has been hacked unofficially. Gladinet supports Skydrive too, using either this or the unofficial WebDAV support.

I am a fan of Gladinet. There is a free starter edition, or paid-for with extra features.

image

Explorer integration is a big deal, since it means any application with a standard open or save dialog can access the files. Imagine for example that you need to upload a document from cloud storage to a web site. Without Explorer integration, you have to extract the file from cloud storage to your local drive, then upload it from there. The same is true of SharePoint, which is why it is unfortunate that Explorer integration is so difficult to get working.

Adobe Flash getting faster on the Mac

According to Adobe CTO Kevin Lynch:

Flash Player on Windows has historically been faster than the Mac, and it is for the most part the same code running in Flash for each operating system. We have and continue to invest significant effort to make Mac OS optimizations to close this gap, and Apple has been helpful in working with us on this. Vector graphics rendering in Flash Player 10 now runs almost exactly the same in terms of CPU usage across Mac and Windows, which is due to this work. In Flash Player 10.1 we are moving to CoreAnimation, which will further reduce CPU usage and we believe will get us to the point where Mac will be faster than Windows for graphics rendering.

Video rendering is an area we are focusing more attention on — for example, today a 480p video on a 1.8 Ghz Mac Mini in Safari uses about 34% of CPU on Mac versus 16% on Windows (running in BootCamp on same hardware). With Flash Player 10.1, we are optimizing video rendering further on the Mac and expect to reduce CPU usage by half, bringing Mac and Windows closer to parity for video.

Also, there are variations depending on the browser as well as the OS — for example, on Windows, IE8 is able to run Flash about 20% faster than Firefox.

Many of us are not aware of these kinds of differences, because we live in one browser on one operating system, but the non-uniform performance of Flash helps to explain divergent opinions of its merits.

I would be interested to see a similar comparison for Linux, which I suspect would show significantly worse performance than on Windows or Mac.

Windows 7 booms for Microsoft, everything else is flat

Microsoft has had a bumper quarter driven by Windows 7, as expected. I’ve put this into a table as I have before.

Quarter ending December 31st 2009 vs quarter ending December 31st 2008, $millions

Segment Revenue % change Profit % change
Client (Windows + Live) 6904 69.9 5394 98.9
Server and Tools 3844 0.24 1491 8.4
Online 581 4.60 -466 -49.5
Business (Office) 4745 -2.78 3010 -0.36
Entertainment and devices 2902 -10.87 375 288.5

The poor performance of Vista meant latent demand for Windows 7, as both individuals and organisations deferred upgrades, which was unleashed in this quarter. Microsoft said it was a “record quarter for Windows units” and “the fastest selling operating system in history”. Windows 7 is also a strong product in its own right.

There isn’t much else to cheer about, though given the general weakness of the server market the sliver of growth there is impressive. There is still no sign of a profitable online business, which is of major concern as interest in cloud computing accelerates.

Entertainment (Xbox) is now a steady business; I’m guessing that the huge growth in profits reflects lower investment and a reduction in cost of fixing endless red rings of death thanks to better quality hardware. Revenue on the other hand is somewhat down.

Windows 7 will continue to do well, though once the upgrade bump is passed the results will be less spectacular. Windows 8 will not get the same easy ride, unless Microsoft delivers something that surprises us all with its excellence.

The positive spin on these figures is that the company still has an opportunity to reinvent itself, financed by Windows profits. It needs its own iPod equivalent to show that it can escape its Windows and Office legacy. Windows Mobile 7? Laugh if you like; but the two things with obvious growth potential in the market generally are mobile devices, and cloud computing – the two go together, of course. That said, there is no evidence yet that Microsoft has the energy and agility to reverse its poor performance to date in both areas.

Who knows, perhaps after a couple of months of mobile focus, with details to be revealed shortly at Mobile World Congress and Mix10, the picture will look more promising?

The mystery of the slow Exchange 2007: when hard-coded values come back to haunt you

Following a migration from Microsoft Small Business Server 2003 to SBS 2008 users were complaining that Exchange was slower than before in some scenarios. How could this be? The new machine had 64-bit goodness and far more RAM than before.

I checked out the machine’s performance and noticed something odd. Store.exe, the Exchange database, usually grabs vast amounts of RAM, but in this case it was using surprisingly little, around 640MB. Could this be related to the performance issue?

I speculated that Exchange memory usage was limited in some way, so looked up where such a limit is set. I found this article. Ran ADSI Edit and there it was, a 640MB limit (or thereabouts), set in msExchESEParamCacheSizeMax.

I removed the limit, restarted Exchange 2007, and it immediately said “thank you very much” and grabbed 8GB instead.

Why did this setting exist? No doubt because back in the days of SBS 2003 and a much less powerful 32-bit machine, someone set it in order to prevent store.exe from crippling the box. It is another example of why Small Business Server is harder to manage than full server setups when Exchange invariably has a dedicated server (or several).

SBS 2008 cannot be installed as an in-place upgrade; but the official migration process does preserve Active Directory; and since that is where this value lives, and since it is not specific to any version of Exchange, it was dutifully transferred.

Why wasn’t the setting discovered and changed before? Well, you will observe that it is somewhat hidden. The main chances of finding it would be either if you were deeply schooled in the ways of Exchange, or if one of the Best Practices Analyzer (BPA) tools picked it up, or if the users screamed that Exchange was slow (which is what happened) and you figured out what was wrong.

The SBS BPA did not notice it. The Exchange BPA did, kind-of. It was not shown as a critical problem, but listed for information under “Non-Default Settings”, ironically with a tick beside it, as “Maximum ESE cache size changed”. Summoning help on this setting leads to this article which refers to Exchange 2000.

An admin failure, yes, but arguably also a defect in Exchange and SBS. Typical Microsoft: critical setting, hard-coded when it would make more sense to use a percentage value, not checked by setup and persistent across major upgrades of Exchange, deeply buried in Active Directory.

Mentioned here just in case it saves someone time when trying to figure out why their shiny 64-bit Exchange 2007 is running worse than 32-bit Exchange 2003 ever did.

A Silverlight UI for Windows Mobile 7, backward compatibility in doubt

Note: speculative post; I have no official information on this.

It’s been rumoured for ages; but at this point I would be surprised if the Windows Mobile 7 UI were not built with Silverlight. Consider:

  • Silverlight has to be supported – it should have been in 6.5 – otherwise nobody will take mobile Silverlight seriously
  • WM7 has to have excellent UI design; and WPF/Silverlight is Microsoft’s designer-friendly UI framework
  • Silverlight 4 already supports touch control in the current beta
  • Scaling/Zooming is baked into Silverlight and ideal for a mobile UI
  • If Silverlight is present on the device it would make sense to build the UI with it

If this is right, there are a couple of interesting aspects for developers. It will make Silverlight a more attractive platform in scenarios such as Enterprise roll-outs where the device can be specified.

The awkward question: what about all those existing Windows Mobile apps built either with native code or with the compact framework? Again, there are rumours of lack of backward compatibility. Does that mean that all Windows Mobile 7 apps with a UI will have to be done in Silverlight? That’s what John Biggs says:

WinMo 7 will not run 6.x code. End of story. It is based on Silverlight and .Net. Everything save a few basic programs will not work under WinMo 7. There is no expectation that this will be a “business device” and the focus is currently on games including some XBox Live functionality for gaming and messaging. There will be a Microsoft App store with an easy approval process.

I find this a stretch. I can believe that Microsoft might initially target the consumer market, or have crippled “consumer” versions; but not that it would give up on mobile business apps – we heard at PDC (to the point of tedium) how Microsoft is supporting “three screens and a cloud”, unified for developers by Visual Studio. There’s no reason why Silverlight should not be used for business apps.

What about backward compatibility though? Traditionally Microsoft does a good job of keeping your old stuff running, within reason; possibly too good – Windows is full of compatibility hacks that may be to its detriment overall.

Another point to bear in mind: WM7 needs a browser, and I don’t see Microsoft re-implementing IE in Silverlight.

So I’m sceptical about this too; but with Windows Mobile at such a low ebb could the company decide it has little to lose?

Silverlight 4 with COM can do anything – on Windows

At PDC Microsoft played down the significance of adding COM support to Silverlight 4 when run out of the browser and fully trusted (you can also be out of the browser and not fully trusted). The demos were of Office automation, and journalists were told that the feature was there to satisfy the requests of a few Enterprise customers.

Now former Microsoft Silverlight program manager Justin Angel, who has implemented his blog in Silverlight, has spelt out what we all knew, that Silverlight with COM support can do just about anything. His richly-illustrated blog post has code examples for:

  • reading and writing to any file (subject I guess to the permissions of the current user)
  • executing any command or file
  • emulating user input with WShell.SendKeys
  • pinning files to the Windows 7 taskbar
  • reading any registry values
  • adding an application to the Windows startup folder
  • doing text to speech using Windows built-in engine
  • accessing local databases with ODBC
  • automating scanners and cameras
  • using the Windows 7 location API, accessing the full .NET Framework
  • and of course … automating Microsoft Office.

Well, fully trusted means fully trusted; and these are great features for powerful though Windows-only Silverlight applications, though I hope no user installs and trusts one of these applets thinking it is “only Silverlight” and can’t do much harm.

The post also has comments on the lack of any equivalent feature for the Mac in Silverlight 4:       

If Microsoft chooses to not go ahead with Mac support in Silverlight 4 RTM, well, it’s not because they couldn’t

says Angel, suggesting that it would be easy to add AppleScript support. (I had to type that quote – no clipboard support in Silverlight 3).

Of course there is time for Microsoft to unveil such a feature, say at Mix10 in March, though I wouldn’t count on it.

The end of Code Access Security in Microsoft .NET

In the early days of .NET I remember being hugely impressed by Code Access Security. It gave administrators total control over what .NET code was permitted to run. It’s true that the configuration tool was a little intimidating, but there were even wizards to adjust .NET security, trust an assembly, or fix an application – great idea, that last one.

image

Well, now the truth is out. Code Access Security was too complex for humans to configure. Buried deep in the documentation for .NET Framework 4.0 you can find Microsoft’s confession, under the heading Security Policy Simplification:

In the .NET Framework 4 Beta 2, the common language runtime (CLR) is moving away from providing security policy for computers. Historically, the .NET Framework has provided code access security (CAS) policy as a mechanism to tightly control and configure the capabilities of managed code. Although CAS policy is powerful, it can be complicated and restrictive. Furthermore, CAS policy does not apply to native applications, so its security guarantees are limited. System administrators should look to operating system-level solutions such as Windows Software Restriction Policies (SRP) as a replacement for CAS policy, because SRP policies provide simple trust mechanisms that apply to both managed and native code. As a security policy solution, SRP is simpler and provides better security guarantees than CAS.

The section below, headed Obsolete Permission Requests, is even more damning of the old system:

Runtime support has been removed for enforcing the Deny, RequestMinimum, RequestOptional, and RequestRefuse permission requests. In general, these requests were not well understood and presented the potential for security vulnerabilities when they were not used properly.

It goes on to explain why they did not work, with explanations like this one for RequestOptional:

RequestOptional was confusing and often used incorrectly with unexpected results. Developers could easily omit permissions from the list without realizing that doing so implicitly refused the omitted permissions.

The new .NET Framework 4.0 no longer enforces these obsolete permissions.

Microsoft is right. As far as I’m aware, few used the .NET Configuration tool, and I cannot even find it in Windows 7, even though Visual Studio and all the versions of the .NET Framework are installed. Developers feared, with justification, that tinkering with the settings would simply cause mysterious exceptions that were hard to resolve.

I recall though that Code Access Security was considered a highly strategic feature when .NET was first released. One of the promises of .NET was that applications would be more secure and malware less prevalent. The fine-grained permissions were a selling point versus Java.

The painful lesson is that simplicity is a feature. Of course some things are inherently complex; but technology succeeds when it simplifies rather than complicates the tasks that we face.