More griping about GoPros

I have two cameras that I use for making my kayaking videos. A GoPro Hero 5 Black (which is the chunkier camera with the touch screen on the back) is mounted on the front of my boat pointing backwards, and a GoPro Hero 5 Session (which is the little cube) which I wear on my head pointing forward. I like the head mount because it stabilizes the camera nicely and also it means the video gets to show what I’m seeing.

This year I decided to start shooting everything in 4K. I’d sort of gone back and forth last year between 1080p/60fps and 4K/30fps, but this year I decided to do 4K exclusively. The only problem with that is that the Session camera only had a 64GB SD card (technically a micro-SDHD card, I guess) which meant it would stop recording after about an hour and a half or two hours. Sometimes it would shut down much earlier, but I’d spare a stroke and hit the button on top and it would start again. Often times this only happened in the warm up rather than in the heat of the race, so it wasn’t terrible.

But I missed the end of a couple of races, so I ordered a 128 GB card. Unfortunately I didn’t want to order the same Lexar Pro 1000x card I had in the Black because it had gone up for around $75 to $130 since I bought the last one. Amazon had a SanDisk Ultra that had all the right specs (UHS-I, Class 10, 80mb/s) that meant it should work for 4K video. Except it didn’t – my camera would shut down after 10-20 minutes and if I started it right back up, it would shut down down. Being up on my head, I couldn’t see if it displayed a message, but I sent it back and got a SanDisk Extreme that had even more of the right specs (UHS-III, U3, mentioned 4K video numerous times in the description). But it had the same problem – it would shut down after 30-40 minutes and not start up again. This time I was using it mounted on my bike handlebars rather than on my head so I could see the message, and it was complaining about a corrupted file on the SD card, and said I’d have to format the card to use it.

Since I was convinced this card should work, I did a swap – I put the Lexar Pro card in the Session, and the SanDisk Extreme in the Black. And both cameras shut down after a 30-40 minutes. The Black was complaining about a bad or corrupted SD card. The Session was just acting weird. I did a factory reset on the Session and it’s acting a bit less weird but it’s still not 100% right.

I don’t know if I got water in the Session and wrecked it, or if I’ve just reached the limits of this camera. If you look at materials from GoPro or from the kind of people who use GoPros, it’s obvious that the standard user that they’re designing these things for is for somebody who turns it on, records a 5 minute stunt, then turns it off again, and my desire to record for hours at a time is just an edge case that they don’t really care about.

I don’t know where to go next. I’m going to test my Session again with the 64 GB card to see if it goes back to “normal” with it. Maybe I’ll just go back to recording 1080p/60fps again, where 64 GB is good for more than 4 hours.

Round the Mountain 2018

Yesterday was my first race of the year, Round The Mountain. It’s in beautiful Saranac Lake and it’s unique in that the start and end are pretty close to each other but it’s not an out and back race and you never repeat any part of it.

The excuses

This is usually my first race and it’s a good chance to assess where I stand in my fitness and training levels. This year I knew it wouldn’t be good. December was mostly a write off because I was too depressed to train, then I had the five week cold from hell, then I got three weeks of trying to build up a bit of endurance, and then I got whooping cough and wasn’t able to exercise for another couple of weeks. Plus I’m extremely fat. So I kept telling myself this was just training for later in the year, and to not worry too much about results. That easy to tell yourself when the race is a week away, not so easy when you’re lined up on the starting line.

For the last couple of years, I’ve beaten both Pete Gugel and Roger Gocking. I knew from joint practice that I was probably not going to beat Pete this year. But I really didn’t know where I stood against Roger. He’s a tough old bird and even though he’s 74 years old he doesn’t seem to be getting much slower year on year. I retained some hope I could beat him.

The Recon

The weather forecasts had been extremely variable, and so I’d brought all manner of paddling clothes, from dry suit to dri-fit and everything in between. On Friday, Jim, Roger and I had reconned the last 10 kilometers of the course, and Jim and I wore dry suits because we weren’t moving very fast and it really makes it more comfortable when you have to step into the water to launch or get out. The water was about as high as last year, but the river seemed to be flowing faster. If I’d been fit, this would have been a good year to set a PR. The is a “sneak” not too far after the portage that seemed narrower than last year, and there were lurking rocks and stumps everywhere. I convinced myself that maybe this year I should take the long way round instead of risking it. There was also a second “sneak” that was much bigger and more open looking, but there was a bunch of suck water with lurking stumps both in it and for a few hundred meters past it. I didn’t see much point avoiding it though, because the alternate was a long way around.

