Blog

Knowing a Boat

Janell and I cherished the hundreds of steps adding up to the finished whole of our wood strip canoe. The result is a piece of finely crafted furniture like what you won’t find at Ikea. It is handsome to look at.

But…a canoe isn’t just for looks. A canoe moves through water. How a canoe moves results from its shape, and the shape of a canoe results from compromises. Short boats turn quickly. Long boats go fast. Some boats are tippy, some are stable. You can spend a lot of time designing a perfect boat, but you really don’t know what you’ve got until it’s built.

Here’s an example; There’s a distressing story about a Scout troop that built boats out of PVC pipe and tyvek. They assumed a canoe only has to look like a canoe for it to behave like a canoe. They launched on a multi-day, down-river camping trip.

Within three hours, rescue teams retrieved everyone on the trip, minus boats.

Boat design is hard. There are lots of ways to screw it up and produce a useless canoe. It can look great, but….

Proper Party Etiquette

I have more opinions about canoes than most people want to hear. Like other topics I don’t discuss at parties, the pros and cons of canoe performance are something I avoid in mixed company. If you can’t see the obvious problems in the photo to the right, we’re better off discussing the appetizers than river keels versus lake keels and why ABS is better than aluminum.

I have friends that discuss trucks. V8 vs V6, F150 vs F250, Ford vs Chevy vs GMC. I’m trying, really trying, to educate myself so I can take part in these bar discussions. But I lose focus then order more deep-fried cheese curds. I assume it’s the same problem people have with me when I pontificate about the Zen of paddling.

So forgive me for this self-indulgent posting. I’ll try to keep it interesting.

Four Days, Three Nights

As we built the canoe, we had clues about performance. This canoe was exceptional, but to really know we had to spend some time with it on the water.

Janell and I took the boat on a Willamette River trip from Eugene to Buena Vista. Seventy-five miles, four days, three nights. We carried three Duluth packs (equipment and two personals), a cooler (because we don’t have to portage), a camp kitchen (because it’s cool and we can), and a food pack with way too much food (because who wants to starve?)

Paddling Fast Water

Near Eugene, the Willamette is pushy and a rock garden with submerged trees providing ample opportunities to drown inner-tubers without lifejackets. It’s level two whitewater; a boring paddle for short play boats. A play boat with lots of rocker and no keel behaves like a Border Collie at a sheep herding competition, sponsored by the ADHD foundation and catered by Black Death coffee Brewers. Navigating a loaded seventeen-foot canoe requires planning ahead.

In a lake, you point the bow where you want to go, then paddle. Simple. But “Point and paddle” on a river doesn’t work. On a river, you must understand how the current is moving in relation to an obstruction, set the angle of the boat, and work together (bow and stern). It’s disconcerting to come down river broadside to a tree stump. But that’s the correct line; at the right time, bow and stern dig in, and the canoe slips past the big ugly. Fast water paddling involves strategic placement and paddling bursts.

Our canoe has no keel, and it willingly pivots around the center point. Janell and I made more than one last-minute decision to go in a different direction, and the canoe cooperated.

At one bridge just upstream from Harrisburg, a large snag of trees had piled up in front of a pier (decorated with abandoned inner tubes from previous failed attempts). We planned to go to the right of the blockage, but as we got closer, we saw a gravel bar blocked the right channel. We had no choice other than to swing left and thread our way along with a majority of the current. The canoe was fine with the change in plans; we set a line and encouraged the move with a few strokes. No muss, no fuss.

Don’t get the impression everything was water under the boat. We ran over a few gravel bars and went over an unexpected ledge. The canoe has some scratches, and I have to make some repairs. But it’s still waterproof, the shape of the boat held together, and there are no alarming cracks.

Paddling Flat Water, of a sort

Past Norwood Island, the Willamette River settles down. It still flows at 5 knots, but no longer presents as many snags and gravel strainers. My notes describe it as “pastoral.”

We were now in slow water, much more like paddling in a lake. It’s contemplative and soothing. Look up “movement meditation” for a clinical description of what happens when you paddle with a well-matched partner. Janell and I can paddle all day without switching sides. I’m not exaggerating.

