Skip to main content

Posts

Showing posts from 2009

Installing SubVersion with Apache2 on Ubuntu 9.10

First start off by installing Apache: sudo apt-get install apache2 Enter the root password and follow the instructions. Check that is it installed correctly by going to http://localhost and checking that you see the standard Apache "It works!" message. Then install subversion and the subversion Apache module: sudo apt-get install subversion libapache2-svn Then create a directory to store repositories in: sudo mkdir /var/svn/ sudo mkdir /var/svn/repositories and create a test repository: sudo svnadmin create /var/svn/repositories/test So that Apache can read and write the repository its user ( www-data ) needs to be given ownership of it: sudo chown -R www-data:www-data /var/svn/repositories/test To be able to authenticate users who access the repository a password file is needed: sudo htpasswd -c /etc/subversion/passwd paul Enter a password for the user paul . For additional users repeat the command without the -c option to make sure the existing file is appended to rather ...

Installing Eclipse Galileo on Ububtu 9.10

Before installing Galileo on Ubuntu it is worth making sure you have a decent and reasonably recent Java SDK. Open a command prompt and enter: sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk enter the root password and follow the instructions. Once the SDK is installed, check the version: java -version This should give you something along the lines of: java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03) Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode) If you get something that suggests a different SDK is install run the following command to remove it and try again: sudo apt-get autoremove Then download Eclipse from the Eclipse download page: http://www.eclipse.org/downloads/ Once downloaded unarchive it: tar xvfz eclipse-jee-galileo-SR1-linux-gtk.tar.gz and move the eclipse directory into /opt : sudo mv eclipse /opt It is now possible to run Eclipse with the following command: /opt/eclipse/eclipse however, as Eclipse uses the la...

Java Dependency Management with Ivy - Part II

In Part I of Java Dependency Management with Ivy I looked at basic Ivy usage and configuration using Ant and the Ivy Eclipse plugin, IvyDE. I demonstrated how Ivy can be used to download modules (dependencies) from a repository, such as the Maven Repository and cache them locally, negating the need to check them into a source control system. However there are some scenarios where the Maven repository is not suitable: 1.Your development team may not have direct access to the Maven repository or you want to prevent each module from being downloaded more than once. 2.You may want to restrict or specify the modules your development team has access to. 3.You want to use libraries such Microsoft's SQL Server JDBC driver or your own propriety JARs that are not hosted in the Maven repository. Ivy and IvyDE can be easily configured to look at custom repositories. In this article I will discuss a way of setting up a local public repository and a shared repository, and how to reference them ...

House of Suns

House of Suns by Alistair Reynolds ISBN: 978-0575082373 This is much more like it! Reynolds' best work outside of his Revelation Space series. I loved the characters, their interaction and the way he swapped the first person between the two main characters and the young Abigail Gentian. From reading the back of the book, which describes Abigail Gentian splitting herself into multiple clones, two of whom fall in love, I was expecting the two lead characters to both be female. Maybe that would have been a step too far? Reynolds describes this book as stand alone on his website. I'm really rather hoping there will be some more.

Gun at Nottingham Rock City 2009

First up were New Device , a very good young rock band. Good vibe, good sound and tight musicians. Very enjoyable to watch, I won't be buying any if their CDs though. Gun , to my surprise had the ex-little angel Toby Jepson singing for them. A deeper voice than the original singer, but still very good. They opened with don't say it's over, which is one of my favourite songs. About halfway through the show was stopped by Toby as someone was starting a fight. He demanded they were thrown out as there was no place for that behaviour at a Gun gig. Inside, outside of love included a cover of the Police's So Only. All the way through, Gun made it clear that Les Paul guitars were made for Rock bands like this. They finished with Steel Your Fire and Shame on you. And Encored, of course, with a superb Word Up, the place erupted.

Threshold at the Garage 2009

