« July 2000 | Main | September 2000 »

August 2000 Archives

August 1, 2000

Platypus face

Finished Cryptonomicon this morning. A mostly good book, but I have to admit that I was a bit disappointed by the ending. It was too vague, and tried to imply a lot of answers but really left a bunch of things unanswered definitively (but not in a "wait for the sequel" kind of way). Plus, some of the things that were tied up in the last few pages of the book were (IMHO) plainly obvious by that point, and it was just a relief to get to the point where they actually stated what you had been assuming for the last 100-200 pages.

It's a monster of a book -- over 900 pages long. There's a bunch of good WWII storyline in there, as well as a somewhat-weak storyline about setting up a data haven in the modern world with a bunch of cool crypto stuff trying the two together. So my review: the first many-hundred pages were ok (indeed, the style of the book takes a few shifts a few hundred pages in), but the ending was decidedly week. Still, I'd recomend it to others.

I spent most of yesterday reading and answering e-mail, but spent a few hours with Jeremiah discussing what he wants to do for a master's project. He was initially leaning towards doing STL in OOMPI (to which end he's been cleaning up OOMPI and gearing it up for 1.0.3 release -- a nontrivial task!). It's been good, I think -- it was an excellent introduction to "real world" computing, and how hard it really is to write Quality Software.

In the past few weeks, he has been running regression compiles and tests on all kinds of combinations of platforms, operating systems, and compilers. He hacked up a bunch of shell scripts to do this, and has generally learned a lot about it (try it yourself -- it's a lot harder than you would think). But this has inspired him to move away from STL/OOMPI and to tackle a long-standing issue for the LSC: a rock-solid regression compiling and testing agent that can be used to perform compiles and runs on all manner of combinations of setups such that it can be used to test software before it is released. We talked about this for an hour or two last night and brought up all kinds of issues. He seems pretty interested in it, and it could be a great project for the lab as well as a good master's project.

Had to fix up some weirdness on wedding.squyres.com today -- it seems that the Apache's were spinning endlessly and creating a huge load. Dunno exactly what caused it, but Ed and Don have been working on their fantasy football pages, so they may have tickled some PHP bug or something. Restarting apache seemed to fix the problem. Gotta setup virtual hosting for their hostname, though. Will do that tonight.

Heading down to Looieville soon -- taking the latest Mandrake CD with me, and will bring my SBN router with me. The SBN router will become the router down in Looieville (hence, the web server, router, mail server, and soon, the DNS server). The current Kentucky router will become my desktop workstation and just sit behind the firewall. Might do other services from that machine (i.e., DHCP, NFS for home dirs, etc.). I plan to setup bind in a week or two, too -- Darrell and I will be secondaries for each other. Hence, my router machine will likely become squyres.com as well.

I'll probably keep the mail services on pennyhost, though. Who knows -- I might take that over as well, but I'd want to find some web-enabled email management software first (i.e., a good webmail client, ability to change forwarding/storage, etc.). A project for a future day.

Just found out that the OIT Solution Center sells W98 CD's, but only the first edition -- not OSR2 (hasn't OSR2 been out for 1-2 years now?). How much do they suck?

Do you know what do I like about the OIT Solution Center? Nothing at all.

Answered some IMPI mail apparently from the guy at HP who is working on their IMPI implementation. Looks like we may have left a sentence or two out of the IMPI standard -- he raised a valid clarification issue. Oops. I've pinged Judy and Bill at NIST to see what they want to do about this (i.e., how to fix the doc).

Tons of LAM and other MPI messages remain in my inbox -- will have to start getting to them tonight...

August 2, 2000

18 wheels on a big rig

The drive from South Bend to Louisville is very boring. It's almost entirely highways (although annoyingly punctuated -- this seems to be my Word of the Week, by the way -- with stoplights here and there, particularly in Kokomo). While I was driving down I-64 between Indianapolis and Louisville yesterday, for no apparent reason, I started noticing the aerodynamic tops of tractor trailer cabs. I am neither a mechanical nor aerospace engineer, so I can't say exactly why this struck me. I started thinking about when these kinds of things were first introduced. I believe it was sometime during my grad school years; I have a vague recollection of touring a trucking company with my Boy Sprout troop and having the tour guy explain this "great new invention" that saved them $0.001/mile in gas. And that in just a few months, this invention (and all its associated installation costs) would pay for itself. So I started noticing the different kind of aerodynamic features on the tops of tractor trailer cabs today. Let me state the conditions and assumptions for my study:
  • I only examined tractor trailers that are of the 18-wheel or greater variety
  • Only trucks with one or more full-sized trailers were examined; no flatbeds, cylindrical liquid-carrying trucks, or other kinds of "big rig" trucks were examined.
  • The time of this experiment ranged between 7:30-9:15pm, EDT, on Tuesday, 1 July, 2000. The location was the approximately 110 miles on I-65 between Indianapolis, IN, and Louisville, KY.
The results of my study show that there are what I have categorized as four main types of aerodynamic fixtures in use on trucks today. I list them below, in order of frequency (highest first), and give some observations of each:
  1. Full-height aerodynamic bubble. A full-height aerodynamic bubble is a fixture on the top of the cab that extends vertically all the way to the top of the trailer that is being towed by the cab. It looks something like this:
     Wind  / ____________________________________________
          / /            |
         / /             |   Tractor
    ----/ /    Bubble    |      Trailer
         /               |
        /                |
       |               | |
       |      Cab      | | 
    I should clarify that there are many types of these full-height bubbles. For one thing, their lengths are highly varied. Some start immediately above the windshield. Others start anywhere to about halfway back along the cab. I won't even pretend to understand why this is, but if I had to make a guess, I'd say that it was somehow related to the angle of the windshield and/or hood (many of which -- contrary to what is shown in the simple pictures in this presentation, are sloped, not completely vertical). Additionally, the widths of these full-height bubbles can vary greatly. Some are have a distinctly rounded point and sharply fall away on the left and right side. Others have a much shallower gradient. Regardless, the one thing that all these fixtures share is that they extend all the way to the top of the trailer that they are towing (plus or minus a few inches). This bubble is typically part of the cab itself -- it seems obvious that the cabs were specifically designed with an overhead bubble in mind. As such, the bubble typically extended behind the cab right to the horizontal beginning of the trailer, providing a seamless channel for the wind to travel along until it hits the trailer surface. One conspicuous exception to this is UPS trucks; their cabs are the classic square/boxy type and have a bubble attached in a seemingly ad-hoc fashion. This leads the observer to believe that UPS "upgraded" their fleet for more aerodynamicicty in a cost saving paradigm shift (it should be noted that Louisville is UPS's national hub; hence I saw a lot of UPS trucks). Most bubbles had some kind of logo emblazoned on them (typically in the front), although some were just a plain color. Of the logos, the vast majority were corporate logos; a few personal logos were sighted (perhaps from independent truckers), but the vast majority were advertising in nature. Some even had lighted logos.
  2. No aerodynamic fixture. It was surprising to see many trucks still out there with no aerodynamic fixture at all. And the vast majority of these were the HR > ________________________________ Wind | | Tractor ====================>| Trailer | | ================= | | | | | Cab | | The wind comes in and hits both the square front of the cab and front of the trailer. Since the air is not directed, it must effectively 90 degree change in direction. This seems to be obviously inefficient (indeed, while there were a good number of trucks without fixtures, they were vastly outnumbered by the numbers of trucks that had some kind of fixture).
  3. Half-height aerodynamic fixture. The half-height fixtures (not quite rounded enough to be termed a "bubble", like the full-heights) -- and again, we're not talking about lengths or widths here -- typically only spanned half the distance from the top of the cab to the top of the trailer:
             Wind        ________________________________
        /===============>|   Tractor
       / _______________ |      Trailer
    --/ /              | |
       /               | |
       ================= |
       |               | |
       |      Cab      | | 
    The picture is somewhat misleading here -- there were two main aerodynamicicity se awareness of aerodynamicictytypes of half-heights:
    1. Tall cabs. Some cabs were just taller than average -- they had the same classic box/square shape, but had an obvious half-height bubble-like extension on the roof in an attempt to channel at least some airflow.
    2. Add-ons. Other cabs had half-height bubbles attached to the tops of their roofs (see picture, above). Some of these half-height bubbles had a fin located at their top rear that looked like an attempt to provide some measure of airflow channeling rather than having the wind have to make a sudden 90 degree shift. Something like:
               Wind      / _______________________________
                        /  |
          /============/ | |   Tractor
         / _____________/| |      Trailer
      --/ /              | |
         /               | |
         ================= |
         |               | |
         |      Cab      | | 
    Just as with the full-height bubbles, many of these half-height fixtures had logos emblazoned on them as well. The percentages were roughly the same between corporate, personalized, and plain as with the full-heights.
  4. Wind redirecting slab. The last kind of fixture is typically the simplest -- a small fixture on top of the cab that attempts to provide minimal airflow channeling, but provides some kind of sloped edge rather than force a 90 degree wind turn. There are two distinct types:
    1. Simple. The simple slabs were typically straight sheets (although a very small number of curved sheets were observed) with slightly tapered edges mounted at an angle on the top of the cab:
         Wind    /         ________________________________
                / /        |
               / /         |   Tractor
      ========/ /          |      Trailer
               /\          |
              /  \         |
         ================= |
         |               | |
         |      Cab      | | 
      Of course, as with the full-height bubbles, the exact horizontal placement and width of the slab varied. Note the strut support on the back edge. Some struts were designed such that the slab could be lowered for when the cab was driving without a trailer, which seemed like a good idea:
          Retracted slab
         =================    (No trailer)
         |               |
         |      Cab      | 
    2. Airfoil. Other slabs were clearly influenced by airplane wing design. They tended to look like inverted mini-wings on the top of the cab, something like:
                      /    ________________________________
           Wind      /     |
                    /      |   Tractor
                   / |     |      Trailer ____________/ /      |
                  _)       |
         ================= |
         |               | |
         |      Cab      | | 
      Although the ASCII art really doesn't do it justice. The mini-wings typically did not span the entire width of the cab -- they were usually between 1/2 and 3/4 of the width. I can't really speculate why an airfoil design would be helpful in such a case here. i.e., I'm not sure what the "win" is in using an airfoil over the simple slab -- the airfoil must be more expensive to design and build; it must have better wind directing capabilities somehow.
