Personal released

I’ve been fairly quiet over the last couple of months as I’ve been working on a few items, working on a new site and working on getting two new Open Source projects final and out the door.

I’ve renamed Spigot to DataValve, and moved it to the new site which will also host my other project called Knappsack which is a set of Maven archetypes for Java EE 6.

The new site will be home to most of my tutorials, articles and other writings, as well as possibly some screencasts and even podcasts. It will in essence be a pure java development site. This blog will go a bit quieter and contain less development stuff, although most opinion will get put out here instead of over there. I’ll also be copying some of my tutorials over there from this blog.

I’m aiming to create a fairly cohesive tutorial site, aided in part by the Maven Archetypes which will give me a firm base onto which I can build tutorials without having to start from scratch, but one archetype is a sandbox Java EE 6 app with project configuration, a demo model and some test data. The sandbox app will let developers create a new skeleton java EE 6 application they can play with. Building on that, there is a sandbox-demo application which as an archetype that creates a full working demo CRUD application using Java EE 6 so developers can see how all the different pieces of Java EE 6 go together. It includes features such as conversations, JPA CRUD, page parameters, CDI injection and events.

Again, I have to say it, but Open Source is Hard. In the past couple of months, I have been working on a whole new site, getting 2 projects ready to roll with documentation and site content to boot as well as working a job, and having some kind of life.

Now it’s out, I can start to focus a little more on getting some more Java EE 6 tutorials and articles out.

R.I.P. Ronnie James Dio

Ronnie James Dio

Ronnie James Dio died at 7:45am this morning after a 6 month battle with stomach cancer. Ronnie had performed in a number of bands, most notably with Black Sabbath taking over from Ozzy Osbourne and with his own band Dio. He embraced the mythological themes of metal with dragons, castles, swords, magic and damsels featuring heavily in the lyrics, videos, and stage shows. Back in the day there was a myth he had an English castle transported over to the US.
Not only was he the driving force behind a number of great albums and bands, but he was also a genuinely nice guy, heavily involved in the Children of the Night charity for teenage runaways. Recently appearing on The Metal Show, in the last 2 minutes of this clip Ronnie explained why he treats fans so well, after seeing the disregard Ritchie Blackmore had for fans.

After 20 years, this guy is still one of my favorite metal icons that embodies a large piece of what Heavy Metal means to me.

We’re a ship without a storm
The cold without the warm
Light inside the darkness that it needs, yeah

We’re a laugh without a tear
The hope without the fear
We are coming – home

– Last In Line

Spigot 0.9.CR1 released

Note : Spigot has been renamed to DataValve and is hosted over on

It’s been a while since I’ve posted anything new as I’ve been busy with a new Open Source software project called Spigot. It’s a java library that sits between your application code and your data sources (Hibernate, JPA, JDBC or any arbitrary source of data) and helps with things like pagination and sorting using a common interface so you can switch out data providers and use alternatives.

For query language data providers, Spigot also facilitates excluding restrictions from WHERE clauses when parameters are resolved to null. Parameters are handled using parameter resolvers so there is more than one way to parameterize the query including EL expressions, reflection or a value map on the data provider.

Spigot also provides a few other add-ins like converting any dataset into an in-memory dataset that can itself be paginated and sorted and shared across an application (such as commonly used data in a web application). The IndexedDataProviderCache can give you random access into a dataset with caching and look ahead loading. This lets you hook a dataset with thousands of rows up to a Swing JTable with an instant response and a very small memory footprint since it doesn’t need to load all the objects at once as the provider will load the records as needed and cache the results. This is demonstrated in the Swing Demo in the download. There are also demos for Wicket and CDI with JSF.

You can ready about why I created Spigot in the documentation

Spigot is currently hosted on Project Kenai, where you can download the release, view documentation online or read about 10 ways Spigot helps developers.

(One of the) Best Burgers Ever

