Archive for February, 2004

Kill OSS Java

Thursday, February 26th, 2004

When the hell will all those people just curl up and die? I’m so heartily sick of that mustachioed hippie free-love deviant ESR spouting his OSS filth. When will he realise that he’s made all the money he possibly can from it, and it’s time to just shut up and move along now?

What’s even more offensive is how various Java type people will actually talk about the idea as if it’s a serious suggestion, or a matter worthy of discussion. The sheer presumptuousness of the premise beggars belief. Believe it or not, Java was never about sucking up to a bunch of slashdot teenagers. Who the hell cares what the Open Source Community think of Java? Their goodwill (or lack of, in fact) clearly has had absolutely no effect on Java. Just look at all the Java projects on sourceforge and freshmeat. Not exactly a lonely group desperate for all the marketing it can get.

The ridiculous assumptions made by all these articles are breathtaking. It’s telling that all these evangelists have next to nothing to do with Java, and are more often than not linux zealots running out of linux stories to masturbate to. For example, the furious arm waving proclaiming that if Java doesn’t go opensource, dotnot will win. Absolutely amazing the way this argument can actually be delivered without a hint of humour or sarcasm. Am I the only person who fails to see the Mel Gibsonesque leaps of Faith required to link the two? I mean really, what Java developers are being lost to dotnot? I’ll tell you, it’s the idiot kids who have that shiteating grin plastered on their faces at the sight of anything new. As soon as it becomes a serious technology, they jump ship and move onto something more hackworthy, or start a codehaus project or something.

The linuxtoday article is, to put it mildly, deeply offensive and ignorant. Open sourcing java has nothing to do with linux. Another astounding leap of faith. Java runs just fine on linux, there are thousands of Java developers who use linux exclusively. I’d hazard a guess but I’d say they’re likely NOT losing sleep over the exact licensing terms of either.

Still, it’s a comforting knowing exactly how silly this is, since it’s shown up on JavaLobby’s frontpage, along with other hilarious items as a desperate plea from Rick Ross trying to pimp out poor Matthew Schmidt. Perhaps YOU should hire him Ricky, if he’s that great? Oh the hypocrisy of it all! Our Fearless Leader got all upset over poomonkey’s blog on JRoller, yet he himself deposits his precious little nuggets everywhere.

So to sum up, Sun owns Java. Open source Java is alive and well, serious Java developers are too busy making money to give a crap about such idealist twaddle. All you GPL freaks can go join RMS’s love circle and get your jollies off by rubbing your unmentionables over his beard instead of irritating us Java types. Java doesn’t need ESR, RMS, or any of the Slashdot fucktard crowd blessings. We’re doing just fine here.

I wish I could run MC4J

Monday, February 23rd, 2004

Recently I’ve had the misfortune to need to use JMX remoting. JMX remoting involves using JMX over an RMIlike transport. The nice thing about doing this is that it enables you to have a pretty little swing gui to talk to your JMX crap, without having to resort to yet another spastic JMX web console.

Conveniently, MC4J just released version 1.2beta4, which brags of support for JSR 160 (JMX remoting). What a stroke of luck! I could use this to test the JMX beans!

Ahh, I was so naive back in those days. I should have known something suspicious is going on based on their ‘improvement’ of ‘built on the NetBeans 2.6 platform’. I was brave and foolish, and even had that rush of giddiness when I saw that they were considerate enough to provide an OSX specific download.

Alright, first sign of trouble. The OSX installer is in fact an InstallAnywhere pile of shit. I don’t understand why vendors feel that using this monstrosity is a good idea. It’s such a windowsy experience that is very much reminiscent of the feeling of losing bowel control and soiling ones pants in the middle of a hot date; unpleasant and highly inappropriate. Why the hell can’t they do it the OSX way, and just provide a double clickable .app? There’s nothing TO install here, it’s just a bunch of jar files! So pleased are the MC4J with their InstallAnywhere license, that they decide to forgo the ‘generic java’ download option too. Double clickable jars are considered too cutting edge and risky, I suppose.

