November 2011 Archives

Sun Nov 27 21:31:56 EST 2011

A quick between-voyage post

I've been back on land for a couple of days, and I'm going back to sea tomorrow. The last voyage was an interesting one, but I won't go into details on a public post like this. Keeping the voyage plan (and even the existence of the voyage itself) from our passengers was an important part of the program.

There's not much to say, then. I'll be back in about a week, with another post to confirm my safe return.

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

Sun Nov 27 21:09:57 EST 2011

On the Duties of the Clergy

On the Duties of the Clergy is the first audiobook that I've had to abort halfway through. It's not the speaker (who sounds a bit like a European Sheng-Ji Yang), but the subject matter that is stopping me.

I suppose that I expected something more like a procedual manual of clerical rituals, or an in-depth discussion of a clergyman's duty to his people, but the book opens with an in-depth defence of Christian virtue. Unfortunately the defence of these virtues is based solely upon biblical citations. These grew tedious and I chose not to continue.

This is a weakness of audiobooks, I guess. They are incredibly difficult to skim. Speeding up the sound files is an option, but makes momentary lapses in attention even harder to recover from.

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

Tue Nov 15 12:23:41 EST 2011

Underwater Repairs

When we were at Port Davey, we lost a couple of lines over the side and they got sucked into the propeller. Fortunately, they broke fairly cleanly and didn't rip anything away. Regardless, there was some underwater work to be done. Another crew member and I have dive tickets, so we hired some gear and got to work. Someone had a waterproof camera, so I can share pictures.

Damaged timber Rope around propshaft

This is what we had to fix. The rope had cut a channel into the fairing timber as it was being pulled into the propshaft. In addition, the rope had wound itself tightly around the shaft and left a little trailing behind the propeller. The dangly bits were easily cut off with a knife, but the rope around the shaft needed a hammer and chisel to remove.

Working underwater

We were actually really lucky - normally the nylon heats up and fuses together due to the friction. Once we cut a bit off, the whole thing unwound itself fairly easily.

Clean propshaft

The hole in the timber was filled with two-part epoxy putty. This was handed down by fellow crew watching us from one of the inflatable Zodiacs. Somehow this stuff cures underwater - better living through chemistry!

Patched up timber

The putty should keep worm out of the timber, but to make absolutely sure we went back down a couple of days later and hammered a lead plate over the work area.

Lead patch on timber

Here's the trophy from this expedition:

Trophy Trophy closeup

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

Tue Nov 15 12:13:05 EST 2011

Port Davey (Nov 2011)

I'm back from the Port Davey trip in one piece. Once again, the Tasmanian landscape has proven resistant to my camera, so I've only put up a few photos.

We motored west, along the southern coast of Tasmania and had a fairly easy (that is, only a bit bouncy) trip into the port. We'd spend about a day at each of several anchorages and then move to the next one.

Our guests were able to go ashore and explore. Sometimes a couple of extra crew could go along with these expeditions. I tagged along on a trip up the Davey Gorge.

Paddling in front of rocks

It looks really odd to see sedimentary rock at such an angle. Powerboating is forbidden in this part of the waterway, so we broke out the paddles and carried on in the old-fashioned way.

Jack driving the Zodiac

On the way back (outside of the no-power zone), I had a bit of a go at the wheel. We stopped off and had a look at some old remains ashore (a brick here, a sign marking a grave there). Alex used the time away from everything to focus on what's really important:

Grave Sign Alex playing Angry Birds

On the way back to the ship, I took a number of shaky photos of her at anchor. Here's the best one:

Windeward Bound at Anchor

Here's yet another photo of landscape through the bowsprit.

Landscape through the bowsprit

I can't accurately convey how impressive that part of the world is. It's so quiet and the scenery is stunning. Everything is pristine. There are little islands packed full of trees that all fit together, because nobody's cut them away. And then there's Bathurst Harbour. From the sea, it's accessed through an extremely narrow channel (the Captain was ordering helm adjustments in one and two degree increments). Once you're through the narrows it just opens up into this expanse of water. Truly remarkable.

