Thursday, 31 January, 2002

More Cluster Nodes

I got seven of my eight machines connected to the  cluster and running the POV program.  With all seven running, I'm able to render the skyvase image in 43 seconds; a 61% savings over the 1:53 that it takes the Pentium 333 (onefish) to do it alone.

All of the machines currently in the cluster are old Dells that we had gathering dust in a closet.  The eighth machine, which isn't running because I haven't put a hard drive in it, is a generic clone box.  The fastest machine is the Pentium 333, and the slowest is a Pentium 75.  Two of the machines have 166 MHz Pentiums with MMX.  They outperform the 200 MHz Pentium on the ray trace.

The cluster is a tinkerer's dream.  It's hard not to get distracted running benchmarks with every possible combination, and trying different compilation options to optimize performance.  That's not the point of my exercise, though.  Now that I have the cluster running, it's time to learn a little about writing programs to take advantage of the multiple processors.  The PVM distribution has some sample programs, which I'm currently studying.  I'm also working on my Beowulf page, on which I'll post more detailed results.  There are only so many hours in a day, though, so it may be a while before the page is ready.

Wednesday, 30 January, 2002

Refinancing Woes

I never thought it'd be so difficult to refinance my mortgage loan.  Debra and I have spent the last 5 years putting large chunks of discretionary income against the mortgage in order to pay it off.  We now owe less than 1/4 of the property's value and we want to refinance the loan for two reasons:  1) to lower the payment; and 2) get some cash out so that we can finish remodeling.  In any other state I've ever lived this wouldn't be a problem, but Texas?  I'm fit to spit.

The Texas homestead law which until recently (1998 or so) prevented Texans from obtaining home equity loans, still prevents us from doing a cash out refinance using a normal mortgage loan.  Although it's not required that you file a homestead, everybody recommends it when you buy a house because it protects your house from most liens and judgments.  What they didn't tell me in 1995 was that filing a homestead also locks up my equity.

There's a way around the problem, but it's less than ideal.  A bank here will write me a home equity loan that covers the mortgage plus whatever cash I want to take out, but the interest rate is less than ideal; ranging from 7.25% to slightly above 7.5%.  Mortgage loan rates are 6.5% for fixed rate loans, and as low as 5.25% for adjustable rate loans.  I could refinance the balance as a regular mortgage and then take out a home equity loan for the improvements.  But that would entail two sets of closing costs (!), and the idea of paying $3,000 in closing costs for a loan of less than $50,000 just rubs me the wrong way.

What a mess.

Tuesday, 29 January, 2002

More Linux Frustration

 I like Linux.  Really.  But, damn, it's frustrating.  Today I actually had to have one of the other guys at the office show me how to use the rcp command.  I read the man page and even looked up the command in O'Reilly's Linux in a Nutshell.  What a joke.  I fiddled with command syntax for a half hour before I gave up and just used FTP to copy the freaking file.

The Linux man pages would be a lot more helpful if the people writing them would include some examples.  Sheesh.

Monday, 28 January, 2002

Remodeling

Been very busy with the remodel project.  Debra and I finally set a schedule and I'm doing whatever I can to maintain it.  All last week I'd come home from work and build cabinets.  This weekend a friend and I installed the wall cabinets and did a few other things.  This evening I started on the base cabinets.  I haven't had a lot of time to write in the diary recently.  I'll be back at it soon.

Tuesday, 22 January, 2002

You're Fat, Who Can You Sue?

I knew it would happen, but I was kind of hoping I wouldn't live to see it.  You're Fat, Who Can You Sue? recaps the Surgeon General's statements from early December (see my December 19 entry), and then goes on to imply that the food industry should be held at least partially accountable for our nation of fat people.  Although positioned as news, this article falls solidly in "advocacy" territory as far as I'm concerned.  It's classic propaganda masquerading as balanced reporting.

Suing the food industry to recoup the costs associated with obesity?  Extort money from McDonald's because you eat too many Big Macs even though you know you shouldn't?  Steal Kellogg's blind because parents don't have the backbone to stand up to their kids and say "No" to the Frosted Flakes?  Why the heck not?  We did it to the tobacco companies.

