Damn DMARC

So a couple of weeks or months ago, I noticed something odd with the mailing lists I run. People on Yahoo and AOL claimed that they were missing messages, and Gmail was stuffing mailing list messages from people on Yahoo or AOL into the Spam folder, even though I’d received literally hundreds of messages from those people on those mailing lists in the past.

After investigating, it turns out that both Yahoo and AOL had turned on an anti-spam feature called “DMARC”. Basically what it meant if a message came with a From line saying it was from either of those, but not coming from an approved mail sender, they were asking the rest of the net to treat it as spam. Gmail honored the DMARC request by putting it in the Spam folder, but Yahoo and AOL and some other ISPs were just bouncing the messages or throwing them away.

This DMARC was obviously a huge problem for mailing lists, because what they do is they accept an email from a person, and then send out the message to all the members of the mailing list, and most of them use the person’s email address in the From line of the mailing list message. This breaks under DMARC, because if my mailing list server recieved an email from joe.blow@yahoo and sends out a message to the mailing list members with a From: joe.blow@yahoo, then all those mail servers that implement DMARC are going to see that I’m not designated by yahoo as a valid sender of yahoo email, and they’re going to drop it.

The developers of the Mailman mailing list software were quick to offer some solutions. First they issued 2.1.16, which had a quick and dirty work-around, and then they rolled out 2.1.18, which had what I think is a much better solution. But my problem is that my mailing list server is pure Debian Stable, and I want to only install packages, not get into the hassle of installing things from source and then having to monitor if things are updated. So I waited for 2.1.18 to get backported to Debian Stable (which uses 2.1.15). I put in request tickets to get it backported. They never did. Instead, they made it a package in Debian Testing, which is less stable.

So I did some googling and discovered something called “apt pinning” that would allow me to install some Debian Testing packages on my Debian Stable system. I tried it, and it wanted to drag in a new version of python, which wanted to drag in a new version of libc, and so on. That’s just stupid – the minimum required python for 2.1.18 is exactly the same as the minimum required python for 2.1.15. Whoever set up the .deb was a little over zealous in the requirements section.

I did not particularly want to drag in unstable versions of the very core libraries of a Linux system for no reason, so my next possibility was to install it from source. That was more complicated than it should have been, but relatively painless. First I tried following the instructions that Bill Bradford pointed me at. Unfortunately, immediately it told me that “Distutils is not available or is incomplete for /usr/bin/python” and “be sure to install the -devel package”. Well, unfortunately there isn’t a “python-devel” package. I looked at the script that configure was using to determine what it was looking for, and the problem was a missing Python.h in /usr/include/python2.7/. A bit of searching, and I discovered that this was installed by a package called “python2.7-dev” – so close, but so far from the “python-devel” I had been searching for. After that, I discovered I had to install the “make” program (like I said, this was a pure server system and I hadn’t been building software on it before) and I did my “make install”. Mail seemed to flow, but I couldn’t access the web interface. Bill suggested running the “check_perms -f”, which found and fixed 26 permissions problems, but still things weren’t working. I compared the perms on a few directories between this installation and my last backup, and discovered that neither the installation program nor check_perms had noticed that the cgi-scripts in the /usr/lib/cgi-bin/mailman directory were setgid “root” instead of setgid “list”. I fixed that, and everything started to work.

Now I wanted to test whether the new “dmarc_moderation_action” setting that 2.1.18 provided would actually fix the problem. So I changed the setting on one of my mailing lists, and emailed a guy on yahoo who was on the mailing list to see if he could test it for me. Unfortunately he wasn’t around, so the next morning I bit the bullet and created a yahoo mail account and added it to that list. I tried a post by this user to the list, and it did the right thing (changed the From address to the list address, but used the Yahoo’s person name part in the person name part), and testing that gmail didn’t stuff it in the Spam folder. I made sure it doesn’t do that with non-DMARC addresses like gmail. And then I made that setting change to all my lists.

Finger crossed, and hope that there aren’t too many more updates I have to apply before a 2.1.18 or later Mailman shows up in Debian Stable.

My other kayak

