Moving to Blogger

July 9th, 2008  |  Published in Blogs

I’m not sure it’s worth running a blog engine myself, any more.  With something like Blogger, free of charge and hosted by Google, it’s hard to see why I should keep up with WP maintenance and have to think about upgrades, backups, MySQL and so on.

I’ve had my own blogger account for a while, but done relatively little with it until this week.  I haven’t ever been what you’d call a prolific blogger, but if I’m going to increase the amount / frequency of writing, blogger is almost certainly more convenient.

So, please see my Blogger page from now on.  This blog/feed will almost certainly disappear in the coming months.

PSL not DSL

April 22nd, 2008  |  Published in Domain Driven Design, Ruby, Software

I’ve long felt that the DSL moniker is a little inappropriate for some (perhaps most) applications of the ideas behind it. The majority of ‘DSLs’ are really just little languages which help solve specific problems in the software development space, e.g. Rake, which provides a very nice language for expressing graphs of dependent tasks.  Martin Fowler has written quite a lot on the subject of DSLs - this paper is a good example of a little language being described as a DSL.

So it was good to hear Jim Weirich (the creator of Rake) make this very point while talking about the DSL hype in this InfoQ interview. The relevant bit is something like 14 minutes in. I like the term Problem Specific Language (PSL), which Jim invents here.

I’m working on applying Ruby to modelling (and reasoning about) a real domain, and driving a tool-chain for forward-engineering artifacts from the Ruby description. Apart from Rake, I’m also looking at RSpec, which uses Ruby syntax to capture descriptions of system behaviour. I’m very keen to work on the ‘real DSL’ problem, looking for the sweet-spot where domain-driven design and programming overlap. This whole area seems very fruitful for Ruby, because the language allows us to create very rich and expressive scripts which not only read quite naturally, but can also control complex processes.

Wubi and Xubuntu

April 17th, 2008  |  Published in Linux, Software

After the last foray into the world of Linux I swore I wouldn’t bother for another year or so.  Somehow I came across a link to Wubi and decided it sounded too interesting to ignore.

Live CDs are not really practical for doing anything much more than a cursory look and installing to a partition is too much work. Wubi is a very clever ‘third way’, installing a distro as if it is a Windows application, yet actually allowing the OS to start from the Windows boot screen, at full speed.  Clever stuff.  It uses a virtual disk (like VMware), which the Wubi creators admit will make file I/O slightly slower.

Wubi is set up to work with Ubuntu Linux, which most people will experience via Gnome and the rather, er, brown theme.  Ubuntu is also available with KDE but there’s a third alternative, Xubuntu, which uses the xfce window manager. I like this even more because it’s lighter/faster than either of the others, and offers just enough functionality, without getting in my way.  I simply don’t need (or want) a lot of silly 3D desktop effects, nor a hundred different ways of playing media files.

I simply ran the installer and selected Xubuntu.  Some time later, it was ready.  Reboot, select Xubuntu, and there it was.  Amazing!  Even more amazing was the fact that Xubuntu located all the laptop hardware including the sound and WLAN chipsets.  As soon as I selected the network applet, it offered to connect me to my home WLAN.  I was running and connected to the internet in minutes.  No other installer/distro combination has got even close to being this good.  Xubuntu is excellent - I have had no difficulty in installing the extras I need (Java JDK, OpenOffice and Netbeans, for example) via Synaptic.

There is a way to convert the Wubi install to something more permanent using LVPM.  I will probably do this, but only when I’ve sorted out the partitioning of the drive - a chore I’m not looking forward to.

Tomorrow’s code

April 3rd, 2008  |  Published in Software

I’ve just finished reading this piece by Bill Thompson, on the BBC Technology site. After a potted history (taking in the dear-old BBC Micro, of course) he makes a good point about the way we no longer seem to be encouraging school students to learn to program: greater importance is attached to teaching them to use office suites and accessing the internet than to enquiring into how all this software got written, or why it isn’t more reliable.

This is just one symptom of a larger problem facing science and engineering generally. Physics is under threat, engineering (so we hear) is less popular than ever, and it often feels as if greater value is placed on producing ‘entrepreneurs’ and managers than engineers. I think we’re running the risk of forever losing our position as world-leading engineers and innovators; perhaps that position is already lost?

