« March 2005 | Main | May 2005 »

April 26, 2005

Optical Illusions

Here are some neat animated optical illusions. You may not have all the plug-ins to run all of these, but you should be able to see most of them. The snake image on about the third page is really neat.

Of course these are ripe for parody by optical realities.


April 20, 2005

New Computer

I decided to go on a 4-year cycle for replacing my home computer. I bought my first desktop computer (my first computer was a Powerbook 100 in 1991) in 1996. It was replaced in 2000. So I was due for a new computer last year, but I decided it was working pretty well and I could wait (I almost replaced it when Susan gave me the iPod because I didn't want to pay retail for a Windows upgrade that I needed). But since June last year, I've been pricing computers at Dell. I wanted a DVD writer, support for two monitors, 80 gigabyte hard drive, and 512 MB of memory. I also wanted to get another 17-inch monitor, preferably a flat panel, though that wasn't mandatory.

I started checking the price of that system from Dell and going back every month or two to see how it had changed. Surprisingly, it stayed almost level from June 2004 to March 2005. Part of it had to be the falling value of the dollar during that time, but also Intel hasn't released any new processors in that time (driving down prices of older ones) and RAM prices have been going up.

Susan found a really good deal from Dell yesterday and I went ahead and got the system with some good upgrades: 1 GB of RAM, 160 GB hard drive, plus the flat panel monitor (which had been a free upgrade some months) and it still came out a little cheaper. Not sure why the big drop in price now. Maybe they're worried about the avalanche of press for Apple's latest operating system?

I had thought about getting a notebook but decided against it. Also I briefly considered a Mac mini, but I need to be compatible with work and I still don't think Office on the Mac has Access, which I use a lot.

New Palm Program

A year or two ago I was trying to learn to write programs for the Palm. I tried this when I first got the Palm and quickly realized that the Palm was very difficult for a non-programmer to write for without spending a bunch of money on development software. But they had a free C compiler and other tools which I made almost no progress on.

Later I got a book on the Palm that had a trial version of some development software. This made things a lot easier, but the trial version didn't let you write anything complex. Later still I downloaded another development package called CASLsoft. With one of those two programs I wrote a Vertical Curve program that I have had ever since (but I lost the source code). That's a good program for me to write when I'm learning because it has a couple of variables and IF-THEN's and needs input and output.

Last week I decided to make VCurve 1.0 available on Palm Gear. I already had a developer account from when I wrote MemoParser 1.0, so it was easy to do. So far 47 people have downloaded it.

Palm Gear VCurve Home

VCurve home on my web site

April 5, 2005

The Second Day in Court

My trial was today (read about my arraignment in February) at 5:00 PM. At least this time I didn't miss but a quarter day of work. I arrived at traffic court a few minutes early and found which courtroom I was supposed to be in. People were scattered but there were people in every pew. I picked one that had an older guy at the end and stepped around him. The guy in the pew in front had his tattooed arm up on the back of his pew and it was kind of in my way so I said "excuse me" and nudged his arm out of the way. He seemed to take offense and said something to me, but you have to stand your ground early here or nobody will respect you.

At 5:00 a woman walks in and asks people to raise their hands if they are pleading guilty or nolo. Somebody asks her what that is and she explains, then adds that if you got a ticket for no insurance and you can't prove that you had insurance that the only way to keep your license is to plead nolo. Then she hands out forms to the people with their hands raised. One of the bailiffs tells people with hats on to remove them. One guy has a stocking on his head and the bailiff makes him remove that. No hats in court.

Then she asks for a show of hands from people pleading not guilty and hands out a different form (amazingly, a handful of people don't raise their hands for either). If you plea not guilty today you are waiving your right to a jury trial. There are all kinds of disclaimers on the form saying how crazy you are to do this (and no benefit is apparent). They say how you won't know about all your rights or how to call witnesses and lawyer would. It was like an advertisement for lawyers. One worrying thing is that you acknowledge the penalties that can be incurred, including jail time. I have not been made aware of any penalties, but I signed the form anyway.

At 5:15 she "calls the calendar" and reads everyone's names whereupon they call out their plea. Still, some people say "here" and one guy tried to ask a question (he was cut off and pled nolo). Having a C last name I figure maybe I'll be one of the first but there are a couple of A's before they call out B after B (not entirely in order). It turns out the court is A-C and I'm about two-thirds of the way to the end. All during this time people are filtering in late and having to be told about the forms and so forth.

At 5:35 the judge walks in and meets quietly up front with someone who brought a lawyer. After that he addresses everyone and tells about nolo and that it is such a nice plea that you only get to use it every five years. He also points out that if you have a misdemeanor drug charge and plead guilty it won't go on your record ("so you can run for judge someday" he says, but I'm thinking "or for President").

He calls the first name and dismisses the guy in about twenty seconds. The next guy goes just as fast. I'm not close enough to hear what they are saying, but it seems like it can't be much more than Hello. It soon is clear that these people are the ones that pled guilty or nolo. In court the guilty are always given better service than the innocent because the guilty are the ones that pay the bills. At some point three prisoners in orange jumpsuits are led in and seated in the first row (the people already in that row are asked to move and do so quickly). They have to wait their turn like everyone else, but two plead guilty and are led out afterwards.

At about 6:10 the trials start. For about the first three the judge says the police officer asked to reduce the charge to a warning and they are told they can leave. Then a 98 year old man is called up with his family. I don't know what the charge was but the judge indicated the man's age and everyone clapped. The old man showed his license and was eventually led off by his family.

A Clark Atlanta student pled not guilty on all three of her counts but the policeman is there to say she was speeding. She was arrested after she failed to produce a Georgia license and the computer said she had been denied a Georgia license. But apparently she was from New York and had a valid New York license. The judge was unsympathetic and said she lives in Georgia more than New York now and needs to get her record cleared so she can get a Georgia driver's license (I never got a Tennessee license at Vanderbilt though, so I have to disagree). Anyway, he dropped the other two charges and reduced the fine on the speeding.

Next the same police officer (they seem to do all of a particular cop's charges at one time and this guy isn't the one that gave me my ticket) says he was doing security at a junkyard when someone tells him that their car had been run into. There was no damage but the person thinks the person was drunk and then points out the accused who has just purchased a used windshield. The cop says the accused was staggering and slurring his words like he was drunk. The policeman said he was going to just send the guy home with a warning but the man didn't have anyone to drive him home and the cop knew the guy would just drive home. So he had him arrested for public intoxication and had his car impounded. In his defense, the guy said that while he was removing a windshield from one of the junk cars there he heard hissing and became lightheaded and had a hard time walking. He also said he had a medical problem and brought a medical book that described it. Despite the alleged chemical and his medical condition, he was found guilty but given a reduced fine.

Then a guy got a ticket for speeding in a parking lot where the same cop (again) was providing security and for parking in a fire lane while he was picking up some stuff for one of the shops at the mall. It certainly wasn't going his way when, at 6:50 a guy walks in and calls a list of names of people who are to go in the other courtroom where things were going faster I guess.

In the other courtroom, I caught the tail end of a case that must have involved a collision. The accused had a couple of charges dropped and wound up having to pay a $200 fine. But the witness that had also been involved in the accident was upset that this was less than the fine he had to pay for whatever he did. The judge reminded him that she had no control over his trial and he was just a witness at this one. He got mad and left the courtroom muttering. The judge called him back as he was walking out the door but he kept moving out. A deputy and a police officer ran after him and brought him back, then carried him off somewhere. There is no muttering allowed in the courtroom.

At this point it is 7:00 and the judge tells us a list of names will be read and all of those people are having their charges dismissed. I'm not optimistic, but I don't recognize any of the police officers as being the one that gave me a ticket either. She calls about 10 names, telling the people to hurry and turn in their signed forms before she changes her mind. People move quickly. She calls my name and I hurry up to the front and turn in my form. I stand around to make sure they don't send cops after me when I leave and slowly head out the door. No one stops me. Free at last! And I never once talked directly to a judge or showed anyone my pictures (or the diagram I had made at Susan's recommendation). I guess I was let off for time served: two hours (plus the previous two visits).

