This web site collects together a few ideas, demos, and hobby experiments.

I am interested in sailing, and electronics and dabbling in coding. The Science of Cambridge MK14 was my first computer and I am still playing with it 40 years later! My interest in PIC micro controllers started after using one to turn on a cassette recorder to record the Radio 4 Shipping forecast while on a yacht away from the marina. Nowadays, boards like the Arduino, Raspberry Pi and modules sourced from eBay allow plenty of tinkering using LINUX, the IDE, Tiny C and SDCC compiler. Emulating old computers has provides interesting challenges. Most computers are micro-controllers or virtual now with the Cloud. Thankyou for all the useful blogs and webpages information. I have an interest in using JavaScript and SVG in Web Pages to try out coding ideas and dabbles.

Wiki - Arduino, R Pi, old computers: MK14, NASCOM 2, Microchip PIC , JavaScript, more...
My github - MK14, NASCOM emulators in DOS, Java, C using SDL
Science of Cambridge MK14 emulator
MicroChip Web Pages
Interative Telecom models
ADSL and the bell wire

Guest book - used to log web pages of interest!
Dashboard - updatable
Notice Board using Markdown.

Simple JavaScript applications using data stored in a guest book

Here is a way of writing simple web applications by using a 'guestbook' server side script and client side JavaScript. There are loads of simple applications that just need a simple sorted list of user's amendments.

Some of these pages result from work on automating our sailing club web site.

Our sailing club needed some simple but useful applications without too much effort.

I did not want to be constrained to using an "off the shelf application" provided by the likes of

I wrote this essay for the TCN, who gave me a special commendation prize.

Community Groups communicate using the Web - A need for a simple booking system on the web.

The server side script collects the submits from the guestbook form and wrapped them in a JavaScript function call.

Your web pages would include these and do the processing on the viewer's browser.

You write the body of the function to use the data in the guestbook.

Generic CGI script wraps Form data in gbF().

  function gbF( name, email, postedOn, IPaddress, userfield1, userfield2, userfield3, userfield4, comments)
Include remote guestbook and gbF() will be called once per entry.

  <script  language = "JavaScript" type = "text/javascript" 
    src = "" >  

Using JavaScript Objects to load and sort data

var gbA = []
var gbA = new Array()
console.log( gbA.length )

function gbF( name,email,postedOn,IPaddress,userfield1,userfield2,userfield3,userfield4,comments){
  gbA[ gbA.length ] =  { 


// test call
gbF( "Test Call1","email","15 Nov 2003","IPaddress","userfield1","userfield2","userfield3","userfield4","Testcomments")
gbF( "Test Call4","email","15 Nov 2003","IPaddress","userfield1","userfield2","userfield3","userfield4","Testcomments")
gbF( "Test Call5","email","15 Nov 2003","IPaddress","userfield1","userfield2","userfield3","userfield4","Testcomments")
gbF( "Test Call2","email","15 Nov 2003","IPaddress","userfield1","userfield2","userfield3","userfield4","Testcomments")

function sortfn( a, b ){
  if (  >{
    return 1
  } else { 
    return -1

// pass name of sort function
gbA.sort( sortfn )

NOTE:- My entry is appended to:

I put spam into:

Guestbook data used by userdefined gbF() function and other JavaScript code.

Data Dump of my guest books, Timeline of entries at and Data Dump at

Posted Fields used by guestbook scripts:

  name	    =name  - name of person signing guestbook
  email	    =email - email address of person signing guestbook
  userfield1  =userfield1 - a string that the application can use
  userfield2  =userfield2 - a string that the application can use 
  userfield3  =userfield3 - a string that the application can use 
  userfield4  =userfield4 - a string that the application can use 
  userfield5  =uf5 Tue Oct 23 21:47:32 UTC+0100 2007 - anti spam security string set by javascript

  comments    =This is a multi line comment

The fields above are copied into the parameters below, suitably escaped:

  function gbF( name, email, postedOn, IPaddress, userfield1, userfield2, userfield3, userfield4, comments)

  function gbF( "user's name", "user's email", "timestamp postedOn", "users IPaddress", "uf1", "uf2", "uf3", "uf4", " user's comments");

This field is use to select the guestbook to update:

  guestbook   =XXX  - this string is appended to gbookF{guestbook}.js 

These fields control the next URL to go to:

  nextpage    =""  - URL of page to go to.
  loadnextpage=loadnextpage  - this is a flag to load the next page

Other pages:-

More Theory:-

Early Theory:-


Demo Apps, some were used :-

boat booking system - demo data - Liferaft Booking System - used for one year.

sailing session booking system - with - Booking System - pricing.

Markdown and Guestbook idea - Includes a Markdown using JavaScript on the page.

These were used:-

Updateable Notice Board - shows future and last weeks notices.

Updateable Notice Board - with update form

Guest book closed due to spam but used to log interesting pages.

Multi table note blogger Used for notes and still can read archived data.

Experimental Demos:-

Updateable Club Race Results - results using csv to tables.

Gant Chart demo - try to show gant chart.

CSV data to tables Demos:-

CSVtoTable - try to display tables.

CSVtoTable - with update links - try to display editable tables.

Dump data as CSV dump CSV tables

Favorites and code scrap blogger:-

Guestbook logging Favorites - records links of interest

Code Scrapbook - record bits of code

Webpage includes links found:-

ADSL links / Favorites

Garden solar Light:-

Garden Solar Light including blog / Logger.

Garden Solar Light Logger - Daily Counts.

Plot Solar cell measurements using SVG graphics