Last year I found this Think Legend surf ski on Craigslist. Poor guy had bought it because he wanted a fast kayak and didn’t realize there is a skill progression required. I’m almost a good enough paddler to manage it. Last year I paddled it a lot, trying to master it. But this year I’ve hardly touched it. You see, last year my other surf ski was a ancient V10 Sport in club layup, so the fact that the Legend was their cheap layup and was heavy as hell didn’t bother me. After all, it was narrower and longer than the V10 Sport so I knew if I ever mastered it I’d be faster in it. And by the end of the year I could handle it in a straight line and on flat water. I used it in a couple of races on the canal and did ok with it.

But this year I’ve had a change of plans. I got a V10 Sport in ultra layout, and it’s so light it makes the weight of the Legend seem like paddling a brick. A tippy unstable brick. Plus I’ve become really enamored of paddling on the lake, with all the waves and boat wakes and other stuff I used to hate. Plus I signed up for the Lighthouse to Lighthouse (L2L) race, my first ocean race, and I’m committed to paddling the Blackburn Challenge next year. So I’ve been all about the V10 Sport this year and neglecting the Legend.

But I did do a bit of a time trial one against the other on the canal and it appears that the Legend might be a tiny bit faster on the flat. And when I’ve hit a bit of a wake, it seems like the Legend has the potential to be really fast in the surf. If only I could keep it upright. If and when that day happens, I’m seriously thinking of getting a light high performance boat, either another Think Legend (if I can find one) or a V12 or whatever turns up on the used market.

I paddle the Legend one night a week – Mike and I call it “tippy boat night”. I guess after l2L I should up that to two or three times a week. Unfortunately last time I dropped it on the dock, putting a rather deep looking crack in it. It’s probably repairable, but I fear it will be a bad idea it paddle it until it’s fixed. Plus the patch will make my heavy boat even heavier. So I guess no tippy boat night until it’s fixed.

Lots and lots and lots of paddling

Remember how when I first started paddling I used to blog about every workout? These days, I don’t bother. I paddle 5 times a week, and there would just be no way to keep up with that. Also, I’m starting to pile on the miles (kilometers) in preparation for the Lighthouse To Lighthouse race in a couple of weeks. The race is 14 miles (22.5 km) and it’s on Long Island Sound, which isn’t the open ocean but it’s likely to be quite different that what I’m used to. So every weekend and some Tuesdays you’ll find me and Mike F out grinding out long paddles on Lake Ontario.

I looked at my stats, and 2010, the year before my surgery, I did 18 paddles of longer than 15 km. So far this year, I’ve done 27. All but one of my paddles over 20 km have been in the last month or so. Case in point, today we did 25 km.

Several of our paddles recently have been battling boat wakes from every direction at once, which is probably good practice but it’s no fun at all. Today we got a really early start (7:30) to try and avoid the boat wakes. We probably needn’t have bothered – the lake “turned over” early this week and the skies were overcast and grey. There was a wicked wind from the south, which is no help at all, and a low amplitude long period swell coming from the north west, which we hoped would provide a bit of help on the way back.

We set off towards the west, keeping tight into shore to avoid the south wind. It was a bit of a balancing act, trying to keep out of the slow shallow water but remain mostly in the wind shadow at shore. Sometimes it didn’t work. One advantage of staying in close was we got to see more scenery – people out walking their dogs on the beach, people taking their morning coffee on their decks, and in one place, 11 deer, including babies with their white spots, coming down to the shore to drink. We paddled a bit slower than usual, and Mike and I paddled beside each other instead of him riding my wake as is often the case. My heart rate was ticking over in the low 110s mostly, which is lower than I’d like, but to go harder would mean losing Mike’s company.

Right smack dab in the middle of the trip in each direction we had to swing away from the shelter of shore to clear the end of the break wall at the river. This is a dicey spot – you’ve got the waves and wind from the south, the swell from the north west, and all sorts of reflections of both of those. However this time, because we left early and because the conditions weren’t optimal for pleasure boats, we didn’t have the usual confusing maelstrom of boat wakes on top of it. It wasn’t too difficult, but even so my heart rate went over 130.

As usual on these paddles, I normally just keep heading out until Mike suggests we turn back. Usually he does it just after I’ve decided “ok, at the next kilometer/point/whatever, I’m going to suggest we turn back”, but it’s good for my ego to make it look like it was his idea. This time it was just seconds after my GPS beeped at the 12 km point – I was going to tough it out to 12.5 or 13, but that’s good too.

