Hunting down hot spots in Milton Keynes

A couple of weeks back, I wrote a post about the 40th anniversary of the creation of Milton Keynes, Britain’s last “new town”, the Borough of which includes the town where I live. That post included some rather tenuous technology links, one of which was VNU’s report that Milton Keynes is to become the site for the UK’s largest area of high-speed wireless broadband access – for free (in addition to the first WiMAX deployment in the UK).

According to the local press:

“Free Internet access is spreading across Central Milton Keynes as Britezone grabs people’s imagination. Already the two shopping centres and [the main street adjacent to the shopping centre] offer free connection for wi-fi phones and laptops… Britezone was launched less that three months ago and has been an immediate success… It couldn’t be simpler to register: as soon as you enter the Britezone your phone or laptop will offer Britezone as an ISP option and you click on it to be connected for free”.

[Milton Keynes Citizen, 1 February 2007]

Skeptical as ever, yesterday afternoon I decided to check it out, hunting down hotspots in Central Milton Keynes.

To be fair, the map that accompanied the text I just quoted showed two distinct rings of coverage, with more planned as sponsors are found. Interestingly, one of the main sponsors is the local newspaper, and a search of their website for Britezone turns up no results – not even a link to the (badly written – both in terms of textual information and coding) Briteyellow website. I headed for the point where the two rings overlapped most – “The Boulevard” – an area full of coffee shops situated between The Centre: MK and Midsummer Place. I fired up my Windows XP laptop, searched for Wireless networks and… no Britezone, although I did find a variety of wireless networks, both secure and insecure.

After walking a little further, into the middle of a busy thoroughfare, I spotted what could have been a wi-fi antenna on the roof of the shopping centre and finally picked up a weak signal (much to the bemusement of passing shoppers), connected and opened a browser, entering the walled garden and registering for my free 12-hour access code.

Could this be an antenna for the CMK Britezone?

The registration process was not simple – it required giving away chunks of personal information in mandatory form fields (name, mobile phone model and number, address, sex, age, inside leg measurement… well maybe not inside leg measurement but far more information than I was happy to part with for some free wireless access) and although the mobile phone model didn’t show up as a mandatory field, I couldn’t register until I provided the details.

Once online, I could browse the ‘net (I didn’t try much else) but I set about tracking the signal to see how extensive the Britezone is. As I found the strongest point, I spotted, mounted on the roof, outside Marks and Spencer, a Strix Systems access point. I wandered a little further around the shopping centre, and although I found many wireless networks on my travels, there was no evidence of Britezone anywhere outside this very small zone of coverage!

Strix Systems access point

At the time of writing, Milton Keynes’ free wi-fi coverage seems pretty poor. I’m sure it will get better but it got me thinking about who this service is actually aimed at. Wandering around a shopping centre with a laptop, I felt pretty vulnerable (and got a lot of strange looks). Once the rest of the city centre is covered then it may be of use for office workers but most businesses will already have Internet connectivity (and I wouldn’t trust a free hotspot to run a corporate network). I can see that metropolitan coverage will be good for home users (as the local cable network was built with aluminium cables – not copper – and so has technical difficulties to overcome before it can be used for broadband access) but there will be competition as Pipex Wireless is trialling WiMAX services in parts of Milton Keynes (the first users have been connected already). Given that Briteyellow, who operate the wi-fi service I tested, were so keen to gather my mobile phone model and number it seems likely that the main beneficiaries will be smartphone users and one of the registration options was to be notified of special offers. At this point, I realised the whole point – it’s not about free Internet access, but advertising – imagine the scenario – as you pass HMV (for example), the details of the latest CD releases pop up on your mobile… and there’s 10% off if you show the advert in store – you get the picture? Free Internet access is just the hook. Another service on offer is a low-cost softphone and instant messaging solution – why use your (expensive) mobile cellular phone when you can use a free wi-fi network and pay them for your phone calls?

Britezone is certain to have its uses. Whether it will ever cover the entire city (or even the whole city centre) is yet to be seen but until it covers the many parks and green spaces, or a few coffee shops where I can sit in comfort with my laptop (without constantly looking over my shoulder), I don’t think I’ll be using it again. I do wish them luck though – the service certainly has potential, as long as they can expand the coverage. In the meantime, I’ve registered my interest in the Pipex WiMAX service. Further information on broadband coverage in Milton Keynes can be found via the Milton Keynes broadband action group.

Obtaining version information for Flash (.SWF) files

In my post about embedding video content in (X)HTML this morning, I mentioned that I didn’t know the correct codebase attribute to use when embedding Flash video clips from online resources in my web pages… well, now I do!

It seems that every Flash (.SWF) file includes a header which includes the Flash version number in the 4th byte.