Still, all that was a red herring, it turns out. The app…simply…does…not…run. I double click, I get a pretty splash screen bragging of all the stuff it’s initialising, then splat, nothing. Now I know open source is all about releasing early and releasing often. I understand that there’s no such thing as QA, and that unit tests are the best you could possibly hope for. I understand that these projects are very often one man jobs, and that that one man is often a feeble minded simpleton who knows as much about usability and QA testing as I do about exactly what it is that makes Andy Oliver so socially inept, but STILL! How hard would it have been to actually LAUNCH the app on OSX, just to see if it, you know, RUNS? If you’ll bother making an installer, the very least you could do is run through it!

No matter, it’s open source, surely I can just grab cvs, build it, and run that way. A few rounds of angry fist shaking at sourceforge and I’m ready to give it a shot. I see a build.xml, things will get better.

So, what to do first? I know, ant -projecthelp. Yep, nice help. Excellent. Let’s try ant run. Hmm, nope, no luck. How about just plain ant? Nope. Time to read some instructions. Hmm, looks like I have to go and manually download some netbeans shite, and create a dir and modify a local build setting. Alright, a bit awkward and retarded, but one can’t expect too much these days (apparently). The instructions suggest I create a new directory called ‘application’ and put the netbeans crap in there. Hm, that’s odd, since there already is a directory with that name, with plenty of crap in it already! Ohdear, this just gets worse and worse.

After some more wrestling and contortions, I sort of get it to compile, except there’s some compilation error. I give up, and try again the next day. What kind of a world do these people live in, where it’s OK to check in broken code?

At the end of the (next) day, I didn’t manage to get it running. The build process is awkward and clearly tailored to windows users (eg, the default ant run target uses a shmem debug protocol). At some point I managed to trick it into farting out some executables, but invoking those just brought up a rather generic and ugly netbeans IDE. The mind boggles.

People often complain that client-side Java isn’t really cross platform. MC4J is a perfect example of how the problem isn’t with Java, it’s with idiots who go out of their way to bypass the cross-platform aspect of Java and assume that everything works and looks exactly like Windows. For those of you too incompetent to know better, do the world a favour and stick to java UI paradigms, instead of your incompetent bungling attempts at windowising Java (yes SWT fuckwits, I’m talking to you too). Linux users might aspire to be on a par to Windows, but some of us have higher standards.

The breaking point

Wednesday, February 18th, 2004

After all these rants, I find myself wondering, exactly what does it take for the breaking point to be reached? For all the products I’ve cursed, that people have reported bad experience with and much disillusionment, exactly what does it take for these people to admit they made a mistake, and stop using said product? What does it take for said product to die a quiet mildly dignified death?

A good example is Maven. First the monkeys were jumping up and down with glee about it. Then they admitted it was beta and rough around the edge. Now people are admitting that it’s fundamentally flawed but still mildly useful. What’s depressing though is that maven itself doesn’t give a crap. There isn’t a hue and cry from the maven camp about their fundamental flaws and how to address them. Instead, they just listen to the monkeys who tell them how great maven is.

This selective approach to criticism isn’t limited to just Maven. It exists everywhere, and seems to be part of the human condition. It goes something like this. Person A selects a particular technology. Said technology will turn out not to be that great. The more person A has invested in this technology, the more he or she will fight tooth and nail to hold onto it, and the more excuses will be made for it. I can certainly understand that approach for certain kinds of investments (financial, where you don’t have a bottomless moneypit). Others though are less easy to fathom. Most disturbing of these investments is the religious one. The TDD crowd are a good example. The ‘leaders’ (read: immature early adopters) have that disturbing glint of religious fervour in their eyes. They also have their own insidious way of try to butter up their audience, the infamous ‘I know you might be a great developer, but I’m not, which is why I need my TDD’. Spare me the bullshit. If you really thought you’re not such a great developer you wouldn’t go get a blog and brag of every time you made toilet and try to make an opensource project out of it.

What does it take for us to be able to categorically say that something has failed? Plenty of people seem intent on sounding the death knell for EJB’s, for example. They in all seriousness suggest Sun just drop them (thank god for standards). Why is nobody suggesting for example that tomcat just be dropped? Why can’t the community at large just shrug and admit that letting Craig Mcclalalanasomethingortheother make any sort of decision that affects other people was a bad idea, and quietly drop JSF? Why can’t we concede that JUnit was not designed for what it’s being used for today, and drop it in favour of something that’s a bit more relevant to real tests instead of childish assertEquas(1+1, 2)?

