<< November 2003 | Home | January 2004 >>

Your Google Birthday

People who write weblogs invent games that they play with Google. I've seen a couple of them:

Owning Your First Name
Search Google with your first name and make sure your home page shows up as the first result.
Your Google Number
Search Google with your quoted full name and count the number of hits.

Here's another game to keep you occupied during the holidays:

Your Google Birthday
The date your name first appeared on The Internet.

To play it, go to Google Groups, select "Advanced Search", type in your full name in quotes, select a date range, and click on "Google Search". (You probably will see thousands of messages that you foolishly posted to USENET newsgroups with your real name when you are young and naive.)

Now push the end date further and further back until there is only one message showing. That date, my friend, was the date when your name was irrevocably linked with The Internet. It is your Google Birthday! Mine is Oct. 12, 1989:

They Took My Money, ... Never Mind (Updated)

... but did not email me my License code.

The IntelliJ IDEA people did.

Repeated emails to customer service went unanswered.

There's not a phone number I can call to talk to a live person. I don't know what's wrong.

Update: I received a reply to yet another email I sent them, but using a different email address, this (Monday) morning:

Sorry for the delayed answer. We had a few days off here.

Our records show that we sent you a license on December 26. Please find attached a copy of the licensing email.

So they did send the license out. But I never received it. How do I track down something like this? Are spam filters to blame?

View Selection Source

For some reason, TheServerSide.com formatted todays stories extra wide. I have to use the horizontal scroll bar for every line.

Then I remembered the view selection source feature of Mozilla. I simply highlighted a word from the paragraph, right clicked and selected "View Selection Source". Mozilla figured out that the selection is part of a div, and showed me the div element.

As I expected, the paragraph in the view source page is nicely formatted to fit in 72 columns.

Retire The Floppy Disk Icon

When was the last time you saved your files to floppies? Three years ago? Five?

Pretty soon, a new generation of young people wouldn't even know what a floppy disk is or how it looks like.

Now take a look at the "Save" button on your word processor, editor, or IDE's tool bar. Chances are it has a floppy disk for an icon.

I think it's time to retire the floppy disk icon for the "Save" button. And replace it with something more current.

Merry Christmas.

IntelliJ IDEA Personal License

Quick, it's that time of the year again---for getting your IntelliJ IDEA personal license at a discount.

Update (January 17, 2004): The sale is over. The discount link 404s now. :(

XDoclet 1.2.0 Released

The XDoclet team has finally released XDoclet 1.2.0.

They fixed the bug I reported. So I'm happy.

RELAX NG An ISO Standard

On December 1, 2003, RELAX NG was published by ISO as an international standard ISO/IEC 19757-2:2003.

For those who don't know, RELAX NG is an XML schema language that is reasonably designed and extremely easy to use (compare with the W3C XML Schema Language).

Remind Me Later

Take a look at this "remind me later" dialog box and the choices it offers:

Am I doomed to having to see this thing at least once every three days until such time when I say uncle and download whatever it is that it reminds me of?

Update: Well, being the loyal Sun bug filer that I am :), I can't resist filing a bug report on Bug Parade. Anyone want to guess how soon I'll receive an acknowledgement from Sun India? (See here, here, and here for my lousy track record.)

Update: Lucky me! It's five days this time. Girish from Sun wrote back today:

I have reviewed your bugreport and feel that there is a way to solve this issue. You could just bring up the Java-Plugin control panel and choose the Update tab. There you could "uncheck" -> Check for updates automatically. Then whenever you are ready for an update just manually click on Update Now.

Problem solved. :)

Unix Programmers, Windows Programmers, Joel, ...

Joel, of Joel on Software fame, has an interesting take on the cultural differences between Unix and Windows programmers:

Unix culture values code which is useful to other programmers, while Windows culture values code which is useful to non-programmers.

And a lot of people seem to agree with him.

They are all wrong.

The correct answer:

Some care about the art, others money.

That's all.

AOP, dynaop, Crazy Bob, ...

