Tuesday, 31 October, 2000
I've always enjoyed Halloween costume parties. Seeing the costumes that people select for themselves is sometimes revealing. Not physically revealing (although that can be interesting at times). We didn't attend a party this year, but the office sponsored a costume contest. You can see mine at the left: The Headless Man. If that reveals anything about me, I don't know what it is.
My coworkers had some interesting costumes. You can see the rest of them on the company's web site.
I like Halloween jokes, too. Like, "Is it coincidence that Halloween and Election Day are just a week apart?" One shudders to think.
My favorite, though, is this old riddle:
Q: Why do programmers mix up Halloween and Christmas?
A: Because DEC 25 = OCT 31
A geek joke, for sure, but a good one.
Monday, 30 October, 2000
I've been a Dr. Dobb's Journal subscriber for most of the past 15 years. Whenever I receive my subscription renewal notices, I dutifully check the appropriate box on the form, write a check (or enter my credit card number), and send the thing off. Except this time. I'm annoyed.
It's not anything they've done, and I still find the magazine useful. I'm just annoyed that I can't log on to their subscription site and give them my credit card number. Instead, I either have to mail the renewal form or FAX it back to them. Why? Of all things, you'd expect Dr. Dobb's Journal to let me renew my subscription online. Heck, Maxim magazine will let me (no, I don't subscribe to Maxim).
I know that Dr. Dobb's uses a fulfillment service to handle their subscriptions. I suspect this is the same Boulder, Colorado based fulfillment service to which I've been sending payments for other magazines over the last 20 years. You'd think a company that big would have this Internet thing all figured out. By now, I'd expect to get my DDJ renewal notice in an email, and I could go to their site and take care of business with a few keystrokes and a button click.
Here's the real kicker. I can subscribe to DDJ from their web site, and I can change my address, report a problem, and do other customer-related stuff. I just can't renew my subscription.
Luddites. Hey, DDJ! Get a clue! Fire that lame fulfillment house and get with the times.
Will I send in a check? Probably. But not before I post this little rant.
Sunday, 29 October, 2000
Compost is another one of those things that's easy to make, but takes a long time. It's just about impossible to screw up compost. Dead stuff rots. You can do some things to make it rot faster, though.
Composting has a lot of benefits. It reduces the amount of stuff that goes to our already over burdened landfills, and if you compost you don't have to pay somebody to haul off your grass clippings, dead leaves, and other yard waste. The finished product is the best organic fertilizer known. Putting compost around your plants fertilizes them, neutralizes the soil's PH, and improves the soil's water retention. The improved soil helps you grow healthier plants that are more drought tolerant and less prone to attack by insects and fungi. Compost is Good Stuff.
It's easy to get started composting, and it doesn't cost a thing. Just stake out a few square feet of your back yard and build a pile of dead leaves and grass clippings. The Master Composter site is a good place to start for information on how to build a pile, what to put in it, and how to maintain it. If you don't have a yard, you can still compost your kitchen scraps (rotten vegetables, etc.) with a worm composter. It's simple to make, easy to maintain, and your house plants will appreciate the result. And if you're a fisherman, you'll always have a ready supply of bait.
Saturday, 28 October, 2000
With a 22-year-old house on almost 2 acres of land, you can bet that my list of things to do is rarely blank. Today, for example, I had to prune a couple of trees that were once again brushing up against the house, charge the battery in the lawn mower, take some old cardboard boxes to the recycling place, and clean out the compost bin. I'd mow the lawn, but with all the rain lately the backyard would just swallow the lawn mower.
Nothing is ever as simple as it seems. Pruning the trees should have been a 10-minute job, but once I got the ladder and saw out, it seemed like a good idea to do it right and remove all the dead stuff I could get to, and also prune the branches that slap me in the face when I walk under the tree. In general, if it's less than 8' off the ground, it goes. With a dozen large oaks and dozens of other trees, this procedure can take days. I guess next week will see me out in the yard with my chain saw. My motto: any day you get to start the chain saw is a good day. Power tools are a benefit of home ownership.
The compost bin has a bunch of dirt in it from an excavation project a couple of months ago. I needed to clean it out in order to make room for the grass and leaves that I'll collect when I mow next week. Nothing special here, except that the weed that was growing there turned out to be a potato plant. One of the rotten potatoes we threw in the bin a couple of months ago sprouted, and now we're two potatoes richer. Lucky us.
Friday, 27 October, 2000
Happy Birthday to me. 39 years. Wow. I was talking to a group of high school seniors a few months back when I realized that I graduated from high school before they were born. That 20 years looks a lot different from this side than it did from the other. I tried to tell them that, but I doubt many of them believed me. Maybe one or two of them will remember our conversation 20 years from now. I won't hold my breath.
The thought of getting older doesn't bother me too terribly much. Today I'm in a lot better shape physically than I was 10 years ago. Some things don't work as well as they used to, my oft-separated shoulder being a case in point, but overall I'm much healthier. For sure I wouldn't have been able to ride 100 miles on a bicycle 10 years ago.
Mentally, I'm a lot calmer than I used to be. I've never been a screamer, but little things used to bother me much more than they do now. I don't have a defeatist attitude by any means, but for the most part I just let stuff happen and don't worry about it. I probably don't have enough stomach lining to allow little things to bother me.
What worries me the most about getting older is the possibility of losing physical or mental agility. I've noticed that my body doesn't heal as quickly as it used to, and I can't do my standing back flip anymore for fear of separating my shoulder on the launch and the pain causing me to land on my head. Mentally, I'm sharper than I was, but I find it harder to learn new things. Not because the learning is hard, but because I have difficulty finding the enthusiasm. I'm in danger of becoming a mental couch potato.
The solution is to force myself to learn new things. That's a large part of the reason I've been working with Linux, learning ASP, and taking a conversational Spanish class with Debra. Certainly these things will be useful by themselves, but the most important part to me is to keep learning new things. As long as I'm learning, I'm living.
Thursday, 26 October, 2000
Most people have heard of mead, but few know what it is. I know that I'd read about it for years, but before I started brewing beer I just thought it was medieval ale or something. Actually, it's a fermented beverage made from honey. Some people call it honey wine, but wine is made from fruit. And it's not beer, because beer is made from grains. (On a similar note, sake, often called 'rice wine,' is really a beer because it's made from grain). In any case, the stuff is excellent.
Mead was a real treat during the Middle Ages because honey was hard to come by. Today we understand bee husbandry, and obtaining 15 pounds of honey (about 5 quarts, depending on the type of honey) for a 5 gallon batch is trivial. If brewers in the Middle Ages wanted honey, they had to find a bee hive somewhere, smoke out the bees, and steal it. That's a lot more work than taking a gallon jug down to the supermarket.
Making mead is actually easier than making beer because there are fewer ingredients. But it takes longer. Meads take years to mature. The bottle I opened over the weekend, for example, was from a batch that Debra and I made almost three years ago. It was very good. It's hard to believe that I poured out a bottle from the same batch about six months ago because it tasted so bad. Because we don't pasteurize our mead (or the beer, for that matter) before bottling it, there are still biological and chemical processes taking place in the bottle.
I've been disappointed in the commercial meads that I've tried. Most of the commercial meads are too sweet for my taste, and they don't seem to have aged them before pasteurizing and bottling. As a result, most have an unpleasant hot alcohol taste. Some of our friends like Chaucer's, which is the only mead I've been able to find in local stores. I've had some very good meads from Earle Estates Meadery.
Wednesday, 25 October, 2000
Remember I said I was working with ASP (Oct 18)? I spent a good 8 hours working with it yesterday and today, implementing an example in VBScript for our product's extensibility SDK. I remember now why I dislike BASIC (or Basic). The language is pretty irregular. I wonder if a formal grammar even exists.
For example, to call a subroutine, you can use either one of these methods:
subroutine param1, param2, param3
call subroutine (param1, param2, param3)
But don't try putting parentheses around the parameters if you don't use thecall keyword, or you'll get an error. There has to be a reason for this oddity in the language, but I've not seen it in any of the books. Understand, this is just one of the many things that I find strange in the language.
The other problem I have is that the development environment is primitive. The debugging environment, especially, is terrible. The best thing I've found so far is what we called "the printf method" when I was writing C code. Except in VBScript with ASP, it's "Response.Write." That works fine if you're accessing the ASP page directly (i.e. through your browser), but if you're accessing a CGI that in turn accesses the ASP script that you're trying to debug (it's a distributed computing environment), then you've got problems. Remember application log files? Yeah, boy.
I understand that if I install IIS and the debugging package, that I could do visual debugging with Visual Interdev. We tried this and actually got it to work, sort of. But we kept having to reboot the computer because it'd freeze at odd places. After the fifth or sixth reboot, we went back to the old way. I'd sure like to get the visual debugger up and running, though. Perhaps I'll have some time to play with it tomorrow.
Tuesday, 24 October, 2000
Maintaining software is a never-ending battle. Even if your program is bug-free and feature complete, you still have to deal with ever-changing operating environments. A new operating system version, for example, might render your program inoperable. Or the vendor might update the database software and cause your SQL queries to fail in strange and wonderful ways. Or perhaps some third party program replaces a shared file with a newer version that is incompatible with your software.
Whenever something like this happens, your customers will call and say "Your program is broken." They don't care that the other vendor is the real culprit. After all, the other vendor's program is working fine while yours is broken. You can try to educate your users, and some might even accept your explanation, but there's always that lingering doubt in their minds. It's unfortunate, but true. If somebody pulls the rug out from under your software, the users are going to blame you.
No, I don't think there's anything you can do about it.
In today's case, it was an upgrade to Microsoft's MDAC version 2.6 that broke our database access and prompted a user to call the support line. We had tested our software with MDAC 2.5 and earlier, but 2.6 wasn't available when we shipped the product. I don't know yet whether this is a bug in MDAC 2.6, or if it's a bug in Borland's ADO Express package that we use for database access. Fortunately, Borland had a fix that we were able to download and apply to fix the problem. That won't prevent the hundreds of existing users who upgrade to MDAC 2.6 from encountering the problem. We'll notify them of the problem and of the upgrade, but most of them will ignore the upgrade and then call the support line after they install MDAC 2.6 and our product fails. Such is life.
No, this problem isn't limited to Microsoft product upgrades. We had a similar problem with an Oracle upgrade about a year ago. Things like this pop up from time to time just to keep life interesting, I guess.
Monday, 23 October, 2000
I never really caught the web surfing bug—just clicking around looking for cool stuff. I do, however, spend a lot of time looking for information on specific topics or making regular visits to my favorite web sites. Mostly, this is a frustrating experience for several reasons.
One of my major gripes is the lack of a decent index or card catalog. But that topic's a bit too involved to cover in a short diary entry. Maybe some other time.
My primary gripe tonight is web site design. After five years (that's about as long as the web has been widely used), you'd think web designers would have figured out what works. If the idea is to make information available, then make it available! A case in point here is the Galaxy Online site. This site has a lot of interesting science news, science fiction, and commentary, but it's very difficult to find anything. The site is flashy, I'll give it that, but it's terribly difficult to read. The color selections are hideous; hard on the eyes and difficult to read. The primary content window is about 400 pixels wide and doesn't increase if you resize your browser window. And the font? Ugh! Thin white letters on a bright blue background give me a headache.
Even some sites that are dedicated to programming or other technical pursuits are prone to this problem. Take the Linux Programming site, for example. This site looks nice enough, and at first glance appears to be well designed. Until you actually try to find anything about programming. The left and right columns of the site are taken up by links to other Internet.com sites, the top header is useless, and the center of the screen is devoted to news articles. Until recently, the most recent of those "news" articles was often at least a month old. Where is the Linux Programming information? There are a few links to that down at the bottom of the page, of course, you have to scroll through pages of mostly irrelevant junk to get to it. You wouldn't expect the Linux programming information to be prominently displayed on the site, would you?
Those are just two representative examples. I spend many hours every week wading through junk and dealing with flashy but poorly-designed web pages trying to locate stuff that I know is on the site somewhere.
What's wrong with black text on a white background? Sure, it's not flashy. But I'm not looking for flash. I don't want an "experience." I want information! And I have yet to find a more readable color scheme. How about making the page's topic the primary focus of the page rather than sandwiching it between flashy menus and links to mostly unrelated information, or hiding it at the bottom?
Sure, there's a place for flash on the web. Marketing information, porn sites, product catalogs, and toy stores can use all the flash they want. People who visit those sites love to see that stuff. But if you're publishing information that you want people to read, then spend your time on the content and leave the flashy stuff out of it. The news sites figured this out long ago, as have the GNU and Open Source sites, and the Linux Documentation Project. Keep it simple. It's easier on all of us.
Sunday, 22 October, 2000
I like riding my bike, but not in the rain. Since it rained all weekend, I decided to catch up on my brewing (see Oct. 21). I brewed a traditional Mild Ale for a friend's party in a couple of weeks, and a rye beer for a Thanksgiving party that Debra and I will be attending.
Other than the dishes, brewing beer is the only thing I do well in the kitchen. If I can do it in the kitchen, it doesn't require much skill. The most important part is sanitation. Anything you put in the cooking pot gets boiled, so general cleanliness is sufficient. But anything that's going to touch the beer after it's cooled (like the bucket or jug that serves as your fermenter) must be as sanitary as possible. You don't want to know what wild yeasts or bacteria can do to your favorite beer. If you make sure to keep everything clean, you almost can't screw it up. Perhaps the result won't be exactly what you expected, but it will most likely be drinkable. Drain cleaner (stuff that's unfit for drinking) is almost always the result of bad sanitation.
Oddly enough, what I like the most about brewing beer is that it's so different from what I normally do. Writing computer software and technical articles is exacting work. "Good enough" usually isn't good enough when it comes to programming, but it's just fine for beer. As the author of The New Complete Joy of Homebrewing says, "Relax. Don't Worry. Have a homebrew." The other nice thing is that you can't hurry beer. Unlike work, where I'm either trying to meet a deadline or trying to optimize the code, the beer is ready in its own time. "Relax. Don't Worry. Have a homebrew."
I enjoy drinking the final result, but I think I get more enjoyment out of making it.
Saturday, 21 October, 2000
Debra and I started brewing beer about three years ago. It's perfectly safe and legal—distilling liquor without a license is illegal and potentially dangerous, but fermenting is legal with some restrictions—and the result can be quite good. Some of the best, and certainly the most interesting, beers I've tasted have been homebrew.
Brewing beer requires patience. You boil the ingredients, cool the result, add yeast, and wait. And wait. And wait some more. It'll take anywhere from three to six weeks before you can drink the stuff you brew. The time required is mostly dependent on how much fermentable sugar is in the mix, and the type of yeast you use. Generally, more sugars makes for more time (and a beer with a higher alcohol percentage—waiting does have its benefits).
There's not much you can do to speed the fermentation process. You can try adding more yeast, but you run the risk of overpitching, resulting in a subtle off-flavor termed yeast bite. You can also increase the fermentation temperature, but yeasts are a little picky. If you get outside the yeast strain's temperature range, you'll produce chemicals that lead to off flavors. If you get the temperature too high, you'll kill the yeast.
Does that sound like a software project to you? The more complex the project, the longer it'll take. You can add programmers to reduce the time required, but at some point adding another programmer actually increases the time and can also lead to lower-quality code. You can increase the heat—make the programmers work longer hours—but at some point you'll burn them out and kill the project.
Viewing a software project as a biological process is something I'll have to ponder.
Friday, 20 October, 2000
It's odd the things that our brains retain. I can remember my friends' phone numbers from 30 years ago, but I never could remember my Dad's birth date. My short term memory has similar blank spots. If Debra tells me her schedule for the week, I'd better write it down lest I forget it all before I get to the office. But if I hear or read a joke, I'll remember it forever. Must be some kind of conditioned response from when I was growing up.
I don't claim to understand humor, but my sense of it is considered weird by many people. For example, I heard this joke today:
Two eggs, a piece of bacon, and a glass of juice walk into a bar and sit down. The bartender comes over and says "Sorry, we don't serve breakfast."
I couldn't stop laughing. I've tried to explain why I find that particular joke funny, but I can't. I don't understand it myself.
Thursday, 19 October, 2000
The FAA's air traffic control computers rejected last night's software upgrade, causing flight delays and cancellations in San Francisco, Los Angeles, San Diego, Las Vegas, and Phoenix. LAX was completely shut down for 4 1/2 hours. A national ground stop order was issued for all flights to the southwestern states. The problem was fixed before noon on Thursday (they reverted to the old software), but by then the damage was done. Flights into the southwest were delayed or canceled, causing further delays and cancellations throughout the United States. Some international flights into LAX were diverted to other airports because there was no more room to park airplanes at LAX.
The system that crashed is one part of the computer network that tracks aircraft through the nationwide air traffic control system. There are 20 regional systems that cover the entire country. The only one that failed was the one that covers the Los Angeles region. All of the others received the same software upgrade and continued to work.
What caused the crash? The new software wasn't able to handle data that was input manually. When the system received data from a controller in Mexico, which doesn't have an automated system, it crashed. They restarted the system about 90 minutes later, but it crashed again. I suspect that there's at least one programmer who's deeply embarrassed.
The point? Although the ATC system is complex, it's nothing compared to the software required to create useful cybernetic implants or nanobots that actually do useful work. Extropians would have us believe that we're within a few decades (some say as early as 2020) of creating truly intelligent technology. I have serious doubts. To create systems to do what the Extropians want requires understanding and controlling software projects that are larger and more complex than anything ever attempted. There is no evidence that computer programmers and project managers are capable of tackling projects of that scope.
Wednesday, 18 October, 2000
I've been working with ASP (Active Server Pages) lately. This isn't my first experience with scripting web pages, but it's the first time I've really studied the subject. Previously I'd written just enough Java Script or VBScript to spice up a few web pages. This time I'm looking at a serious server-side development effort, so I have to study the languages in more detail.
So far, I've concentrated on VBScript because that's what my client wants. Ugh! The language is a mess, and the development tools are primitive. Java Script appears to be a little bit cleaner as a language, but the development tools aren't any better. You'd think that we could get a better coding and debugging environment by now.
I've just started working with this technology, so it's possible that I'm missing something fundamental. I certainly hope so because from what I see now, it looks like it's going to be a very frustrating few months with this stuff.
Tuesday, 17 October, 2000
It turns out that the obesity problem in the United States is worse than I thought (see Oct 13). This news story from Reuters reports the Surgeon General's recent comments on the issue. The numbers are frightening. 55% of Americans are "overweight." 22% are considered "obese". Incidence of type 2 diabetes increased 30% in the 1990s, and it's now being reported in children as young as 10 years old. The economic cost is staggering. This paragraph from the article lays it out:
Besides the health-related complications that obesity can cause, the toll in healthcare dollars is considerable, Dr. F. Xavier Pi-Sunyer of Columbia University in New York reported. The total comes to roughly $100 billion in direct and indirect costs, he said. Indirect costs include 39 million missed workdays, 239 million days of restricted activity, and 889 million bed days. Americans spend another $33 billion on weight-loss aids, such as diet pills and self-help books, Pi-Sunyer pointed out.
$33 billion a year on weight-loss aids? It's almost enough to believe that the fast food industry and the fad diet industry are in cahoots. But I'm not a conspiracy theorist.
Last year, the Centers for Disease Control and Prevention published this article about the "obesity epidemic" in the United States. In the article, the director of the CDC says:
Overweight and physical inactivity account for more than 300,000 premature deaths each year in the U.S., second only to tobacco-related deaths. Obesity is an epidemic and should be taken as seriously as any infectious disease epidemic.
Obesity is almost 100% preventable and curable. Do some research and pay attention to what you're eating. Go for a walk around the block every night instead of watching that rerun of Friends. If you want to lose weight, do it slowly—decrease the food slightly, increase the exercise slightly, and plan to lose no more than a pound a week. It takes years to put on those extra pounds, so don't expect to take them off in a hurry.
Monday, 16 October, 2000
From 1979 until about 1983, I was a pretty serious recreational runner. Before I gave it up (mostly out of laziness), I had completed 5 marathons—including the Pikes Peak Marathon, which is billed as "America's Ultimate Challenge." I suspect that raising 5 children mostly by yourself (thanks, Mom) is more challenging, but I will admit that Pikes Peak is the most physically challenging thing I've ever done. That was in 1982. I was 20 years old. Maybe I'm having a mid-life crisis, 'cause I'm seriously considering trying it again. This time when I'm 40.
I'll bet you can imagine Debra's reaction. She doesn't need kids. She has me.
I've always enjoyed a challenge. Below I've listed a few that sound interesting.
Pikes Peak Marathon - I ran this in 1982. I'll scan some pictures and attach one to this entry. I'd like to beat my previous time (about 6:10) in 2002. But I may regain my sanity and only do the uphill portion.
Imogene Pass Run - This run is about 18 miles from Telluride to Ouray, Colorado. My Dad ran it in 1981 or 1982. It's shorter than Pikes Peak, but sometimes more difficult because it's held a month later and the weather can be a serious factor at 13,000 feet.
Bicycle Tour of Colorado - This year it was 400 miles in 7 days, with about 15,000 feet of climbing. No walk in the park, but certainly doable. They change the route every year, but the challenge is similar.
Death Ride - This is billed as a tour of the California Alps. 129 miles in one day. Over 16,000 feet of climbing, some on 25% grades. This sounds more difficult than even the Pikes Peak Marathon. I probably don't have the time to train for this one.
Montezuma's Revenge - This 24-hour race has never been completed, and I'm not about to try it. It's fascinating to read about, though. 201 miles of mountain bike trails. 35,000 feet of climbing. Ouch.
Hey, a guy's gotta have goals!
Sunday, 15 October, 2000
I've always been fascinated by hardware. Even as a kid, I'd dismantle things to see what was in them and how they worked. Mechanical things I could mostly reassemble, or even fix if something was wrong. Electronic stuff, though, has always been a bit beyond me. It's nearly impossible to know how an electronic part works unless you see a schematic, and your soldering has to be better than mine in order to fix anything.
I've programmed a lot of custom hardware, though, both for work and for simple projects with friends. There's nothing quite as satisfying as writing embedded systems code, to know that every function of the hardware is under my control. It's tedious work, though, and lacks the instant gratification of a Windows GUI application.
I ran across this link to a spinning LED clock. The clock face is a single row of LEDs attached to a motor that spins them on the horizontal plane. The LEDs blink at such a rate as to create the illusion of an LCD clock. A small microprocessor keeps time and blinks the LEDs at the proper rate to simulate the numbers. This project looks simple enough, and as soon as I clear my plate of more pressing items, I'll probably tackle it as my first "on my own" hardware project.
Saturday, 14 October, 2000
Today was the 56 mile "Ranch Ride" to support the Down Home Ranch in Elgin, TX. It was a beautiful day for a bike ride, and we hoped to complete the ride with at average speed of 17 or 18 miles per hour. Unfortunately, about halfway through the ride I got a little too close to my riding partner's back wheel and we both hit the pavement.
I've crashed my mountain bike too many times to count, but this is the first time I've laid down the road bike. An unexpected dismount of a mountain bike usually results in a few bumps and bruises, and maybe a little skin left on the trail. Broken bones aren't as common as you might expect—in four years of riding I've seen one and heard of two others among people I know. Laying down a road bike is something else entirely. First, you're usually moving much faster. Today, for example, we were going at least 20 MPH when the road came up to meet us. The other major difference is that a mountain bike trail is usually softer than an asphalt road, and has obstacles (trees, shrubs, and rocks) that stop you when you fall. When you lay a bike down on the road, you hit hard and slide. When you hit the road at 20 MPH, you slide a really long way.
I now have a very large bruise on my butt, serious road rash on in various places along my back, butt, arms, and legs, and a splitting headache from my head's impact with the pavement. If anybody asks me why I wear a helmet, I'll show him the scar from this wreck and the little bits of gravel that are embedded in the Styrofoam. I'd rather my head remained in a single piece, and I don't relish the thought of digging gravel out of my scalp. My riding partner, in addition to assorted scrapes and bruises, ended up with a nasty cut on his elbow. We finished the ride in spite of the mishap, albeit a bit slower than we had planned.
I find it ironic that this happened the day after I got upset about people thinking I'm crazy for riding as much as I do. When they see my trophies, they'll have even more ammunition. Oh well. I guess it goes with the territory.
Friday, 13 October, 2000
Two friends got me into mountain biking about four years ago. Before that, it'd been almost 20 years since I'd owned a bike and almost that long since I'd ridden one. In February of this year I bought a used road bike and started riding more seriously. I completed the Lance Armstrong Ride for the Roses (100 miles) in April. Suffice it to say that I enjoy cycling.
I've fought a mostly losing battle with my weight for the last 10 years or so. At 180 lbs, I consider myself 10 to 15 lbs overweight. Not seriously overweight by any means, but heavier than I'd like. It'd sure be nice to have 15 fewer pounds to haul up the hills. Most of the problem is that I don't especially like spending my time eating and as a result I pick my food based on how fast I can get it. The faster the better. I'm practically on a first-name basis with the counter girls at McDonald's. I'm working on that by taking my lunch to the office, but I have to exercise too. Mostly my exercise consists of riding to work or back (28 miles one way) three or four times a week. It's probably more exercise than I need, but it's convenient. I get my exercise and my commute at the same time, and I get to talk to my friend Robbie who works at the same place and rides with me most of the time. Plus, exercise is about the only thing that'll increase my low HDL cholesterol.
Today at lunch we were discussing our weekend plans. I mentioned that I planned to ride 56 miles on Saturday in an organized event to support theDown Home Ranch, an organization that provides services for adults with mental retardation. The reaction of the entire group wasn't unexpected—they all looked at me like I have a screw loose, and one person even said as much. It's supposedly good-natured kidding, but I think there's more to it. Many people, especially those who are not physically active, tend to put down anybody who is more physically active. "Why," they say, "would you do something like that?" When I say that I enjoy cycling, they just give me a sideways look and shake their heads.
What I find most disturbing (or humorous, depending on my mood) is that the people who give me the most grief about my cycling are the people who obviously get no exercise. So far I've been tactful enough not to mention that little detail to them, but it's been close once or twice. I don't expect people to exercise as much as I do, but it wouldn't hurt most people to eat a little less and walk around the block a few times a week. Obesity is a serious problem in this country today, and obesity among children is growing at an alarming rate. The negative effects of obesity (heart disease, coronary artery disease, etc.) are well documented, and almost entirely preventable. It's criminal that our health care system is overburdened with people who are sick because they kill themselves with cigarettes, or they eat too much and won't exercise. That these people insult me because I enjoy exercising is unreal.
Wednesday, 11 October, 2000
Almost everything I've said publicly about Open Source software has been negative, or at least appeared that way to most people. I've gotten the reputation of being anti-Open Source. But I'm not. I actually want to see the Open Source movement succeed. But unlike many Open Source fans, I also believe that there is a place for traditional closed-source software.
I like Open Source. What I don't like is the way I see much of the software being developed. The theory is that Open Source makes for better software because more eyes on the project means a better chance of finding and fixing bugs. But coding and debugging are not the most important parts of a software project. A program that requires hundreds or thousands of programmers running it and examining the code in order to ferret out bugs certainly wasn't well-written, and probably wasn't designed well. If a program is running, there's no reason for it to have that many bugs. A running program with that many bugs has serious design and coding problems, and no amount of bug fixing will make it better. In this regard, the Open Source development model is no different from most traditional development. Programmers hack away until "it works," and then QA departments, beta testers, and customers bang on it to ferret out the bugs. If Open Source has any advantage in this area, it's only because the QA department is larger and there's no set release schedule.
Few of the Open Source programs I've seen were actually developed as Open Source. Most appear to have been developed by a small group of people working closely together, who released the program as Open Source only after it was mostly complete. The design of the program and the majority of the implementation was done by a few core individuals. This is true of the original Apache web server, Samba, the Linux kernel, Emacs, and almost every one of the GNU utilities. I know that these programs have subsequently been extended by countless others, but their cores are the work of small, tightly-controlled groups. Adding a module to a solid design is much easier than creating the framework that allows modules to be added. The "million monkeys" approach to software development, which is what the uneducated parrots who make up the most vocal part of the Open Source community advocate, just won't work.
It wouldn't take much to make Open Source software better (technically) than most of the commercial software that's currently available. All we need do is concentrate on solid engineering principles (overall system design, proven high-quality coding practices, and good project management), and good user interface design. Unfortunately, most programmers have yet to embrace even one of these principles, and the Open Source model as it's understood and practiced by the masses makes it very difficult to enforce them on the participants.
I have little doubt that the Open Source movement will continue to grow, and the number of high-quality Open Source programs will increase. Open Source could replace traditional closed-source development, though, if somehow we could educate programmers in and enforce the best practices that are keys to any successful software project.
Tuesday, 10 October, 2000
I like visiting new places, but I dislike traveling. Endless hours in noisy airport departure lounges and tiny airplane seats are the price we pay for getting there quickly. There's something almost magical about going farther in a few hours than most people went in their entire lifetimes 100 years ago.
The best thing about traveling is that I can catch up on my reading. I find it impossible to use my laptop computer in an airport departure lounge or on the airplane, but I can open a book, tune out everything around me, and read. It's the best way I know of to mitigate the boredom of flying.
On the flight to Chicago today, I read Lance Armstrong's book It's Not About the Bike, an autobiographical look at his early biking career, his near-death to testicular cancer at 28, and his triumphant return, culminating in his victory at the Tour de France less than two years after chemotherapy. That he could survive the removal of a testicle, brain surgery, chemotherapy, and the associated emotional turmoil is testament to his physical strength and mental discipline. That he could win the Tour 18 months after completing four cycles of chemotherapy is nothing short of amazing. He understands, too, that he didn't do it all himself, although that understanding is something he gained from his battle with cancer. He continually points out the benefits of family, friends, teamwork, belief, and hope.
The man is a hero in the true sense of the word.
It's a wonderful book. Highly recommended.
Monday, 09 October, 2000
The latest news on the Linux front is that the 2.4 kernel won't be delivered for at least 2 more months. I guess some people are anxious to get their hands on it, although most of them are probably running the test releases. Me? I'm happy with the current kernel (2.2.14) that I'm running, and I'm not about to put a test release on my production box. I work with enough pre-production software that I don't want a possibly flaky operating system adding to my troubles.
The interesting thing about the kernel being late is the response in the Linux community. There are two major camps: those who think Linus is doing the right thing by holding up the release to ferret out the remaining bugs, and those who think it's "good enough," to be released now and follow up quickly with some patch releases. The former seems to be the larger of the two groups, and the one I'd tend to agree with.
More interesting is the response to detractors who point out that the kernel is late. "How can it be late," they point out, "when the kernel team never committed to a release date? It'll be released when it's ready." They go on to point out that, unlike Microsoft (or other large companies, but Microsoft is the favorite whipping boy), the Linux community isn't driven by marketing pressures and competition that requires them to commit to a schedule. Of course, that doesn't prevent them from laughing at a company that misses a release date.
The Open Source crowd needs to learn that not everybody has the luxury of waiting until the coders think things are ready. Business runs on schedules, and serious people expect developers to commit to a schedule and then stick to it. As a developer, if you're not working on a schedule then you're just goofing off. If you can't commit to a schedule, then you shouldn't be coding because you didn't spend enough time studying the problem and designing the solution. Programmers are the reason most software projects are late, buggy, and over budget. Programmers who are either overconfident in their abilities and fail to take design and testing time into account, or who purposely commit to unrealistic schedules and then point to "unexpected complications" when asking for more time or money to complete the project. It's amazing that the business community has allowed this to go on for the last 50 years. It's high time that programmers act like the professionals they claim to be and stop shirking their responsibilities like teenagers who don't like taking out the trash.
Sunday, 08 October, 2000
I sure have a tough time parting with books. For example, I have a 20-year-old copy of Rodnay Zaks' How to Program the Z80 that I'm sure I haven't cracked in 10 years. I kept it around because I was sure I'd run across the Z80 again sometime. But my last embedded project was in 1994, and for that we used an 8051. I'm pretty sure I won't touch another Z80, but I just can't bring myself to part with the book.
If that was the only such book, it wouldn't be a problem. But I have scads of books on obsolete technology, and almost as many old games and software packages. I finally reformatted my MASM 5.1 diskettes, but the user's manual is still on my bookshelf because it has some great example code. Not that I've done any assembly programming recently. Do you remember CP/M? I have Alan R. Miller's Mastering CP/M taking up space over there. I have DOS programming references, Windows 3.1 API guides, and dozens of similar books. But I can't bring myself to throw them out!
I'm just as bad with old computer equipment. I had no trouble giving away my old 486/66, but my closets are full of older machines. The last I checked, I had an Osborne 1, an Osborne 4, an IBM PC with 2 diskette drives, a Leading Edge XT, and a Toshiba T1000. I even have the Epson MX-80 printer that I paid $600 for in 1981. They're all gathering dust and their magnetic media is probably going bad by now. I haven't booted any of them in a couple of years. The printer works, but I don't really have a use for it. Every time I make a joke about Jim's Obsolete Computer Museum, Debra just rolls her eyes and walks away. But if I have a tough time getting rid of old books, imagine how tough it'll be for me to trash these old computers.
Saturday, 07 October, 2000
I bought a copy of Music Match a few weeks ago, and have been making MP3 copies of our entire CD music collection. I'm just about done with "my" music—about 100 albums. Debra's collection is next, which will add another 100 albums or so. That'll add up to something like 15 gigabytes, which is going to overflow my available disk space. But at less than a penny a megabyte, I can easily afford a new hard drive for the MP3s.
I have a 12-disk CD changer in my truck, but invariably want to listen to something that's not currently loaded. So why not put acomputer in the truck, load it with my entire MP3 collection, and hook up some kind of touch screen or remote interface? All of the technology is available, it just takes some integration.
For the computer, I'll use a STB1030 "Set Top Box" from GCT-ALLWELL Technology. With 64 MB of RAM and a 233 MHz Pentium processor, it should decompress MP3s quite nicely. At 34 x 24.7 x 6 cm (L x W x H), it's small enough to mount easily behind the seat. Heck, it's smaller than the changer that I have there already. I'll have to find a 2.5 inch drive to put in the thing, but that shouldn't be too difficult. I can run Linux on the machine and plug it into my home network to copy the MP3s. For the display, I'll find an LCD or touch screen at Earth Computers. The only hard part on the hardware side will be powering it from the truck's battery. I can probably get some advice from a friend on that one.
The software might be a little more difficult. I'm sure I can find an Open Source MP3 player, and making the modifications for it to work with a smaller screen won't be too tough. The display driver might prove a challenge. The more difficult part will be getting the operating system to boot quickly and to gracefully handle being shut off without halting first. Once I get the box working with my chosen LCD, I'll worry more about the OS.
I figure I can get all of this running for under $1,000 in hardware, and a few weeks of part-time fooling with the software. True, that's an expensive CD player, but it's cool.