Upcoming races

I’m trying to decide what kayak races to go for the rest of the season. I definitely want to go to Long Lake on September 26th (oh, should book a motel room now, shouldn’t I?). That’s pretty much the “capper” for the season. It’s 10 miles, and that race was my target when I set myself the goal this year of completing a 10 mile race (although I already achieved that in July at the Armond Bassett race).

But other than that, I’m looking at “Remington II” on September the 5th in Rensselaer Falls. It’s “only” 6 miles, and down river. The course description mentions a couple of easy rapids, and on Google Maps they look like they might require dragging through depending on how high the river is. It also doesn’t look like they have a huge turn-out, so it would probably be a battle between the Baycreek Team. They don’t have separate categories for Touring and Unlimited kayak, so I’d be up against Dan and the rest of the surf skis.

Dan forwarded some brief information on a race on September the 19th somewhere near Ottawa. It’s called “Small Swells”, and so far I’ve been able to find out next to nothing about it, except it has 5km and 14km courses and it’s run by the Ottawa River Canoe Club. (And the ORCC web site lists the race as being on September the 16th, which would mean I definitely won’t go.)

So those are my options. I think I’d like to do all of them, but it would depend on time and money.

Oh yeah, /tmp is *temporary*

I was storing some files that were semi-important to the project I’m working on in /tmp. I knew that there is a process on some Unix computers that cleans out the stuff in /tmp either on boot or on a schedule, but I didn’t know if it did that on my Mac. So while I’d sort of had a flag in the back on my head to move that to somewhere less fragile, I never got around to it. And I got to working on another part of the project for a few days and forgot about them. And in the mean time, the files haven’t been touched, and I’ve installed an OS update and rebooted. And now I go back, and they’re gone. “Oh yeah”, I think, “/tmp is temporary”. So then I look to see if Time Machine has a backup, and of course Time Machine excludes /tmp because, oh yeah, /tmp is *temporary*.

I can recreate the files, but it’s a waste of a few hours. This time I’m going to recreate them in ~/data/.

Another long paddle with Mike

10 Mile Paddle with MikeToday Mike and I met up early to do another long work-out like we’d done on July 25th. A few differences this time: Mike only wanted to do 10 miles, and he wanted to meet at 7:30 so we could be done before it warmed up too much. When I showed up, I discovered a few more differences: Mike brought his EFT instead of his surf ski because that’s what he’s going to race next weekend at the Bear Mountain Challenge, and he left his wing paddle somewhere so he was paddling an ordinary flat paddle. Also, the river was running very fast, and there were a lot of chunks of wood in the water, like maybe lightning had exploded a tree or two.

Actually, all the floating bits of wood, large and small, was kind of ironic because when I’d made my breakfast smoothie I’d had a bit of an accident with a wooden spoon in the blender (don’t ask) so I was spitting out splinters of wood all the way up.

All these things added up to the fact that I wasn’t going to be riding Mike’s wake in the high 5 to low 6 mph range like last time. As a matter of fact, mostly because of the paddle, instead of riding Mike’s wash, Mike was riding mine. I was leading out at speeds in the high 4s, trying to tuck in as close to the bank as I could to keep out of the worst of the current, and Mike was having trouble keeping up with me. I kept having to slow down to let him get back on me, and then I’d look back a few minutes later and he was off it again. Finally, at about the 2.5 or 2.75 mile mark, Mike came up inside me and hung there with his bow just about level with my knees. I didn’t quite realize that he’d done it on purpose, but he had pushed me out from shore into swifter water, slowing me down to speeds in the low 4s, but he was also on my side-wash. That worked well until about the 4.5 mile part when I decided I’d had enough of being out in the strong current, pulled ahead of Mike and tucked in close to the shore and sped back up to around 5 mph. Like I said, I hadn’t realized that Mike had pushed me out there on purpose or I probably wouldn’t have done that to him.

One advantage of going so early was that the river was deserted except for a few rowers, and so we saw a lot of bird life, including a number of Great Blue Herons and one Little Green Heron. The disadvantage is that with me tucking in so close to the shoreline, I got a few spiderwebs in the face. I’m just glad that I didn’t see the spiders.

