December 24, 2008
Updating RubyGems broke the gem command
I ran:
gem update --system
The result was that the next time I tried to execute the gem command I got the following:
C:\>gem
The filename, directory name, or volume label syntax is incorrect.
I found that the gem.bat file had been changed and there was an extra double-quote on two lines.
@"ruby.exe"" "c:/Program Files/ruby/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
And
@"ruby.exe"" "%~dpn0" %*
In both these cases, where there were two juxtaposed double-quotes (two double-quotes in a row), I had to remove one of the double quotes. Yielding:
@"ruby.exe" "c:/Program Files/ruby/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
And
@"ruby.exe" "%~dpn0" %*
Problem was solved. I found a comment on the RubyGems forum that agreed with my fix.
December 09, 2008
Using patches to manage bug change-sets
In the Package Explorer, select Team | Create Patch...

You can then Override and Update to return the workspace to a state corresponding to the CVS repository.
Later, you can Apply Patch.. from the Team submenu, select the patch file you previously exported. Voila, your changes are back.
October 14, 2008
Identifying the source of a java Class
Class.forName("com.foo.MyClass")
.getProtectionDomain().getCodeSource()
October 13, 2008
Setting up Websphere for a remote debugger
Jacoozi: Remote Debugging with Eclipse
IBM Documentation -- another method, i have not tried.
Basically:
In the websphere administration console, go to a server's configuration and set it up.
October 07, 2008
Getting DB2 Error Code information
Start the DB2 Command Line Processor (CLP).
For SQLCODE -551 you type: "? sql551"
For SQLSTATE 56098: "? 56098"
May 27, 2008
Bugzilla Comments are mostly plain text, so don't use HTML
I wanted to do something like
<pre>
... some code ...
</pre>
for the sake of readability.
Well, I found out that doing so will just result in those tags showing up in the comment.
But bugzilla will try to create some hyperlinks for things in comments. See the Hints and Tips page of the bugzilla manual for more information.
March 19, 2008
ILog JRules BOM Update is trying to remove classes that I need!
Yesterday, when I did my normal procedure for this, the Update BOM option on a BOM Entry tried to remove a bunch of classes that I needed in the BOM.
I didn't know why. So I experimented. I created a brand new BOM Entry and tried to add the classes that JRules wanted to remove from the real BOM Entry. It threw an error. I tried to add some classes that were direct dependencies of the first, and they had the same problem.
I tried to think what had changed that these classes suddenly couldn't be in the BOM. Then I remembered that we had recently changed the base class to use Log4J. Log4J isn't part of the XOM. So maybe the BOM can't use a class if it doesn't have a access to to the classes dependencies. So, I tried adding a Log4J jar to the XOM project. After doing that, the classes from the XOM that had become dependent upon Log4J stayed in the BOM. The next time I tried to update the BOM, those classes remained in the BOM.
March 03, 2008
Deferred Constraints
In the Oracle DB, you can define a constraint as deferable. You can then make the constraint check fire at commit. It turns out, according to the DB people at my employer, that DB2 by IBM cannot. We have a table where rows can reference each other.
For example:
CREATE TABLE SELF_REFERENCE_EXAMPLE(
pk unsigned long;
...
another_row_pk;
CONSTRAINT FOREIGN KEY examplefk REFERENCES SELF_REFERENCE_EXAMPLE (pk);
);
And suppose we had a table like this.
pk |... |another_row_pk
=============================================
101 ... 208
208 101
Now, if we needed to move these rows to a history table, we can't move either because the other referenced row will not be in the history table.
In oracle we could make the history table fk constraint deferred and insert both rows. The fk constraint will be checked at commit, so there is not fk violation.
DB2 won't let us do the constraint deferral trick. So we have to do something like
insert 101 into the history table without its reference to 208.
insert 208 without its reference to 101.
update both rows with their respective references.
commit.
February 12, 2008
I really don't like ILog JRules
There is an eclipse-based IDE called ILog Rule Studio. It works somewhat, but builds are slow and you can't use the most recent jvm.
It is restricted to Java 1.4 and Java 5. If you use anything more current, some features of the ILog plug-ins won't work. Ruleset or RuleApp exports did not work until I installed the latest 1.5 JDK.
To use JRules you go through a process of "verbalization". You associate, hopefully, understandable English phases with java code. But doing a verbalization is painfully slow. When you verbalize, the save operation takes an amazing amount of time. I would say 10-30 seconds.
February 06, 2008
OpenLDAP wouldn't start. Here's how I fixed it.
Yesterday, a power outage brought my computer at work crashing down. When I tried to get my development environment going again, I couldn't interact with my local OpenLDAP server.
The slapd.exe process would essentially hang. I killed the process, and started it from the command line:
$ slapd -d -1
This showed that the process was hanging after loading a file in the data directory.
So I zipped up (zip file) the data directory. and then deleted the contents. Now, it would start up.
But there are no entries in the directory now. So I import an ldif file and, Voila!, I'm back in business.