Alvin Alexander | Java, Scala, Unix, Perl, Mac OS X

The folks that have created IntelliJ have really done some nice things for those of us that use open source tools. Of course one tool we all use is CVS for source code control, and the IntelliJ/CVS integration is pretty sweet.

At the urging of co-workers I've started working with the IntelliJ IDE. Here's what I've learned so far about configuring line numbers, caret position, and configuring IntelliJ to work with Ant.

The fact that IntelliJ is off-the-shelf ready to work with Ant is a great, great feature. It's also simple to configure and use.

Assuming that you already know how to use Ant, and you have a build.xml file ready to go, just follow these steps to (a) configure your build script to run from within IntelliJ, and (b) run Ant:

Or, what to do when you want the caret here:

When I first fired up IntelliJ and started using it to edit a Java file, one of the first things I wanted to do was to be able to see line numbers within the file.

Configuring IntelliJ to show line numbers is a no-brainer. Here's how to do it:

  • Select Tools | IDE Options
  • Select Editor
  • In the Display group, click Show line numbers
  • When you're finished here, click OK

That's it. Do this and you're ready to go.


Weird human emotion: I find myself angry at Jim for dying. Sitting at a bar last night, a friend brought some pictures that included one with a group of us, including Jim. Of course in the picture we're all at a bar, smiling and raising our glasses to the camera. Every time I see a picture, hear his name, or walk by his office, I keep saying "Dammit Jim, why did you have to go?" I know it isn't anything he wanted to do, it just happened, but that's what my brain keeps saying.

The other day I was asked why I allow pop-up banners on this web site. Two reasons: first, the matter of economics; second, to encourage you to use the free, open source Mozilla browser.

Mozilla is very feature competitive with IE (even ahead in some areas), truly cross-platform, and also lets you control ad content better than any other browser, including pop-ups and pop-unders. I guess because it's not a "part of the operating system", it also doesn't seem to have all of those pesky patches and security problems.


Just returned from a short trip to the northern outskirts of Chicago, Illinois. Wow, can it rain.

On the computer side of life, have you ever found yourself needing a copy of the stuff (source code, etc.) in a CVS repository, without all the CVS admin files? Here's a quick tutorial on how to use the cvs export command.

Can I get a copy of the source code (without the repository)?

The other day someone not familiar with CVS asked if they could have a copy of the source code for the DDConnectionBroker project, an Open Source project from I said sure, I'd be glad to provide a copy of the source code, stripped of all the CVS directories/files. To do this, all I had to do was run the "cvs export" command.

One of my favorite Java subjects is code optimization and performance. Here I'd like to show you a couple of neat things you can learn with the javap -c command. This command lets you disassemble Java bytecode.

The first thing you need to have for this exercise is a little sample Java code. So in the examples below I create two test Java classes, appropriately named and Although it's not explicitly stated below, the steps I'm going to follow are these:

On Saturday, May 4, 2002, the day of the Kentucky Derby, Jim Kimmel, a friend and co-worker, passed away. He had a heart attack while doing something he loved, riding his bike with his friends. You are missed very much Jim.

So today is the big day, the fastest two minutes in sports, and I need to start cooking for the party. If the race doesn't interest you, maybe my Java and OO programming reading list might suit your style. Place your bets...

Alistair Cockburn has been a focus of my OO reading for a while. Find out why at his home page, and two other sites he has set up, and

I was scanning over a Java performance programming book the other night, and it reminded me about a javac compiler option I had forgotten about. The short story is that they suggest you can use this command:

Aah, case-insensitive searching is added, as well as some utilities to help search engines. Here's a table of PostgreSQL regular expressions.

Here’s a quick note about using Postgresql regular expressions and its regular expression syntax.

If you’re familiar with Unix and Perl regular expressions, these are very similar, so it’s an easy pickup, and a very powerful way to search for data in Postgres. Just use these regular expressions with SQL SELECT queries instead of the LIKE operator, and you’re ready to go.

Postgresql regex syntax

Here’s a little table of the Postgresql regular expression operators I have used:

For those in need, here's a step-by-step tutorial on asking a girl for a date.

On a more serious note (or not) the following link contains some nice interaction design patterns, or what we call "Web UI" design patterns. Kudos to Martijn van Welie; if I had to be Siskel and Ebert I woudn't disagree with much of anything here.

Here's a heart-warming story of a dog sharing her love on my birthday.

I started looking into making my “blog” software use case-insensitive searching. I thought that would make the “Search” facility for this site much more powerful.

The secret to Postgresql case-insensitive searching with SQL SELECT queries is to use regular expressions. If you’re used to standard Unix/POSIX regular expressions, the implementation is pretty easy as well. Instead of using the standard database LIKE operator, the solution is to use the Postgres ~* operator.