Good luck to @SatyaNadella and Microsoft

nadella777It’s great to see that finally Microsoft gets a chance to grab control of its future. The last few years under Ballmer’s direction have been positively dire! Even looking through Microsoft jobs gives one the feeling that they’re focusing predominantly on Sales Executives rather than innovators.

Satya Nadella’s memo to Microsoft staffers indicates a change in direction. I agree with lots he’s said in there, but I was particularly moved by one paragraph:

I am 46. I’ve been married for 22 years and we have 3 kids. And like anyone else, a lot of what I do and how I think has been shaped by my family and my overall life experiences. Many who know me say I am also defined by my curiosity and thirst for learning. I buy more books than I can finish. I sign up for more online courses than I can complete. I fundamentally believe that if you are not learning new things, you stop doing great and useful things. So family, curiosity and hunger for knowledge all define me.

I can totally relate to that attitude and mindset. Hope this new challenge brings him lots of success; it will certainly make Microsoft a better company!

Note: he doesn’t seem to use Twitter much, but you can read all about him on Microsoft’s CEO page.

Giving Azure a whirl – Installing WordPress in the Microsoft Cloud

A few days ago, I received an email from Microsoft offering up a trial subscription to Microsoft Azure. It’s a promotion tied to their TechEd Challenge Entry, and while I know it’s a long shot that my trial will win me anything, I was quite intrigued to see how the product had moved on.

The last time I had looked at Azure, it was very firmly in the PaaS (Platform as a Service) space, but recently Microsoft has started providing an IaaS (Infrastructure as a Service) offering. I had used Amazon Web Services (AWS) as a demonstration of this when I had given a Cloud Computing talk to the BCS so was curious to see how far Microsoft had come. So I set myself a target to try and see how difficult it would be to roll out a WordPress site running on a LAMP stack hosted by Microsoft Azure. And for your viewing pleasure, I’ve taken screenshots of every step of the process, to demonstrate how it can be done.

So, without any further ado …


The first step was to sign up for a 90 day free trial. This was painless with a wizard walking you through the steps of choosing where in the world you wanted your cloud service to reside,


confirming your contact details


and providing a payment mechanism for your account (no charges taken in the 90 day trial)


Once the signup process is complete, you’re taken to the Azure dashboard, where you can see all the services then provide tabulated on the left. Obviously, there’s quite a bit of depth to each option, but today we’ll be looking at provisioning a server to install WordPress on.


The first step of this it to create a Virtual Machine, so I opted to create one from their “Gallery”.azure7

This fires up a wizard which walks you through the parameters of the VM you want to create. There are a variety of preconfigured images, ranging from a plain server, to an already configured Sharepoint or BizTalk server. As I was after installing WordPress on LAMP (to compare with AWS), I went for an Ubuntu Server build.azure8

The first step is to give the VM a name, choose one of the preconfigured sizes and set up your authentication. There’s an option to upload an SSH key, but I opted for the simpler username/password combination.


The next step is to give your VM an external name, specify if you want a new or previously created storage account and choose which region you would like your server to reside in.


The final stage is to specify if you want it to be part of an Availability Set for resiliance … and that’s it! Those are the parameters the wizard needs to go off and create a new VM for you.


Going back to your daskboard, you can now see your VM being created. It takes a few minutes before it’s ready, but once that’s done you can go ahead and play with it.


Once the initial setup is complete, Azure lets you know and the machine is available for you to play.azure13

Seeing this was a Linux build, I pointed by favourite SSH client at it and got my hands dirty with installing the actual software. Installing WordPress and the prerequisites it needs was fairly painless thanks to an online guide. There was one additional step I had to do, which was to expose Port 80 on the VM to the outside world (by default only SSH is opened up), but the Azure UI is quite intuitive and I had no trouble finding how to do this.


All that needed doing was configuring WordPress


and Voila … my WordPress site was available to the world!

So, what was my verdict? Well, it was definitely easier and quicker than I expected, taking around an hour from start to end and most of that time I was exploring various options to see what it could do. It also seems easier to get to grips with than AWS though I haven’t had time to get under the covers and try and break it yet 🙂

From a corporate point of view, the options are fantastic. To have the ability to roll out as many or as few machines as you need at any point in time, without going through the rigmarole of procurement for every box you need will definitely give much-needed agility. Might try and fire up a Sharepoint box next .. just to see what it’s like 🙂

Firefox turns off WPF plugin

I was greeting with an interesting dialog box when I got back to my computer just now:


I did some digging and it turns out that WPF did have a vulnerability, but it was patched a couple of days ago. Firefox, however, has no way of knowing if you’re running the patched version or the original one with a security flaw (which Microsoft forcibly added to Firefox without warning a few months ago). You can read more about the issue here.

Interesting times huh?

Failure at Microsoft.crm.setup.common.registerasyncserviceAction

What’s in an error message? A timeout by any other name would sound as sweet? Well, not really. My Microsoft Dynamics CRM v4.0 was failing with this error:

Failure at Microsoft.crm.setup.common.registerasyncserviceAction

And was claiming a timeout failure starting it up. There seem to be a number of posts around the web, some of the solutions include:

  • Make sure you restart your machine before trying to install CRM to make sure everything is in a clean state (tried this)
  • Start the Async service for CRM and retry the action (couldn’t find a service that matched this)
  • Rebuild Perf Counter strings with “lodctr /r”  (wasn’t getting a Perf Counter error)