Bob Lee presented on AOP at the St. Louis Java Users Group yesterday evening.

Bob has a new AOP framework called dynaop now. This is a DynamicProxy based AOP framework that uses BeanShell as the configuration language.

It was a great presentation.

Jeff Grigg mentioned that he is using Bob's previous AOP framework, jAdvise, on a project with great success.

Update: Bob's presentation slides are here.

Mono Talk at C# SIG

I missed the Mono talk at the C# SIG today. I have a flu patient at home and need to get back home and cook dinner.

Why Software Projects Fail

Brad Shuler has a theory on why software projects fail. The topic comes up from time to time during our conversations. It came up yesterday when we were commenting on a Robert Cringely article.

Here's the first few items on Brad's list:

  1. If the software is not the business of the company, the software is more likely to fail. (Think of a trucking company writing HR software, etc.)
  2. If the company won't go under should the project fail, the project is more likely to fail. (Diebold will not go under if its voting machine project fails.)
  3. A software project without true customer buy-in is more likely to fail. (True means customers are eager to have the software, even to the point of pushing for it.)
  4. A project where management doesn't know when to step aside and let the tech lead lead is more likely to fail.

Are you on one of these projects?

Saved By Mozilla

Suppose, out of the blue, you were asked to work on some web pages.

Suppose, also, the web pages all look like this:

<script type="text/javascript" src="bigfile.js" />
<script language="JavaScript">
  body.onload = gabudiguk.gabudiguk.gabudiguk(gabudiguk);
</script>

Suppose, further, that bigfile.js is a third party library written by a smart Tadzhik that reads:

blah.prototype.blah.prototype.blah = blah(isIE5 && !isIE4 || isNN7 && ! isNN6);
blahblah = function() { blahblah; }

thousands of lines of them. And the most obvious change just doesn't seem to work.

Then,

you will be happy to find out a few tools tucked away in your Mozilla browser's menu:

Tools
  Web Development
    JavaScript Console
    DOMInspector
    JavaScript Debugger

The JavaScript Console lets you see all errors and warnings from the JavaScript. The JavaScript Debugger is just that, a debugger. The DOMInspector shows you the DOM tree after all the onload JavaScript has finished, in a tree view.

Click on a node, you can inspect CSS properties associated with the node, including the computed ones. You can inspect JavaScripts associated with the various event handlers. A red box will flash on a page preview window indicating the part of the page that's rendered from that node (a div, or a td, etc.) You can even edit some of the properties or copy the XML (the final HTML) of the node.

It's a good set of tools.

Eugene Belyaev, Maxim Shafirov, Ann Oreshnikova, ...

... has written a good article titled "Radical Refactoring" on the January 2004 issue of Dr. Dobb's Journal.

Eugene is president and CTO of JetBrains, Maxim is a senior developer for the IntelliJ IDEA Java IDE, and Ann is head of Documentation and Support.

The article shows off some of the more advanced refactoring features with example scenarios.

It's also good that I can now link IDEA the product with a few names. In general I like knowing the names behind a product: Linus for Linux, Gosling for Java, K&R for C, etc.

Fonts In Java IDEs on Linux

Been playing with the various Java IDEs on Linux. They all suffer from one fundamental problem: questionable fonts.

Take a look at the fonts in NetBeans, Eclipse, IDEA. And compare them to the fonts in Emacs. Why can't Java IDEs use sensible fonts on Linux?

Aside from the ugly fonts, I rank the IDEs as follows:

  1. IDEA (10)---By far the most comfortable IDE to use
  2. Eclipse (6)---Can do a lot of things but you have to learn every one of them
  3. NetBeans (2)---Champion of anti-intuitiveness. Not worth my time to learn it

None can do the one thing that Emacs does best: the TAB key indents the current line.

Don't ...

... write subpar programs thinking, "This is just a temporary hack, and I'm going to throw this away."

Life is too short for that sort of things. Plus, it won't go away. And your name will be spoken with despise for a long time to come.