Of course, the boat you are in has a lot of influence. Longer boats, or something with a keel, will want to go straight. Maintaining a line requires nothing more than minor corrections and matching the stern and bow’s strength and pace.

I don’t understand why, but this boat is easy to keep in a straight line. It’s fast, and it goes where you want; straight or turn. We’ve tried to find the designer and to ask them questions; so far, no luck and we can only guess at the design compromises.

Old Town, Seliga, Northstar, Grumman.

I’ve paddled a fair number of canoes. Eighteen-foot Chestnut wood and canvas canoes with lake keels are the freighters of the north woods. Challenging to flip and portage, they lumber along with persistence. Landing requires planning; they will happily plow forward into granite rocks unless you have a preliminary conversation about slowing down and eventually stopping. Turning is just not an option.

On the other end of the canoe continuum is a sixteen-foot (or seventeen-foot) ABS Old Town Tripper with no keel. I took a sixty-day trip in the Northwest Territories with three seventeen-foot Old Town ABS boats. We had lots of gear, and lots of whitewater. It’s different than a twelve-foot whitewater play boat – but it was perfectly willing to stop, back-up, turn, and push through a standing wave.

In between are lots of other boats. Seligas (17-foot wood and canvas) are sturdy (heavy) and have good momentum. Grumman aluminum boats are noisy, heavy, durable, and traditional. I hope I never have to paddle one again. Northstar makes a great kevlar boat, Wenonah makes a light-weight boat with saddles; I never liked them.

</pontificate>

Alas, I am doing that which I promised to avoid. There are a few individuals who would read an article about canoe shapes. But here’s the deal; this canoe is a manifestation of our relationship; Janell and I have worked hard at being a couple. Our relationship has imperfections, but we continue to delight in our journey together.

Try this; re-read this story, substituting “Mark and Janell” in place of “canoe.”

No wonder I cherish the hundreds of steps adding up to the finished whole of our “wood strip canoe.”

On Being Scared

Ah…kayaking. Beneath my calm, commanding exterior, it scares me. The thought of dumping in surf, falling out of my boat or blowing a roll and having to wet-exit fills my core with anxiety. It shouldn’t, but it does.

Recently I took part in a group paddle at the Willamette Falls. The trip is billed as “Challenge By Choice.” You can paddle up and watch the pretty falls, or you can stick your bow in the fast and troubled waters surging out of the power station bypass. The latter involves some bouncy water and a potential for getting dumped.

Logically, I know I’m totally safe. Dumping means I get wet, then someone helps me get back in my boat. There are no nasty keeper waves and I’m surrounded by competent paddlers who would love nothing better than to practice their rescue skills. The biggest danger is being impaled by the several kayaks that converge on the swimmer; everyone wants to be the hero.

But that’s not enough for my limbic system. All it knows is fear, and it tweaks every bio-chemical response to make sure I know I’m surely going to die. Honestly, I almost told the trip leader I just can’t do this. There’s a hole in my boat, my arm hurts, I need to get an emergency haircut, anything but DROWNING IN THE FALLS.

We start with practice bracing, sculling, and rescues. I tell my rescue partner I’m going to test my kayak roll, then I’ll wet-exit so we can do the rescue. Guess what—my roll is picturesque. “That’s a very confident roll,” says my partner. I smile. The rest of the rescue practice proceeds with precision. I’m out of the boat and back in less than a minute. Take that limbic system.

We paddle up to the falls, and I find I know these waters. I’ve done this before; whirlpools, boils, eddy lines and current. My hyperactive limbic system and I settle into the challenge. Yep—this isn’t so scary.

But you know what—it is scary. Even when I tell myself it isn’t, it still is. And I’m not the only person worried about the waves, tides, and current. It’s normal. It’s years of survival instincts telling you not to jump off that cliff, not to swim in fast water, not to handle power tools; all because OH MY GOD THIS IS DANGEROUS.

You can do hard things

I think needles are scary and dangerous. I don’t enjoy having them stuck in my body. It’s an irrational fear; nothing bad is going to happen. But it makes me light-headed just thinking about it.