I want to see people excited and enthused by the truly great scientific challenges facing us. Our future national prosperity depends on us being smarter than the competition: we cannot grow bigger, we cannot be much more populous, we cannot rely on mineral or oil wealth, and surely we are beginning to appreciate just how precarious our position can become when we depend too much upon financial markets whose behaviours are globally linked, not wholly predictable and not under our control.

We seem to spend a lot of time looking back wistfully at past triumphs (like the invention of Radar, cracking Enigma and the birth of computation, discovering DNA), rather than looking forward and preparing to celebrate the next ones. Are we talking ourselves out of a great future, collectively mentally preparing ourselves to accept that our greatest achievements lie behind us? Do we really want to turn our country into a kind of museum whose dusty artifacts catalogue a brilliant past?

Hate Vista, love C#

March 7th, 2008  |  Published in C#, Linux, Microsoft

Came across this blog post, while following-up on a semantic-web related Google Code project:

Why I hate Windows Vista (and can’t wait to re-install XP) « The Wandering Glitch 2

I have often wondered: how can the company which brought us C#, the .NET Framework and the CLR possibly be the same company which excreted Vista?

The guy behind the above referenced post is clearly a fan of C# (as I am), but despises Vista (as I do, along with those who made all the colourful comments on his post). I have left Vista on my new laptop, but in a much reduced partition, and have given over the lion’s share of the drive to my copy of XP Professional, which I still think is pretty damn good.

What about the competition? On the desktop, there isn’t much that’s credible. (I’m not considering MacOS because to get that you have to buy the hardware). So I spent (or should that read wasted?) a few hours with some of the latest crop of Linux distros last weekend: Fedora 8, openSUSE 10.3, the latest Mandriva, PCLinuxOS 2007 and probably another one but I can’t be bothered to recall which. None of them impressed me in the least. Only ONE of them (PCLinuxOS) correctly detected all of the important devices on this laptop, including the wireless chipset. Plus they all looked terrible when compared to Windows XP, especially in terms of font rendering, so they couldn’t even seduce me with glamorous graphics.

What really drives me mad is that none of these distros really stands out: they all look virtually the same (Gnome or KDE, plus or minus a colour-scheme and some desktop wallpaper), they all contain more or less the same rag-tag collection of packages, but (and here’s the kicker) they’re all different in irritatingly detailed respects, some of which are downright inconvenient such as package management or filesystem layout! Every year is heralded as ‘the year of Linux on the desktop’, and every year I dutifully have another look, then gratefully boot back into Windows XP and get on with business.

I wonder what’s next for Windows? With Microsoft so chock full of truly bright and talented folk, I’m really hoping that we can look forward to the Windows that Vista should have been. And when they do finally release that, why not give away XP? Or, to avoid the inevitable complaints about anti-competitive pricing, make it 50 bucks? Then nobody except the bigots or fundamentalists will need to waste time with Linux. Go on Microsoft, do us all a favour.

Solaris Developer Express 01/08

February 28th, 2008  |  Published in Software, Solaris

The latest release DVD dropped through the letterbox last week, and I eventually found time to try it out, hoping very much that it would fix the issues I mentioned in the previous post.

What a disappointment. First, although there is an option to upgrade the existing installation I decided not to take the small risk that this might not replace all drivers etc., so I went for a fresh install over the top of the old one. This went OK, right up to the point where I removed the DVD and rebooted…

After the initial startup, Solaris starts building a database of some sort. I think this is a one-off operation which it performs the first time a new installation is booted. I recalled seeing it before, so left it to run while I went to get a mug of tea. When I cam back, I found a dead laptop - no login prompt, no power light, nothing. It was then that I realised that I’d been running on battery power during the install and I hadn’t flipped the power-supply wall switch to ‘on’.

So what? Power switch to on, and start the laptop: it’ll be fine. Wrong. The OS wouldn’t boot. I can’t recall all the rubbish that scrolled past, but I’m pretty sure that the power finally ran out while this configuration database (whatever it is) was building, and without it you’re stuffed. I wasn’t impressed.

But I was determined enough to start at the beginning (again), this time with AC power on! And of course this time it installed perfectly. However, after logging-in I was disappointed to discover that none of the networking devices were recognized, nor was the sound and I presume also the graphics chipset (as before). This time I didn’t even see the nwam dialog, so I have no idea how to make Solaris usable on this laptop.

I’m afraid that’s it, for me. I won’t be wasting any more time on Solaris, until I’m sure it will at least connect to the network. Windows XP is still my favourite day-to-day desktop OS, because it just works. I’m so glad I didn’t remove it.

