Photoshop art

I am slowly working my way through a fabulous photoshop art course and am posting my ‘homework’ and creations on flickr. I highly recommend this course; it’s great fun and the instructor is very articulate and enthusiastic.  Many of the techniques are also directly relevant to blending and post-processing landscape photos in general.


The Sailwave name

Version 1 of the software was called “Blow” and it was available on a 3.5″ floppy disk.  Sadly I do not have one.  My wife Sheena was not fond of the name and one day, together with our friend Martin Stephens, we had a brainstorming session.  It was Sheena who at some point said “sail wave”.  That was it – bingo.

I googled (or maybe yahooed) “sailwave” – nothing – so I was able to register and

I also registered but have done nothing with it.

Amusingly when you google sailwave these days you also get images of a Wave 38 class superyacht called Admiral Sail 🙂

The Sailwave logo

The Sailwave logo went through a few iterations.  The first was a similar sail/wave icon but the sail was convex.  Currently I cannot find any examples of it.  The font used for the text was Joker.  I showed it to my friend Mark Pressdee who suggested it needed to be “more serious” and I switched to Napa SF.  I can remember being a bit disappointed at Mark’s reaction at the time because I thought Joker was cool, but part of knew knew he was right and thank goodness for that because Joker is another Comic Sans these days 🙂 Later I redrew the sail in a concave way; a scan of which is below. This has been used in all Sailwave logos since.  It’s never been professionally drawn.


Connecting node.js to stdin/stdout

The context here is a UCI chess interface such that the Javascript chess engine running in node.js can communicate with standard chess UIs like Arena and Winboard.

My own full UCI interface can be found here in the lozUCI class and also some initialisation code (like that below) at the end of the file.

If you mine it for your own projects please attribute and link back here.


var nodefs = require('fs');


process.stdin.on('readable', function() {
  var chunk =;
  if (chunk !== null) {
    onmessage({data: chunk});

process.stdin.on('end', function() {

The UCI commands are then available in in onmessage().  Note that more than one command can be present separated by \n and depending on OS also \r, so assume \n and filter out \r.  In my own experience null commands can be present \n\n, so watch out for those too.


var str = ''
nodefs.writeSync(1, str + '\n');

The use of writeSync() is so that that the PV feedback displays in chess UIs like Arena and Winboard in real time.  If you write using async functions it appears all at once when the best move is sent back.

It’s useful to call the capture function onmessage() because that what web workers assume, thus it can be used in both web and node.js contexts.


Born in 2001, Sailwave is my sailing scoring application. It is used at all levels of the sport, from club racing to world championships.

Very early versions were a traditional database structure.  It was a friend Chris Solley that suggested a more spreadsheet-like approach.

During early development ISAF International Judge Eddie Ramsden was very helpful with rules interpretation.

Mumbles Yacht Club (my home club) was the first adoptee.

Mark Jardine of Yachts and Yachting supported Sailwave from the very early days in many ways including distributing Sailwave CDs at the Dinghy Show, a dedicated section for Sailwave in their forums and an early entry in their online store.

In April 2001 Simon Smith set up a Yahoo group called the Sailwave User Group (SUG).  It’s still going strong today.

In 2007 Sailwave was used at the Qingdao Olympic Test Event in China.  A chinese locale (user interface translation) has been available since then.

Speaking of locales, the English user interface has been translated by users into German, Italian, Polish, Danish, Chinese, Swedish, Romanian and Norwegian.

In 2012 the Welsh Yachting Association presented me with an Outstanding Contribution Award.

Due to illness, in 2012 Jon Eskdale took over the majority of development.

Also in 2012 Huw Pearce started looking after the Sailwave facebook page and now handles a large fraction of the SUG questions.  He also uses Sailwave to score events all over the world.

In 2013 I was awarded the Royal Yachting Association National Award having been proposed by Alyson Nicholson of Mumbles Yacht Club (with encouragement from Eddie Ramsden).

Between 2001 and 2012 my pub conversation was pretty much Sailwave based, so thanks very much to my family and friends for putting up with me, especially Sheena, Ben, Laura, Simon, Martin, Mark, Dave, Chris 🙂

Sailwave will always be free of charge to the sailing community.

Dart 18 Euros
Dart 18 Euros
Tony and Jo
Me and Chris O at the Dart Worlds
Me and ChrisO at the Dart Worlds
Martin and Bryn at the 2011 Olympic test event.
Shirley and Sailwave 🙂
Tony and Jo
My F18
Tony and Jo