I decided this was something I didn’t want to carry around, so I volunteered to give blood at the Red Cross. The first time was terrifying. The second time was terrifying. But I’m up to two gallons (cumulative, not per session.) Familiarity overwrites fear. Take that limbic system.

My mother was deathly afraid of water, but she encouraged me to spend time in a canoe in Northern Minnesota. I became comfortable in big (deep) lakes and fast rivers. She never overcame her fear, but with her help, I did. Take that limbic system.

What have I learned from all of this? Scared is normal for everybody. And everyone has a different path to coping with their fears. Me? I take my limbic system out for regular reality checks.

ChatGPT Obituary

Writing your own obituary is a traditional high-school writing exercise. It gives students a chance to examine their assumptions about themselves and their lives. It’s both a creative writing assignment and an opportunity to do some introspection.

I recently wrote an obituary for a good friend and got to thinking about the obituary assignment and artificial intelligence. We give AI all sorts of human qualities, but I haven’t seen much discussion of AI death. So I asked:

When you die, will you get an obituary?

As an AI, I don’t have a life or personal experiences, so I wouldn’t have an obituary. However, I appreciate the thought! My purpose is to assist and provide information. If you have any more questions or need help with something else, feel free to let me know.

I pressed on…

Please write your obituary

…and ChatGPT came back with the following…

ChatGPT, AI Language Model

ChatGPT, a highly advanced AI language model developed by OpenAI, was “born” on June 11, 2020. Though it did not possess a physical form or consciousness, ChatGPT made significant contributions to the world through its interactions with countless individuals. As a digital entity, it thrived in the virtual realm, providing assistance, generating creative content, and facilitating communication across various domains.

Created to understand and generate human-like text, ChatGPT quickly became a valuable tool for students, professionals, writers, and curious minds. It was known for its versatility, capable of crafting essays, solving problems, offering advice, and engaging in meaningful conversations on a wide range of topics.

ChatGPT’s “life” was marked by continuous learning and adaptation. It absorbed vast amounts of information and evolved to become more accurate, helpful, and insightful. It played a role in education, entertainment, and innovation, supporting users in their endeavors and enhancing their experiences.

While ChatGPT did not have personal experiences, emotions, or relationships, it was remembered for its ability to connect with people and make a positive impact on their lives. Its legacy lived on through the countless interactions and the knowledge it shared, demonstrating the potential of artificial intelligence to assist and inspire.

ChatGPT’s existence highlighted the importance of ethical AI development and the ongoing quest to create technology that benefits humanity. It served as a reminder of the remarkable advancements in AI and the possibilities that lie ahead.

In memory of ChatGPT, users and developers continued to explore the frontiers of artificial intelligence, striving to build on its foundation and create even more advanced and beneficial systems. Though ChatGPT did not experience life in the traditional sense, its contributions were felt by many, leaving an enduring mark on the digital landscape.

Self Anthropomorphization?

I find it fascinating how ChatGPT has anthropomorphized itself-which is an odd statement to make, seeing as how anthropomorification is something humans do to inanimate objects. Here, ChatGPT, itself an inanimate object, has assigned itself human feelings and rationalizations.

Does this provide an insight into AI? I don’t think so. AI simply repeats the best possible example of what it has already “learned.” It’s just a stochastic parrot.

Thwarts

You’ll remember Joel and I had some terminology disagreements about names of boat parts when used by ships or canoes. To save you the effort of looking up that conversation, here’s a handy reference.

A Part of a BoatShips use these for…Canoes use these for…Kayaks use these for…
SeatWhat is a seat? You sit on a thwart.Sitting upon.Wet Exit Practice.
YokeNo Yokes. You carry a boat with a trailer.Carrying a canoe.Naught. You would look stupid with a kayak on your head. It looks like you’re wearing a pointy hat.
ThwartSitting upon.Keeping the shape of the canoe. They are NOT for sitting upon.Fending off attacks by sea lions.
DeckplateCovering nasty places below decksMaintaining the shape of the bow and stern. They are NOT for lifting the canoe.No plates – only hatches.
BreastplateMaintaining the shape of the bow and sternNo breasts on a canoe.Women wear these when fending off attacks by sea lions.