As we turned, we did our homage to Oscar Chalupski and shortened our paddles. I wanted to get a bit higher heart rate, so I increased my speed and started towing Mike in my stern wake. That worked out pretty well – with a little assistance from the north west swell at my back, I was nearly 1.5 km/hr faster than on the way out. And all was well until once again we had to leave the wind shadow of the shore to swing around the river break wall. The wind blown off shore waves were bigger, and now it seems like every sailboat at the Rochester Yacht Club is heading out to the lake. Mike lost his place on my wake and started falling behind. Now I’m faced with trying to navigate this mess, but also trying not get so far ahead that I can’t check in Mike and possibly circle back if he needs help. But I don’t want to slow down, so I quickly cross the river and head directly into the wind, then circle back to Mike as he gets about half way between the end of the break wall and shore.

After we get back in the wind shadow, it’s clear that Mike is spent. He can’t even stay on my wake anymore. I don’t want to slow down, so what I start doing is paddling ahead until my GPS beeps for another kilometer mark, then circling back around Mike. That’s literally circling – I don’t have to paddle in the reverse direction, just turn 360 degrees. And even then it usually takes me to about 400 meters or more before I catch and pass Mike. It probably would have been better for Mike, who was clearly suffering, if I’d slowed down and given him a wake he could hold, but out on the water I was only thinking of my training needs and I wanted to know I could still increase my speed at will.

The circling increased my total distance – we’d turned back at almost exactly 12 km, but I finished at 24.9 km. and afterwards I still had enough energy to carry Mike’s boat back to his car for him.

Well, that could have gone worse

On Saturday I did a long easy distance workout, so for Sunday I thought I’d do something a bit higher intensity. I also didn’t have much time, so I went to Pittsford Crew boathouse which is nearer my house than any other canal put-in. (I didn’t want to do the creek because it’s too shallow and the bay involves 2km or more of shallow at the beginning and end.) I got there, paddled downstream for a few km, and discovered that there was a full-on rowing regatta going on. I should have suspected as much when I noticed that most of the Pittsford Crew floating dock was missing – I guess they floated it down to the regatta site. When the Fairport Crew has a regatta, or even a training event, sometimes they’ve got no compunction about blocking off the entire canal or telling you to stop while they spend interminable time getting a heat started, but Pittsford were much better – they marked off their two lanes, and then there was a safe lane along one side. They appeared to be racing upstream and using the safe lane for returning boats and crews to the start.

On the way downstream, I had no problem staying in the safe lane. If there hadn’t been a regatta going on I would have been further out in the middle taking advantage of the stream flow and the fewer debris, but staying safe from rowers in a good thing. So score one for the organization. It appeared they were using one of the flood gates as a start area, and there were a lot of boats milling around, but I was able to thread the needle around them with no problems. I went several km further past their start/finish before turning back.

On the way back, it was a completely different matter. I had been keeping my heart rate in the high 4s (near my max) for quite a long time and I was feeling it. And when I got to the floodgate I had to thread through some more traffic, but when I got into the “safe” lane I found three 8-rower + cox boats just sort of hanging around there, but parked with their oars completely spanning the lane. The first one, I yelled “make some room”, and in my highly stressed state it appeared that they were slow to react and giving me attitude, so I yelled something regrettable about how they don’t own the canal and they need to share, only in more forceful language. The second boat was a repeat of the first – they moved, but not fast enough for me and I said more harsh words. The third one hadn’t even started to move at all by the time I got too close so I yelled “stay where you are” and had to risk exposing my back in the racing lanes, which scares the hell out of me. (As a Canadian, I remember all too well what happened to Silken Laumann when she was hit by another boat in the run-up to the 1992 Olympics: “I looked at the leg for a few seconds and knew it was serious when my muscle was hanging at my ankle and I could see the bone”.)

Further up the canal, I encountered more boats but the safe lane was wider and I had no problems getting past them and I could nod amiably or even exchange a non-swear word or two. I was starting to feel bad about the language I’d used against those first three boats. Yeah, they shouldn’t have blocked the canal to other traffic, but they probably weren’t expecting a kayaker to be making the sort of speed I was making – we racing kayakers aren’t that numerous, and I wasn’t exactly being an ambassador.

After I got home, it kept eating at me. So after a few hours I composed an email to the organizer of the event:

I don’t know if this is the right address for this,but I hope you can get it to the right people.