Pythia , a fairly good female fronted metal band, were up first. The matching tshirts were a bit much , as was the shrill, slightly irritating singer. Overall I quite liked them, but not enough to be persuaded to buy their CD from the merchandise stand. Serenity , who were up next, completely blew me away. An absolutely superb prog/power metal band. They were heavy in places along with great ballads and an exceptionally strong signer. They did persuade me to part with money for both of their CDs! Threshold are always superb. Plain and simple. They played lots of old stuff as well as some new stuff. I loved it all. The guitar sound wasn't mixed properly in critical mass, which was a shame, and I had to leave early to get a tube. I only missed Mission Profile, Pilot in the Sky of Dreams and Slipstream, but given that they are three of their best songs, I did miss out.

Stranger in a Strange Land

by Robert A. Heinlein (978-0340938348). This book lacks much real science fiction. At most it's a fantasy book. What it really is is a dig at society and religion and that, unfortunately, stifles a story that actually isn't there. Many science fiction books make these points as well, but that doesn't make this science fiction. If this was a relatively new book I'd say it's all been done before, but given its age, all I can say is that it's all been done again since and better. If I was reading it in the 1950s or when I was a teenage boy, I'm sure I would have loved it. One ray of light in an otherwise dull read was one of the main characters, Jubal. The story is very much told through his, very sensible, view on the world. He understands everything perfectly, has seen it all before and is never fazed by anything. While everyone else is giving into their prejudices and preconceptions he is watching and making sense of it all. The ending was probably the worst...

Item 57 - Use Exceptions only for exceptional conditions

Using exceptions only for exceptional conditions is something we can all agree with. However, this item should have been named "Don't use exceptions for control flow and how to decided between state-testing method and distinguishing return value". Bloch gives an example of how exceptions can be used for ordinary control flow, two alternatives in state-testing method and distinguishing return value and how to choose between them. I was rather hoping for some discussion of what exception conditions are, not just a brief discussion of what they are not.

Java Dependency Management with Ivy Part I – The Basics

Along with the rich enterprise libraries that come as part of the language, one of the biggest advantages of Java is the vast number of third party libraries available. For example if you are writing an enterprise web application, GWT, Spring and Hibernate provide a framework with a huge amount of pre-existing functionality. The size and number of dependencies grows as your application grows. GWT and Spring alone, without their dependencies, are more than 7MB. The ideal place to put dependencies is in a source control repository as part of your project so that when you or your continuous integration server check out the project for the first time all the dependencies are there. Then you don't have to go and get them and store them locally in a location that is agreed by the entire development team. Storing the dependencies for a single project in a source control repository isn't too bad, provided there is plenty of room on the source control server.. However, if you have mo...

Item 55: Optimize Judiciously

Bloch gets this item so right! He includes some famous quotes about optimisation and of course the most well known one: We follow two rules in the matter of optimisation: Rule 1: Don't do it. Rule 2: (or experts only). Don't do it yet. But Bloch doesn't leave it there. He goes on to summarise the rules with "measure performance before and after each optimization attempt." We all know this, but how many of us actually do it? Actually I've seen these rules put to bad use and Bloch covers that too when he points out that you should still be thinking about performance issues when writing code. The example I've seen is someone retrieving a lookup table from a database for each iteration through a dataset, rather than reading it once and caching it. At least that optimisation was straight forward. The new information that surprised me a little was that it appear to be accepted that Java does not have a strong performance model. We all know Java is traditionally...

Item 49: Prefer primitive types to boxed primitives

This is the first item, certainly that I have reviewed, where I feel Bloch has it spot on. There's no arguing with this one! Bloch points out that Java has a number of primitive types such as int , double and boolean and each of these types has a corresponding reference type: Integer , Double and Boolean . These are the boxed primitives. Auto-boxing and auto-unboxing was introduced into the language in 1.5, so the Java programmer must now be more mindful of their use. There are three main differences between primitive types and boxed primitives: Primitives have only their values, whereas boxed primitives have identities distinct form their values Primitive types cannot be null , but boxed primitives can Primitive types are more space and time efficient than boxed-primitives Care must be taken with using the == operator with boxed primitives as, with any other reference type, it compares identity and you almost certainly want to be comparing value. If a boxed primitive is compa...