Believe it or not, but I find Applebees burgers to be the best burgers I have ever tasted! This may be heresy coming from a self confessed foodie, but hear me out. Usually, I find burgers from chains fairly throw away affairs, you get it, eat it, it’s hot, it probably has some nice toppings, and you’re done. However, I don’t know whether it is the new line of “Real Burgers” they started doing months ago or if they just started making them better, but their recent burgers, particularly the A1 Steakhouse burger is just fantastic.

It comes on a lightly toasted bun, on which they put a drop of tangy A1 sauce and a creamy mayonnaise type dressing and plenty of fried onion straws. Now, if they’ve done it properly the burger should have some pink to it but still be warm throughout and that is when you get a good juiciness to the burger. They’ve been a little bit inconsistent recently and not asked how I want the burger and sometimes I get it well done and other times I get it nice and pink-ish. Since they can’t decide on a default, just tell them you want it pink and warm throughout (medium as opposed to medium well).

When this thing arrives, you start by biting into the soft bun and then you plough through the onion straws which have a mildly crunchy fried texture and a slight sweetness from the onions. You then hit the soft mild (swiss?) cheese and the burger which is a patty of tender juicy beefiness with just the right crumbly texture to the burger and a juiciness that drips. In there somewhere is the tangyness of A1 which punctuates the other flavors now and again. These things are awesome and they are on the 2 for $20 menu (2 meals plus an appetizer for $20). I think they are grinding their meat fresh, and gently forming the patty so the meat doesn’t form into a tight beef puck which just gets tough.

Next time I plan on broadening my horizons and trying one of their other burgers (cowboy or cheese burger) to see if it is as good. The A1 burger doesn’t have bacon on it which normally should be an instant penalization, but regardless this burger is still so tasty. I used to have the cowboy burger (well done) but the toppings (onion rings, bacon and BBQ sauce) were tastier than the burger. I plan on trying it with the new improved burgers since perfect burger plus fantastic toppings could lead to an epic event!

(Update – 8th Feb 2010 – After taking my brother and Sister in law there, we found that a) They are thoroughly inconsistent, with the better burgers being the exception not the rule. b) Their service was crappy as they delivered appetizers, salad and the burgers in the space of 2 minutes after letting us wait for 10 minutes (Their problem, we planned on having a long meal and working our way through the cocktail menu). Also, they just got usurped by Michael Symon).

Christmas Hiatus Over

Well, 2009 is done with and we are plunging headlong into 2010. Being European, I like to take a good week off around Christmas and New Year and with relatives here for Christmas I haven’t spent much time on work or blogging. So for those that have sent emails, apologies for the delay and I’ll get back to you this week/weekend. I have a few posts lined up including part 3 of the CDI articles covering Events, I’ll probably do one introducing conversations and then I’ll start writing on creating some real world apps with JSF and CDI. If anyone has anything they’d like to see in these articles, let me know.

Also, I have a couple of food posts almost completed as Christmas was full of good food and recipes that inspired me to blog about it (Must have been watching Julie & Julia in the New Year that did it).

Happy New Year all!

Hosting Changes

I’ve recently changed hosting providers which so far has been a royal pain in the backside. My old provider EasyCGI were fine when I started a year ago. Last fall, they underwent some changes in their platform and since then, their service has been patchy. I’m not alone this opinion as plenty of their users are miffed over the lack of quality since their platform shift.

From experience, their customer service is also pretty bad. After their switch, I ended up with another of their customers databases in my account. I could actually go into phpAdmin in my control panel, change the content of their database, go to their web site and see the change live. Obviously, I didn’t do anything harmful, I was just testing their screw up and the site was old, and there hadn’t been a post on the forum for years.

More to the point, my database was missing and had somehow not found its way into my account. I messaged their tech support and they claimed that I hadn’t set my security password hint and I was probably hacked. Of course, obviously someone hacked into my account, removed my database and put their database in it’s place for me to fiddle with, all on the same weekend that my hosting moved everything around </sarcasm>. I had half a mind to call their bluff and ask them if I should email the feds about the matter but decided not to. I then wondered if someone less clued in than myself had found themselves in possession of my database and been told the same thing by EasyCgi and decided to take the issue up with the feds. I awaited the no-knock raid at any moment charged with forcing my nerdy ill-thought-out opinions onto the owner of