You may be asking yourself why I conducted of big rigs in our world today. It is a frequently overlooked, yet critical aspect of our society. I might even be so bold as to say that aerodynamic fixtures on tractor trailer cabs are the unsung heros of our society. Just imagine what a world would be without them. Well, actually, most people ignore these fixtures, so it probably isn't hard to imagine a world without them. Never mind. So I guess the reason that I did this is that I was bored. Plain and simple. LocalWords: stoplights UL LI pm OL Kokomo PRE aerodynamicicty UPS's

August 3, 2000

Chocolate moose musings II

Take II on this entry (note to self: write some kind of primitive HTML tag checker to ensure that tags are closed properly in journal entries).

Spent the entire yesterday rearranging the computer room in Tracy's (er... our) apartment. Reconfigured the network to incorporate my router box properly -- now I have a desktop machine (albeit with a flakey 3Comm card... #$!@$!@$!!!!) that is not responsible for the router, web server, etc., etc. Still not finished yet, but we're closer.

The new router is the latest Mandrake (but without the latest Kernel -- couldn't get that to work with ReiserFS properly. Screw it). Its currently running apache/php/mysql and sendmail. Future plans include mailman and bind. I kinds need DNS running soon, 'cause mail is currently kludged to look like it came from lsc.nd.edu (shh!!); need a proper squyres.com name other than wedding.squyres.com. :-) It doesn't appear to be perfect yet (Don's still having X forwarding issues via OpenSSH), but I've already removed the monitor and hidden it under the desk.

The desktop is a compaq desktop with serious I/O suckage. I just backed up all the data on it [temporarily] to AFS, leaving the way clear to upgrade it to the latest Mandrake when I return to KY on Saturday. I'm also a bit wary of upgrading that machine because it has some special SCSI drivers in it that took Dog and I *several* days to get right the last time we installed Linux on here. Let's hope that these SCSI drivers are mainstream enough to be in the main distros these days!

Also spent a bit of time yesterday helping Don and Ed configure their fantasy football league on www.fhffl.com (which is really wedding.squyres.com gotta love DSL!) -- it's part of a long-standing deal which is now probably defunct because Lummy is likely moving to IU, but what the hey. In helping them possibly move to a real database rather than text-file-based data storage, I had to explain a lot of database concepts to them (no DB background at all, but they're smart guys). We're having another infamous "beer-n-computer science meeting" at MBC tonight. Yummy. Will code for beer!

Mmmm... Chemical Brothers... mmm...

While I'm upgrading everything, I just got the latest linux netscape (4.74). Let's see what kind of mess it can create, now!

Went to see a Louisville River Bats minor league baseball game last night with Tracy and a bunch of people from GE (a freebie from the good folks at GE). The stadium is brand new -- only been operating this year. The game was by no means a sellout, but it there was a pretty good sized crowd there. Nice stadium, too -- bigger than the Silverhawks stadium -- it even has an upper deck. Their mascot is a purple fuzzy dude who has some flaps hanging off his arms that are supposed to pass as bat wings. He came out during the later innings with a t-shirt gun. Very amusing -- it could launch tightly scrunched t-shirts into the upper deck from where he was standing near the dugout.

Met several of Tracy's coworker's kids, had some beer, and mmm... ballpark hot dogs. Is there anything in this life as good as a ballpark hot dog and/or brat? Quite yummy. And to top it all off, we won the game. The River Bats had a cool 3-run homer in the first or second, sucked for most of the 2-7th innings, and then had a rally and won something like 10-5.