The other fact that we discovered in the recon is that the parking at the finish was almost non-existent because they’re building a massive structure for an EPA superfund cleanup from some coal processing plant a hundred years ago.

The dressing dilemma

When I went to bed on Friday night, Accuweather’s hourly forecast was saying that 11am (start time) was going to be 50F, so I was mentally planning for Vaikobi V-Cold bottoms and V-Cold Storm top. But when I got up Saturday morning, they’d changed that to 34F at start time, rising to 40F by finish time. So I got dressed in my dry suit but brought my v-cold pants and storm top with me just in case it warmed up. I was going to wait until I did my warm up paddle to make the decision on pogies or not.

I dropped my car at the finish and was waiting for Jim to pick me up to drive me to the start, and I was getting very toasty in my dry suit. I checked the weather again, and they’d only gone and changed it back to saying 50F at start time, rising to 53F by finish time. So I took off my dry suit, and put my Viakobi gear over the polypropylene underwear and t-shirt I’d been wearing under my dry suit. After half an hour and preparing, registering and socializing, I decided to remove the t-shirt, and soon after removed the polypropylene top as well. If I’d had my regular v-cold top in the car, I probably would have switched from the storm top to it as well, because it was already in the mid 50s.

Also, in every previous year it’s been flat calm when we’ve been registering and preparing, but then 10 minutes before race time the wind has sprung up and started whipping up waves in our face. This year it remained perfectly flat calm. It was eerie. The only bad part of all this was that when I took off the dry suit, I hadn’t transferred my car keys from the dry suit to something on my person, so all my pre-positioned dry clothes and a sandwich in my car at the finish weren’t going to do me any good. This fact wouldn’t occur to me until I saw the finish line and started my “sprint”.

The start

So this year Brian had changed the composition of the waves again. Touring class kayaks started in the second wave with unlimited, which meant there would be an opportunity to mix it up with Eric Young and a Roger. Some of the C-2 and C-4 classes would start with us as well, giving some good drafting opportunities for those that could take advantage of them. There were a few people in unlimited kayak I didn’t know, including a young kid in a V10 Sport who said he’d done C-4 last year, and a guy in a Think Surfski with “Boaty McBoatface II” on the bow. Matt Skeels wouldn’t be paddling because he was trying out a timing chip system and was going to be busy at the finish.

As expected, Jim Mallory and Royal jumped away from the start line and soon became irrelevant to any future consideration. The other kayaks pulled away from the canoes pretty quickly, led by Boaty with Eric on his stern. Initially I tried to get on Eric’s wake but I soon ceded it to Pete. Trying to ride Pete’s side wake, I discovered he was lifting whole lap-fulls of water with every stroke and I was getting soaked with freezing cold water, so I dropped in behind him. By now some of the c-2s were waking up and pulling up close, and when after a few minutes I lost Pete’s wake I tried to get on one of them (after first checking that there wasn’t another c-2 trying for his wake – my personal rule of out-of-class drafting is never get in the way of in-class drafting). I didn’t stay with them very long either, and my lungs were burning with that “you dummy, you went out too hard” feeling, rather than the “ok, settle into your rhythm you’re good for another 10 miles of this” like I’d felt the last couple of years.

Up ahead, I could see that Eric had taken a commanding lead on the other kayaks and might have hooked up with the fastest C-2. Pete and Boaty looked like they were either battling head to head or cooperating with each other, and were putting distance on me with every stroke.

I was no longer on anybody’s wake, and I could see the conga line was all heading to the left of the safety boat at the second island, but I could see Jim and Royal up ahead and a straight line to them went between the safely boat and the island. Nobody had said anything in the pre-race meeting about having to go a specific way around safety boats (or maybe they had and I missed it) so I headed for the straight line. But when I got close the guy in the safety boat was making emphatic gestures indicating that I must paddle to the left of him, so I had to veer back over to the main line of boats. It was around this time I heard Roger’s unmistakable wheezing and realized he was on my wake. The guy on the boat was reading out numbers and I heard his number which confirmed it.

The river

