So, what exactly is Windows Azure?

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Windows Azure logoAt last year’s Microsoft Professional Developers’ Conference, Windows Azure was the big news. Finally, Microsoft had put its cards on the table and announced their strategy for cloud computing!

But, since Ray Ozzie’s keynote in LA last autumn, it’s seemed pretty quiet on the Windows Azure front. That’s understandable – Azure is still in development and it will be some time before we see mainstream use of this computing platform – even so, I was interested to attend the inaugural meeting of UK Azure User Group (AzureNet – not to be confused with the hosting company by the same name) at Microsoft’s London offices, including a presentation from Microsoft’s James Conard about what Windows Azure really is.

James is a Senior Director of Developer and Platform Evangelism at “corp” (i.e. he works in Redmond, not Reading!) and he looks after the Microsoft.NET Framework, Visual Studio and the Azure Services Platform – all things that I know very little about but, based on his presentation, I think I’ve got a grip on how Windows Azure hangs together.

So what is Windows Azure? James Conard described it as:

“An execution environment in the cloud for your applications.”

Which begs the question of what is the cloud? Conard’s view is that this is being made out to be more complex than it really is – as normally happens with a platform shift. Analysts/reporters/experts [bloggers!] define new terms such as: cloud computing; platform as a service; software as a service; infrastructure as a service – and some of these terms are sticking as vendors snap their marketing onto the terms.

But today’s application challenges are not specifically related to technology or to a platform – they are issues like:

  • How many users will an application need to support (after 1 month? 6 months? a year?)?
  • What are the bandwidth, storage, server, rackspace requirements?
  • How can we handle scalability (up and down)?
  • How can we provide high availability?
  • How can we quickly go live?
  • How can we reduce operational costs?
  • How can we move to a service delivery model?
  • How can we provision servers for the short term (without buying extra infrastructure)?

Windows Azure is intended to provide three core services: compute, storage and management which are:

  • Scalable – with a virtualised hosting environment.
  • Flexible – providing storage with blobs, tables, and queues.
  • Manageable – with a model-driven service lifecycle management.
  • Usable – with a rich local and offline developer experience.

Looking first at the compute service, applications are built (based on role definitions, modelled using an XML service configuration file), deployed to the web and run via a load balancing mechanism. Building the application in Visual Studio 2008 (SP1) with the SDK for Windows Azure and Visual Studio Tools for Azure ensures familiarity for Windows developers and the SDK’s Development Fabric simulates a cloud application whilst running locally for debugging purposes. The publishing process packages the application as a service package including all assemblies and configuration files ready for upload to the Azure Services Platform via the Azure Services Developer Portal. This portal allows the developer to create a hosted service and access production and staging environments. Once initialised according to the applications configuration, the appropriate number of instances (virtual machines) is started and the application deployed. Staging environments use a DNS name in the form of guid.cloudapp.net but friendly names are provided for production environments.

Most applications need to store and manage data, and Azure provides access to tables and blobs, with a queuing mechanism for communications between roles (some of which may run asynchronously, others as batch jobs, with a worker process to handle the interaction).

Management is concerned with ensuring that there are sufficient instances of a running application, monitoring when to bring more computing resources (extra instances) online, and when to take down one or more instances.

In short, Azure provides the infrastructure to run an application in the cloud including the environments upon which to run code and the underlying servers, datacentre services and connectivity. There is no need to directly manage this as the application is abstracted from the infrastructure and Microsoft highlights that, whilst some vendors focusing on the infrastructure (physical and virtual machines up to the operating system layer), over time, Azure will expose more and more capabilities of the Windows Server operating system, Microsoft .NET framework, etc. and the available services will be expanded.

Of course not all applications are as simple as the ones that Microsoft uses to demonstrate Azure. Some applications need additional capabilities in the cloud such as:

  • Relational database support.
  • Connectivity between on-premise applications and cloud applications (some applications cannot move to the cloud and the data needs to remain local, or the functionality does – hence hybrid applications).
  • Single sign on support.
  • Federation with existing identity providers.
  • Orchestration of several different services.
  • Access to user profile and contact data.

