Archive for February, 2008

Y’all Suck at Apostrophes

Sean O’Driscoll is on to us programmers. Check out his apostrophe exposé. Yep. Our systems suck, big time. We can’t even handle apostrophes correctly.

Rocket Science

  1. Send a man to the moon. Check.
  2. Shoot down a satellite. Check.
  3. Mars rover. Check.
  4. Hubble. Check.

Non-Rocket Science

  1. Display an apostrophe character. ***FAIL***

UPDATE!!!

Here is my java.blogs email alert for this post:

java.blogs apostrophes

HD-DVD Eclipsed

This week’s top stories:

HD DVD Eclipsed

Bonus! Here’s an early draft:

HD DVD Blu-ray

Here’s a pointer to a news story that explains.

TODO: Fix the TODOs

One of the apps I work on contained 29 TODO comments. This is a problem because with so many loose ends lingering on in the code, newly introduced TODOs simply get lost in the noise and never get fixed. In fact, some of those 29 TODOs dated back to 2005.

So this afternoon, two of us decided to take a look at each of those 29 issues. We found a room with a projector, fired up IDEA, and analyzed every TODO. In about an hour, we eliminated almost every issue. We generated change requests for each of the remaining 5 or so TODOs, and will fix those tomorrow.

I am simply amazed we never got around to doing this sooner. We’ve been looking at this noise for years now, and it ended up taking an hour to eliminate most of the problems. It might take another few hours tomorrow for the “hard cases”, but that’s time well spent.

Next up? I think we have some nagging errors in the application server log files. These bogus errors, warnings, and overly chatty log statements must all die.

Advice

  1. Don’t let your TODOs, broken tests, and cluttered log files fester. Resolve the problems as soon as possible. (for the record, our tests always pass 100% on this project)
  2. Once you get to a clean slate, keep it clean. TODOs are fine for quick fixes and temporary workarounds, but make a concerted effort to resolve the TODOs as soon as possible. A lot of small, minor improvements are easier to deal with than one massive cleanup effort down the road.
  3. Noise masks true problems. If your IDE and log files flood you with false warnings, you will fail to notice really important issues.

Low Standards, Stupidity, or Both?

This is a rant. If you don’t like rants, feel free to stop reading now. You’ve been warned.

Set the Bar Low

For my first example, let’s take a look at a portion of the Prudential Patterson home page:

234 Items in Select

Here we find the “Quick Search” section. That <select> component shows three choices. In reality, it contains 234 items! It has so many items, the scroll bar is not even visible. You have to hold the down arrow for more than TEN SECONDS to scroll through the entire list; you can only see 1.28% of the available choices at any given time. This is their definition of “Quick Search”.

Their home page also features this gigantic image:

Unavailable

This is the “Featured Property”…perhaps a working picture is in order?

A programmer actually created this web page and said “This is Production Quality” and let it go through to the web site. Unbelievable.

Nobody Cares

Now let’s talk about the Suburban Journals. Here is a picture of their page that lets you submit classified advertisements online:

Classifieds

I filled this out because I did not want to place my ad by telephone. My ad contained a cryptic URL from tinyurl.com, so I wanted to ensure it was correct. After waiting several days, I tried again. A week later, after nobody called back, I finally drove to the office to place my ad in person.

While placing my order with a woman who typed my information into her computer, I told her about the broken web site. Her response? Something like:

That’s not my department.

This is kind of funny…because a few minutes into our transaction, she had to call THAT VERY DEPARTMENT to ask for help with her data entry task. Did she mention the broken web page? Of course not.

So the web page continues to exist. Who knows how many requests end up going to /dev/null each day.

MapQuest

Any web site that still uses old-school MapQuest makes me angry.

Development Environment From Hell

Brad left this wonderful comment on my blog the other day:

I am forced to use IBM Rational Application Developer for WebSphere at work. It blows. You have to remember all kinds of quirks (like manually saving your files before running). I use it to autogenerate web service stubs for my EJBs. then move the project to Idea. What really blows is that if I need to ask the tech lead a question, I have to go back to RAD. I also have to check in my RAD project to CVS. I pray daily for a return to Ant or Maven. It takes 25 grueling GUI commands in hidden submenus of hidden menus to build a project from scatch (to our spec.).

Here is how it should work:

ant dist

But no…it takes 25 manual steps in a bloated overpriced IDE from hell. There are two possibilities:

  1. Laziness. The first team member lazily used the GUI wizard to generate the first part the application in its infancy. Then the next guy came along and tacked on some tiny additional step. Hey, it’s just one tiny thing. No raindrop thinks it is responsible for the flood.
  2. Stupidity. Someone actually “designed” this system and intentionally chose IDE wizards and human steps instead of automated scripts. I’ll just pretend nobody is stupid enough to intentionally design a build system requiring 25 manual steps.

I’m a Fireman

When your job consists of “putting out fires” all day (because of horrific software), maybe your job title should be “fireman”.

Or maybe when you’re embarrassed to admit you work in this industry, you should just lie and tell people “I’m a Fireman”. Show them the callus on your mouse hand and tell them it’s from climbing the ladder.

Make Your Own Motivational Posters

Motivator lets you create your own motivational posters:

Desperation

You can make fun of yourself, too:

Fishing

I’m an equal opportunity mocker:

Huckabee

The Internet is a wonderful thing.

IDEA is Not Enterprisey