But what a pity: I had high hopes that Solaris might offer what no Linux distro (so far) has been able to: a good, professional alternative to Windows, created and supported by a trusted company like Sun.

Solaris Developer Express on Acer Laptop

February 19th, 2008  |  Published in Software, Solaris

I’ve been keen to try Sun’s Solaris Developer Express (SXDE) for a while now. They’ll ship you the DVD free-of-charge, so there’s no reason not to give it a spin.  I’m waiting to get 1/08 (this year’s first drop), so I installed 9/07.  You can read a short review of the 9/07 release here.

I made a partition for it on my Acer TravelMate 5720 (using Acronis Disk Director, which I can recommend), rebooted with the DVD in the drive, and followed my nose.  It was very straightforward, and once into the main part of the install process I was able to leave it chuntering away while I got on with other things.

Eventually, a reboot (without the DVD in the drive of course) and the first pleasant surprise was that the Grub bootloader had correctly detected the other two OS on this machine (Vista and XP), and I was able to boot into all three without a problem.  Full marks for that (and a sigh of relief).  However, once into SXDE I discovered a few annoying issues: hardware support (predictably enough) plus strange behaviour from the wireless network software.  Below is what I found, plus some pointers which I hope may help others in the same situation.

By default, SXDE uses something called Network AutoMagic (nwam) which supposedly detects wireless networks and gives you the opportunity to connect to them.  Well, it certainly detected my wireless network, but stubbornly refused to connect me to it.  It prompted (correctly) for the wireless network ID (not broadcast) and the WPA password, appeared to accept both, but didn’t connect or give me an error message.  Every few minutes, the nwam dialog popped up again, but repeated attempts made no difference.  The documentation for nwam is quite poor and not helped by the fact that some URLs in Sun’s online documentation seem to point to the wrong place.  The OpenSolaris project pages were probably the most helpful.  I tried stopping/starting the service and playing with the parameters, but this issue remains unresolved, and is very annoying.

Worse still, the NetLink BCM5787M Gigabit Ethernet PCI Express device (i.e. fixed-wire ethernet) also didn’t appear to work, which meant no connectivity whatsoever!  Not a great position to be in.  But, there is hope - keep reading.

The other hardware issues were less irritating: the Texas Instruments 5-in-1 multimedia card reader has no Solaris driver (I don’t really care), the audio controller (Intel 82801H) chipset is supposed to have a bundled driver but it doesn’t work, and the Intel Mobile GM965/GL960 Integrated Graphics Controller is also supposed to have a bundled driver but isn’t reported. 

For anyone else doing this, I strongly suggest running Sun’s excellent Device Detection Tool, a free (web-start) download which will give you a detailed report of what hardware you have, and whether there is a Solaris / SXDE driver for it.  This gave me hints on where to look for the missing drivers, and told me exactly what hardware I actually have in this laptop - very useful.

This tool pointed me directly to the page on the Broadcom site where I can download the Ethernet drivers for my hardware.  Pretty good, but when you get there, you discover the following message: “Note: Broadcom does not offer UnixWare, SCO and Solaris drivers
for NetLink Ethernet controllers.”  Not good.  But it may be I can use the Linux driver.  When I get time, I will return to this and post my experiences here.

Lastly, a note on aesthetics.  Solaris uses Gnome by default, which is OK rather than outstanding in any way.  But colours and fit/finish on the desktop are very good indeed: in my opinion, Solaris looks great in every way, except for font rendering.  There is a font-smoothing facility (in preferences) but this just doesn’t approach the quality of Microsoft’s ClearType implementation in Windows.  For me, font rendering is a big deal - I hate to look at ugly fonts or blurry, smeary characters.  I suppose this may be because Solaris is using a down-level video driver, because it doesn’t support the Intel Mobile chipset on this laptop.  Get the font rendering right, and I’d be happy to sit in front of Solaris all day.

As soon as I have a network connection, I’ll continue evaluating Solaris and post my findings here.

Java Futures - and Software Processeses (sic)

February 17th, 2008  |  Published in Java, Java Technology, Software

If you’re looking for a good summary of what’s coming up in Java FX, the Java SE Update (the ‘consumer JRE’) or JDK 7, then this talk given by Chet Haase is a must-see.  It’s quite long, but it’s worth taking the extra time because this is good, solid content.  And it’s so good to get all this material presented by a first-class technical presenter rather than having to sit through shallow Powerpoint ‘fluff’ from marketing.