A few years ago, I’d been on Rogers wake at this point, and somewhere between the second island and the river mouth I’d made my move and blasted past him. Well, this year he returned the favor. I tried to keep up with him but my lungs were burning and I could feel my certainty of finishing slipping away, so I let him go. But not before following him through a dangerous little sneak that I hadn’t had a chance to recon this year and basically had to trust it was the same as it was last year. A bit of a risky move considering his boat is more Bondo than Kevlar, and mine is beautiful and fragile. It mostly worked except I had to slow down a tad through it and somebody slammed into me. Not sure who it was, maybe a c-4 and maybe the kid in the V10 Sport, both of whom I saw soon after.

Going under the bridge, I could see Kim and Tracey and a few other people, but missed Vicki’s unmistakable cheers. Oh well, probably just as well considering how much I pain I was in. With an out there I just might have taken it.

Soon after the bridge there is a sharp left turn onto the lake, and I was coming up on the left of a guy in a Placid Works canoe who was determined to get as far left as he could. He very nearly squeezed me out, and just as I was coming through on his left a C-4 came by on his right and called out “passing on your right” like they wanted him to move further left or something.

The guy in the bow of the C-4 addressed me by name, but I can’t quite be sure who he was. I probably have met him, but I was working too close to my limit to spare the brain cycles. I did attempt to move over a bit to get on their side wake. The woman who was in second position on the C-4 kept up an absolutely incessant stream of chatter the entire time I was within ear shot. I couldn’t believe she had enough breath for it, since I was gasping. But as well as what seemed like general chit-chat, she was also giving advice to the young kid in the V-10 Sport who was now on my stern wake. I don’t know if he’d been the one who bumped me at that sneak or how long he’d been there. I think I’d glimpsed him trying to get on that C-2 wake I tried for early on, but hadn’t seen him since up until now.

I stayed on the C-4s side wake for a while, but I was getting a decent push in the river and was starting to pull away (and starting to catch Roger). The final straw came when there was an overhanging tree – I knew from the recon (and from last year) that there were two choices here – you could go outside of the buoy marking the channel, or you could go under the overhanging tree, but there was a gigantic rock just below the water in between. I headed under the tree, and I guess they decided to in between – I heard a shouted warning and some quick braking or steering moves over my shoulder and that’s the last I saw of them.

The portage

I came into the portage having nearly caught Roger. I got out of my boat almost exactly even with him and followed him up the hill. The kid was a few seconds behind me. I could tell he probably wanted past me but there was no way I was going to give a gift like that to somebody in an unlimited kayak. Roger is a better runner/walker than me and got to the water a few seconds ahead, but elected not to use the dock. I used the dock as I’d practiced the day before and pulled away from the dock with nobody around me. I put in a big effort to try and capitalize on this advantage, electing for a short cut through some suck water rather than a longer route in deeper water, hoping to use my strength instead of my pathetic aerobic capacity. Pete and Boaty were still visible up ahead, and it looked like Pete might be tucked into his stern wake.

Sneaky sneaky

Approaching the very narrow sneak, I could hear Roger wheezing behind me and knew he was going to pass me soon. I’d initially planned to avoid this sneak but figured that with it being so narrow that he couldn’t pass me and he might slow down to get through, so it might buy me some time. I think that strategy might have worked, except I headed for the first bay instead of the second bay for the second sneak, and lost a few seconds. Roger was now just a hair in front of me, but he now used his position of control to force me off the line I wanted through this area of stumps and suck water. I could see Pete and Boaty ahead and to the right, but Roger kept forcing me left.

I put on a supreme effort and got my bow a few inches ahead of his so I could force us more to the right, but the effort cost me too much and Roger surged ahead. I no longer had to worry about his bizarre lines, but I also wasn’t going to finish with him. Jim was out there warming down and told me “500 meters, give it everything you’ve got”, but I didn’t have anything left. It was also at this moment, when I should have been sprinting my guts out that I suddenly realized I didn’t have my car key. I guess I’d been thinking of those warm dry clothes and that sandwich in the car, and then suddenly realized I couldn’t have them.


The kid finished not too far behind me. If he’d been a little more capable getting back in the water after the portage, he probably would have had me. And that’s why I practice portages before this race. And why I’m glad I probably won’t have to practice them again until the St Regis race.

