Bowie is – Exhibition at the V&A London

The David Bowie exhibition at the V&A in London is stunning. It has been on since 23rd March and remains until 11 August, but advance tickets sold quickly which is why I ended up on an overflow date: Sunday evening when the rest of the museum is closed. Setting the scene outside is some faded pavement art including the iconic “Heroes” pose. We went in through a side door, along a corridor, and to the exhibition entrance to pick up the Sennheiser headphones and wireless receiver; these detect where you are and provide appropriate music and commentary.


The sound was excellent overall though the technology not quite perfect, particularly towards the end where the concert soundtracks seemed a bit mixed up, but no matter.

There are several kinds of exhibit:

  • Writings and occasionally paintings by Bowie and others – including handwritten lyrics, sometimes with variations and corrections
  • Album artwork and outtakes
  • Costumes
  • Stage sets, some sketched, some 3D models
  • Photographs
  • Concert footage
  • Film extracts
  • Books and posters that influenced Bowie or capture his era

The standard of the exhibits is excellent, with many things that I (as a reasonably well informed though not quite obsessive fan) had not seen before. It started well for me with a handwritten note about 1. Outside, which starts:

What Eno and I are endeavouring to do with this album is, by means of the loosely knit story line and characters, create a textual and musical diary that will record feelings and fears as we approach the end of the millennium.

The visual layout of the exhibition (along with the audio soundtrack) is key to its appeal. I would describe it as appropriately fractured, with clever use of light and shade, and splashes of bright colour to offset the monochrome of the many handwritten or typed documents.

I was expecting a plentiful array of stage costumes, and there is, but at no point does this feel like a costume exhibition. The costumes are positioned for dramatic effect, many of them high up, and form a kind of backdrop to the other exhibits.


The popularity of the event means that you cannot proceed quickly, especially as it takes time to read and take in many of the exhibits. This might even be a good thing, forcing you not to rush. According to the organisers, most people take around 90 minutes to look round; I took a little longer.

I was pleasantly surprised by the demographics of those attending. There were plenty of visitors in their twenties and thirties, who had not been born when Bowie was strutting his stuff as Ziggy Stardust, which made me wonder how they had encountered his work.

It was intriguing to see some of Jonathan Barnbrook’s alternative designs for the cover of The Next Day, Bowie’s most recent album. The final version shows a white square blanking much of the sleeve of “Heroes”; alternates show subverted cover art based on Pin Ups and Aladdin Sane as well as a different take on “Heroes” using an overlaid bright red patch with the lettering “Where Are We Now?” showing through; perhaps that one was intended for the single.

The film section includes part of the Elephant Man show in New York, in which Bowie gives a superb, heart-rending performance. I hope that a whole show exists on film and that we get to see it sometime.

The large room at the end is where you see and hear concert footage including some rarities, such as Sweet Thing from the Tower Philadelphia in 1974 (the David Live concerts). This is where the audio went slightly wrong for me which was a shame; but I did enjoy watching and hearing the end of the famous Ziggy retirement concert in great quality. “Not only is this the last show of the tour … it’s the last show … that we’ll ever do.” Cue wailing and tears; apparently even the band did not know in advance. What a showman.

Make sure you catch this before it finishes. Although advance tickets are sold out, some are released each  day if you turn up in the morning.

Visual C++ will implement all of C++ 11 and C++ 14, some of C99 says Microsoft

Microsoft’s Herb Sutter spoke at Microsoft Build in San Francisco on the future of C++.


Microsoft has been criticised for being slow to implement all the features of ISO C++ 11. Sutter says most features are now included in the public preview of Visual Studio 2013 – which has a “Go Live” license so you can use it in production – including the oft-requested variadic templates. The full list:

  • Explicit conversion operators
  • Raw string literals
  • Function template default arguments
  • Delegating constructors
  • Uniform int and initializer_lists
  • Variadic templates

More features are coming in the RTM (final release) of Visual Studio 2013 later this year:

  • Non-static member initializers
  • =default
  • =delete
  • ‘using’ aliases

A technical preview will then follow and Sutter listed possible features of which there will be a subset. Full conformance will follow at an unspecified time.

