May 2012 Archives

Sun May 27 20:18:42 EST 2012

Ropework and Fridge

I was going to post about the recent voyage, but with no photos and little to say I think I'll pass. Instead, I'll show off my latest ropework project.

Rope Weave

It turns out that you need about 50 metres of line to make a decent sized doormat.

We're off to sea again on Tuesday, and since there's no groceries out on the water, we load up the fridges and dry store before we go. Here's what the fridge looks like:

Fridge Loaded

The ship's chef could be a world-class tetris player with that packing skill.

Posted by Jack Kelly | Permanent link | File under: windeward_bound

Sat May 26 10:09:36 EST 2012

Automating the Bunkplan (in Haskell)

I had a working program for making the bunkplan and cabin sheets, but it was written in O'Caml. I need to make binaries that run on Windows and O'Caml's Windows support is atrocious. Not only that, but somehow the font-locking of emacs' ocaml-mode breaks font-lock in other modes. It wasn't long before I gave up and ported the thing to Haskell just to use the Haskell Platform.

Most of the code ported over fairly easily, but I decided to generate HTML using the platform's Text.Html library. Sadly, it suffers from a defect common to so many Haskell libraries: There's a big list of types, type classes and functions, but no documentation on how the bits are expected to fit together. It defines operators (<<), (+++) and (!), where (<<) stuffs some html inside another tag, (!) adds attributes to a tag and (+++) concatenates html fragments. Nowhere does it say that, and that one sentence would've seriously reduce the time it took to get myhead around the library. When I previously ranted about autogenerated documentation, someone emailed me and said that in most cases a combination of function name, argument names and function type are usually enough. I don't entirely agree - it seems to be true up to a certain threshold but falls down beyond that. This threshold appears to depend on the language; if the type system is less expressive (C, for example), the information in the type is easier to extract. When the type system is more expressive (Haskell), people build higher abstractions which means you hit the types-as-documentation threshold much sooner.

The code is in my repository, if you want to take a look.

Having finished the port, I realised that I've been solving the wrong problem. Everyone's happy with the excel watchbill and the version my software makes hasn't displaced it. (I didn't even bother writing haskell code to make the watchbill.) It's only sped up the generation of the cabin sheets - individual pages that list the occupants of one cabin (and are hung out the front of each cabin). Writing a program to make only cabin sheets will cut out about 99% of the input's complexity, which means someone else can prepare them.

Posted by Jack Kelly | Permanent link | File under: coding

Wed May 16 21:36:25 EST 2012

Ten Days in a Madhouse

I haven't listened to audiobooks for a while. We are unable to listen using headphones when on voyage (for safety reasons - to avoid missing alarms and so on) and I haven't been doing much walking/running when ashore. I just finished listening to Ten Days in a Madhouse, and it was one of the most horrifying things that I have listened to. It's fairly short, and I was able to listen to it in a single session.

The work is based on an investigative journalist called Nellie Bly, who in 1887 arranges to get herself committed to a mental asylum in order to describe life on the inside. The audiobook format makes the story more personal and gives it greater impact.

Nellie initially feared that she wouldn't be able to convincingly act insane, but it turned out to be all too easy for her to gain admission. Once inside, her treatment at the hospital was horrific. Patients were not given enough food, sleep or warm clothing while the staff had ample food and wore heavy jackets. They were bathed in unheated water and sent to bed without a chance to dry. Many nurses seemed to enjoy bullying, beating or otherwise abusing patients and the doctors gave patients little attention.

Fortunately for Nellie, she had friends outside who vouched for her sanity and we able to seccure her release. She wasn't the only sane patient caught up in the asylum. The others, having no chance of being released, began to break down.

When she was freed and had a chance to tell her story, a grand jury investigated conditions at the asylum, resulting in a budget increase and some improvements in process. It makes me wonder about mental health diagnosis, though. Even as recently as 1973, the Rosenhan experiment showed how easily incorrect diagnoses can occur, both calling the sane insane and calling the insane sane.

Posted by Jack Kelly | Permanent link | File under: librivox

Mon May 14 21:38:25 EST 2012

Another Voyage

Well, I'm back in port again, having spent eight days sailing up and down the coast with another school crew. I have no new photos and no real new stories this time (though I missed some great shots of a fat yellow full moon as it was rising). We took the kids out, everyone got seasick, then they got better. Everyone cleaned the ship each morning and stood watch through the day. By the end of it we had a great crew who helped navigate the ship through the final two days of its voyage.