After the race, I took my gopros off the boat and off my head. The one on the boat had still been recoding, but the one on my head was off. Oh oh. In the past it has spontaneously turned off but I’ve heard the beeps and started it again. This time I hadn’t heard any beeps and so I had no idea what it had recorded to. Worse yet, when I tried to turn it on again, it said “SD Card Full”. That’s worrisome – did I forget to delete the last video I shot on it? I think last time I used the GoPro app to download the videos, and it has a bad habit of not deleting stuff when it told you it deleted it. (No worries though – I eventually got the SD card into my computer and it appears that it shut off just as I was getting out of the boat after the finish)

After wandering around, socializing and relaxing, I got a ride back to the start with Rogers neighbor Irene. I got my car key out of Jim’s van and for some reason I grabbed my dry suit but not my paddle bag. I had figured that Jim would bring his van either to the finish or to Doug’s house for the cookout afterwards and I could retrieve it then. Turns out neither of those things happened – he came to the cookout with Roger in Roger’s car. Which makes perfect sense since he was staying with Roger but I didn’t think of that at the time.

Anyway, back at the finish with my car key, I was able to use my pop up changing tent and change into my dry clothes. And eat my sandwich. Turns out that when I packed to come here I did a real good job of considering every possible paddling conditions, but I didn’t do a very good job of remembering adequately warm after-paddle clothes. So I didn’t even had a dry t-shirt to change in to and had to wear just my fleece up top with nothing under it.

At the awards, I was the only BayCreek current, former or honorary member who didn’t get a plaque. Boaty and Pete are both over 50 so snapped up the 2nd and 3rd place in the unlimited geezer category. Again, I had to remind myself this was just a training/social exercise, and I wasn’t expecting to be competitive. But those plans never seem to work out that way, do they?

After we got back to Doug’s, I wanted to have a preliminary look at my GoPro video to see how it turned out. And I had major panic because I couldn’t find my GoPro Hero 5 Black, my fanciest and most expensive camera. I tore apart my car and my suitcase and couldn’t find it. I texted everybody I knew at the race and put out on Facebook hoping somebody had seen it. I tried to reach Jim back at Rogers to see if I’d left it in his van or dropped it in Irene’s truck when she’d given me a ride back to the start, but he was busy helping Roger with his broken garage door and didn’t see the text.

Long story short, after the cookout he checked my paddle bag and it was safely tucked in there. I guess I did it without thinking and promptly forgot I’d done it. Panic over.

I can’t wait to see if the video from it came out well. The other video from the camera on my head looks great, but the mount on the front of my boat has had a few knocks and it looked like it was moving around a bit when I was paddling so it might be too unsteady to use.

Alternate Side of the Street Parking

I’ve gotten a number of tickets over the years because I misinterpreted the alternate side of the street parking signs on our street. Yes, I’m embarrassed that somebody whose livelihood depends on being able to interpret and write complex boolean expressions should have trouble with these signs, but there you have it. But I resolved to not get caught out again, so this is what I did:

  1. Installed IFTT on my phone
  2. Created two PNG files, one that says “North” and one that says “South”, and set up two lines in my crontab on my computer that copies the appropriate one to my public web server when the parking rules change over.
  3. Created an IFTT rule that when I get close to home it displays a “rich” notification including which ever image is on my web server
  4. Created two IFTT rules to send me a notification when the parking rules change over.
  5. Created a shortcut on my home screen on my phone so I can check the image on the web server if I miss the IFTT notification.

If I get another parking ticket, it won’t be because I didn’t try.

My Speedstroke is at the end of its rope.

When I bought my KayakPro Speedstroke in 2011, it came with one spare rope and one spare bungee. It actually uses two of them, one on each side, but it only comes with one. I guess I now know why – after 7 years, I finally need to replace the rope. It was getting a bit ratty looking right where it goes through the front two pulleys, and it was shedding hair all over the place. But today was the last straw, as the bunched up hair started causing it to fall off the front pulleys when I was paddling easy between intervals. It didn’t take too long to replace the rope, as the whole machine is extremely well designed and constructed. And it felt so much better afterwards that I’m thinking I might just buy another rope and replace the other side as well even though it’s not showing the same signs of ratty-ness.

7 Year Old Erg Rope

Backing up

Unlike some minor internet celebrities, like one of the founders of StackOverflow, I am a big believer in making sure my data is backed up locally (for quick retrieval) and offsite in case of disaster. For the Mac, this is dead easy – I have a TimeMachine disk attached to my iMac, and I back it up offsite using BackBlaze Cloud Backup – $50 a year, and it’s unlimited so it even backs up my external drive full of my iMovie and Final Cut Pro projects. I also use Syncthing to replicate several important directories between my iMac and my Linux computer. Unlike Dropbox or Box or any of the other cloud replication services, Syncthing is free and doesn’t send your data to any third party.

