Elvis is sick

Elvis had to go to the vet today. He was making messes on the floor when he did not make to his box in time. The vet evaluated his stool and gave him a pill for spirochetes. He seems a bit better this afternoon.

Eclipse

Finally got around to looking at Eclipse as an IDE for Java. I had tried it about a year ago with much aggravation over heap size. Trying it with Ubuntu 7.4 did not work because Eclipse said that the pointer to Java did not have a valid executable. I have been using Sun

Java  version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)

and the SDK at the same level.

With Ubuntu, the trick is to get Eclipse to look at the right version of Java. The key to the trick is update-java-alternatives. For more detail on update-java-alternatives, do the man page (man update-java-alternatives):

myid@mypc:~/Projects/eclipse$ man update-java-alternatives
Reformatting update-java-alternatives(8), please wait...

The basic idea is to first list the java versions available on your system:

update-java-alternatives -l

Then to pick one and bring the Ubuntu world into alignment with the desired Java world. The way to do this is:

update-java-alternatives -v -s your-desired-java

from the list just displayed. Omit the -v if you hate gory details.

It goes something like this:

my-id@my-pc:~/Projects/eclipse$ update-java-alternatives -l
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-gcj 1041 /usr/lib/jvm/java-gcj
my-id@my-pc:~/Projects/eclipse$ update-java-alternatives -v -s java-1.5.0-sun
update-java-alternatives: no root privileges
my-id@my-pc:~/Projects/eclipse$ sudo update-java-alternatives -v -s java-1.5.0-sun
Password:
resetting java alternatives
Using `/usr/lib/jvm/java-1.5.0-sun/bin/appletviewer' to provide `appletviewer'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/apt' to provide `apt'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/extcheck' to provide `extcheck'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/HtmlConverter' to provide `HtmlConverter'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/idlj' to provide `idlj'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jarsigner' to provide `jarsigner'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jar' to provide `jar'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/javac' to provide `javac'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/javadoc' to provide `javadoc'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/javah' to provide `javah'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/javap' to provide `javap'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/java-rmi.cgi' to provide `java-rmi.cgi'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jconsole' to provide `jconsole'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jdb' to provide `jdb'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jinfo' to provide `jinfo'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jmap' to provide `jmap'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jps' to provide `jps'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jsadebugd' to provide `jsadebugd'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jstack' to provide `jstack'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jstatd' to provide `jstatd'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/jstat' to provide `jstat'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/native2ascii' to provide `native2ascii'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/rmic' to provide `rmic'.
Using `/usr/lib/jvm/java-1.5.0-sun/bin/serialver' to provide `serialver'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/ControlPanel' to provide `ControlPanel'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java' to provide `java'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java_vm' to provide `java_vm'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/javaws' to provide `javaws'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/keytool' to provide `keytool'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/orbd' to provide `orbd'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/pack200' to provide `pack200'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/policytool' to provide `policytool'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/rmid' to provide `rmid'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/rmiregistry' to provide `rmiregistry'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/servertool' to provide `servertool'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/tnameserv' to provide `tnameserv'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/unpack200' to provide `unpack200'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so' to provide `firefox-javaplugin.so'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so' to provide `iceape-javaplugin.so'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so' to provide `iceweasel-javaplugin.so'.
Using `/usr/lib/jvm/java-1.5.0-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so' to provide `mozilla-javaplugin.so'.
my-id@my-pc:~/Projects/eclipse$

And even though the Eclipse pages say that Eclipse does not look at JAVA_HOME it does seem to care:

my-id@my-pc:~/Projects/eclipse$ eclipse
using specified vm: /usr/java/j2sdk1.4.2
my-id@my-pc:~/Projects/eclipse$ update-java-alternatives -l
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-gcj 1041 /usr/lib/jvm/java-gcj
my-id@my-pc:~/Projects/eclipse$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
my-id@my-pc:~/Projects/eclipse$ eclipse
using specified vm: /usr/lib/jvm/java-1.5.0-sun
Could not create /usr/local/lib/eclipse/.eclipseextension. Please run as root:
touch /usr/local/lib/eclipse/.eclipseextension
chmod 2775 /usr/local/lib/eclipse/.eclipseextension
chown root:staff /usr/local/lib/eclipse/.eclipseextension

