Concert Audio and Alison Young

I’ve long thought (I’m aware this will make me sound like a young fogey) that most concerts are way too loud. This is why I tend to avoid them - I’ve seen both the rock music of the Foo Fighters and the delicacy and dynamic range of Sigur Rós spoilt on stage. The only times I tend to attend gigs are when the venue is small and the artist is unknown to me (which helps built the sense of atmosphere and overcome the poorer sound quality). There’s a long discussion on Edward Tufte’s website about the technical aspects of this over-amplification issue.

Because of this, I was blown away when I saw Alison Young performing at the euroGel conference I recently attended. Not only was the sound mix delicate and well-balanced, but Alison is a superb singer who’s become my new favourite artist. She obviously has country and southern influences, but what I’ve heard from her so far has been both emotionally powerful and whimsical. You can download three of her songs as MP3s from her website: she also has plans to record an album, so you can sign up for the mailing list to find out about that if you like what you hear. Highly recommended.

Update 2006-09-14: Alison has just emailed me to say that’s she going into the studio next week to record some more material for her album. I can’t wait to hear it…

IBM and Open-source

One of the things I’ve felt IBM’s been strong at in recent years is the way we embrace open-source as a development model, and as a model for providing software to our customers. Eclipse, which has a lot of support from IBM, is a well-known example, but there are plenty of others. I honestly believe that the provision of open-source software gives us a competitive edge over IT organisations of comparable size. Sure, we don’t do it for all our products, but for toolchains like Eclipse it has delivered real benefits - the number of plugins developed for it is testament to that.

Greg at IBM Eye has provided a brief recap of the many software domains in which IBM supports open-source. I think Greg’s analysis is too narrow - there are other benefits to open-source software apart from savings on purchase cost - some of them bogus and some not - but quality and maintainability are certainly side-effects of open-source software, and are worth having even if they’re hard to quantify.

Cheeky Sainsbury's

I’ve written before about how useless the downtown Sainsbury’s in Winchester is. I’ve noticed, however, they have recently put up a cunning sign, which, paraphrased, reads:

‘We are currently experiencing a shortage of organic milk. [And indeed they were, the shelf was empty]. However, Sainsbury’s XYZ milk is available, and 5p from each pint goes to farmers to help them convert over to organic production.’

Sainsbury’s, here’s a hint: I’m not interested in voluntarily subsidising farmers’ investment in their own production and helping you and them to solve logistical and production problems. Yes, I’m happy to buy organic milk at a price premium, and, yes, I’m aware that most of the difference goes to Sainsbury’s, not the farmers. But asking me to voluntarily pay extra to you and the farmers for no tangible benefit is taking things a bit too far - I’m going to fall on the tight-fisted side of your price targeting.

Chapter 2 of The Undercover Economist contains a good discussion of price targeting, including the usual suspects such as M&S; and Fairtrade coffee.

Reuse and SOA

Joe McKendrick discusses SOA and reuse in a recent blog entry, essentially drawing on some comments from David Chappell that reuse didn’t do as well as predicted in the era of object-orientation, and that SOA isn’t faring well in this department either. Dave Linthicum, in his latest podcast, also discusses this topic.

I’m not sure I can comment that widely on the state of current SOA projects, and I would agree that SOA may suffer from similar management problems to that of object-orientation: if developers of SOA systems aren’t rewarded for saving time with a reuse strategy, they won’t be enthused to do so. This is an important part of any software project, and encouraging reuse is a best practice that shouldn’t be restricted to object-orientation or SOA.

However, whilst I agree that SOA has other benefits apart from encouraging reuse, I have a fairly high opinion of its potential in that respect. It’s important to understand what we mean by reuse. Reuse rarely means using an object or service as it is. There is often a mismatch between the interface offered by the service (object) being consumed, and the service (object) that needs to call this interface. Expecting anything else is unrealistic (even if future reuse plans are made). This is often solved using something like a façade pattern in object-oriented languages, and some form of mediation with services (such as that offered by WebSphere ESB). The latter is often easier, because there is a lower degree of coupling than inside a single programming language, and because programming code is not often needed, and this is why I believe SOA reuse is simpler - if done well. Of course, some work is still required, but this greater ease of reuse makes it a realistic strategy for more scenarios.

I would agree, however, that, as is often the case, the project management problems here are the greatest ones.

Google Test Automation Conference

I spent last Thursday and Friday in London at the Google offices in Victoria for the first Google Test Automation Conference. The presentation topics ranged widely, considering the relatively narrow scope of the conference, but most were well developed and interesting, even if some retrod familiar topics. Some of the highlights included:

  • Steve Loughran and Julio Guijarro, HP Labs. This presentation was about Smartfrog, a system deployment framework, which Steve and Julio were working on as part of a strategy for system testing. They demonstrated several examples of how the system might work in practice. Smartfrog looks pretty flexible, and I plan to spend some time looking into it. Frameworks for deployment have an inherent problem in catering to the wide variety of platforms, configuration mechanisms, deployment combinations and so on that are necessary in practice. Anything that gets closer to this is therefore welcome. Smartfrog also has the interesting property that the XHTML it produces as output is sufficiently well-formed that, although it has an embedded CSS stylesheet for presentation in a web browser, it can also be parsed as XML data without much effort, and thus act as a machine-readable data source as well. This might seem obvious to some folks, and I’m willing to bet it’s not the first time it’s been done, but it seemed novel to me.

  • Robert Chatley (a fellow alumnus from Imperial College) and Tom White, Kizoom. Tom and Robert were talking about what they called literate functional testing. Essentially this involves creating tests, in this case written in Java, that use plain English for method names, variables, and so on. This means that once punctuation is stripped out, Java code - test assertions - become statements that are readily understandable by non-programmers (such as the business analysts in their organisation). Their framework will shortly be available on Google Code.

  • Andreas Leitner, ETH Zurich: Andreas discussed automated testing using contracts. Essentially this means using a language which has pre-conditions and post-conditions on methods, and optionally assertions on objects. He has developed a testing framework called AutoTest, using the Eiffel language, which has these features built in (similar extensions are available for more mainstream languages such as Java). Once these restrictions are placed on a program, generated input can be used to determine whether methods behave as they should. A number of strategies are available for generating this data, and they are pluggable into Andreas’s framework. The simplest is of course to generate the data randomly, but other, more sophisticated strategies are available to improve coverage. Andreas stressed that this type of testing, which is essentially fuzz testing with intelligence, should be used to complement human-created unit tests, not to replace them.

  • Goranka Bjedov, Google: Goranka explained some of the background to performance testing, including the differences between performance testing, stress testing, load testing, scalability testing, etc., and how to deploy and manage performance testing systems.

  • The conference finished with 10 lightning talks. Subjects covered included jMock (a mock objects framework that complements JUnit), justifying automated tesing in financial terms, testing heresies, Yandex (the largest search engine in Russia, their share ~60%, Google’s ~6%), ‘Automated Testing: Why bother?’, automated tricks for manual testing, and the Perl-inspired Test Anything Protocol. I hadn’t seen lightning talks before, and I thought they were a fantastic idea - similar in some ways to the Straight 8 showings I wrote about a while ago - if you don’t like what you’re seeing, something else is coming along soon. More presentations should be like this.

My thanks to the guys at Google for hosting this conference, particularly for free. The original call for attendees was on their research blog. Some of the conference topics were quite academic and in-depth, but that provided a good constrast to the more practical topics. Google’s offices and facilities are also impressive - definitely worth visiting if you get the chance.

Google LTAC

subscribe via RSS