Archive for November, 2003

Your MOM sucks and doesn't belong here

Monday, November 24th, 2003

Anyone doing any development for a financial institute will no doubt have come across any number of projects that have huge budgets and lofty goals, all of which involve incredible amounts of wild hand waving and some mumbo jumbo about moving from point to point connections to some kind of magical fairy land run on top of a centralised message bus that makes everyone giggle with glee.

Maybe I’m young and naive and plain old blind. I just don’t get it. The first step on such projects is almost always about buying some hugely expensive MOM (message oriented middleware), usually tibco, MQSeries, or other such nonsense.

Now that said software has been procured (and appropriate droves of ‘experts’ hired to install said software), the next step is to fumble about wildly trying to find a use for the damn thing. Thus, the ‘integration project’ (complete with suitably impressive codenames) starts its long tortuous life.

The next step is in identifying all the legacy systems that will now be integrated. Invariably, a bunch of these have all been working very well for over a decade, and involve the mystical and mysterious art of ftp and end of day batched processes.

Here of course is where such projects will come to a grinding halt. The reality is that all these systems could not possibly be any less interested in a realtime approach. They equally have next to no interest in moving away from ftp. It works, it’s worked for years, everyone is happy with it, except for those clever folk who just spent a few million dollars/euros on MOM infrastructure.

The next step is the Big Compromise step. Here the new cheerful kids realise that the old grumpy ftp folk are not jumping onto their bandwagon. So in order to make everyone happy, the bandwagon gets some modifications, like square wheels, pegs that nail it to the ground, and suchlike. The perfect solution manifests itself….let’s just send the files across our message bus! That way you get all the benefits of point to point (one EOD file per system), and the MOM obsessed get to justify their existence since said file is sent across the message bus.

Having done all that, one cannot help but wonder….why bother? Exactly what has the million dollar piece of software you’ve stuck in the middle of it all done for you?

Die petstores die

Friday, November 21st, 2003

That’s right, I’m sick of all the yet-another-petstore-app crap floating around. First we had petstore, a glorious mishmash of every possible design pattern combined in ways that would make God himself weep hot bitter tears of anger and frustration. After that we got the .net petstore as pimped by theserverside.com, a horrific implementation that anyone with any sense of decency would be ashamed of.

Then of course there is good old xpetstore, the petstore to rule them all. An application that defiles xdoclet in ways that few but the most brain-damaged of struts monkeys have ever even considered.

Sadly, that’s not the end of the story. We now have petsoar bearing down on us, just when we thought that the world has finally realised the pointlessness of a web enabled pet store. Worst, it isn’t even a proper petstore, it’s a feeble nod in petstore’s general direction, and isn’t nearly as featureful and suchlike.

What is it exactly about web enabled petstores that reflects real world projects? Since when are shopping carts a good example of modern day project needs? The initial petstore I suppose made some sense. Back then, shopping carts were just getting established, and the idea of a canned one was still novel. How on earth could that concept still be deemed pertinent and relevant to the developers of 2003 is a mystery to me.

Enough petstores. Please, please, enough. There are few things more off-putting than someone attempting to teach you important concepts using an example that couldn’t be further away from how you intend to use such concepts and patterns.

The joy of training programs

Wednesday, November 19th, 2003

Almost every company out there with some sort of ‘enterprise’ product will try to offer you some scam training crap. Said training usually involves either them sending you some kind of ‘expert’ to talk you through their course (lots of wild hand-waving and powerpoint madness), or you going to their ‘labs’ for an ‘intensive hands-on training program’.

Supposedly this will make you some kind of expert, as well as setting on the road to some kind of ‘certification’ that will hopefully mean everyone makes lots more money all round; a complete circlejerk.

Needless to say, the fees for said training are astounding. A few thousand dollars per seat for a short session is par for the course. It’s a hugely lucrative market that is bound to keep on growing since it is based on a very sound principle. That principle is that the people in charge are idiots, and feel that even armed with a dazzling array of sharp and pointy objects, their employees couldn’t figure their way out of a wet brown paper bag. Thus, what better way to hone their skills that by sending them to the very source of the knowledge you want them to have? A certified authentic training program of course!

Needless to say, the poor bastards who actually go through the training are the ultimate losers. These fools get fucked every which way.

First they have to endure the excruciating pain of endless hours of tedium and repetition. Training material is usually aimed at a frightfully low common denominator. It’s aimed at people with the mental capacity of a guppy.