Today I was doing an intensive kayak training session on the canal and I ended up going through your regatta. For the most part it went smoothly and I appreciate the marked off safe lane or return lane you had provided. However on my return leg, near the floodgate, there were three 8s mostly stationary in the water completely blocking the safe lane. I’m old enough to remember the pictures of Silken Laumann when she had her leg muscle nearly severed in a collision with another scull and so I’m quite scared of the danger of going into your racing lanes.

I’m afraid in my haste and desire to keep my heart rate within the proper zone for that part of my work out, I yelled some rather harsh things to those three boats to get them to move.

I want to apologize to all 27 of the young men and women involved. I’m sure as fellow athletes you’re aware that we’re not always at our best in the heat of high intensity, but I shouldn’t have said the things I did. Sorry.

This morning I got quite a nice response.

Hi Paul –

Thanks for your note, which did find its way to me. I’m the President of Pittsford Crew.

We didn’t hear anything.

As someone who sculls a lot in a single myself, I understand your frustration. Some of the crews out there were pretty inexperienced, as the winter weather prevented many from getting in their full season. Regardless of their inexperience, the coxswains need to be aware of other boats on the water. I’ll get something put into the race notes for next year that will emphasize this.

I don’t know if there is a user group/ mailing list for the competitive kayakers. If there was, and you gave me the contact info, we could email people a week ahead of time so they know this event is coming.

Have a great summer.

Best regards,

John

So there’s that at least.

Round The Mountain 2014

So today I did the Round the Mountain race for the second time. The first time was before my shoulder surgery, in 2010. Unlike that time, I’m not going to be posting a fancy map and link to my GPS and heart rate data, for reasons I’ll get into in a little while.

Just like in 2010, the weather was coolish, but fairly breezy. A warm up paddle out to the point confirmed that like 2010, there was going to be some tricky waves in the first lake. There was also going to be some quality people in the kayak classes. However the touring class kayaks (and the guide boats) were starting in the first wave, and I was starting in the second wave with the unlimited boats. That meant that unlike Long Lake last year, I wouldn’t have Roger Gocking as a rabbit to try to match, but Mike Littlejohn was there, and he was just as strong and powerful as he’d been then. There was some unknown quantities, including a guy in a Think Uno surf ski.

At the gun, it was the usual chaotic mess. Doug was on my right, and he yelled “There’s your ride, on your left” just as a C4 was heading past. I got on their side wake, but after a couple of times where I misjudged the way they swing back and forth I decided their stern wake would be safer. But just then we left the relative protection of Ampersand Bay and got into the windy part, and I guess the guy in the Uno wasn’t used to it because he suddenly veered between me and the C4 and across mine and Doug’s path. We both ended up t-boning him, and he actually grabbed my boat to stay upright, and we all came to a complete stop. He pushed on past and I put in a major effort to get back on that C4’s stern wake again.

I was getting a nice ride off their wake, and it was smoothing down some of the worst of the waves. And they were going pretty fast, although not catching Mike Littlejohn. They did catch a C2, and the C2 latched onto their side wake. They seemed to know each other and exchanged some words. I couldn’t hear much of what they were saying, but I saw what looked like a couple of references to me sitting pretty in the stern wake (well, “pretty” is perhaps not the right word when you’re staring at the stern guy’s butt crack…) I was worried that they were plotting how to scrape me off, so I gathered my strength and surged up between them, trying to get a bit of a launch from the two side wakes.

It worked, but I soon realized that the C2 had latched onto my stern wake and I was dragging him forward to another C2. When I caught that C2 I had a look back and the first C2 was still inches from my stern. And we still weren’t catching Mike L. We weren’t losing ground to him, either. In retrospect maybe I should have stayed for a longer rest. But I was sure I could catch Mike if I just worked hard enough now that we were out of the wind and waves. So I put on another burst of speed, and I look back and I’ve got both C2s now latched onto my stern like a pair of limpets.

Now we’re passing lots of people from the first wave. I dropped the two C2s pretty quickly once we got into the twisty stuff. Because the water is higher than it was in 2010, I’m taking lots of shortcuts nearer the shore and out of the marked channel, and I don’t think they were always willing to follow me.

The two guide boats are powering along, and I tried to give them a wide berth because it’s a twisty river and they don’t always go as straight as people who are facing forwards. I think I passed them just before or just after the bridge. Can’t remember exactly, except I was passing under a gigantic dead tree that was sort of halfway out into the channel when I passed the one who was in front. Whatever beefs I had against that guide boat who interfered with Roger at Long Lake last year, you’ve got to give props for how hard they work. That cannot be easy moving those big heavy boats backwards up a twisty channel with hidden logs and rocks everywhere.

