I’ve ranted about all my problems with GoPro cameras here numerous times. I think I might have this finally figured out, just in time for the last points race of the season.
I bought these two GoPro Hero 7 Blacks over the winter. I had a GoPro Hero 5 Black and a GoPro Hero 5 Session, and they were both working great at 4K at 30 frames per second (fps), but I really liked how much smoother action was when shot at 60 fps, and so when the Hero 7 was announced supporting 4k/60, I jumped at the chance. I bought one and tried it out in some winter paddling, and was blown away with not just 4k/60, but also the amazing “Hypersmooth” image stabilization. So I bought another. Both times I was able to take advantage of deals where you sent in old cameras and got $100 off – I used that to get rid of some non-functional and/or horrible non-GoPro cameras.
GoPros, like most action cameras, have between an hour and 80 minutes of battery life. If you look at their promotional videos, you see a lot of people doing short intense action, like bombing down snow board runs or surfing or rock climbing. All things where you can record, then stop and change batteries. You can’t do that when you’re trying to record a 1.5-2.5 hour kayak race, so I’ve always searched out external battery solutions, preferably ones that are waterproof. (I wrecked more than one camera with a home-brew waterproofing solution.) Last year I had good luck with this “sidecar” battery from Orbmart:
Unfortunately I’ve had problems all season with the cameras just shutting down for no apparent reason. I tried a bunch of things, but eventually came to the realization that the problem is that they were overheating. I blamed the waterproof case that trapped the heat in. Then I got an external battery that didn’t require putting them in waterproof cases, but while I’d get 4+ hours with that in testing, out in the boat they’d usually work but sometimes they would flake out on me. Then a week ago it stopped working entirely. It wouldn’t charge, it wouldn’t discharge and the manufacturer has been very slow to respond.
But the heat problem wouldn’t go away. I reached out to GoPro, and they pointed me to a support page on their website that basically said “don’t try to use our high quality settings, unless you’re willing to take short shots and let it cool down between shots”. Once again I’m reminded that long duration stuff isn’t their target market. So I’ve given up on 4k/60fps. I did some testing, and I got reasonable results at 4k/30fps. And at 1080p/60fps. That’s the trade-offs I was making with my Hero 5s – last year I shot some races at 1080p/60 to get smoother action, but I shot Long Lake at 4k/30 because the scenery is so beautiful. I’m really not happy that I upgraded my cameras only to use the same resolutions I was using with with the old cameras.
But a few more experiments and I’m 99% sure I can get away with using the 2.7k/60 mode on the GoPros. I did a paddle last night and got nearly 3 hours with the sidecar battery.
It takes a few changes in work-flow to use 2.7k in Final Cut Pro – for instance, I usually take all the clips from one camera (because GoPros actually break your long video into chunks just over 8 minutes long for some reason) and make a compound clip from it and drag that into the timeline. But doing that with 2.7k clips make a compound clip at 1080p by default. Even when you do a “custom resolution”, you can give the proper 2.7k resolution, but it will make it 30 fps (actually 29.97) no matter what you do. But if you drag all the clips into the timeline and make it into a compound clip there, it picks up the correct resolution and frame rate. I haven’t yet figured out if Garmin VIRB Edit will do 2.7k, I’ll have to experiment with that tonight. If not, I guess I can do the data overlay in 4k and let Final Cut Pro resize it.
So I’m going to Long Lake this weekend with my cameras set to 2.7K/60fps. Keep your fingers crossed that everything works.
Yesterday was the Baycreek Cup, hosted by Baycreek Paddle Center. The race is out and back on Irondequoit Bay, however as a concession to the shallow “suck water” and weeds in the channel leading from Irondequoit Creek and the bay, the start was moved out to the channel leading out of the marina at the foot of the bay. It still finishes at Baycreek in the creek, so it’s important to keep some energy in reserve to power through that last 800 meters. Fortunately the race is only 12 and a bit kilometers, so that’s not too difficult.
It’s nice having a race in your own back yard, because you can practice the course over and over again. The first couple of times I paddled it, I was really concerned about the channel because about 500 meters of it was so weedy that I got stopped dead and could only move forward by shuffling my weight. Some of the paddle boarders nearly got knocked off their boards, such was the sudden stop when you hit this stuff. Fortunately the race organizer, Ken, arranged to drive a rented power boat up and down the channel until they’d chopped a path through the weeds. I’m sure the boat rental agency weren’t thrilled with that, but it made this way better for us. The path was only a boat wide, though, so it would be important to be in the lead of any group you were in when you hit it because there wouldn’t be any passing, and who ever hit the open water after it could really put the hammer down and drop people.
In our practices, Dennis was constantly dogging my steps, either side by side with me or riding my wake. I knew I’d really have to be on my toes to not let him get the better of me. I was figuring worst case he’d ride my wake for until near the end and then sprint around me to grab the channel first, and best case we’d trade off leads all the way around and then it would be a matter of timing and sprint power at the end. After our practices, I thought beating 70 minutes would be an attainable goal, especially if I could cooperate with Dennis.
Race day turned out to be windy. Standing at Baycreek getting ready, the flags were indicating a very strong wind directly up the length of the bay, meaning a fast first half and a horrible slog coming back. It was also predicted that above the bridge the waves would probably be pretty rough at the turn around. I liked the idea of a fast first half, wasn’t too thrilled about the turn around or the slog back. But when we paddled out to the start, the flags out there were indicating a wind directly across the bay. The waves were still pretty much heading north, but the wind was pretty much west to east, making me think the wind hadn’t shifted that long ago and maybe they’d turn completely around during the race. Ok, that would make things tricker, and maybe easier if they turned into a tail wind for the trip home. Not that the bay ever does that – it’s far more likely to give you a headwind in both directions in my experience.
As we’re milling around at the start, everybody helped each other checking their rudders for weeds picked up coming out through the channel and such. Jim wanted to dock up with me to get stability to mess with his GPS, and he was still fiddling with it when Ken gave us the 10 seconds to start notification. We quickly extricated ourselves from each other and got ready to go.
Jim leapt off the line like he usually does, and continued straight up the channel. I, on the other hand, headed more out into the bay, hoping to pick up more of that tail wind that I was hoping was still out there. We’ve discussed this difference in route in practice sessions, and Jim’s route is definitely better if there is a head wind because he stays in the wind shadow from the point, and also he stays in deeper water so less drag (or “suck” as we usually refer to it). But my way is more direct, and like I said, I was hoping there might be remnants of the tail wind and/or waves from behind more towards the middle of the bay. It didn’t really work out that way, and not long after the start the waves were definitely from the beam, although pretty small.
I risked a couple of glances around and I could see Dennis and Mark had opted to follow Jim up the channel, and the first time I spotted them they seemed about even with me. That was concerning, especially if they worked together. I increased my stroke rate and tried to make some more progress against the unfavourable winds and waves. Sometimes it seemed like the waves were coming from in front, and sometimes from the side, but the wind was mostly from the side, and I was certainly slower than I’d been in practice.
Nearing the first point, I took another glance around and saw Dennis and Mark were out of the channel and heading straight towards me, although a few boat lengths behind. I was still convinced it was a matter of time before they caught me, so I tried to speed up even more, pacing be damned. At the point, one of the race safety kayaks was there and I gave them as good a nod and a hello as I could manage.
Under the bridge I went, and the waves got noticeably choppier. But they were still coming from the side, which for reasons I can’t entirely explain made turning at the turn-around marker much easier than if they’d been from behind. I took the turn pretty wide to keep my speed and stability up, and was amazed to see Dennis was now a fair distance behind and Mark was even further behind. Maybe the chop was bothering them more than it bothered me. I guess I could afford to slow down a smidge and recover, but I was still aware that Dennis is far fitter than I am and could catch up at any time if I were to blow up or slack off.
I noticed that after the turn, Jim had headed over to the upwind side of the bay. I guessed he was hoping to get out of the wind. I considered it, but it seemed like it would add a bit of distance to the race, and also the shoreline on that side is quite irregular so it would be hard to stay out of the wind without going into and out of all the little embayments. He told me afterwards that while he was hoping to get out of the wind, his secondary goal was to find a boat coming out of one of the many marinas on that side and ride their wake.
I tried looking around for Dennis a few times on the way down and couldn’t see him. I couldn’t understand, I was sure that meant either he’d dumped it out there and was miles behind, or he was right on my stern wash and I couldn’t see him because I wasn’t turning all the way around. I found out afterwards he’d followed Jim’s strategy, figuring he didn’t have anything to lose and he might get an advantage over me. It seems to have only added 150 meters or so to his distance compared to mine, so maybe it was worth it? I guess we’ll never know for sure.
But in my uncertainty, I had to be extra vigilant to make sure I didn’t let my speed drop. I bobbled a couple of boat wakes and had to stop paddling once or twice to brace, and I was sure I was setting myself up to get caught. But every time I did I’d look down at my GPS, concentrate on getting a good snap of the blade out of the water, and watch my speed increase by 0.3 to 0.5 km/hr.
After the bridge, it was less rough in the southern bay but the wind was still being a pain. It was either straight in my face or off to the right, and quite gusty. And the boat wakes were more numerous. I only saw boats heading north, so I guess that’s why Jim didn’t get those boat wakes to ride.
Also in the south bay I was starting to pass the stragglers of the paddle board race. One of them was ahead of me and only a few hundred meters from the entrance to the weed channel, so I put on another major effort to get ahead of him. The last thing I would have wanted was to get stuck behind a paddle board going 2 km/hr slower in the channel and allow Dennis to catch up. But after I passed him I could relax a bit and recover knowing that nobody was going to pass me until the other end of the weeds. And once I got there, I put in one last sprint under the road and across the line at the shop.
Afterwards, all there was to do was to wait for Dennis and Mark. I don’t have the official times here, but I think I was about a minute and a half ahead of Dennis and maybe another minute to Mark? Both Jim and I missed our goals by 2 minutes, which I guess is the rough water and unfavorable winds factor. Still, a fun tune-up race for next week’s Long Lake, great atmosphere, good food, and the band that Ken hires every time are still as delightfully bad as they always are.
I had this idea for an app to handle registration and results for kayak races. I had the following requirements in mind:
It must work when off-line
It must work on laptops and tablets
Preferably, it will sync up with a server when it is on-line
It must not require any installation or other technical futzing around because my target audience (the people who run kayak races) are not all very technically sophisticated.
After that, my idea was to make a proof of concept, and incrementally improve it as I got more ideas and maybe got some interest from others. I also wanted it to be a web page (with supporting JavaScript and CSS files), one that I could just give people a zip file and they could unzip it and open index.html in their browser and be good to go.
I discovered PouchDB, which would take care of the storing information locally in the browser when off-line, and also would sync to a server when it came time to do that. And so off I went programming away. My little proof of concept was humming along, it could accept registrations and display and edit existing registrations, and I was well set to add results entry and display, when I thought to try it on the bane of every web developers lives, Internet Explorer.
First problem: IE reports the ‘fetch’ is not a valid function. Fortunately, the documentation for PouchDB warns you about that, and says to install a polyfill. So I install it, and now IE reports ‘Promise’ is not a valid function. Hmm, no mention of that in the PouchDB docs that I can find.
Can I just mention as an aside that the PouchDB docs do say that it supports IE 10 and IE 11? Yeah, about that…
Thanks to an answer on StackOverflow, I find another polyfill for Promise. Now IE reports that you can’t use IndexDB on web pages that are loaded as files rather than as URLs. Not sure what to do about that except tell people to stop using IE. It appears that with my polyfills and stuff, it does work in Edge, at least. Small mercies.
I’d say the day dawned bright and early, but Mike and I actually hit the road before dawn so it was not bright but it sure was early. After driving behind what I thought were the slowest drivers in the Adirondaks (at least until the drive home) we arrived around 9:30 in plenty of time to register and prepare.
There was a strong breeze, and Mike decided to switch from his cut down rudder to a normal weedless. I stuck with my new 5″ DK rudder, which is a bit smaller than an Epic stock weedless, but still gives me pretty good control. The wind actually picked up by race time and gave us a ton of challenging wind and wave conditions from every direction, but I never wished for more rudder control.
There was a stronger field this year than last. There were the guys who I knew I had no chance against, like Jan W and Eric and Ed Joy. There was Jim Fredricks and his wife JoAnn, who last year only did the 7 mile race but this year he was saying that he’d “probably” do the 14 miler – in this race you’re allowed to decide which one you’re going to do at the first buoy turn. Eileen Visser was here, as well as her son Scott. And a whole load of our Rochester paddling group, including Dennis Moriarty and Mark Ressig, both of whom have beaten me the last time we raced each other. Roger Gocking and Jim Phillips were in Roger’s V8 Double.
Of course, being racers we had to have the traditional pre-race “airing of the excuses”. Eric claimed he’d just gotten over some sort of stomach bug, and Jan said he had only paddled twice since the Tupper Lake race. We declared Eric the winner of the excuse contest. Turns out later that he actually hadn’t been exaggerating.
Off the start, I was resolved to not make my usual mistake of leading a pack and then getting beaten by them. So I was sort of on Jim F’s side wake and Mike was beside me. Eric must have had a slow start because he came chugging through on the other side of Mike. Jim was a little anxious to get on Eric’s wake and basically was pushing me into Mike until I thought “why am I doing this” and decided to hold my line. Jim ended up tapping me, but that’s racing. Then he was ahead, and I kind of crowding Mike out of his stern wake. Looking back I could see Dennis and Mark and a few others on Mike’s wake.
We were somewhere near the buoy where the 7 mile racers turn off when Eileen came chugging up along side me. She wasn’t looking for anybody’s wake to ride, but it looked like a lot of Mike’s train was now on her. We pretty much stayed like that, with Jim leading one train with me right behind, and Eileen leading another train. The first river was a bit narrow but nobody really got in each other’s way. Then we came out into Eagle Lake.
We had quite a headwind by now and the waves were making it hard to keep station on Jim’s stern wake. I tapped his stern exactly once, which I thought was pretty good boat handling on my part considering I’d been on his stern for 4 kilometers, but he didn’t like it and yelled at me. As we went into the second river, I ended up side by side with Eileen and we were trying to not interfere with each other or with Jim but it was a tight squeeze and we couldn’t be 100% non-interfering without just conceding the whole race and going into single file.
On the next lake, the wind seemed even stronger. Jim grabbed his drink hose and I noticed his hand shaking a bit and his boat twitching, and I thought “hey, maybe he doesn’t like being in the waves or maybe he doesn’t like being in a pack in the waves, either way I’ve got to take advantage of that”. If either of those is true, it’s no wonder he didn’t like me tapping his stern earlier. Or maybe it was a ploy – earlier he’d tried a few ploys to make me take the lead or to drop me but I saw them coming a mile away. Just one of the many advantages of training in a big group like we do here in Rochester.
I surged ahead, hoping I could drop him. Eileen came with me and we ended up side by side going into the wind. Eileen remarked how this is just the most beautiful race, and I can’t say I disagree. We didn’t drop Jim, although we had dropped a lot of our respective trains at this point. Jim seemed like he wasn’t sure which of us to follow as I saw him switch from my stern to Eileen’s a few times.
Approaching the turn buoy, I could see that the people ahead had gone clockwise. Since I thought we had a gap, I suggested to Eileen that we go counter clockwise instead, because it would mean that we’d exit the turn with a good strong wind behind us. But just as we start the turn we see Jim and JoAnn and a couple of others just a half a boat length back and bound and determined to go around clockwise and yelling at us to widen our turn so they could turn inside us. While the map at the captain’s meeting didn’t indicate a preferred turn direction at this buoy, and last year we turned it counter clockwise, the map on the race website does show a clockwise turn so they were probably within their rights to demand we accommodate them, and we did. But turning into the wind did help, and we opened up a good gap.
On the downwind, our speeds went up from around 9 km/hr to around 11 km/hr. I was hoping we’d pick up more but the waves were only moving about 9 km/hr and we had to punch through them rather than ride them. Eileen stopped to eat something, so now I was alone for a minute or two until Jim caught back up and passed me. I tried to stay with him, but couldn’t. He had maybe a two boat length gap heading into the first river but he kept pulling away. And as we headed into Blue Mountain Lake, JoAnn came through and passed me and caught him – I’d actually expected Eileen rather than JoAnn. They then proceeded to work with each other and increase their lead on me for the rest of the race.
As we proceeded around the lake, each buoy turn gave you an opportunity to see who was behind you and how far back they are. They also launch you into a new direction with respect to the wind and new conditions of wind and wave. Sometimes it was surprising because you’d think based on the previous leg that you’d end up with a beam sea for the next leg, but the wind would be channeled around an island or the waves would refract between two islands and you’d find yourself with a good following sea or at least a not very adverse angle.
At the first couple of buoy turns, I could see that I had a really good gap on Eileen and Dennis, that Mike and Mark were well off the pace, and Bob Raymonda had moved himself nearly into contention with Dennis. And then as the race went on, my gap over Eileen and Dennis shrunk a bit but not enough to worry about.
But then the last couple of legs had quite adverse beam waves and reflected waves off the shore and all manner of challenges, and I was foundering a bit, having to brace once or twice on some of the turns and missing strokes. But I was still amazingly surprised on the last leg into the finish when Eileen passed me, and I glanced over and saw Dennis almost there as well. Suddenly I was no longer thinking about the waves and balance, and only thinking about catching Eileen back up and keeping ahead of Dennis. And you know what? I felt much more stable then than I had before. I didn’t catch her, but I don’t think I was more than a boat length behind. (I think the official result has me 39 second back, which I don’t think is accurate.) Looking at my rear facing video camera, it looks like Dennis was at least 5-10 seconds behind me, although officially he was given a time 2 seconds back. Oh well, as long as the positions are right, right?
My Linux server, which I bought back in 2011, was getting flaky, crashing and freezing up with alarming regularity. So the first thing I tried was ripping out the two nVidia video cards – I’d originally put in two because I was using it as my daily driver and running three monitors (including a 4K), and didn’t need them any more because I only had one monitor on it and rarely logged into the console since I switched to using a MacBook Pro and then later a 5K iMac as my daily driver.
But that didn’t really help much, so I started looking at a replacement, and instead of getting a JNCS motherboard bundle and then finding my own case, power supply and drives, I bought a complete system from JNCS. However, in anticipation of getting the new system, I bought two new 4TB drives to replace the 3TB drives in the existing systems. And after I’d finished migrating the data from the 3TB drives to the 4TB drives and took the 3TB drives out of the system, the random crashes stopped! Shit, I didn’t have to buy the new system after all!
But anyway, the new system arrived. I moved the two 4TB drives and the two 256GB SSDs from the old system and fired it up. I had a hell of time swapping cables around and between SATA ports because I’d get the BIOS to recognize 3 of them but not 4 of them until I found just the right combination. I think a new set of SATA cables might be in my near future. After getting the BIOS to recognize the 4 drives, I could not for the life of me get it to boot from them. The grub menu would come up, but it couldn’t find the /boot partition for some reason. I tried booting with a live image to repair the boot, but couldn’t get it working, so I said “screw it” and just installed a new Kubuntu onto the built-in NVMe drive and restored all the required functionality from the old system.
I also had a hell of a time with the 4TB drives – they were RAID-1 with LVM on top of them, but the new system wouldn’t recognize them as RAID-1. I tried various “mdadm –assemble” commands, with no luck. Finally, I said screw it decided to just nuke it and start again. I used fdisk to re-write the partitions and did a “mdadm –create” to create a new RAID-1, but as a complete surprise to me, the system immediately recognized the existing LVM system and gave me back all my data!
Anyway, it’s working great now and one of these days I’ll be confident enough in the new system to reformat and repurpose the old SSDs. And boy does that NVMe drive boot fast!