Covid times…

I wrote this back in 2013 as part of my write-something-everyday project (It’s Novel).

7 years later it most certainly applies to my current thinking of the state of the world.

It changed everything and changed nothing. The mere existence, the actuality of it, the overwhelmingly realness meant that nothing could ever be the same. The reality shift had occurred and could never, ever be erased.

And yet nothing had changed. Planets orbited, children starved needlessly in wastelands while their neighbours nodded their heads. Young girls discovered love and old men counted their regrets like a miser counts his gold. The season slowly shifted, the morning was alive with sound and sun, and the birds started to get restless, eager to move on but not knowing why.

There were tasks to be performed and jobs to be done, just like yesterday; yet it was all so … different. And that difference was what it was all about. Or rather, the difference that the difference made. Everyone reacts differently to change and everyone is afraid of the unknown. Some revel in their fear and drink in the elixir from their adrenal glands, but many, even most, see it as a bizarre illness or an uncontrollable affliction that shreds their sanity simply by the fact of its existence.

Knowing things have irrevocable changed is often the reward for curiosity. And knowing it existed, changed it again.

Updating a digital log

Years ago when we first started chartering I created a Filemaker database to track our voyages and sea miles. A lot of charter companies want a “resume” and I had heard if I ever wanted to get some really advance certification that one needed minimum numbers of recorded miles as crew and captain. So I used the database to track miles etc. At the end of each trip I would diligently add in all the days, miles, notes and lat/long if I had happened to note them.

Fast forward a bunch of years and my version Filemaker now no longer runs reliably on my updated OS. And since I no longer have any need for it, buying a new license doesn’t seem like a reasonable expense. Luckily I had both a printout of the contents and was able to export the data from the files between crashes. But it was time to acquire a new database tool.


A bit of  sniffing around the internet and it became clear that building a MySql database was going to be the likely successor. But unlike Filemaker, it has no graphical interface—so that meant if I wanted it to be at all user friendly I would need to build a custom php website to add, view and edit the data. Since my knowledge of both MySql and php was cursory to say the least, it looked like an impossible task. But nothing ventured, nothing gained…

MySql text interface

To cut a very long story short (or at least shorter) I managed to find a nice tutorial for building a CMS (content management system) and then began the painful task of hacking it into my new Cruising Log. Along the way I have learned tons and tons and have thoroughly enjoyed the exercise. As a work in progress it probably took me around a year to get it to the state it’s in now—although a lot of that was back-tracking to do things over so future changes would also work. I am a very dangerous coder.

Entering Data

The original design was based on the idea that I would get home after a cruise, grab info from the official ship’s log and then type it all in manually. But I use to post updates on a daily basis while I am cruising which updates our position by means of an email formatted in particular way:

Enter text and/or notes here.
At 04/24/2020 10:40 (pdt) our position was 49°50.1068?N,124°31.6473’W
Destination: Nanaimo

It occurred to me that my site could also parse the email and potentially update the database automatically. So I rejigged the email in a way that allows Farkwar to ignore the extra information and leaving me able to enter what I wanted to. Next I wrote a python script to parse the email, extract the relevant data and output in a format that MySql will understand. Then when I send it to my secret Farkwar email, I cc it to a personal secret email—Farkwar will post the position and update its map, and my python script will parse and post it to the database. So now the email looks like this:

Log Entry
We decided to go. It will be an arduous journey but I have faith we will survive it mostly unscathed.

Whales will be looking forward to our visit
At 05/21/2020 10:40 (pdt) our position was 49°50.1068?N,124°31.6473’W
Destination: Nanaimo
From: Edmonton
To: Nanaimo
Distance: 0

…and this results in a posted entry that looks like this:

Back to the site

But before I could really get going I had to build the website, connect it to the MySql database in a more or less secure way and start formatting various pages. Another long , hijinx-filled story I won’t bore you with. So after a few farcical fits and starts, the site now consists of a front end with two pages (an overall view and a detail page for each cruise):

