Headliner

There is a sign posted on a power pole on a road that I travel. It says “Do you need a headliner replaced?” with a telephone number. I suppose I should call the number to find out if the person behind the advertising is a repairer of automotive interiors or an aspiring entertainer.

Michael Masley

One of the CD’s that I just took off the player is by Michael Masley. I think that I bought this one near the corner of Jefferson and Hyde in San Francisco in 1999 when I was there for a SHARE conference. I guess that Michael Masley is still going strong as attested by his own web site and the number of Google entries. But most especially by the Wikipedia article. A very intense, dedicated, talented and interesting fellow. He played on the street outside Mac Expo in January.

Cat Bed

I have made a number of beds for the cats. This is a fairly quick and simple project. You need a table saw or a router with a 1/4 inch cutter that will cut to 3/8 inch depth.

I noticed that the cats liked cardboard and corrugated boxes and box lids of a certain size. This is the size that I made the box out of wood. The sides are a little higher than the preferred lids but my wife makes Polar Fleece “puffs” to fill the bottom and the cats seem to like them.

The first box lid that the cats liked was the tray that came in the citrus fruit from Florida. This tray had doubled sides and seemed to be a particular favorite of the cats and so became the model for size and proportion. This one is 16 by 10 1/2 inside. This makes the length 17 1/2 and the width 12 inches.

The basic idea is simple. Four sides and a bottom. The bottom is fairly fixed. It is 1/4 inch plywood. The sides give lots of options.

The first option is the choice of material. Pine, oak, and cedar are good choices. Pine is inexpensive and easy to find and work with. Oak is pricey and pretty. Oak looks good indoors and ages gracefully outdoors. Cedar is rot resistant and can be pretty. Not too expensive but cedar splits easily if the corner screws are over tightened. The height can by the 5 1/2 inch width of 1 by 6 or the 7 1/2 inch width of 1 by 8. And a couple that we have are from 1 by 4. Of course the 1 by is 3/4 inch thick.

The box construction is straight-forward. A rectangle with the long sides (length) overlapping the ends (width). The bottom is set in a groove around the bottom. The groove is 3/8 inch deep in the 3/4 inch thick sides. Cut the plywood about 5/8 inch wider than the width and 7/8 inch shorter than the length.

For the box above, this would be 2 pieces 17 1/2 inches and 2 pieces 10 1/2 inches. The bottom is 16 5/8 by 11 1/8.

NOTE: Follow all general and specific safety instructions for the tools you use.

Cut the side and ends to length. Set the saw blade (or router cutter) height to 3/8 inch above the table and remove the splitter so that you can dado a grove. Be very careful if this leaves the blade unguarded. Check the height with a piece of scrap and adjust it until it is just the right height. If you are using a router, you and your router may be happier and your cutter may last longer if you make several passes increasing the depth until the final depth is reached.

Set the fence so the close edge of the blade is 3/8 from the fence. Carefully make a pass through each piece. If you are using a 1/8 inch saw blade go on to the next step. If you are using a 1/4 inch router cutter, skip the next step.

Reset the fence so that the far edge of the blade is 5/8 from the fence and just a scosch more. Test it with the scrap. Try the plywood bottom for fit in the slot. If it is loose, move the fence closer. If tight, move the fence a bit farther way. When adjusted, make sure that you hold the previously cut edge toward the fence and carefully make a pass through each piece. When you have cut both sides, you may need to clean out the bottom of the groove with a 1/4 inch chisel.
You now have a 1/4 inch groove in all 4 pieces.

Trial fit the sides and ends against the plywood. The plywood should fully close the bottom. The sides should mate up tightly against ends.

Drill and countersink a hole in each side 1 1/4 inch from the bottom and another 1 inch from the top. IMPORTANT: Assemble with brass screws. Steel screws and galvanized screws will leave stains on the wood. Brass screws will turn a pretty verdigris if they do anything.

Line with a blanket made from Polar Fleece. Make sure that there are several thicknesses and that the ends and sides of the liner extend beyond the wooden sides.

Adah

Adah has become a bit of a frustration as she does not want to go outside. Even when she goes out, she “pees” on the rag rug on the garage step. Or else she uses a clean catbox inside. Between Elvis, Adah, and Tabbie, there are about 10 boxes per day on a rainy day. So today was a clear, warm day. Adah was to spend the day outside. I was working on my car. She likes to come inside the peaceful interior of the Oldsmobile Cutlass Cruiser. Her little gray exterior goes so well with the the Cruiser’s gray interior. So she was there in the backseat while I working under the dashboard in the front seat.