Secondly, they have to put up with the odd actual retard in the group. There’s almost always someone who no amount of cajoling, explaining, or rationalizing can help. As if that wasn’t enough, there’s always the idiot smartass tossed in for fun. The kind of person who will respond to statements like ‘if you click the check prices button then the prices will be checked’ with relevant questions like ‘…but I was wondering what happens during my Ankara stopover if I buy an egg in Amman then try to take it with me on a Royal Jordanian flight out to London’

So now, let’s be honest, has anyone ever been to a training program that they felt was aimed at the right level, where they learnt a ton of new stuff and were excited and thrilled to put all this new found knowledge to power to good use in their lives?

ThoughtWorks: The new BodySnatchers

Tuesday, November 18th, 2003

Imagine my surprise and delight to see my good friend Dan North write an article for that bastion of journalistic integrity, JDJ, and to see said article mentioned on theserverside.com. Now, Dan really is quite a great guy. He’s a jolly chap with a (what I thought) getting-stuff-working-is-cool-nevermind-the-bollocks-and-bullshit kinda attitude.

It turns out that the article is a thoughtful, serious and fairly articulate discussion about TDD, and some of the neato things you should/could be using it for.

This made me very suspicious. Dan seems to be the latest casualty in a mass reprogramming conspiracy that has been slowly gaining momentum. This conspiracy goes by the name of….ThoughtWorks!

This company, for reasons as yet unknown, delights in taking on perfectly sensible people, and turning them into perfectly sensible TDD/agile/fancylingo people. People who you could rely on to belt out decent code instinctively now pontificate about agile development and iterative top down development models and other such nonsense.

The list of casualties is on the rise too. I know of four people who have been assimilated so far. The training program at ThoughtWorks must be a modern day marvel of human engineering. It takes in as input fresh young bodies, and at the other end spits out those same bodies with their previous mental contents erased, to be replaced with one of the six possible variants of the MartinFowler template.

These Fowler bodies (fowlbots?) are then inflicted on an unsuspecting world, armed with blogs and a cultish obsession with TDD, refactoring, and agile development. They are equipped with stock success stories, 5 or 6 patterns that they will repeat in various forms, and an endless blogging capacity to ensure their seeds of evil are planted in the most fertile soil possible; legions of impressionable pretentious java developers.

Incidentally, I’m still friends with those evil people, and I will concede that they behave perfectly normally all the damn time. It does make my theory somewhat difficult to prove, but I’m onto them! They’ll crack one day and show me their true colours! It’s only a matter of time!

Commons-primitives is vile and filthy

Thursday, November 13th, 2003

Just when it isn’t possible for the Jakarta inbred turdburglars to embarrass themselves any further, they release commons-primitives.

I am truly stunned by this. I mean, it’s one thing to be plain old incompetent, it’s quite another to elevate it to such breathtaking heights. What on earth were they thinking? Were they thinking? Did the entire group just go through a mass lobotomy as a team building exercise?

One of the main ‘justifications’ for this is performance, allegedly. Now I realise that commons twats are some combination of unemployed wonders and serial mental masturbators, but how on earth could they have missed that age old adage, ‘premature optimisation is the root of all evil’? There are very few people who can get away with it, Jakarta is blessed with not a single one of those people. What’s worse is that legions of halfwits will stupidly use this library with that Jakarta shit-eating grin we’ve all come to recognise so well. Nevermind the fact that for most applications, the performance gain is so trivial and insignificant that it really isn’t worth the extra jar and complexity of using non-standard collection classes.

The next ludicrous claim is that these misbegotten affronts to nature are easier to work with. Now maybe I’m old fashioned, but in my crazy world Iterator is a fuck of a lot easier to work with that DoubleListIteratorListIterator. Optic nerve burnt out yet? Well, if not, then I give you ListIteratorDoubleListIterator. If your brain hasn’t automatically shut down by now to protect itself from these vile names, then contemplate RandomAccessDoubleList.RandomAccessDoubleListIterator if you will.

It’s at times like this that it’s tempting to just throw in the towel and give up. It’s one thing for some retard somewhere to decide to come up with something so asinine. It’s quite another for an entire group of individuals to agree that this is a great idea that must be made reality.

Dear Mr Rodney Waldhoff, you’re a twat.

ASF vs JBoss bitchfight

Tuesday, November 11th, 2003