The return trip along the south coast was uneventful but remarkable. The water was glassy for pretty much the entire trip: we pointed the ship almost due east and kept watch for 12 hours. Once we got back, we spent a couple of nights at Recherche Bay and Little Oyster Cove.

Night at Little Oyster Cove

That's it for now. I go to sea again on Friday.

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

Sun Nov 13 13:54:23 EST 2011

The Strange Case of Dr. Jekyll and Mr. Hyde

One of the things I enjoy most about voyaging is the amount of reading I can get done in the downtime. After finishing the Sherlock Holmes Omnibus, I decided to attack something smaller: Robert Louis Stevenson's The Strange Case of Dr. Jekyll and Mr. Hyde.

As I read, I was reminded of my experience reading Dracula: the case of Jekyll/Hyde is well known in pop culture, so I knew what was going on a lot earlier than any of the characters did. While writing this post, I just realised that it's probably what inspired Dr. Bruce Banner/The Incredible Hulk as well. I feel a bit stupid for not noticing that sooner.

The story is a morality tale about the importance of self-restraint. The mental image I had of Mr. Hyde when I started reading was mainly based on the movie The League of Extraordinary Gentlemen: a man who becomes a hulk-like monster by means of a potion. Stevenson's original is a lot more subtle: Hyde is a man like any other, except that he gives off an impression of unwholesomeness despite having no obvious deformity.

The original story is surprisingly sad. I'd recommend reading this one: it's short and there are subtleties in the original that have been lost in the popular image of the character.

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

Sun Nov 13 13:46:57 EST 2011

A Sherlock Holmes Omnibus

There is a character trait I like to call "intellectual godmode". It is a feature where one character operates at a level far beyond that of his peers, but it's more than just being smart. It's an ability to see details, understand motivations and race through deductions in a way that looks plausible on paper, but the other characters (and the reader) have little hope of keeping up. When done well, it creates a feeling of "I could do that, if I thought faster/observed more/knew more". When done poorly, the reader cries foul and loses suspension of disbelief. Ender Wiggin has it. Sherlock Holmes has it. On that note, I have finally finished reading the A Sherlock Holmes Omnibus. (I don't remember how I got it into a format that my Kindle liked, so it's just the HTML version.)

The stories are extremely formulaic. Holmes often has everything figured out right from the start, calling the problems "simple" and "elementary" (although he never says "elementary, my dear Watson"). Because the stories are almost entirely written from Watson's point of view, he never sees the details or draws the inferences that Holmes does. The reader, therefore, doesn't have a fighting chance of puzzling things out until Holmes reveals all, and the result can feel like a cheap trick. Even in the two stories written from Holmes' perspective, the details are kept from the reader until the end.

Even so, the stories are enjoyable. When Holmes reveals what he has deduced, the inferences look plausible. It's an entertaining world that he lives in, where even the villains act like gentlemen. Once cornered, the criminal will usually tell all and go away quitely. Very few stories end without a tidy resolution.

The verdict? Read three or four, and keep going only if you enjoy them as much as I did. You'll have a good enough idea of what happens, anyway. Then go and play Evil Sorceror's Party, as knowing the source material makes the Cyroq Ohms/Watt-san dialogue even more enjoyable.

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

Sat Nov 5 17:53:16 EST 2011

Z+ - Board Model

Before I start hacking away, I really need to think about what the data model for an individual board is going to look like. In ZZT, each world consisted of multiple 60x25 boards with links between them. I intend to relax the 60x25 restriction, allowing boards of arbitrary (but fixed) size.

I will probably store the contents of each board as an array, for the following reasons:

  • It's simple. When I consider anything more complicated, the twin principles of YAGNI and "do the simplest thing that could possibly work" both seem to apply."
  • Access and update for a given coordinate are fast.
  • Object density will be fairly high, so there won't be a lot of wasted space.

The next question to answer: what goes into each board cell? My first though was to have a background of arbitrary character and foreground/background colour, with a possible object on top. That hits a wall when passages are considered.