Someone needs to patch the tubes, because the internet leaked into the real world with this crew. When they were off watch, they were sitting around talking about rage comics and other internet culture and one of them even asked me "when does the narwhal bacon?". This seems silly to me. These people are on a literal once-in-a-lifetime experience and yet they're still online in their head? One of the best things about these trips is the chance to take a break from the online world.

The other strange thing about this trip was how compressed their culture appears to have become. The kids from the internet were singing the Pokemon theme song at one point, the same one that was on TV when I was in high school. Some of the kids still talked fondly about their N64 and SNES when I'm pretty sure they weren't even born when the SNES was released.

I'm not sure whether to be happy that people continue to play the games I consider classics or disappointed that things appear to have advanced so little.

Posted by Jack Kelly | Permanent link | File under: windeward_bound, miscellaneous

Mon May 14 14:23:14 EST 2012

Sophie's World

There are some books where you get a sense that the author had an enormous amount of fun writing them. Douglas Hofstadter's Goedel, Escher, Bach: an Eternal Golden Braid is one. Neal Stephenson's Anathem is another. Jostein Gaarder's Sophie's World is a third and as it's the most recent book I've read, it's the subject of this post.

The book is basically a lightning tour of Western philosophy packaged into a fairly thin story. The narrative centres around a 14-year-old girl called Sophie. In the weeks leading up to her 15th birthday, she starts receiving letters from a mysterious philosophy teacher: some are notes with a few thought-provoking questions, some are parcels that containing a few pages on a thinker or school of thought and some are proper letters directly addressed to Sophie.

The story has an interesting twist or two that prevent it from just being a series of lecture notes strung together. Sophie doesn't talk at all like a child, which is jarring at first but quickly becomes insignificant. The main attraction of the book is the lectures delivered by the philosopher, first on paper and later in person. Sophie's role is to receive the letters and ask questions to keep the lectures moving.

The lectures cover a range of thinkers from the pre-Socratics through to Sarte, and helped clarify my thinking in a few areas. I was a little disappointed that Nietzsche had about one sentence allocated to him, but that's only because he's the philosopher whose works I have read the most.

I think this is one of those books that I'll need to come back to and reread in a year in order to get the most out of it. The book was loaned to me by a friend onshore, and I read it on voyage. I was forced to read small chunks (because of the sea routine) at a fast pace (in order to return it when we came alongside), and that's probably the least effective way to absorb a book.

Posted by Jack Kelly | Permanent link | File under: readings

Tue May 1 09:41:00 EST 2012

Rotary Migrant Voyage

This was probably the toughest voyage I've done so far, for several reasons. It was the longest voyage yet at eleven days and ten nights, plus we had an unusual voyage crew. The voyage was an exercise in integration, so we had eight recent migrants and eight young Australians who had applied through Rotary. To make things even more challenging, some of the migrants came from the same background and even the same schools, meaning they stuck together on board for a good chunk of the voyage.

Everything ended well, as it always does. The trainees all opened up and formed a crew, and on the final night we had a variety show at anchor. Each watch entered a skit and individuals or small groups could enter extra skits as well. For ours, I had to impersonate the first mate, so I "stole" his pea-coat and hat:

Jack the Old Sea Dog

We had a few great sails on the voyage, including a 44-hour run from Coles Bay to Recherche Bay (sailing all the way). Our new 3-yard red ensign is looking much better than the old one.

New Ensign

I never get tired of the sunsets at sea, so here's another one. Those interested in reading more about why sunsets look so cool should check out David Morgan-Mar's annotation on the topic.

Yet Another Good Sunset

It's not all beautiful sunsets and fair winds, though. We took some time to fix some reefing points on the mains'l, and about halfway through the voyage the sullage pump gave up. That meant no showers and no using the lower head (toilet) until it was fixed, a job that took the engineer, captain, first mate and our smallest deckhand twelve hours. The old pump's housing had finally corroded through and the spare pump's housing didn't fit. That meant pulling the pump out of the engine room and putting a new one in. Not a fun job in the cramped engine room.

Like I said before, everything worked out fine and we're heading out again in a few days. It's been an unusually hectic voyage season (so I've been told) but it's nearly finished. Then it's back to day sails and maintenance.

Posted by Jack Kelly | Permanent link | File under: windeward_bound