Looks like the JBoss cult got its collective mind together and decided that enough is enough, there can only be one JBoss, and by god it’ll be led by the fleurys no matter what. Anyone who dares do otherwise must be punished like the wayward ungrateful children they are.

First, let’s be entirely honest and admit that there pretty definitely is some sort of misbehaviour going on. The ASF guys are generally a bunch of wankers too, and opensource being opensource, with everyone molesting everyone else’s code it’s hard to know exactly who did what, who’s idea it was, and who wrote it and designed it (no, cvs logs, @author tags, and strategically executed diffs don’t give you the whole picture), it’s hard to determine who owns what. Throw in selective memory and sheer happenstance into the mixture and it’s a recipe for much family fun all round.

The whole thing smells of bad karma, which is very much against the spirit of open source. Funny how at the slightest whiff of money all those ‘the code is free!’ ideals drop faster than Fred Grott’s vowels. I hope this is a good lesson for you JBoss chozgobblers with your tawdry squeaks of ‘but I have the source, I can do what the hell I like with it!’. It should be clear to even you inbred halfwits that if what you want to do is in any way non-beneficial to JBoss all you’ll get out of it is a big red hot poker up your bottom administered lawyerly.

Still, setting all that aside, I for one am pretty gleeful about this recent turn of events. All my Christmasses have come at once, so to speak. On the one hand, we have JBoss losing points as an opensource poster child with their use of evil horrible lawyers, and on the other hand we have ASF being called a bunch of thieving twats. I really do hope the ASF decide that JBoss needs a bit of a smackdown, and goes to court over the whole thing. I also hope that they go ahead with Geronimo, and that eventually IBM pick it up a la jetspeed and build a big fat crappy worthless product out of it. Most of all, I hope my pre-order for a few vats of popcorn is not premature.

The senior architect syndrome

Monday, November 10th, 2003

I’m sure that many people have dealt with this sort. It’s that older smug bastard who enjoys having his finger in every pie. The kind of guy who does nothing all day beyond maintain some production system in the name of work. The guy who believes in pictures and diagrams and believes that the way forward is by farting out endless white papers and ‘visionary’ ideas.

What exactly is the point of these people? What is even more baffling is why on earth they’re tolerated. Now, incompetent engineers I can understand. You simply beat them when they misbehave and through the miracle of Pavlovian training, they improve with time. At worst, they learn to stop being harmful and just stumble along on a reassuringly mediocre path. They don’t even need to be paid that much, and they’re as disposable as a Bic razor. Best of all, most of them don’t even realise their position in life and are convinced they’re special, unique, and talented, so their egos don’t need pampering either.

The senior visionary though is a completely baffling role. These people do literally nothing. They’re immediately derisive of any new technology that did not originate within the dusty cobweb ridden corners of their cavernous empty minds.

How the hell do you deal with these people? They often have the admiration of their equally retarded and brain damaged managers. Managers with the power to insist that their pet visionary be invited to every technical discussion regardless of whether said visionary has the slightest clue. Said visionary however will not shy away from raising irrelevant issues and generally making a pest of themselves.

The delusions of grandeur that these people suffer from are quite astounding. As surprising as it might be, bringing a system into production 3 years ago and have been babysitting it since then does NOT, contrary to popular belief, mean that you’re talented, competent, or anything worth listening to. Just because you’ve had an architect role in some project does not make you an architect for life. One achievement is not sufficient for a lifetime of glory. So, do your fellow engineers a favour and stay the fuck out of their meetings!

I loathe Redhat users

Thursday, November 6th, 2003

There are few things as offensive as a Redhat users pontificating about how clever they are. For one thing, they already suffer from the stigma of being a linux asshat. Linux users as a whole are fairly loathsome odious little critters, for a variety of reasons.

What I cannot fathom is why anyone reasonably well paid would choose to run linux as a desktop, given free choice in the matter. If you wanted compliance and cohabitation with the rest of the world, you’d use Windows. If you were a busy kinda person and had real work to do, you’d use windows or OSX. If you wanted the power of unix and cohabitation with the rest of the world, you’d use OSX. If you wanted to play games, you’d use Windows.