Coming back, with the advantage of the current behind us, we were paddling side by side, and easily managing speeds in the high 7s, low 8s. The second downstream mile (mile 7), I decided to really go for it to see how fast I could go, and I did it in 7:11 with an 8.9 mph top speed. After that I stopped for a drink to let Mike catch me, and we resumed paddling together. And as we were approaching the 9 mile mark, he said “You’re looking strong, so if you want to keep paddling go ahead, but I need to slow down”.

Compared to last time, upstream we were about 1.5 mph slower when I was in the shallows, and nearly 2 mph slower when I was out in the current, and about 1 mph faster going downstream. I don’t know how much of that was the current and how much was Mike’s paddle, but I figure if he’d been leading in the ski like last time, today we might have actually seen speeds over 10 mph at some point on the down.

Oh, and in today’s “The googles, they do nothing” moment, I discovered that my Halo headband doesn’t work as advertised at keeping sweat out my eyes. I had one eye or the other closed most of the way downstream because of stinging salt water in them. Since paddling with a wing paddle leaves me in a constant rain of water of my own making, I decided that the headband alone doesn’t work, and I need to wear a hat. So I splurged on the way home and bought another Outdoor Research hat. My previous one was wonderful, and I was sad when I lost it. I’ve put my name on this one, in hopes that if I drop it somewhere where I’m known, I might get it back. I considered putting my phone number on it, but I don’t really want to be advertising that on the outside of my hat, and “Sharpie” pen bleeds right through. Maybe I should just buy a couple of them. Every time I use that strategy to make sure I don’t run out, I end up never losing another as long as I live. (True story: after losing a bunch of expensive Stadtler mechanical pencils in succession while in University, I bought three cheapo plastic mechanical pencils, and I still own at least one of them.)

This week’s interesting discoveries about Nutch

I’ve been working a lot with Nutch, the open source web crawler and indexer, and the first thing I found was that it was downloading web pages every day, instead of sending the “If-Modified-Since” header and only downloading ones that changed. Ok, I thought, I’ll fix that – since the information I want isn’t in the “datum.getModificationDate()”, I’ll use “datum.getFetchDate()”.

Second interesting discovery: Nutch then doesn’t index pages that returned 302 (not changed), and since the index merging code doesn’t seem to work, I can’t these pages that I cleverly managed to avoid downloading. Ok, I’ll fix IndexMapReduce and delete the code with the comment that says “// don’t index unmodified (empty) pages”, and resist the urge to send a cock-punch-over-ip to whoever wrote that comment for not realizing that “unmodified” does not mean “empty” by any stretch of the imagination.

Third interesting discovery: It turns out that some bright spark decided that when you’re crawling a page that’s never been loaded before, “datum.getFetchDate()” gets the current time, instead of any useful indication that it’s never been fetched before. So scratch my first fix, and go looking for why datum.getModifiedDate() isn’t set. And discover that it appears that datum.setModifiedDate() is never called except by code trying to force things to be recrawled. Yes, instead of forcing a new crawl by modifying the locally generated “fetch date”, they fuck around with the “modified date”, which is supposed to come originally from the server. My opinion of the quality of this crawler code is rapidly going down hill. But my patch to set the modification date according to the page’s metadata appears to be working. Sort of.

Fourth discovery, and one I can’t blame on Nutch: My Rochester Flying Club pages use shtml (Server Parsed HTML) so that I could include a standard header and navigation bar in each page. I could have used a perl script to automatically insert the header into the pages and regenerate them whenever anything changed, but this seemed a lot easier at the time. But one consequence that I’d never noticed before – the server doesn’t send a “Modification-Date” in the header meta data, so evidently these pages are never cached by any browser or crawler. Ooops.

Great Race, results and gloating

The full results are now up (although currently they’re on the front page of the Great Race site listed as “Results of Great Race 2008” and some places they have it as Roman Numeral XXX instead of XXXII.

In the list of teams that won awards, our team is listed as being 4th in M40+ in the Traditional Race, Kayak division. Before you say “yeah, out of four”, go check out the full results and see that we were 4th out of 16 in our division, and a pretty respectable 10th out of 49 in the kayak division. Even more gloat worthy is that my individual performance amongst all the “longshort course” paddlers was 14th best, 6th best kayak, and 1:25 behind my coach, Dan, only 2 seconds behind team mate Stephen B and 1:32 ahead of Paul D. Wow, I can’t believe I beat Paul D, especially since my first reaction after the race was “Man, I had trouble surfing out there” and his was “It was great surfing weather”.