ACCU Conference 2010 Proposal (2): Java Dependency Management with Ivy

Type: case study Duration: 90 min Speaker name: Paul Grenyer Speaker Biography Paul has been programming in one form or another for over 20 years. After several years using C++ and a brief period using C#, Paul is now happy somewhere he hoped he'd never be, programming in Java. After time in industries such as marking machinery, direct mail, mobile phones, investment banking and Internet TV, Paul is currently working for an exciting new company based in Norwich where he heads up an ever growing team of senior and highly skilled people. He has been an ACCU member since 2001, a regular publications contributor, including the now well established Desert Island Books column, creator of the mentored developers and a committee member for most of that time. When he's not programming and family life allows, Paul thoroughly enjoys science fiction, heavy metal and cycling. Description One of the biggest advantages of Java is the vast number of third party libraries available. As the si...

Bloodstock 2009

This year was one of the best Bloodstock s ever, which surprised me as the line up didn't look too strong. I haven't come away with a list of bands I want to buy all the albums of, but I did enjoy a lot of the performances. Insomnium[6] sound a lot like Swallow the Sun and Paradise Lost. They put on a very good show. I find a lot of old thrash bands quite boring, but Sodom[5] were quite good. They could have done with a second guitarist and the bass broke in the first song and it seemed to take ages to get it fixed. Saxon[8] gave us some some classic traditional heavy metal. Solid, as expected. The best bit was, following the guitarist standing on a monitor, Biff Bifford ripped off the sign saying "DO NOT STAND" and showed it to the audience. Once their sound was sorted, Arch Enemy[10] stole the show. They turned out not only to be the best band of the day, but of the festival, but then that's what you'd expect from Arch Enemy. Carcass[4] were very disappoin...

Century Rain

by Alistair Reynolds (978-0575076914) Alistair Reynolds is still by far my favourite author and he never fails to amaze and surprise me. I've said it before, and I'm sure I'll say it again, but nothing else he's written, for me, gets anywhere near as good as his Revelation Space series. I'm sure it's just the lack of scope of a stand alone novel compared to a series. I enjoyed Century Rain, but I don't think I'll read it again. The ending was rather cliché and I think I'd rather have seen the bad guys win for a change, although it wasn't clear to me when they were trying to wipe out the ALS, I probably missed it somewhere. This book is a lot easier to follow than the Revelation Space novels. In a few books time I'll be reading House of Suns. Hopefully this will live up to Revelation Space.

ACCU Conference 2010 Proposal (1): Enterprise Web Application Development in Java with AJAX and ORMs

Type: case study Duration: 90 min Speaker name: Paul Grenyer Speaker biography Paul has been programming in one form or another for over 20 years. After several years using C++ and a brief period using C#, Paul is now happy somewhere he hoped he'd never be, programming in Java. After time in industries such as marking machinery, direct mail, mobile phones, investment banking and Internet TV, Paul is currently working for an exciting new company based in Norwich where he heads up an ever growing team of senior and highly skilled people. He has been an ACCU member since 2001, a regular publications contributor, including the now well established Desert Island Books column, creator of the mentored developers and a committee member for most of that time. When he's not programming and family life allows, Paul thoroughly enjoys science fiction, heavy metal and cycling. Description Recently Java enterprise web application programming has been leaning towards a more classical J2EE...

Terminator Salvation

Terminator Salvation is a big disappointment. Maybe it's the lack of Arnie (well except for a short scene that was almost certainly superimposed from a previous film) and a story line, but it just didn't feel like a terminator film. It wasn't going anywhere and it never got to the part where John Connor sends Kyle Reese back to save his mother. There is also way too much of a gap in story line since the previous filem. We need more action, more story and more Helena Bonham Carter, please! It really seems like the Terminator producers are writing perpetual sequels which never actually get anywhere. I was asleep by the end.

