Saturday, October 24, 2009

Coupon

Here's a coupon, good for a 17% discount on all the gas you ever buy. It's good at every gas station on Earth. It's quite convenient. You don't have to show it to the gas station attendant. Since you keep it, you can reuse it forever. And you can use it even if you pay at the pump with a credit card. Did i mention that it's good for 17%? The coupon is free. Here it is:

But, i'm willing to bet that you won't use it. Here's how it works. Here in Michigan, the speed limit is 70 MPH (112 KPH). It's legal to drive at 62 MPH (100 KPH), but what people do is drive 75 or 80 (120 to 130 KPH), risking a speeding ticket. But i drive at 62 MPH. That's because there's a handy 100 KPH marking on my speedometer pointing straight up. And, my measurements show that the difference in fuel economy between driving at 70 MPH and 62 MPH is 17%. I ran these tests on four very different cars.

But you may find that you can't do it. There's a problem of the very worst kind. It's psychological. Despite the fact that in Michigan, trucks are never allowed to exceed 60 MPH, if you drive at 62, everyone passes you. I pass someone on the highway about once a month or less. So what i mean is, everyone passes you. And most people can't stand it. I drive my passengers crazy. You'll think that the other guy is "getting" something that you're not. They are. A higher gas bill.

My commute is 43 miles each way. It's almost all on the highway. If i could go 70 MPH, it would take 36.9 minutes to get to work. And at 62 MPH, it would take 41.6 minutes. So, 62 MPH is 4.7 minutes slower, right? Wrong. My record time is 56 minutes. I think of it as an hour, or an hour and a half if traffic is bad. But what i really mean is that traffic is always bad. But sometimes it's horrendous. So you might think that it takes five minutes longer, but the effect is not measurable. Except at the gas pump. I fill up less often, saving money and time.

I trained myself to drive at 62 MPH with my previous car. My Mazda has a cruise control. I'd set it for 62, and sit back and relax. I'd listen to some tunes, or a prerecorded radio show i'd downloaded from the web. It was really nice. I'm going slower, so i have the right of way. Everyone who wants to go faster must go around me. I don't have to disengage the cruise until i get where i'm going. Well, maybe sometimes. Like in Detroit where i have to take an exit just to stay on i75. Or in Troy, where despite four lanes, there's not enough room for all the cars. But now i'm trained, and that's that.

You can go to the Governator's web site and learn all about Eco Driving. You can buy expensive easy rolling tires and get maybe 2% fuel economy improvement. Or, you can go a bit slower - which costs you nothing - and get 17%. The coupon never expires. But there's no reason not to start today.

Friday, October 23, 2009

Warranty

The other day, the phone rang. It was a sales call. I call it phone spam.

"Our records show that you do not have an extended warranty on your Saturn."

Interesting. I own a Saturn. It is true that there is no extended warranty on it. But I didn't buy it in Michigan. It's never been in the shop. So what records are these? Either the Department of Motor Vehicles sold or gave out this information, or my insurance company did. I have a good insurance company. They didn't do it. I'm liking my government less now.

"How many miles do you have on your car?"

I decided to tell the truth. It turned out to be the right answer, and it would have been even if it was a lie. So i said, "Two hundred and fifty one thousand".

Pause.

"You aren't eligible for our extended warranty."

And that was that. They won't be calling back. I have a car that is in excellent condition and which is rock solid reliable. It gets great gas mileage, nearly 44 MPG, lifetime average. And they won't sell me a warranty that they'd push down anyone else's throat if they could. In the summer of 2008, it's Blue Book value went up by $2000, despite my having driven it an additional 70,000 miles. That's because gas prices went to $4 a gallon. Well, gas prices are going up again. I have a car whose value is increasing with age. It's been to the Moon (238,000), and it's showing every indication that it will make it back to Earth.

Tuesday, September 01, 2009

FPS games

This is a quick start guide for first person shooter games. This isn't about any particular game. These games can be complicated, and may take a long time to master. Go for the easy things first. Easy things first works for learning the piano too.

You can't shoot without a weapon. You can't shoot without ammo.

Aim the weapon, then fire. Unless you have infinite ammo.

You can't shoot if you're dead. Try not to get shot. Jump and dodge. Weave. Move all the time. Standing still is a good way to get killed. There is no hiding. So learn to aim while moving.

Learn your weapons. Fast/slow rate of fire. High/low damage. Long/short distance. Small/large area of effect. Delayed effect. High/low amount of ammo. Some weapons may have more than one mode of use. Use the right weapon in the right mode at the right time. Even if you're left handed.

It's good to know where the enemy is. It's very good to know where an enemy will be. Is the enemy moving to some obvious goal? Conversely, don't let the enemy know where you are. If you and an enemy are moving to the same goal, consider letting them have it. Since you know where they're going, you can let them have it.

The terrain can be your friend. Get to know it. There may be places where it's hard to see the enemy. These may be good for you too.

As you learn the game, identify skills to practice. Aiming. Aiming while moving. Jump to high places. And so on. If there's a feature of the game, see if you can use it. If your game has a novice mode, don't be afraid to use it, and even lose a few games practicing some skill.

Have fun.

Saturday, August 29, 2009

Headache

I don't get headaches often. There's usually some identifiable cause. Dehydration. Nutrasweet (i seem to be allergic, and it causes what i call a migraine for about six hours. I say i seem to be allergic, but i've not gotten any such diagnosis. I say i call it a migraine, but how do i compare? Besides, the point is, with care (and increasing care at that), i can avoid it. I've been about a decade now since i was last poisoned.)

Well, here's an article that gives a reasonable overview of the subject. I doubt it's comprehensive. I don't agree with every word in it. I doubt an article could be written which covers everyone, since everyone is a bit different. But on the whole it's the best i've seen in ages - perhaps ever. And, it's out there for free. Can't beat that with a stick.

Wednesday, August 26, 2009

Jack failure

I thought i'd mentioned it in a previous post here, but can't find it. When jacking up the car to do maintenance, i always put something under the car, so that if the car falls off the jack, it's easier to jack it back up, and, by the way, nothing under the car get crushed. I'm thinking of myself, for example.

Well, i was changing my oil, and while pulling hard on the oil filter wrench (usually i can just twist it off with my fingers), the car rolled back six inches, falling off of the jack (closest to the tire). Fortunately, i had the jack stand set up. And, it held it. In fact, the car didn't even seem to drop any. I say fortunately, but it's the way i work. Always have a backup.

The picture is kind of odd. The right front tire is shown, jacked up completely off the ground.

In case it's not clear, i was indeed, under the car at the time.

Tuesday, August 25, 2009

Firefox and Thunderbird

I've used Thunderbird as my email client under Linux for quite a long time. I recall needing a gui email client because people (probably using Windows) were sending me stuff in styled text, mostly that could easily be sent as plain text. Anyway, it's been years.

But last Saturday morning, my main home machine rebooted. Twice. The logs showed nary a hint why. But afterwards, both Firefox and Thunderbird had an unacceptably small font, used for their menus and other dressings. The size of the content was easily changed. I'd never felt the need to change other font sizes. And there are three font sizes that matter. But only one had changed. I figured at first that i'd lost some font, and that these two applications needed it. But Google didn't seem to know where such files might be.

One of the suggestions was that the file userChrome.css could be modified. I ran "locate" to see where such a file might be. I didn't have one. A Ha! But, no, it's normal not to have one. And creating one didn't solve the problem.

There were other false leads.

What finally did it was to edit my /etc/X11/xorg.conf file, and in the "display" section for my nVidia card, i added the lines:
Option "UseEdidDpi" "FALSE"
Option "DPI" "100 x 100"

In particular, it sets my screen resolution to 100x100 dots per inch, rather than 75 dots per inch. And, i arrived at this result by measuring the screen, computing the resolution (in my head, despite having a computer in front of me that can perform a billion divides or so in a second).

No idea why a random reboot should cause this behavior. It'd been working for a decade at least. No idea why only those two applications should be affected. xorg.conf is supposed to affect everything. No idea why there seems to be a bunch of ways to address this issue. For example, userChrome.css made no difference at all. And, it was system wide, not user wide. I created a new user just to test this out.

I'm a Unix guru. But the complexity and rate of change has gotten so out of hand, that even i had huge problems getting this to work. We've totally lost focus. The documentation is out of date. There are multiple ways to do something, and only one works? This isn't Unix anymore.

But with this post, perhaps Goggle does know how to solve this problem now.

Sunday, July 26, 2009

Dollar Store humor

My local dollar store has the slogan:

"Nothing is more than a dollar".

This suggests that a dollar is less than nothing, right?

Monday, July 06, 2009

Alzheimer's cured in mice

"Alzheimer's disease is reversed in mice using caffeine".

One of the quotes from the article is this: That's important because caffeine is a safe drug for most people. Note that they don't say that it doesn't have side effects. I expect sleep disorder, arthritis, osteoperosis, and addiction. Personally, i'd accept a little pain to avoid Alzheimer's. And, for a change, i'm glad that caffeine is addictive. If i had to take medicine for Alzheimer's, i'd be afraid that i'd forget to take it.

Wednesday, May 20, 2009

The Seanachai

I've been listening to podcasts since they came out. At first, i'd download them, cut them to CDs, and listen to them on my way to work and back. Since that was 2+ hours of driving a day (37,000 miles a year), i could listen to quite a bit. Much better than listening to the traffic report - which mostly told me that my last half hour was due to an accident that happened yesterday. But now i have an mp3 player. Or maybe three of them. And i wear headphones 24/7.

Patrick E. McLean's shows started out as bite sized 5-7 minute stories with extraordinarily great production values. Not just a good script. Not just a good mike. Not just good sound effects. But the whole thing just sort of sucks you in.

Now, i just put

http://www.theseanachai.com/feed/podcast/

into my long list of stuff to download. And every now and then, there's this totally off the wall incredible show. It's like Christmas.

I'm not the only one who likes it. Someone out at Bitstrips likes it too.

But the best is yet to come. You really have to check out SucceedInEvil.com. Patrick's novel is fabulous. I'm getting it daily at podiobooks. You can get it slower if you want.

But you should hop on over to the store and drop $12 for a subscription. I have no idea what you'll get. But it's worth it if you get nothing extra. In fact, it's too cheap by half.

Thursday, May 14, 2009

Job Interviews

I recently wrote an extraordinarily brief summary of why i think job interviews are uniformly awful. I do computer programming, but it applies elsewhere. Here it is.

Programming is not a real time task or performance art. It's not a closed book test. Expect any such tests in interviews to fail. Worse, expect to miss great candidates because you've pissed them off, or they appeared less qualified.

Programmers need to have unusual skills. They often don't need to have common skills - such as being able to conduct themselves in an interview and sell themselves. Focus on what skills you need, and be prepared to accept that skills you don't need suck. Failure to follow this rule will prevent you from hiring the best talent.

Non technical managers have no way to evaluate technical candidates. IMO, they shouldn't be invited to interviews. In my experience, non-technical managers also have no way to evaluate productivity after hire. You can't do it on hours worked. And the non-technical manager doesn't have a clue how long a task should take, nor can they recognize quality (or lack of it).

The right way to hire a competent technical person is to have a competent technical person interview them. And that person much conduct the Turing Test. The Turing Test was devised as a test of artificial intelligence. The idea is that you can't define or describe intelligence, but if you are intelligent, you can recognize it in a machine. It sounds silly, but it's the best we have. And it works. Where i went to school (an engineering school) only one in four entering freshmen (all totally brilliant) graduated. And there didn't seem to be any way to tell who would make it. But of the 22 guys i hung out with starting in my freshman year, one transferred to another school and got his degree there, one had to do a summer session to get his degree, and one failed to graduate when his financial aid ran out. Four went on to get masters, and two got PhDs. And it's starting to become clear that some companies end up with uniformly high quality staff, and others don't. It's the conversation that does it.

Here's a sample poor conversation:

Q: Why did you leave your last position?
A: I was a contractor. The contract ended.
Q: How about before that?
A: I've been a contractor for twenty years. But in 1991, the company I was working for went out of business. It wasn't my fault.
(At this point I'm already thinking about my next interview. The question shouldn't have been why i had a run of short contracts, but rather why i worked one for six years. They assume it's due to not getting along with someone - typically a manager. But i could already tell that working for this guy wasn't going to be easy.)

When i was at Chrysler (and they were attempting to reduce staff), they sent out email with a list of questions you might be asked on your next interview, you know, to help you prepare. It was pages and pages of questions that you should never ask as an interviewer.

I have lots more on this topic. Perhaps i'll write a book.

Wednesday, May 13, 2009

Abiogenesis

We're just a little closer to figuring out how life got started. It could be wrong, but it appears we're on the right track. This could be big.

Sunday, April 12, 2009

Have you run without being chased?

The craziest questions get asked on Yahoo! Answers. I've no idea where this one was leading. But here's where i took it.

Oh sure.

In Jr. High, cross country races were a mile and a half, so practices were 5 miles, every day. And they introduced the idea of "wind sprints". You'd run all out from one telephone pole to the next. Then you'd jog to the pole after that before running all out again. This jogging was described as "rest by jogging".

In High School, the races were 2.5 to 3.0 miles. My own school's course was 2.7 miles, went through the woods, and over the only hill around. Practices were 10 miles every day. It takes over 500 miles of running a summer to be at all competitive. More is better.

In college, the races were 5.0 miles. I was very slow. Clearly, no one was chasing me. I took nearly 25 minutes to run 5 miles. Barely under five minutes a mile. Practices were fifteen (15) miles, twice a day. That's right. 30 miles of running a day, every day. Except race days. On race days, you got to sprint for just five miles. My estimate is that i ran 2100 miles in ten weeks. That's about the distance from New York City to Salt Lake, Utah.

Tuesday, March 03, 2009

Kite