In the end I did what I should have done in the first place and checked the event logs. Turned out that the problem was the installation was set to use a service account and SQL Server was having a problem giving this access to the required database (probably wasn’t in mixed mode). It would have been nice if the reported error included this information rather than letting me waste time going through the installation logs.

Anyway, I’m installing it all over again for the third time today. In the time it’s taken to install it, I could have caught a plane to the US, gone to DisneyWorld, stayed in one of those lovely hotels, visited the Grand Canyon, caught another plane to Australia, listened to a show at Sydney Opera House and finished off my world tour with a trip to Nepal. I’m sure you think I’m joking, but it’s really my fault as I started this last Friday. I’m sure you can do all those things in 3 days 😉

Ordinal issue with msi.dll ?


Here’s a good reminder to everyone to try and keep their software updated. Last week I tried installing Microsoft Dynamics CRM 4.0 on a virtual machine, just so that our team can have a play with it and kept running into this error:

The ordinal 242 could not be located in the dynamic link library msi.dll

It came up on the trial version, so I went ahead and downloaded the full version to try and install that. Same problem; so the issue wasn’t down to my installation file. I scoured the Web, but no one seemed to have that issue; an issue not with CRM, but with the installer that was trying to deploy it for me.

Anyway, to cut a long story short, I noticed that the Windows 2003 installation I had on the VM didn’t have any service packs installed on it. I have no idea where I got this ancient version from, but the fact that it didn’t have any connection to the Internet meant I wasn’t too fussed about security patches, but in one of the service packs they must have rolled out some changes to msi.dll, because installing Windows 2003 Service Pack 2 cured the issue. Now, if only the error message had been more helpful I would have found the answer soon, but at least I managed to solve it before taking one of my colleague’s Adams golf drivers to my computer screen.

On the bright side, once I got the installer running, it identified what components I had missing on my installation (.Net Framework, XML Core Services, Application Error Reporting, yadda, yadda) and is happily installing all the prerequisites for me.

Microsoft .Net Framework 3.5 violates FireFox

My latest Windows Update run just downloaded an update to Microsoft‘s .Net Framework 3.5. Here are the details of the update:

Microsoft .NET Framework 3.5 Service Pack 1 is a full cumulative update that contains many new features building incrementally upon .NET Framework 2.0, 3.0, 3.5 and includes cumulative services updates to the .NET Framework 2.0 and .NET Framework 3.0 subcomponents. The .NET Framework 3.5 Family Update provides important application compatibility updates.

Sounds fairly innocuous, right? Wrong! Besides deploying the fixes to the .NET framework mentioned above, the update also installed a stealth Add-in for FireFox, without any warning, permission or request for consent:


To add insult to injury, not only is the plugin useless (Not compatible with Firefox 3.1b2) as you can see above, but the Uninstall button is actually disabled!

Looks like it’s not a new problem, with reports of Microsoft violating Firefox since last August, but this is now bundled as part of a package that is described as an “Important Update”, rather than a component of development software (Visual Studio) that a person may or may not choose to install.

You can hack your way through uninstalling the plugin, but it’s not the sort of thing someone inexperienced should try. Here are the instructions from the site above:

Against what many people think, though, it can be uninstalled – but by nothing less than hacking the actual registry of Windows! Open your Start Menu and choose Run. Type in regedit and press enter/click OK. Within there, you have to look for something called HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\extensions and delete the key there (for Windows Vista 64-bit HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions).

When you have done that, type in about:config in the address bar in Firefox, accept the warning and then remove general.useragent.extra.microsoftdotnet and microsoft.CLR.clickonce.autolaunch.

And, to finish it off, open Windows Explorer and go to \WINDOWS\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension\ to remove the last remnants of the evil extension.

Instructions thankfully found through Remove the .NET Framework Assistant 1.0 from Firefox

My question to you is this. Granted that Microsoft may “own” the operating system you’re running your software on, but does that give them the right to install additions to non-Microsoft software on your machine? The plugin didn’t work in my case, but let’s say it broke Firefox for me, would Microsoft have acknowledged this was a problem they caused and fixed it? Is it right for them to circumvent any features Mozilla put into Firefox to protect their users and violate their software in this way? Isn’t this the sort of installation route you’d expect malicious software to take?

Amazon to offer Windows services on EC2

Empty spaces

Interesting post on the Amazon Web Services blog who have announced their intention to host Windows instances in their elastic computing cloud (EC2). Here’s what they say:

You will be able to use Amazon EC2 to host highly scalable ASP.NET sites, high performance computing (HPC) clusters, media transcoders, SQL Server, and more. You can run Visual Studio (or another development environment) on your desktop and run the finished code in the Amazon cloud.

The 32 and 64 bit versions of Windows Server will be available and will be able to use all existing EC2 features such as Elastic IP Addresses, Availability Zones, and the Elastic Block Store. You’ll be able to call any of the other Amazon Web Services from your application. You will, for example, be able to use the Amazon Simple Queue Service to glue cross-platform applications together.

The “cloud” market is certainly getting hotter and hotter. Amazon is making huge inroads into this space and their descision to host services created by Microsoft is testament to the Microsoft arena catching up in this space. The interesting thing about this is that it will increase take-up of cloud services and (this is what I find most exciting) on a “pay-as-you-go” basis. They haven’t announced pricing yet, but the price points of the different elements in the AWS stack is pretty compelling, so I’m sure it will be quite reasonable.

Microsoft is making itself more “cloud-available” through it’s “Dublin” initiative, but I’m not sure what’s covered by NDA around that, so I’ll probably won’t talk more about it before PDC. Anyone going?