But I also want the “two backups” system for the Linux computer here in my office, and also my virtual private server box that I have on Linode. And unfortunately Backblaze doesn’t support Linux yet. So for several years now, I’ve been doing a local hourly backup on my local computer to an external USB drive. My strategy for that is:

  • Make snapshots of every partition on the box using
    lvcreate -L 10G -s -n ${dir}-snapshot /dev/ssd/${dir}
    (I wish there was a way to snapshot them all at once to get a really consistent view of the file system, but I haven’t found a way.)
  • Mount them all under a root snapshot so I’ve basically got a static view of the system.
  • Back that up to the external drive using rsync. I use “--link-dest” so it really only backs up the files that have changed and makes hard links to the ones that haven’t, so it’s pretty fast and doesn’t take a lot of disk space to keep weeks of backups.
    rsync -vaSH --delete --exclude .gvfs /mnt/snapshot/ --link-dest=$PREV/ $DEST/allhats2/hour$HOUR/
  • unmount and lvremove the snapshots file systems.

As well, once a day I backup one of these snapshots to a third Linux system I haven’t mentioned yet. A while ago I discovered a company called Kimsufi that was advertising VPSes with Atom processors in Ireland or France (I’m actually not 100% sure which). Nothing too fancy in the CPU or RAM department, but with 1TB of disk space for 10 Euros a month. Not as cheap as Backblaze, but better than losing everything if Linode burns down. So once a day, I copy one of my hourly backups (still using rsync with the --link-dest option so multiple daily backups don’t take up much space, and I also backup my Linode the same way (except there’s no way to take a lvm snapshot inside the VPS so it’s just a simple rsync --link-dest of everything.

That’s been kicking along nicely, and it’s a good backup. But it’s brittle – if an hourly backup fails part way through and try to do an --link-dest the next hour using that one, I can end up with two full copies of the backup with no hard links. And there are other problems as well. Plus keeping the Kimsufi VPS just to back up to seems like a waste.

A while ago, a friend recommended Borg Backup as a better solution for regular backups than trying to roll my own. It also encrypts and compresses the backups. So I set up a parallel hourly and daily backup using Borg. The offsite one is still going to the Kimsufi VPS, but it is faster than rsync. So I was just about to pull the plug on the rsync backups and go to an all-Borg solution when that same friend then recommended Restic. Now Restic resembles Borg in a lot of ways, but it’s not very well documented. But one thing it does have is that it can backup to Amazon S3 and Backblaze B2 cloud storage. Doing some quick calculations with the B2 calculator, I think I can do my backups for way cheaper this way than maintaining a VPS in Ireland – like on the order of a dollar or two a month, rather than 10 Euros. The only problem is getting it to work.

And here’s the problem. Doing hourly restic backups to my local machine are pretty quick – about the same time as borg takes. The only problem comes when I want to delete yesterday’s hourly backups (or rather apply the rules to keep 24 hourlys, 8 dailys, 4 weeklies, and 12 monthlies). With borg, I apply these rules every hour when I back up because they’re quite fast. But they’re so damn slow with restic that had to start only doing it once per day – it takes just a few seconds to run the “forget” command to apply the rules and have it forget about the snapshots that it doesn’t want, but to run the “prune” command that actually reclaims that space, it takes over 30 minutes! And that’s on a local file system. I’m afraid to see how long it’s going to take on the B2 file system, and whether it bumps up the storage costs terribly.

I also had a bit of a teething problem with my first backup to B2 – I was doing it over a network link, and I forgot to do it in a tmux session, so when the network connection got interrupted, it left my first backup in a strange state. I did another full backup the next day, and then I was using twice the required storage on the B2 bucket. I did a restic prune which reclaimed the space, but it took 35 hours to do it. That’s not going to be useful. I need to do a couple of non-failing B2 backups and see how long prune takes in those cases – but if it’s going to take hours, I’m going to ditch restic and go back to borg to the VPS.

Oh, another thing I should mention about restic – It puts a ton of files in ~/.cache. Since I was backing up from the root account, I ended up having to resize my root partition from 4GB to 14GB just to accommodate all the cache files. Very annoying. Borg has 259MB of .cache, and restic has 7.4GB.