Windows Azure is a baseline and there are also additional services within the Azure Services Platform, implemented as building blocks which may be consumed (as required, wholesale or piecemeal) from an application running on Azure, including:

  • Live Services, for building user-centric applications that require end user interaction and access to contacts, calendars, folders, etc.
  • .NET Services, providing key building blocks required by many cloud-based and cloud-aware applications including access control, a service bus and workflow.
  • Microsoft SQL Services, extending Microsoft SQL Server into the cloud for – cloud-based instances of SQL capabilities.

In the future, these initial services will be supplemented with:

  • Microsoft SharePoint Services, for workflow, list management and document management.
  • Microsoft Dynamics CRM services.

Windows Azure Services Platform

SQL Data Services link applications to SQL Server using SQL’s tabular data stream (TDS) protocol. James Conard’s presentation only mentioned it in passing, but there is a session available online from the MIX09 conference with the detail on SQL Data Services.

(At this point, I’d like to plug Jamie Thomson – SSIS Junkie – and my former rival for the top blogger spot when I worked at Conchango… Jamie was at the AzureNet meeting too – if you want to know about how SQL and .NET services fit together, he’s your man!)

A few paragraphs back, I mentioned the service bus and this could probably do with a little more explanation. Referenced using a URI with a sb:// suffix, this provides a publisher/subscriber model based on service bus queues (queuing messages until a listener is available) and service bus routers (distributing messages according to the routing policy) with a REST-based interface for managing access control (via authorisation rules).

So, what next for Windows Azure? The latest Community Technology Preview (CTP) was issued in March 2009 and includes a number of changes and improvements including:

  • Full-trust support for .NET applications, allowing native code to run as part of service package.
  • FastCGI support on IIS7 (for running PHP and other extensions).
  • A single SDK and tools installation.

Soon, Windows Azure will be available in a second United States datacentre (and developers will be able to select which to run in via the portal) and, as Windows Azure approaches commercial availability, there will be a datacentre in Europe too.

Finally, pricing and service level agreement information is expected during Summer 2009 with commercial availability in the Autumn.

As an infrastructure guy, I might be scared by the idea of all of this infrastructure moving into the cloud, but there are a few things to remember:

  • The transition won’t happen overnight.
  • Many organisations will still require an extensive local infrastructure (if only for client connectivity to the cloud).
  • Someone has to build and run those cloud datacentres!
  • Security will be key to the success (or failure) of this brave new world.

Regardless of my future job prospects, I’m looking forward to the day when someone asks me to integrate an on-premise infrastructure with Windows Azure.

A state of calm returns to the Wilson household as the CBeebies TV signal is restored

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few years ago, I wrote about getting free to air digital TV from Sky. At that time, FreeSat was a relatively unknown service and I was trying to avoid the cost of an aerial upgrade (antenna for those of you reading this outside the UK) but, at the end of last week, my Sky box developed an intermittent sound problem and became unwatchable (on top of the frequent need to reboot before it will pick up Channel 4), leaving us with two poorly children and no CBeebies!

For most people, CBeebies is of no significance but is you have children between 2 and 5 (I have two that age), it may be considered vital! Luckily, I have my Mac Mini hooked up to the TV, so I streamed CBeebies directly from the web for Saturday’s early morning shift but, as the rest of the street woke up and went online, we saw more and more buffering and it’s hard to explain to little people why their favourite CBeebies programmes keep on stopping!

It was clear that I needed to do something about the TV signal. Digit AlAs part of the UK’s digital switchover, analogue TV is due to be switched off in my region in 2011 and the signal has already deteriorated to the point that it’s virtually unwatchable so digital is the only real choice. I could get another satellite decoder but, a little while back, the existing one was automatically upgraded to use Sky’s auto standby functionality (great if you’re looking to save power, not great if you’ve set the video to record from the satellite signal and meanwhile the Sky box goes into standby…) so we decided to bite the bullet and switch to digital terrestrial (Freeview). I picked up a nice little Philips DTR220/05 set top box from John Lewis and the (extremely easy) setup meant that within minutes I had it set up to pick up almost every channel, except those in multiplex B. After a bit of googling I found that’s because the local TV transmitter (Sandy Heath) transmits this signal on channel 67 – right at the edge of the frequency range, and the existing (loft mounted) aerial wasn’t up to the job (not really surprising as, even though I live on the top of a hill, the signal has to pass through three brick/block walls and an electricity substation).