Genesis of JBoss AOP

Thursday, February 12th, 2004

DISCLAIMER: None of the people mentioned below (Marc Fleury, Bob Lee, or Bill Burke) have given permission for me to post this. However, I’ve gathered material from two sources who choose to remain anonymous, and pieced together various other bits and pieces from stuff that is publically available. I’m sorry to those involved for airing your dirty laundry, but such is life. All the facts mentioned below are, to the best of my knowledge, accurate.

I realise a lot of this is old news to many people, but I’ve just pieced together the pieces and it makes for quite a fascinating story. I must admit that as someone who dislikes Marc Fleury, I’m perfectly willing to concede that he is in all likelihood a somewhat functional human being. The trail of JBoss AOP however makes a compelling case for him in fact being a deranged psychopathic lunatic, who is a danger to himself as well as those around him.

It was the winter of 2002. The world was just learning to get on with it, terrorists were lurking everywhere, and christmas was looming where believers and unbelievers alike had to put up with having to see relatives yet again. The bileblog at the time was but a twinkle in the eye of its illustrious author, and java developers everywhere enjoyed casual tugging of one another’s genitalia.

Bill Burke decides that it’s time to nail down the JBoss 4.0 requirements (December 4th, AOP on JBoss forum). We see our hero, Bob Lee, happily chime in, with offers of help and advice. In fact, he said ‘Let me know what you want to do, and we’ll do it.’.

At the time, Bob had written jAdvise, one of the AOP framework frenzy pioneers. This made him somewhat of an expert and a valuable resource. Bob is now involved in hashing out the details of JBoss AOP, and is providing a lot of ideas and contributing to the project. Bill Burke seems to have regular conversations with Bob about JBoss AOP. Even the mighty Deranged One chimes in with a ‘welcome to the group bob :)’ on Jan 16th 2003.

Of course, this early harmony was destined to be shattered. Sadly this is often the case with psychopaths. Bill Burke takes the jAdvise code as-is and checks it in to the JBoss CVS tree (exhibit A: CVS History for Interceptor), aimed tremendously by Bob’s innocence and naivete in not specifying a license. You can look there right now at the javadocs for org.jboss.aop.Instrumentor and org.jboss.aop.Advisor, both have bob lee as the author (at some point, his @author tag was removed, and later restored). Suddenly, JBoss AOP has actual code and is no longer a case of a couple of guys masturbating in their parents garage. What’s even funnier is the very first CVS commit message for Instrumetor from Bill: ‘crazybob’s stuff. Great stuff. Actually works, unlike the Javassist reflect package’. A later cvs commit message is even funnier: ‘Also added LGPL license and fixed authorship comments’

The next step in this whirlwind tour is TSS Symposium, which is coming up. The wise old men in charge of TSS decide that they must journey far and wide to the corners of the land to find he who holds the most info and Knows Stuff Best about various topics. Who was the AOP luminary selected? Yep, you guessed it, none other than Bob Lee. He shows up and talks about jAdvice, a talk made all the more relevant by the fact that it’s become the framework that the fleury clan has chosen to rip off for their own plans of world domination.

Bob is invited by TSS to speak at the TSS Symposium. The topic is JBoss AOP. Now, Bob isn’t a JBoss employee. However, he certainly knows his AOP. He also certainly knows his JBoss AOP, given that at the time, the only code in said AOP framework was his. It’s not too surprising that he’d be considered somewhat of an authority on the subject.

Now, I can’t see into the mind of the psychopath, but it doesn’t take a genius to see how it functions. I’d imagine the JBoss collective as a whole was furious with this selection. Not just gets-angry type of fury, but a full blown oh-my-god-I-will-burn-your-grandmother-and-defecate-in-her-skull type of fury. Why the hell should some kid get all the credit for AOP, when it’s clear than it’ll never get anywhere without JBoss? Who the hell does this twerp think he is, talking about stuff that is now clearly owned by JBoss? Will someone please think of the children (otherwise known as PR and advertising spots)?

