Category Archives: Rant

Some random thoughts on naming conventions

Something recently made me think about product naming conventions. It seems to me you can start off with a really nifty naming convention, but after a while, it gets so cluttered with exceptions and new products that it doesn’t work anymore, and then you have to throw out the whole thing and start again.

Take, for instance, Epic Kayaks. Now I’m not 100% sure of the history, but I believe their first surf ski was the V10, and their second was the V10 Sport. Calling it “Sport” didn’t make a ton of sense because the V10 Sport is actually a less capable surf ski, but was wider and more stable to appeal to a less elite audience. To me, “Sport” usually implies a faster or more capable model, like the “Sport” model of many cars that maybe has more horsepower and gripper tires, or maybe just go-faster stripes and a manual gearbox. They also have a V10L which was at the time just a low-volume version of the V10. I believe they’ve redesigned it since then to be more of its own boat specifically for lighter paddlers.

But since that time, they’ve added the V12 and V14, each of which is narrower and less stable (and faster) than the previous, and then the V8, V7, and V5, which are increasingly more stable and slower as the number decreases. Then they made a boat that was sort of intermediate between the V8 and the V10 Sport (which was already intermediate between the V8 and the V10) and found themselves naming it the V8 Pro. Not as bad a decision as the use of “Sport” in the V10 Sport, because it does imply something faster than the V8, and it is. But still an obvious shoe-horn into a naming convention that was already under stress.

Then this year they demoed a boat that had the same width as a V12 but which was shorter (shorter even than the V10 Sport) to handle short period waves. When they were demoing it, they were calling it the V12M. And that wasn’t a horrible name because really I think it was designed to be “like a V12, but only for specific conditions”. But then they announced it officially as the V11. That to me implies something faster than the V10 and slower than the V12, and it probably actually is.

But I think their number system is getting crowded. It mostly works that the higher the number, the narrower, longer and faster the boat is. But there are exceptions. The space between the V8 and the V10 has two boats, neither of which is called the V9. There are three boats that are called “V10” (ignoring the V10 Double for a second), with pretty different characteristics. People confuse the V10 Sport and V10 a lot. There aren’t that many V10Ls around here, so I don’t know if they get confused for V10s a lot.

Epic is going to continue to design new boats. Some of them are going to be brought to market. I think sooner rather than later they’re going to have to throw out the whole “V number” system, and either just bring in new boats with a different designation or maybe even redesignate the whole fleet.

Naming conventions are tricky. I like that a person can broadly tell whether an Epic boat is more elite or less elite just by the name. I can’t tell anything about, say, the Fenn boats because they use proper nouns instead of numbers. But on the other hand, as long as Fenn designers can think names, they’re never going to have this problem.

At least they aren’t doing stuff like the computer hardware world, where you get horrendous long names with numbers and letters in riotous abandon. I’ve got an HP OfficeJet 6700 Premium printer. That name doesn’t tell me anything about its capabilities or how it stacks up against the OfficeJet J6000 or the OfficeJet L7000 or anything else in the HP printer line.

I’m reminded of the software world. Basically, most software uses monotonically increasing version numbers, usually with a minor and maybe a semi-minor version number as well, and you know that a change in major number probably means something significant and a change in semi-minor is probably invisible. So macOS 10.12.6 is obviously newer than macOS 10.12.5 and possibly just fixes some bugs, but it probably has some feature changes from macOS 10.11.1.

Windows started off with monotonically increasing numbers (Windows 1, 2, 3.11) and then switched to the last two digits of the year (being the only people I know stupid enough to set yourself up for a Y2K problem with only 5 years left to go) with Windows 95 and 98, broke the convention with Windows 98SE and Windows ME, then looked like they were going back to it with Windows 2000. But then they switched to names that meant nothing (XP) and then back to numbers for Windows 7 and 8, but due to problems caused by lazy programmers in 95 and 98, had to skip Windows 8 and go directly to Windows 10. Ugh, what a mess!

One piece of software I used way back in the day was a dBase III compiler called “Clipper”. I used to love the fact that their naming convention was actually the season and year of release, so Winter ’84 was followed by Summer ’85, etc. Good, because it was easy to tell if the version you found on the shelf was newer than the one you were using. But people evidently didn’t like it, because for their 6th release, they switched to calling it “Clipper 5.00” (yes, it was the 6th release – I guess that means they started from 0) and then “5.01”, then “5.01 Rev 129” because who needs consistency? Although looking at Wikipedia, it’s possible that people didn’t like the seasonal names because they lied a lot. “Summer ’87” was released on 21 December 1987.