…and an admin backend that allows me to add/delete/edit  boat lists, crew lists, and the cruises themselves.

Of course it is never that simple, and a lot of extra things needed to be built along the way—like a login screen, a database table to hold users and some truly convoluted MYSQL statements to  be able to display and edit the information I wanted in the way I wanted it. (And, as I just discovered, a way to delete an entire voyage.) But in the end I got it done.

I also realized that since I had the latitude and longitude nicely formatted it wouldn’t be hard to build a link to google maps: so I could visually see the various locations each entry was made. So I did.


The last piece of the puzzle was the ability to print a nicely formatted pdf version of the log as a whole. I started off experimenting with some php to pdf utilities but in the end decided to design a nicely formatted webpage and then print direct to pdf.


After all that, I decided not to schedule the updating script and rather I will just run it when I get home —at least for the first few trips to ensure everything works in real world conditions. That is if we ever get to go cruising again 😉

The very last thing I did was port a copy from my personal server to the server where is situated and try and set it up as a sample. Which, after a long battle, you can now find here: Cruising Log. If anyone is interested in the back end, let me know and I might send you a temp admin password.

It’s been a great learning experience and makes me want to do more development. Apparently Swift is pretty close to Python, and Swift is the official language of iOS development. Maybe I could make it into an iphone app next? If this COVID thing goes on long enough, well, who knows…

P.S. As a side note, according to my fancy new cruising log, not including inland water trips, I am officially at 6218 nm total cruising.

P.P.S. I will likely post at least the python code over at, but probably not for a few days as it will take a bit of cleaning up.
—Bruce #Posts

5 Years!

Its time for a 5 year update

We’ve owned Never for Ever for almost exactly 5 years now. And its been a pretty damn pleasant experience so far. Will our luck hold? Time for an update…

A Little Background

If you’ve haven’t gone through the whole blog, here is a little bit of how we came to own our trusty 2003 Hunter 386.

When we started this process 2014 we wanted a boat to own for one year while L had her sabbatical. The intent was to sail the PNW, overwinter in Victoria while living aboard and then sell her after we had to come back to real life in July 2016. Which is what we did. Except for the selling part. In the end we just couldn’t part with the lifestyle and we decided to keep her and put her in charter with Nanaimo Yacht Charters to provide guardianship and help defray ownership costs.

The year-long sabbatical meant we wanted a turnkey boat that we could board and sail away without any extra major investment, or worse, time delays. A lot of searching  ensued and as luck would have it we landed on what has been the perfect boat, at first for the living aboard, and then for putting her into charter.

The initial survey

What’s it cost?

Other than the initial purchase price, we’ve done well. There was a bunch of cash we spent right off the bat before we even set off, but the largest costs of ownership since then have been fixing leaks. And that high number mostly stems from paying people to do it as we are 1000+ kilometres away from her 80% of the time.

Initial expenses:

  • new Rocna anchor
  • new galvanic isolator
  • new graphic decals
  • new batteries
  • new hot water heater

Major things we spent money on since then:

  • 120′ new anchor chain
  • Webasto heater repairs
  • BMS (battery monitoring system)
  • new stove thermocouples
  • 2 head rebuild kits
  • chasing down leaks and repairs
  • 2 macerator pumps
  • new head hoses
  • new fender
  • replacing the motor mounts
  • a new hatch
  • new (used) e80 chartplotter
  • a new shower faucet
  • and a new windlass

Shiny new chain!

Ongoing ownership costs include:

  • zincs
  • cleaning materials
  • bottom paint
  • polish & cleaning
  • winterization
  • outboard maintenance
  • oil changes
  • fire extinguisher recertifications
  • propane tank recertifications

