You Just Had To Be There!

A recent conversation went something like:

RK: You just sent me a 'p' record…
DN: There's 'p' in the database.
Me: Please don't 'p' in the database!

I'm still giggling, but then I was brought up on "The Beano."

Why Spring?

While taking a break from wrestling with the absurdly abominable Oracle Service Bus (Spring Framework was the way to go.

I've been known to say: "Don't start a Java application without Spring. Ever."

The primary reason for this is versatility. I can and have used Spring to:

  • Develop various species of plain 'ole web applications
  • Develop webflow-based web applications
  • Develop reporting applications incorporating eclipse BIRT
  • Develop Swing-based desktop applications (using TeeChart)
  • Develop batch processing systems
  • Helped develop XML pipeline processing systems (alongside Stylus Studio's XML processing framework)
  • Develop system integration processing flows
  • …and probably a few more bits and pieces…

The Spring-oriented skills I have built up have let me work in a substantially standardized way regardless of the situation.

That's pretty darned good, if you ask me!

Is this same story true of the obnoxious OSB? No.
Is it true for any implementation of the J(2)EE spec.? No. From any vendor? No.
Is it true for other frameworks like JBoss Seam. No.

Anyone know of any other framework out there offering similar flexibility, 'cos I'm darned if I do.

The Spring framework isn't standing still, either…it's the foundation for both Grails and Griffon. As I have adopted these technologies, my productivity has increased greatly. I am "standing on the backs of Giants." This is a Really Good Thing.

Let's add a modicum of "Systems Thinking" here. Rather than wasting time training a multitude of staff in a multitude of (typically short-lived) siloed technologies…some of which are honestly horrid…it makes much more sense to build a solid core of experience with a solid core technology.

Whoops! Here I go advocating a standards-based ICT world…again.

'Standards.' "Systems Thinking." How naive am I!

[...edit...]
Received an email from Manning the publishers a while back:

I know that this is not a scientific measure of 'goodness' (if one were even possible), but it speaks volumes to me…

Tags: Agile, Grails, Griffon, Programming, Rant, Retrospectives, Tools

CI: Continous Integration Or Coitus Interruptus?

(This post is the result of a recent, slightly orthogonal, slightly bawdy discussion…)

I have pretty much said this before, but it won't hurt to repeat it a bit more plainly (please excuse the non-MA nature of this posting…any percieved 'crudity' is not intentional): doing Continous Integration without proper associated testing is like having sex without going "all the way."

Both seem great fun initially but with repetition become more and more unsatisfactory and pointless.

More: both practices ultimately hinder further evolution and improvement. Of your codebase in one case, and of the Human Race In the other.

Refer to the CI Maturity Model for more on how to do CI properly.

Normal child-safe programming will now resume…

Tags: Rant

More Tragic Still

Following on from my earlier admission.

I'm now the owner of a shiny new iPhone 4.

Happy to report no Grip Of Death issues for me. That I have yet noticed, anyway.

I have been caught by the suspect proximity sensor issue, though. The somewhat serendipitous and slightly suspect fix seems to have worked for me…so far…lucky me.

The reality distortion field generator embedded into (or embodied by, perhaps) the device seems to be going strong…

I'll admit that I'm still absolutely amazed by the device, faults or no faults. Seems to me that it is bringing us all one step closer to the sort of sci-fi future that I read about as a youngling. I really can imagine Captain Kirk picking up his iPhone and telling Scotty to "beam me up."

[...edit...]
Spoke rather too soon there. That purported 'fix' for the proximity sensor issue didn't actually work: every time I participate in a phone call the flaming device mutes, holds, loudspeaks, dials and generally p*%$&s me off! If the version of IOS due Real Soon Now doesn't fix this behaviour, I may well take the device (I hesitate to call it a phone at this point in time) back to Apple for a "please explain" and a refund. The reality distortion field is weakening fairly rapidly…shame, that. I still adore my iPad.

Tags: Apple

The Three States Of Testers

Some "pop philosophy" for a Tuesday night…

Today was "first-look" day for the users of the system that I am currently working on.

After observing the users start in on the system and then watching them hack around the screens for a while, it occurred to me that I was seeing (at least, probably) three different types of behavior.

My background as a chemist came to the fore at this point and it occurred to me that I was actually seeing three states of matter at play.

The first state: solid. This type of user basically stayed where they were put. They logged in, typed what they were told to type and seemed happy to do nothing else.

Next were the liquids: these guys showed a bit more ability to 'flow' around the system than their colleagues. They found more 'features' and generally got more involved in things.

Then came the gases. These whizzed all over the place, escaping the confines of the system and generally finding leaks and holes all over the place. In the long run, these users were clearly going to be the most reactive and energetic. They were most likely to get the best return on their efforts.

Quite a nice analogy :-)

Now here's the clincher.

As one develops and tests software one needs all three of these states at some point.

You can maximize your testing if you can arrange your user testing so that it…and your user communities…follows nature's path: solid - liquid - gas.

You'll find that the solid testers will pick up the easy, common, 80% of impactful bugs and -importantly-will be happy doing so. At the end of solid testing, you won't have the perfect system, but you will have one that satisfies a good proportion of your user community's needs.

Follow up with the liquids…they will help you trap some of those more grungy edge cases that always seems to be forgotten about. Again, the quality of the system will be increased and you will have another user community that is nicely 'behind' you.

Time to let the gasses roam free! They'll get into the last remaining nooks and crannies and the result will be a good stable system. The gasses will be happy, knowing that they have contributed in a meaningful way without being waylaid by-to them-trivial and easy/'obvious' issues.

Like all analogies, this one breaks down fairly quickly: in the chemical universe, there are so many more gasses than solids 'out there.' For testing, the reverse is true.

This reminds me of how systems like submarines are pressure tested with nitrogen, so there must be some truth in it, somewhere…

Sadly, today we didn't follow nature's "true path" to testing nirvana!

Still: epiphanies have to come some time…usually as a result of some quantity of pain.

For sure, I'll be better able to express what I want from a testing process next time. We live and learn!

Testing philosophy, what next!

Eat your hearts out Kant, Heidegger, et. al…

[...edit...]
"Time to let the gasses roam free!" is not a reference to bodily functions! Shame on you, gentle reader (you know who you are)!

Tags: Agile, Retrospectives

LogMX: The Universal Log File Viewer

I was introduced to this nice tool today. Thanks Chris!

Here's the blurb:

LogMX is an intuitive and easy-to-use cross platform tool for developers and administrators working with log & trace files.

Neat-o.

Both free and commercial versions exist…

Tags: Tools

Sad Times In The Land Of Java

I knew it would happen eventually! It's not unexpected.

Oracle was 100% bound to screw Java over. Bound to. never had a skerrick of doubt.

The first strike (not really Oracle's fault but it is out there and needed proper management): a spooked community. Java devs are loyal beasties and really wanted some "warm fuzzies" from Oracle. They got squat. All those third-party organisations that based their products or enterprise strategies around the Java platform wanted assurance of a light touch. Did they get it…hah!

Instead, they got…

The second strike: Oracle suing Google. Anyone outside the legal community going to benefit from that, do you think?

The third strike has now arrived: Google backing out of JavaOne. Hear that sound? That's the thunder of a community running away. Way to go, Oracle!

We all know that three strikes and you're out…

Where to now?

Time to start polishing my C#?

Haven't used Objective-C since the NeXT days, but maybe an iPhone betting game would be a winner: "What stupid thing will Oracle do next?" I envisage some neat graphics: an animated Larry sailing around on a ocean of lawyers, occasionally dumping assets overboard…The winner each week would get the major prize: a cup of cold instant coffee; all the other players would have to reboot their devices.

Tags: Rant

Good Words On SVG From Microsoft

Really looking forward to Microsoft support for SVG in IE9…

They seem to be finally "getting it."

As I said before: earlier project a whole lot easier.

Tags: Tools

I'm An Apple Fanboi!

Ok. Time to come clean. I am a long-time Apple fanboi.

Way back in the early '90′s I was a big-time Apple Macintosh fan.

I was an eager (and even somewhat evangelistic) Mac developer.

I was quite active in the Hong-Kong Mac User group and at one point I ended up 'singing' on stage at Hong Kong MacWorld in a vain and ultimately futile attempt to keep an audience entertained while trying to buy a recalcitrant Mac time to connect to the new-fangled and still cantankerous 'Internet'-thingy. I hereby apologise to any members of that audience that may come across this post for what I put you through…it all worked beautifully a few minutes earlier, honest!

I even wrote a few articles for the local MacChooser magazine (at the time, the largest such publication in Asia).

The following might give you a chuckle…

I must be "moving back to my 'roots'" because I am now the proud owner of a spanking new Apple iPad.

Got to say that so far I am quite enjoying the experience!

The first draft of this post was written on the aforesaid iPad. Took me a while to get the hang of the on-screen keyboard, but I am getting up to a fairly good typing speed. The key, it seems, is to keep one's fingers away from the screen and not rest them as one normally would…once I got that idea into my "muscle memory", it all went swimmingly.

I have already boosted the bank balances of a few developers, small and large. That's the nature of the platform: I am walking into a most-definitely-for-profit zone with my eyes wide open in this regard and I don't begrudge the developers their dollars.

There are a couple of game-changers, notably Pocket Universe. I found it amazing to pick up the iPad, point it at the sky and see what is "out there" right now.

I am having fun imagining various other situations where this sort of application could be very useful: think of a car mechanic or a plant maintenance engineer picking up an iPad and getting a 'virtual' overview of the equipment that they are working on.

There is a glimpse of the future here, I think.

Bring it on!

Tags: Apple

Happy Towel Day!

Towel Day is an annual celebration on the 25th of May, as a tribute to the late author Douglas Adams (1952-2001). On that day, fans around the universe proudly carry a towel in his honour.

On the 25th of May, you should show the world what a hoopy frood you are by carrying a towel.