So I guess what I’m saying is I’m glad I don’t have to name stuff because my OCD would want the names to tell you something, but I’d also want to leave room for fill in products without breaking the convention, but at the same time be memorable and not confusing.

More camera woes

One of the things I’ve struggled with over the years is that a typical waterproof action camera has a battery life of around 80 minutes, and most of my races and training paddles are longer than that, especially if you want to start the camera when you leave the shore for your warm up and not have to faff around on the start line trying to get it started when you really should be concentrating on the race. I’ve experimented with various ways of providing power from a USB battery pack to various cameras with varying success but they either haven’t worked or they’ve succumbed to water damage.

My newest camera is a GoPro Hero Black 5, which is waterproof without an extra case. It has two openings with waterproof covers, one for the battery and memory card, and one with a USB port and an HDMI port. The USB port can be used for charging or for downloading video. I was assured by people on the GoPro forum that it would be perfectly safe to remove the cover over the ports, plug in a USB cable, and seal around it with one of those silicon putty earplugs they sell to swimmers. I’ve been using it like that all year and it’s been great. With a small USB battery also sealed with silicon putty I’ve had record times over 3 hours with no problems.

However last Thursday was the first time I actually let the camera get fully immersed, rather than just splashed – I was landing in a big surf and the boat flipped over after I jumped out. I didn’t think much of it – the camera seemed fine, although the touch screen was acting a little wonky. I didn’t think much of it – I just figured it didn’t like the water on it and I’d have to remember to disable it next time. I took it home and plugged it into my computer to charge and download the pictures, and then forgot about it.

Until the middle of the night last night, three nights later, when I heard the distinctive sounds a GoPro makes when it’s powering off. That’s odd, I thought, maybe it took this long to fully charge and now it’s shutting off. And then some time later, it happened again. Shit! I got up and stumbled into my office, and discovered it was powered up again. Not wanting to be kept awake all night by this stupid beeping, I took it into another room and removed the battery. That’s when I saw green corrosion on the battery terminals. A very bad sign – that means that water had gotten into the case and into the electrical parts. I’m afraid to power it back in this morning and see if it’s still working. I’ll have to see if it’s too late to properly dry it out and hope it survives.

Give it a REST

As you might know, I’m currently looking for a job. And one thing you see in job ads is a requirement for experience with “REST APIs” or “RESTful services”. And as far as I can tell, it’s nothing more than a naming convention for your basic CRUD (Create, Read, Update, Delete) web services. If you write four URL handlers for the URLs “/item/create”, “/item/{item id}/read”, “/item/{item id}/update” and “/item/{item id}/delete” then you’re a filthy normie and unemployable, but if instead you make one URL handler for “/item/{item id}” and check the request type and do the read, update and delete based on the request type being “GET”, “PUT”, or “DELETE” respectively, (creation being done with a POST to the URL “/items”) then you’re a “RESTful” guru and will be showered in money.

Can we just agree that being a naming convention, it takes approximately 5 minutes to train somebody how to do this? And if my former employer would give me back my login for an hour or so I could go back and change all my AJAX calls to fit this naming convention and join the ranks of the REST API experienced.

Armond Bassett 2017

The Armond Bassett (AB) race normally has two moods:

  • Hot and airless and humid or
  • Torrential downpours and lightning touching down less than a quarter mile away

Based on early weather forecasts, I thought we were going to get the second option this year. But instead AB decided to throw another option at us – it was mild temps, still pretty humid, but with a strange swirling breeze that delivered head winds and tail winds at completely random times on the course.

It was a big crowd this year – lots more kayaks than in past years. Other than Royal, the guy who’d ridden my wake for the first half of Round the Mountain this year and then demolished me in the second half, the top contenders were all local guys – Jim, Todd, John H. I knew I wasn’t going to be seeing a top 4 finish with those guys here.

My main goal was to beat Roger and Eric. Both of them paddle Epic 18Xs, but in spite of the slower boats, I’ve had my hands full with these two in the past. In last fall’s Long Lake I’m managed to drop Roger but Eric had ridden me off his wake. Roger and I have traded off beating each other in various races in the last couple of years, so he was the benchmark.

Because AB is so flat, I elected to paddle my V12. I’m not 100% sure I’m faster in it on the flat – I’m definitely slower in it in any sort of waves, but I think I have a small edge in these conditions.