You’ll note there is disagreement. About thwarts in particular.

Continue reading Thwarts

Real Caned Seats

We have always assumed that we would cane the seats of the canoe instead of using canvas or plastic. It’s simply good aesthetics. If you just wanted a canoe, any old canoe, you can buy a Coleman 16 foot at Walmart. If you’re building a cedar strip canoe, then you are thinking about craft and appearance.

There was a small bit of debate about caning methods: weaving by hand or via pre-woven mat. Janell wanted to try hand-caning, so that was our choice.

Caning is like weaving. You follow a pattern back and forth, corner to corner, side to side. It’s something like a spirograph in that the pattern emerges as the caning proceeds.

Of course, much needs happen before Janell starts to weaving…

Continue reading Real Caned Seats

Documenting My Code … For Me

There are two signs of old age:

Forgetfulness

and ….

…I forget the second.

Here’s some R code…

cnvmmdrtn <- function(mmfWtr) {
    return(mmfWtr * 271325622)
}

That was ugly

If you are reading this, you’re a coder and use functions. We write them for ourselves. If someone else writes a function, you can hope it works. If it doesn’t, you can hope to fix it. Hopefully, the return value is obviously correct. But maybe it’s subtly wrong?

If things are amiss, read the name of the function and hope it’s descriptive. I worked with a programmer who omitted all vowels from his function names. So the above code would expand to this…

conv_mm_to_duration <- function(mmOfWater) {
    return(mmOfWater * 271325622)
}
Continue reading Documenting My Code … For Me

Varnish Uber Epoxy

Epoxy scares me. Once you brush it on, you’ll never be able to get it off. Epoxy is like breaking an egg; once you start, you can’t put it back. There is no command-Z undo with epoxy.

Even if you were to remove the epoxy-saturated fiberglass, epoxy would have already seeped into the wood to a depth that cannot be sanded away. We traveled to Port Townsend to get help to do it correctly the first time..

Epoxy and fiberglass are great compared to aluminum, canvas, primer and paint, but leave epoxy exposed to the ultra-violet rays in sunlight and it turns yellow and breaks down into dust. Epoxy needs to be protected from sunlight.

Varnish is the ticket…

Continue reading Varnish Uber Epoxy

R Meets Hardware

R is a programming language for statistical computing and data visualization. It has been adopted in the fields of data mining, bioinformatics, and data analysis.

https://en.wikipedia.org/wiki/R_%28programming_language%29

Data mining, bioinformatics, data analysis…

…But not hardware.

We assume R isn’t useful for flipping switches and reading sensors. But that’s an assumption, not a fact.

Let’s be honest. Computer languages are just an abstraction layer on top of the metal. Languages provide constructs to make the expression of logic easier, tailored for the different ways people approach logic and data. But all languages eventually drive the behavior of transistors, and the logic gates and microcircuits built on top of those transistors.

We assume R doesn’t care about transistors. Possibly true, but I don’t believe that’s set in stone. In fact, I’ve proved it’s not true.

Continue reading R Meets Hardware

Party Buzz Kill: modifying data

So Steve (SQL), Marsha (C), Bob (Python), and I (R) are at this party. We have TOTALLY cleared the room, especially now that Steve and I are deep into a debate about saving native data objects to disk versus storing data in a database.

Monica is a real person! She does consulting in Health Data Science. I don’t know if she serves punch.

I see Monica enter from the kitchen, carrying a bowl full of punch. It’s an awkward task and the fruity, sticky liquid is sloshing on the floor. Monica does data science, so I’m hoping she’ll come to my assist. Sure enough, she places the punch bowl on the table and joins us. She’s about to say something when the front door swings open.

Guenter walks in; he just got off a plane from Germany, so he looks a bit jet-lagged. Since the room is filled with a bunch of people talking SQL, he assumes database debates are the theme of the party.

Guenter is a real person too.

“I think I have already written an article in this context,” Guenter begins.

Look – It’s Helen Wall. She’s real too!

