waltman's Journal http://use.perl.org/~waltman/journal/ waltman's use Perl Journal en-us use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners. 2012-01-25T02:16:11+00:00 pudge pudge@perl.org Technology hourly 1 1970-01-01T00:00+00:00 waltman's Journal http://use.perl.org/images/topics/useperl.gif http://use.perl.org/~waltman/journal/ They don't write them like that anymore http://use.perl.org/~waltman/journal/38541?from=rss Today I found myself needing a citation for the Floyd-Warshall algorithm. This is a famous algorithm in graph theory that simultaneously finds the shortest path between every pair of nodes in a weighted, directed graph. (A nice description of Floyd-Warshall is <a href="http://en.wikipedia.org/wiki/Floyd-Warshall_algorithm">on Wikipedia</a>). <p> Modern algorithms textbooks often devote entire chapters to shortest path algorithms, so I was surprised to see that the citation said it was only a page. I thought it might have been a misprint and I pulled up the original CACM article from the ACM website. Not only was Floyd's article less than a page, it was only about 1/4 of a column of a page. It was only 21 lines, including title and comments! </p><p> Floyd's article was published back in 1962, when men were men, computers filled buildings, and the CACM published an Algorithms column consisting mainly of short algorithms submitted by readers. The private sector seemed more involved in basic computer research then than they are now; there are algorithms in this issue submitted by researchers at Control Data, Burroughs, Sperry, and the US Steel Applied Research Lab. As for the code, I thought it was a Pascal-like pseudocode, but it turns out to be ALGOL-60. </p><p> Ah, the good old days...</p> waltman 2009-02-24T04:34:19+00:00 journal Geek cleaning tip of the day http://use.perl.org/~waltman/journal/37254?from=rss Should you ever remove the offmarket color cartridge from your inkjet printer and give it a shake to loosen up the cyan, only to have it dribble drops of magenta and yellow all over your laptop keyboard, spray a little Windex on a paper towel and use that to clean up the mess. waltman 2008-08-22T18:13:35+00:00 journal Selecting reserved word columns in SQLite http://use.perl.org/~waltman/journal/37108?from=rss This week I've been accessing an SQLite database created by a Ruby on Rails app written by one of my labmates. It turned out that one of the tables had a column named "order", and another had a column named "group". These were perfectly reasonable names based on the data; however, they're also reserved words in SQL, which makes them tricky to access. <p> The trick is to wrap the bad column names in double quotes. In other words, instead of using</p><blockquote><div><p> <tt>SELECT foo, bar, order FROM baz;</tt></p></div> </blockquote><p>which returns an error, use</p><blockquote><div><p> <tt>SELECT foo, bar, "order" FROM baz;</tt></p></div> </blockquote><p> In fact, looking through the schemas it appears that RoR wraps all the column names in quotes. I suppose this must be so that RoR developers can name their fields anything they want without having to worry about the underlying implementation in SQLite.</p> waltman 2008-08-06T01:38:11+00:00 journal Logging back and forward buttons in Firefox http://use.perl.org/~waltman/journal/37060?from=rss As promised, here's my extension. First, a disclaimer. Though it's unlikely with something this simple, buggy extensions can mess up your Firefox profile, including your bookmarks, cookies, plugins, preferences, and so on. If you're paranoid, see the Firefox documentation on how to create a development profile. <p> The first thing you need to do is create a directory for your extension. I put mine in ~/extensions/backlog. In that directory we're going to put 4 files: </p><ul> <li>chrome.manifest</li> <li>install.rdf</li> <li>content/overlay.xul</li> <li>content/overlay.js</li> </ul><p> <b>chrome.manifest</b> tells Firefox where the files are for the extension. This is right out of the Mozilla documentation.</p><blockquote><div><p> <tt>content backlog content/<br>overlay chrome://browser/content/browser.xul&nbsp; &nbsp; chrome://backlog/content/overlay.xul</tt></p></div> </blockquote><p> <b>install.rdf</b> tells Firefox meta information about the extension:</p><blockquote><div><p> <tt>&lt;?xml version="1.0"?&gt;<br>&lt;RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"<br>&nbsp; &nbsp; &nbsp;xmlns:em="http://www.mozilla.org/2004/em-rdf#"&gt;<br> <br>&nbsp; &lt;Description about="urn:mozilla:install-manifest"&gt;<br> <br>&nbsp; &nbsp; &lt;em:id&gt;backlog@viscog.cs.drexel.edu&lt;/em:id&gt;<br>&nbsp; &nbsp; &lt;em:name&gt;Back Log&lt;/em:name&gt;<br>&nbsp; &nbsp; &lt;em:version&gt;1.0&lt;/em:version&gt;<br>&nbsp; &nbsp; &lt;em:description&gt;Add history log entries when hitting back button&lt;/em:description&gt;<br>&nbsp; &nbsp; &lt;em:creator&gt;Walt Mankowski&lt;/em:creator&gt;<br> <br>&nbsp; &nbsp; &lt;em:homepageURL&gt;http://kb.mozillazine.org/Getting_started_with_extension_develo<nobr>p<wbr></nobr> ment&lt;/em:homepageURL&gt;<br> <br>&nbsp; &nbsp; &lt;em:targetApplication&gt;<br>&nbsp; &nbsp; &nbsp; &lt;Description&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;em:minVersion&gt;3.0&lt;/em:minVersion&gt;<br>&nbsp; &nbsp; &nbsp; &nbsp; &lt;em:maxVersion&gt;3.0.*&lt;/em:maxVersion&gt;<br>&nbsp; &nbsp; &nbsp; &lt;/Description&gt;<br>&nbsp; &nbsp; &lt;/em:targetApplication&gt;<br> <br>&nbsp; &lt;/Description&gt;<br> <br>&lt;/RDF&gt;</tt></p></div> </blockquote><p>Most of that is boilerplate. The most important field is em:id, because that's how you'll identify it to Firefox later on. Note that it has to be in the form of an email address, though it doesn't actually have to be a <i>valid</i> email address. In this extension it's important that em:minVersion is set to 3.0, since I'm using a Firefox 3.0 feature to do the logging. </p><p> <b>content/overlay.xul</b> tells Firefox what part of the browser we want to extend. In the tutorials they do things like add "Hello, world" somewhere in the browser window. Here I want to leave the window itself alone and just add some javascript.</p><blockquote><div><p> <tt>&lt;?xml version="1.0"?&gt;<br>&lt;overlay id="backlog-overlay"<br>&nbsp; &nbsp; xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"&gt;<br>&nbsp; &lt;script src="overlay.js"/&gt;<br> <br>&lt;/overlay&gt;</tt></p></div> </blockquote><p> <b>content/overlay.js</b> is the javascript code that does the logging when the forward and back buttons are pressed.</p><blockquote><div><p> <tt>window.addEventListener("load", function() { Backlog.onLoad(); }, false);<br> <br>var Backlog = {<br>&nbsp; onLoad: function() {<br>&nbsp; &nbsp;<nobr> <wbr></nobr>// initialization code<br>&nbsp; &nbsp; var appcontent = document.getElementById("appcontent");&nbsp; &nbsp;// browser<br>&nbsp; &nbsp; if (appcontent)<br>&nbsp; &nbsp; &nbsp; appcontent.addEventListener("pageshow", Backlog.onPageShow, true);<br>&nbsp; },<br> <br>&nbsp; onPageShow: function(aEvent) {<br>&nbsp; &nbsp; var doc = aEvent.target;<nobr> <wbr></nobr>// doc is document that triggered "onPageShow" event<br> <br>&nbsp; &nbsp;<nobr> <wbr></nobr>// this service is Firefox's API for logging history events<br>&nbsp; &nbsp; var historyService = Components.classes["@mozilla.org/browser/nav-history-service;1"]<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<nobr> <wbr></nobr>.getService(Components.interfaces.nsIGlobalHistory2);<br> <br>&nbsp; &nbsp; if (aEvent.persisted)<nobr> <wbr></nobr>// page pulled from cache, so log it<br>&nbsp; &nbsp; &nbsp; &nbsp; historyService.addURI(doc.documentURIObject, false, true, null);<br>&nbsp; }<br> <br>};</tt></p></div> </blockquote><p>When the overlay is loaded, I add a listener for the pageshow event. This event is triggered both when a new page is displayed (e.g. when clicking on a hyperlink) and when a page is pulled out of the cache via the forward or back buttons. When the event occurs, I check the persisted flag. This is set to true when the page is in the session history, i.e. we've already seen the page once, and now we're seeing it again with Forward or Back. Firefox normally doesn't add these pages again to its history database, but that's exactly what I wrote this extension to do. To write the URI out history, I call addURI() in the nsIGlobalHistory2 service. </p><p> It's possible to package up extensions so that they install automatically, but since I only need this to run on a single box I didn't bother. Instead I just followed the instructions for testing extensions. It turns out that while extensions themselves contain lots of ugly XML and javascript code, testing them is really easy. Just go to your Firefox profile directory. (On my box it's ~/.mozilla/firefox/.default.) Then go one level deeper to the extensions directory. In that directory, create a file whose name is the id of the extension ("backlog@viscog.cs.drexel.edu" in this case). The file should contain a single line containing thee root path of the extension ("~/extensions/backlog"). Finally restart Firefox, and you should see a message saying that it's found a new extension. If you decide to disable the extension, just remove the file from the extensions directory and restart Firefox.</p> waltman 2008-07-31T03:45:05+00:00 journal My first Firefox extension http://use.perl.org/~waltman/journal/37053?from=rss I've done a lot of unexpected things in grad school, but I never thought I'd find myself writing Firefox extensions. But we're doing some experiments in finding patterns in web browsing, and I needed to add an entry to the Firefox history database when the user hits the back button. Firefox doesn't normally do this, but a developer hanging out on #firefox assured me it was possible. <p> It turned out to be only about 10 lines of javascript, but of course coming up with the <i>right</i> 10 lines of javascript, and figuring out how to package them into an extension, took all day. </p><p> I'll try to post more details once I get a chance to clean out all my debugging code and hopefully make a more minimal version than what I have.</p> waltman 2008-07-30T05:11:08+00:00 journal Fun with elisp http://use.perl.org/~waltman/journal/36864?from=rss Recently my emacs configuration on my iMac at the lab got messed up and was refusing to automatically use cperl-mode when editing perl files. Today I finally got get up and decided to see if I could fix it. The solution turned out to be adding the following line to my<nobr> <wbr></nobr>.emacs file:<blockquote><div><p> <code> (defun compilation-build-compilation-error-regexp-alist() (lambda())) </code></p></div> </blockquote><p> It's so obvious I don't know why it took me so long to figure it out.<nobr> <wbr></nobr>:)</p> waltman 2008-07-07T18:40:28+00:00 journal Kids nowadays http://use.perl.org/~waltman/journal/25797?from=rss <p> This afternoon my labmates asked me to settle an argument. They handed me some headphones and asked me who was singing. I put them on and heard what sounded like Aerosmith doing Dream On. I listened for a bit to make sure it really was Aerosmith, then ventured "umm...Steve Tyler?" </p><p> "How did you <i>know</i> that?" asked the woman who just lost the bet. "It doesn't sound anything like him!" </p><p> "Are you kidding? It's one of the most popular rock songs in history. I thought everyone knew that was Aerosmith." </p><p> "I didn't recognize it at all. You mean you've really heard it before?" </p><p> "Only about 1000 times." <i>All before you were born!</i> </p><p> Kids nowadays, with their hip hop and their iPods, I tell ya...</p> waltman 2005-07-19T22:29:56+00:00 journal Manu, The Shadow Dextrous Hand of Fate! http://use.perl.org/~waltman/journal/25292?from=rss <a href="http://www.manu-systems.com/shadow_dextrous_hand.shtml">Read more!</a> waltman 2005-06-20T21:10:22+00:00 journal Harps are for angels http://use.perl.org/~waltman/journal/25120?from=rss Heard on IRC this morning...<blockquote><div><p>Someone on Drexel's ethernet has an iTunes share called (roughly) "Harps are for angels, God plays guitar"and it's full of nothing but Joe Satriani tunes.</p></div> </blockquote> waltman 2005-06-09T21:02:50+00:00 journal Blessed are the Cheesemakers http://use.perl.org/~waltman/journal/24682?from=rss <blockquote><div><p>"That's it Gromit cheeeeese We'll go <a href="http://citypaper.net/articles/current/food.shtml">somewhere where there's cheese</a>!"</p></div> </blockquote> waltman 2005-05-14T02:43:01+00:00 journal What if...? http://use.perl.org/~waltman/journal/23780?from=rss ...the only thing that could save Terri Schiavo were medical marijuana? waltman 2005-03-22T04:11:17+00:00 journal PV=nRT http://use.perl.org/~waltman/journal/23264?from=rss Here's yet another sign that science education sucks in the US: <p> I had to go to the card store this morning. The woman in front of me in line was buying some of those mylar Happy Birthday balloons. It was cold this morning, so the cashier warned the woman not to worry if the balloons seemed to deflate in her car, and that they'd be fine once they warmed back up. </p><p> The woman seemed quite concerned by this, and finally said, "you know, I've got to visit a few more stores in this shopping center. Could I just pick them up on my way out, so they don't have to spend as much time in the car?"</p> waltman 2005-02-20T04:45:54+00:00 journal You decide! http://use.perl.org/~waltman/journal/22914?from=rss <i>Information Theory, Inference, and Learning Algorithms</i> vs <i>Harry Potter</i> -- <a href="http://www.inference.phy.cam.ac.uk/mackay/itila/Potter.html">You decide!</a> waltman 2005-01-27T18:54:59+00:00 journal Difference of Opinion http://use.perl.org/~waltman/journal/21774?from=rss There was a controversial play in Saturday's Penn-Princeton football game. Here's how Princeton's student newspaper, <a href="http://www.dailyprincetonian.com/">The Daily Princetonian</a>, described it:<blockquote><div><p> <i> Determined not to roll over and give in to the heavily favored Quakers, the Tigers forced a fumble on Penn's first possession of the second half.</i></p></div> </blockquote><p> And here's how Penn's paper, <a href="http://www.dailypennsylvanian.com/">The Daily Pennsylvanian</a>, saw the same play:</p><blockquote><div><p> <i> Matthews moved the ball to the Princeton 42-yard line before the momentum of the game changed again. </i></p><p><i> McDermott threw what appeared to be a forward pass to Matthews, who dropped it. But the officials ruled it as a lateral, and Peter Kelly fell on it for the Tigers. </i></p><p><i> "I thought that was a huge call," Bagnoli said. "We had just had two or three first downs, the ball was right at midfield, we were starting to get a little bit of momentum...I didn't think it was close."</i></p></div> </blockquote><p> So who's right? The Penn paper, of course. The play was a screen pass to the running back. The ball was thrown a little behind him and he couldn't catch it. There was no one within 10 yards of Matthews when he dropped it.</p> waltman 2004-11-09T01:45:20+00:00 journal News flash http://use.perl.org/~waltman/journal/21265?from=rss The Eagles have their bye this week, so it's a slow sports news weekend here in Philadelphia. Here's the banner headline in this morning's <a href="http://www.philly.com/mld/inquirer/">Inquirer</a>:<blockquote><div><p> <a href="http://www.philly.com/mld/inquirer/sports/9873789.htm">What curse? Red Sox fans really believe this will be the year they finally win it all.</a></p></div> </blockquote> waltman 2004-10-09T14:24:49+00:00 journal Ask Fergie http://use.perl.org/~waltman/journal/20367?from=rss Philadephia's foremost <a href="http://www.monkscafe.com/">beer</a> maven, Fergus <a href="http://www.fergies.com/">"Fergie"</a> Carey, now has his own <a href="http://www.philadelphiaweekly.com/view.php?id=7814">weekly column</a> in the <a href="http://www.philadelphiaweekly.com/">Philadelphia Weekly</a>. waltman 2004-08-12T02:28:02+00:00 journal Fun with minions http://use.perl.org/~waltman/journal/19964?from=rss So I ask the kid who's working on "the database" if there's any way I can look up gene information using a few fields I mention as an key. <p> Blank stare. </p><p> "You know, in that database thingy you're working on." </p><p> He shows me a CGI screen. </p><p> "Umm, can't I can just send it some SQL?" </p><p> Blank stare. "Why would you want to do that, instead of just using the screens?" </p><p> "I've got a C++ program, you know, that app I demoed at the lab meeting last week?" </p><p> Blank stare. </p><p> Eventually after about 15 minutes of this I get him to show me a tab-delimited text file of what I want. "So you've got not one but <i>two</i> databases (don't ask), but you don't have a single table in either of them to store gene information?" </p><p> Blank stare.</p> waltman 2004-07-21T02:12:10+00:00 journal Misplaced Apostrophe of the Day http://use.perl.org/~waltman/journal/19865?from=rss "Glady's Knight &amp; The Pips" waltman 2004-07-15T14:20:14+00:00 journal Talking to biologists http://use.perl.org/~waltman/journal/19611?from=rss For the past 8 months or so I've been working at the <a href="http://www.wistar.upenn.edu/">Wistar Institute</a>, a smallish cancer research center at the <a href="http://www.upenn.edu/">University of Pennsylvania</a>. I'm one of the few techies in a building full of biologists, which has taken some getting used to. <p> One thing is that people naturally tend to assume that I must be one of them, and that I'm at least familiar with basic biological terminology and lab functions. Hah! My last formal biology course was freshman year of high school. I've certainly picked up a lot while I've been at Wistar, but the labs themselves still sort of scare me. </p><p> So anyway, today I was walking down the hall when I saw a postdoc from the new lab that's getting started up across the hall. He was holding an orange plastic lid in his hands, and asked "do you know if this is autoclave-safe?" </p><p> Now, I didn't even know what an autoclave <i>was</i> 8 months ago. Now I've come to know it as the noisy, sometimes smelly oven-like contraption down the hall that the cute lab tech is always loading and unloading. But I don't have the slightest idea how to use it. </p><p> "Beats me," I replied. "Do I look like a biologist?" </p><p> "Well, now that you mention it..." </p><p> "No, I'm a computer programmer. I help the folks in this lab with their data analysis." </p><p> "Oh, cool. What languages do you use?" </p><p> "Mostly C++, and a little Perl to hold everything together." </p><p> "Perl? Never heard of it. Do you do any Java? I really like Java!" </p><p> <i>Sigh.</i></p> waltman 2004-07-01T02:54:03+00:00 journal Yin and yang http://use.perl.org/~waltman/journal/15509?from=rss Last night, driving home from the movies, a black cat crossed my path, which of course is bad luck, especially around Halloween time. But then a little later a Krispy Kreme truck also crossed my path, which I figure balances things out at least a little. waltman 2003-10-31T19:23:30+00:00 journal Premature honor http://use.perl.org/~waltman/journal/14428?from=rss I was watching a little of tonight's TCU-Tulane football game, and heard the announcer say "Tulane running back Mewelde Moore was named the Conference USA preseason offensive player-of-the-year". <p> How the hell can someone be named player of the year before he's played a single game? According to <a href="http://www.collegesports.com/sports/m-footbl/stories/072103aan.html"> this press release</a>, C-USA picked an entire preseason all-conference team, both offense and defense.. </p><p> Don't football people have anything better to do during the offseason?</p> waltman 2003-09-02T02:09:20+00:00 journal An early description of Perl 6? http://use.perl.org/~waltman/journal/14238?from=rss I was reading sf writer Ted Chiang's 1991 short story "Understand" today when I came across this uncanny description of perl 6:<blockquote><div><p> <i> I know my mind in terms of a language more expressive than any I'd previously imagined. Like God creating order from chaos with an utterance, I make myself anew with this language. It is meta-self-descriptive and self-editing; not only can it describe thought, it can describe and modify its own operations as well, at all levels. What G&#246;del would have given to see this language, where modifying a statement causes the entire grammar to be adjusted. </i></p></div> </blockquote> waltman 2003-08-21T01:50:16+00:00 journal The end times are nigh http://use.perl.org/~waltman/journal/11687?from=rss Starbucks <a href="http://biz.yahoo.com/rm/030416/retail_seattlecoffee_5.html">is buying</a> Seattle's Best Coffee and Torrefazione. waltman 2003-04-16T20:41:32+00:00 journal Blasphemy! http://use.perl.org/~waltman/journal/11437?from=rss Linux kernel hacker Paul "Rusty" Russell <a href="http://www.linuxsymposium.org/2003/keynote.php">claims</a> that his keynote speech at this year's <a href="http://www.linuxsymposium.org/">Ottawa Linux Symposium</a> will include "the revelation of the <b>4th </b> principal virtue of a great programmer.". waltman 2003-04-04T05:53:22+00:00 journal CSPAN can be such fun! http://use.perl.org/~waltman/journal/10574?from=rss Overheard during today's debate on the Appropriations Bill for Fiscal Year 2003:<blockquote><div><p>"Mr. Speaker, normally when I speak before this body, I use the podium. Today the legislation we're debating is <i>larger</i> than the podium, so I'm using that, instead." </p><p> -- Rep. Martin Frost, D-Texas</p></div> </blockquote> waltman 2003-02-14T00:02:00+00:00 journal Another sign the end is near http://use.perl.org/~waltman/journal/9401?from=rss My sister bought an <a href="http://www.ford.com/en/ourVehicles/suvs/fordEscape.htm">SUV</a> today. waltman 2002-12-12T04:37:34+00:00 journal What ever happened to...? http://use.perl.org/~waltman/journal/9371?from=rss Today the <a href="http://www.philly.com/mld/dailynews/">Philadelphia Daily News</a> ran one of those "What ever happened to...?" <a href="http://www.philly.com/mld/dailynews/sports/4705475.htm">articles</a> about former local sports stars. One of the folks profiled was Bruce Lefkowitz, who was the center on the <a href="http://www.upenn.edu/">Penn</a> basketball team when I was an undergrad there. <p> Here's what Lefko's been up to since he graduated: </p><blockquote><div><p>Married 14 years to Coco Vanderslice (Fairleigh Dickinson '85), sister of Villanova '83 teammates Courtney and Stephanie (now Gaitley), former Saint Joseph's women's coach now at Long Island University...Has 6-year-old quadruplets and 4-year-old twins...Executive vice president of advertising sales for Fox Cable...Spent 5 years with Discovery Communications and 7 years with Turner Broadcasting. </p><p> About those kids: "I just hope they [quads Trent James, Kyle Anne, Jenna Lynne, Coby Tyde; twin girls Brady and Kendall] look like their mother and play like their father, although Coco reminds me she was the four-year captain and scholarship athlete in the family."</p></div> </blockquote><p> Might be time to start laying off those fertility drugs...</p> waltman 2002-12-11T03:42:43+00:00 journal It's Got a Good Beat and You Can Dance To It http://use.perl.org/~waltman/journal/9336?from=rss So I'm at my local coffee shop this morning, and the barrista says to his assistant, "So I've got this great idea -- resample classical music and add a dance beat!" <p> "Oh", I say, "you mean like 'Hooked On Classic'?" </p><p> "What's that?" </p><p> Kids nowadays...</p> waltman 2002-12-09T04:30:02+00:00 journal Penn not Pennsylvania http://use.perl.org/~waltman/journal/9087?from=rss I am a graduate of one of the United States' oldest and most prestigious universities. It has produced Nobel laureates, Wall Street tychoons, Pulitzer prize winners, Olympic champions, governors, senators, supreme court justices, and distinguished scholars in dozens of fields. <p> So then why is it, whenever I wear my <a href="http://www.upenn.edu/">University of Pennsylvania</a> sweatshirt outside of the immediate Philadelphia area, someone inevitably comes up to me and asks "Hey, are you from Pennsylvania? My cousin lives in Bethlehem!"</p> waltman 2002-11-22T14:49:45+00:00 journal Fun with web testing http://use.perl.org/~waltman/journal/7372?from=rss So I'm testing a bunch of web pages using Skud's excellent WWW::Automate module, and I thought it wasn't handling radio buttons correctly. Turns out the module is working fine, but the system is taking several <i>minutes</i> to update the database after hitting submit! <p> It's great fun -- go to the page, hit the radio button, click submit. It says it's saved, but reload the page and it's still at the old setting. But come back in a minute or two and then it's fine. </p><p> Sigh. </p><p> Time to add some nice long sleeps to my test script...</p> waltman 2002-08-28T18:40:55+00:00 journal