Also, because of the humidity, I elected to not wear my PFD, which necessitated a change to my drinking system. With the PFD, I keep the water bag on my back, with the drinking hose snaked through the straps of the PFD and dangling on my chest where it is easy to grab it and stuff it in my mouth without losing more than one stroke. In my V10 Sport there is a perfect spot for the drinking bag ahead of the footplate in the cockpit, but it’s a very tight squeeze in the V12 cockpit because of this stupid ledge that Epic put in for no discernable reason. If I’d been thinking clearer, I’d have remembered that previous times I’ve paddled the V12 without wearing my PFD I’ve put the bag under the bungees on the back deck. I should have done that this time.

So when it was time to warm up, I started up my two GoPros. Nothing seemed amiss except the one on the front of the boat seemed a bit askew. After a few minutes warm-up, I discovered my drinking hose must be kinked because I wasn’t getting any water out of it. I stopped at the GRC dock and adjusted both the hose and the GoPro. However, the GoPro then decided to beep and announce it was missing an SD card. I have never forgotten the SD card before, so I assumed it was a glitch and power cycled it. No luck. So with no time to put it away somewhere, I left it on the front of the boat.

One aside – the GoPro Hero 5 Session that I wear on my head sometimes shuts off in the middle of a paddling workout for reasons I don’t understand. Hitting the record button on top starts it up, and it’s usually so quick I can easily cover up the glitch in the edit.

As I was lining up for the start, trying to make sure I was close to Eric, I heard the characteristic beeps of a GoPro shutting down. Thinking it was the one on my head, I quickly hit the record button on it. In retrospect, it was probably the one on the front of my boat deciding it had been on standby long enough and shutting down. So GoPro #1 shut down and I reacted by shutting down GoPro #2. That’s like the classic Cockpit Resource Management lesson about the airliner that crashed in the British Midlands because the pilot shut down the wrong engine when one was losing power. So there won’t be any video for this race. My adoring fans will just have to wait until the next race.

So anyway, the start siren went off and we launched from the line. We had the current and wind behind us, making for a fast first segment. Immediately Jim went off like a bullet, followed by John H and Royal. Todd wasn’t immediately up there but he came through pretty quickly. Eric got a good jump on me as I struggled for a few seconds in all the boat wakes, and Roger was right beside me. I put in a big pull to get up to Eric’s wake. I didn’t turn to look because of my lack of stability, but I assume Roger was now on my stern wake.

I wasn’t on Eric’s wake for long when he suddenly stopped to deal with his drink hose that was sort of falling out of his boat. I’m not sure if that was a ploy to get me to pull or a legit problem, but the upshot was that now I was pulling and Eric was on my side wake. I did a very quick glance and I could see somebody in a white boat on Eric’s stern wake, but I couldn’t tell you if it was Roger or Aaron (more about Aaron later). He stayed on my side wake for a while, but I suddenly felt like he was slipping back. I put in a dig and tried to scrape him on a canal buoy. It worked and he wasn’t on my side wake anymore. I don’t know if he was on my stern wake or not.

At the bottom turn buoy, I could spare a very short glance back and see there was more than Roger and Eric behind me. I couldn’t see who else was there, but there was one other boat right there, and several close enough to be considered a legitimate threat. I rounded the buoy and went for the wall, which is optimally shadowed from the current and the wind. And I immediately grabbed my drink hose and shoved it in my mouth and sucked, only to find nothing coming out! Dammit, kinked again! This is going to be a problem, I thought.

Half a kilometer from the turnaround there’s a point where you have to leave the shelter of the canal wall and move out because it gets shallow and weedy. That’s when I realized that instead of Roger or Eric, the occasional paddle banging noise I’d heard behind me since the turn was Aaron B, a local young sprint paddler. He was now up beside me on my side wake. Since he was obviously more stable in his ICF sprint boat than I was in my V12, I asked him how far back the others were. He said they were 5 meters behind. Well, 5 meters is better than nothing, so I kept grinding. I knew they could close 5 meters in no time if I tried any tricks to get Aaron to lead or tried to give another pull on my drink hose, and I didn’t want that. Better to tow Aaron than end up towing Eric and Roger.