This article and the whole idea of holding the food industry responsible for our obesity epidemic bother me in so many ways that I don't know where to start.  Can't people take responsibility for their own actions instead of trying to find somebody else to blame?  It's not like anybody at McDonald's is shoving that Big Mac and fries down anybody's throat.

I feel a major rant coming on.

Sunday, 20 January, 2002

Unix find Command Difficult to Use

The Unix find command is the most over-engineered and hard to use utility I've ever had the displeasure to need.  Who thought this thing up?  Sure, it's powerful but that power comes at a cost:  ease of use.  One would think that whoever built the tool would make the interface easy for the most common uses and users.  It's all well and good to require complicated or non-intuitive syntax for infrequent uses, but the most common use should be simple.  For example, if you want to find a file that you know is somewhere in the directory structure below the current working directory, you have to type:

find . -name filename -print

 Egads.  Sorry, folks, but that's just wrong.  Heck, even DOS is easier:

dir filename /s

Yes, I know that find can do much more than dir.  It can execute programs, format the output, brush your teeth, and comb your hair if you have any left after trying to decipher the man page:

NAME
find - search for files in a directory hierarchy

SYNOPSIS
find [path...] [expression]

DESCRIPTION
This manual page documents the GNU version of findfind searches the directory tree rooted at each given file name by evaluating the given expression from left to right, according to the rules of precedence (see section OPERATORS) until the outcome is known (the left hand side is false for and operations, true for or), at which point find moves on to the next file name.

(Remainder of 700 lines removed)

What?  I don't care about expressions, operator precedence and all that rot, I just want to find a freakin' file!  I read that first paragraph and decided I'd go look for a simpler program.  I really didn't want to spend 30 minutes learning the tool just to find a file that I knew was in one of a half dozen places.  Kind of like flying a 747 down to the convenience store.

I'm all for powerful tools for advanced users, but not at the expense of simple tools for the most common uses.  Keep your find.  I'm going to write something usable.

Sunday, 20 January, 2002

More Super Computing

Everybody comes up with creative names for their Beowulf clusters.  At Catapult Systems, our computers are named for "things in the sea."  My computer, for example, is Blowfish.  We have Humpback, Stingray, Mantaray, Grouper, etc.  I was going to call my cluster "School" (i.e. a group of fish), but that name was met with some resistance.  For the moment, I'm calling it "The Fishery."  The individual computer names were easy enough.  I was going to call them fish1, fish2, etc., but then the president suggested onefish, twofish, redfish, bluefish.  I'll have to make a trip to the kids section at the local bookstore for the Dr. Seuss classic so I can get more names.

