Random updates

I’ve been tending to write lots of short updates on Facebook instead of long posts here. So here’s a few updates.

My shoulder hasn’t been improving with physiotherapy, although I have regained my range of motion. Friday, Saturday and Sunday it was so sore I couldn’t even do my physio exercises. Worse still, on Saturday it was both shoulders that hurt. The therapist and I did some stuff on Tuesday to see if we could figure out which of my exercises is doing it, but I suspect it’s none of them – although driving for an hour and 45 minutes seems to make it worse. Oh well, I see the doctor in the first week of January – maybe I can get on the surgery list fast.

A few days ago, my project manager Nikola asked me when I was coming in to work. He didn’t say why, but I figured I knew it was one of two things. It turned out to be the good one of the two – he asked me if I would like to become a permanent employee. As a contract programmer, the permanent offer can either be awful or it can be awesome. On the plus side, permanent employment can have benefits, paid time off, sick leave, 401(k), and a sense of belonging. With Vicki wanting to retire in a few short years, a job with benefits will probably be a good thing. On the other hand, a permanent offer can mean lower wages, no paid over time, pathetically short vacation time allowance (US companies think nothing of offering a 50 year old senior developer 2 weeks paid vacation, or even worse, 15 days “time bank – which means you only get your full vacation if you manage to not get sick or you drag yourself into work and spread germs), putting up with sometimes annoying corporate rules (although that doesn’t appear to be too bad with this company) and if you don’t accept it, they drop your contract. So I’m waiting to see the offer with mixed emotions.

On the other hand, today I was a bug fixing *machine*. I had a ton of bugs assigned to me, some because the guys who normally take care of those areas weren’t around. And today I knocked off 5 of them, which is pretty amazing when you consider that I spent at least an hour filling in the various stuff that’s required to progress the bugs through the horribly inefficient bug reporting system. (I’ve suggested FogBugz, or at least Bugzilla and Jira.)

The drive home kind of sucked – freezing rain/sleet which didn’t stay on the windshield, but which did accumulate on the windshield wipers requiring me to stop a couple of times to clear them off. At least the roads were well sanded and slurried.

That was worrisome

For reasons I don’t remember, I did a “mdadm –detail /dev/md0” on my home Linux server and noticed that the RAID was busy quietly rebuilding itself. That prompted me to try the same command on my dom0 on my colo box, and what I discovered there was even worse – the second disk on my RAID-1 (mirror) was marked as a “spare” and some other status that indicated that it wasn’t rebuilding, and the mirror disk was marked as missing.

I removed the second disk from the RAID and re-added it, and it went to the status “spare, rebuilding” and the RAID status was “active, degraded, rebuilding”, and some hours later it was back up and happy.

During that time, I discovered that there had been a few emails about SMARTD problems and RAID problems, but because I had set up exim wrong, they weren’t getting delivered. I tried a few things to get exim set up, and then when they didn’t work I decided that since I know how to set up postfix just fine, I uninstalled exim, installed postfix, and got it configured in less time than it took for the RAID to rebuild.

The fact that the RAID degraded in the first place gives me pause, but the fact that I was able to recover it without any downtime makes me happy that I choose to do a RAID in the first place. I’ll keep and eye on it and maybe order a replacement disk or two so I’m ready if something fails again.

Consider those goals met

On October 13th last year, I posted about my goals for this year, and beyond. In that post, I expressed the goal of doing 650-700 miles of paddling this year. I just checked with Garmin Connect, and it shows that since January 1st I’ve paddled 759.25 miles, including 76.17 miles of races. That does not include a few workouts here and there where I forgot my GPS, or a short gap where my GPS stopped uploading to the computer and I had to buy another one. If I do the “Last 365 days” instead of “Since January 1”, that ups my total to 945.8 miles. I’d say that constituted a pretty decent base.

I also said I’d like to join a pit crew to see what it’s like at the Adirondack Canoe Classic (aka “The 90 Miler”). That I did, and I helped out Sue and Liz as they took care of Doug and Mike at the 90. Granted, I didn’t go to every pit stop, mostly because I was trying to get a decent paddle in each day myself so I could see what it was like, but I was there at the finish to help tired paddlers out of their boats and take care of their boats for them. And in spite of seeing these guys staggeringly tired and bloody and nearly puking, I’m sure that I want to try it next year. I just hope my knees can stand up to portaging.

More on this data loader program

Well, I profiled a smaller data set and found a place where I was wasting a significant amount of time while processing nodes that I don’t care about. I’ve modified the code and I stopped the perl program (after 6098 minutes elapsed, 3491 minutes user, 2584 minutes system) and I’ve re-run it, and it finished in 16 minutes 30 seconds elapsed, 16 minutes 10 seconds user, 10 seconds system. Meanwhile, I’ve written a Java program that does the same stuff that the perl program does (like I said in my previous post, the perl program doesn’t actually do any loading or anything useful, it just parses one of the types of nodes that I’m interested in and prints out what it’s found) and it ran the whole file in 17 minutes 38 seconds elapsed, 6 minutes 31 seconds user and 10 minutes 9 seconds system.

So the upshot of this is that I guess I’m going to stick to perl.

Cool surfer d00d

Today Mike, Ken and I met at the Irondequoit Bay inlet for some paddling in the surf. The air was fairly cold, in the low 50s, and the water was in the low 60s, and I was wearing my farmer john and my Hydroskin shirt, so I was pretty well prepared for it. Unfortunately when we got there what we found were huge crashing waves, and howling winds. The bay side wasn’t so bad, but with the wind howling I knew that once we got a little bit off shore the waves would kick up there too. We decided to “play” a bit in the channel.

When we paddled into the channel, what we found were huge crashing waves at the top end of the channel, and beyond them what looked like a solid wall of water about 5 feet high. Honestly, you didn’t get any sense that there were waves out there, just that the lake level was 5 feet higher than the water level in the channel. Mike and I decided to just do runs up and down the relatively calmer part of the channel, getting into waves that were probably only a foot or so high, but Ken was into it and we could see him flying around in that maelstrom. I was sure his boat was continuing towards shore without him a few times, but as it got closer you’d see it get under control and realize he was still in it.

I should mention that the “relatively calm” part of the channel was highly variable – every now and then a set of white caps would come roaring down about half way down the length of the channel, especially on some shallower water on the east side, but much of the time you could get about two thirds of the way up without any difficulty.

I ended up dumping three times in the 30 minutes I was out there. The first time came when Ken asked to dock up with me so he could attach his paddle leash, and by the time he was done we’d drifted sideways to the waves and wind, so almost as soon as I was clear of him I dumped. The second came as I was getting back in after that dump. I normally don’t count the secondary dumping while getting in because it happens so often.

The third time I had drifted a little too far upwind as I was waiting for a lull in the waves, and when I went to turn the wind caught me hard and threw me over. After that time I decided to call it a night before I started to get cold. I was well dressed for it and I hadn’t felt cold while in the water, but I figure it’s better to quit while you’re ahead.

I intend to do some more of this kind of wave work. I think it’s really good for me, and eventually I’ll probably come to enjoy it. However, I need to make two small adjustments – I need to put on my big rudder on the ski so I have a bit more control, and I need to remember to bring a towel and some dry clothes for after.