How to cough up a lung in the privacy of your own attic

So anybody who follows me on “athletic” social media (Strava, Garmin Connect, etc) probably knows I have a new wrinkle in my winter training on the KayakPro ergometer. I bought their new “Genesis Port” bluetooth adaptor and a subscription to Kinomap. This allows me to “race” against geo-referenced videos. Of course, the first thing I did was upload a bunch of my own race videos (https://vsuq.adj.st/userName=paul_tomblin?adjust_t=e3qslbp&adjustdeeplink=com.kinomap.training%3A%2F%2F%3FuserName%3D?paul_tomblin&adjust_redirect=https://www.kinomap.com/en/u/paul_tomblin/videos) – I figured they’re the best training because they’re the right length and speed. Grayson Bourne, the president of KayakPro (and former(?) British kayak champion) has uploaded a bunch of his own videos as well, but I didn’t want to challenge them, because he’s a LOT faster than me. Also his videos tend to be shorter than mine.

Also, another paddler who makes YouTube race videos that I follow on social media goes by either “Szechung Kayaker” or “Chris Sze”. He lives in Bishops Stortford England, and I’m intensely jealous of how much racing they do there, even if it is on narrow canals in narrow little sprint boats. I was watching one of his recent videos and it suddenly struck me that

  • He’s paddling a pink KayakPro boat
  • One of Grayson’s videos is of a pink KayakPro boat in Bishops Stortford.

Hmmm. I wonder if Grayson just used on Chris’s video? I definitely had to try that route now. It’s only 5.6km, which means it’s pretty much an all-out sprint, but I did a couple of long distance workouts this weekend, so why not?

When I’m racing against my own videos, I’m the only person whose ever done them. Which is fine, but it takes out some of the competitive aspect. This one had a lot more people on it – I think it was 9? Certainly enough to make it a huge challenge.

Right off the gun, there were two people who jumped right out front – literally 100+ meters ahead before the first kilometer was over. There was one guy who was more like 20 meters ahead, and one guy who was 20 meters or so behind. Right, I thought, my work is cut out for me – just keep between these two guys and hope they tire before I do. Very much a familiar race tactic for me, except there was no wake to ride.

Like I said, I was treating this like a sprint, so instead of the 10.6-10.8 km/hr I usually make on the erg (and I don’t think it’s calibrated, because that’s on race courses where I usually average about 10.4-10.5 km/hr), I was making 12.2 km/hr. It was hard, but I was counting down the meters to the end, as well as watching those two names and the meters distance to each one. The guy ahead moved further out, reaching somewhere around 100 meters by the turn around, while the guy behind me got closer and closer, coming within 9 meters in the same distance.

But with about 3 km to go, the guy ahead of me must have slowed down to catch his breath or stopped to have a drink, because suddenly I was ahead of him, while the guy who was behind me dropped a bit further back to about 14 meters. I fooled myself into thinking they’d both gotten tired, but I was already giving it everything I could. The only thing that thought did was prevent me from slowing down, because I really wanted to slow down. But they both got their second wind or something and both of them passed me. I contested that sprint like I battling side-by-side with Dave W at a NYMCRA points race, but both of them beat me, the one who’d been behind most of the time beating me by 1 second.

I like this idea of doing shorter, harder sessions on the erg. I’ve heard there’s a way to use Kinomap for interval training, I’ll have to look into that as well. I know I work harder in intervals if there are other people with me, so maybe this will help.

What’s going on with Yahoo?

Ok, I’m really confused about what’s going on. I’ve been bombarded all night by emails with yahoo verification codes from somebody attempting to log into my yahoo account (which I only have for testing email to my mailing list) from Minnesota.

I looked up my yahoo account on “have i been pwned” and it shows up on breaches of sites I am 100% sure I’ve never used my yahoo account on, like Evony and MySpace, as well as a bunch of hackers.

So I changed my password (which caused me to get another email to my real email address with a verification code, which interestingly was 4 characters instead of the 8 characters that the ones from Minnesota have had). But also interestingly, you only get the verification address after you’ve entered a correct password. Ok, maybe one of those breaches included the correct password. But I also checked my “account activity” and didn’t see any other logins.

So imagine my surprise when I continued to get verification codes. Somebody is still getting to that stage of the login even though I’ve changed my password? How?

I checked the verification emails and they look legit. All the links go to actual yahoo domains. The JavaScript that’s embedded doesn’t look like it redirects any clicks. And I did not click on them, I went directly to yahoo.com.

I checked all my account settings. There are no other email addresses or phone numbers in the account, nor is my email being forwarded somewhere. The only weird thing is that there are absolutely no messages in the Archive or Spam or Inbox. Last time I logged into this account (many months ago), there were literally hundreds of spam messages. Also, there seems to be a very long delay between a test message being sent and it arriving in my yahoo mailbox.

I am completely baffled as to what’s happening. Is my yahoo account completely pwned and being used by somebody else, or the verification emails bogus and I’m concerned over nothing?

Fingers crossed, I might have this figured out

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.

Maybe back to the drawing board…

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.

New Linux Server

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!

2007 Machine2011 Machine2019 Machine
ProcessorIntel Core2 Duo E6360 1.82GHz 4MB Cache, 2 CoreIntel i7-2600K LGA-1155 3.4GHz 8MB Cache, 4 CoreIntel CoreTM i7-8700T Processor 12M Cache, 2.40 GHz
to 4.00 GHz Turbo, 6 Core
RAM2x1Gb DDR2-8004x4GB DDR3-13332x16GB DDR-2666
Disks2x500GB HDD, 2x1TB HDD2x500GB HDD, 2x1TB HDD500GB NVMe, 2x256GB SSD, 2x4TB HDD
MotherboardIntel DQ965GFEKRAsus P9H67-M EVOAsus PRIME B360M-A