Steel Panther

Finally a band that might be able to take over where the Darkness left off. Steel Panther sound enough like Poison, Motley Crue and Def Leppard to be radio friendly (in the US at least) while are heavy enough to get away with calling themselves a metal band and singing about metal. Musically Steel Panther are great. What lets them down is the lyrical content and it let's them down big time. Death To All But Metal is amusing and genius, but just about every other track on the album is either embarrassing toilet humour or unnecessarily derogatory towards women. It's not big, it's not clever and I'm sure they could do better. Putting the lyrics aside this album is a great listen and just what the rock genre needs at the moment to combat the current crop of bland rubbish such as the Kaiser Chiefs. Here's hoping Steel Panther pull it together for their second album and grow up a little.

Effective Java

Item 44: Write doc comments for all exposed API elements The item does not even attempt to justify or explain it's reasoning. It just states that "If an API is to be usable, it must be documents". This is complete rubbish. A good Java developer can use and API by reading it! It then the proceeds to make the frankly ludicrous statement "to write maintainable code, you should also write doc comments for most unexported classes, interfaces, constructors, methods and fields." The lack of maintainability of code is most of my problem with this item. Adding comments in the fashion simply duplicates what is already in the code, increasing the maintenance the code required. History dictates that developers are very good at updating and fixing code, but not the associated comments. Good code only has comments where it is necessary to say why and never how. The item also states that "The doc comment for a method should describe succinctly the contract between the the...

Pushing Ice

By Alistair Reynolds (978-0575078154) Having read all of Reynolds' Revelation Space series I was a bit disappointed by Pushing Ice. Obviously there is far less scope in a standalone novel compared to a series, but the story took quite a while to get going and didn't really contain any new science fiction. The book draws heavily from both the Space Odyssey and Rama series and even steals the "First Ones" concept from Babylon 5. Reynolds successfully induces a sense wonder and makes you want to read on to find out what's really going. The ending is a little week and there are many questions left unanswered, but the scene is set for two possible sequels. If he writes them, I'll read them! If you're new to hard science fiction or to Alistair Reynolds then this would be a good place to start.

Agile Testing: A Practical Guide for Testers and Agile Teams

by Lisa Crispin and Janet Gregory (978-0-321-53446-0) This book is pretty much what it says on the tin and that's a good thing. Behind all the usual Shiny Happy People Having Fun stuff you usually get in books from the Agile community is some sound, well expressed advice. This isn't just a book for Agile testers. There's a lot of good practical information that all testers should learn. It's a difficult balance to achieve, but I think the use of the word Agile may put of a lot of people who should really be reading this book. As well as the general practical testing advice the book also covers a lot of fundamental Agile stuff. It sets out some Agile testing principals and discusses the problems a lot of teams have when transitioning to Agile. It's all been written before, but never from a testers perspective, but to be honest it's not that different from the developer perspective. The book is very hung up on the idea that developers in Agile teams, and indeed t...

Tomcat Servlet with Spring Timer

recently had a requirement to write a service, in Java, that monitors a directory and when new files with the correctly formatted name appear, send them to another system. All fairly simple stuff. There are many different ways of writing Java services, but we use Tomcat quite heavily, so rather than investigate another way, I decided to write a Tomcat servlet to act as the service. I started off by extending GenericServlet and overriding the init and destroy methods to write log messages to standard out. Then I wrote the appropriate web.xml to tell Tomcat about the servlet and wrapped it all up in a war file (basically a zip file with a Tomcat specific directory layout) and deployed it to my local Tomcat installation. I then checked the logs and found the log messages I'd put in the code. Not bad going for twenty minutes work and my first Tomcat servlet written from scratch. We've been gradually learning about Spring recently and I remembered reading that Spring had timers...

ACCU Conference 2009

