Getting to know the Raspberry Pi

While I appreciate the elegance of good hardware design, I’m a software guy at heart, a programmer. Programming is a way of thinking that combines tinkering with a problem and exploring its constraints to arrive at a solution that meets those constraints as best you can.

Nevertheless, I’ve just ordered the device from Farnell, showing 54 days for delivery.

So meanwhile, software. Programs. Algorithms even. I installed installed the Rapsberry PI emulator from here and have a working image. It’s a nice, minimal Linux but it it is clear that there would be a lot to do before it could be considered a suitable working environment for kids like the Xadros Linux on the Asus eeePc I bought a few years ago.

“The New Latin”

Back to Michael Gove for a bit:

While many teachers detest him, he’s getting a sympathetic press from the IT sector. Joshua Lachkovic says Michael Gove knows computers are critical.

I think the New Latin idea has misfired, and misses the key point: If you can’t program, then you’re forced to rely on those that can.

And finally, thanks, Verity!

Hello world – time for a revolution!

Is there really a revolution in ICT for schools in the offing? Maybe, maybe not. Lets look at some of the evidence.

Given that the new online world is being transformed by creative technology companies like Facebook, Twitter, Google and video games companies, it seems incredible that there is an absence of computer programming in schools.

– Ian Livingstone OBE, Life President of Eidos and one of the UK’s founding fathers of interactive entertainment.

In July 2010, Minister for Culture, Communications and the Creative Industries Ed Vaizey asked Ian Livingstone and Alex Hope (Managing Director and Co-founder of Double Negative Ltd, the UK’s largest film-only VFX company) to review the skills needs of the UK’s video games and visual effects industries and to make practical recommendations for how these needs can be met. They published their report in February 2011.

More recently the media scrum round the launch of the minimal computer called the Raspberry Pi seems to add to the feeling that the there might be a change in the way ICT is taught in our schools.

The launch of this single-board computer has the potential to trigger a renaissance in home programming by children. With a price-point of just £22, it is an affordable way to give the coding bug to a generation that are typically seen as hard to prise from their gadgets, but who often have little or no knowledge of what makes those gadgets tick

Even the government has noticed. In Februray 2012, Michael Gove (love him or loathe him). said

“Imagine the dramatic change which could be possible in just a few years, once we remove the roadblock of the existing ICT curriculum. Instead of children bored out of their minds being taught how to use Word and Excel by bored teachers, we could have 11-year-olds able to write simple 2D computer animations using an MIT tool called Scratch.”

Third times a charm, they say. I say it’s time for a change – less Powerpoint, more programming.


This blog has moved to

Books for sale

I’m selling a couple of big boxes of technical books over the coming months. If you’re looking to pick up some well kept books on object-oriented programming, design or project management, please have a look. storefront for Hyperoceanic

Is Groove skipping your files during synchronization?

Groove support forums user AdamK might have found the reason why Groove sometimes stops synchronizing files in shared folders  – a hidden “Temporary” setting for files on your hard drive. When Groove sees this setting, it decides to skip the file, but the error message displayed does not make it clear why the file is being skipped.

Right now, Adam doesn’t know what causes the files to be marked Temporary, but he’s found a commercial utility that will reset his files, and more. Snag is, it costs $24.99, which you might not want to pay- especially if you’re planning on migrating away from Groove anyhow.

Licensed Bambuco users can email me for a script that will turn off this setting for you automatically, free of charge.

Bambuco available (again) to qualified customers

I’ve spent some recently on rebuilding Bambuco, the scripting engine for Groove that allows organisations to easily move information into and out of Groove.

If you are evaluating your investment in Groove and are looking for options for migrating your data out of Groove, we are probably the strongest-placed organisation for you to talk to. We could, for example help you

  • move your documents out of a Groove files tool into a SharePoint Document Library, or into a corporate document repository, or even just a network share
  • Copy your data from Groove Forms into a database or SharePoint List,
  • Extract your list of Contacts and import them into Outlook.

More details here:

Project Brimham Update – installing the dev system

After a brief family break, I’m back on with Brimham. The first task is to configure a new virtual machine for development – I like a separate Virtual PC install for every project so I can guarantee no version conflicts between third party stuff.


Windows 2003 Enterprise
SQL Server 2008 with all the options
MVC Contrib Release and Extras
Castle Project 1.0 RC3

Still Needed:


Unmet Promises and Unwanted Complexity

I’ve been mulling over the my use of use of a third-party libraries, both long term and on my last project. On the former, a core library I use has made a disastrous UI decision that needs fixing before I can release the next version of Toucan Reporter. On the latter, the client had pre-selected a well known, mature and comprehensive looking component library that they wanted to use for both web and Winforms applications. The demo applications make it look easy to develop fantastic looking line of business applications.And its this library I want to talk about today.

It sucks.  Here’s why:

1: Unmet promises. In several areas of the product, there are features that just plain don’t work in the real world. In particular, there’s a designer for quickly laying out Winforms pages. In this designer is the ability to add tabs. If you are going to  use this feature, the chances are that you’re going to use it to build a form with a good number of controls on it. Problem is, that as the number of controls increases, performance goes down rapidly. If you have more than a couple of dozen fields, then you’re looking at a wait of tens of seconds as you move controls around. Part of the problem is the management of undo/redo operations. Rather than use the one built into Visual Studio, they’ve created their own, and the performance is terrible. You can turn off undo/redo, which improves things a bit, but its a hack.  At some point you’ll be even more committed to this approach and you’ll be having the same performance problems. At run time, performance is great, by the way.

2: Unwanted Complexity. Controls are objects. Objects have properties, and in the .net world, there’s a bunch of standard controls with consistent properties, provided as the .net framework.  The implementers of this particular library, however, used different names or different properties or different enumerations throughout their library. A stand out feature was the use of a property called ‘Properties’ that happened to have most of the useful properties for the control in it. Almost every time you needed to set something in the designer, you have to go through an unwanted step of opening up this Properties property to see the property you wanted.

3: Locked in or Locked out? The implication of having an unnecessarily complex component library is that the hapless line of business developer using the package (me) is simultaneously locked in and locked out: Locked in to the bad decision  to use this library, and simultaneously locked out of the chance to make meaningful changes to the libraries behaviour. Its impossible to re-do the UI of the application to exclude the complex UI library, and at the same time its almost impossible (given the deadline for the project) to fix the library in places where the behaviour on offer differs from what is required. You’re further locked out of using other component libraries as they won’t share the same styles, making your app look a mess.

Summary: Component libraries offering increased productivity for line of business applications should never deviate from the norms for that environment. Software should be written such that any developer who knows the base technology should be able become effective with the library as soon as possible.

Resisting Temptation

The problem domain for my next pet project is not tiny, but it is fairly small – I could probably fit an object model / database design diagram on a single sheet of A4 without cramming it. However, there’s scope for lots of additional features, or expanding it in new, different directions.