Did I mention that your first run of Eclipse should be as a root id so that it can create /usr/local/lib/eclipse/.eclipseextension

my-id@my-pc:~/Projects/eclipse$ sudo eclipse
Password:
using specified vm: /usr/lib/jvm/java-1.5.0-sun
cbcalvin@natalie:~/Projects/eclipse$ eclipse
using specified vm: /usr/lib/jvm/java-1.5.0-sun
Mar 15, 2008 5:20:27 PM org.apache.catalina.startup.Embedded start
INFO: Starting tomcat server
Mar 15, 2008 5:20:27 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5
Mar 15, 2008 5:20:27 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Mar 15, 2008 5:20:28 PM org.apache.catalina.loader.WebappLoader start
INFO: Dual registration of jndi stream handler: factory already defined
Mar 15, 2008 5:20:28 PM org.apache.catalina.loader.WebappLoader setClassPath
INFO: Unknown loader org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@1087be0 class org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader
Mar 15, 2008 5:20:29 PM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-127.0.0.1-49371
Mar 15, 2008 5:20:29 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-127.0.0.1-49371
cbcalvin@natalie:~/Projects/eclipse$ eclipse
using specified vm: /usr/lib/jvm/java-1.5.0-sun

After doing these things, Eclipse seems to work fine if a bit sluggish from a lack of memory. I will probably provide some more on this topic later.

Car Lights

A neighbor followed my wife into the neighborhood a few nights ago. Actually he was driving a car following her car as she drove into the neighborhood. He saw that some of her lights were out and should be replaced.

My son pointed out that unless you have someone walk around your car regularly while you signal and tap the brake, you never really know what lights are working.

So Phillip and I did a light check on each of the cars and made a list. I took the list to — and got $28 worth of bulbs. Then I spent the afternoon replacing bulbs.

First the Buick – The Buick has a lighted trim strip in the back. What appeared to be 1 light out on the left was actually 3 – 2 bulbs on the left and one on the right. The bulbs are inside an assembly that is held on with 6 wing nuts. These nuts are a neat design that you can use a socket wrench on with an electric screw driver but you can get them off by hand. This job would have been straight forward except for the broken bulb that crunched when I tried to turn it. Careful work with a soft-jaw plier did the trick. The other bulb was one of two high brake lights. These are easy to reach from inside the trunk.

Then the Cavalier – Two high brake lights out. Again easy to reach. The right turn signal light requires removal of the entire headlight assembly. Remove the bulb holder, change the bulb, and put it all back.

Then my Olds Cutlass Cruiser – The problem here is that the dashboard light was out on the left side. This kept the engine temp gauge in the dark. I am a bit paranoid about the engine temp since a bit of overheat cost be about $1200 a couple of years ago. Getting at the bulbs requires removing all of the dashboard trim (6 screws), the instrument cluster (4 screws) only to find that the bulbs that the store computer called out were just the bulb. For the dashboard, you need a special assembly of the bulb and its mounting plate. I re-arranged the bulbs so now the dark part of the dashboard is from 60-120 MPH. Not a part of the speedometer that I use a lot.

Elvis

It has been quite a while since I have written about Elvis. He is still very much a part of our lives. He is our only permanently indoor cat. He has take over my daughter’s room since she is off at college. Since he is completely blind (we think), it is remarkable that he finds his way around the room. My daughter’s American Girl dolls sit atop their bunk beds under the window. Elvis finds his way up there to sit in the sun beam when he wants to. He comes down and uses the litter box (there are two in diagonally opposite corners) and to find his food. His feeding station has a bowl for half a can of wet food twice per day. Two flavors of crunchy food in an oval bowl and a deep large water bowl.

Elvis walks outside every day that it is not too cold, windy or wet. He used to follow a tapping or dragging stick but something has changed and he is not too good at that anymore. My wife wears flip-flops when she takes him. But since she is out of town, I have been trying to get him to follow my shoes with mixed results. He likes to walk in the gutter next to the curbing. This slight trough keeps him in line until he wanders off in an odd direction. Each time the ground changes texture, he stops to sharpen his claws (leave a paw mark). Whether he can smell those or it is just to let other know he stopped by I do not know. He had a possible stroke in December but seems mostly recovered. Sometimes he walks in a small circle in his room. That might just be because he needs to walk. He is always affectionate when he gets pats or is being held. He is a sweet old cat.