For those who don't remember, a ZZT passage is an object, that when touched, transports the player to a destination board (either to a passage of the same colour, if it exists, or to the location of the player object on that board). I want to keep multiplayer in the back of my mind as I write Z+, so a player cannot instantly disappear into a passage if it's occupied by someone else. Therefore, I will replace the inert background by second layer of objects, to represent things like floor spikes, passages, lava and so on.

This means that each board has two layers of objects: foreground and background. I am strongly against adding more layers - simplicity is a design goal!. So long as it is cheap to create and store inert objects (that is, objects without code), I see no problem with this approach. Solid walls were going to be objects without code anyway.

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

Wed Nov 2 21:17:40 EST 2011

Rope Mat

Well, I'm on duty today, while everyone else has their precious day off. I spent a good chunk of the afternoon making a new thump mat for the main sheet. Here's what it looks like:

Rope Mat

I'm not exactly sure what I did. I copied the pattern from the other thump mat that was already there. Once the first turn is finished, it's just a matter of following the line around and around the knot. That's a little easier said than done, as it involves moving a surprisingly large amount of rope through the overs and unders.

Rope Mat, Installed

And here she is, in her new home.

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

Tue Nov 1 22:53:42 EST 2011

Back from Voyage

As you may have gathered from the posts on Z+, I have returned safely to Hobart from my voyage. I head out again on Friday. Voyaging's a good deal of fun, but a lot of work. Everything is a big production. Getting in/out of bed? Big production: Carefully spider across the dry store (compensating for roll, of course). Eating dinner? Big production: feeding 3 watches means food is served on a strict schedule and carefully rationed. Dropping/weighing anchor? Big production: the anchor needs to be carefully controlled by adding and removing lines, the chain needs to be hosed clean when raising it and someone needs to climb onto it to get it back on deck:

Jack on Anchor

Some other highlights, in bullet form:

  • Climbing the rigging to gasket sail in 25kt winds and a noticeable roll. I assume a veteran mariner would laugh at that, but it was quite tough for me. It was my job, however, and it got done.
  • Celebrating something (possibly a different climb, I forget) by changing to a fresh pair of socks ahead of schedule.
  • A pod of about 100 dolphins rocked up one day and played around the ship for a while. They'd just jump out of the water, surf the bow wave and generally muck around. Later that same day, a couple of whales turned up and came within a couple of metres of the ship. You'd never get that close on a whale-watching voyage.

It's going to be pretty busy for the next few weeks, but hopefully I'll get time to continue writing.

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

Tue Nov 1 21:10:37 EST 2011

Z+ - File Format Considerations

Z+ will need to read and write world files. I think the correct option is to pack all the data into a single file and document the format. I considered using zipped directories with a custom extension, but decided against it. zziplib would let me use a renamed zip file as a world file, but it makes it very difficult to write out world files. Making a world a directory (like OSX app bundles) seems to be the backwards option. All it does is open the risk of losing pieces of the world when sending it around.

What I will probably do is write a sequence of tpl records to a file. If necessary, I can compress files with zlib. Because tpl records are self-delimiting, I can just spew out a sequence of them to a file descriptor and read them back one at a time. It also has support for storing binary blobs, so if I decide to allow the embedding of sound files, that becomes quite easy.

I'd like to follow the ZZT model of using the same format for world and save files. It means one less file format to document. On the downside, it means that storing assets in every save file creates a lot of duplication. I could not embed assets and instead use bloopsaphone for sound, I suppose, but that's another consideration for another time.

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

Tue Nov 1 20:01:12 EST 2011

Z+ UI - A Decision

I have made a decision with respect to the layout of the Z+ UI.

60x20 Play Area, 60x5 Message Area

This the variant that was suggested me in an email, and I agree. I however now think that a permanent message area is overkill, and will probably make messages appear for only a few seconds (with a possible scrollback).

It's not worth thinking any further about this until I get some basic implementation going. I think the next thing worth looking at is the file format.

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