I suck. After my late night drunken IDEA is Now Enterprisey post, my faithful readers let me know just how wrong I was. Here are the top ten reasons why IDEA is NOT Enterprisey:

  1. IDEA is better than NetBeans. Sure, NetBeans includes a free profiler (which I really like and use all the time), and NetBeans is better at Swing GUI layout (who cares), but IDEA is better for stuff I care about…like coding. If IDEA was worse and still cost a lot of money, it would be Enterprisey. But they have the quality to back up the price.
  2. IDEA is better than Eclipse. Eclipse has a lot of plugins, which is fine unless you care about stuff like usability.
  3. IBM Rational Application Developer for WebSphere costs $2290 for one developer and expires in 12 months. If you want the license that does not expire, that costs $4240 per developer. For a single floating license, you’ll pay $7430.
  4. More on the previous point. IBM Rational Application Developer for WebSphere is a bloated*, slower**, more resource-intensive*** franken-IDE built on top of Eclipse, yet costs up to $7430. Ouch. That, my friends, is Enterprisey.
  5. Enterprisey products never have good keyboard navigation. IDEA does.
  6. Really smart people all left Java to use Ruby, Groovy, and perhaps Scala. Of those who remain, the top few percentile still prefer IDEA. There must be a reason why all of these smarties like IDEA.
  7. IDEA completely changes its project file format with each major release. They also keep tossing out and rewriting the project management GUI. Enterprisey products are far less volatile, demonstrating that JetBrains would rather fix and improve their product versus hanging on to garbage for years just to appease some boring IT department. (think Apple versus Microsoft here)
  8. IDEA’s bug database is public, definitely not very Enterprisey of them.
  9. Carpenters and mechanics buy some of their own tools. Somehow this makes IDEA non-Enterprisey.
  10. As Mark V. pointed out in an Email, you can get a free IDEA license by speaking at the St. Louis Java User’s Group. Which reminded me…that’s how I got my current IDEA 6 license. Damn, I’m a cheap bastard.

My wife just brought me ice cream, so I’ll wrap this up.

In summary, I apologize for the last post.

Footnotes

* - I’m just making this up
** - could be, I don’t know.
*** - how would I know? You think I’m paying $7430 to find out?

IDEA is Now Enterprisey

It’s official, JetBrains raised the price on IDEA. While they claim they have not raised prices in 5 years, this is not the complete story.

IDEA is Now Enterprisey

Remember back in the good ol’ days when you could count on a significant personal license discount every Easter? I’m pretty sure that didn’t happen last year.

And speaking of price increases, it used to be true that when you bought IDEA, you got the next major upgrade for free. Then, you had to pay for the version after that. But now it seems like you have to pay for every single upgrade if you wish to stay current.

And finally, upgrades come more frequently than ever before. IDEA is pretty much a yearly subscription service. So while they can say prices have not changed in 5 years, I’m not buying it. (literally)

Sure, you don’t have to buy every upgrade. But when you wish to move to new versions of other tools, like Subversion, you might have little choice but to upgrade IDEA or move to a new IDE. My biggest disappointment is the observation that IDEA is simply out of my reach…I cannot justify the cost. Thus, I still use IDEA 6 at home and work. Upgrading to IDEA 7 (and beyond?) is not an option where I work. Yearly, costly upgrades for every developer in the department will not fly.

Perhaps if I worked at some giant nameless corporation (you know, an “enterprise”), getting upgrades would be easier. Then again, companies like that already pay a lot more for Rational products.

Puzzle Hint

OK, nobody’s figured it out yet. Hints so far:

When you figure it out, post the answer here. I will continue the puzzle once someone demonstrates they have it figured out up to this point. Some people are really close…but I think they’re looking at entire words. Think more fine-grained than that.

Bonus question: What’s the weirdest thing you purchased online? I just ordered a 12″ diameter steel hemisphere.

Terminator

Shape shifting robots:

Also check out squeeze bots. Not exactly T-1000 yet, but I can see where this is heading.

I Fell Behind

Somehow I find myself in the unenviable position of being completely out of date. My cell phone sucks and is around 3 years old, our main TV is a bulky CRT, we don’t have any HD gear (other than a multiswitch), my fastest computer is more than 3 years old with a single core CPU, and our digital camera is absolutely pathetic. I think my laptop is about five or six years old.

I’d like to upgrade to an XBox 360, but that seems really expensive…particularly if I want games. And what’s the point of a 360 without a TV upgrade? Which makes me think…why get a new TV if my DVR is the old standard def model? Better upgrade that, too. But the signal isn’t HD…I guess I need a new satellite dish. Can you say ka-ching?

I’d like a digital HD camcorder (are they even called camcorders any more?), but my computer is too old and slow to edit HD movies. And then I’d need massive amounts of new hard drive space, followed by equal amounts of backup capability. $$$$

Tech Envy

This all started with my brother’s wedding a few days ago. I noticed all of his 22 year old friends had cutting edge phones, cameras, etc. I thought…what the hell happened to me? I’m not exactly old, I make decent money, and I WORK IN HIGH TECH. Shouldn’t I have more gear than these guys?

But when I start shopping, all I see are limitations. Maybe I know too much about what goes on behind the curtain? I see locked-down phones with artificial limitations imposed by carriers, accompanied by super-high rates. “Upgrading” my phone to a plan with unlimited data is literally a 100% increase in my already sky-high monthly bill. I see DRM…incompatibility…monthly fees…proprietary everything.

In the end, the more I know about tech…the less I want this crap. It’s all just too damn expensive, too closed, too complex, and too shitty.

I’ll wait just a few more years, because surely it can only get better. Then…maybe, just maybe — I’ll upgrade everything at once.

Wouldn’t that be a fun shopping trip?