Wednesday Keynote: The Birth of Software Craftsmanship by Robert Martin Brilliant! Simply brilliant! Uncle Bob is an enthusiastic and wonderfully engaging speaker. Through this keynote he chronicled the, now well understood, pitfalls of big upfront design, the emergence of XP and the birth and journey to maturity of Agile. Bob explained how Agile was adopted by business as it is more people focused than XP and how that caused the technical practices that made XP so good to be left behind. He highlighted how we need to reengage with the technical practices moving forward. We should all be using Test Driven Development, Continuous Integration and Pair Programming and Uncle Bob demonstrated why. In 2009 the benefits of using these are measurably several magnitudes greater than not using them. Uncle Bob has also brought out a new back to basics book to help us all remember how to write good code. Security in Distributed Systems and SOA by Nicolai Josuttis At previous conferences it has alw...

Broken Angels

by Richard Morgen (978-0575075504) Broken Angels may be "the new diamond hard novel from the author of altered carbon ", but it isn't anywhere near as good. It's not a bad novel, but I did find it took quite a while to get going. Once it did get going it was much improved. In life, as well as in books, I like to know what's happening and why. Broken Angels is almost like a description of what's happening, without any explanation of why and I found that frustrating, but it also encouraged me to finish the book. Most events are explained towards the end. Kovacs changes side a few times and sometimes that can be difficult to understand and follow. The violence and the sex is still there. In fact Morgan has stepped them up slightly. I will be reading Market Forces at some point in the future, but if that isn't better I will probably let Richard Morgan go by the wayside.

Setting-up GWT-Ext for GWT 1.6 with Eclipse