I’m not going to  dig up all the figures but none of these items (except for the %^&$# motor mounts and associated costs) were more than several of hundreds of dollars—and it has been divided over 5 years.

Oh and the windlass. The windlass was just replaced and I don’t have the final bills yet although the estimates had that pretty price—close to a couple of boat bucks (~$2000).  What sucks about that is it worked perfectly fine but since Simpson Lawrence has gone out of business, we couldn’t source any seals (we tried for almost 2 years) and it was leaking a ton of water into the forward compartment. So we bit the bullet and replaced it.

All in all, a pretty short list considering the tropes of boat ownership are BOAT: bust out another thousand (dollars) or Cruising: the experience of fixing your boat in exotic places. We definitely lucked out in our choice of vessels—especially considering our naiveté in boat buying matters.

Up on the hard while the motor mounts are repaired


We’ve spent a lot…a lot… less than I had anticipated over the last 5 years.

The charter option has worked out for us. Being a 2003, the boat already had its maiden dings and dents far in the past and no charterer has inflicted any damage that wouldn’t be accounted for under the heading of normal wear and tear. NYCSS has done an outstanding job in the guardianship department with annual (or more frequent) haul outs, polishing and even a bit of varnishing here and there and making sure everything worked in tip top shape.

With this arrangement we’ve done darn good — even made ~$100 last year — and, excepting the year I backed over the tender’s painter and broke the motor mounts, our annual cost of ownership has been around one to two thousand dollars. That includes moorage, repairs, maintenance, guardianship and insurance. And we’ve been able to sail anywhere from 27–67 days a year. It may not be for everyone and certainly you can’t have the same kind of pride-of-ownership, but having Never for Ever in charter was the right decision for us. I doubt we would have sailed even a quarter as much if we’d sold her and had to charter ourselves.

As much as we love her, Laughing Baby’s days are numbered.

So as it stands, after 5 years, Never for Ever  is pretty good condition still—excellent even. According to periodic checks of Yachtworld, she would likely sell for near what we paid for her. There is a bunch more wear on the sails and we are currently in the market for a new tender so there are still a few things to keep our eyes on. The enclosure canvas is still good but the side panels might need new clears soon, although as they are taken up and down so often they would just get scratched again. Other than that she is still a fairly turn-key vessel with no other major expenses in the foreseeable future—which is a good thing because with Covid-19 and decreased charter revenue, our ownership costs this year are likely to skyrocket, and, what is much worse in my eyes, with potential zero usage by us.

So It’s been a grand 5 years. And I look forward to a whole bunch more and maybe, hopefully, we can get back out and live aboard again for another year — or maybe even longer.

(Disclaimer: as previously noted somewhere in this blog, I am a notorious rounder of figures. The above was just meant to say that overall the cost of owning this particular boat has been pretty affordable. Your milage is definitely going to vary.)
—Bruce #Purchasing

If you can’t boat, dream…

As is almost everyone in the world right now, we are stuck and are having difficulty even imaging getting out on the boat in the foreseeable future. So to amuse myself I have been looking online for that future “forever” boat.

Who am I kidding; I am always looking online at boats. But what I have done is work on a project that fixes an annoyance of mine.

Some time in the recent past YachtWorld, which is the de facto standard for listing boats, decided to redo their website. And one of the outcomes of that is that you can no longer search for boats in multiple places at the same time. And seeing how I desire to buy a boat in the PNW (which used to be a selectable search category) and the PNW ostensibly includes British Columbia, Washington state and Oregon, I now had to perform three separate searches  with no way to “save” a previous search and be able to compare. A definite downgrade if you ask me.

I had recently started to learn how to scrape websites using python because I wanted to be able to post a “books read” page on my personal site. Web scraping is a method of visiting a site and stripping the data from it. It occurred to me that I could apply the same  procedure to YachtWorld and retrieve and aggregate all three searches to one output. So off I went.


My initial method was to  build a python script that output the data to a php web page. After a lot of trial and error it worked. But this meant every time I wanted to do a new search I would have to run the terminal command again and enter in the price range (which were the only variables I included). This produced a database file which the  php page could then display. This was pretty onerous, particularly because I kept forgetting the proper commands :-). I also held out some hope that eventually I could share this with other people. There had to be a better way.