Maybe the end justifies the means, and I can't complain since the charges were dismissed. But it seems like the whole court system is set up to reward people who show up and play the game. All of the people were given reduced sentences or warnings. Meanwhile, I feel like I was pretty much innocent and yet had to miss 10 hours of work to go to court three times.

April 4, 2005


For the website I did for the Sidney Lanier Bridge, I created two animated .gif images, one for a construction sequence, and the other for the tower crane (at the bottom of the page). These were pretty simple but I learned some of the basics of animated .gif images when I made them. An animated .gif is a series of .gif images compiled to run one after the other. To get smooth motion you can make each frame last a certain length of time in hundreths of seconds, but it gets cumbersome making so many frames. If you want, you can make each frame last different numbers of seconds. You can also have the animation loop a set number of times or forever. It's interesting, but I don't have much of a reason to do animated .gifs very often.

Recently on the web page at work I added a page where I list projects that have been completed and handed off to Construction to build. This is the "Under Construction" web page. It wasn't hard to find an image of a traffic barrel since so many web pages say they are "under construction" (what good web page isn't *always* under construction?). But the image was animated with an obnoxious blinking light on it. I wanted to have a whole row of these barrels and having them all blinking in unison was annoying. So I stripped out one frame of the animated .gif, reduced the colors down to 16 instead of 256 to save file size, made the background transparent, and wound up with an image that was only 1 kb:


At some point it occurred to me that I could change the timing of the flashing and have the row of barrels flash out of phase with each other (like in real life). Each barrel would have to be a separate animated .gif with a different number of hundreths of seconds for how long it was off, but otherwise identical. I fired up Lview Pro, the graphics program I've been using since I started doing web pages, and came up with 8 different images. One image remained static, representing a barrel whose flasher doesn't work anymore (like in real life).


By making a whole row of these with different timing, they are all out of sequence.

You can further reduce the file size if one frame is mostly the same as the preceding frame. If only one part of the picture is moving (in this case, just the light) then the next frame only needs to show that area where the changes take place. By doing this I was able to get the size of the tower crane and construction sequence way down, but I didn't think it would matter much for this graphic (each barrel consists of 6 frames and is only 3 kb), though I might do that later. LView isn't helpful with optimization and I don't want to go find the optimizer program I used before, though I would bet it would get it back to 1 k.