Self Assessment

Here is another tax idea. Real estate taxes are based on a “fair market value” assigned by a person who is an alleged expert in assessment. As a result, the fair market values are completely unrelated to the actual market value and completely unrelated to the “recently sold in your neighborhood” value. As a result, I (and you) pay much more (or much less) real estate tax than is proper. I have little faith in the government determining what is “fair”.

The new idea is that the owner of the property sets the value, not some government functionary or contractor. The basis of the idea is that the owner is the one best qualified to estimate the “real market price” of a particular property. The owner of the property would set a “public offering price”, file a report with the taxing authority (city or county) and that would be the basis for all real estate taxes.

Wait! I hear you cry. Joe down the street would say his house was only worth $10,000 and his taxes would be a pittance. Ah I say, that is why you need to understand that it is a Public Offering Price. When the value is declared, you are saying “If you pay me this price, I will sell it to you”. There is a TV show that sort of does this. With the self-assessment idea, everybody does it. Beg or borrow $10,000 and buy Joe’s quarter-million dollar mansion. He can’t refuse if you’ve met his price. Re-sell it and pocket the $240,000 (minus the transfer tax), move up, or rent it out to Joe who still needs a place to live.

“But I don’t want to move” – Build in enough “profit”, “excess”, “value added”, whatever to discourage people who do not want your house but see it as a good investment. Sorry but you will have to pay taxes on this additional value. But should you not? To you it is real value. Besides, everyone else will be doing the same thing (recognizing the real value) so the rates will be lower. The county will still collect the same amount of taxes, it is just that the distribution will be owner determined, not arbitrary.

“Businesses will not pay their fair share” – Most businesses are expensive to move. They are also good at determining costs. They will use a sharp pencil to make sure that that “location, location, location” is not bought out from under them.

Did I mention that part. Public Offering Price means just that. If you get a valid offer to buy, you must sell at that price. Well maybe not. If you decide that you have previously made a mistake in valuation, you can declare a higher value now. When you file the higher value, just pay the taxes on the difference for this year and the last 3 years. Simple.

Eminent Domain? No problem. The price is set. The you and the government agreed on the correct price when the government accepted the taxes. They cannot pay you less.

“The market won’t pay my price and I need to sell.” No problem, sell at any price you like. The selling price becomes the default value until another POP is declared. Sorry, no refunds on taxes. Buyer, make sure you do not get caught with a market clearing price. Declare the margin that made you see it as a good deal, file, and pay that tax promptly.

Real Estate Agents and Assessors out of work? Hardly. The Agents still can advise on proper pricing, facilitate sales and all the things they do. Assessors can still work but they will have to be a bit more accurate that they are today. No more “drive by” assessments. And banks are not going to be wanting to write a mortgage on an incorrectly valued property.

So talk up self assessment when your County Council Election comes up. You may have to wake up your state legislature as well. They will all tell you dozens of reasons why it can’t be done. Now they have control. With self assessment, you begin to take it back.

Hillard Goes to the Doctor

Now it is Hillard who gets to see the doctor. He had a bite on his paw from some overnight conflict. He will have 10 days of 1.5 ml of cephadroxil as Cefa-drops. He is pretty easy to medicate with the supplied syringe. I put it in the corner of his mouth, get him to unclench his teeth and squirt as 2 small shots.

Reviving the Hammond

I have a Hammond organ. I have had it since my dad moved it from his garage to my house in Connecticut. Before that it had been in my grandparents house. I used to play it occasionally in Connecticut as did my wife. But since we have lived here, it has been played maybe once. My wife re-arranged the room that it is in about 8 years ago and the speaker cable got disconnected and it has not been powered on in all that time.

Tonight, my son, 17, decided that it needed to be played. We had tried it a couple of weeks ago and knew that it was stuck. The oil had dried out and it was not turning when the start switch was on. Tonight when his friend was here, they picked it up and moved it out a bit from the wall. I took the back off and loosened up the rotor shaft. The start switch would get it to turn but it would not run. I got some light oil and put it in the oil cups. It dripped down the tubes and into the wicks. Still no go. We went and did something else for about half-an-hour. Now it ran but the bearing was still a bit noisy. After a minute of playing, it settled down and was quiet. Phillip played it for about an hour trying various combinations of drawbar settings. Quite exciting. This little bit of machinery and electronics was made sometime between 1935 and 1940. The predecessor of the Hammond B-3. We need to make sure that we play it often and that we oil it with the proper Hammond Oil next time.

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.