So, this morning, the my local aerial installation company visited to fit a nice new digital TV aerial to my chimney stack, after which the CBeebies TV signal was restored (along with several other channels of less significance). And, because there are a few channel differences between FreeSat from Sky and FreeView, I can even watch Dave now (which I’m sure will not impress Mrs. W)!

Microsoft Virtualization User Group meeting: April 2009

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

The Microsoft Virtualization User Group has its next meeting coming up soon, but it’s pretty short notice so Patrick has asked me to spread the word (which I’m happy to do).

So, if you’re into Microsoft Virtualization and you’re in the London area on the evening of 16 April 2009, come along to Microsoft’s offices in Victoria to watch Matt McSpirit give a deep dive into Hyper-V R2 and SCVMM 2008 R2 before Adam Downie talks about Disaster Recovery and Business Continuity Management with Double-Take for Hyper-V.

Read more and register at the MVUG website.

Don’t write off Internet Explorer just yet (and how to make sure your website renders correctly with Internet Explorer 8)

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Microsoft Windows Internet Explorer 8 logoI’ve had a few communications from Microsoft this week attempting to hammer home the point that Internet Explorer (IE) 8 was released last week. My personal view is that many technical users switched to alternative browsers during the time when “Internet Exploder” was, frankly, not that great (a deliberate understatement) and that it will take a long time for them to return (if, indeed, they ever do); however the majority of consumers and enterprises are still using IE for two reasons:

  • It ships with Windows.
  • They see no need to upgrade/switch browsers (unless Windows Update does it for them).

There are of course those who will highlight IE’s problems (for example, that it accounts for a significant number of the security updates produced for Windows) but, in fairness, competing products have similar issues and in some ways I’d rather be running a popular browser that others will find the holes in and the vendor will (hopefully) fix (of course, the same argument is often levied as a reason to run open source applications).

I would like to point out though that Internet Explorer 8 is a huge step forward for Microsoft – both in terms of standards compliance and when looking at its feature set and these days I rarely run anything other than a native browser (IE on Windows, Safari on Mac) because the return of the browser wars has really helped operating systems to raise their game when it comes to browser functionality. IE8 works for me – and whilst there may be tons of add-ins for Firefox, it’s those add-ins that can make the browser unstable too. Similarly, Google Chrome is great for running Google Apps as though they were desktop applications but I fall back to IE when a website fails to render in an alternative browser. And Opera (one of the competitors currently winding up the European Union to drag Microsoft through the courts again in a battle which does little-or-nothing for end users and costs us all a load of money) – they are little more than a distraction, as can be seen in my webstats for March:

Browser Percentage of traffic
Microsoft Internet Explorer 47.26%
Mozilla Firefox 39.24%
Apple Safari 6.33%
Google Chrome 3.91%
Opera 1.90%

If I look at the IE versions in use though, almost 70% are on IE7, around 10% are on IE8, and 21% of my IE visitors (so around 10% of my overall traffic) are still running IE6. My stats are probably skewed due to the number of technical readers (who often run the latest and greatest or the more obscure technologies) but it seems that IE6 is finally becoming a minority browser (and I had just 9 visits from other versions of IE last month).

It seems to me that, for most web developers, there really is little reason not to adhere to web standards and those IE hacks to sort out transparent PNGs, rendering issues and a miscellany of other “quirks” will soon become a thing of the past. Even so, there are still a significant volume of users running older browsers, so we can’t cut loose entirely (IE6 users accounted for over 12% of this site’s revenue last month… that might not be a lot of money but there is a saying that “if you look after the pennies, the pounds will look after themselves“) and, if redeveloping your site to tell it not to run loads of IE hacks is too big a project (or if you still want to direct IE8 to view your site in a particular manner), I saw a document today that details the metatags that can be used:

Internet Explorer 8 ships with multiple rendering modes that may be set by using the X-UA-Compatible header. Web developers can use the ‘meta tag’ to instruct Internet Explorer 8 to render content using a specific mode – to ensure legacy code and applications work properly. The ‘meta tag’ can be included as an HTTP response header for a server-wide solution or on a page by page basis. At the page level instructing the browser to render using the IE7 mode, the ‘meta tag’ would look like:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >

More than just IE7 mode
The following chart lists the available modes and values for the ‘meta tag’:

Compatibility Mode Value Render Behavior
IE=5 “Quirks” mode
IE=7 Internet Explorer 7 Strict mode
IE=EmulateIE7 Use the !DOCTYPE declaration to determine mode:

  • Quirks mode !DOCTYPEs result in Quirks mode
  • Standards mode !DOCTYPEs result in Internet Explorer 7 Strict mode
IE=8 Internet Explorer 8 Standards mode
IE=EmulateIE8 Use the !DOCTYPE declaration to determine mode:

  • Quirks mode !DOCTYPEs result in Quirks mode
  • Standards mode !DOCTYPEs result in Internet Explorer 8 Standards mode
IE=edge Uses latest standards that Internet Explorer 8 and any future versions of the browser support. Not recommended for production sites.

Browser competition is great news – if it hadn’t been for Firefox, Microsoft would not have kick-started Internet Explorer development – but I think that, for the majority of users, Internet Explorer 8 is worth a look. Meanwhile, for many web developers with sites that don’t render correctly in IE8 (like mine!) the chances are that a single line of code in the <head> section of your (X)HTML will fix it – you can find out more (including fully-functioning demonstrations and code samples) at the IE8 developer demonstration website.

Useful Links: March 2009

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A list of items I’ve come across recently that I found potentially useful, interesting, or just plain funny:

Cooliris

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

As I put more and more of my portfolio onto Flickr, I’ve been looking for a decent Flickr application for my iPhone and my friend Karen recommended one last week.

Cooliris iPhone application browsing FlickrCalled Cooliris, the application is available both as a browser plugin and as an iPhone application and is actually far more capable than just a front-end application for a single website as it can be used to create a “3D wall” for searching and viewing media from a variety of sites.

I’m not so convinced about the full application (it looks nice, but a couple of quick searches failed to come up with content that I know exists); however it’s a pretty impressive as an iPhone application to browse my Flickr photostream!

Establishing parental control: easy when you know how

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

This week, Channel 4 is running a series of sex education television programmes looking at how young people today are gaining their sex education from Internet porn – and as a result are exposed to some disturbing content on the web.

I like to think that I’m fairly open-minded but my eldest son is reaching the point where I am considering giving him his own computer and, whilst I’d like to think that his computer time will be supervised, that will not always be possible as he grows up, or when he uses systems at friends’ houses, school, Internet cafés, etc..

One of the points that Channel 4 is highlighting is the lack of awareness (and knowledge, based on visits to a PC World, Sony Store and Micro Anvika stores) about the parental controls that are available in modern operating systems so, in this post, I’ll give a quick rundown of how to set up parental controls on your child’s PC – without resorting to additional software like that listed on the Kids’ safety advice on GetNetWise.

First up, the operating system on most of the world’s PCs – Microsoft Windows. Windows XP may not have any parental controls within the operating system but Vista and 7 do – as long as you are not running in a domain! Yes, that’s right – no parental controls on domain-joined PCs. I suspect this is something to do with the prospect of being hauled up in front of the United States Department of Justice or the European Union Competition Commission by the vendors of content filtering solutions if businesses relied on the controls built into the operating system to stop their employees from visiting the less salubrious portions of the web but for me, with several domain-joined PCs in the home, this effectively means my children will have to use their own PC. Not necessarily an issue but nevertheless an unnecessary constraint, particularly for those who have a single PC used for both home and business activities and also joined to a corporate domain (perhaps in a small business environment).