So I investigated further and discovered Flask, which is—simplistically put—a way to turn a python script into a web app. After a lot of fiddling (which I will detail soon over at I came up with this:

The new version added the options for Canadian vs. U.S. currency and length and the ability to sort the results. It is all one compact, self-contained unit and works 100% from a web browser.  The search returns most of the details of the boats and links back to the official YachtWorld result so you can dive deeper into any particular boat. If you ask me it turned out pretty good.

A qualified success.


I am stuck now though. It currently runs on my testing server and when I went looking to deploy it, discovered that my official web host doesn’t provide python support. I would either have to switch providers or get an additional (paid) account at another web host. I did find, which offered free, albeit limited, python/flask hosting and was excited for the full hour it took to set up and get it running. You can find it here ( but unfortunately the free accounts won’t let you scrape websites that don’t have official api’s (application programming interface)—which YachtWorld does, but it isn’t free so I don’t have access to it. So while the app is running it won’t actually  deliver any results.

So now I am faced with the choice to either open up my testing server to the world (which I am not likely to do), change providers (and I just paid for the next couple of years) or sit on my little project and declare it for personal use only. I haven’t given up yet, but the prospects look dim.


So here I sit,  a vast distance from the boat and any prospect of cruising and a weeks worth of work sitting on a computer with no way to share. And I am now getting tired of running the search over and over again. Sigh.

Anyway, if any of you experience the same frustration with YachtWorld, I sympathize and want you to know that there is a way around it with a bit of time and even less knowledge—which is something we should all have in abundance right now.



—Bruce #Purchasing

Vlogging 2019

I finally got around to editing all my video footage from April 2019. It really only needed 3 videos to cover the trip but I wanted to do the week-plus spent travelling with the Calgary Yacht Club as a separate video, so I ended up making 4 with the last one mostly just a round up of the last week, easing back into the real world and cleaning up.

I also thought I would publish a bit of background on the vids themselves. Some of the online forums I participate in are filled with curmudgeons that insist that YouTube is filled with freeloaders and people with no, or bad, work ethics. If the amount of effort I put into my — admittedly bad — videos  can be taken as a measure, then those who weekly produce high (or even medium) quality videos for their sailing channels are in no way suffering from work ethic issues.

My Channel

All 23 of my videos can be found here on the Never for Ever channel. It has a whopping 21 subscribers, half-a-dozen likes, and 6.8k views lifetime. The most views at 1.7k is a short, mostly unedited video of our second solo transit through Dodd Narrows on a Bayliner 38.  I guess people just want to see what all the hype is about? The least amount of views (not counting the new ones) is 62 which is Part 6 of our 2017 trip to Desolation—I guess people were getting bored by then as Part 1 has 222 views.

For those who have never been to the channel, here is a summary of what you will find:

  • 1 early and long video of a flotilla trip to Broughtons — 2014
  • 3 short Broughtons’ videos — 2015
  • 3 test promo videos for NYCSS
  • 7 medium-length videos of Desolation Sound — 2017
  • 3 long Broughtons’ videos — 2018
  • 4 medium Desolation videos —  2019


Why do I make these? Successful YouTube channels have a hook or theme—something to attract and retain viewers. Me? Not so much. I got to thinking about it during the last round of editing and realized my imagined audience (the enormity of sadly ignorant people who really should come to know and love the PNW) and my real audience (family and friends) were worlds apart. Given the videos I do create, I would guess my subconscious realizes this, as I would definitely characterize them as a “travel log” for people who know us.

To expand the channel by any degree I think I would have to make the leap to official travelogue. This format has a long and storied history in the world of television but it would take a bunch more research and filming to really show the essence of places we visit. And it’s not really feasible for me to move into the vlog world. At the very least, that would take a more cooperative (and less camera shy) partner and a lot more talking to camera…or even any talking to camera. Hmmmm…

And there is no way we could really be a true sailing channel — not with all the motoring we do 🙂 I can just imagine the scathing comments.

One of the main reasons I make the videos is to practice and sharpen my software skills. My “Map” is a perfect example of this. I needed a map to display routes and rather than steal (and it actually is stealing) one off the internet I decided to  make my own based on various sources. I traced a detailed outline into Adobe Illustrator and then modified and added layers to it. This was then imported into Adobe After Effects, routes added and animated and finally placed into the main Premiere video file for integration with the rest of the footage. It is labour intensive and complex and I end up learning something new every time I attempt it. Good practice, lousy efficiency.

The 3 videos I did to promote Nanaimo Yacht Charters were very much done for practice and proof of concept. It started when Water Dragon, a 2017 42 Lagoon, was going into charter and had done some videos to promote the boat — and I really hated his splash screens. So I volunteered to see if I could add something to it.



Became this:

Then I redid an interview video he had done, tweaking the audio and lighting and  played with a sample cruise itinerary of the Gulf Islands, which incidentally is my second-most viewed video despite the fact that it is beyond horrible.

I have also discovered subtitles recently. When I took my one brother for a tour through the Broughtons I checked to see if YouTube had CC (closed caption) capability (he’s deaf). Turns out they have an automatic captioning tool that, like most “autocorrect” type features, produces some awesomely funny results. Fortunately there is an ability to edit and add your own captioning, so I have started to add that to all my videos.


Hardware-wise I mostly use my iPhone 7 (or iPhone 5 in past videos), a Nikon Coolpix L80 with 28x optical zoom for long shots, and an SJCam (which is a cheap GoPro knockoff) for wide angle, timelapse and underwater shots. I long for a drone but keep talking myself out of it. At home I use my 2015 Macbook Pro to edit and last year invested in a 32-inch Samsung monitor after my old 21″ burned out.

As you can see, one of the “hardest” things about cruising is giving up all that delicious screen real estate for the puny 13″ monitor on my laptop. 😉

I am lucky enough to have the full Adobe Creative Suite so I use After Effects  for animations and titles, Audition to prep and balance the audio and Premiere to put it all together. This year’s videos feature a lot of colour grading, which is a new skill for me, and a little experimentation with 2.33:1 anamorphic aspect ratios. I will usually open Photoshop and Illustrator at least once during a project to tweak an image or build some sort of graphic like the compass rose.

2019 Offerings

I had originally meant to say something about time invested and work ethic, but I think I have blithered on enough. Suffice it to say I shot these videos in April and it is now December. The rest I will leave for a future post. So, without further adieu, here are the four 2019 videos.

Part one is YEG to Lund.

Part two is Desolation Sound: Lund to Shark Spit.

Part three is a loop through the Discovery Islands with my brother and the Calgary Yacht Club‘s annual flotilla and our return to Smuggler Cove.

Part 4 is just our trip home from Smuggler, and encounter with the start of the VanIsle 360 and cleaning up.

—Bruce #Cruising, #Equipment


Remember not the violence and hate but the sacrifice and fellowship.

439 Squadron awaiting ZULU call, Sardinia, ~1963


My favourite Marx quote

De omnibus dubitandum
“doubt everything”

Apparently  “Confessions” were semi-jocular questionaires that were popular in Victorian England and filling them out a common pastime in many families. Marx apparently filled them out several times at the behest of his daughters. In both extant questionnaires his answer to Favourite Motto was De omnibus dubitandum (Doubt everything). I came across a post card, that I now use for one of my computer desktops, when touring Marx’s childhood home in Trier. I immediately felt an affinity to the sentiment.

So if you don’t mind having a notorious socialist as your muse, I suggest everyone embrace this as their new motto in this age of misinformation and outright lies.