About a fifteen years ago, Dawn and i were driving from Tucson to LA. We'd just crossed the mountains. There was a wide open and fairly level prairie. Just this one huge tree. A simple fence ran along the road. There was a Bluebird on a fence post. I pulled over, went to the trunk, pulled out the 22x60 spotting scope and set it up. The Bluebird waited patiently for all this. And for maybe a minute sat there to let us get a look.

While Dawn was looking through the scope, the Bluebird took off and flew to the tree. In the mean time, i saw what looked like a gull flying down the mountain into the field. I said out loud, "What's a gull doing out here?" Dawn stood there unable to speak, and barely able to get binoculars up. It was a Swallow-tailed Kite.

no i didn't take this shotThe kite circled the tree once, then landed in it. Apparently, it didn't see the Blue bird. Apparently, being bright blue doesn't mean that you get eaten whenever a hungry kite comes by. The Bluebird didn't move. After a bit, the kite took to the air and decided to hunt for something on the ground. This was done by flying to what appeared to be an arbitrary spot to hover. And by hover, i mean that it appeared that it's head was somehow locked in an invisible vice maybe 40 feet in the air. The wings moved, other things moved, but the head did not. You could point the scope at the head. The tripod didn't move, and neither did the head. And after a bit, the kite would suddenly make a dramatic turn, and maybe 50 feet over, it would lock it's head there. What a show. Magnificent. After maybe twenty minutes, the kite went over the field, harassed a flock of Starlings, then flew back up and over the mountain.

Sunday, March 01, 2009

Screwed

My wife teaches violin. This becomes important to this story later. She asked me if it was possible to make longer screws into shorter screws. "Sure", i said. But later it wasn't so clear.

In the mean time, the head board on the bed had come unglued, and the wood screws were stripped. Apparently, it had come apart before, stripping at least two of the screws, and it was put back together with glue and screws. One of the four didn't match the others. Clearly a substitution had been made. Now, two were stripped, and one of those two was bent. I did what i always do. I looked around the house for something that might work. In this case, it was a scrounge through my old wood screw collection. I found two screws that were slightly larger diameter. One was too long, and would poke through the other side of the head board. So i got out a hack saw and unceremoniously cut it shorter. With four screws that should work, i put it back together. It held for a couple days.



Clearly, what was needed was some sort of positive structure. Countersunk wood screws weren't going to do it. I went to the hardware store, bought four 2 inch 1/4-20 carriage bolts with nuts, for about $5. Now, 2 inch bolts are way too long. But the hardware store doesn't sell bolts exactly the length i need. So, i rummaged around the house for a way to cut them to length. I don't have a vice that will do it for me. I have a vice, but i don't really have a work bench. So i cobbled together this contraption. The idea is to cut them with the hack saw. There's a little overhang on the kitchen counter. A scrap 2x4 that i use as a back for drilling was clamped to it to keep the saw away from the counter. Vice grips could hold the screw. A big C clamp i use to fix wooden chairs holds this stack together.

I'm pictured here sawing with my left hand, and holding the end of the screw with my right. I'm right handed, so this doesn't really work. But what did work is to start sawing with my right hand on the saw, and as the screw is nearly cut through, i reach around with my left hand to keep the remaining bit of the screw straight. There's no way to get a picture of this. I should also note that the vice grip is clamped onto the little bit of the screw that i'm throwing out. The vice grip totally mashes the threads. It's very important that the final threads aren't mashed. And that's why my right hand had to do the saw. It's not that my right hand is oh-so-much better coordinated. It's that despite pushups and curls carefully matched for both arms for years, my right arm is stronger. When the saw catches, my right arm keeps moving, where my left doesn't.



After the screw is cut, there's a jagged end to it. I'm holding a file on the block of wood so it won't move, and moving the screw up and down the file. This de-burrs the screw, but also makes it so a nut can thread onto the end. And the result for the head board is that on the outside, the metal caps show. On the inside, the bolts barely stick out from the nuts. They have no way of sticking into the mattress.



Now, you might think that all this cutting and filing will heat up the screw, and possibly even burn your hand. Iron conducts heat quickly, right? But stainless steel does not. And oddly, i didn't learn this in Materials Science in school. I learned it from my brother the welder.



Back to the violin teacher. She gave me a bag of screws, with one dark one. "Could you cut these screws down to the length of the dark one?" So i used the contraption from the head board job. And now there's a bag of smaller screws. But an hour's worth of work was able to take a cheap bag of screws and make them into the custom screws that were desired. They're low quality because they're not very uniform. The heads are a little different than the master. The lengths are a little shorter or a little longer. But they may be good enough. And who knows where one might get the real McCoy?



But good enough for what? These are tuning screws. You screw them down, and they push a lever, which pulls on the violin string. There are tuning pegs that hold the other end of each string. And you use them to get the pitch of the string close. But they're not good enough to get the vibration frequency close enough. The tuning screws are what you use to get the frequency to that last few cents (hundredths of a half tone). And this exercise is all about having the sense to save a few cents.

Wednesday, February 11, 2009

Downy


I was sitting in my living room, and happened to see a bird that wasn't one i see every day out the window. I've not done much birding of late, but i picked up a handy pair of binoculars and looked. It's clearly a female Downy Woodpecker. And she went up and down the two crab apple trees in the median that divides my street. I went back upstairs and got the tripod. Then i went back up and got the camera. I took 187 pictures by holding the point and shoot camera to one eyepiece of the 10x50 binoculars, while sitting in my living room. So, i'm taking shots through the window glass. Usually, that's such a bad idea. Window glass is not what opticians call optic quality. There are all sorts of defects, which give you distortion. And you can get glare. And, the camera may attempt to focus on it. But the camera usually focused on branches if the shot was out of focus. Here's one of them.
You can tell that she's a female. The male has this unmistakable red spot on the back of his head. The view directly through the binoculars is much better than this picture. The detail is better. The color depth is better. The focus is way better. You're seeing the bird in this shot, dot for dot, cropped from the much bigger original image. All other shots are cropped and scaled smaller. This blog is only 400 pixels wide. You might think this shot was taken in the woods. But the background is in fact the neighbor's house. This is clear in the uncropped original shot. So you think you can't get wilderness shots here, but apparently, you can. She put on a great show, and i got this other shot.

This is at the top of the tree, with the gray sky behind her. She paused a bit, then flew to the other tree, where she then continued to put on a great show. Of course, that's my perspective. She was just looking for things to eat. She kept poking at the tree, though never seemed to do it any damage. It was an hour. She left after combing both trees. I hope she got something out of it. Maybe she'll come back. But she wasn't interested in the leftover fruit still hanging from the tree. The cardinals and squirrels eat it, and when there's snow on the ground, so do the robins. And there was a robin out too.

You can tell he's a male American Robin. His head is darker than the back and wings. The female would have the head the same shade as the back and wings. And he was digging in the dirt under this bush. He came out into the sunshine only a couple times. He'd hop up completely into the bush when someone would walk by, especially with a dog. Often the robins are wary but hang out in the middle of the lawn. The snow was melting, but the ground was probably still frozen. Robins around here migrate south if they can't find anything to eat. Many stay all year round.

I'm guessing that this is a female House Sparrow. I didn't snap this shot of her, per se. She appeared in this shot with the robin. I didn't see her through the binoculars with my eyeballs at all. Examination of all these shots reveals a bird nest i'd never noticed as well. European House Sparrows are not sparrows at all. Genetically, they're finches. They have that short finch like beak. But it's too late to rename it a House Finch. We already have a bird called a House Finch. House Sparrows are incredibly common around here. This one also seemed to be uncharacteristically shy. Didn't care one way or the other about the robin. Just unusually skittish. She didn't stay long.

Tuesday, February 10, 2009

Sign this form


Instead of fax, a recruiter sent me a Word doc form to print, sign, scan and send. Easy. The way it should have been decades ago. I've been waiting a long time for this. Oh, sure, MS Word isn't an open standard, but OpenOffice reads it just fine.

But first, my printer's black ink sprays everywhere. The company logo was blue. It came out fine. So, blue works fine. So i set the font to blue, to get clean output. Printed it and signed it.

