Category Archives: General

My NEW Favorite Quote

The Illini Secular Student Alliance responds to the notorious Brother Jed …

We will oppose your hate and venom with love and laughter, and we will win

Brother Jed is a frequent visitor to many college campuses where he preaches fire & brimstone to students on the public areas.

I actually saw Jed when I was attending (albeit briefly) Illinois State University back in the mid 80’s.

His strategy was pretty simple … if you weren’t as devout as he was (and nobody is, of course), you were going to hell.  He simply yelled and screamed the same mantra ad nauseam.

In my opinion, Brother Jed has a serious psychiatric problem that needs treatment.  But I pretty much think the same about most religious extremists.

You can find more information about Brother Jed on Wikipedia.

Modifying the Environment

Here’s a problem I just encountered … and, unfortunately, haven’t figured out a solution.

A customer is trying to run my Eclipse RCP application … but it’s crashing because it can’t find ‘com.mercury.javashared.agentloader.AgentBootstrap’ class (which is apparently part of the HP QuickTest Professional product).

Turns out they had the ‘JAVA_TOOL_OPTIONS’ environment variable set to ‘-agentlib:jvmhook’ at the system level (set in the Windows control panel).

This was causing the boot loader to try and load the class that couldn’t be found.

A temporary work around is to set the JAVA_TOOL_OPTIONS environment variable to blank every time they launch the application … but that’s a major pain in the long term.

I’d like to fix this by finding a way to override the JAVA_TOOL_OPTIONS environment variable in the eclipse.ini file, or possibly providing a different ‘-agentlib’ parameter option that will supersede the existing value.

I guess I could provide a batch file that clears the environment variable before invoking the application … but that’s kind of kludgy (IMO).

Of course, any product that sets a global environment variable such as this is (at least in my opinion) seriously broken.  The only global environment variable that any application should set (or even be allowed to set) is maybe the path.

Inheritance

One my gripes about the Eclipse framework is the general lack of standardized interfaces & inheritance.

For instance: a TreeColumn & TableColumn both have a lot of attributes in common … width, alignment, movability, sortability, resizeability, etc.

But since they don’t share an interface or a common ancestor, you can’t handle them with common code.

Similarly widgets like the ComboBox and a Text field share a lot of attributes … they can hold text, they can be changed, etc, but you can’t access those attributes with a common interface.

Sadly most Eclipse widgets explicitly forbid subclassing … so I can’t subclass the various types and add my own interfaces. The following is a direct quote from the TableColumn javadocs …

IMPORTANT: This class is not intended to be subclassed.

And, unfortunately, they enforce this in code.

Preventing Multiple Instances

One of the things I needed to support in my RCP is the ability to prevent multiple copies (instances) of the application from running at the same time.

The solution is surprisingly easy … although, as with many things, not especially well documented.

In your Application class (that implements IApplication) you need to create a lock file in the application’s instance location.
Continue reading

Help Icon on Dialog Pages

Another item I struggled with … adding the help icon to various dialogs (wizards, preferences, properties, about box, etc).

In almost all Eclipse dialogs … there is a question mark icon in the lower left hand corner. You click on this and it invokes the context sensitive help.

The problem was, I couldn’t figure out how to activate this.

I thought it would be controlled by some plug-in or product setting, but I couldn’t determine where.

After a fair bit of digging & debugging of base Eclipse, I determined that this feature is turned on globally for the entire application:

Continue reading

New Blog

I’m in the process of building a new application at work … this is a thick client application that is using the Eclipse RCP framework.

This blog is going to be a place where I stash notes, tips & tricks, and complaints about the Eclipse framework.

Yahoo SMTP Deferrals

As I mentioned before … even though I’m participating in Yahoo’s Email Complaint Feedback Loop, I’m still getting deferrals when trying to deliver mail to Yahoo’s mail servers.   I’ve gotten a few complaints, but not nearly enough to really justify having mail delivery deferred.

I think I’ve figured out a bit more about why Yahoo’s mail servers are deferring some of the mail my servers try to deliver to them.

Continue reading

Nimoy supports Obama

I’ve always thought that Leonard Nimoy and I had a fair bit in common … and I can add another item to the list …

  • He was raised Jewish, but seems to have lost religion … check
  • He’s a photographer … I’m a shutter bug
  • He’s a great actor … I’m … well … ok, maybe not so much in that area
  • And now it appears that he supports Barack Obama for president!

Ginny pointed me to the latest “In Character” piece on NRP that highlights Mr. Spock. Pretty cool article … although I have to wait another hour to actually hear it.

David’s IPO

I’m planning on going to the health club today after work … but before I leave, I wanted to make sure my IPOD had the latest podcasts on it.

When I plugged the IPOD into my laptop I was informed that it had a very low battery … must have been from sitting around in my back pack with the lock switch off.

Anyways, I get it synced up to the laptop … but I want to let it keep charging. So I plugged it into my desktop system here at work. Because I don’t have the iTunes software installed, the IPOD just shows up as a USB drive. But it’s assigned to drive D:. And the volume name is “DAVID’S IPO” … so it shows up as “DAVID’S IPO (D:)”.

Kind of apropos, don’t you think?

Ok, yes, I’m easily amused.