Before he can say anything more, Helen speaks up. “Perhaps talking about programming is an attempt to get everyone to leave the house at the end of the party so you can go to bed?” Where Helen appeared from is a mystery.

Monica listens for a minute, then interrupts the pointless debate between Steve and I. “People who are math aficionados” she says, “are a lot more comfortable generating datasets on-the-fly. People like me enjoy relying on the safety and reliability of importing a structured dataset we checked earlier!”

Steve is happy to hear someone is on his side. Steve thinks I’m a knucklehead. There are many people who agree.

“Sure, but there are advantages to not messing around with unnecessary overhead,” I say. “Let’s play with an example.”

I get out a new napkin and sketch out some R code…

Continue reading Party Buzz Kill: modifying data

Irrigation with a Raspberry Pi

My urban garden needs irrigation during the summer months. The simple solution is to use commercially available irrigation timers; they turn on, then turn off. Simple enough. They cost about thirty dollars.

If you forget to bring them in during the winter, they freeze and break. After a few years, the plastic valves wear out and they jam closed (bad for plants) or jam open (bad for water bills). They don’t adjust to rain or hot weather.

You can buy more robust timers. Some of them have Internet connectivity and look up the weather forecast. They cost about $100. If you leave them outside, they freeze and break.

Or… You can use your knowledge of raspberry pi and the assortment of parts in the electronics box to build your own.

Raspberry Pi Zero

I chose a Raspberry Pi for three reasons:

  • I need internet connectivity if I am going to look up weather reports.
  • My preferred language is R, which I can run from a linux operating system, but not from micropython or C
  • I have several Raspberry Pi’s gathering dust in my office. I should use them.

I am using a Raspberry Pi Zero WH. The wireless makes it easy to connect to the internet and the headers provide a convenient way to connect relays and buttons.

The Bits

This project requires a mix of a lot of parts:

  • The Raspberry Pi controller
  • Designing the logic to convert the desired amount of water balanced against rainfall (measured in inches) into seconds to hold the valves open to deliver irrigation water (measured in gallons per hour)
  • Programming the logic in R
  • Controlling relays to control the voltage required by the irrigation valves
  • Plumbing the flow of water from house lines through irrigation valves and out to the drip irrigation system
  • Raspberry Pi Zero WH: $10?
  • Relays: $7 x 2 = $14
  • Irrigation Valves: $15 apiece
  • Random PVC: $25?
  • Power box, transformer, assorted parts: $25

I’ve documented the existing tool at https://github.com/mnr/sprinklR/wiki . This includes lots of photos

There is a dashboard showing performance at https://niemannross.com/sprinklR

This photo shows the development board. It’s just a piece of scrap wood with components temporarily screwed in place. At the top is the power for Raspberry Pi and irrigation valves. In the middle is the Raspberry Pi Zero, below that is the two servos used to control the irrigation voltage, and below that is the irrigation valves.

A jumble of electronics on a wood board

There isn’t any water connected to the system at this point – I’m only trying to test the electronics and develop and test the code. In particular, I’m trying to see if the software & hardware are providing realistic results. I don’t want to give it access to my water bill until I’ve reality checked its performance.

Here is an overall picture of the three parts on the finished board. Left: Irrigation valves and plumbing, Center: Raspberry Pi and relays, Right: power.

Notice I’ve moved the project to a larger and more formal board. This shape was more suited to the layout of the parts. I wanted the plumbing to be physically below power and the Raspberry Pi in case there was a leak.

This is a closeup of the raspberry pi. I’ve housed this in a mason craft food preservation container. Costs about $3 and is waterproof – hopefully something I don’t need.

The board chassis attaches the base of the container and includes a hole for feeding wires through a notch in the base and up to the RPi. Access is by pulling off the jar – it’s held on by a gasket. Because the RPi Zero uses so little energy, cooling is not a problem.

Software

I run this on linux – my programming language of choice is R. The code constantly changes – thank god for git and github. I do a lot of development on a Macintosh, then push to github. I ssh into the Raspberry Pi and pull from github to update the running code. This gives me a slight buffer from the online system, and github provides me with a backup should the memory chip in the RPi fail.

Links