Anyway, of the couple of times I had to deal with them, they were a bit pointless, and my site performance has been deteriorating since September last year and getting worse. So, since my contract was up next month, I decided to go shop around which is when my problems really started which I’ll discuss in part 2.

Open Source is Hard

I’ve been working on getting my procedural texture library completed and released to the public which should be ready next week. I’m currently going through the difficulties that always go with getting that last bit of polish on a project to get it ready for public consumption. In particular, I’ve just switched over to maven as a build process and moved it into Project Kenai.
Read More »

Hello World

To paraphrase Christopher Hitchens, the truth usually falls between two opposing views and the only way to influence the determination of that point is by getting involved, having your say, refuting a few arguments and maybe changing a few opinions. Now I’ve finally found the time to create my blog, maybe I can do just that. Here’s hoping it doesn’t become just one of many derelict first post blogs with a handful of temporally divided posts.

It is somewhat poignant that today is the date of my first post given my history. I started writing software professionally 13 years ago, in the summer of 1995, at a company that wrote tax software. My boss came in, threw me a brand spanking new, hot off the presses, only just released copy of Borland Delphi version 1, and told me to learn it. It was Windows 3.1 and had its problems, but it was awesome and I soon become a Delphi guru.

That event has forged my life for the past 13 years that I have spent working as a Delphi developer. It’s been a rough road, in the late 1990’s I worked as a consultant waiting on a daily basis for the Delphi jobs to trickle through my email box. Most gigs have been unattractive maintenance jobs usually providing support until the client can write it in something else. I’ve been through the Inprise name change, I?ve been through the lawsuits and employee stealing between Microsoft and Borland, and I?ve been through the Corel fiasco, the Kylix fiasco, the CodeGear fiasco, and felt every other trip and fall that Borland, and especially Delphi had in the last 13 years. I paid good money out of my own pocket for Borland Delphi 2006, and it was a stinker. I’ve been in the same job for the last 8 years, since July 2000, working on a few Delphi projects, and it’s time for a change.

I aim to blog about a number of these changes, the artifacts and events that have precipitated it and the path I’m heading in, but for now, let’s just say that it’s time to push in new directions. This blog is really a symbol of that change, because I intend for much of this blog to focus on my new directions, and on this same day Code Gear has been sold to Embarcadero for $23 million. Now I wish them all the best, but Delphi has been the unloved stepchild of Borland for a number of years and I don?t see any small amount of investment fixing that even if they chose to make the effort to. In a day and age where IDE?s are free and platforms are competing more than ever, I don?t see a small shareholder of that market staying in the race for long.

It seems fitting and ironic that on the day I embark on new ventures, news comes out that will probably ultimately end up with Delphi being put out to pasture.

For me, Delphi is another Betamax, a far superior technology that just couldn?t get a good enough footing to reach critical mass. It spoilt me as a developer, no other platform or tool had the richness, or allowed for such development speed with strong third party and community support. It wasn’t all pretty, and some of it’ll write about, but pound for pound, Delphi was the tool, the language and the framework to which all others aspired.

I’ve been looking for new directions to take, and coming from Delphi, it is difficult for me to find tools and a language that stands up to the standards I’m used to. However, I have found a rather solid contender in the form of JBoss Seam which comes with an IDE that, rather than be a mish-mash of mis-functioning plugins, is actually geared towards developing Seam applications. Seam also provides much of the richness of developing a thick client application, and getting a project started isn’t a project in itself. For now, Seam appears to be put the RAD into web development.

There is always .net development, which coming from a Delphi background should feel like home. I’m currently working with Java at the moment, but I am sure I’ll be getting back into Microsoft territory.

So here’s to new ventures and old friends.