Around the same time, I passed Mike Finear, and he started telling me about all the problems he’d had so far, including taking a wrong turn somewhere and running aground somewhere else, but I’m afraid I wasn’t in a mood to listen – I still thought I could catch Mike L, although it was becoming increasingly obvious that he was pulling away from me.

At the carry, there was a green K2 and a woman who was semi-blocking the way while telling everybody within the sound of her voice that she’d just had knee surgery and to be careful not to knock into her. I asked her if I could go by and I did, but half way up the hill there was some altercation which I didn’t see going on behind me with two guys in an identical green K2 and a guy in a kevlar C1. They were swearing at each other and threatening violence, and I stepped aside and let them go by, yelling after them “there isn’t any money on the line, why don’t you relax”. The guy with the C1 was trying to carry it up on top of his shoulder like a K1 (instead of on his shoulder like most people do) and he kept dropping it, which I’m sure didn’t help his mood. Fortunately he was trotting faster than me so even given the time he was wasting picking his boat up again I didn’t have to pass him and risk getting sworn at or worse.

On the way down the hill to the dock, I fell and hurt my back a bit. And then at the dock I tried to get into my boat from a high dock, which is not something I ever practice (I prefer to stand in the water and do a cowboy straddle, but there was somebody there already). I tipped and fell over into the freezing cold water. I quickly dumped out some of the water, but I think I left about 10-15 pounds of water in the boat. I also realized that my GPS wasn’t on the front of the boat anymore. Hoping that the foam block it was on would float, I did a draw to one side to look at where I’d dumped to see if the GPS was there, but somebody dropped a canoe in the water right there so I couldn’t see squat.

At this point Mike F was coming down the hill, and I realized I had the choice of getting back to shore to hunt for my GPS and give up on the race entirely, or I could finish with a semi-decent time and hope the GPS turned up afterwards. I elected for option B. I’d seen Mike L getting into his boat when I fell coming down the hill, so he hadn’t been that far ahead of me, but after dumping I realized it was going to take a miracle for me to even see him again. Especially since I was paddling without a GPS and with all that water in the bottom of the boat. And I wasn’t paddling well. The two C2s I’d left behind back in the early part of the stream had passed me, and I was starting to see other people I’d passed earlier – some I was re-passing after losing time to them at the portage and some who were passing me because they weren’t exhausted and rattled like I was.

About a kilometer or two from the portage I got my miracle. Mike L was standing on the shore dumping water out of his boat – he must have cut in too tight on that corner and hit a rock or stump and dumped. I thought I’d never have another opportunity like this so I tried to put on some more speed, but I really don’t think I did much. I so wish I had my GPS track to see if I really had increased my speed.

At one point in the rest of the race, I heard a little muffled beep and thought that maybe my GPS had floated into the inside of my boat and I was hearing it from down near my feet or something, but a few hundred meters later Mike L comes by and I realize his GPS is beeping at seemingly random times. I tried to keep on him, I really did. I buried myself, but I didn’t quite hang on, and I think I finished about a minute behind him. I was so disappointed. But I figure that if I hadn’t lost all that time at the portage from dumping, and if I hadn’t been paddling with all that water, and if he’d still given me that “gift” of dumping where he did, I probably would have held him off. But that’s a lot of “ifs”.

After the race, I asked Brian Mac, the organizer, if he could make an announcement asking if anybody saw my GPS, either at the dock or where I fell down on the hill. But instead he said “I’ve got a safety guy there, I’ll radio him”, and sure enough a little while later I got word that my GPS had been found and would be returned to me when the safety boat returns. And sure enough, it was returned, still running. The foam block it sits on was ruined – on of the two feet with the velcro had been torn right off – and I never heard if it was in the water or on the hill, but it sure was a relief to know that I got it back, especially since I only got the heart rate function working right this Monday.

So the take-away from all this is:

  • I still suck at pacing myself.
  • Mike Littlejohn is strong as an ox, and is a formidable paddler in spite of the fact that his technique isn’t great.
  • I need to get faster.
  • I need to work on my portaging skills.
  • I’m sure glad I don’t get as hyper as those guys who were swearing at each other on the portage.
  • I’m luckier than I have any right to be sometimes.