There really are very, very few reasons to use linux as a desktop environment. Given that harsh reality, one can only assume that it highlights a deep personality flaw with those monkeys who choose to do so. Of course, one doesn’t have to be a genius to figure out that the only people who would indulge in this silliness are those annoying little kids who always wanted to be cool but could never quite figure out how. The kind who got beaten up regularly for being weasely little turds. The kind who would brag about being cool and hip, but deep down inside desperately wonder what they must do in order for others to like them and so much as glance at them with anything other than mockery and derision. Those kids would do anything to try and feel like they’ve won one over those evil cooler kids who kept beating up on them and laughing at them.

Who the fuck cares about how configurable it all is? X is slower than shit through a funnel. Your average theme for it is about as functional as a dildo in a bake-off. The usual cry of ‘but you can CHANGE it and use another theme’ is worthless, since the next theme, in all liklihood, is just as worthless. I’d much rather have design experts spend all those millions researching what a usable UI is and figuring it out. I’d much rather that, than playing with some fuckwit IT kid’d ejaculate who had a violent encounter with photoshop and now feels the urge to inflict the sad pitiful results on an unsuspending world.

Back to redhat users. The reason that these are the most loathsome of all is that there isn’t even anything vaguely geeky or cool about the experience. For example, gentoo users at least will admit that for no explicable reason whatsoever, seeing all those compilation messages fly by arouses them sexually. It’s a normal geeky reaction, so gentoo makes sense for that. On the other hand you have debian (and debian based) distributions, where you can have the coolness of running the latest and greatest without having to mutilate yourself to get it all working.

Redhat really is a house of cards that will eagerly crumble if you so much as look at it crosseyed. Upgrading rpm’s could not possibly be any more painful. It is truly astounding how rare it is to find any two rpm’s that have the same dependencies, and will happily coexist without much whining, pleading, and eventually helpless penis tugging by the end user in a desperate attempt for any sign of life or interest. It somehow manages to bring all those legitimate reasons as to why one might dislike windows into a environment with far worse hardware support and documentation that would make your mother wish she’d have gouged you out of her womb and rammed a pair of scissors into the base of your skull (now illegal, incidentally) to avoid the trauma that this nonsense would cause you.

The trouble with AntHill (pro)

Tuesday, November 4th, 2003

I’ve always been a fan of Anthill. I feel a certain affinity to that company since formicary basically means anthill in Latin. So despite hearing many people complain about it, I thought I’d give it a fair chance at proving everyone wrong.

The first steps were very promising. I asked them for a free opensource license for the pro version for opensymphony and was given one within a few hours. A quick look through the mailing list showed that they respond to pretty much every single question with long thoughtful polite responses. The level of support they provide makes one tingle all over in that pleasurable way that borders on the sinful.

Alas, they’re cursed by one small problem; the product itself. Sadly, it sucks ass. It has a number of very serious flaws that make using it a distinct displeasure.

First, the user interface. It’s awkward and clunky. It only works in IE, and even then a breakage is not surprising. It violates any number of user interface guidelines that decent people everywhere have learnt to abide by. For example, let’s say you have a detail page telling you you’re using ant. Now, instead of having a nice big fat ‘configure’ button next to it, the ‘ant’ word is hyperlinked. This takes you to the ant configuration page. This approach just feels hugely counterintuitive and obstuse.

The tree itself seems to have grown organically (ie, it’s an illogical mess), rather than been properly designed. Finding a particular node is a matter of wild and furious clicking around rather than logical deduction.

Sadly, this ugliness is not merely skin deep. It merely hides further ugliness on the inside. For example, everything is implemented as a module. Modules are a mixture of java code and ‘pagelets’. A pagelet is a jsp-like source file that is compiled to a java class by an anthill compiler. Byebye quick and easy preview for page modifications. What’s so evil about jsp, velocity, or pretty much any other templating system that doesn’t require pre-compilation?

Then there’s the configuration mess. The conf directory is bewildering variety of config xml files. Every module delights in spitting out any number of these. It’s pretty much impossible to figure out what goes where, or how to change an actual setting.

The actual build functionality works as advertised, I just wish they’d focus on that rather than on providing pointless features like a file browser or an ‘intranet’ publish area. Since you’re deploying the product into a servlet container, it’s trivial to create a separate webapp that will house your artifacts. It also removes the burden from anthill and allows them to focus on stuff they do know how to do (build systems) rather than stuff they don’t know how to do (ui, file serving, configuration management, etc etc).

However, given the stellar support and great attitude the company has, it’s surprisingly easy to forgive the minor quibble of a bad product they’re selling. Just goes to show that there’s a lot more to success than a good product!