Now I gotta drive back . Will solve the X forwarding problem later (seems to have something to do with the fact that openssh X auth != regular ssh X auth, and the fact that Goofy's shoes, contrary to popular belief, were at least 2 sizes too small).

Where does it end?

When I was driving down to Louisville 2 days ago, I reset my sports watch (which has 2 timezones on it) to have the primary timezone as Louisville, and the secondary as South Bend (it's always been the other away around).

Likewise, I changed my "home time zone" on my pilot (mandatory and shameless plug: DateBk4 rocks!!) to be EST/EDT (vs. plain EST).

Likewise, with my laptop, the timezone has been switched to EST/EDT.

So in terms of all of my technology, I have moved to Louisville, KY.

August 4, 2000

Jeff's Journal

Tied up some loose ends today:

  • Checked into the error that Arun reported that he was getting with parallel bladeenc; couldn't reproduce it. Sent him the latest copy to try. Turned out to be an embarrassing use of a variable before it was initialized in LAM's mpirun. Additionally, we accrued command line arguments into a fixed-length string that could be overflowed (oh for STL strings...). Doh!

  • Replied to mp3check author dude (see previous entry).

  • Finally fixed the "delete" button in the MPI listing stuff; I think it was malfunctioning before and deleting all the data in the database. Oops!

  • Replied to Bill George at NIST about some pending IMPI errata w.r.t. IMPI_H_ACKMARK and IMPI_H_HIWATER --
    the IMPI doc doesn't clearly state how these values should be arbitrated. Bill and I are discussing what the mechanism should be. Actually, the mechanism is clean: min(a, b). The discussion is between where the value should be applied universally to all hosts or on a host-pairwise basis. I'm [currently :-)] in favor of the latter. We'll see how it works out.

  • Installed GNU mailman 2.0b5 on mail.lsc today. Apparently the previous versions had some security problems. Oops. I tried to setenv CFLAGS to -fast, 'cause there is a small C portion in mailman (most of it is in python), but it still used just "-O". I suspect non-careful use of AC_PROG_CC in its configure.in script (curses, autoconf foiled again!!).

  • Got minime in a compilable state again. Working on a primitive html tag checker so that I won't leave unterminated tags again. It should bitch if you leave tags unterminated when you finish typing the rant, and automatically closes them if you "submit" without fixing them. Simple stack-based thing (gotta love the STL!). I also added warning if it removes "LocalWords:" lines when you submit (not when you re-edit).

  • Finally had a meeting with the Grad School people (they're nice and reasonable people once we all get in a room together and talk over the issues -- they even want to take us out to lunch for our troubles. Free food -- strong>woo hoo!!), and we worked out all the "final" kinks in the ndthesis style. Changed a few things in the sample thesis, and we should be good to go!

  • Helped Jeremiah ship OOMPI 1.0.3. It's on Freshmeat now --
    everyone go check it out! Artificially inflate our stats! Whooo hoo!!

Still to do:

  1. Finish dissertation. Graduate. Earn lots of money. Take over the world (the DomeCam's still down, after all).

Must go join Brian and Pete for wings, beer, and a last "hang out" night at Chuck's old place.

I say, deliver me from Swedish furniture!

Tales of an ND grad student

Got back up to ND. Lummy was here in the office -- I thought he was still in CA; pleasant surprise. Looks like we'll be heading to Berkeley in a few weeks for a few days for some design meetings about the BLD. Should be fun and interesting.

OOMPI 1.0.3 is just about ready to roll, but I found a possible problem; may require more testing...

Inilib is getting closer, too -- perhaps in a few weeks. It still rocks, though -- it's heavily used in this journal client, for example (gotta love pre-release access!). :-)

Spent last night talking with Ed and Don about databases and their fantasy football setup. They bought the beers and dinner, so I guess I couldn't complain. I gave them a database on www.fhffl.com, and they'll start playing with the setups that we described last night. They do some nifty things with pulling down info from other web sites (NFL sites and the like) to feed their data pool.

Mmmm... the power of PHP and MySQL... mmm...

Got a reply from the mp3check author dude (it doesn't work on big endian machines). He claimed to have fixed the endian problems, but I found a bunch of compiler issues (I'm assuming that he's using g++ --
wow, does g++ suck!). Even after getting it to compile, it still doesn't work on big endian machines properly. Bonk! I sent him a reply with tons of info to keep him busy.

It seems that I have way too many MP3s out in AFS space -- I filled up the lums CCSE volume. Whoops! The irony is -- I literally tried to download them all to wedding.squyres.com earlier that day, but realized that I don't have a hard drive large enough for all of them, so I deferred to this weekend when I'll buy a new hard drive large enough to hold them all (I currently have 8GB of MP3s, and that's perhaps 1/4-1/3 of my CDs). Since the CCSE volume was full, I downloaded a bunch of them and deleted them of AFS to give much more working space.

August 5, 2000

Leaving Las Vegas^H^H^H^H^H^H^H^H^HTurtle Creek

I closed a major chapter in my life today. I left the apartment where I have lived for just over 6 years. Indeed, I have lived in South Bend more-or-less continuously (minus some summers and Army time) for a few days shy of 11 years -- the majority of my adult life.

However, I'm about to start a new chapter, too -- I'm moving to Louisville, KY, to go live with my new wife, Mrs. Tracy Payne Squyres.

At the risk of sounding sentimental, I feel compelled to present a few reflections of my mixed feelings.

I have been gradually moving my stuff down to Louisville over the past two months or so. Still, today was the final day of my lease, and (by design) I loaded the last of my stuff in my car this morning, cleaned the apartment thoroughly for the last (first?) time, locked the door, and left.

It was surprisingly hard. I'm not an overly-sentimental kind of guy; indeed, I'm from the MTV generation and have the attention span and short-term memory of a skiddish cat. The apartment itself is pretty crappy; it's small, didn't have too much sound protection from other apartments in the building, had very hard water, crappy cabinets, etc., etc. But it was home. I have lived in that location for quite a long time -- it had become a part of me. I've had many good times, many bad times, and some just downright weird times in that apartment. The good times always come to mind first, which is one of the reason that it was hard.

This morning, as I was cleaning and packing, I was musing on the history of my time in that apartment. This is the end of a 7 year streak -- I initially moved in with Mr. Huy Phan (EE grad student) back in the summer of 1994 (he had some other roommate for the previous academic year; I never knew who it was). Huy eventually moved out and went back to France. Mr. Brian McCandless (CS grad student) then moved in with me. Brian graduated a few years later, and Chuck (EE grad student) moved in. Chuck was only around for a semester and a half; Kevin Barker (CS grad student) moved in before Chuck even left. So that apartment has seen a continuous stretch of a single lease since 1993 -- 6 people. And I got the clean the apartment today. Did I get the short end of the stick, or what?

I found all manner of interesting things in the apartment today:

  • A grand total of 41 pens, pencils, markers, and various other insundry writing utensils. And all of my commonly-used pens are already down in Louisville -- where did these come from? Why did we have them? We certainly didn't write that much. A mystery.

  • I found -- still in shrink wrap -- a mini gas grill. Who the heck did that belong to?

  • I also found a boom box. I have no idea whose it is, nor how it got into my apartment. The left channel doesn't work, but I'll bet that it could be fixed fairly easily. I gave it to Pete and Brian.

  • The couch that Tracy bought (used) in her freshman year and gave to me when I moved in the apartment in 1994 has now been passed on to Pete and Brian. May it continue to give them good service.

  • The Christmas lights that have hung in the apartment for years (literally), and have been on continuously since April or so (it's all about uptime, baby) have also been bequeathed to Pete and Brian as a symbol of Bachelorhood.

All in all, I was surprisingly happy -- albeit sentimental --
about moving out today. This is surprising because I absolutely detest moving; after loading each carful of stuff over the past two months, I always found myself emotionally drained because a little piece of me was leaving. But today was different. I realized that I actually do have closure with this place -- I'm ready to move on and become a husband and start the next chapter of my life. This move has been planned for quite some time now, and I guess that I've been subconsciously preparing for it all along.

Flashback to last night. I went out with Pete (just graduated CS from ND in May, and is just starting as a CS grad here this semester) and Brian (CS undergrad, starting his senior year here at ND) -- the same guys who inherited most of my stuff. For those of you who don't know, Brain has been one of my students for a year or two now; Pete worked for me for about a year as well. We went to BW-3s, had some wings and beer, and played trivia. It was much fun. We went back to Turtle Creek, had a few more beers and pizza, and used the Smoking Table one last time. More fun. In short, it was a perfect evening; we just hung out, were generally stupid, and got a little philosophical at times. These guys will become the next set of urban legends in the College of Engineering at Notre Dame; I am leaving ND in capable hands.

Back to today.

I said goodbye to Troy (one of the maintenance guys at Turtle Creek), and asked him to be nice to me when he does the final inspection of the apartment. He always liked us, and took pretty good care of us (when things broke, he always came pretty quickly and fixed them). I said goodbye to my apartment (it's a thing that I have -- I always have to say goodbye to places that I've lived), and got in my car and drove away.

Metallica's "No Leaf Clover" was playing on the radio as I drove away.

Goodbye, Turtle Creek.

(that was surprisingly hard to type)

Louisville -- here I come!!! Woo hoo!!!

#              ##
### #
# #
##### #
# #
### #
# ##

(yes, that's a Unix banner ":-)")

Chapter 29

9:45pm EDT. Took a little longer than usual because of weather and construction.

But I am now home.

August 7, 2000

Tales of a Fourth Grade Nothing

Spent much of yesterday opening wedding presents. Yummy! Got lots of free stuff. Got lots of stuff that we didn't ask for, but hey --
don't look a gift horse in the mouth (who came up with that expression, anyway?). We cataloged everything in our handy-dandy wedding software database (don't laugh -- there are a good 10-15 wedding software packages out there these days; it's big business! And it was truly helpful in organizing stuff). Now comes the hard part -- gotta write all those thank you letters.

Got a 40GB hard drive from CompUSA for all my MP3s. I'll install that RSN. Got some net books at B&N, too. There's a new Cussler book out, but it's still in the Big Paperback size (which is just about as expensive as the hard cover). The final Reality Dysfunction book is still not out in paperback (bonk!). And the latest Area 51 book is still not out yet. (Ok, I just admitted it to the world --
I'm into cheesy sci-fi and action books for recreational reading. You'll deal.)

Got some replies from Tord about parallel bladeenc. I read them, and I think I understand what he's saying. Unfortunately, action on these items gets pushed on the stack until other things finish up. :-(

Setup GNU mailman on wedding.squyres.com for Don and Ed. Might move my journal mailing list here, too, but probably not before I get bind running to give this machine a decent name. Still haven't quite decided what to do with squyres.com mail yet, because several other members of the family use it, and I don't feel like hosting it. Hmm. Will require some thought.

Went over to Laura and Paul's later because they had tons of extra food from a wedding that they went to on Saturday. Saw Melinda and Reuben as well. Good fun. Came back and crashed afterwards. Mmm... sleep...

Oops - the GNU mailman that I setup for Don/Ed isn't quite functional. Had to fix a few things (I only briefly tested the web interface yesterday before we left for Laura/Paul's). Mailman's woes seem to be related to some sendmail issues, too.

I've now spent a good chunk of this morning fighting with sendmail w.r.t. my firewall and whatnot, and getting it to do what I want (it still doesn't). I remember the days when sendmail setup was simple and easy to understand. Wait... no I don't.

August 8, 2000

Not above me...

What do I like about Netscape? Nothing at all.

I saw that Netscape 6pr2 was out today. I'm waiting for a huge disk copy to complete so that I can put my router back together (just installed a 45GB drive to hold all my MP3s -- legal MP3s, mind you; I own each and every CD!), so I figured that I'd get the latest mozilla and give it a whirl.

I downloaded it, and it was surprisingly small (45k .tgz file). Expanded it, and it makes a subdir with "netscape-installer" in it. I ran it. Brings up a little GUI. I clicked on the required buttons, and clicked on "Install" to start the process.

A window pops up with a progress bar in it, and Something starts happening. It claims to download some stuff, but then dies horribly. After trying this several times with identical results, I finally got "./netscape-installer: line 48: 21437 Segmentation fault (core dumped) ./netscape-installer-bin --sync" and a friendly core file. Whoops. I must have something setup wrong. Check the README file. It directs me to the release notes on in netscape.com.

I was amazed to see in the release notes:

Currently the installation causes a segmentation fault, but the installation is successful and Netscape 6 can be run.

What morons do they have working at Netscape thinking that releasing an installer that they know to seg fault is a Good Thing? Additionally, they clearly don't understand why it is seg faulting, however, because netscape certainly didn't install on my machine, and I can't run it.

A truly amateur performance from the folks at Netscape. I'm reminded of the mantra of many freshmen and sophomores, "well, it finally compiled, so it must be right!"

I drank what?

Spent too much time on ndthesis yesterday. Hopefully, we're 100% done with it.

Went out to switch my cell phone down here to Louisville yesterday (SBN's Alltell just got bought by Verizon, which is everywhere --
quite handy for me!), and found out that I only had something like 20 days left on my contract. So I ended up upgrading to one of those whacky digital phones that has voice mail, call waiting, no roaming (important because I'll be traveling a bunch), etc., etc. I think it even writes optimized high performance scientific code.

Talked to Faller yesterday; he sounds like he's doing well in Bahston. He had some ideas regarding parallel bladeenc and Tord's replies to us; he's still convinced that we can generate output from parallel bladeenc that is diffable to the serial bladeenc. The crux of the issue is that the parallel and serial outputs are the same up until the last frame of the first slave's output. And even that frame is the same... until a point. This is the point where slave 0 runs out of input data, and therefore -1 pads the rest of the frame (it took us a while to understand that this is what was happening). The next slave's output is completely different from the serial output --
it's not like the serial output is then just shifted down into the next frame (which would be easy to fix). I think it has something to do with what Tord mentioned: that MP3 is only differential within each frame, but does depend on a small number of bytes from the previous frame (which is somehow not strictly classified as differential across the frames -- I think it has to do with framing setup and the like, although it does affect the output data).

Anyway, Jeremy is convinced that we can have the master re-frame the output data from the slaves and thereby create diffable output. He's gonna spend a few days reading the MP3 file formats and papers; we'll talk again when he's done.

I rediscovered the Goodness of Streaming Audio yesterday. Gotta love DSL.

I was hit by two inspirations a few minutes ago, which I promptly mailed off to Arun (who is giving 1.5 LAM talks today):

LAM: The Code to Glory
PVM: The Code Less Traveled

Don't get me wrong -- while I'm certainly not a PVM guy, nor would I ever write any new code in PVM, let us not downplay the importance of PVM in the Grand Scheme of Things. It was the first widespread "standardized", portable parallel code tool ("standardized" is in quotes because it was really only a research project -- it wasn't a real standard). Hence, it was the first time that you could write a parallel code on one kind of machine and run it on others (rather than have to re-develop it for every new kind of parallel computer that you tried to run on). Plus, it worked on clusters -- a prime candidate for development of parallel codes (especially considering that running on the Big Iron costs $$$).

So my statement really reflects the Way It Is Now -- most new parallel users use MPI, not PVM. Indeed, many parallel hardware vendors don't actively develop PVM anymore; they only develop their MPI. However, there are probably uncountable millions of lines of legacy code out there. PVM is like fortran -- it will never really go away.

And this is not to say that MPI won't some day be replaced by something More Useful. I'm quite convinced that MPI is not The Answer; it's just the best that we have right now.

Spent this morning answering some backlogged LAM mail. Will spend the rest of today finishing off all the current backlog of LAM mail, continuing setup of queeg (my Linux desktop -- was having some problems getting SSL/pine to compile), wedding gift reconciliation (one of our registries screwed up an allowed people to buy 3-4 of an item that we only ask for 1 of), and minime hacking.

In the words of the Ancient Masters, "After 3 days without programming, life becomes meaningless."

August 9, 2000

Smashing the stack

Spent time yesterday and today going over the complexities of Health Insurance. I have become convinced that Health Insurance is a scam run by a bunch of ex-patriot armadillos down in Arizona. Only they could dream up such convoluted and bizarre rules, regulations, policies. Or perhaps it was just a committee.

I say, deliver me from ex-patriot Arizonian armadillos!

Engineering: overthrowing armadillos.

In other news, I finished the next round of enhancements for my journal client:

  • it warns you about unclosed html tags, and will [admittedly stupidly] close them if you submit without fixing them

  • it removes some tags automatically, like <html> and the like

  • it warns you and automatically removes "LocalWords:" lines so that you can run ispell on your entry and not have to worry about remembering to delete those lines before you submit

Perk pointed out HTML Tidy, which does more or less what is outlined above, but doesn't do the disallowed-tags thing. But it is much smarter about closing tags, replacing incorrect tags with real tags, etc. It also [unfortunately] automatically adds a <TITLE>, which I don't want it to do.

Who knows -- might replace my functionality with HTML Tidy someday. But this works for today, and prevents one <strong from messing up all journal entries.

All for the glory of LAM.

Sadly my telephone headset is falling apart. I need new ear muff thingies (the current ones are flaking off one little black flake at a time), and some wire in the cord is loose -- it cuts in and out randomly. And you know what they say about hardware problems... Actually who the hell cares what they say? Just go buy another one; hardware isn't interesting.

Finally, I got to spend a little quality time with minime today (woo hoo!). Continued to work on the encryption and authentication schemes for the sockets; not quite right yet, but see an older journal entry that describes the scheme.

Minime: coding for fun and profit. Actually, wait, I'm a grad student. s/fun and profit, leaving us with "Minime: coding for".


August 10, 2000

Cleveland rocks

Got minime to compile on Linux again. A while ago, I did some ugly things with signals in a solaris/sysv-specific way that disallowed compilation on Linux for a while. Finally got around to fixing it today; this marks the first journal entry in quite a while that has been submitted from a Linux box instead of ssh-ing to ND to use the Solaris journal client (which is ironic, actually, since the journal server is sitting right here next to me --
ssh-ing up to ND made the data go much farther to get to its ultimate destination). Whooo hoooo!!

At Brian's advice, I went and got Mozilla M17 (source). It's still compiling.

I love inilib. It does such nice things for me. :-)

Motivation for saying that: Perk and I have been having a conversation about using the "HTML Tidy" program to clean up journal entries before they are submitted vs. using an internal parser (that I have already written). Turns out that "HTML Tidy" is 95% better --
it's much smarter about closing tags, but it does a few icky things. Best way to resolve it? Have a user-definable option! Let them choose between the internal parser and HTML Tidy. And inilib just takes care of storing that for me. Make today an Inilib day.
Favorite phrase of today: "beaten on the head by a Mozilla stick."

Faller asked for a copy of the LSC Coding Standards today. Must be spreading that to the good folks at Analog Devices. LSC: The World Domination Tour.
Did some LAM work today; added auto-generation of man pages from structured comments in source code. It's something a) I foolishly promised on the LAM list, and b) oh yeah, users indicated that they wanted on the LAM user survey. Kinda neat, actually. Had to re-create man pages for MPI_Comm_spawn and MPI_Comm_spawn_multiple --
I had made all the MPI-1 man page comments back on Dec 31/Jan 1 while I was waiting for the world to implode. Had to do some icky things to fool automake into a) putting them in the distribution, and b) installing them when "make install" is invoked. Yuk.

Speaking of LAM, finally resolved Mr. Pascal's issues with LAM/MPI. Turns out that you have to use a special option to the Free Pascal compiler to tell it to link to libc; if you manually link with "-lc", it won't work (for lack of a longer explanation). I asked about such a thing a month or two ago in the initial set of e-mails with Mr. Pascal, but he didn't know about it then. Yesterday, we initiated contact with the Free Pascal developers, and they immediately mentioned this special switch. Oh well, live and learn (but try to avoid Cobol whenever possible).

We're still getting bounced messages from the LAM list from <ptavares@dsg.dei.uc.pt>. Dog claims they're nowhere to be found on mpi.nd.edu's sendmail queue, but the bounces keep coming back. We'll probably get them for another 2-3 days, <sigh> I'll be very happy when we can switch to GNU Mailman (gotta wait for IU vs. ND decision first).

Continued to rip my CDs. It's going nice and slow, but now I have plenty of disk space.

Back to minime hacking...

August 12, 2000

Entry of a 1000 URLs

I'm up in South Bend, and yes, my cell phone works. It's not in digital mode, though (bummer!). I found that yet another company has been sucked into the Verizon Wireless void -- Air Touch Paging. So I tried to send myself a test text message from their web page, but it didn't work. Perhaps it will when I return to digital areas on Monday...

In other news, I had a good chat with Loomsdale yesterday (sorry, that's Dr. Loomsdale to you, Gentle Reader). We haven't really connected recently, especially with this whole wedding thing of mine that happened shortly ago. T'was good to catch up. Got a few more details on the whole IU vs. ND thing (sorry, not at liberty to put them in my journal, so get off my back already, ok?!?!) -- we'll see how that plays out.

This led to more chats with Jeremiah, Rich, Dog, and Brian, which led to nothing productive getting done yesterday. Dog and I finally gave up, got some food at Wendy's, and went to see Scary Movie. If you accept it as a totally stoopid movie, it's actually quite amusing.

I introduced Dog to some of the wonders of PHP and MySQL last night, too.

Stayed at Ed and Suzanne's last night. Saw them this morning and we chatted for a while. Came in to work and did various LAM/MPI things:

  • squashed a bug relating to -laio not propogating down to hcc and hf77 properly when compiling with ROMIO

  • squished another w.r.t. profiling and using both MPI_Init and PMPI_Init in the same program

  • played with CVSweb and ViewCVS, mainly to see if it would be worthwhile to put the LAM/MPI CVS repository out on the web for read-only access (a thought that has been nagging me for a while, especially since 6.3.3 has taken so long to release!). Decided that I liked ViewCVS better than CVSweb. I mailed the LAM/MPI mailing list to see if anyone would be interested.

  • in the middle of fixing some warnings from the Portland Group C compiler

  • played some more with the doctext package from the MPICH group to fix some bugs w.r.t. the nroff-generating code. I'm iterating with Bill Gropp about this -- it affects the man pages that get generated for LAM/MPI.

But now, on to more interesting things! Minime calls. Had some interesting minime thoughts yesterday while driving up for Looieville. We'll put those in a separate journal entry.

Louisville->SBN thoughts

Had some interesting thoughts about minime yesterday while driving up from Louisville:

  • Currently, there are two kinds of endpoints for conduits: unix sockets and TCP sockets. How about creating a third kind -- an internal endpoint. This would allow modules within a single minime to be able to talk to each other across the already-existing conduit abstraction.

  • The minime boot service should be a module. I think that this has been stated before, but the ramifications of this really only occurred to me yesterday. The core minimed will be really dumb, meaning that it only knows how to:

    • launch itself

    • listen for messages (on three different fronts)

    • make connections (on any of the three fronts), which will include authentication and/or encryption

    • receive messages on these connections and give them to the module that will handle them, or handle them itself (e.g., "shutdown" messages)

    • shut itself down in an orderly fashion

  • Astute readers will realize that the previous bullet precludes routing messages across multiple minimed's -- messages always go from one minimed to another, and no further. No problem -- have a "router" module in the minimed that handles this kind of message passing (for non-fully-connected networks, for example) to get from point A to point B -- a la nsend in LAM (although implemented completely differently).

  • Hence, we're looking at a small minimed with probably the following core set of modules:

    • network minime boot: ability to launch minimed's on other hosts and build the minime mesh. Currently only planned to execute once -- not add/delete from the mesh.

    • init.d minime boot: ability to launch minimed at boot up time and either look around to see who else is up and join a mesh (this will be hard) or have a pre-defined mesh (a la a config file, which is much easier) that indicates what other nodes should exist, and just join that mesg. This may be repeated multiple times to add/delete nodes as nodes go up and down. Although I'm defining this to be in the core, I'll likely add this part last.

    • message router: transparently move user-level messages from point A to point B through some route in the minimed mesh. This will be a higher level of messages that conduits/self-executing messages. High-priority messages should use a "c2c"-like routing (which may still involve multiple hops -- i.e., from gateway to gateway, such as A->gateway1->gateway2->B -- but not have to go all the way through the mesh), where low priority messages can go through the minime mesh (i.e., potentially more hops).

    • group operations: perform an operation (or set of operations?) on some group of nodes in the minime mesh, and collate the results in a scalable fashion (most likely using some kind of tree over the minime mesh).

    • uptime: report uptime and some other useful stats (first real useful tool and proof of concept). Will probably use the group operations module to get the uptime for all nodes in a cluster, for example.

    • fork/exec: run arbitrary user programs.

    Obvious security questions have to be addressed, such as only allowing specified authentications to do certain actions such as shut down, run arbitrary programs, etc., etc.

August 16, 2000

Is one of us supposed to be a dog in this conversation?

It's been a bit since my last journal entry; the lapse is mostly due to travel. Woof! So here we go...

Added a few new features to the journal client: you can now preview your journal entry in lynx and/or netscape before submitting it. I'll probably add one more option to run HTML tidy (either automatically or manually -- haven't decided yet).

Spent this past weekend at Notre Dame. I was supposed to meet some friends, of whom one is entering ND's law school this semester. Signals got crossed (read: I had the wrong time in my palm pilot --
DOH!!!) and I missed them. So I spent the weekend with Suzanne and Ed, and helped them buy a laptop, second hard drive for their desktop (for Linux, of course), and a new monitor. Spent much of Sunday afternoon/evening installing stuff on the latop and desktop. The desktop's modem was flaky under linux; it was most frustrating. I think I have a spare to send to them.

I found out that I definitely don't have text paging enabled on my cell phone. I got back to a digital area (why is Verizon/SBN still analog? Grumble) and tried to page myself from their web page. It said that the page was sent, but it never came in on my phone. I guess I could pay more for such a thing, but I really don't think that I need it.

Saw Lummy on Friday and Monday; had some good chats with him. The Big News is that he's going to stay at ND. He accepted ND's offer, and we're just going to reap the benefits from it (read: lots and lots of funding!). Some side effects: guaranteed post doc funding (woo hoo!!), a new computer for me (800mhz soon-to-be linux box). Rock on!!

I noticed today that ND's college of engineering started giving out engineering rings this past graduation. I want one! Luckily, I've got a graduation left at ND, so I'll likely get one. :-) Pretty cool things, those rings.

Started looking at Vorbis as an alternative to MP3. I've had a disappointing show of contributions and whatnot from the bladeenc community -- Jeremy Faller and I still have some unanswered questions about MP3. Ogg/Vorbis appears to be a much cleaner process, and an active development community. It is supposedly Much Better than MP3 in terms of quality, documentation, legal issues (i.e., there are none), and encoding speed (the beta encoders are already faster than real time). They even have an XMMS plugin, which means that it's good enough for me!

I started a "has anyone thought about parallelism?" thread on the vorbis-dev list today and got several immediate replies. Talked to one of the dudes who is -- I think -- one of the main contributors, and we came to the conclusion that it should be possible to do a similar thing to the vorbis encoder that I did with parallel bladeenc (although there are still some unanswered questions). So it might be interesting.

Must continue with minime hacking now... must code minime... must code minime... must code minime...

Netscape must die

Three times, netscape has crashed and rebooted my linux desktop.

I was sitting across the room, minding my own business -- not even near the computer, mind you, when it suddenly (and with no warning or provocation), rebooted.

"Crap!", I thought. "Must have something to do with the fact that Compaq sucks," instantly blaming the hardware.

So I rebooted. KDE fired up and put all my windows in the wrong place (as it normally does if you reboot without quitting KDE). So I replaced them, and then fired up Netscape.


Or should I say... the sound of one hand clapping.

Yep. Instant Cold Miser -- Mr. Freeze.

By now, my tried little brain is starting to put the two events together. I reboot (again), and place all my KDE windows (again). I futz around, check that my mail hasn't gone into oblivion on the server because of two crashes when my mail was open. Generally everything seems to be fine.

So I fire up netscape.

Do you know what happened?

It sucked!! That's what happened!

So now I'm trying to download the latest and greatest netscape in the hope that it fixes whatever the hell it decided to do to itself earlier today. Try downloading netscape with lynx. Just try it. <sigh>.

Netscape must die.

August 18, 2000


Another day of coding.

Sent off an old modem to dad (mom's modem got fried last week). Sent an old CD rom to John, along with an ISA card and associated cable. Damn, I'm just a nice guy.

I'm re-downloading M17 mozilla (from CVS this time, as if it will make a difference) so that I can get SSL in mozilla (see previous journal entry about how netscape must die). It will probably compile for the next few hours.

inilib meeting with Brian today got pushed off until tomorrow morning.

Did a reconcile of our wedding registry gifts between what the stores say we got and what we actually got. We got more of some things than the stores listed, which means that people found deals elsewhere. I'm all in favor of people saving money when they buy us stuff.

(netscape just finished downloading itself, and is now running configure)

I really need new foam ear thingies for my telephone headset --
they shed on my ears and it looks like I have a five o'clock shadow on my ears (and my, that's attractive!) after using it. Must remember to go to Radio Shack tomorrow...

Getting closer to LAM release. The RedHat folks are freezing this weekend (did I mention this in a previous entry? Can't remember), so they want a version that is "as close as possible", but we're anticipating putting a out a LAM update RPM when it goes stable. Ugh
-- and he (the RedHat Guy, whose name has a non ASCII character, so I can't type it too easily) found an embarrassing bug in the 6.3.3b27 that I put out earlier today. 6.3.3b28, coming right up!

Found a particularly annoying bug in tping today; I thought it would be a simple bug to fix, but turned out to be hard to find until I realized that some buffers were getting allocated too small, thereby creating overflows. Damn the overflows -- LAMming speed!!

I have one major issue that I want to solve before putting LAM through all the regression tests; he can't get PTY support to work on SCO Unix -- at least one LAM node bails before MPI_Init. Hmm. I can't tell if it's his setup or if LAM is actually doing something wrong. Hmm.

dell.com says that my new computer is estimated to be shipped on August 22. Yummy!

I ripped all my Yes and Led Zeppelin CDs today. I have many, many Yes CDs. I'm in the middle of Pink Floyd now. I installed the beta vorbis XMMS plugin, and it works like a champ. However, it takes up 100% of the CPU vs. single-digit% when playing MP3s. Hmm. Let's hope it gets better (it is still beta, after all).

My lynx, netscape, and LocalWords enhancements to the journal client continue to please me.

My DSL alarm light just flashed alarmingly. I think it's a signal for me to go to bed.

Tastykakes Too

Oops -- I just realized that there are two outstanding LAM issues: the PTY/SCO deal is one thing, but there's also the fact that the fault-tolerant mode of LAM also seems to fail under SCO.

This leads nicely into my theory of a secretive bouguios crypto-fascist plot by Caldera and the flying monkeys (you know, from the Wizard of Oz). You see, they just want a nice cup of coffee in the morning. Not being a coffee drinker myself (reference: worst cup of coffee ever made at Ft. Knox), I don't quite understand this want-slash-need, but hey -- whatever fills your tires.

So how does a good cup of coffee relate to problems with SCO/Unix and LAM? Let me explain.

The monkeys are actually all from a fairly rural town in Wisconsin. They did the Oz gig a few years ago, but do the issues with the MPAA, they really got screwed with the licensing deal (you should have heard them today after hearing about the DVD/DeCSS case --
you've never shrill screeching until you've told a Monkey that he can't pirate a DVD of his own movie. In effect, you're telling him to go spank himself). Hence, moved (where else?) to Canada, where they heard that flying monkeys could get good work.

There were several years of various overnight delivery service jobs, telephone repair jobs (who else can safely get to the top of those telephone poles?), and that whole Planet of the Apes thing (had to hide the wings for that one, and bulk up on steroids to boot), but nothing really grabbed their passion. These years were generally considered to be "The Blue Collar Years".

They eventually migrated back to the States, and, as all good monkeys do, got jobs in upper-level management. I won't tell you where, because a) it would first surprise you, but then you would say "oh, well that actually makes a lot of things make sense", and b) there's a good chance that you work for one of them. Yes, you, Gentle Reader.

So the monkeys prospered as upper-level managers. They got married, got a house, an Audi, had 2.4 flying monkey children, invested in their 401(k) plans, etc., etc. They were generally successful flying monkeys. But still, there was no passion.

To be a monkey
And a flying one at that
Yea -- enlightenment

One day, one of the monkeys finally realized just how passionless their lives were. They had a big meeting with all the flying monkeys (tip: do *not* park your car outside a bar where there is a flying monkey meeting going on. You know that Far Side cartoon, "How birds view the world"? Drunk monkeys are worse. Much worse.) And unto this meeting was born The Plan.

The Plan was simple.

The Plan was elegant.

The Plan is what all right-thinking people do when they realize that they have no passion in their lives.

The Plan was for all the monkeys to become programmers. The Plan was to Engineer with Extreme Prejudice. The Plan was to justify their existence with solid warez. "Justification through Righteous Code!", they cried.

This was The Plan.

And the monkeys set off to accomplish their Plan.

Their leader, Bill Gates (oops -- was that out loud?), kick-started the whole process by buying a little-known operating system named DOS and selling/licensing it for ridiculously large sums of money (inadvertently setting a downward-spiral trend for the entire barter trade system of a small planet in the Alpha-Centauri system that eventually ended in a bloody revolt which caused the abolishment of the letter Q in their language, but that's a whole different story).

The majority rest of the tale most readers are familiar with. It's the same old story (we've heard it hundreds of times) where flying monkey feels passionless, flying monkey starts with noble ideals and resolves to obtain Passion, flying monkey strives for Justification Through Righteous Code, flying monkey becomes the leader of a multi-national super company, flying monkey realizes that he has finally obtained Passion, but since he's the multi-billioniare owner of a multi-national super company, never has anything less than a $100 bill in his pocket (which the coffee machines simply do not take), flying monkey falls into despair about the lack of coffee, flying monkey plots to destroy civilization as we know it, simply because he can, so flying monkey decides to sabotage all Righteous Code (i.e., LAM/MPI) during Phase 7 of The Revised Plan to destroy civilization by making it impossible to port it successfully to all POSIX-like platforms.

It's the same old story. Hollywood's done it dozens of times.

But it's all true. I swear it.

"I had lots of ideas last night at 3am, and all of them were really good..."

My DSL alarm light continues to flash alarmingly. I think it's mad that I haven't gone to bed yet.

Forces of Nature

Spent some time with Brian and inilib today; fixed a bunch of things in the docs, but it looks pretty damn good. Grasshopper has learned much in his inilib time.

"When you have learned to snatch the error code from the trap frame, it will be time for you to leave."
- The ancient masters

Spent some more time with the SCO LAM user who's been having problems. One of the two problems can definitely be chalked up to UTFS; the other may also be (he's testing now, and has to install a new compiler). In which case, LAM may be in the clear for all the regression tests and eventual release!!

Looks like the trip to Berkeley is going to happen next week. So I'll likely be up in the Bend in the early part of the week, and go to CA from there.

August 21, 2000

Of Palm Pilots and Daisys

A productive weekend. Forgive typos; on a low-bandwidth link (minime doesn't seem to want to compile on Linux again... grr...)

My new computer unexpectedly showed up on Saturday (wasn't expecting it until mid this week or so; most likely after I went to CA). Wooo hoo!!! It's decked out to the gills (I can't resist the opportunity to list all its power features):

  • Pentium III/800mhz. 32k L1, 256K L2.

  • 256MB ECC/RDRAM.

  • 20GB disk.

  • 12x DVD drive (and windoze DVD software).

  • 8x/4x/32x CDRW drive.

  • 3 button mouse.

  • Altec Lansing THX speaker setup. This stuff is amazing -- an approximately 2'-per-side cube subwoofer and 4 speakers. We hooked it up to the VCR on Saturday to watch Episode one -- amazing sound!

  • 21" monitor trinitron monitor (19.8" viewable, .25-.26 dpi).

  • 32MB DDR nVidia GeForce2 GTS 4x AGP video card (I don't know what most of those letters mean, so I assume it can be directly translated from Ancient Hebrew to "fucking cool").

  • Windows 98 (I tried to keep a Windoze partition, but it completely barfed with my network card, so Windoze is gone gone gone... Linux!).

It's fast fast fast. However, I have noticed I/O constraints that are typical on Intel architectures. Oh well -- you can't have everything (where would you put it?). But with the speed of this machine, I'll likely do at least some local development rather than ssh to nd.edu and doing everything from up there.

As practically obligatory, I went out and bought the Matrix DVD to test my DVD drive with. Hopefully, I'll get to test it later today (gotta find some Linux DVD software...).

Other things this weekend, did some "apartment" errands; got me a bookshelf, keyboard tray-thing for my desk, a 4 drawer filing cabinet. Tracy got me a warm fuzzy robe for my birthday (because I really liked the complimentary robe on our cruise); soon enough it will be cool enough to wear it around here. Might as well subscribe to the telecommuting lifestyle, eh?

I should point out that this new 'puter ran rip/encode CDs like nobody's business (and what's what I've had it doing...).

August 22, 2000

No anchovies, please

Arun's tattoo has a drop shadow (saw it in person for the first time today). Way cool.

Quotes from the lab tonight:

"Yeah Yassir!"

"To the US Army!"

"He did some amazing work on wicker..."

"There's the 'public journal Arun' and the 'private Arun' that is much cruder and more disgusting..."

"Yeah, I thought I was going to have a life, but when I plugged it all into CorporateTime, it turns out that I can't swing it. But I've got a really cool room... so that's gotta count for something!"

Yeah, I think that about sums up the night fairly well.

That and we saw some fireworks at the end of the Mob quad to celebrate the beginning of the school year (and free food!); fireworks on campus -- a first for me.

August 25, 2000

Surreality or Blueberries?

Got back out here to LBL, possibly for the last time. Lummy and I are out here for some design meetings about the BLD (Berkeley Lab Distribution). Lummy and I had an uneventful trip out here yesterday, and spent a good portion of the flight chatting about Things, including SC2000, t-shirts for the lab, various future directions of the LSC and some of its members, etc., etc. Good stuff.

We had some good arguments for a few hours about BLD today (Bill Saphir, Eric Roman, Paul Hargrove, and myself). We will continue arguing on Tuesday.

Sadly, though, Bill will be leaving LBL (going to a startup). Best of luck to him -- all hail Bill!

I saw Nathan's final presentation today on what he did with cfengine this summer. We heckled him a bit and asked him a few questions that he wasn't prepared for, but all in all, it was a good presentation -- I learned some things.

Contributed a few minor fixes to the vorbis-dev list today (and had a good typo in one of them -- nice).

Found a paper that was mentioned on HPC Wire today about ye old "6 degrees of separation" issues. These kinds of things are actually closely related to network topology and are highly relevant to my dissertation. It's good stuff. It's interesting to me that these kinds of studies were first started with a psychologist -- Millgram (I'm gonna get this wrong, but it should be somewhat close: the guy who did the pain response tests that had subjects pushing a button that supposedly shocked a "patient" [although it really didn't] and cause the "patient" enormous pain -- they tested how hard they could push a subject into delivering pain to the patient. Only 1 of Millgram's subjects refused to push the button. Peter Gabriel even has a song about this; Millgram's 37.). Millgram told several of his friends/colleagues to deliver a letter to some random person in the country -- someone that he was sure that they did not know. They could only send the letter to someone that they knew on a first name basis and ask them to pass it on in a similar manner in order to get it to its final recipient.

After many such trials, it turns out that the average number of what we now call "hops" was between 5 and 6. More research in this area has led to the now popular "6 degrees of separation" perception, and "the 6 degrees of Kevin Bacon" -- which, if you think about it, is intuitively obvious. Consider: if, by some handwaving, we can assume that most humans on the planet are connected by 6 degrees, then linking any actor to Kevin Bacon -- a vastly smaller domain than all humans on the planet -- seems obvious to be true.

Even though I suck at math, these kinds of things interest me. I read half of a book about this. I can't remember the name of it, but it was also written at Cornell, and the paper that I read today referred to their work several times. Good stuff.

Lummy and I will be heading back to our skanky hotel soon. Outta here.

The first rule of the LSC is...

Extremely interesting quote from the paper on small-world phenomenon:

This we see that minimizing the transmission rate of a network is not necessarily the same as minimizing its diameter... in addition to having short paths, a network should contain latent structural cues that can be used to guide a message towards a target.

I finished the paper today (ignoring all the complicated math stuff that went right over my head and into the wall behind me. I hope I don't get fined for the mark that it left).

CorporateTime may be nice, but it certainly has an interface that rivals that of a blind baboon's arrangement of sock drawer. I can't tell you how many times I made incorrect appointments in ctime last night because it put pm when I was expecting am, or when it put am when I was expecting pm, or, even worse, when it put pm when I really meant pm, but I changed it to am on general principle (or vice versa). I'm guessing that the ctime interface designers were in the Southern hemisphere, where all this makes sense.

I should mention that I went to see Arun's room in Stanford Hall last week. I promised him that I'd put it in my journal, but thought better of it so as not to ruin the surprise for anyone who hasn't seen it yet. So all I'll say is: it's FABULOUS. If you haven't been yet, I strongly urge you to go see it. It's much better than Cats; I'll go see it, again and again.

I'm helping proof a book that Jeremy is writing -- spent much of the day doing that. Hats off to Jeremy for a great use of the word "esoterica". To celebrate, everyone should use the word "esoterica" in a sentence today. Together, we can form a secret personhood of politically-correct dictionaphobics who use big words just for the pure art of it.

Also started Dog doing some LAM development. Yet another reason why LAM will take over the world -- when you have programmers like Dog, who in their right mind will refuse?

August 26, 2000

Colored and mixed paper only

Interesting note that I discovered in pine yesterday and only correctly identified today... I'm on a few ezine lists, and have been for quite a while. Only yesterday did I actually scroll down to the bottom of one of the messages (past all the advertisements, etc.). At the bottom was a note that did not look like it was part of the letter -- indeed, it turns out to be a message from pine itself:

[ Note: This message contains email list management information ]

where the "email list management information" is a menu option. Selecting it brings up a pine screen explaining that the message contains meta information that can automatically unsubscribe you from the list... select here to unsubscribe. Not a difficult thing to implement, but I've just never seen pine be able to do this before, so it must be some kind of standard.

Indeed, it turns out that a line in the message's header triggers it (names changed to protect the guilty):


And it seems that pine can handle more than just List-Unsubscribe -- there must be some set of approved tokens after List- that pine knows how to handle. Interesting random note.

Lummy and I rented the Fight Club DVD last night so that he could see it ("The first rule of the LSC is that you do not talk about the LSC. The second rule of the LSC is that you do not talk about the LSC!"). The plan was to watch it on his new Viao (I know... don't even bother mentioning it...). We got back to our hotel (Skanky, Inc.), but the DVD wouldn't play. With a little further investigation, we discovered that the DVD decoding software had not been loaded. Lummy's playing with it now (the Win2K CD was here at the office); we'll give it a whirl later.

I noticed today that Ace of Base's song Wave Wet Sand has some satellite-like noises in the background (not that I've ever actually heard a satellite making noises, but I've seen enough movies to know exactly what they sound like such that I can pick them out of a lineup without any hesitation. "Yes officer, #3 is the same exact sound from the KDP1138 from Enemy of the State"). Coincidence, or plot? Only higher volumes and sleep-induced learning will tell.

Back to proofing the GGCL stuff...

GGCL makes my brain hurt

Amusing quote on one of the whiteboards in my office (there are an amazing 6 whiteboards in my office here at LBL):

cat /dev/mouth > /dev/null

Here's another:

cp ~jason/brain/* /etc/evil

You just gotta wonder what the conversations were that precipitated these remarks...

I just noticed that the motion detector in my office (that is used instead of a conventional light switch) has two LEDs -- a green LED and a red LED. Different hand/arm motions from my desk seem to trigger different LEDs, but in no conceivable pattern (reference: blind baboon's sock drawer arrangement). Perhaps further reading of the GGCL docs will shed some light on this puzzle.

August 27, 2000

There's no crying in baseball

Saw Fight Club with Lummy yesterday on DVD. Although he gave it an overall thumbs up, I don't think he appreciated it as much as I do. Today's lunch break is "Harold and Maude" (DVD), which he claims is one of his management movies.

I'm up to page 115 of the GGCL docs, and counting... It's exhausting work, because I'm reading both for comprehension and checking for errors. It's neat stuff though; I don't really have the zen of generic programming, but I do fully intend on using the GGCL in Minime for some of the network route-planning and status subsystems.

Might be going over to Eric's for dinner tonight; could be fun.

sed is your friend. The following sed regular expressions fixed the majority of the GGCL inconsistent spacing issues:

s/\([a-zA-Z0-9]\),\([a-zA-Z0-9]\)/\1, \2/g
s/\([a-zA-Z0-9]\)\/ /\1 \/ /g
s/ \/\([a-zA-Z0-9]\)/ \/ \1/g
s/\([a-zA-Z0-9]\)\/\([a-zA-Z0-9]\)/\1 \/ \2/g

The first is obvious, but who can tell what the rest do?

These are less interesting, but they also fixed a bunch of cases where std:: and boost:: were forgotten.


"Some of us have dogs. The rest of us have [ef]*grep. And sed."

(ispell really didn't like this journal entry :-)

Posession of a stolen shovel

Just saw Harold and Maude on DVD with Lummy (on the Viao, but got a bigger screen and real speakers for this). Trippy, yet interesting movie. It's somewhat of a mix of "get everything you can out of life" intermixed with a bunch of really funny suicide scenes (the fire one, I think, was my personal favorite). Definitely a black comedy if there ever was one. Where else can you see a Jaguahearse? Or a mother who wears a different wig every day?

I'd recommend it. It's a funny movie if you're in the right mood. There's a bunch of subtle things in there to keep you thinking, too. Overall thumbs up: I rate it as 5 minutes.

August 29, 2000

xor is not good encryption

It's been a while since I've done a journal entry, mostly because I was traveling all of yesterday. Woof. Let's see what has happened...

Spent most of the day down in the "lower Bay area" at Cleanscape -- the Attol people. Saw overviews of their products (which are pretty cool, IMHO) for testing software. It all started at SC99 when I saw their products/docs at their booth. Pretty cool stuff -- it would represent a fundamental change in the way that we do software in the LSC, but I really think that it would be a positive change, and allow us to write higher quality code.

Saw their presentations all day, met bunches of their people, etc., etc., and had lunch with them. In addition to the Attol line, we also briefly discussed their "qef" tool, which is a "make" replacement. It has a lot of the features in it that we have discussed in the context of the Software Carpentry stuff, but it has the disadvantage of being proprietary, and therefore not useful to us since we want to distribute source code (i.e., users would also need "qef" in order to compile our stuff). At present, it cannot "export" its build process, for example, to work on systems that do not have qef installed. Bummer.

Lummy had another meeting after this, and I went in search of a Fed Ex to send Jeremy the edits that I had made to the GGCL docs. After a good bit of searching (and I didn't even have a map!), I found a Kinko's with a Fed Ex drop, but the last pickup of the day had already happened (it was about 5pm by this point). So then I had to find the real Fed Ex place and then go pick up Lummy.

We chatted a bit more about the Attol stuff. He's somewhat against it, mainly for the reason that the test suites that it generates need the Attol run time systems in order to run. This stuff is proprietary, and distributed in binary form (e.g., libattol.a), and therefore we couldn't distribute it to anyone. Hence our test suites would only run for us, not for anyone else. The Cleanscape people were nebulous about "perhaps we can work out an agreement for distribution of the run time...", but neither of us have faith that that would actually be able to happen in a way suitable for freeware. Additionally, there's a pretty steep price tag. We should be able to afford it, but it's always a concern.

We got the latest/greatest version of the software from them, and will probably install it in nd.edu for Lummy and others to play with (Rich Lee and I played with it several months ago; we both liked it). We may also be able to make a "fake" Attol run time library that would be suitable for distribution -- stub out the necessary functions with little or no content in them. We'll see how it goes.

Needless to say, it's fairly obvious how I'm leaning -- I think these tools would be great for the LSC. It would get us out of the testing framework business, something that has occupied a lot of our time in the past. It also gives us cross-platform testing capability
-- any flavor of unix [that is supported by Attol, which is just about all of them], and 'doze. Could be useful.

We got back to the lab around 7-8pm after unsuccessfully trying to find food in the South Bay area. We got High Tek Burritos instead --
I got the world-famous Godzilla High Tek Burrito. I highly recommend it to anyone coming to Berkeley.

Answered all the e-mail that had piled up during the day, and started on some issues with inilib that Brian raised. It got late, we got tired (I had done a lot of driving...), and we left before I finished.

This morning, I set to work on inilib again, and saw an email from Brian with a key insight to solving the current issue (having to do with the compiler complaining about non-const references in temporaries). Running with that, and with the ultra-cool C++ keyword mutable, I was able to fix things the Right Way. inilib is looking good. We have a code review scheduled for this Friday, but I think we're essentially done. Getting very close to release! I'll plug it into the jjc/Minime later today and see how it really shapes up.

Had several hours of BLD planning with Lummy, Eric Roman, Mike Welcome, and Paul Hargrove. More discussions/arguments/resolutions. Looks like neat stuff. Lummy and I are going to spend some time writing out a list of requirements from what we have figured out in our "round table brainstorming" sessions, and see if the process can move forward more formally after this.

A great word emerged from the planning sessions -- "flamework", which evidentially means something like, "a framework that we're all arguing about."

August 30, 2000

Midnight in the garden of good and evil

It's past midnight here in at LBL.

There are a few night owls here in Berkeley besides Lumsdaine and myself. Just now I heard a wailing, anguished cry from down the hall. It sounded like sheep dying.

I don't ask what happens down there at the end of the hall; they're all mathematicians. They scare me.

August 31, 2000

It all started with parallel bladeenc...

Great quote today from HPC Wire:

"The truth is, great software comes from great programmers, not from a large number of people slaving away. Open source can be useful. It can speed things up. But it's not new, and it's not holy water."

-- William N. Joy,
chief scientist,
Sun Microsystems

There's really two separate thoughts in that quote, but they're both true. More people need to recognize this.

Spent the majority of the last 24 hours writing my talk for tomorrow's LSC lunch. The reason that I've spent 24+ hours on this as opposed to 2-3 is because it has turned out to be much more interesting than I originally thought. Lummy has also found it to be very interesting; it is even possible that this will end up in my dissertation.

So tomorrow's topic actually started many months ago. I was visiting here in Berkeley back in January of this year, and only had a few MP3s loaded on my laptop from my CDs. I was out here for quite a length of time (3 weeks or so), and I was getting sick of the same old MP3s every day. So I started looking at Lummy's CDs (he wanted to rip them, too). So I volunteered to help. :-)

The problem was that it was just too damn slow. The encoding took forever. So after a few nights of hacking, I got a preliminary version of the parallel bladeenc MP3 encoder working (see the "technical details" page on that site for all the nitty gritty of how parallel bladeenc works). This did vastly improve the MP3 encoding process; we could listen to songs faster this way (and before you ask, I only kept MP3s [that were generated from Lummy's CDs] that I already own the CD of). However, I never did get the parallel encoder Right -- it's just about right, but not quite right. Without going into Big Detail, suffice it to say that there's some MP3 framing issues that Jeremy Faller and I tried to figure out and gave up in light of the fact that we had no MP3 documentation.

This brings up an important point -- even though the parallelization of bladeenc was at the very top level, I had to dive down very deep into its tangled code in order to parallelize it. Indeed, there is an odd bit reservoir that has to be drained in order to make the whole scheme work. It took a long time to figure out, and like I said, there's still some MP3 framing issues that are unresolved. To end this already-lengthy explanation: you can't diff the results of parallel bladeenc with that of serial bladeenc. Bonk.

(Some of the following may have already been in a previous journal entry -- I don't remember -- so you'll cope if you've already read it)

So I basically let that go, and stumbled across the vorbis project (I think that I saw it on slashdot or something). Vorbis intrigued me for the following reasons:

  • Vorbis is a totally free encoder -- it does not have the same legal issues surrounding it as MP3 encoders do.

  • The vorbis algorithm supposedly has better sound quality than the MP3 algorithm. I won't argue this either way -- I don't know much about these kinds of things... math, ick -- but it does sound good. :-)

  • The vorbis stuff is all in a library --
    libvorbis.a. So writing an encoder is trivial. Indeed, they have a sample encoder in their distribution. So no diving into the source code to figure out how it works.

  • The vorbis library stuff specifically discretizes the steps in the encoding process; all the steps are fast, except one (hmm...).

  • There is an active vorbis development community. I got very little feedback from the bladeenc community. :-(

So with all this in mind, I posted to the vorbis development list asking "has anyone thought about parallelism?". After some informative discussions with the main developers, I started thinking about it (although not actively coding). After coming up with a suitable architecture, I spent a few hours one night and coded up a multi-threaded vorbis encoder. It seemed to work like a champ... but the output was not diffable with the output from the serial encoder. :-(

I queried the vorbis development list again, and found out that the library is not thread safe -- yet. There's apparently still one issue that makes it not thread safe, something that the developers eventually intend to fix. Oh well.

So then I started thinking about an MPI architecture for such a beast. Conceivably, it would be very similar to the architecture of parallel bladeenc. However, I would like to use threads if/when possible, so I started thinking about mixing MPI and threads (and not in a crass OpenMP/MPI kind of way), and how that would work, particularly in light of the fact that the 2 open source MPI implementations are not thread safe. Ugh.

However, since the vorbis stuff is neatly discretized, it really reduces down to a generic parallel master/slave problem (i.e., replace vorbis_analyze() with a generic calculate() function, and the framework is applicable to any master/slave problem). I realized this yesterday after I made an offhand remark to Lummy that I was thinking about talking about a potential parallel vorbis encoder for my LSC Friday talk.

I spent some time thinking about it (much scrap paper, test programs, etc.), and realize that this is actually quite a thorny issue. It's much more complicated (and interesting!) than one would initially think. Having a generalized master/slave solution for local and remote computation is something that no one has done yet. Yes, we all understand master/slave, but no one has published how to do this with threads and MPI. Indeed, if such a thing was coded up, it could certainly serve as a framework for any task farm kind of parallelism -- only a small number of interface functions would probably be required:

  • input / preprocess (on the master)
  • calculate (on the slaves)
  • postprocess / output (on the master)
  • registration for the marshalling/unmarshalling of data to be exchanged between the master and slave nodes

So I've spent about 24 hours of thinking and writing about this, and when I went to print it out for the first time, I was surprised to discover that I had written about 12-13 LaTeX fullpages about this topic (a lot of which is pseudocode). I've talked with Lummy about this; I only realized late this morning that this is an extension of the parallel image processing toolkit (PIPT) -- it's a few levels beyond what the PIPT is, but some of the ideas in it are definitely influenced by the PIPT. Sadly, I'll only be able to deliver some excerpt of this tomorrow, but I think Lummy and Bill and I might discuss this further this evening. Andy things that Jeremiah and Rich might follow up on this (if I don't) for GGCL and other things.

I'm not going to go into detail here about what I have already written (perhaps I'll fill in the details here later). I'm just struck by the irony that this all started by a personal pet project and may end up as a chapter in my dissertation (we'll see, but Lummy did mention it).

Threading, in general, can get quite complicated. Having multiple independent threads that don't interact with each other is easy --
anyone with a pthreads book (or man page) can do it. But having multiple threads that have to interact with each other and share data can get arbitrarily difficult. This whole scheme pretty much is in the latter domain -- threads need to share queues and data and whatnot; there's some thorny locking issues involved (which makes it so interesting). I haven't even solved all the issues yet -- I don't know how to give some slaves small amounts of work and give other slaves large amounts of work, for example (there's some convoluted locking issues involved).

Who knows -- this might go nowhere. But it seems pretty interesting, so I wanted to get it On The Record.

About August 2000

This page contains all entries posted to JeffJournal in August 2000. They are listed from oldest to newest.

July 2000 is the previous archive.

September 2000 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34