Assuming that your Windows Vista or Windows 7 PC is not joined to a domain, it’s parental controls are accessed via Control Panel and include limits on web content, limits on computer access times and games, as well as the ability to block access to specific applications. More information on Windows Parental Controls is available on the Windows help site and it’s also possible to view activity reports.

Over on the Mac, it’s pretty much the same story – OS X 10.4 (Tiger) and 10.5 (Leopard) include parental controls in the user account properties. In addition, OS X can display a simplified Finder window for young or inexperienced users, only allow access to certain applications, hide profanity in the dictionary (yes, I used to look up rude words in a paper dictionary when I was a boy!), limit website access (including the ability to create allow and deny lists) limit the users with whom mail and IM can be exchanged, enforce computer time limits (with different limits for weekdays and weekends!) as well as bedtime on school nights and weekends (I should try setting this on my own account).

The principles are similar in Windows and on the Mac but I’m using the Mac in these screen grabs (because my Windows machines are domain-joined). If I search for the first thing that a schoolboy might think of when given Internet access, it’s blocked:

Parental Controls preventing website access in Safari on Mac OS X 10.5

Unless I happen to know the administrator password:

Parental Controls requesting authentication on Mac OS X 10.5

Similarly, if I try to open an image, using an application that’s not allowed (in this case the OS X Preview application)… computer says “no”:

Parental Controls preventing application access on Mac OS X 10.5

And, assuming I’m not watching over my child like a hawk, I can keep an eye on their computing activities from a distance using the logs:

Parental Controls logging activity on Mac OS X 10.5

By now, you have probably got some idea of what’s possible on the mainstream consumer operating systems. Over in Linux-land it’s a little more complicated but still possible using a combination of IP filters, third party applications and limited DNS (e.g. OpenDNS). I’m sure I’ll write more as I become exposed to child computing habits but, for now, hopefully this has highlighted the ability to easily put in place some controls to protect your children from the Internet, whilst simultaneously allowing them some freedom.

HP ink ripoff

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I used to have a great printer – an HP LaserJet 2200dn. It was a workgroup-class laser printer with a duplex unit and it happily printed many pages for me until one day it started banding. I changed the toner cartridge but that didn’t help – it seemed that the printer needed more specialised attention than I could provide so, as they had enjoyed the benefits at no cost for the last few years, I asked the company that I work for to either a) fix it or b) replace it. The company chose option b and, supplied me with an HP OfficeJet 6310 all-in-one device that doesn’t print on both sides of the paper, often picks up multiple sheets when printing large documents and drinks ink at an alarming rate.

You may have realised by now that I’m no fan of inkjets but I do at least use the HP339 high yield black cartridges (this printer can use 336, 337 or 339) so I don’t have to change cartridges quite so often (and I keep on printing until it runs out, rather than changing the cartridge when low ink warning first appears). Applying that model to the tri-color cartridge, I decided to try the 344, which appears to be the same as a 342/343, except with more ink inside… but the printer was having none of it:

Cartridge Error: Cartridge on left is not intended for this printer

HP Vivera 343 ink cartridgeI swapped it for a 343 (which looks the same, costs slightly less, but only has 7ml of ink instead of 14ml) and was greeted with:

Genuine HP Tri-Color print cartridge installed.

Rip-off merchants! It seems that HP, in addition to having different numbers for similar cartridges in different markets, is preventing the use of high-yield cartridges in certain devices. Interestingly, if I had an OfficeJet 6210 instead of a 6310, it could use either the 343 or the 344. I know I could use third-party inks but that would void the warranty and, after all, this is the company’s printer – not mine (so it’s not my choice to make).

It really annoys me that, in the throwaway society we live in today, the printer doesn’t cost much more than the consumables. The real answer of course is to print fewer pages… but with more and more companies opting for the “green” benefits of electronic billing (it’s not green – the tax authorities still want paper documents and sometimes its just easier to read documents on paper – it just shifts the printing burden from the supplier’s bulk-printing facilities to the reciever’s crappy inkjet) things are only going to get worse.