GWT-Ext is a great set of widgets for the Google Web Toolkit (GWT). At the time of writing the release candidates for GWT 1.6 are out. GWT 1.6 has a different project structure and embedded Java Servlet (Jetty) server. These changes bring the advantage that the project structure can be deployed directly to a Java Servlet server (such as Jetty of TomCat) without having to manually create the WAR directory. A slight disadvantage is that the setup documentation for GWT-EXT is no longer quite right. Below I describe the steps necessary to create a GWT 1.6 project with eclipse and configure it for GWT-Ext. Install the Google Plugin for Eclipse (http://code.google.com/eclipse/docs/getting_started.html). Use the plugin to create simple GWT application: Select File -> New -> Web Application Project from the Eclipse menu. In the New Web Application Project wizard, enter a name for your project (e.g. MegaDeth) and a java package name, e.g., com.megadeth . Take the tick out of the Use Goo...

Lacuna Spellbound

Lacuna Coil are one of those bands where I've bought every album only to discover I only really like one of them in it entirety and then odd tracks here and there. The album I like is In a Reverie and the odd tracks I like most are Swamped and Heaven's a Lie from Comalies. Comalies, and indeed Unleashed Memories are good albums, but I get board very quickly and there's nothing to keep my attention. The much anticipated Karamcode was simply rubbish and therefore I didn't play it more than a couple of times. I've seen Lacuna Coil live three times and every time they were disappointing with little stage presence. They certainly couldn't compete with their genre counterparts Nightwish. Today I heard the track Spellbound, from the new album on thier MySpace page . Although it's only three and a bit minutes long it gives me hope for the new album, Shallow Life, out in April.

Bitter Chilli

Readers of this blog could be forgiven for thinking I mostly use it to whinge about poor customer service, but it's happened again. Charlotte and I went out for Valentines day last night. I'd booked us a table at Sweet Chilli in Norwich. When we got there we discovered that they were only doing set menus at a minimum of £25 a head. This wasn't mentioned when I booked. Neither Charlotte or I wanted to eat a starter, main and desert, let alone pay over £50 for a meal we couldn't choose. So shortly after our drinks arrived we got up and walked out. I explained the situation and exactly why we were leaving and asked to pay for the drinks, but unsurprisingly I didn't have to pay. Amazingly we managed to get a table at old faithful, Pizza Express just across the road and we only had to wait about twenty minutes. We couldn't get the table we wanted, but the service was excellent and the food as good as ever. After a few drinks in the Marquee we had a great night.

Developing a Spring Framework MVC Application

Last night I finished reading Developing a Spring Framework MVC application step-by-step by Thomas Risberg, Rick Evans and Portia Tung. It's excellent. They develop a Spring application almost exactly the way I would with unit tests, separate integration tests that talk to a real database, an abstracted data access layer to allow substituting of mock objects and ant based deployment and manipulation of TomCat. If you need to develop an MVC Spring application start with Developing a Spring Framework MVC application .

Paul Carrack

My dad and I have been Mike and Mechanics fans since the Living Years and he's been nagging me for a long time to keep an eye out for them player. Alas it seems this is unlikely to happen again, so when Paul Carrack came to the Theatre Royal in Norwich we figured it was the closest we could get. I really didn't expect him to play any Mike and Mechanics songs, as he has his own extensive back catalogue, so we were pleasantly surprised to get Another Cup of Coffee, Cool Runnings, The Living Years and Over My Shoulder. It was a strange gig. The first half was cut a little short and the band instructed to perform a different closer. Just before the second half it was announced that Mr Carrack was suffering from Influenza and expected his voice to go before the end of the set. We were offered the opportunity to leave and have a full refund from his personal pocket. No one left, Paul's voice did go, but everyone had a great time, especially his keyboard player who too over lead v...

Metal Hammer: Defenders of the Faith II (Birmingham)

I've been to a number of gigs in Birmingham, Vader at Edward No 8, Slipknot and Slayer (co-headline) at the National Indoor Arena and Rammstien and Motley Crew at the National Exhibition Centre. I've also spent a good number of new years, including the millennium, in Birmingham with friends. This was my first trip to the Carling Academy and it's a reasonable venue, with a reasonable sound system, but with a whole lot of unnecessarily rude and unfriendly people, a lot of who don't know how to use deodorant and have no respect for the smoking ban. This was not the Birmingham I know. I did however meet some very friendly scousers and a very chatty girl for Leicester who'd lost her friends, her purse and her Nintendo DS! Unfortunately we missed Five Finger Death Punch, the band I had been looking forward to the most, as we didn't get there in time. I'll be looking out for them touring the UK in the future. Unearth were as expected, not very good. I felt rather s...

The Road to Recovery

The first step is often the smallest. Yesterday I jacked the front end of my TR up on to axle stands and took the offside front wheel off and sent it off to have the puncture (or it may be a bad seal on the alloys) repaired. It's been a problem pretty much since I've had the car and it's time it was sorted for good. Once I have four functioning tyres I'm ready for the next step: MOT. As I have no insurance, the garage have kindly said they'll come and pick the car up, MOT it and drop it back to me. It also needs at least an oil and filter change, and probably a new set of plugs and a water change. I'm going to do those myself this time. My aim is to have the car back on the road at the beginning of May and use it in the six months through to October. That way I only have to tax and insure if for six months, which will be a lot cheaper than the usual twelve, during most of which I'm usually not driving the car. I'm soon going to have to face the fact that...

Maybe we're not living in a throwaway society?

My Panasonic DMR-E85H DVD HDD recorder start playing up just before Christmas. Every time I switched the mode from HDD to HDD the machine would crash and go into self check/crash cycle. Eventually it would come back on of its own accord. This seems to be a common problem with the model, but there was no clear fix I could find on the Internet. I've had the player near 4 years, so it's done reasonably well for a modern product. Event though the lure of buying a new DVD HDD record with built in Freeview was very tempting, the £250 price tag wasn't (and I couldn't get one with blue ray), so I took it back to Richer Sounds to get it fixed. Although initially very helpful, they did nothing with the player for a week and told me it would take at least three weeks to be fixed once they'd sent it off. Also, the inspection fee was £35 and the base case fix scenario would be £70. If they couldn't fix I'd have lost £35 and have to buy a new player. So I collected the...

Underworld: Rise of the Lycans