Later on, Bob suggests to Bill that they collaborate on a book on JBoss AOP, given that they know more about the subject matter than pretty much anyone else. Now despite my personal bias, I’m still unable to quite see why this is considered an insane request by the JBoss clan. Marc at this point is on the verge of kidnapping Bob and torturing him by forcing him talk to Nathalie for hours on end as punishment. His rage isn’t even the fun stuff we see in public, it’s downright scary. His opinion is (caps not mine) ‘ YOU WANT TO FUCK ME OVER BY WRITING A BOOK ABOUT MY STUFF WHERE WE GET ZERO DOLLARS I WILL MAKE WE DESTROY YOU SO MUCH YOU NEVER THE LIGHT OF DAY AGAIN.’

The spastic one also then insists that nobody will ever, EVER be allowed to write books on JBoss, illustrating his point with his usual verve and eloquence ‘YOU DON”T WRITE ON JBOSS’ (note the double quote, indicating the use of fist-of-fury on the shift key).

So there you have it. Of course, this is all ancient history now. These days Marc is no longer allowed to communicate with the outside world before Nathalie vetting anything he has to say (thankfully!). Bob Lee has moved on beyond the first generation aspect framework business and has just released dynaop (I hate AOP, but if you like it, dynaop is pretty good). JBoss users however still adore their fearless leader, and incredibly, actually take pride in him. What a sad sad world.

Our Fearless Leaders Suck

Tuesday, February 10th, 2004

Am I the only person feeling a mild sense of shame at some of the content that our fearless leaders deem to be newsworthy enough to plaster over Java news sources? Exactly how many Fox News type news sites does a programming language need anyway?

I mean, javalobby is a good example. Rick Ross regularly makes us cringe with his earnest yet oh so embarrassing offers of help to NASA. Just as we’ve all managed to wince our way past that, he pulls another one and asks his adoring masses whether javalobby should run on JDK 1.5….BETA 1. One has to wonder if senility sets in early in java-related people. What is particularly astounding about the lunatic 1.5 JDK suggestion was the number of yes votes it got. Do those people really have so little to do with their time?

The serverside is no better. Every time Rickard farts it makes the front page..’Rickard farted today, it made an interesting noise, what do you think? Does he have a point? What is your view on farting in a Rickard-like manner?’ In fact, the damn thing is slowly becoming nothing more than an editorialised aggregator. If I wanted to know what a bunch of fuckwits think, I’d read javablogs.

Of course, javablogs itself isn’t exactly a haven of high brow intellectuals. Can someone explain to me the exact purpose of announcing every IDEA EAP build on your blog and having it show up on javablogs? No really, I’d like to know how the minds of such people work. I mean, did you think ‘there are tons of people out there who want to know about IDEA EAP releases, but they never check the IDEA EAP site, so I must help them’? Or perhaps you thought that maybe you could convert some unbelievers by bombarding them daily with new releases?

JRoller is no better, needless to say. Instead of killing all politicians, I’d like to suggest a far more constructive approach; killing all armchair politicians. There are few things more offensive than a bunch of rednecks whose idea of international travel is Canada and Mexico indulging in a group circlejerk around a picture of Ashcroft.

Of course, I realise that all this complaining isn’t particularly constructive (when is it ever!), and I understand that it can’t be helped, that with any large group, the majority will be spastics. I can’t help but feel mildly depressed and sad about it though. Far too many worthless sods have a voice these days.

Meeting Etiquette

Friday, February 6th, 2004

Many of us I’m sure spend a lot of time in meetings. In fact, barely a day goes by without being roped in to some irrelevant meeting where you have next to nothing to contribute, and even if you did, you’re too disinterested to actually participate.

So, there are some hard and fast rules that should be taken into consideration when dealing with all things meetingy.

The first rule is to determine who the alpha male is. The alpha male might well be female. In other social situations, they’re known as the ‘life-and-soul-of-the-party’. They’re loud, they’re obnoxious, they like waving their arms about and telling terminally boring witty anecdotes. Having established who the alpha male is, you can then proceed to stare at them intently every now and then. The trick to alpha males is to realise that their outward demeanour is but a sham, a mere papering over the deep insidious cracks within their fragile psyche. Staring will knock a lot of wind out of their sails, especially if you manage to look mildly disbelieving/inquisitive.