After watching this I located Chet’s blog, and found his hugely entertaining send-up of our industry preoccupation with methodology.  I think we have a new candidate taxonomy of the software process landscape!  Conference Driven Development reminded me of some Microsoft technologies I recall hearing about - people were building plans on top of some of this stuff before we’d even left the PDC…

I don’t have time to play with Update N or to try Java FX Script just now.  FX Script interests me mainly because of the nice binding environment it promises, but JRuby will probably get my attention before FX mainly because I can put it to use on real problems more quickly.

Oracle 10g XE, SQL Developer and Java

February 9th, 2008  |  Published in Java, Software

I’ve been forced to install and use Oracle 10g XE recently.  The experience hasn’t been pleasant.  I’m sure the database technology itself is perfectly good, but the tools and support are dreadful, when compared to Microsoft’s SQL Server Express Edition or MySQL.  I’m writing this while still cross, so it’s not going to be very nice about Oracle or Java.

I need XE for several reasons, one of which is that I have a dump file containing a complete database which I need to work with.  Oracle XE comes with a (rather lame) web-based admin module which doesn’t even seem to have tools for importing database dump (.dmp) files.  To do this you need the command line imp tool.  This would have been OK if it had worked (it didn’t), but even then I hate having to find the right command-line incantations for things I only occasionally have to do.

Why didn’t imp work?  I’m not sure yet because right now I’m so pissed-off I can’t be bothered to scroll through the screen-fulls of error messages it generated.  (By default it doesn’t even write these to a log file either - you have to tell it to do that.  Duh.)  This is just flat wrong.  If there are version issues, or permission issues or similar, I should get a simple message, early, to tell me this, and the import process should stop right away, not struggle hopelessly on, scrolling pages of crap at me.

The online documentation isn’t very good either.  I admit I haven’t burrowed through every page but I shouldn’t need to do that, just to import a dmp file and manage an additional database.

So, I looked for a management tool (like the tools you get with MySQL, SQL Server and PostgreSQL), and yes, there is one.  The Oracle SQL Developer is a Java application which you can download with or without the JRE.  Well I’ve got Java 1.5 and 1.6 on my machine (both JRE and JDK), so I figured I could take the smaller download.  You get a zip which you unpack somewhere, and run the top-level exe. 

So, I ran the EXE.  And what’s the first thing I see?  This:

So, unlike many other Java applications, this one can’t locate any of the (four) Java installations on my machine.  Poor, but not disastrous I suppose, so I browsed to the Java 1.6 JDK and clicked OK.  I expected the tool to start, but instead I got this:

What?! Perhaps it doesn’t like 1.6 - perhaps I’ll try 1.5.  So I ran the EXE again, expecting to be prompted to browse to java.exe again.  But no!  Instead, I immediately got the second error dialog again!  The act of browsing to some java.exe seems to write a setting somewhere, which is used in subsequent launches, even if it’s wrong.

It’s hard to believe that one of the largest software companies on the planet can offer this kind of low-rent, sub-shareware experience - especially on an entry-level product surely intended to attract new users of Oracle technology.

I’m just not going to waste any more of my time on this.  It’s more than enough to make me uninstall Oracle 10g XE and give up trying to use it.  I’ve used MySQL and Microsoft SQL Server Express happily in the past, so I’ll see if I can import or convert the dmp file and use one or other of those instead.

BPMN - XPDL - BPEL

January 29th, 2008  |  Published in Workflow

After writing the last piece it struck me that I had unintentionally suggested that BPEL and XPDL are somehow competing for the same role, which just isn’t right. This post is an excellent summary of the true position - roughly, XPDL for process description, BPEL for programming.

So what I think I’m most interested in is using a combination of these two, treating the design of a workflow-driven solution as a layered artifact. The XPDL is relatively technology-neutral: the description is an abstraction which can be shared across an enterprise (or even between enterprises) because it doesn’t commit to implementation details.

The XPDL layer would then be used to drive the BPEL layer, where processes and activities which appear as abstractions at the XPDL layer are translated into concrete actions (and transactions) against real systems or service endpoints.

When I get some time (!) I plan to experiment with this combination, to see how practical it is for modelling an existing healthcare workflow I’ve been involved in.