I really like Kate Beckinsale in leather (or is it rubber?), so I was quite disappointed to find out that she wasn't in the new Underworld prequel. But then there's no reason she would be, it's set before her character is born (luckily a clip from Underworld with Kate in is shown at the end of the film). Rohna Mitra , who plays one of the lead characters Sonja goes some way towards making up for it. Rise of the Lycans is different from the other films. Underworld and Underworld Evolution almost verged on sci-fi with their modern weapons and fast cars. Rise of the Lycans is set a few hundred years in the past and quite different, but just as good. I don't think Bill Nighy knows how to put in a bad performance. He's superb and even stronger and more aggressive than in the other films. Micheal Sheen , now even more prominent in the story, puts in a much better performance than in the other films. The only criticisms I have is that there isn't much of a story li...

Agile Project Management

by Jim Highsmith (978-0321219770) Agile Project Management (APM) was recommended to me by Allan Kelly , when I wanted to lean more about it and try and get a few pennies to drop. Allan's more than a little bit of an expert on project management and Agile in particular, so I take his recommendations seriously. It's a good book. I know I say this about a lot of books, but it's probably more verbose than it needs to be. The first two or three chapters are a general discussion about project management and how APM differs and has more to offer. Chapter 4 to Chapter 8 is a discussion on the principals and practices of APM. This is where the really interesting and informative material is. Given what I've heard about Agile, I was surprised by the fact that being an Agile project manager is a full time job and there is a fair amount of documentation, even if it is mostly to keep external stakeholders happy. What's important is to get the right amount of documentation and th...

Threshold

Threshold are everything I love abut music. They're everything I look for in a band: drama, passion. big heavy guitars, Gilmour solos, strong vocals that compliment the music like another instrument and layers of keyboards. Forget Mercury May and even Lennon McCartney, Groom West is the best there is. I've always been a fan of big dramatic rock. Starting with Alice cooper and then progressing to Marillion, Pink Floyd, Dream Theatre, Evegrey and finally Threshold. They beat all the others hands down, even their modern contemporariness such as Stratovarius, Evergrey and Pagan's Mind. Threshold are a progressive heavy metal band through and through. They're not heavy like Hypocrisy or Deicide, but they're closer to that than they are to Marillion or Pink Floyd. As a guitar writer and player I rate Groom up there with Gilmour and no one on this earth plays or writes for guitar like Gilmour (Knopfler, Clapton, May and Hendrix, although superb, cannot get close in my opi...

Some things are guaranteed to make you happy....

It's January. My TR7 3.5ltr V8 (~175bhp) DHC (Drop Head Coupé) hasn't been started since September. The battery was flat and so was one of the tyres. Both were easily fixed yesterday and today he just roared into life, starting almost first time (he had to think about it for about 30 seconds). It's just a shame I couldn't drive him anywhere, especially as it's a warm day with clear blue skies. Next I'd best get that tyre fixed, then an MOT, some tax and some insurance. There's plenty of time to save up and convince the wife before the summer....

Database Resource Cleanup Published in CVu

“...We've got a great selection of material in this issue, from Paul's excellent boiler plating article to...” My Boiler Plating Database Resource Cleanup – Part I article has been published in the January 2009 (volume 20 issue 6) issue of the ACCU 's CVu magazine . It has a very nice introduction (see above) from the guest editor Faye Williams and even some feedback from a reader, Roger Orr. The icing on the cake would have been my name and picture on the front cover, but hey, you can't have everything. ;-)

Patterns of Enterprise Application Architecture (2)

by Martin Fowler (ISBN: 978-0321127426) I've now finished reading all the patterns and it all makes very good sense. I am much happier about how I should be separating database code from domain models and it's always reassuring to read about patterns you didn't realise you were already using and to get a name for them. In places it is heavy going, for someone like me without much formal Enterprise Application development experience. Some of the pattern descriptions are longer and go into more minute detail than are needed. I was disappointed, as I usually am with pattern books to find that the use of singleton is encouraged, under certain circumstances, with no discussion of the disadvantages. Martin Fowler is certainly one of my favourite technical anthers. I enjoy his sense of humour and his clear pragmatic approach to explaining things.