Microsoft is also promising a full implementation of C++ 14, the next update to the standard, even though the exact specification is not yet fully agreed. Some C++ 14 features will be implemented ahead of C++ 11 features, if they are considered to add high value.

Two other points of interest.

Async/await (familiar to C# developers) will be implemented in the post-RTM CTP because it is such a useful feature for Windows Runtime app developers, even though it is not part of the ISO standard.

Finally, Microsoft will also several C99 features in the RTM of Visual Studio 2013:

  • Variable decls
  • C99_Bool
  • compound literals
  • designated initializers

The reason for implementing these is that they are needed to compile popular open source libraries like FFmpeg.

I asked Sutter why Microsoft is not planning full conformance to C99. He said it was a matter of priorities and that work on C++ 11 and C++ 14 was more important. If there are particular additional features of C99 developers would like to see implemented, contacting Sutter with requests and rationale might eventually yield results.


A big ball of Bluetooth at Microsoft Build

At Microsoft’s Build developer conference in San Francisco the company is showing off new features of Windows 8.1, now in preview, a major update to Windows 8.0.


In a session on the Windows Runtime, the platform behind the tablet platform in Windows 8, there was a dramatic moment when a huge black ball rumbled onto the stage and threatened to destroy the “Lemonade stand” which the presenters were using to showcase how a very small business might use Windows 8.

The significance of the ball (a custom Sphero) is that Windows 8.1 has Bluetooth APIs built in, so that app developers can easily control a Bluetooth device from code.

Robotics is an obvious application, but with increasing numbers of Bluetooth devices out there, this is a smart move by Microsoft.

Microsoft Build: Windows 8.1 for developers, Visual Studio 2013, Xamarin for cross-platform

Microsoft’s Build developer conference is getting under way in San Francisco.


Today Microsoft is expected to announce the public preview of Windows 8.1 together with technical details of what is in the latest Windows update. Sessions include What’s new in the Windows Runtime (the tablet platform in Windows 8), and what’s new in XAML (the interface design language for Windows 8) and WinJS (the interop library for apps written in HTML and JavaScript).

Gartner’s Hype Cycle for new technologies runs from the Peak of Inflated Expectations through the Trough of Disillusionment, eventually settling at the Plateau of Productivity. Inflated expectations for Windows 8 – the iPad killer – expired many months back and we are well down in the trough, with little momentum behind the Windows 8 tablet platform, OEM partners still searching for the right way to package Windows 8 and coming up with unsatisfactory and expensive hybrid creations, and iPad and Android tablets ascendant.

At this point, Microsoft needs to win over its core market, much of which is determined to stick with Windows 7, as well as injecting some life into the tablet side of Windows 8. The platform has promise, but it is fair to say that the launch has been difficult.

The advantage now is that Microsoft is in a period of incremental improvement rather than reimagining Windows, and incremental improvements are easier to pull off. More reports soon.

The schedule also includes news of Visual Studio 2013 and there is likely to be a new preview for this as well. A smoothly integrated development platform across Windows client, Windows Phone, and the Windows Azure cloud, with a dash of XBox One for game developers? Microsoft has all the ingredients but with questions about whether it is able to deliver, as it is currently losing the battle for the client (PC and devices).

One answer for C# developers hedging their bets, or just trying to take advantage of the huge iOS and Android market, is the Xamarin toolset which lets code in C# and .NET and share non-GUI code across all the most popular platforms. Xamarin hosted a large party for Microsoft-platform developers last night in San Francisco. Xamarin’s approach is winning significant support, since it ensures a native GUI on each platform while still sharing a large proportion of your code.  Mono and Xamarin founder Miguel de Icaza was there to evangelise the Xamarin tools.


There was also a giant Jenga-like game. Here’s hoping that neither Xamarin’s nor Microsoft’s development stack looks like this.


Not just Instagram: the Windows Phone (and BlackBerry, Firefox OS) app problem

I like the Windows Phone OS and use one day to day. However it has become impossible to do my job in technical journalism without either an Apple iOS or Android device alongside it. The reason is that I review gadgets and find increasingly that they come with app support – but only for iOS or Android.

The Fitbit exercise tracking gadget, for example.


Or the Corsair Voyager Air wireless hard drive, almost inaccessible from Windows Phone (you can do it with a firmware update and DLNA).



Or the Seagate Wireless Plus. Actually this one is better as it has a web UI, but no app.


My bank is Nationwide and has an app – uh oh.


It’s not just Instagram.


Where do Microsoft and Nokia go from here? Or other contenders like BlackBerry and Firefox OS? The answer of course is to sell lots of devices so that discontented users beat up the companies that do not support them. But selling lots of devices is difficult when the customer says, “it’s a nice phone, but it does not work with my portable hard drive. Or my bank. Or my Fitbit.”

The Mac survived versus the PC for many years with this kind of problem. It takes a loyal customer base and excellent 1st party and niche apps. There are still areas of strength which Microsoft and its phone partners could exploit (though they have been poor at this to date). Enterprise integration with Windows Server and System Center. Consumer integration with Xbox.

If the company can get it right with Windows tablets that would help too, especially combined with unification of the Windows 8 and Windows Phone app platforms.

Unfortunately for Microsoft though, the market has already decided that only two mobile platforms matter, and that will not be easy to change.

Online booking with National Express: prices change arbitrarily

I don’t get this. You go online to book (or check prices) at National Express.


Hmm, that 13.00 looks a good deal at £9.00. But maybe I’ll go earlier. Click Show Earlier Coaches.


Oops! Not only are all the prices more for the earlier journeys, but the 13.00 is now £10.70. What if I now go back with Show later coaches?


Bad new – the 13.00 is still £10.70. Good news – the 16.00 which was £14.00 is now only £12.70.

What if I clear cookies, or revisit the site in a different browser?


Yes, it’s back to the old prices.

My experience is that price reductions are rare. They almost always go up. And that simply closing the browser and starting a new session is not enough to make them go back down. In the worst case, a £19.00 ticket went up to £30.

The behaviour is too consistent to be caused by other factors, like other customers booking or cancelling trips.

A bug? Or does National Express like to play games with its customers?

Windows XP Mode hassles for Windows 8 upgraders

One of the reasons for the success of Windows 7 was the provision Microsoft made for customers stuck with applications that only run on Windows XP. Windows XP Mode is a free add-on for Windows 7 Professional that runs Windows XP. It can also hide the XP desktop and run individual applications in their own window, though this is cosmetic and merely hides the desktop. Windows XP Mode uses Virtual PC as its virtualisation platform.

What would expect to happen if you upgraded Windows 7 with XP Mode to Windows 8? Without having researched it, my expectation was that Windows XP Mode would migrate smoothly to Hyper-V in Windows 8.

Not so. Here is the official word:

With the end of extended support for Windows XP in April 2014, Microsoft has decided not to develop Windows XP Mode for Windows 8.  If you’re a Windows 7 customer who uses Windows XP Mode and are planning a move to Windows 8, this article may be helpful to you.  
When you upgrade from Windows 7 to Windows 8, Windows XP Mode is installed on your machine, however Windows Virtual PC is not present anymore. This issue occurs because Windows Virtual PC is not supported on Windows 8. To retrieve data from the Windows XP Mode virtual machine, perform the steps listed in the More Information section.

If you were relying on XP Mode to run some old but essential application, this is definitely worth knowing. Microsoft’s guidance on retrieving the data is unlikely to be much use, since the reason you use XP Mode is to run applications rather than to store data. Some users are not impressed:

This is SHOCKING.  I was using Win 7 Pro and had a fully configured (hours of work) XP Virtual Machine with my complete web development environment in it.  It didn’t even occur to me that it wouldn’t work on Windows 8.  I’ve only just discovered now when I tried to access it to do some updates!

I MUST recover this virtual PC.

Why did the Upgrade Advisor not mention this!?!?  I carefully resolved all the issues highlighted there before moving on.

Of course it is desirable to move off Windows XP completely, even in XP Mode, but the rationale is that it is better to be on a recent and supported version of Windows and to run XP in a virtual environment, than to run Windows XP itself.

Another oddity is that you can run Windows XP on Hyper-V in Windows 8. However you cannot get XP Mode to work unless you perform a repair install that changes the way it is licensed. Yes, it is licensing rather than technical reasons that blocks the XP Mode upgrade:

Note: The Windows XP Mode virtual hard disk will not work on Windows 8 as Windows 8 does not provide the Windows XP Mode license. The Windows XP Mode license is a benefit provided on Windows 7 only.

Users have discovered workarounds. Aside from the repair install mentioned above, you can also use Oracle Virtual Box and trick XP Mode into thinking that it is running on Windows 7 and Virtual PC. You can also run a virtual instance of Windows 7 and run XP Mode within that.

China’s Tianhe-2 Supercomputer takes top ranking, a win for Intel vs Nvidia

The International Supercomputing Conference (ISC) is under way in Leipzig, and one of the announcements is that China’s Tianhe-2 is now the world’s fastest supercomputer according to the Top 500 list.

This has some personal interest for me, as I visited its predecessor Tianhe-1A in December 2011, on a press briefing organised by NVidia which was, I guess, on a diplomatic mission to promote Tesla, the GPU accelerator boards used in Tianhe-1A (which was itself the world’s fastest supercomputer for a period).

It appears that the mission failed, insofar as Tianhe-2 uses Intel Phi accelerator boards rather than Nvidia Tesla.

Tianhe-2 has 16,000 nodes, each with two Intel Xeon IvyBridge processors and three Xeon Phi processors for a combined total of 3,120,000 computing cores.

says the press release. Previously, the world’s fastest was the US Titan, which does use NVidia GPUs.

Nvidia has reason to worry. Tesla boards are present on 39 of the top 500, whereas Xeon Phi is only on 11, but it has not been out for long and is growing fast. A newly published paper shows Xeon Phi besting Tesla on sparse matrix-vector multiplication:

we demonstrate that our implementation is 3.52x and 1.32x faster, respectively, than the best available implementations on dual IntelR XeonR Processor E5-2680 and the NVIDIA Tesla K20X architecture.

In addition, Intel has just announced the successor to Xeon Phi, codenamed Knight’s Landing. Knight’s Landing can function as the host CPU as well as an accelerator board, and has integrated on-package memory to reduce data transfer bottlenecks.

Nvidia does not agree that Xeon Phi is faster:

The Tesla K20X is about 50% faster in Linpack performance, and in terms of real application performance we’re seeing from 2x to 5x faster performance using K20X versus Xeon Phi accelerator.

says the company’s Roy Kim, Tesla product manager. The truth I suspect is that it depends on the type of workload and I would welcome more detail on this.

It is also worth noting that Tianhe-2 does not better Titan on power/performance ratio.

  • Tianhe-2: 3,120,00 cores, 1,024,000 GB Memory, Linpack perf 33,862.7 TFlop/s, Power 17,808 kW.
  • Titan: 560,640 cores, 710,144 GB Memory, Linpack perf 17,590 TFlop/s, Power 8,209 kW.

Fixing lack of output in AWstats after Debian Linux upgrade

I use AWStats to analyse logs on several web sites that I manage. After a recent upgrade to Debian 7.0 “Wheezy” I was puzzled to find that my web stats were no longer being updated.

I verified that the Cron job which runs the update script was running. I verified that if I ran the same command from the console, it ran correctly. I verified this even using sudo to run with the same permissions as Apache. I also noted that the update button on the stats pages worked correctly. An odd problem.

This is how it rested for a while, and I manually updated the stats. It was annoying though, so I took a closer look.

First, I amended one of the Cron jobs so that it output to a file. Reading the file after the next failed update, I could see the error message:

Error: LogFile parameter is not defined in config/domain file
Setup file, web server or permissions) may be wrong.

