Tuesday, May 26, 2009

Whither javaworld.com?

I have been losing faith in javaworld.com lately. Maybe I've just advanced to the level of programming where I'm highly skeptical of programming advice dispensed by people who work in development environments that are highly dissimilar to mine. It's not that the advice is bad; it's just that it can't be applied in any practical sense to my environment, or it yields no benefit in my environment.

I still read javaworld.com from time to time, but this little nugget in an article describing cloud computing really makes me wonder:

"Likewise, you should not be concerned with writing application code to implement scalability, reliability, and other cloud and distributed computing features that a cloud platform could provide..."

Uh, right. I'll just store everything in Object[], read and write data using unbuffered classes, call read(byte b) a billion times instead of read(byte[]) once, etc., etc., because the cloud will manage scalability for me. WTF?

Building scalability into the application code is incredibly important. Likewise, if my application dies all the time, the proper solution is not just to let the cloud restart it and cross your fingers. The proper solution is to code the app so it doesn't crash. The article's advice is especially ludicrous because when you use the pay-as-you-compute model, application crashes waste your money because you're paying to crash and restart, instead of paying for your app to do something useful. Furthermore, if you build scalability into your app, your app becomes cheaper to run on the cloud because you use fewer resources (electrons, clock cycles, network, storage) to run it.

Tuesday, May 12, 2009

Random Hilarious Error Messages

I come across silly error messages fairly often. I thought I'd capture them here for entertainment value.


This one comes at me from Oracle's Corporate Time Mac Client. How many windows does it take before you have too many? Five. Yup, five. I routinely have about 20 Firefox windows open without any sort of trouble. Five windows? Seriously?


I think this message came from SQL Navigator 5.5.4.847. I can't tell, though, because the dialog box doesn't give me the slightest clue. Wouldn't it be nice if my computer at least told me which application caused this?

Tuesday, May 5, 2009

Attempo Live Backup makes life miserable for developers.

Our company has had to switch from TSM to Attempo's Live Backup. It's wreaking havoc on developer productivity.

Builds, of which developers do dozens each day, delete and recreate thousands of files over the period of about 5 minutes. The backup system sees all of this disk activity and thinks "Oh boy, better get started caching changes and streaming them to the backup server!" Never mind the fact that those 150,000 class files are a compiler artifact and can be reproduced at will by running javac after checking out the appropriate source code from subversion--another backup system.

So what's a developer to do? Spend an hour configuring Attempo to ignore class files, war files, jar files, zip files, etc. The biggest bang for the buck I got was telling Attempo to ignore the many dozen "target" directories in my build tree, which is where most of the action takes place. It takes an hour to do this because you have to add the directories one by one. It would be really great if Attempo could use regexes for client side exclude directories and files.

Doing all of this configuration of Attempo greatly sped up my builds.