Languages and the art of driving a car

It's no secret that I've been interviewing recently. Non-programmers often ask me what I am looking for and what skills are needed and why I do or don't offer people the positions. Telling them that I'm looking for Java or C# programmers or a DBA is not only an inadequate description, but also doesn't mean very much to them. Recently I've taken to using the metaphor of learning to drive to describe the people I'm looking for. Lot's of people know the syntax of a programming language. Learning the language syntax is like learning to control a car. Fewer people know how to apply the language well and safely using patterns, best practice idioms, exception safety, etc. Learning to apply a language is like learning to drive a car well, learning to anticipate, knowing the rules of the road and sticking to the speed limit without loosing control. It was surprising how quickly people suddenly understood what I was looking for. If only learning to use a languag...

Bedtime Stories

Charlotte and I have just got back from taking Jude to see Bedtime Stories : Marty Bronson (Jonathan Pryce) who raises his son and daughter on his own has to sell his homey motel to clever Barry Nottingham (Richard Griffiths) who promises to make Marty's son manager, when he's grown up and has proven himself. Nottingham pulls down the motel to raise a pricey hotel. Although grown up, Marty's son Skeeter Bronson (Adam Sandler) works as a janitor and general servant, but unlikely as it seems, he still dreams of becoming the manager. When Nottingham announces a brand-new gigantic hotel project, he makes his future son-in-law, base Kendall (Guy Pierce), manager, shattering Skeeter's dream. At the same time Skeeter's sister Wendy (Courtney Cox) has to leave town for a job interview and asks him to alternate looking after her two children Patrick (Jonathan Morgan Heit) and Bobbi (Laura Ann Kesling) with Wendy's responsible-minded colleague Jill (Keri Russell). He does...

Abstract vs Abstraction

One of my favorite interview questions is to ask about the object orientation terms inheritance, polymorphism, encapsulation and abstraction. Most people have no problem with inheritance. Polymorphism usually makes people think, but they usually get to overriding which is good enough as I'm not currently interviewing C++ programmers. Most people equate encapsulation to data hiding and then I ask them to explain abstraction and the difference between it and encapsulation. Almost without fail I get a description of the abstract keyword from Java or C#. So I explain that that abstract is a language feature and abstraction is about designing interfaces. This usually goes down well and we move on. I just find it absolutely astounding that almost every programmer I interview gets confused here.

Patterns of Enterprise Application Architecture

by Martin Fowler (ISBN: 978-0321127426) In the next 12 months I am likely to be designing and getting my team to build at least two Enterprise Applications. Although it's now something I realise I have done in the past (although not the way I'm likely to need to do it in the future) I only really became aware of what an Enterprise Application was in the last few days when I started Fowler's Patterns of Enterprise Application Architecture. I've just read Part I and have dropped a small mint in pennies. A lot of the concerns I have about developing the systems are addressed in the book. I've been concerned about all sorts of things such as: Maintaining data integrity when it is accessed concurrently by multiple users Whether services should be stateful or not Strategies for distributing systems Strategies for the client All of these, and more, are covered by the book. It's a patterns book, so it doesn't give answers or a single way to fix problems. It describ...

Brian Goetz's Good Housekeeping Practices

It will have escaped very few readers of my blog, recent articles and conference presentation proposals that Java clean-up is my current obsession (if that's not too strong a word). Those of you who fall into that category should think yourselves lucky you don't have to work with me at the moment, as my team is getting it worse! My frustration stems from the large amount of Java based material out there that just ignores the issues involved in cleaning up in Java. Maybe it's mindset that says the garbage collector and finalizers will handle everything. Even thought it appears to be well documented that finalizers are not called until garbage collection and then there is no guarantee that they will be called at all, the penny does not seem to drop with a lot of Java programmers, except those of course who have come from a real C++ background. It's always reassuring to find evidence that other people have been thinking along the same lines as yourself, so I was very grate...