For the entire way upstream, I was using every trick I could to get out of the wind and the current. I’d paddled the course a few times and I knew which tree branches you could duck under and which you had to go around, and I knew about one island you could sneak behind and the other one that wasn’t an island anymore. I also made use of the wakes of canoes we were passing to get a bit of a launch. But here’s the weird thing – when I used one of these tricks, Aaron would leave my stern wake and go paddle in the middle of the river, still keeping up with me. I got the distinct impression he was toying with me. And because he’s young and fit, I assumed it was only a matter of time before he got bored of that and blasted off ahead.

I was actually kind of counting on him blasting off ahead. By the second turn buoy, my cockpit had an annoying amount of water in it, but I didn’t want to kick open the venturi drain because of the extra drag. I figured he’d blast off after the turn, I would be able to assess where I was ahead of Roger and Eric, and see if I had time to deal with the venturi drain and maybe even make another attempt at getting something out of my drink bag. But he never did, so I never did.

The second turn buoy is the best place for assessing where you are in the race. I was a little surprised to see Todd coming downstream before Jim. After Jim, John H was very close to him, but Royal looked like he’d be well and truly distanced.

I had a pretty substantial gap on Eric and Roger, who were still together. Not very far behind them was Dennis, a local triathlete who started paddling with us last year and who is making rapid progress to becoming a fast paddler. Further back was a clump of paddlers that contained Jim P, Steve B, Mike F and Mark, another local triathlete who is making the transition to paddling. It was kind of weird to see Jim leading because he put a heavy weight belt into the bottom of his boat to give himself more stability. His boat must have weighed 1.5 times as much as the Ultra layup boats of Mike and Steve. Steve B called something to his son Aaron – I think he was asking if Aaron was feeling ok, and Aaron said he was fine. So suspicion confirmed – he wasn’t having a bad day, he was toying with me.

Ok, I thought, he’s going to outsprint me. Big deal, that’s his specialty. He can probably hit 15 km/hr in a sprint, whereas I’d be lucky to hit 12 km/hr for more than a few seconds. But I kept grinding away because I knew if I didn’t, Eric was going to grind right back up to me. Aaron would be on my stern, then out a boat length or more off to my side, then he’d be back on my stern. I really had no idea where anybody else was – I couldn’t see the kayakers ahead of me through the forest of canoes, and I couldn’t hear or see anybody behind me except Aaron.

At all the landmarks where I knew how far to the finish, I expected Aaron to sprint past me. Under the 490 bridge, 600 meters to go, no Aaron. I tried to raise my speed as much as I could. Under the pedestrian bridge, 300 meters to go, still no Aaron. Ok, this is weird. He should be able to pass me in his sleep. But he didn’t. As I crossed the line, they called out our finish times, and I was a few seconds ahead. So he didn’t even pull up even. By the time I got to the dock, I could see Eric and Roger had finished not very far behind me. But the important thing was they were behind me. I think I heard somewhere that Roger actually passed Eric, but I’m not sure about that.

In terms of actual time and speed, this was actually my slowest AB since 2010. That’s a little worrisome, but I think the stronger than usual current and wind slowed me down a tad. Thanks to Royal and John H still being youngsters, I ended up finishing 3rd in my age group. I’ll take that.

Maybe it’s time to shut it down…

I wrote earlier about using my navaid.com website as an excuse to practice some new skills, rewriting the UI to use react.js and just generally making it look better and more responsive. One thing I haven’t had time to do yet is redo the backend. I was going to use that as an excuse to learn Flask or Pyramid.

Except today I read a news report about a plane that crashed because the idiot pilot relied on a waypoint on his GPS instead of following the regulations and actually checking “all available information” about his place of intended landing. In the news report, Garmin said that the place he was planning to land wasn’t in their database. And I checked and sure enough, it’s in my database as an Ultralight park. Now the thing about microlights/ultralight parks is that they can be anything from a short paved strip to a cow pasture that a farmer sometimes allows ultralights to land in. They’re also not listed in the official AIP (Aeronautical Information Publication). Not the sort of thing a prudent pilot would land without doing due research first, including phoning the owner and finding out the landing conditions.

But even if it’s 100% clear the pilot was at fault and didn’t do his legally required flight planning, I had a bit of a panic at the thought that he might have loaded the data from my navaid.com site into his GPS (it’s not that difficult with a handheld GPS, damn near impossible with a panel mounted certified GPS).

Meanwhile, I’ve basically been keeping this site going out of a sense of duty. I don’t fly any more, and the programs I originally did this to support were for the Palm Pilot so nobody uses them. I used to get donations, but I don’t any more. I haven’t received any feedback in years. I’ve been doing this for 20 or more years. Maybe it’s time to retire it?