Using the Nikon Scan 4.0.2 plugin with Adobe Photoshop CS3 on an Intel Mac running OS X 10.5

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Tonight is my local camera club meeting and it’s competition night, which meant I needed to make prints from some of my recent images. After an emergency trip to HobbyCraft last night to buy some mats to mount the prints (unfortunately it was too late in the day to catch the local picture framer), I set to work on tweaking the images before printing them (hence the requirement to buy some extra ink yesterday!!!). The digital files were fine but two of the images to enter in the competition needed to be scanned from film, which meant setting up my Nikon Super Coolscan 4000 ED with my MacBook (running OS X 10.5.5) and Nikon Scan 4.0.2 as a plugin Adobe Photoshop CS3.

A couple of years ago, I wrote about installing Nikon Scan as Photoshop CS2 plugin on my Mac Mini but things have moved on since then. I hadn’t realised that the Nikon Scan plugin is a PowerPC application (and my Macs have Intel processors) and under CS2 (which ran on OS X’s Rosetta emulation layer) this wasn’t a problem but I couldn’t get CS3 (which is a Universal application) to recognise the plugin (incidentally, my original advice to copy the plugin to the Photoshop plugins folder works, but there is an alternative – simply add the path to the legacy plugin in the Photoshop preferences):

Enabling Nikon Scan in the Photoshop preferences

Select Rosetta emulation for Photoshop CS3The answer is to adjust the file information the Photoshop CS3 application to open it using Rosetta (information found on a photo.net forum post). After this is done, Photoshop CS3 is happy to run the plugin, although the interface is not at all Mac-like (and Nikon have stated that they will not be updating Nikon Scan for full OS X 10.5 compatibility). I could use alternative scanning tools (like VueScan) but, despite the awful user interface, Nikon Scan serves its purpose and includes support for the ICE features of my scanner.

It’s worth pointing out that Rosetta is limited to accessing 1.5GB of memory for all non-Intel processes. As I have 4GB of RAM in my MacBook, that’s starving Photoshop of resources, so it’s worth turning off Rosetta when Nikon Scan is not required. Alternatively I could run Nikon Scan as a standalone application but I prefer to run applications like this as plugins.

Incidentally, for those who are interested, these are the pictures I’ll be entering in tonight’s competition:

Silverton HotelTornadoSt Pancras International (2)Basilique du Sacré-Coeur from Musée D'Orsay

(These images are ©1993-2009 Mark Wilson, all rights reserved and are therefore excluded from the Creative Commons license used for the rest of this site.)

[Update 22:30: the St Pancras International image was awarded third place in the open category! The others didn’t make the cut]

The Ink and Toner Shop

This content is 17 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I live in a small market town with a population of around 6000 people. Unlike the larger towns nearby, we don’t have an identikit high street and are fortunate to have a number of independent shops – a butcher, a baker (no candlestick maker!), a saddlery, gift/card shops, florists, restaurants, coffee shops, boutiques, antiques, a toy shop, sweet shop, picture framer, etc. We also have a weekly market and a monthly farmer’s market, several banks, a post office, a small supermarket (but sadly a few too many estate agents and charity shops) and, somewhat inevitably, the all-too-powerful retail giant that is Tesco is in town (not content with a One Stop store at one end of the high street they recently opened a Tesco Express store right next to the market square… and now they have their sights on ripping the heart out of the neighbouring town).

So, what’s the point of this ramble? The point is that we have a thriving local community, good schools and local facilities so, wherever practical, I like to shop locally and support the independent traders in the town (i.e. not Tesco!). As a member of the camera club, I’d been alerted to the existence of one business in the town that I hadn’t used until today – The Ink and Toner Shop.

As the name suggests, The Ink and Toner Shop offers a variety of printer-related consumables at competitive prices with friendly service and free delivery (even for those who don’t happen to live around the corner, as I do!). So, next time you’re looking for “printer food”, rather than buying from the local supermarket/Staples/PC World/Costco, please check out The Ink and Toner Shop website and support my local community!