The next task is to identify the wimp. The wimp is a shy quiet type, who squirms about painfully whenever more than 3 people are in a room. They have a soft small voice, and no matter how intelligent, will be easy cannon fodder for your wrath. When the alpha male asks a question, simply repeat it later but direct it specifically at the wimp. Force them to speak up to maximise their discomfort.

Meetings also generally have two diametrically opposed goals. One goal is for everyone to agree, and the second is to highlight disagreements/issues. Your job is simple. Do not participate until you see consensus approaching, then smash it down just as the others feel there’s a light at the end of the tunnel. Unless you convince them that the light at the end of the tunnel is a rushing train, they’ll keep having these damn meetings.

Never bring along a notepad or any mechanism by which you can record anything about the meeting. For one thing, it’ll make you look mysterious and sinister. People will be taken aback by your brazen attitude and/or your photographic memory. Bringing food and drink in however is to be encouraged, as either will help stave off sleep for as long as you’re engaged with consuming said food or drink.

Finally, and perhaps most importantly, never, ever laugh out loud. If you are highly amused by something, stick to smirking or snickering. Smiling, baring your teeth, arching an eyebrow are all acceptable. Guffawing, thigh slapping, back patting, and clapping are not. This way, you can maintain that air of mystique about your person, and ensure that those bastards who called the meeting will develop some measure of discomfort around you, and thus seek to minimise the need for you in any meetings in future.

Judging by some of the comments here, there clearly are some rather deranged people out there. For you lot, something more drastic might be sufficient. You could for example defecate into your hand, hoist aloft the fruits of your endeavour and run around the meeting table screaming ‘my uncles, I will treasure you forever!’. If that’s a bit too extreme, you can resort to the good old fashioned leap-onto-the-meeting-table-and-helicopter-pee-on-the-attendees technique. If you have no table, then stand on a study chair. Good luck!

Jikes for morons

Tuesday, February 3rd, 2004

I was rather delighted to see that Jikes 1.19 is finally out, after a long long wait. I was expecting it to be faster, better, more fun. I even dared hope that they’d fix that stupid internal assert bug that is plaguing us poor IDEA 4.0 users. In fact, I wouldn’t have even been surprised if it gave me a lower mortgage rate, increased my size by 2 inches, and provided interesting pictures of horses doing despicable things to non-horses, 100% satisfaction guaranteed.

Alas, it brought non of those things. What it did bring though was the stupidest, most offensive, insulting default setting I’ve ever seen in any compiler of any sort.

Jikes now ‘helpfully’ criticises your code for you. As if it wasn’t warning trigger-happy enough as it is. By default, this new jikes will inform you that it doesn’t approve of empty finally blocks. It will admonish over-general throws clauses, and scold you for your naming conventions. Woe unto you if you have an underscore anywhere. Now, it’s easy enough for us mere mortals to avoid that. However, many appserver vendors will use variables that begin with some number of underscores to ensure they don’t clash with any user specified variables. Using jikes 1.19 with jsp’s will entertain you with a veritable feast of ludicrous complaints. If only that were all! Also on the chopping block are static final arrays (apparently, a nono). It also isn’t impressed by returning nulls instead of zero length arrays.

As you’re now writhing in pain and agony at this excessive big brotherage, jikes starts smearing salt into your fresh wounds by ‘proving’ its scolding with an appropriate reference to ‘Effective Java’.

I’m so fucking sick of people quoting books as some sort of bible. I can’t express the rage and disgust I’m feeling at the jikes fuckwits right now. I can understand if all these warnings could be turned on by a setting, but to make them the DEFAULT behaviour?! How insulting could they possibly be? Now, even IF these laws they quote could be applied without a single exception, let me decide that for myself.

I’d like my compilers to compile. I don’t want to know what they think or how they feel or what they consider is a good book. In the meantime, I suggest you all avoid jikes 1.19 and voice your disgust at the appropriate authorities, and smash stuff up to illustrate your disgust.