I knew the config file was fine, but checked anyway, and of course the LogFile was specified OK.

It was a clue though. Eventually I came across this bug report by Simone Capra:

Hi all, i’ve found a problem:
When run from another perl program, it finds a config file that doesn’t exist!

I applied the suggested fix in, changing:

if (open( CONFIG, "$SiteConfig" ) ) {


if ($SiteConfig=~ /^[\\/]/ && open( CONFIG, "$SiteConfig" ) ) {

Presto, everything is running OK.

Microsoft and mediocrity in programming

A post by Ahmet Alp Balkan on working as a developer at Microsoft has stimulated much discussion. Balkan says he joined Microsoft 8 months ago (or two years ago if you count when he started as an intern) and tells a depressing tale (couched in odd language) of poor programming practice. Specifically:

  • Lack of documentation and communication. “There are certain people, if they got hit by a bus, nobody can pick up their work or code.”
  • Inability to improve the codebase. “Nobody will appreciate you for fixing styling or architectural issues in their core, in fact they may get offended.”
  • Lack of enthusiasm. “Writing better code is not a priority for the most”
  • Lack of productivity. “I spend most of my time trying to figure out how others’ uncommented/undocumented code work, debugging strange things and attending daily meetings.”
  • Lack of contribution to the community. “Everybody loves finding Stack Overflow answers on search results, but nobody contributes those answers.”
  • Lack of awareness of the competition. “No one I met in Windows Azure team heard about Heroku or Rackspace.”
  • Working by the book. “Nobody cares what sort of mess you created. As long as that functionality is ready, it is okay and can always be fixed later.”
  • Clipboard inheritance. “I’ve seen source files copy pasted across projects. As long as it gets shit done (described above) no one cares if you produced unmaintainable code.”
  • Using old tools. “Almost 90% of my colleagues use older versions of Office, Windows, Visual Studio and .NET Framework.”
  • Crippling management hierarchy. “At the end, you are working for your manager’s and their managers’ paychecks.”

There are a couple of points to emphasize. This is one person in one team which is part of a very large corporation, and should not be taken as descriptive of Microsoft programming culture as a whole. Balkan’s team is in “the test org”, he says, and not making product decisions. Further, many commenters observe that they have seen similar at other organisations.

Nevertheless, some of the points chime with other things I have seen. Take this post by Ian Smith, formerly a Microsoft-platform developer, on trying to buy a Surface Pro at Microsoft’s online store. From what he describes, the software behind the store is of dreadful quality. Currently, there is a broken image link on the home page.


This is not how you beat the iPad.

Another piece of evidence is in the bundled apps for Windows 8. The more I have reflected on this, the more I feel that supplying poor apps with Windows 8 was one of the worst launch mistakes. Apps like Mail, Calendar and Contacts on the Metro-style side have the look of waterfall development (though I have no inside knowledge of this). They look like what you would get from having a series of meetings about what the apps should do, and handing the specification over to a development team. They just about do the job, but without flair, without the benefit of an iterative cycle of improvements based on real user experience.

When the Mail app was launched, it lacked the ability to see the URL behind a hyperlink before tapping it, making phishing attempts hard to spot. This has since been fixed in an update, but how did that slip through? Details matter.

A lot is known about how to deliver high quality, secure and robust applications. Microsoft itself has contributed excellent insights, in books like Steve McConnell’s Code Complete and Michael Howard’s Writing Secure Code. The Agile movement has shown the importance of iterative development, and strong communication between all project stakeholders. Departing from these principles is almost always a mistake.

The WinRT platform needed a start-up culture. “We’re up against iPad and Android, we have to do something special.” Microsoft can do this; in fact, Windows Phone 7 demonstrated some of that in its refreshing new user interface (though the 2010 launch was botched in other ways).

Another piece of evidence: when I open a Word document from the SkyDrive client and work on it for a while, typing starts to slow down and I have to save the document locally in order to continue. I am not alone in experiencing this bug. Something is broken in the way Office talks to SkyDrive. It has been that way for many months. This is not how you beat Dropbox.

In other words, I do think Microsoft has a problem, though equally I am sure it does not apply everywhere. Look, for example, at Hyper-V and how that team has gone all-out to compete with VMWare and delivered strong releases.

Unfortunately mediocrity, where it is does exist, is a typical side-effect of monopoly profits and complacency. Microsoft (if it ever could) cannot afford for it to continue.