OK… great… but how do I view the header?

First, I found a forum thread discussing a method for testing the minimum version of Flash player is required to display a .SWF. however, trying to write some ActionScript in MX Studio 2004 blew my mind (I don’t know anything about Flash development). A bit more googling led to another thread on .SWF header-only parsing, including some Java code (unfortunately I don’t know how to use a Java class either!).

Now what? Realising that I’m an operating-system-and-infrastructure-kind-of-guy and not a programmer, I started to think about the command line… what if I get hold of a .SWF file and type head filename.swf? Lots of beeps and unintelligible ASCII characters, that’s what! Hang on… that started with CWS? Flash file headers always begin with CWS or FWS… getting warmer… how can I read that 4th byte… think back to hacking school computers with the MS-DOS debugger 20 years ago… think hexadecimal… a hex editor – that’s the answer!

As I was working on Mac (i.e. no debug.exe available), I needed to download a free hex editor. HexEdit looked like it should do the trick but there is not a universal binary version available yet (only 68000 and PowerPC). Then I found a link to 0xED (nice name for a hex editor guys!) on the Apple development tools download site. I opened a .SWF file and… 43 (C)… 57 (W) … 53 (S)… 07… Flash Player 7 required. Sorted. Repeating for a few more files, I found FWS4 and FWS5… this was looking good, now what about the iFilm and YouTube links in my post this morning? As they don’t expose the content directly (even when you dig about in the HTML), I thought of using something like TubeSock to rip the content but realised that wouldn’t help in this case as it also performs a file format conversion. Then I noticed that the websites use their own Flash players to access the video content – 0xED can also open by path – and after entering the required URL (http://www.ifilm.com/efp or http://youtube.com/player2.swf), I found the information I needed – YouTube content needs Flash Player 7 or later and iFilm content needs Flash Player 8 or later.

.SWF file viewed in 0xED

Now I can go back and edit those codebase attributes to the correct minimum player version!

Embedding video content in (X)HTML

Yesterday’s Mac vs. PC post should have been straightforward, except that it contained three video clips, each of which I wanted to embed in a standards-compliant way whilst maintaining maximum browser compatibility (i.e. ignoring the official advice from Adobe on embedding Flash content and Apple’s advice for embedding QuickTime content by avoiding the non-standard <embed> element and just using the <object> and <param> elements)… what a task that turned out to be.

To be honest, a lot of the problems probably came down to me not thinking my code was working because the preview function in my content management system (Blogger) failed to display the videos in one browser or another so, after another late night, I decided to publish and be damned. The resulting code seems to work for the Flash content on most the the browser/operating system combinations I have tried (Mozilla 1.7.13 and Firefox 1.5.06 on Linux; Internet Explorer 7.0.5730.11 on Windows XP, Safari 2.0.4 and Firefox 2.0.0.1 on Mac OS X – Intel), although I was using Adobe Flash Player 9 (I’m not sure which version is needed for the clips I used so I didn’t update the codebase attribute to reflect it – older player versions will not automatically update until I fix this) and I’m aware that there may still be some issues with the QuickTime clip (it does seem to be working on Firefox and IE though).

So, how should this be done?

Firstly, the valid Flash, video, and audio embed (object) markup post at the Web Standards Project links to some great articles which should be read, namely:

These give the background to why the <embed> element shouldn’t be used, as well as demonstrating the use of conditional comments to force certain browsers into compliance. I actually used another variation on this theme – David Grudl’s how to correctly insert Flash into XHTML – ironically this uses a negated version of Internet Explorer-specific conditional comments to force IE into ignoring code intended for other browsers!

Then, there is the issue of the changes made to the behaviour of ActiveX content in Internet Explorer, following the Eolas patent suit, as described by Robert Nyman. In my case, it doesn’t really matter if you need to activate a control to view a video clip on my blog; however there are some workarounds. Most use JavaScript (indeed Adobe recommends a JavaScript-based workaround to the changes made in Internet Explorer) and one popular alternative is to use document.write in an external JavaScript function to dynamically re-write the object embedding code. Alternatives include Geoff Stearns’ SWFObject (formerly known as FlashObject) and Bobby van der Sluis’ unobtrusive flash objects (UFO). I plumped for a version I found in a comment by Karl Rudd the Robert Nyman post that I linked earlier (Fix It uses a similar concept, also advocated by David Grudl in his post on how to avoid activation of ActiveX in IE).

After spending most of yesterday working on the object embedding, and a good part of this morning writing about it here, I think I’ll leave that one alone now, unless anyone has any better ideas to fix my code (note that the <br /> tags scattered through it were added by Blogger – not by me).