Halloween

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. That’s me as The Headless Man in the image below. 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.

DDJ Online Subscription Renewal?

 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.

Compost

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.

Yard work

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.

Happy birthday to me

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.

Mead

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 and smoke out the bees. 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.

If you’re interested in making mead or learning more about it, start at the Mead Maker’s Page, or at Honeywine.com.  The Honeywine site has links to many commercial meaderies from which you can order.

ASP problems

Remember I said I was working with ASP?  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 the call 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.

Software fails on MDAC upgrade

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 (Microsoft Data Access Components) 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.

Simplify your Web pages

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 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. 

More on homebrewing

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.