My scanner wasn't working. It's not new, i've had it for a decade or so. It's a UMAX Astra 1200S. I had to clear junk off of it, plug it in (the wall wart died years ago, so it gets very clean 12 volt DC power from the computer, so it's been on all this time. I needed to plug it into the SCSI interface), install a driver (well, user level scanning software), reboot, and tell my scripts where it is.

Then, after the scan, i converted it to black & white, increased the contrast to darken it, then converted it to jpeg for email. Piece of cake.

So, now i have a working scanner, right? Well, after i find a place for all that junk. I can't just throw it all out. Some of it is stuff i'm supposed to scan.

Monday, February 09, 2009

Valentine's day

The official joke for February is as follows:

Two antenna met on a roof top. (That's where they hang out.)

And they fell in love.

And they got married!

...Well, the wedding, frankly, wasn't very good.

But the reception was excellent!

Tuesday, February 03, 2009

Plugs



I changed the plugs and wires on this 1999 Subaru Forester. These are the tools i needed for this delicate job. Yes, that's a hammer next to the very long scissors on the right. The box in the middle had the new wires. The new wires are now on the car. The old wires are to the right of the box. The new spark plug boxes are red, and are to the upper right by the white phone. The bright orange handle belongs to my newest favorite tool. It's got a flexible shaft, and a very strong magnet at the end. My previous big job, changing the battery in my 2000 Saturn (pictured to the left), netted me some very expensive metric ratchets. One ratchet covers 8, 9, 10 and 12 mm bolts. And it came in handy for this job on the battery and the windshield washer reservoir. Very slick. I have an engineering degree. I would not have signed off on this design. These are spark plugs.



This is the passenger side of the engine. The thing with the robot arm is a spark plug wire. There are two on each side. So the other one on this side is behind, and difficult to spot. And they come directly out of the side of the engine. In fact, this 4 cylinder engine has the cylinders horizontal, facing away from each other. I'd call it a "flat four". It sounds good, but nobody seems to know if it's a real name or not.

It's hard to see in the picture, but the robot arm ends in this big black knob. If you pull on the knob, this long tube thing comes out of the engine. It's flexible and comes right out. It's maybe 6 or 7 inches long. No plug. Where's the spark plug? There's no room to put anything else into the hole.

That thing to the left marked "Subaru" is the air filter. To get at the plugs on this side, you have to remove the air filter. No problem. Two clips and it's off. Well, the cover is off. You remove the filter, which is brand new. Then you can see the two bolts that hold it down. I used a socket wrench and the 3/8" socket. Why it has an English bolt is pretty much beyond me. Most everything else is metric. Pop these two bolts out, and the whole air filter is out. Then you can get at the plugs, right?

So you put your 3/8" spark plug socket into the hole... where it disappears forever. You can't get your finger into the hole to get it out. So you run to the internet for instructions. You discover that you need some long needle nose pliers with a bend, you need a strong magnet on a stick, you need a 3" socket extender (have one), you need a 1 1/2" socket extender (never heard of one), you need a ratchet wrench that has a hinge by the head so it can flop around, and so on. The guys at the auto parts stores have never heard of a 1 1/2" socket extender. So you go to a dedicated tool store, and pick up a set of extenders, that happens to include one. It also has a 3". It turns out you need two 3" extenders and the 1 1/2" extender. The magnet on the flexible arm has the bright orange handle. Very cool. Dropped tools and bolts can be fished out without having to duck under the car, and without having to see where they fell. Even the heaviest of tools can be picked up off the driveway without bending over. The bright orange handle is hard to miss in the clutter of the engine. Amazing. I'll be using it again.

So, you fish out the socket. When it's most of the way into the hole, you add a 3" extender to it. You fish that most of the way into the hole and add the 1 1/2" extender. You fish that almost all the way into the hole and add your new flexible ratchet wrench. And you feel the socket latch onto something. You assume it's a spark plug, and unscrew it. It comes out. And you disassemble the train of extenders and stuff as you remove it. Use the nifty magnet to pull out a spark plug if you need to.

The driver's side plugs required that you first remove the battery and the windshield washer reservoir. The batter is two small corroded bolts on the hold down clamp, and each terminal had a bolt to remove. The plus (+) side has so much corrosion that you wonder why it still works. But there's a bolt a bit away that's easy to remove, and disconnects everything. And the windshiled washer reservoir comes off with two easy bolts. Don't have to disconnect the tubes and wires, just set it out of the way. Then the two spark plugs come out as before, only you use a second 3" extender instead of the 1 1/2". It has to do with how much room you have.

It may be hard to see, but there's a hammer, and a large pair of scissors. I used them both. The robot cover on the new spark plug wires was longer than the original, and needed to be cut. The hammer was needed for some chiseling near one of the battery terminals to see the nut that you don't need to remove. That's corrosion you're chiseling.

The car has 173,000 miles, and belongs to my wife. The plugs were not corroded. They were not fouled with oil. They were not covered in carbon. They were just worn down. Instead of a 0.045 gap, they had twice that. The center stub was nearly gone. Every evidence is that they'd never been changed before. The car was running rough, especially at highway speed, and now purrs like a kitten. Well, a kitten that can cruise at 70 MPH down the highway for hours.

My wife's mechanic quoted $383. $93 of that was plugs and wires. The plugs and wires i bought totaled $41. I also bought $10 of transmission fluid. So, we saved about $330. Or we would have, except that the plugs were very difficult to get to, and i end up buying $50 in tools. Now the mechanic's quote also included a fuel filter and a pcv valve, and of course, labor for all of the above. The car didn't turn out to need a fuel filter or pcv, so those expenses were not required.

It was roughly five hours of labor, including trips to stores, internet searches and such. It was 22 degrees out when i started, and 30 degrees when i finished. The weather was clear, except that as i finished, it started snowing. Was it worth it? I think it was. And not just for the sense of accomplishment. And not just for the savings. The savings were around $300. And for five hours of work, that's $60 per hour - tax free. But one of the things you don't get when you have the mechanic work on it is what the diagnosis was. It might have been the PCV or the fuel filter, and you'll never know. All you know is all this stuff got replaced, and it works now. You've no idea which part, if any, did it. It was, in fact, the 2nd spark plug. That's the one for cylinder number 3. And the plugs themselves don't show this. They're all very similar. So you'd want to replace them all at the same time, because this job would just come up for each of the others in turn real soon. And you replace the wires because you already bought them, and it was such a pain to get at them, you might as well do it. And, these wires have an active component. Right down there where they connect to the spark plug is a coil. That's right, a coil right on the spark plug wire. Never heard of such a thing. I'd be fascinated to learn what problem it solves.

Friday, January 30, 2009

How to stop procrastinating for tests??????

On Yahoo Answers (Y!A) the questioner asks for Real world, tried and true solutions please!!! My answer follows.

I was going to join the Entire World Procrastinator's Society (EWPS - pronounced "oops"), but haven't gotten around to it.

About studying and homework. Convince yourself that it's stuff you like, and it's exciting, and you can't wait to do it. Lie if you have to. Humans have amazing powers of self deception. After no time at all, you'll believe it. You can do this socially too. Get a bunch of your friends, as a running joke, or whatever, to talk about your classes and exams especially as being so much fun. Rowlings has some great ideas that she uses with Hermione in her books, if you need them.

I find that it's not the work, which i enjoy, but starting it that's painful. Once i get going, i don't want to stop. Part of that is fear of not finishing. So again, you can lie to yourself. In homework you can tell yourself that "I'll just do one problem". Or, "There's lots to study for this test, but just now, I'll tackle orbital mechanics in two dimensions". Then add scope (more stuff) as you get into it. Do one more thing.

A spoon full of sugar doesn't seem to work for me. It just makes me fatter. Julie Andrews is clearly responsible for the fattening of America, herself being so thin and all, could afford it. And i don't recall her taking any herself, now that i think of it. Evil, evil, evil.

Wednesday, January 07, 2009

What part of computer science is easiest?

Some of computer science is pure math. I took a masters level operating systems course from a prominent professor. He'd done some great theoretical work involving page replacement, and gained a great reputation. But it wasn't at all obvious that he'd ever written anything, much less an operating system. The course was a disaster. But my point is that there are many things that are sort of part of computer science that have little to do with computers, and you can make a living at the highest levels of computer science without knowing a heck of a lot about computers.

I'd say of the bits of computer science i've done for a living, like building computers from parts, hardware troubleshooting, programming, requirements gathering, estimating, software architecture, software maintenance, testing, documentation, systems administration, teaching, database administration, network administration, web server administration, posting web content, and software repository administration that building computers from parts is easiest. Software maintenance is probably hardest, especially if you didn't write it.

I'm often asked what i do for a living. I answer "something with computers". I get blank stares. I like to be understood, and don't care for blank stares. But sometimes, i get the followup question: "What, specifically, do you do?". And i answer "Something. Anything. I do whatever they want me to do." If they continue again, i spit out a dozen unrelated industry keywords and ask if they know what they mean. If the answer is "yes", then i say that i do those things. My motto seems to be that my job is so secret, not even i know what i'm doing.

Saturday, December 20, 2008

Snow

I'm considerably less enamored with winter today than i was yesterday. But while i was out there shoveling, one of my neighbors down the street got stuck with her car inches from freedom. Her front wheels were caught in the hard packed snow that the plow had left at the end of her driveway. So despite having 90% of the car in the road, the car refused to go anywhere. She's a good deal older than i am, so i walked over, cleared out the snow behind both front wheels, and then another neighbor and i pushed the car into the street while she drove.

She was grateful, but i really hope she doesn't get me something for Christmas.

Me? I'm nearly 50. I hope to shovel snow for another 30 or 40 years. If i don't, i hope it's because Global Climate Change has made it moot. It's not that i'm rooting for it to get warmer. That's a disaster i seriously don't wish for. It's that the alternative explanation is that my health won't allow it. And i'd rather live to be a healthy old bastard who shovels his own snow, helping out the younger 70 year old women down the street as needed, thank you very much.

I got to listen to quite a few podcasts while waiting for the driveway and walk to become cleared. For example, a recent study showed that humor is contagious, out to the third degree of separation. IMO, that's much better than passing around the flu. And, i've managed to do better than usual in that regard this season, so far. That tidbit is from Scientific American. This is a show that doesn't insult my intelligence, always has something interesting to say, and does it with a bit of humor. And, it's free for download. What more could you possibly want?

My biggest problem wasn't a sore back or arms. It was 20 degrees F (-6 degrees C). My biggest problem was overheating. My feet were hot in my new boots and wool knee sox. My thighs were a bit chilly, because jeans aren't so hot after all, my head was warm with hat over hood. But i probably shouldn't have also had the sweater on. My solution was to take my gloves off. I didn't just do that for the picture. Nothing wrong with my circulation.

Thursday, October 16, 2008

Less Filling

Went to the dentist first thing this morning and got a filling. As first appointment of the day, there was no waiting. My tongue is about the size of New Jersey now. When i need to do something, i now have to check if it can be done while having a tongue that big. I can type, apparently.

After he took the needle out, i said with enthusiasm, "I like needles!". Then i added that i just wanted to say something he hadn't heard before. He said he doesn't hear it often.

I probably should have had breakfast first. But i was in such a hurry to get there on time. Can't eat now. Hey - it's a new diet! Weight loss is guaranteed! Or is it wait loss?

I woke this morning with sore neck muscles. I was reminded of the Steve Wright line.

When I woke up this morning, my girl friend asked me, "Did you sleep well?" I said, "No. I made some mistakes."

Sunday, September 21, 2008

Science Fair Projects

Got a science fair coming up? Need ideas? Try these sites:


http://www.thenakedscientists.com/HTML/content/kitchenscience/

http://www.cool-science-projects.com/

http://school.discovery.com/sciencefaircentral/

http://school.discoveryeducation.com/sciencefaircentral/

http://scienceclub.org/scifair.html

http://www.all-science-fair-projects.com/category0.html

http://www.energyquest.ca.gov/projects/index.html

http://www.freesciencefairproject.com/

http://www.ipl.org/div/projectguide/

http://www.isd77.k12.mn.us/resources/cf/SciProjIntro.html

http://www.picadome.fcps.net/lab/sci_fair/science_fair.htm

http://www.sciencebuddies.org

http://www.sciencebuddies.org/

http://www.sciencefair-projects.org/

http://www.sciencemadesimple.com/

http://www.scienceproject.com/

http://www.super-science-fair-projects.com/



This just in:

How to make a telescope!

Saturday, September 20, 2008

What spider is this?


This spider is prowling my basement. Any ideas what it might be?

I don't have arachnophobia. These things eat other things that would otherwise bug me.

Darn - the image is clipped. Use your browser to "view image" to see more of it, like the whole quarter.



Best guess so far - a Dark Fishing Spider.

Thursday, August 14, 2008

Spaced Out

This question was posted to the Astronomy and Space section of Yahoo! Answers. I've copied the question verbatim. There were several replies complaining about spelling and that it was the wrong category. Such a wasted opportunity for "Best Answer" of an easy question. Then, i've copied my reply, verbatim.

I juz need sum help!! sumone??

okaii so ive been wiv my bf for ova 2 yrs now nd hes been acting wired l8ly so i asked him wat was up i ended up geting out of him that he doesnt feel the same neymore hes realli confused bout it all i dunno nd he says he doesnt wanna brake up yet.. were giving this week end ago 2 c wat happends but im so confused i juz love him so much i dun wanna loose him plz advice sum1 plz!!

This is Astronomy and Space, so expect some weird, even hostile answers.

We'll approach this as an engineering problem. What are the requirements? Clearly, you want to attract and keep your boyfriend. There are three things you'll likely want to do.

First, you want to be good looking. An attractive appearance is a proxy for health. You want him to think that you are healthy. Cut to the chase - ask him to start exercising with you. It could be walking, biking, running, swimming, whatever. And it would get you both off your butts doing nothing. Just making out isn't going to firm up your relationship.

Second, you want to appear smart. To do that, you have to pass some good ideas by him. This is hard, so one way to do that is to ask lots of people for advice. Yahoo! Answers isn't bad for this. You'll have to decide what is good, however. And, as has been mentioned, you might want to invest some time in spelling and grammar. You may have great spelling and grammar and are just doing this for style. How would i know?

Third, you want to appear happy. It can be such a drag to be with someone who is cranky or demanding. Be happy and and avoid being a nag. Learn some jokes. More than half of all jokes fail miserably, so you need a bunch of them. Learn what kinds of jokes he likes. But if you become a nag, your relationship is destined to the death spiral. He'll withdraw, you'll want more, and nag more.

Best of luck, and clear skies.

Tuesday, August 12, 2008

Is it right time now to start to bicycle on the road?

No. It was time at least three decades ago.

When i lived in Boston, the bicycle was by far the fastest way to get around town. When i lived in Philadelphia, the bicycle was by far the fastest way to get around town. Philadelphia police had several officers patrol by bike. I would say it's quickest in Detroit, but Detroit has nowhere that i want to go.

But if you haven't started biking around town, it's a good time to start. If everyone biked or walked places, there would also be health benefits - reduced diabetes, heart disease, better sex lives, and so on.

(more Yahoo! Answers).

Wednesday, July 16, 2008

Yahoo Answers

I've been goofing around with Yahoo! Answers of late. This is a sort of general forum where people can ask questions, and other people can answer them. I already have a Yahoo! email account, so it was totally painless to start.

I've no idea why i started. It's not like Yahoo! Answers is new. Nor is that i'd never heard of it before.

There's a section under Science and Math called Astronomy and Space. I do astronomy. Some of the questions looked easy. For example, every few minutes, someone asks if the world is going to end in 2012. The Mayan calendar flips over then - sort of like we did going from 1999 to 2000. Did we survive? There are no Mayans left to flip the calendar over. And someone has been saying that there is a planet out there, Planet X, that is going to strike the Earth in 2012. (We'd have seen it by now.) There's some other nonsense too. After typing in my answer for this a half dozen times, i started a file for frequently asked questions. Someone even asked people not to ask this question. That held the flow back for... less than 20 minutes.

When you ask a question, Yahoo! Answers generates links to similar questions. It's hard to imagine that you wouldn't notice that your exact question was already asked - and has answers - well before you get through the asking process. These people just want to ask for whatever reason. They aren't going to be deterred.

So, one day, i ran out of questions i could answer. It's not that somehow the river ran dry. It's just that Yahoo! doesn't let people answer an infinite number of questions. Once you start answering questions and they get picked or voted as the best, then Yahoo! Answers lets you answer more per day.

So what kinds of questions do i ask? Well, there are two kinds. First, i ask questions for which i think there isn't an answer. Second, i ask questions that will evoke some humor. Third, i ask questions for which i already know the answers. Despite these strategies, i've managed to learn something. Highly unexpected, but welcome.

Here's an example question - though i posted it under mathematics.


Why is the line at the bank that i pick always the longest?

There are five lines at the bank. They're more or less the same length. I do my best to pick the shortest one. I note who is at the end of each of the other lines. All four are served before i am. Should i apologize to the people in front of me for picking their line - thus slowing their service?


I'm hoping it's funny because it's common experience. After all, you only have a 20% chance of picking the fastest lane, so most of the time at least one other line is faster. You feel that despite your best efforts, there is no justice in the Universe - someone got ahead of you that shouldn't have. Everyone feels like that. But i've added another twist. The other four end-of-line people get served first. Is that fair? Am i such an intrinsically unlucky person that i should apologize to the rest of my line for slowing them down?

Of course the four other end of line people really were in front of you. They should be served before you. It's the people behind them that are in any way behind you. So, the answer is "no". The Universe works the way it should up to this point.

Yahoo! Answers are nearly a complete waste of time. It's the blind following the blind. Neither the questioners nor the answerers have much in the way of a clue what they're saying. And i'm not just talking about the ones who can't type. Is the best answer from the novices any good?

And what if you really know what you're talking about? What good does it do to say that the Earth won't be destroyed? The only help you can give seems to be when the student has copied the question verbatim from their homework. (I've asked people to tell me where they're going to school - but no responses yet.) And if you know the answer and bother to give it, aren't you bursting with pride?

Perhaps the right thing to do is to write a Yahoo! Answers bot. This bot will have the answers to a bunch of questions, and when one of them gets posted, it will spit out the canned answer. The trick here is to recognize that the question matches an answer. Step two would be to let the bot scan all the questions and answers, figure out what the best answers were, and feed those as canned answers in the future. It might be fun.

Just three more days to answer my question on Yahoo! Answers. Feel free to copy and paste from this blog entry.

Saturday, July 12, 2008

New car

In 1986, i was working for Harvard University. I took the subway (the T) to work.

One night, i had a dream. I dreamed that instead of taking the T home, i got on a bus instead. There's a bus station right there at Harvard Station. No purpose in mind, just a whim. And instead of going South, i went North up Massachusetts Ave. The bus made many stops and people got on and off as one might expect. At one of these stops, i got off. Again, no purpose in mind, just a whim.

I walked further North down the sidewalk. There were lots of businesses on both sides of the street, but nothing of interest. This didn't bother me.

Then i came across a Chevy dealership. For no apparent reason, i walked into the showroom. A salesman walked up to me and asked me if he could help. I said, "No, i'm just looking around." He dangled some keys and asked me if i wanted to test drive a corvette. "It's free", he said. I said, "Sure", and drove the bright red car around the block and back to the showroom.

I got out, and he said, "I can let you have this car for no money down." I thought "no way", but signed the papers on a whim.

The drive home included a really fun bit on the Jamaica Way. It has all these small hills and turns. All dreams should be this much fun. The trip ends coming down my street. There's a parking spot that's very close to my house, and just after a driveway, so it's a smooth shot to park.

The car comes to a stop. I pulled out the key and looked forward. Right there is my 1978 Dodge Omni. I think, "That's right. I already have a car!".

That's when i woke up. No alarm. It was daylight. My bedroom was on the first floor, facing the front of the house. I got up and looked out the window. My Omni was exactly where it was in the dream. And behind the Omni was an empty parking space. It was a very vivid dream. I had the distinct notion that my brand new corvette had been stolen.

Friday, July 11, 2008

Birthday Gift

I bought a camera to give my wife for her birthday. It's a fairly low end digital camera. That's now an 8 mega pixel camera that can do 30 frames per second 640x480 video with sound. Wait a minute - 640x480 is better than TV (NTSC). Our son plays violin and piano, and the old camera can do video, but without sound. Our camcorder works, and has excellent optics, but is ten years old or so, and therefore is analog. I can't just send a clip to my friends and family by email. With a small, 1 GB SD card, the new camera can record approximately 13 minutes of highest frame rate, highest resolution video. That's more than the couple tunes our son usually plays. I can always get a bigger card. In fact, i own a 16 GB card that is in use in another device.

Well, i picked up a Fuji at the Grocery store. They didn't have the model i was looking for, but i figured i could return it if i didn't like it. Well, it's impossible to know if you're going to like it, because the box doesn't say everything you need to know. It turns out you need to install a driver to get it to work. The CD is supposed to have drivers for Windows or the Mac. But i run Linux, so this is a non-starter. Worse, the CD didn't come in the box. WTF? And, there was a note in the box that has the Fuji tech support phone number, and a hand scrawled note that said that the pictures from this camera were fuzzy. That's right, this camera had already been returned by someone as defective, and was being sold as new, though obviously, it wasn't refurbished or anything - they'd have noticed that there was no CD, and that there was this hand scrawled note. There were also a few pictures of some guy's family on the camera. I couldn't check them out on my larger computer screen because of the driver issue.

So, i brought the camera back, but apparently, the receipt was not in the bag. When i buy tech items, i always leave the receipt in the bag, just for this sort of thing. Apparently, i didn't buy it via a credit card - but rather my debit card (which is a Visa, BTW). They couldn't find the record of my purchase on their computer, and would not accept it without a receipt. I went back home. The receipt turned up on my kitchen table. Why was it there? Oh. I always put my grocery store receipts there. That way, when i'm unpacking groceries, i can check to see that i got everything i wanted, and can check that the prices were what i'd expected. So my habits conflicted - buying tech, and buying at the grocery store.

So, i did some research on line to see if i could find a camera that doesn't need a driver. I just want something that plugs into USB and mounts like a hard disk. No big deal. Nothing. Not a single ad, not a single review, nothing mentioned this critical issue. Not one product talked about compatibility with Linux. By the way, having to have the CD to install a driver is a pain for everyone, not just Linux users. Let's say you're at a friend's house and take some pictures. They say, "hey, could you send me a couple of those?" You say, "can't i just plug it into your computer and give them to you now?" If you have to install a driver, the answer is "no, you can't". Not unless you bring the CD with you. So, i'd avoid Fuji and Kodak at the moment, without regard to what computer and OS you use.

Well, my old camera is a Samsung. It still works. I like it. It just doesn't do sound with it's videos. It can store over 300 pictures on it's quarter gig SD card. So, i looked up Samsung cameras, found a cheap one, and ordered it. It's a Samsung 860. I'm happy to report that it does not require a driver, and just mounts like a disk drive. The camera is nice. It's very small - fits in my shirt pocket. It has two misfeatures. It does not have a look-through view finder like my old one. You must use the view screen. The view screen is hard to see in bright daylight. Also, it doesn't have a case. My old camera has both.

There's a third misfeature. Well, you might call it a misfeature. You see, it's so nice, that i want it for myself. My wife has lost two cameras already. I don't really want to give it to her. Yes, i picked it because it is cheap enough that i won't cry if it's gone, but it is really nice. And i also don't want to give her my old one. So, i'm going to have to buy a second one.

A funny story. I ordered a 1 GB SD card with the camera so i'd be all set when it arrived. The SD card arrived several days before the camera. I checked it out - it works fine. Only, by the time the camera arrived, the SD card was lost. I haven't found it yet. So, while at work, and on lunch break, i went to Best Buy, paid just over twice as much for another 1 GB SD card. But when i got home, and wanted to put it in the camera, i couldn't find it! I checked the likely places at the house - i hadn't been home long, and it didn't show up. I couldn't remember bringing it home, so i went back to the office and checked my desk. Nothing. The next day i was out at Walmart, and bought a third 1 GB SD card. I nearly lost it, but did manage to get it into the camera. Well, a week later, the second SD card showed up. It was in the refrigerator. I had gone out to lunch unexpectedly, and still had my bag lunch at the office. So i put the new SD card in my lunch bag so i wouldn't forget to bring it home. When i got home, i put my lunch into the fridge. Next up was a week a vacation. It didn't appear again until i was cleaning the fridge of old science projects. Maybe i like my chips cold. That's it. That's my story and i'm sticking to it.

Friday, July 04, 2008

Tor: Orphans of Chaos

I just I just finished the book, Orphans of Chaos, written by John Wright, and distributed by Tor books. Tor has this deal where they give out a free book every week. You can sign up for their mailing list. Each week, they send you a link to the new book. They have PDF, html, and moby formats. I read the book on my n800 pocket computer, using FBReader. This application reads html and moby formats. Evince reads PDF. FBReader with moby seems to be the best. The moby format comes from the Palm pilot. It's all one file, and supports styled text and embedded images.

So Tor.com is't just giving these books out from the goodness of their hearts. This book is no exception. The idea seems to be to hook you on the book, the author, or both. In the case of Orphans of Chaos, it ends with End of Part OneTo Be Continued in Part Two, FUGITIVES of Chaos, From John C. Wright, Available now in hardcover!.

Without any real spoilers, here are some notes. If you start reading this, and it seeems boring, note that the book starts pretty slow. It starts to pick up speed at around 20%. I don't have page numbers to give you, due to the electronic nature of the books. At the 50% mark, it's moving pretty fast. And, it ends with the above cliff hanger.

I liked the author's style, once he got going. It should be a good series.

One of the other books in my queue from Tor is Old Man's War. I have seen this book at Borders.

I also finished Interplanetary Hunter by Arthur K. Barnes. This is a light and fun little Scifi book, seemingly wriitten in the 1950's. At least, if it was written back then, it could be considered hard science fiction. But it doesn't take itself too seriously, so any science errors can be easily forgiven. For example, we know a bit more about Venus since then. I found it highly enjoyable. And, it's a great book all on it's own.

Thursday, July 03, 2008

Delusional

In the masthead of this blog, there is a dictionary definition of delusional. And, i claim not to be there. At least not yet. Predelusional, whereever it it headed, is not delusional. Being delusional is having a false persistent belief or opinion not substantiated by sensory or objective evidence. This sounds like something else, though. It sounds like faith. Faith is belief in something without proof or evidence. Being delusional is having faith. Having faith is being delusional. If being predelusional is not delusional, then being predelusional is being faithless. There's something to be proud of.

"We must have faith", said Spock. He could have said, "We must have delusions." If they're really the same, then delusions can't be bad while faith is a good thing. Does it matter what your faith is in? Does it matter what your delusions are? It shouldn't.

OK, so let's say you are going to start a big project. If you don't think you'll finish the project, it is foolish to start it. What if you don't know? Then what do you do? You have faith that you'll finish it. Lie to yourself, if needed. Create the delusion. Delusions are good.

Perhaps life is a journey, and though i'm not delusaional, i expect to get there eventually. The road to salvation is narrow, as the razor's edge.

Thursday, June 26, 2008

Maintenance club

Let's say you need to have a car. Maybe you have a job or something. Much of the cost of the vehicle is in the purchase price. One way to reduce the purchase price is to buy vehicles used. Another way is to own them longer. Either way, you have a vehicle that requires more maintenance. Need a reliable car? Have more than one. Since used cars often cost a tenth of new cars, you may be able to afford several.

I know something about that. I've changed an engine, fixed brakes, and so on. But i have a car in my garage that needs work, and i'm not doing anything about it.

But let's say you know nothing about car maintenance. What do you do? You need help. Get together with someone like me who knows what they're doing. You get help. But what do i get?

I've come to the conclusion that working on cars would be more fun, and therefore actually happen, if i had someone to do it with. So the great idea is the maintenance club. Each club member has some junk car. A club 'meeting' consists of descending on a club member's car for a few hours to achieve some goal. Everyone's junk gets some love in a sort of rotation. Maybe one of the junks is a '48 Chevy restoration project, or a 60's Jag.

But the thing that makes it work isn't that you get your car fixed. The thing that makes it work is that it's a social event. Bring out the pizza and beer, if that's what it takes.

Tuesday, June 24, 2008

Mortgage basics

I just read a two part bit on how mortgages work. This guy often talks about math or programming things that are esoteric and difficult. Worth the time to read, if the time can be had. And, most of my blog reading is about science. These two posts, but especially the first, are really easy to read. There's an error in the formula, but the example is right. It should be

Payment = P*(i/1-((1/1+i)^n))

where P is the Price of the house - or really the money to borrow, i is the interest rate: 0.0575 for 5.75 percent, and n is the number of payments - 360 for a 30 year mortgage. There are rounding issues, so this should be considered approximate. Payment is the payment per period, which is per month for most mortgages.

I learned that i accidentally picked a pretty good mortgage, and then five years later, did a pretty good refinance to lower interest rates. I made some very small mistakes (maybe tens of thousands of dollars), but have recovered from them, mostly in the refinance.

This is Detroit. A friend's folks died last year, and left him and his siblings a house. They all own houses, so they put it on the market. A year later, it's still on the market, but at less than 20% of what they'd started it at. It hasn't sold. Calling it a buyer's market is generous. It's foreclosure city. I assume it's impossible for at least three to five more years to sell my house.

But the banking industry is so greedy that they may have provided me an out after all. It used to be that getting a second mortgage was a last resort sort of thing. But now, banks are trying to sell these loans as "using your equity". And, they're quite aggressive about it. So, perhaps, i could suck all the equity out of the house as cash, and walk away from the house. My equity is probably enough to buy a similar nearby house (perhaps in foreclosure) outright. No loan of any kind.

Mark's articles talk about how there is a conspiracy in the finance industry. Short term profit greed drives it. But there seems to be something similar in the automotive industry. Why sell small affordable, high efficiency, low margin cars, when large high margin vehicles are selling? In fact, offering any small cars at all will just encourage people to buy them. Chrysler sells cars with hemi engines (big powerful engines). GM sells the Hummer. Ford sells the F-150, which was a small pickup when i was a kid. Then, gas went over $4 a gallon and for some reason people don't want to put $100 of gas into their tanks at a time. In the course of a month, gas hogs have gone out of style.

OK, so Ford has the Focus, a 4 door sedan, which if equipped with a 5 speed manual probably can get the kind of gas mileage that my car gets, assuming you drive it the way i drive mine. And sales have skyrocketed. They can't keep up with demand. This is a real problem. It takes awhile to get the pipeline moving. But the demand for the F-150 has dropped to the floor. Even luxury car sales have dropped. What's a Ford to do?

So, the automakers, not just Ford, have claimed that they didn't see this coming. Ford's solutions (available in Europe) won't be available in the states until 2010. That could mean summer of 2009. Chrysler made some investments last year that might pan out around then. GM makes noises, but i'm still waiting for product. This, despite the fact that my car was made in 2000 by GM. As far as i can tell, they don't sell it now.

But from my perspective, the idea that gas will go up isn't news. Maybe i was driving three times as far as anyone else, and so i noticed it sooner. But it was important to me twenty years ago. Well, total cost is also important. In a year, i'm currently spending $3,500 on gas, $800 on insurance, under $1000 on maintenance, and zero on amortization for my fleet. That's $5300 for 35,000 miles, or about 15 cents a mile. That's a quarter of what the government thinks people spend. Actually, it's less than that. My Saturn has increased in value, and maintenance has been much lower. But it freaks me out that i'm paying over a dime a mile. It's 60 cents to go to the grocery store. So i go on my way home from work, saving 60 cents.

Sunday, June 22, 2008

Can we go to a moive?

This weekend, i've been treating my son to several movies. He's been away at music camp. We went to see Get Smart, by accident. I can't read the ticket with my contacts in. I'll bring my reading glasses next time. So, it was theater 8 instead of 7. We'll have to see Indiana Jones later.

But he asked me if we can see The Happening, which is listed as Action/Adventure, Thriller and Politics/Religion, and rated R for violent and disturbing images. The trailer makes it look like deeply disturbing horror. I said, "no", and not just because it's rated R. I like to sleep at night too. He said, "Good".

Thursday, June 19, 2008

When i got the car, i looked it up in Kelly Blue Book and found that it's retail value was $1,450. I've put 70,000 miles on it, so i expected it's value had migrated towards zero. But one of the guys at work suggested it should be worth something. I looked it up again. It's now worth $3,560. That's right. I put 70,000 miles on it, and it's value has increased by two grand. I attribute this to increased fuel prices.

I talk about how cars don't have investment value. And you might think that this is a windfall. However, the car still works, and replacing it with something that gets as good gas mileage is unlikely. So it's not for sale.

I just did invest something into it. I bought a new windshield. Apparently it's not legal in Michigan to drive a car with a windshield cracked all the way across. It really wasn't much of a bother, as the crack wasn't quite in my direct line of sight. Still, i was never able to clean the inside of the windshield fully, probably a smoker in it's history. For now anyway, it's really clean.

But back to Michigan. No inspections in this state. So if you get pulled over, for anything, they notice your windshield and ding you with an extra fine. I got away with having to replace it, and going to a police station to have them sign off that i'd gotten it done. So, i got the windshield replaced right away. I'm really bad at the administrative stuff, but i did manage to get the signed ticket in the mail before the deadline. Also, the new windshield was cheaper than expected. Only $160 installed, with tax & everything. Still, it'd be nice if they gave you a list of what you need up front, like when you register it. I consider air conditioning to be more of a safety item in the summer than the cracked windshield. But i bet that Michigan doesn't care if you have it, or if it works. And so on. The windshield was number #3 on my priority list of repairs to do.

Tuesday, June 17, 2008

Acceptable Addiction

It's funny what is acceptable and what isn't. If it isn't acceptable to say that you're an alcoholic even on the wagon, it is acceptable to say that you're a caffeine addict on or off the wagon. What's the difference? You never get over either. Addiction actually changes the wiring of your brain. They're both legal (in the US). They both seem to be encouraged. Well, caffeine is encouraged for kids too. Both are an acquired taste. My 11 year old son has only recently breached the pop barrier, though he still prefers water. Coffee, beer and wine are still gross.

So, i tell people that i'm a caffeine addict, but on the wagon. They ask, "Why?" It's not why i got addicted, but why on Earth i'd give it up. Well, it has this feature that it flushes calcium from my body, and that affects my joints first, and gives me arthritis. "Oh." And i know they're thinking that it could happen to them, though it clearly doesn't happen to everyone, and they think maybe they'll get lucky, despite osteoporosis running rampant among the older population. Perhaps they think that they won't get older. I could happen, right? There is an alternative to getting older.

I know what you're thinking. Alcohol affects your mind, your judgment. That's what makes it different. Except that caffeine also affects your judgment. It makes you jittery. It make you buy more of that stuff you can barely tolerate. It makes you go to the bathroom more often. It also messes up your sleep patterns, reducing your mental performance. That's right. You took caffeine to improve your mental performance, but eventually you come out behind.

Monday, June 16, 2008

Parnas oopsla keynote podcast notes

David Lorge Parnas delivered a keynote speech on October 24, 2007 at OOPSLA in Montreal. The speech largely covers documentation, and communications required to build large projects. It touches on issues of building these projects, but mostly covers documentation.

I listened to it twice, and took notes. I haven't seen his slides. Sorry, this isn't prose, it's notes. Expect sentence fragments. And, they're somewhat organized together by topics, not notes in the order you'd hear in the show. Some repetition was removed. It hasn't escaped my notice that, as documentation, these notes of mine suck.

Listen to the show. It's one of the better talks about computing i've heard in the last decade or so.

Object Oriented: not a language thing. It's a description thing. Dykstra's THE does this in assembler. But OO languages have made it harder. Parnas has done this in Fortran. But younger people see this as a language issue.

  • Abstraction - what is the "more abstract than" relationship? Subsetability: sequence of virtual machines.
  • Information hiding, inspired by managers who wanted to break up a task into work packages, without incurring too much communication. (Parnas). Information hiding as a way to do composition.
  • Documenting module interfaces.
  • "Information hiding is an empirical result". - no. It's mathematical. It allows one to know if module A uses B, and knowing a limited amount about B, you can know if A needs to change or not.
  • Hence, Information Hiding Theorem.
  • So, you have the theory, but must also check it out in practice. Because "Theorectically" means "not really". "Theoretically, we can all run a 4 minute mile."
  • Unhappy with this definition: Modules are collections of procedures - invoked by procedure call.
  • Abstract datatypes. Instead of one data structure for each module, more than one.
  • Components - really about sellable bits. Modules aren't components.


Young people may have more energy. Older people have the experience to know what might change.

Documentation

How can you document a project so that if a manager gives it to three people, he'd get the same thing. When it fails, there's no one to blame. It was difficult, not in theory, but in practice.

Sometimes, combining modules is the right answer.

Mathematical relations.

Documentation for other engineering projects has multiple dimensions. There are multiple documents for a bridge, etc.

Coffee stain test - if the document is used, it's good. These days, it would be a document web hit count or something.

Design through documentation. Building a bridge: the documentation gets refined until the builders can use it to build the bridge. In engineering, these documents assist in inspection. Assists in maintenance. Enables systematic design review. Attitude is that the documents are binding. But in software - it's the program that counts - and the documents may be updated. In engineering, these documents are binding. Enables verification and inspections.

Documentation must be accurate - if it isn't right, people will stop using it.

Documentation must be precise. A precise document that is wrong is better than a vague document. A vague document is not even wrong. (One complaint i have for the talk is that it's more than a bit vague. It might be the slides i missed. He clearly wasn't reading from the slides, so it's gone.) Yet, the questions at the end were from people who clearly knew what he was talking about.

Documentation must be consistent. Free from contradiction.

Everything must be only in one place. Otherwise one will be changed, and you lose consistency.

Documentation must be complete. It must answer questions you have.

Documentation must be easy to search. You must be able to find the answers to the questions you ask. Search tools can help you find things in electronic documents.

Notation and Organization

Documentation must use simple, closed form mathematics.

No introductory sections. People will look at the introduction, and ignore the body, then misinterpret it. Extreme example: introductions were audio, and could only be played once. The goal was to help you understand the body, but were not referenceable. Of course, clever users figured out workarounds.

Source code isn't documentation for end users.

Documents show a separation of concerns. At least three views for a solid object. There is a set of documents.

Documentation is not a crisis: it's a chronic disease. Documentation needs to be a disciplined effort.

Documents should be good enough that you should not have to look at the code.

Documents are practical tools.

Documents must be authoritative. They must be organized so that you know where things go, or can be found. They are reference, like a dictionary, rather than a tutorial.

The test is that if you ask someone about a program, if they go to the documentation first, then it's good documentation. If they go to the code first, it isn't.

Documentation needs structure that avoids inconsistency.

Documentation needs to be better than "let's just try it".

Documentation needs to be used before you write the code. While you write the code, and after the code is finished.

All these documentation rules are easier said than done.

Each document should have a clearly defined role. Description, partial specification, full specification.

Three types of documents
  • Description: facts. Some facts are requirements.
  • Specification: only requirements.
  • Full specification: all requirements.

The same notation may be used by all three types. This means that there is no specification language.

If you look at a document, you can't tell if it is a description or a specification unless someone tells you.

It's not models. (!)

It's not formal documentation.

Source code clearly describes the program, but not the program's intent. It's not a specification. So it doesn't describe how the program might change. (On the other hand, specifications can change too. And, some programs do document intent via comments. One could argue that any other comments are pointless.)

The word 'theory' often means 'not really'. The program works, in theory.

All words are bendable (or ambiguous).

How to define what information should be in a document?
  • Must specify the content.
  • Each document is the representation of a mathematical relation.
  • Ordered pairs.
  • Programing proving. Preconditions and postconditions.
  • If you can start in x, it should end in y.
  • Lots of examples of format and notation. Must agree on content.
  • Need to know all the variables you sense and control.

Counter example: Document form vs. content.

Great anecdote. Manager offers prize for documents conforming to specification: Seven parts on A4 with 1 cm margins, pages numbered, etc., but without talking about content. Winner submitted document in seven sections that said the same thing. Description: the module copies data from here to there. Design: Bytes are copied from here to there. Detailed design: Byte one is copied before byte two... and so on. Manager never noticed.

Two are two relations:

The set of things that are possible without the system - nature. Describe the restrictions of cases that the system allows.

Document should be able to be checked for feasibility.

Software: modules, objects, components.
  • Distict but related concepts.
  • Module is a work assignment.
  • Component is a unit for sale.
  • There can be many copies of an object in a system.
  • The same kind of document techniques can be used for all of these.

Describing things operation by operation is natural to programmers. It's not very helpful to others.

A7 aircraft documentation project. Output by output - with history of inputs. You get this under these circumstances.

It's harder to write for managers.

Microsoft EU court case. $3 million a day fines. Anti-trust. MS was told to document what other vendors needed to do to interoperate. MS attempted to document their interfaces and failed. In Parna's opinion, MS tried. MS offered code, but other vendors refused. Intellectual property, but also that the code can change, and so, the spec.

Inability to write documentation is key to some of the big expensive problems today.

Specifications are not wish lists, or lists of features.

Documentation is not a list of facts about the code. In engineering, a specification is the requirements for the product.

Requirements should not be repeated. Else, inconsistencies creep in.

Describe the data structure. Describe how the data structure is interpreted: (interface) abstraction relation. Describe what each program on the interface does to the data structure.

Traces - history of what has been done. Commuting diagram. (More math references). If it commutes, then it can be implemented.

A document should be a description of a set of relations.

Documentation is inconsistent, and has errors.

Describe mathematical concepts in a readable way. Predicate pairs. But how to write it so people can read it?

Bad example:

21 pages of inconsistent and erroneous testing documentation. The testers ignored the errors. Following testing instructions is dangerous. Everyone preferred this bad document. The document was readable, but managers didn't know it was wrong because they never tried to use it.

These two things are needed for practical, sound documentation.
  • Tabular expressions. Better for math with if, and but.
    Discrete math.The tables parse out the dimensions of the problems.
  • Relational model of documentation. Tells you what information must be
    in the document.

Requires significant training. But not a PhD. Fewer mistakes. Requires an engineering background. Precise and checkably complete. Pilots can read it (for A7) likely due to engineering training. Can be used as a slow (non-real time) prototype.

Down on Zed, VDM, Alloy (British doc languages). Alloy is relational, but this is not the problem. Tabular notation is needed. These languages are translations of the code into other codes. May as well use a Turing Machine implementation. These tools are not practical. If it's easier to read the code, then the documentation isn't good enough. These tools are code. Should use engineering documentation as a guide.

Down on documentation extracted from source after the fact. For one thing, it's descriptive, not prescriptive.

Managers often do not have the engineering background needed to read documentation. Writing documentation for managers is harder than for programmers or users.

When you're done, the program should do what the document says it should. If you test the program from the document, they can't get out of sync.

Testing

Test coverage.

Reliability estimation via testing.

Mutation testing.

Test case generation. Interesting points:
  • Extreme values
  • Cross zero
  • Discontinuities
  • Equation solving for boundary values

Precondition/postcondition doesn't scale up as well as relational models.

Errors escape reviews. Must use the code to answer questions. What would you have to change in the code to do something?

Separation of concerns (Dykstra). Look at small bits of code at a time. Important for testing.

(more testing:)
A "display"
  • what it should do
  • what the invoked programs do
  • right or wrong on it's own.


Then, for large programs, testing uses lots of these displays. Scalable - lots of people can do little bits.

"The smallness of the human skull." - Dykstra "You should never look at a long program." Use divide and conquer. Precise documentation to hook things together. It's not stepwise refinement. In stepwise refinement, the program gets longer. Instead, keep it separate.

If it's an object and a component, use the trace function method. if it's a program within a component, use the display concept with documentation.

Tools for documentation:
  • Functional and imperative programming are combined.
  • Functional specs for imperative programs.
  • Don't worry about efficiency of functional programs.
  • Don't worry about illegibility of imperative programs.

Object orientation for hiding the right things.

To Change
  • Vague diagrams that don't answer the right questions.
  • Write the documentation first, to help build the programs.
  • From group reading to systematic inspection of the doc.
  • Test generation from the documentation.
  • Anyone who knows two language is a software engineer - a myth.
  • Need to train people in documentation.

Summary
  • Need to take a serious view of documentation.
  • It needs to be seen as normal, expected and effective.
  • Needs to be taught.
  • Think about why people don't do it. (ie: it's not taught).
  • Licenses for software engineering, including testing documentation skill.


Questions from the audience

In theory it will work everywhere.

Interpreting specifications, not executing them. Theorem provers, etc.

Deliberately introduce errors into program to find errors. Deliberately introduce errors into documentation to find errors - Mutation.

Movies: storyboarding. Rapid prototyping is similar. Knowing what you want by creating an approximation. Is the prototype a document?

The prototype should be bound by the specs, just as the real program.

Tables of documentation as an interface for talking to the customers.

Evolution of documents. The document evolves with the program. Use information hiding in the document as well as the code. Allows easier evolution.

User interfaces and complex database interfaces. - works.

Teach professionals the tabular notation? Need to focus on a method that works - not just about methods. Need to teach better fundamentals. The math - 'for all', etc. Lectures and labs. Lectures give theory. Labs teach why there's theory.

Questions i might have asked if i'd been there

  • So if the documentation is really good, is the code write-only?
  • What does Parnas think of use cases? Aren't they requirements?
  • Many ideas (like use documentation to show who's to blame) are wrong because the idea itself is shallow.

Sunday, June 15, 2008

Rod: part six of six - Coffee

Tie's coffee smelled really good. A short blond woman approached.

"Gail, why a café? You know I don't eat."

"Someone new. I'll introduce you, then take off. She's seriously creepy."

"Another hot date? You know it's doomed", remarked Tie.

"Yes and no. How did you manage to attend both the Nobel and Ig Nobel ceremonies? Time zones?"

"I had a new body built, and copied my bits to it. But afterwards, we couldn't merge experiences. Something's wrong."

"Here she is. Tie, meet Jean. Jean, Tie."

Jean gave a low gasp as she sat down. "You aren't a breather."

"No", Tie said tentatively. Didn't everyone know his story?

Jean went on. "Not like Nosferatu. And unlike those machines, you have soul."

"I'm not clueless."

"Dim ones never have strong souls. Which comes first is hard to prove."

"So my other body, the new one, may not adjust?"

"You might try to split your soul."

Gail got up. "Gotta go. Bye Tie. Bye Ms. Bank".

Jean said, "You were right, Ms. Force. Fascinating. Thanks."

Friday, June 13, 2008

Rod, part five of six - It's a Tie

"You won the court case and Earth Defense Fleet is giving you your back pay. How does it feel?", asked journalist Debbie Jameson-Peterson.

"And 4% interest and treble damages, said Acting Ensign Rod, Genocide, Retired", Rod replied with a smile.

"They said you are a machine, and not entitled to property."

"I was human enough for them when I signed up."

"They said more than half of your parts were replaced. You're a new entity."

"Ninth handle and 3rd blade, but the same axe. Most of your cells have been replaced too. My lawyer told me to use the 'Acting Ensign' bit. Never my first name."

"Your name's Rod?"

"That's my last name. First name's Tie."

"Ha! Sorry. Name Change?"

"Nope. Floe Rivers married Jack Hammer. Mom and Dad."

"At least it wasn't Barb Wire."

"That would be Grandma."

"Sorry I mentioned it. What do you do next?"

"Sweden, then upgrades."

"Sweden?"

"The Nobel Peace Prize. For killing billions."

"You ended the war. You saved countless billions."

"Buy one, get two free. I get an Ig Nobel too. No one ever got both."

Thursday, June 12, 2008

Rod, part four of six - Historian

No ships in sight. Shut down nonessentials. Set wakeup for a day and sleep.

Nothing here. Sleep. Nothing. Sleep...

"Where am I?", asked Acting Ensign Rod.

"You are on Space Station 666. I'm mission specialist Ray. Are you male or female?"

"Does it matter?"

"Many of your parts had to be replaced. Tough to get some of the older ones. And we guessed male."

"That's right. Uhm, what's your specialty?"

"I'm a military historian. I'm investigating the Battle of the Berg. No one knows why all the Berg ships blew up."

"They all blew up?"

"Including some on the Berg home world. Ship yards were near cities. More than a billion Berg vaporized. Led to the end of the war."

"So, I've outdone Hitler, Stalin, and everyone combined."

"Sorry?"

"Well, Hitler and Stalin only killed millions. Uhm. How long was I out?"

"We found you a couple years ago. It's been 76 years."

"Great. Acting Ensign Rod, Genocide. Over 200 years old and totally obsolete."

"But think of the back pay."

Wednesday, June 11, 2008

Rod, part three of six - Winders

Acting Ensign Rod, on breached enemy Berg ship.

Have power, but power meters are fried. That was some jolt! All batteries have something, so use them one at a time.

No shooting. The battle is over. Gotta get this hulk moving or stay here forever.

This looks like a computer terminal. What? It's Winders? I hate Winders. Wonder if it has that bug...

W00t! I'm in. And look, the Admiral's unexpired command codes! Can I self destruct every ship in the Berg fleet? Not much time.

Need his retinal scan. What's the Admiral look like? Where's the bridge?

Found him. Scan. Send it. Damn. Comms are down. Antenna damaged. Backup antenna in the hold. Set up a 10 second retry send loop. Get some wire for a tether. Out the breach and hook up the backup.

Here it is. Bolt this down. Plug this baby in.

Boom.

Opps. Forgot to tell this hulk not to blow up. Took lots of damage. Golly. Several nearby explosions, though. Maybe it was worth it.

Once again, Acting Ensign Rod, floating space debris.

Tuesday, June 10, 2008

Rod, part two of six - Adrift

Acting Ensign Rod, the largest intact piece from the Cruiser Chanuk, drifting in space. All systems nominal. Imagine that! Batteries at 15%. Don't need legs or arms. Can they be turned off? Yes. Four hours left now. Need to turn around to see. Uhm double over and twist, bend over backwards. Hot dang! Something big coming this way. What is it?

What is it?

Just great. Enemy ship.

Big breach, but mostly there. How long will it take to get there? Too long.

Shut down torso, hearing, taste, touch. Is it long enough? No. Ok, turn touch back on, and shut down vision. Power everything back up on contact. Seven hours. Long enough? Better be. Stop thinking. Laptop chips have low power idle mode. Think of nothing. Nothing.

Clunk. Power up. Grab something. Damn. Bounced two meters away. Toss the remote hard.

Fabulous. Boarded an enemy space ship. Six minutes to find a power outlet. What, no standard outlets?

Sparks! Jam those wires into the charging socket. Woot!

Saturday, June 07, 2008

Rod, part one of six - Battle

"Acting Ensign Rod, we still need officers for science and security. What do you want?"

"Tactical. I want to shoot enemy ships. Kill! Kill! Kill! Uhm, Captain Sook, Sir!"

"In case you hadn't noticed, we have no engines."

"But we still have one reactor, and a port laser."

"We're blind on our port side. You can't just shoot, you'll never hit anything."

"I'll do an EVA with a remote control, Sir."

"Sorry, all the suits were blown out in the breach."

"But i don't need a suit. No biological parts. Just a battery charge, Sir. I'm good for ten hours."

"All right, get down to engineering and see if you can get a remote working."

Half an hour later, Rod was outside. The rule was 'shoot anything unrecognized'. That's the enemy. Five hits in seven shots, and one was really good. Everything was going to plan, until the third torpedo hit the Chanuk. It exploded.

"Great", he thought. "Acting Ensign Rod. Ninety minutes of battery power left. Drifting in space without a ship."

Friday, June 06, 2008

Rod part zero of six

I wrote this seven part series for Burst Fiction. I thought it was a cool idea, and brand new. The idea is really short stories for those with short attention spans. Each story is about 1000 characters. Well, Eric posted my first story, but has been very slow to post part two. So here are all seven parts, about one per day. Eric has put alot of effort into the site. I read it with an RSS reader, and so don't get that formatting. His value add seems to be in picking stories he likes and releasing about one per day. I thought this idea was brand new. But, judging by the quantity of content, ficlets have been around for awhile.

One thousand characters isn't much. If words are on average 5 characters, and you need a space between words, it's only 167 words. That's really constrained. So you get story snippets that remind of a turning point in a story. Further, you get poetry in prose form. For example, each sentence might be purposely written ambiguously, and all meanings are intended. So, far from food for the impatient, these little stories can require significant study. So, AFAICT, not new, and not for short attention spans. Another trick is to play to stereotypes. That way you don't have to explain so much. Pick a Universe everyone already knows. I personally like the unexpected twist for an ending. Harder to do with a story that can be read at a glance.

Eric has also put alot of effort into the site. I read it with an RSS reader, and don't get that formatting. Honestly, i find it annoying. Yet another unique user interface that is barely discoverable.

The exercise is valuable. Write some. Leave them in the comments.

My first draft of "Rod" was from a preface or chapter one. But there wasn't much action. So it got moved to chapter three or four. To save space, the first draft omitted all character names. Without further ado, the story:

The first incoming torpedo destroyed Cruiser Chanuk’s main engine. Inertial dampers went down seconds later. The second hit slammed everyone who wasn’t strapped down into a wall. 90% casualties, including all bridge officers. The Chanuk would likely sit out the battle. Ensign Sook took command. She didn’t have to like it.

"Private Rod, why haven’t you reported to sick bay?" asked acting Captain Sook.

"I’m fine, uhm, Captain. Sir! And I have no biological parts."

"You’re an android? Your dossier says human."

"Yes, but my body rejects transplants. So as bits fail, they’re replaced by prosthetics."

"Not everything can be replaced, can it?"

"I suffered brain death two months before signing up for Earth Defense Fleet. No big deal. Most of it had been replaced already."

"Cyborg, then. Why doesn’t it say Cyborg?"

"There’s been no enhancement. Certified prothestics."

"Well, when did you first start getting replacements?"

"At about seven, my dentist put in two fillings."

Thursday, June 05, 2008

Bike to Work

It's 8 miles each way to work. So, it's 16 miles, round trip. The car gets 44 MPG, so that's about a third of a gallon of gas a day. Gas is currently about $4 per gallon, so that's $4 every three days, or a $1.33 per day.

But today, i rode my bike to work. One might think it was to save $1.33, but it actually saved over $80. That's because my car needed a new windshield. It takes about 3 hours to do the work, and the mechanics hours are the same as mine. So, it's 3 hours of work, which is unacceptable to my employer, as well as 3 unpaid hours.

There was an option. There's an outfit that will replace your windshield while it sits in the parking lot at work. They serve the town where i work. But, they're about $80 more.

The place that did the work isn't across the street. They're about 2 miles away. And, the optimal route from there to work goes by my house. In fact, i stopped at the house in both directions. In the morning, i stopped to pump up the tires and get my backpack. In the evening, i stopped to drop off the backpack. Instead of about 9 miles (the car route is a little more direct), it was 11 miles each way.

Since there is a shower at work, i could push it a little and work up a sweat. And the same for going home. It took an hour and fifteen minutes in each direction, so my speed was something around 7 MPH. I felt like i was flying, however. Perhaps if i get a battery for my bike computer, and do another ride, i'll know for sure. But last time i did something like this, it really was pretty slow at the start of the summer. Last time, it built to 22 MPH by the end of the summer.

That is, the speed tripled. Bike speed is limited by drag. Drag goes up as the cube of the speed. So if the speed triples, the drag force goes up by a factor of 27. Energy is force times distance, so the energy required goes up by a factor of 27. If one's calorie intake stays the same, it suggests that body efficiency can go up dramatically. And that's an hour or two per day for a hundred days.

It also means that i'm really out of shape at the moment. Well, i knew that.

I had a banana with lunch. I had one with dinner. I've just heard that they can help reduce the muscle soreness. No idea why that might be.

This blog post was written entirely using a Nokia n800 pocket computer while sitting on the downstairs couch. It's quite a bit cooler down here than upstairs where the desktop sits.

Friday, May 23, 2008

My car gets 44 MPG. It's nothing special. A 4 door sedan with a 1.9 liter engine and a 5 speed manual. It was dirt cheap, all the more so because i bought it used.

But it could get 20% more, or 53 MPG if i put a turbocharger on it the engine it has. It could get 5% more than that, or 55 MPG (rounding) if i add a cruise control. It could get 5% more than that, or 58 MPG, if the bottom was smooth, rather than set up to induce turbulence. Bottom turbulence helps keep the car on the road at high speed, so put in a governor that caps speed to 90 MPH - which is more than fair. Then, replace the gas engine with a diesel, and get 15% more, or 67 MPG. And none of this is high tech, expensive or new. I'm with Carl Sagan, who in his 1981 Cosmos series asked why we don't have cars that get 70 MPG.

Then there's tech we don't use. The differential consumes 7-15% of your power just to let your car go around corners. An electric transmission (generator at the engine, electric motors near the wheels, should have a total loss of 6%. But, there'd be no engine drag (which is alot like braking - a waste), you'd get automatic like non-shifting - except that there'd really be no shifting - no jerks, and you'd get 4 wheel drive with zero economy penalty. You could also have two independent engines. Why is that good? Well, it only takes about 15 HP to cruise down the highway. A 300 HP engine is really poor at delivering 15 HP. So you put in a small engine for highway cruise, and a larger engine for pulling your boat. If an engine dies, the other will still get you home (remember, the little one will let you cruise down the highway). What's all this going to get you? More than 100 MPG. Oh, and since you've got electric, you can add batteries for regenerative braking, and put solar cells on top for another 10% boost when it's sunny - and it charges your batteries when you're parked. Some people might never have to fire up the diesels. We might even have to 'remove gas from our tanks' - in the form of electric energy transfer from the parked car. Your house could probably use it.

In the 70's, most of the problem was solved through improved economy, and much of that was the 55 MPH speed limit, which got us some 10 - 15%. Bush has said "There's no instant fix", but we could have new signs on our highways today.

While we're there, what about home heating? Houses get really poor gas mileage. Insulation already pays for itself in the near term. That's only going to increase. Why don't we have businesses that insulate your house, and get pay back from the improved economy?

Thursday, May 22, 2008

Starship Sofa

Just listened to a short story, And the Deep Blue Sea by Elizabeth Bear, hosted on Starship Sofa. I've no idea how this mp3 got into my feed and therefore on my iPod.

It's a good story. I'm not going to give away the surprise ending. If i could figure out what the ending is, i wouldn't tell you. Not every story has to end with "...and they lived happily ever after...".

The intro can be safely ignored. He goes on for a bit about how he couldn't think of anything profound to say. Though he does introduce the author. I like his accent. It's not like mine. But he doesn't read the story. That's a relief. It's a pro reading all the way.

I'll probably add Starship Sofa to my feed. That'll put me years behind, i'm sure. but at least the episodes aren't two hours long like some napolean podcast that i'm still subscribed to. Isn't Napolean going to die soon? I don't know enough about history to know. Sigh. That's why it's in my feed. I really can't cope with 2 hour mp3's.

My commute has gone from an hour each way to twenty minutes. I did cut a few things from my feed. But the strange thing is that i seem to be getting through nearly as much as i used to. I'll have it on while cleaning the house, cooking, mowing the lawn (one of the mowers has no engine, and is therefore silent). All my really short feeds (half hour or less) get consumed right away. But i'm stuck on this 2 hour feed.

Tuesday, May 20, 2008

Good news in politics

I'm not much into politics. But this post is clearly the best news i've heard in a long time. The idea that micro-payments as campaign contributions amounts to more money than corporate contributions can only be a good thing. Utube over traditional media can only be a good thing. Perhaps i should run for office.

Monday, May 19, 2008

IT Management

What is it that IT managers do? Do they manage any Information Technology? Well, no. What they manage is the people who actually work with Information Technology. Most IT managers do no technical work themselves. Most IT managers have never performed any technical work. For the most part, they are ignorant of the issues, except where they intersect with the management of people.

What if there is a problem, and the optimal solution depends on the details of the technology involved? This happens all the time. What happens? Well, that depends on a number of things. First, it depends on what, exactly, is meant by "optimal solution". The manager might want to optimize cost. It might be short term cost, or long term maintenance cost. It might even be long term maintenance responsiveness.

There are two approaches of interest. First, they might look to see what other people have done in similar situations, and do that. This has the advantage that if some upper management asks them, they can point to some precedent. However, the IT industry has been changing at a breakneck speed, and many of the experiments of others have not had the benefit of enough time to be completed. That means that no one knows if it was a good idea or not.

Another thing that the manager can do is ask their senior development staff. This is, unfortunately, quite rare. So, despite having the experts at their finger tips, IT managers rarely make use of it. Why don't they ask? Well, for one, it seems that managers think that developers are interested in optimizing for something that is different than what managers are interested in optimizing. Perhaps managers think that developers are lazy. They'd expect that developers would be looking for the easiest solution. However, the easiest solution is the one that takes the least time. That means it's also the cheapest. After all, didn't Einstein prove that time equals money? This idea that management and developers have the same goals seems lost.

An unfortunate side effect of this state of affairs is that developers often end up implementing the mistakes of the managers. Repeatedly. This aggravates the developers, who are master craftspersons. It is really annoying when you are implementing the same mistakes again and again. Alienating your staff is never a good thing. More on that in another post.

If management of Information Technology is not what an IT manager does, then what does is an IT Manager good at doing? They keep track of things. They measure things. They document processes. Mind that they have no idea what math is about, much less IT. So, it's a good bet that they'll measure the wrong things, and do it inefficiently. IT managers are also good at telling other people what to do. It's their job. So, naturally, they'll tell their developers to do the measurements. It might be to track when they got to work, when they went home, how much time was spent on each task (for billing purposes, or if there's only one client, there's some fallback explanation). And the developers must write up the reports too. A line like this may be used in explanation. Remember, if you don't measure your performance, you can't tell if you're improving. It's sounds good, even if it's not true. But more on that in another post.

My point here is that the management overhead is often placed on the developer, which can only slow her down. Management is overhead. More overhead is not a good thing. When all you have is a hammer, everything starts to look like a nail.

What about process documentation? Managers do this also. If you'd written a perfect process, you'd never change it, right? But managers still have this skill, and will, from time to time, tinker with the processes. As time goes on these processes have a tendency to become more complicated. They have to be able to handle more of the day to day issues that come up. And, there's the inevitable bandwagon to jump on every so often. Does the senior staff get involved in these changes? No so much. But the thing that really gauls developers is that despite all the hours tracked, when some process is clearly changed for the worse, IT managers will breathlessly claim that the new process is oh so much more efficient. This is part of what makes developers think that IT managers don't actually understand arithmetic. Are you an IT manager? You should be able to do this in your head. What's three quarters of two thirds?

OK, that was a cheap shot, as most people don't get it right. That doesn't mean they shouldn't. The correct answer is one half. In word problems, "of" means multiply. One half of a dozen eggs is six. So three times two is divided by four times three. That's six divided by twelve, which reduces. For the record, this is taught in 5th grade, when you're about ten or eleven.

Friday, May 16, 2008

Shadow IT vs Silo IT

IT departments in larger companies seem to have a mandate to find and stamp out Shadow IT whereever it can find it. First, a bit about Shadow IT. Imagine that your department actually does something for the company. Let's say that it's at headquarters, and manages sales. Let's say that there is a sales force spread across the country, and this department is responsible for getting the most from it. One thing it might attempt is to track how each sales person, each small group of sales people, and each region are doing. The idea is that a group manager writes up sales data for each sales person in the group. The data is tagged with what the group is and what the region is. Then, the data will be analysed back at the headquarters.

Doing this analysis by hand is going to be time consuming (expensive, remember, Einstein proved that time = money), tedious (which was never stops businesses) and error prone. So you hire a programmer, and tell them what you want. She says, we need a way for the managers to enter the data. We'll write a web application where they'll enter the data, and it will get stored back here in a database. There's no budget of any kind, so she finds a PC that's so old, slow and has so little memory that no one wants it. She loads Linux on it, installs an Apache web server, and a Postgres database server and configures them. Then she writes a form, and a Perl script that takes form data and stuffs it into the database. She announces that it's in production, send this URL by email to the managers, and let them at it. And despite using a four year old PC instead of a quarter million dollar server, the application is responsive and reliable.

Soon, data is coming in. By then, she's written a quick report that adds up sales by group and region for each month, in a table. The analysts say it's great. For one thing, they're no longer swamped in paper. While our intrepid programmer adds logins and real security, someone gets the idea that there should be a report that graphs the groups and regions over time so that one can pick out which ones are doing better and which ones are doing worse. She grabs some graphing routines from CPAN and puts something up.

What's wrong with this picture? Well, corporate says that having a server sit under someone's desk is bad. For one thing, there's no backup. She counters that she does have backup. There's a second PC with Linux, and it gets a copy of the primary's data every night. They also complain that Perl isn't supported, that Java is the corporate standard. Further, they say that they can save money by having the server administrated by the Unix group, the database administrated by the database group, the web server administrated by the Web group, security managed by the network security group.

Two years later, the application is rewritten in Java, it's hosted in the server room, and it follows all the company rules. Everything's great, right? Except that the original developer has been spending the past two years bringing the offshore people up to speed on the app, instead of adding the new features that the customer now knows they want, and the app still doesn't do everything that the original did, and it cost a million dollars, and nothing was saved, because the original developer is still on the payroll.

Why did the rewrite, with 30 developers take so long? For one, they had to use the Silo IT development model. What's Silo IT?

Corporate management has labeled the department model Shadow IT. It's a negative name. It casts the endeavor as murky, hard to follow, uncontrollable, and underhanded. So, it's only fair that the popular alternative also has a negative name. Silo IT refers to this idea that under the idea that pooled resources are efficient resources, the endeavor is split up into areas of responsibility. Typically, this is systems administration, web administration, database administration, network administration, architechture, web framework, mentors and application developers. Each of these groups forms their own sub-department.

If a developer wants to create an application, it needs to follow the rules laid down by architects, and it needs to fit in with the framework. Now, there's a considerable amount of information to go through, and typically there are documents, hundreds or thousands of pages of documents, that one needs to go through to absorb it. No problem - there are mentors that can help, right? Wrong. The mentor's job is to make sure that the rules are followed. The developer gets the application to work, then submits the code to the mentor, who comments one sections that don't follow the rules. It's like an exam. Mentors never consult with the developers to get them going. Their job is to slow the deployment process down by several days while they review the code.

What does the developer do while waiting? Well, perhaps they have another application to work on. If they do, they'll generally find the going slow and error prone, because each shift in focus takes several hours for their brains to catch up. So, as often as not, they do nothing.

So, let's say that the developer needs a new table in the database. They submit a ticket, and it enters the database administrator's queue. In ten days, an administrator takes the ticket out of the queue and creates the table. The developer then tests it to make sure it's what they needed, then submits a ticket to get the change made to the test servers. Another ten days. Then ten more days to get the change into production. Mind you, new tables can have no negative impact on production, so it could have been there at the start. And in Shadow IT, that's what happens. Except that it doesn't take thirty days. It takes maybe half an hour in Shadow IT. It's not hard to see where this is going. The developers are easily thirty times more productive in a Shadow IT organization than in a Silo IT system. So, it's not that the Shadow IT developer is brilliant, she just doesn't have the same ball and chain attached to her ankle while she swims the English Channel.

So what if you can't find a developer who knows how to install and administrate Linux, Apache, Postgres, and knows a web aware language? Well, according to Fred Brooks, the department should build a surgical team. Maybe it takes two or three people. But since they are a single team, they can still be responsive. In particular, the database administrator can spend time learning the current applications, and tune both the database and the queries to the real needs.

Wednesday, May 14, 2008

IT Management Introduction

This blog hasn't enjoyed the content flood for a bit. Part of that is changes in life style, including a new job. But part was just that the river of ideas had run dry. I've been thinking about IT (Information Technology) management ideas for a bit. In particular, why is it that the best book on the subject to date, The Mythical Man Month by Fred Brooks, is so studiously ignored by the industry. Are IT managers all ignorant? It seems hard to imagine. But there are millions of people who claim to have seen UFOs (Unidentified Flying Objects) or even claim to have been abducted by aliens. Could there really be that much of a shared mass hallucination?

I sat down and brain stormed for just a few minutes, and came up with over 100 topics that could each rate an essay. This would be entry zero. In the back of my head, i've wanted to start a podcast for software that is easily consumable, for example, in your car on the way to work. No pictures. No code snippets. Ten to fifteen minutes each. This series may turn into that podcast. Who knows?

In prepartation for this first article, i read one on CIO.com. It's 20 things, each can be done in 20 minutes (6 hrs 40 minutes in all) to improve as a CIO. It highlights one of the reasons i think a blog like mine is better than CIO.com. I don't advertise. I have no incentive to hype anything. I have no incentive to conform.

Some of it is common sense. Try short meetings. Encourage staff training. Check your competitor's SEC (Securities Exchange Commission) 10-K reports. Check your own 10-K report. Introspection, including "is this a good job". Get input from users. Get input from senior staff. Get input from junior staff. Talk to people you wouldn't normally talk to. Talk to your vendors. Talk to your customers. Talk with the universe. Go for a walk. The iPhone as a user interface example. Encourage company encryption, especially for laptops. Very little of this is of earth shattering importance.

But some of it is just odd. Have an email free day. What? Email is a tool. It's queue'd communications. You don't have to have a popup tell you that new email has arrived. If it does, you don't have to stop what you're doing to handle it. Don't send me email to invite me to a meeting in twenty minutes. It's very unlikely i'll read it. This is misuse of email. Email has these properties: It's pretty quick to send an informal note. It's potentially imortal, the last copy of this message may never be deleted. Content can be used for reference - it's searchable as long as the content is plain text. And, it's queued. The reader will eventually see it. I don't need an email free day. I'm not addicted to it. I will consider email as an alternative to a meeting. But i'll also consider walking to someone's desk unannounced as an alternative. I don't want some CIO telling me not to use email once a week. It'd be just as silly to ask everyone to hop on one foot one day a week.

What would i add? Well, maybe not in 20 minute increments, but i'll start tomorrow.

Wednesday, May 07, 2008

Tiny digital picture frame

I picked up a Coby DP-151 "keychain" digital picture frame. As there's no cover, expect the keychain to scratch it up. I removed it, which can be done non-destructively. I can just imagine what keys would do to it. Or the inside of a purse. They come in more than one color - mine is blue.

It has a 128x128 pixel display (16 kilopixels - 1/64 megapixels). That's not alot. It's got an internal battery, and it is charged up when you plug it into USB. When you plug it in, it asks you if you want to charge the battery, or upload photos to it. When you charge it, it displays the charge state of the battery in the lower left. It also displays whatever you have it display during charge. It has a clock, and you can optionally have it display in the lower right corner. In slide show mode, it has a bunch of different fades from one image to the next.

It can have up to 60 pictures on it. It displays the picture number in red as 17/29 in the upper right corner. That means number 17 of 29 total images. You can't turn this feature off. The pictures you upload to it are exactly 128x128. You can't have a larger image. There's no pan and zoom. You must use the supplied software to upload pictures to it. It supports Windows and Mac OS. The device does not mount as a generic USB drive, so Linux users are SOL. Of course, a Linux box can be used as a charger. I don't run Wine, so i haven't tested to see if the supplied software can be made to work or not. For me, this is a deal breaker. I only run Linux at home. But for others, it's also less than optimal. It means you have to install software if you want to upload. That means you're less likely to want to upload any images while visiting a friend, for example. The upload software comes on one of those mini CDs. I'd never used one before. But there was no problem loading it.

You must plug the unit into USB before you launch the photo upload software. If it doesn't find it, it complains and exits. You can browse images that are on your hard disk. If your image is square, it scales it to 128x128 for upload. If it isn't, it scales the short dimension to 128 and grabs a center square. But you can slide a square selection tool over the image. However, i ran into a bug where you couldn't select one end of the rectangle, and though you got a square image, you didn't quite get the bit of it that you wanted. It shows that you can get one side, but it doesn't actually give it to you. This is under Windows. You also can't select a smaller square from the middle of the image - like just someone's face. You could do that in some other application, save a square image, and get what you want. The 128x128 image area is quite limited, and it's highly likely that you'll want to do something like that for many images.

The physical shape has another limitation. Let's say you want to set up a slide show. Change the picture every 60 seconds (it's settable in 5 second increments from 5 to 60). Put the thing on your desk, so it loops through all 60 of your images in an hour. Pretty cool, right? Except that you can't stand it on your desk. The rounded edges prevent this. Perhaps you could mount it on some Silly Putty or something. Or, you can make a stand by folding some stiff cardboard in half and cutting out a diagonal rest. Be creative.

There are two tiny screws on the back, but it seems likely that the rechargable battery inside is not replacable. Think of the whole thing as disposable. Mine was $20, delivered.

Little tiny pictures. What would you use it for? You might put a few family photo album like things on it. Show off your baby pictures or something. Don't have a baby? You were likely a baby at one time... show those off. Probably the last time you were cute when naked. The device is really, really portable. Small enough to get lost in a shirt pocket.

One might ask, since i only run Linux, why would i buy such a thing? It's a gift. I'm pretty sure the recipient doesn't read my blogs. I still get the odd comment, so i guess at least some people still read it.

Thursday, May 01, 2008

Gas Mower

I mowed the grass today. Well, most of it anyway.   Uhm, some of it. I did this one patch.

In any case, i'd really been dragging all day. I didn't get nearly enough sleep. That's because i kept waking up all night. I stayed up too late. Working on a big, important project. Goofing off.

But I really did mow my lawn. Now, my lawnmower is a bit underpowered. It's a push-reel mower. There's no engine. I'd bought it to get some exercise.   to save gasoline.   so i could listen to podcasts as a backup for my powered mower that actually fits in my garage. And despite having the gas mower still, i still use the push-reel mower because then i can get some exercise.   save gasoline.   listen to podcasts. mow the lawn until my primary gas mower is repaired. And, i went all last season without getting the gas mower repaired because i can't get the parts   i can't afford a new mower i'm lazy. The fact is, the gas mower uses one gallon of gas a year, which i can afford even if gas triples, and i have the parts. Worse, the push-reel mower was more expensive than a new gas mower. Really.

But the interesting thing today is that after two hours   an hour   a half hour of mowing and listening to podcasts, i feel much, much better. More awake. Less awful. Just from mowing the lawn. Just as i'd predicted. Just as i've known from experience for years. Would i do it again? You bet!   Sure If i have to.

Monday, April 28, 2008

Forth Extension Language For Emacs

Stevey has a rant about Emacs. It's not the usual Emacs vs. Vi. or even Vim. It's about variants of Emacs. Emacs and the xemacs fork. There are hundreds of other emacsen filling various ecological niches out there.

And it got me to post a rant in the comments. Big enough to drive away some more readers from this blog had i posted it here. But it got me to thinking about TECO. Raise you're hand if you remeber TECO. That many? Wow.

Well, there are a couple versions of TECO around now. I've installed one on my desktop, and also on my shirt pocket computer. I found that though i remembered enough to do simple editing - insert, delete, copy, paste, change all of this to that, i'd forgotten lots of the stuff that made it such a powerful editor. Well, a quarter of a century of disuse will do that.

You see, TECO isn't just a Text Editor and COrector, it's a Turing complete language. It would be natural to represent the Turing tape with characters in the edit buffer. On today's gigabyte machines, the tape really is essentially infinitely long. And, for the most part, TECO was really fast. And, mind you, the machines it ran on were really, really slow by today's standards. Imagine if it took Windows 100,000 times longer to boot. TECO was fast on such machines.

But today's Emacs uses Lisp as an extension language. And it seems pretty fast, except that my benchmarks show it to be 500 times slower than C on various machines. It's only really fast compared to how it used to run on smaller, slower boxes. Why is that?

Well, for some reason, Lisp is compiled to a byte code langauge. There's a 3x to 5x performance penalty for byte code interpretation. And, unlike Java, the byte code is not usually written to disk. So, it's write once, compile everywhere. It could be compiled to native code. But 5x is not 500x. Where does that come in? My guess is memory management. But it's just a guess.

TECO isn't compiled to byte code. The commands are one or two bytes long. The commands themselves are interpreted. There aren't very many of them, and interpretation is very fast. And, for some reason, there is no garbage collection. At least none that you'd notice.

TECO is a stack language. So it should be comparible to Forth. Where TECO has a small fixed number of variables, beyond which you can't go, Forth allows the creation of an arbitrarily large number of new objects. Neither language has garbage collection, as near as i can tell. Yet stack languages are reverse polish notation, and Lisp (and friends) are polish notation. The one can be converted to the other mechanically. So, it's a mystery why Lisp has garbage collection and Forth does not.

Now, i doubt that anyone wants to go back to TECO as the extension language for Emacs. I've found Forth a much lower barrier to entry language than Lisp. So, perhaps Forth is a reasonable choice.

Sunday, April 27, 2008

Which House?

What Hogwarts House Would the Sorting Hat Choose for You?

Congratulations! You're a Gryffindor! You can make your way to the Gryffindor table in the Great Hall and sit with Harry, Hermione, Ron, and the rest of the Weasleys, among others. The Sorting Hat has found within you the potential for great bravery in the face of opposition. Your courage may remain hidden, like that of Neville Longbottom, but it will strengthen you in need. But don't rely on your membership in Gryffindor as a guarantee of steadfastness - remember, Peter Pettigrew was Gryffindor, too.



"You might belong in Gryffindor, where dwell the brave at heart, their daring, nerve and chivalry set Gryffindors apart."

Take the quiz: What Hogwarts House Would the Sorting Hat Choose for You?

More Quizzes from FamilyEducation.com

Friday, April 25, 2008

Fun Fiction

Stumbled upon a new site with really short (mostly science) fiction stories called Burst Fiction. Stories are about 1000 characters. Not 1000 words. These are really short.

I thought, "hey, i could do that. How long could it take to write 1000 characters?". I wrote a little diddy, and it's up! Woot! Can't wait to see where this micro story series i've started goes...

Friday, April 18, 2008

Expelled

It's not a surprise that Scientific American has run articles with negative reviews of the Ben Stein movie: Expelled. It's anti-science.

I've not seen the movie. But i've heard the arguments before. It does not surprise me that the movie is chock full of misleading statements. That's what happened in the Kitzmiller trial in Dover. It does not surprise me that people interviewed for the movie were mislead about what they were interviewing for. There's nothing new here. But Intelligent Design is increasingly irritating.

It's probably because i'm christian. The whole creationism, and therefore Intelligent Design thing isn't just bad science or anti science. It's also really poor theology. It seems to be based on the idea that most Christians haven't read the bible. They don't remember half of the 468 passages that come up in the standard liturgical cycle that get read to them in church on Sunday. They've no idea what the central and important messages in the bible are. So when smacked over the head with cherry picked verses in ancient translations, they seem to buy it. Well, at least some do.

Let's start with Genesis. There's the Creation story. It says 'days', but the original words could just as easily be translated as 'eras', or 'eons', or 'vaguely defined time periods'. It makes no sense to take the King James English version literally word for word. Moses had no knowledge of this translation, and better sources are available. With the gist of the original translations, the creation story matches modern cosmology extraordinarily well. And, it isn't at odds with Evolution. The animals and plants really did come before humans. But, the creation story itself is not one of the main points. Ignoring it will not imperil your immortal soul.

Make no mistake. The Intelligent Design people are not just against Evolution. Cosmology, and indeed, all of modern science is under attack. Why does it matter? Well, for example, Evolution is the basis for modern medicine. Without antibiotics, i'd be dead. Literally. Recently, my gaul bladder became gangrenous. It had died and was infected. Doctors removed it, but the infection remained. Now infectious bacteria mutate and adapt. Unlike humans where 20 years goes by between generations, bacteria spawn new generations in 20 minutes. If you don't kill them all, the remaining ones are highly likely to be drug resistant by the end of a week. So not only do you need to know Evolution to create antibiotics, you need to know it to administrate them.

Back to theology. The idea that modern apes and humans evolved from a common animal seems to make some people squirm. Yet, the late Pope John Paul II has said that evolution is compatible with Roman Catholicism as an explanation for mankind's physical origins. That's not because it's an idea that has been tested. It's because it's an idea that is compatible with the bible. That Pope John Paul II was a devout christian is, one hopes, beyond question. That he and other theologians really thought about the question is also a pretty good bet. They had time to work it out. Time you and i probably don't have. And, they're really smart people.

One enticement of a literal interpretation of the Bible is that it can seem to lead to a very simple absolute morality. In my opinion, it's wishful thinking. For example, Psalm 105 reads like a moral justification of the murder infants and small children. Where is the Love of God there? Without a reasoned interpretation, nearly anything can be justified from biblical sources. It's highly dangerous. For example, the Intelligent Design leaders can then say pretty much anything they want. And since the justification is biblical, they can convince people to commit the most outrageous acts. Christianity is not alone here. Fundamentalism in essentially all religions leads down this path.

And, it matters. The Bible says "Many are called, but few are chosen.", and "The road to salvation is narrow, like the razor's edge." Your immortal soul is at stake. The time is now to study, and really think. Spiritual growth has to be a lifestyle, not just a buzzword. Did you want to be expelled from the kingdom of God?

Pope John Paul II has also said that truth is truth. There isn't theological truth and scientific truth. There is only truth.

So, if you feel that Evolution is evil, feel free to refuse antibiotics the next time you're in the Doctor's office or the hospital. If you happen to be well adapted to warding off your infection, you live. If not, well, natural selection will remove you from the gene pool. My plan is to swim as long as possible.

Another stance is to support basic science education and research, to keep America strong and Americans healthy.

From my perspective, those spouting Intelligent Design are heretics, and should be burned at the stake.

Tuesday, March 11, 2008

Scheme For Enlightenment Part Twenty Four Conclusion

Scheme is definitely worth learning. That said, this comes from someone who thinks that everything is worth learning. Nothing is too trivial. It's worth learning the slide rule and the abacus. More to the point, it seems unlikely that i'll use Scheme for production work. It does not appear that it makes creating applications significantly easier or quicker to write. It's performance relative to C is slow. (However, i've not yet played with Scheme compilers). It does have garbage collection, but that alone will not make Scheme applications bug free, or necessarily easier to debug. I may learn enough of it to write some small image manipulation stuff for the Gimp, however.

Web based applications might work. An application might have several dozen web pages. Many of the pages display a form, and then do something with the answer. The forms can be html files: essentially static text. The form handlers need to be scripts. These scripts gather the form information and do something with it - often update a database. The scripts have very short run times. Even in Perl, the CGI script run time is usually under a second. It's likely that speed doesn't matter, except the Slashdot effect. CGI scripts are often small. A terse language that starts up quickly might be ideal.

With CGI applications, one can use the tool that is ideal for each task. If the database is the glue that holds together an application, and most of the data editing bits are short pages, it might be that some longer running engine needs to be written in another language, which might be C or C++.

Scheme inherited Lisp's flexible run time handling of data, specifically lists. So it is much easier to envision lots of little cooperating scripts creating the emergent property of a coherant web based application. There already exist Scheme libraries for writing CGI based applications, as well as those to interface with databases.

Why is having lots of little scripts better than one huge one? For one, a little script can be easier to write, read and debug. It's easier to write because it's small. CGI provides most of the interfaces. In a script that fits on your screen, it might be evident that this is a handler for mainform.html, stuffs the data into the table app.mainform, then presents optform.html to the user. That and some sort of application overview for how it all fits together might be all you need. No ponderous code. No ponderous documentation.

The only thing left to optimize for a language like Scheme is the barrier to entry. After a year of study, on and off, it's still not easy for me to write more than trivial scripts. It is much easier for me to write 200 lines of C than 20 lines of Scheme. Though much of that is experience, it doesn' look as if it will change soon.

Thursday, February 28, 2008

Scheme For Enlightenment Part Twenty Three History of Lisp

You should really check out this 1979 paper on the History of LISP. This John McCarthy paper is a first hand account of what problems LISP was designed to solve, and how LISP was developed. This is they guy who designed and built the first LISP. By 1979, LISP was hardly news, so this paper wasn't written to extoll LISPs many virtues. It seems to have been written as an objective history, with as little bias as possible. In any case, it's a great read, and reasonably short.

At the end, John McCarthy talks about what it will take for a language to replace LISP.

LISP will become obsolete when someone makes a more comprehensive language that dominates LISP practically and also gives a clear mathematical semantics to a more comprehensive set of features.

The word obsolete is a funny word. Today, people talk about technlogical products with one of two words. Obsolete and Bleeding Edge. The idea is that either something is brand new and buggy, or it's old and useless. A synonym for Obsolete is Legacy. This term suggests that the bulk of the product has been built. In the case of software, you may tweak it a bit here and there, but for the most part, you leave it alone.

Modern thinking for languages suggests that if a language is the most popular, then everything else is obsolete. This is wrong, of course. Many languages enjoy niche markets. And, rightly so, as some languages are better for some tasks than others. Most languages are better at some task than any other language. The stereotypes for languages are often misleading. Here are some examples: Fortran is great at number crunching. C is good at operating systems. Perl is great at text processing and integrating things together. LISP is good for artificial intelligence research.

In many ways, there are no general purpose computer languages. It depends on what you need. You might write a web site in Perl. But there might be a bit of the site that performs a long running computation, for example to look for a bit of DNA in a database that is a close match of your sample. That bit might be written in C. Another bit tries to match what genes look like to what they do. That might be in LISP. And so on.

From this perspective, a language is obsolete when another language fills the same niche, and is better at it. LISP is good for functional programming. But so are Python and Ruby. So is LISP obsolete? No, LISP has this mathematical nature to it, and will itself be analyzable in ways that Python and Ruby will never be. But isn't Forth a language that might be analyzed in much the same way? Is Forth a better tool than LISP?

Corporate management would prefer fewer languages to many, for fear of not being able to find someone who knows some obscure language. So a language like Java, which has infinite libraries available, is attractive. So now we just have to find people who know all these libraries.

LISP has a relatively small niche. A smaller dialect, like Scheme, is unlikely to take over the whole niche. A large dialect, like Common Lisp, is also unlikely to take over the whole niche. So LISP can either be thought of as always having been obsolete, or will never be obsolete.

Fortran is a language that has undergone many changes. There was Fortran-60, then Fortran 66, then ANSI 77, and so on. The old saying is, "I don't know what language people will be using in the year 2000, but it will be called Fortran". This is even more true for LISP. LISP is a language where it is convenient to build new languages. The new languages don't have to look much like LISP. LISP could replace itself.

Of course if a language is Turing Complete, then it is equivalent to every other language.

Monday, February 25, 2008

Scheme For Enlightenment Part Twenty Two Hackable By Extension

And yet, Guile makes sense when used as an extension language to C(++) applications. The user of a program should not have to modify the source code to that program to extend it a bit, if that can be avoided. The Gimp is written in C, but i'm not not that interested in grappling with such a huge chunk of code to add an image filter. The ability to do that in an extension language would be nicer. That language would have access to the Gimp's power, but would be protected from doing any lasting harm. It also is documented with a limited API of functions to use. (The Gimp uses Guile as an extension language.)

For simple tasks, like configuration (turn this feature on, turn that one off), using Guile is the nuclear bomb to swat a fly approach. This is what makes the Emacs startup file (in lisp) such a bear to deal with. Even Google doesn't always know the answer to what i'd thought were easy issues. Even an xml file is usually too much. But it might be good for allowing the user to add real functionality. Guile, an implementation of Scheme, is a somewhat simpler language than Lisp. It might have been a better choice for Emacs.

The Unix shell allows one to chain utilities together and provide new functionality easily. The shell itself doesn't have to be fast to make this work. It's much the same idea. But the Unix shell is a simple scripting language with relatively low barrier to entry. And yet, i've used the shell to create filter chains to do image manipulation (using pbmplus for a pool of the basic image manipulation commands), to resize an image to the current screen dimensions, changing the gamma to correspond to the monitor, and using the file name as a label in the corner. The simplicity of the Unix shell did not limit the task overmuch. These are things one might expect the Gimp to do. And, in fact, the Gimp has a command line batch mode, with commands in Guile.

So, Scheme might enjoy a niche as an extension language. Is it a very good extension language? Would Python, Java, Forth, or even BASIC be better? It seems that a very simple language, with very low barrier to entry, would be a win.