Right now, I only have two machines on the cluster.  onefish is a 333 MHz Pentium 2 with 128 MB of RAM.  twofish is a 200 MHz Pentium with 64 MB of RAM.  Both are running SuSE Linux 7.0 with pretty much identical configurations (SuSE minimum system to which I've added a few networking services and some development tools).  Below are the results from some benchmark tests I ran last night.  All times are to render the skyvase.pov using this command line:

./pvmpov +iskyvase.pov +h480 +w640 +FT +v1 -x -d +a0.300 -q9 -mv2.0 -b1000 -nw32 -nh32 -nt4 -L/home/research/pvmpov3_1g_2/povray31/include

Computer Time
onefish 1:53
twofish 4:52
cluster (onefish host) 1:24
cluster (twofish host) 1:24

So the addition of twofish to the cluster drops the time from 1:53 to 1:24, a difference of 29 seconds, or about 25 percent.  Not bad.  It'll be interesting to see what happens as I add the four 166 machines.

Saturday, 19 January, 2002

Indexing Web Diaries

My good friend Jeff Duntemann, former editor of PC Techniques and Visual Developer Magazine, has created a web page on which he is re-publishing his editorials and articles from the magazines, and also his VDM Diary entries from 1998 and 1999.  So far he has posted all of the Diary entries, and a handful of editorials.

Jeff has also begun an index of his personal web diary, something I've considered doing as well, but haven't wanted badly enough to actually go through the work of creating the darned thing.  But perhaps it's time.  As Jeff points out, it becomes increasingly difficult to remember what you've written about and when.  He uses Google to search his online diary.  I drop into a command prompt and run grep on the source HTML pages.  Both methods are silly.  Time to create an index.

Jeff also points out that making the index entries actually link to the diary pages is problematic because a diary entry's link changes a few months after it's written.  Having to update an index entry after it's created is unacceptable—too much opportunity for error.  I find it difficult enough moving a month's worth of entries onto a new page every month.  There's no way I'd try to update an index.  Time for some experimenting...

Friday, 18 January, 2002

My Own Super Computer

The super computer is running.  This evening, with the help of the company's CTO, I got the first two machines configured and cooperating and rendered the skyvase benchmark image using the parallel version of the Persistence of Vision Raytracer (Pov-ray).  As I said on Wednesday, I'm not setting any speed records.  It took these two machines a minute and 24 seconds to render the image.  I was in a hurry so I didn't run the test with the 333 alone to get a baseline for comparison.  Maybe I'll do that over the weekend.  I've configured the cluster so that I can VPN into the company network and then telnet to the host machine.  I don't have to be at the office in order to play with my cluster.

I couldn't have done things this quickly without the information found on thePondermatic page.  The step-by-step instructions, although somewhat dated and not perfect, saved me a lot of time getting and installing PVM and Pov-ray.  I'm in the process of putting together a single archive that contains everything required to build the raytracer.  Not only will this make it easier for me to install on my six remaining machines, but perhaps it'll help somebody else get things up and running quickly.  When I have it all together I'll post it on my downloads page.  Or perhaps I'll create a Beowulf page of my own. 

Thursday, 17 January, 2002

An Embarrassing Mistake

I've been programming computers long enough that I shouldn't have written the bug that one of my clients found today.  It's embarrassing not only because my client saw it, but also because the mistakes that caused the bug are things that I've done before and learned from.  But then I got in a hurry.

I made three mistakes:

  1. I used cut-and-paste to duplicate some code.
  2. I used negative logic in an if-then-else statement.
  3. It was "just a little change," so I didn't test the program thoroughly after making the change.

Of the three, the last is the dumbest and most embarrassing.  When my client first told me of the error I couldn't believe it.  How could I have made such an amateurish mistake?  Cut-and-paste in itself isn't a sin, but all too often you end up duplicating code and creating a maintenance nightmare because some time down the road you'll end up having to make almost identical changes to multiple pieces of almost identical code.  And the last...negative logic?  Almost always a bad idea.  For example, you can write:

if some condition is true then
  do this
else
  do that

Simple, yes?  It's also perfectly valid to write this:

if not (some condition is true) then
  do that
else
  do this

Don't do it!  When you come back to that code in maintenance mode six months later, you'll likely overlook the "not" and end up coding some of "this" where "that" is supposed to go.  Simple rule:  if there's an else, use positive logic in the conditional.

As I said, I learned all of these lessons a long time ago.  I guess it just shows that no matter how long you've been doing something, you've got to pay attention or you get sloppy.  Sheesh.

Wednesday, 16 January, 2002

Beowulf Cluster

I've always been intrigued by super computers and parallel processing machines, but never had access to even a dual processor machine.  When I got interested in Linux a couple of years ago I saw theBeowulf project and said:  "One of these days."

I mentioned the idea to the company president last week.  His eyes lit up and two days later I had two working Dell Dimension Pentium 166 MHz machines.  We have a bunch of decommissioned hardware at the office, mostly old Dell 166 machines.  Since last week I've scrounged a 333, a 200, two more 166s, a 133, and a 75.  All but the 133 are Dells.  This evening I installed Linux on the 333 and the 200, and got them talking to each other.  It's a start.  They're not doing any cooperative processing yet—maybe tomorrow or Friday.

So what am I going to do with a "super computer?"  Mostly I'm just interested in learning a bit about distributed processing.  That means tinkering it together, running other people's programs to verify that it's working, and then coming up with a project of my own so I can learn how to write code for parallel processing.  I have a few vague project ideas, but nothing I'd like to discuss yet in public.  You'll be hearing more about the project as time goes by.

Tuesday, 15 January, 2002

Aluminum Foil Deflector Beanie

I've been very busy lately with other things, and haven't taken the time to create diary entries.  Hey, it's not like I'm being paid to do this.  Call it a vacation.  Lord knows I could use one.

I ran across the Aluminum Foil Deflector Beanie site some time ago but forgot to mention it here.  I don't have time to give it a thorough review, so just go check it out.  I like to busted a gut when I first saw it, and when I ran across it again today I still got a few chuckles.  If it's good enough for Liz Hurley, it's good enough for me.

As I said, the Internet is endlessly entertaining.

Wednesday, 09 January, 2002

Airport Security Revisited

It’s surprising how cavalier security people are, less than 4 months after the WTC attacks.  While I was standing in line at the security checkpoint in Columbus this evening, an airport employee drove up in an electric cart.  He stopped, got out, and went through the metal detector.  The security person by the drive-through entrance (where everybody else walks out of the concourse) began searching his vehicle.  I watched carefully as she made a cursory inspection of the cubbyholes under the dash, and got out a rolling mirror to check underneath, all the while chatting casually with the driver and periodically glancing up at him.  She did not check under the seat, in the battery compartment, or in many of the nooks and crannies on the cart.  It would have been trivial to smuggle a small weapon or bomb through that checkpoint.

I’m convinced that all this “heightened” security is more for the FAA, airlines, airports, and Congress to cover their own butts and reassure the public that “something is being done” rather that to actually improve security.  It’s simply impossible to perform thorough security checks on all passengers and employees given the number of people traveling and the services we’ve come to expect, no matter how many additional inspectors we hire.

Tuesday, 08 January, 2002

Black Hawk Down

I bought the book Black Hawk Down over the weekend to read on my trip to Columbus.  Of course I've seen the advertisements for the movie but haven't paid them much attention and I haven't read any of the reviews.  I wasn't even going to buy the book until I read the back and discovered that it's a factual account of a U.S. Army battle that occurred in Mogadishu Somalia in 1993.

I couldn't put it down.  I started the book at the airport on Monday, and had completed well over half of it before I went to bed.  I stayed up late tonight to finish it.  I was totally blown away.

The author, Mark Bowden, did an excellent job of organizing the material he gathered from hundreds of interviews, hours of video footage and radio traffic transcripts, and uncounted documents.  He put it all together in chronological order and leads the reader through the entire sequence:  the initial assault, the shooting down of the first helicopter when things started going wrong, the rush trying to rescue the crew, the siege, and the final rescue.  This is all done in a very matter-of-fact manner and yet I was completely mesmerized.  Somehow, by presenting factual matter in a straightforward manner, the author was able to convey some of the terror that those men must have felt.  It's one thing to read a novelist's description of "our hero" dodging bullets, killing bad guys, and shrugging off a bullet or two to the leg.  It's something else entirely to read what really happens when a 7.62 mm round from an AK-47 hits the bone below the knee and exits through the heel.

Not that the book is all blood and gore.  Far from it.  Sure, people get shot and killed, but he doesn't really dwell on that.  I gained from the book a better understanding of just how confusing things get when the lead starts flying and the shit hits the fan.  

Highly recommended.

Monday, 07 January, 2002

A Bad Joke

A former girlfriend of mine named Stacie had this albino cat that she named Faux Pas.  Everybody called the cat "Paws" for short.  Stacie lived in a first floor apartment facing the parking lot.  Every day almost without fail, Paws would sit in the window waiting for Stacie to come home, and when he saw her drive up and get out of the car he'd let go with a loud and happy "meow".  I, of course, didn't know about this when I first started dating her.  One day I came by and Stacie's roommate Cindy let me in saying that Stacie had run down to the store for something or another.  We sat on the couch by the window, the cat between us, talking and waiting for Stacie to return.  When her car drove up, Cindy said "Meow, Paws, for Stacie identification."

Sunday, 06 January, 2002

Monopoly Tycoon

I bought the game Monopoly Tycoon on a whim last month at Fry's.  It's a real-time resource management game that doesn't share a whole lot in common with the board game.  But it's a reasonably good game.  It looks nice, it's simple enough to learn the basics in an hour or so, and has enough depth to be entertaining for quite some time depending on how much you want to fiddle with optimizing your businesses.  I don't usually like real-time games because the time element makes me feel rushed when playing against the computer.  Against human opponents games get downright frantic.  In Monopoly Tycoon, though, things happen at a slow enough pace that I actually have enough time to enjoy the game.

Another thing I like about the game is that its scenarios are well balanced and presented in order of increasing difficulty.  After the first half dozen or so (which you can complete in a matter of minutes), each of the scenarios (at least the 15 or so that I've played so far) is short enough that it can be completed in about an hour.  Contrast that with Railroad Tycoon and other similar games that require hours to complete.

My only complaint with the game is that it's a bit sluggish on my computer.  I have a 700 MHz Pentium 3 with 512 MB of RAM.  The thing should run like a scalded cat, but it doesn't.  Mouse response is terrible at times, and I just don't understand why.  There just isn't that much going on in the game.

Sluggish performance aside, I'm delighted with the game.  I can spend an hour or two enjoying a scenario and then put the game aside for next time.  At this rate, I'll be able to play it for years.  Go to the web site and take a look.  Download the free demo and check it out.  It's a very good game.

Saturday, 05 January, 2002

Compression Confusion

While we're on the subject of compression, I thought I'd do a little experiment.  I ran a program executable through a filter that turns it into a .HEX file.  That is, every byte of the file is represented as a 2-digit hexadecimal number in the output file.  The resulting file is exactly twice the size of the original executable, but is really just a different representation of the same information.  I then compressed both files into a single archive using WinZip's maximum compression.  Here are the results:

File Original size Compressed size
executable 8,588 bytes 4,441 bytes
hex file 17,176 bytes4,951 bytes

I'll admit my ignorance and say that I'm slightly puzzled by these results.  Whereas I didn't expect a general purpose compressor to figure out that the files are essentially the same thing and perform the hex-to-binary translation before compressing the .hex file, I certainly didn't expect a difference of 11.5% in the sizes of the compressed files.  I guess this just shows that there's still room for general purpose compressors to improve.

Friday, 04 January, 2002

Saving Bandwidth by Compressing HTML

I've been wondering recently why HTML traffic on the web isn't transmitted in a compressed form.  It should be an easy matter, I thought, to either store HTML in compressed form on the server, or compress it on the fly during transmission.  The client browser could then decompress the stream as it's received, and render it.  This may have been unthinkable in 1994 when a 90 MHz Pentium with 16 megabytes of RAM was top of the line hardware.  But today you can buy a 1 GHz machine with 128 megabytes of RAM for $500.  Hardware isn't the issue.

As it turns out, I'm not the first one to come up with the idea.  The HTTP 1.1 specification includes compression (either gzip or Unix compress format), and most browsers have supported the compressed formats since 1998.  So what's the problem?  Servers.  Neither Apache nor Microsoft's IIS support on-the-fly compression of content.  According to Peter Cranstone's article HTTP Compression speeds up the Web,  the potential bandwidth savings by using HTTP compression is 30%!  (That's typical when you factor in graphics and other formats.  Pure text performance would be more like 50 to 75% savings).  It's criminal that servers don't currently support this compression.

Things may be changing.  The article mentions an Apache mod (mod_gzip) that performs the compression.  IIS 5.0 also supports some compression, as discussed inthis article from Microsoft TechNet.

In some ways it's unfortunate that browsers already support HTTP 1.1 compression.  There are much better and more efficient compression methods than gzip, but we're pretty much stuck with that unless we come up with a new standard.  Either that, or come up with a thin client of some kind that can decompress any new format before it gets to the browser.  That would be browser specific, though, with all the associated problems.  But even gzip compression is better than no compression.  If the server that hosts my web site did compression, then this web page would take 20 rather than 60 seconds to download on a 28.8 K bps modem.

Yes, I know many of you have fat pipes and couldn't care less about people with modems.  But before you scoff at the idea of using compression, realize three things.

  1. You are in the minority.  Broadband just hasn't taken off like I and many other people thought it would.  (Ask me sometime what my @Home stock is worth.)
  2. A connection is only as fast as its weakest link.  All those people trying to download big pages with slow modems are hurting web server performance.  If the servers supported compression, those people would get their pages faster and response would improve for all users.
  3. You may not notice the difference if text gets there 30% faster, but large web site operators and small companies would certainly notice if their bandwidth requirements were cut by a third.

Thursday, 03 January, 2002

Outlook Spam Filter

 I've finally gotten tired of all the junk email I get.  I'm still not going to suggest legislation, but I've gotten to the point where I don't want to manually delete all that crap.  So I turned on the junk email filter in Outlook and started adding spam senders to the junk senders list.  I did this at home a while back, and at work (where I keep getting porn site ads in Spanish for some reason) just the other day.

I've had to turn the junk filter off at work because the first two messages (the only two so far) that it flagged as suspected junk were legitimate messages—one from a client and one from a co-worker.  I thought I'd take a look at Outlook's filtering rules, but can't seem to do that.  What I really want is an option like Outlook Express's "Block Messages from Sender".  If the option is there in Outlook, it's hidden somewhere in that bewildering Options dialog.  Somebody at Microsoft needs to take a very close look at that program's user interface.

Actually, the UI isn't my only complaint with Outlook, and I'm looking to replace it on my home system.  Eudora looks like it might be worth another look—I used it briefly in 1997 but didn't like having to swap out the MAPI DLL every time I wanted to receive a fax.  I don't receive faxes anymore, so MAPI isn't an issue, and my understanding is that Eudora has fixed many of the other problems I had with it.

Wednesday, 02 January, 2002

faqs.org and Amazon Honor System

I've mentioned faqs.org before (see April 14, 2001) as the best place to find Internet RFCs, standards documents, FAQs, and other types of documentation.  I noticed today that the site is in danger of being taken down because they've lost their funding.  Whoever was paying the bandwidth charges has apparently pulled the plug, so the faqs.org folks are asking for contributions.  Things are tough all over, I guess.

I'll make a contribution, simply because faqs.org is one of the most useful free sites around.  Although the information contained there is available in other places, faqs.org is the most comprehensive and best organized that I've found.  I sure hope they make it.

What threw me for a loop, though, was that when I went to the site there was a banner that said "Hi Jim, support FAQS.org today!".  It's an amazon.com "honor system" banner, complete with alink that describes how my personal information got displayed on that web page, and assuring me that no personal information was transmitted to the people at faqs.org.  Yes, you caught me.  I order enough books from Amazon that I'm set up for one-click ordering.

This is the first time I've noticed web tracking software in operation, even though I've known about it for quite some time.  I'm not worried about Amazon keeping tabs on me and reporting my Web surfing habits to others, but I sometimes wonder if there are others out there keeping track and not telling me about it.  And if there are, what's it mean to me?  Food for thought.  Maybe it's time to turn off the cookies.

Tuesday, 01 January, 2002

Godwin's Law

Godwin's Law says "As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one."  Furthermore, "there is a tradition in many groups that, once this occurs, the thread is over, and whoever mentioned the Nazis has automatically lost whatever argument was in progress."

In plain English:  sooner or later somebody's going to compare somebody else with Hitler or Nazis.  When that happens, the discussion is over and the person who brought it up has lost the argument.

The law was developed some years ago (for history and more detail, see this entry atfaqs.org) from observations of Internet newsgroup (usenet) threads.  It's an interesting observation that appears to apply equally to message boards of all kinds.  Recently, comparisons to the Taliban have become all the rage, and there are some people lobbying for a corollary that includes the Taliban and Osama bin Laden.

The Internet is an endless source of amusement.