Friday, November 11, 2016

Blitz User Magazine

Converting pagestream postscript to Mac readable output for local University Press was an Amiga toolchain of champions used for the first 6 issues of BUM.

Issue 7 was a complete copout and was floppy only but hey, it was blitz2.1 masters on 3 x 770KB Verbatim quality media which I suspect will still read accurately if suitably stored (neither soiled or baked).

Verbatim media was 100% reliable and properly shielded from being placed on large speakers played at large volumes.

Drives on office computers had a stack of 3 slaves and mastering time was from memory about half a cigarette in length.

I am unsure what the media was coming out of our Doncaster factory but I trust it was high standard also.  After helping Guildhall calibrate equipment for sibdos boot sectors in use on all Acid Software video games my respect for Giles and Martin was extremely high. I trust northern hemisphere bums were of similar quality media to those delivered by post bearing kiwi stamps.

As cash payments continued to cause compound rancour points at IRD and with an incrementing family I banged it all in a cardboard box and concentrated on the sports broadcasting business I had been developing.

As I haven't published a thing since, and after some monkey talk with Mark, am now actively contemplating some new kind of venture.

The original Blitz User Magazine was an educational publication. Being educated in the art of home computer programming was something people were willing to pay for and it felt good to close the loop between the language that Mark had produced and the user base that wanted to explore and know all it's nooks and crannies. And it was a lot of fun.

More random thoughts at blitzbasic dot com.

Friday, September 23, 2016

algorithmic infrastructure twists

offending RSA meat pack raffler

trading verbs FOK FAK FAS [ GFD GTD GTC ]

windows 10 blue barcodes of death

spinning wheel of throttled dot net

out of sync update cycle spiking unmonitored node in forest

morning cron based boot to the heads

dreaming in x25 networks loaded with pre-switch packet sniff

pre deploy gcc 5.6 sanity tests

Friday, July 8, 2016

Project VSynth

A banana a week didn't survive the month.

Instead my second .monkey2 banana vsynth has been in continuous feature expansion.

The code is a second attempt at audio synthesis with lessons learned from earlier attempt in .monkey

As monkey2 ends up pure inlined C++ it is nice to know the three function calls per sample per oscillator are all being handled quick smart!

Although to be honest my monkey2-pi port has been taking up most of my time but that is going on my CV and is obviously not a banana.

Wednesday, June 22, 2016

Project VPaint

While reviewing the state of Monkey 2 beta (most excellent) I have tripped upon a new past time.

Currently VPaint produces it's best images by tracking mouse input onto smooth curves while rotating the canvas underneath at high speed. 

Downloads for Windows, Linux and Mac at here.

Source code on gihub here.

Saturday, June 4, 2016

juvenile humour

When a company announces a game called Skidmarks in a magazine they call B.U.M. you had to worry that Acid Software was run by 7 year olds.

Male humans at age of 14 often choose to reverse emotional development. Bumping heads in variety of contact sports, some allowing up to 5 fouls per quarter, juvenile behaviour was retained to grease CRT joystick feedback loops at center of young adult gamer culture.


Chuckles aside the art of leaving Skidmarks atop tarmac, clay and astro turf bovine cities was a craft.

Indelible markers kept record of previous racing lines by scattering from the limited palette hatched  iso patchwork below.

Which leads us to some thoughts after being so lucky to play test the beta of Epic Skidmarks in development at Modka Games.

Wet Skidmarks.

Splashback Skidmarks.

Oil paint spillage on the road skidmarks.

Colour per bot skidmarks.

Sweaty VR skidmarks on your face skidmarks...

Friday, May 6, 2016

update updater updated

After some fascination with the node npm n birthing process today I am exploring what could perhaps be a python variety of this pattern

The challenge is to print pdf mastered documents using the Sphinx tool chain.

Our first (El Capitan) discovery is the built in easy_install command.

sudo easy_install pip
A great name for a package manager.

pip install sphinx
For the configure / install step we do


The quickstart sufffix is another example of Python design in which names are not abbreviated, shortened or in anyway mangled.

We then disappear down a rabbit hole of defaults, illuminating some of the various publishing options that the Sphinx tool chain can include.

I was not expecting the use of a makefile of such magnitude in my new doc's root.

The output of make help

Please use `make target' where target is one of
  html       to make standalone HTML files
  dirhtml    to make HTML files named index.html in directories
  singlehtml to make a single large HTML file
  pickle     to make pickle files
  json       to make JSON files
  htmlhelp   to make HTML files and a HTML help project
  qthelp     to make HTML files and a qthelp project
  applehelp  to make an Apple Help Book
  devhelp    to make HTML files and a Devhelp project
  epub       to make an epub
  epub3      to make an epub3
  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
  latexpdf   to make LaTeX files and run them through pdflatex
  latexpdfja to make LaTeX files and run them through platex/dvipdfmx
  text       to make text files
  man        to make manual pages
  texinfo    to make Texinfo files
  info       to make Texinfo files and run them through makeinfo
  gettext    to make PO message catalogs
  changes    to make an overview of all changed/added/deprecated items
  xml        to make Docutils-native XML files
  pseudoxml  to make pseudoxml-XML files for display purposes
  linkcheck  to check all external links for integrity
  doctest    to run all doctests embedded in the documentation (if enabled)
  coverage   to run coverage check of the documentation (if enabled)
  dummy      to check syntax errors of document sources

The pdflatex target requires a bit more installing...

After more education on why Mac is not Linux (some a tad irrelevant) we soldier on.

After much deleting and emptying of recycling bins, we free up enough space on our Mac mini to fit 3GB of typesetting machinery known as TeX, and in a wee while hope to have our first pdf hot off the press.

The next week.

The directory '/Users/simon/Library/Caches/pip/http' or its parent directory 
is not owned by the current user and the cache has been disabled. 
Please check the permissions and owner of that directory. 
If executing pip with sudo, you may want sudo's -H flag.

Newb alert, just like npm the sharing of sudo and user folders is kinda suck for begrinners.

With the monkey2 .pdf I am hoping to sharpen up what I have learned getting the monkey pdf manual started.

To integrate MarkDown with which Mark and Monkey2 are very down with, we install additional bits with help from our new friends at Read The Docs.

We check out the latest monkey 2 from it's home on github.

And start a new document beginning with Appendix i - Monkey 2 Source code.

Monkey2 is written in Monkey2 and so many of the source files break the sphinx .monkey parser, but a surprising number don't.

Part 2

It is Wednesday night and we get to the bit where we need to explain why building Amiga emulation on raspberry-pi2 will rock.

Being open source we need to wait some time to build it ourselves, starting with some dependencies at detailed here:

Part 3

It is Thursday night.

And success!

First demo of skid runs with a few issues.

Not before a quick go on virus aka zarch.

A surge of muscle memory reminds me of a serious 90s video game addiction as I am once again burning 8 million virtual cycles a second 68000 style to fly full tilt into the ground yet again. And again....

I have a whale to find.

The next plan is to investigate an Amiga Blitz BASIC build chain that produces Sega megadrive ROMS. Modern tools may (have) to be introduced to the tool chain as it is still unclear if it is all there....

The bootstrap involved fooling the Sega into thinking it was running AmigaOS (headless) by placing an exec pointer at location 4.
; MegaDrive SkidMarks (c)1995 Acid Software

 include startup.asm

 org $500

bbprog  incbin   skid.bin
 cnop    0,32768
music   incbin  skidmark.mus
 include music.asm

main    move    #$870f,$c00004
 move.b  #-1,$ff0002
;        move.l  #$53454741,$00a14000
 jsr     setup_z80
 move.l  #music,d2
 bsr     m_set_mod
 moveq   #1,d0 
 bsr     m_spl_mode              ; Set to DIRECT SPL mode (7 Voices).
;        move    #46,d0
;        move    #255,d3
;        bsr     m_start_tune
 move    #$8708  ,$c00004
 move.l  #dlist  ,$ff0004
 move.l  #clist  ,$ff0008
 move.l  #sbase  ,$ff000c
 move.l  #0      ,$ff0020

 jmp     bbprog

 Dc.b  105,40,29,   110,26,27,  44,0  ;rally  race 1
 Dc.b  105,55,45,   115,43,50,  60,0  ;       race 6,7
 Dc.b  105,70,68,   120,59,66,  60,0  ;       race 12

 Dc.b  98,40,29,   102,26,27,  44,0  ;Beach  race 1
 Dc.b  98,55,45,   105,43,50,  60,0  ;       race 6,7
 Dc.b  98,70,68,   110,59,66,  60,0  ;       race 12
 Dc.b  35,50,80,    45,26,67,  44,0  ;Snow  race 1
 Dc.b  35,75,90,    45,43,76,  60,0  ;       race 6,7
 Dc.b  35,100,100,  45,59,86,  60,0  ;       race 12

 Dc.b  108,26,24,   105,24,24,   44,0   ;ranch
 Dc.b  110,26,24,   107,24,24,   44,0   ;
 Dc.b  112,60,45,   118,43,50,  60,0    ;       race 6,7
 Dc.b  25,100,80,    30,30,100,  44,0  ;cow  race 1
 Dc.b  25,110,90,    30,40,110,  60,0  ;       race 6,7
 Dc.b  25,120,100,   30,50,120,  60,0  ;       race 12

 Dc.b  105,60,50,   105,60,50,   60,0   ;f1
 Dc.b  110,65,60,   110,65,60,   60,0   ;
 Dc.b  120,70,70,   120,70,70,  60,0    ;       race 6,7

;f1      dc.b  117,70,68,   121,59,66,  60,0
;cow     dc.b  25,127,101,  29,45,122,  68,0


 dc.b   75,70,55,   75,50,55,    54,0  ;mini  ;rally
 dc.b   75,70,55,   75,50,55,    54,0  ;mini  ;beach
 dc.b   75,70,55,   75,50,55,    54,0  ;mini  ;snow
 dc.b   75,70,55,   75,50,55,    54,0  ;mini  ;ranch
 dc.b   95,70,75,   75,50,55,    60,0  ;mini  ;Turbo rally
 dc.b   104,70,75,  75,50,55,    55,0  ;mini  ;Turbo beach
 dc.b   85,73,85,   75,50,55,    65,0  ;mini  ;Turbo snow
 dc.b   85,73,90,   75,50,55,    60,0  ;mini  ;Turbo ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

 dc.b   80,38,40,   80,38,40,    50,0  ;buggy(vw)
 dc.b   80,38,40,   80,38,40,    50,0  ;buggy(vw)
 dc.b   80,38,40,   80,38,40,    50,0  ;buggy(vw)
 dc.b   80,38,40,   80,38,40,    50,0  ;buggy(vw)
 dc.b   61,70,100,   80,38,40,    60,0  ;buggy(vw) Turbo Rally
 dc.b   70,70,100,   80,38,40,    55,0  ;buggy(vw) Turbo Beach
 dc.b   55,73,100,   80,38,40,    65,0  ;buggy(vw) Turbo Snow
 dc.b   55,75,100,   80,38,40,    60,0  ;buggy(vw) Turbo Ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

 dc.b   110,44,40,  110,45,40,    55,0  ;truck rally
 dc.b   110,44,40,  111,45,40,    55,0  ;truck beach
 dc.b   110,44,40,  110,45,40,    55,0  ;truck snow
 dc.b   110,44,40,  110,45,40,    55,0  ;truck ranch
 dc.b   106,60,55,  110,45,40,    55,0  ;truck Turbo rally
 dc.b   115,60,55,  111,45,40,    45,0  ;truck Turbo beach
 dc.b   100,63,65,  110,45,40,    55,0  ;truck Turbo snow
 dc.b   100,65,70,  110,45,40,    50,0  ;truck Turbo ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

 dc.b   105,40,40,  105,40,40,   50,0  ;porsche
 dc.b   105,40,40,  105,40,40,   50,0  ;porsche
 dc.b   105,40,40,  105,40,40,   50,0  ;porsche
 dc.b   105,40,40,  105,40,40,   50,0  ;porsche
 dc.b   91,65,75,   105,40,40,   60,0  ;porsche Turbo Rally
 dc.b   100,60,75,  105,40,40,   60,0  ;porsche Turbo Beach
 dc.b   85,60,85,   105,40,40,   70,0  ;porsche Turbo Snow
 dc.b   85,70,90,   105,40,40,   65,0  ;porsche Turbo ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

 dc.b   90,50,110,  90,50,110,   60,0  ;f1
 dc.b   90,50,110,  90,50,110,   60,0  ;f1
 dc.b   90,50,110,  90,50,110,   60,0  ;f1
 dc.b   90,50,110,  90,50,110,   60,0  ;f1
 dc.b   90,70,100,  90,50,110,   60,0  ;f1 Turbo Rally
 dc.b   105,70,100,  90,50,110,   60,0  ;f1 Turbo Beach
 dc.b   105,70,100,  90,50,110,   60,0  ;f1 Turbo Snow
 dc.b   105,70,100,  90,50,110,   60,0  ;f1 Turbo Ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

 dc.b   70,40,80,   70,40,80,    40,0 ;cow rally
 dc.b   70,40,80,   70,40,80,    40,0 ;cow beach
 dc.b   70,40,80,   70,40,80,    40,0 ;cow snow
 dc.b   70,40,80,   70,40,80,    40,0 ;cow ranch
 dc.b   70,40,80,   70,40,80,    60,0 ;cow  Turbo rally
 dc.b   70,40,80,   70,40,80,    60,0 ;cow Turbo beach
 dc.b   70,40,80,   70,40,80,    60,0 ;cow Turbo snow
 dc.b   70,40,80,   70,40,80,    60,0 ;cow Turbo ranch

 dc.b   1,2,3,4,5,6,7,8    ;checksum (DONT TOUCH ME!)

;  these are the sound values!!!, 
cardiff:; FMMult,FMMin,FMPeak,SamMult,SamMin,SamPeak              
 dc.w 6,0,127,9,40,500        ;mini
 dc.w 6,0,127,8,40,500        ;vw
 dc.w 6,0,127,8,40,300        ;truck
 dc.w 6,0,127,8,40,500        ;porsche
 dc.w 6,0,127,8,40,500        ;f1
 dc.w 6,0,127,8,40,500        ;cow

dlist:  dc.l track,cardiff,champdiff,typdiff,150
;  the '150' is the number of frames to add on for each warp,150=secs

track:  incbin  tracks.ptr
 incbin  tracks.bin

clist   dc.l    car1,car2,car3,car4,car5,car6
car1    incbin
car2    incbin
car3    incbin
car4    incbin 
car5    incbin
car6    incbin

sbase:  incbin  mini.shd
 incbin  vw.shd
 incbin  truck.shd
 incbin  porsche.shd
 incbin  f1.shd
 incbin  cow.shd

Int7:   rte

Int6:   move.w  #-1,$ff0000

vram    =       $40000000
sram    =       $40000010
vd      =       $c00000
z80     =       $a11100

Int4:   tst     $ff0014
 bne     boringint
 movem.l d0-d1/a0-a1,-(a7)
 lea     vd,a0
eol6:   btst    #2,5(a0)
 bne     eol6
eol5:   btst    #2,5(a0)
 beq     eol5

;        move.b  #1,z80
;label   btst.b  #0,z80
;        bne     label
 move.w  #$813c,$c00004
 ;move.w  #$8134,$c00004
 move    #$20,$ff0000
 move    #$857e,4(a0)
 move.w  #$8600,4(a0)
 lea     $ff0020,a1
 move.l  #sram,4(a0)              ;hscroll
 move.l  (a1)+,(a0)
 move.l  #vram+$10000000,4(a0)    ;vscroll
 move.l  (a1)+,(a0)
 move.w  #$9340,4(a0)
 move.w  #$9401,4(a0)
 move.l  $ff0010,d0
 move.w  #$9500,d1
 lsr.l   #1,d0
 move.b  d0,d1
 move    d1,4(a0)
 move    #$9600,d1
 lsr.l   #8,d0
 move.b  d0,d1
 move.w  d1,4(a0)
 move    #$9700,d1
 lsr.l   #8,d0
 move.b  d0,d1
 move.w  d1,4(a0)
 move.l  #vram+$3c000083,4(a0)
eol3:   btst    #2,5(a0)
 beq     eol3
eol2:   btst    #2,5(a0)
 bne     eol2
eol1:   btst    #2,5(a0)
 beq     eol1
;        move    #0,z80
 move.w  #$816c,4(a0)
 ;move.w  #$8164,4(a0)
 movem.l (a7)+,d0-d1/a0-a1
 movem.l d0-d1/a0-a1,-(a7)
 lea     vd,a0
 move    #$20,$ff0000
 move.l  #vram+$3c000083,4(a0)
 move.l  $ff0010,a1
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 move.l  (a1)+,(a0)
 movem.l (a7)+,d0-d1/a0-a1

; junk from here down
;name                    grip  topspeed  acceleration  steering
;porsche                105    40               40              50
;mini                    75      50               55              54
;buggy(vw)               80      38               40              50
;truck(4x4)              120    35               85              55
;F1                      90      50               110            60
;cow??                   70      40               80              110
;cardiff:Dc.b  98,26,24,   98,24,24,   44,0   ;classic
;        Dc.b  92,40,30,   108,33,25,  60,0   ;grunty    2
;        Dc.b  102,61,47,  115,59,45,  64,0   ;zippy
;        Dc.b  100,80,60,  110,50,60,  72,0   ;nippy
;        Dc.b  25,127,101, 29,45,122,  68,0   ;slippery
;        Dc.b  117,23,17,  104,17,10,  30,0   ;pathetic  2
;        dc.b 0,0,0,0,0,0,0,0  ;sneezy
;        dc.b 0,0,0,0,0,0,0,0  ;bashful
;;numbers are 0..127
;dc.b compgrip,comptop,compacc , humgrip,humtop,humacc, steering speed,0
;where 127 grippiness=no slide (n.b, grippiness also affects top speed)
;      127 topspeed  =very fast 
;      127 accel     =ridiculous..
;      127 steering  =POWER steering...
; n.b. the commas in the dc.b, you are allowed white space AFTER the comma
;              BUT NOT BEFORE!!!!!!!!!!!     
;settings from amiga skidmarks
;porsche dc.b  98,35,29,    112,26,27,  44,0
;mini    dc.b  92,63,44,    112,42,31,  60,0
;truck   dc.b  108,47,35,   110,44,40,  56,0
;vw      dc.b  102,61,47,   115,59,45,  64,0
;midget  dc.b  88,51,51,    102,44,47,  60,0
;camaro  dc.b  98,43,35,    108,29,40,  64,0
;f1      dc.b  117,70,68,   121,59,66,  60,0
;cow     dc.b  25,127,101,  29,45,122,  68,0

And I found the whale. But not the screenshot key....

Part 4

It is Friday night.


And check this out!

One from the archives, thanks to Erik for the rebuild, top dog!

Tuesday, May 3, 2016

unsecured and insecure

Has modern C++ moved past the pointer type?

Is no pointers a rule anywhere?

P.S. Const tunes boot ups into near instant.

Const colours call stacks into readonly processor nodes in an application topology.

P.P.S. What if inferring const is cooler?

How about inferring private?

Oh, look, comments is enabled. Think, bathe, reply.

Tuesday, April 19, 2016

distortion town

Tuesday, January 26, 2016

Pictures from NAMM 2016

Bang goes the blog

With humidity at 110% during Auckland daylight hours and some audio hell issues with ALSA we approach midday Wednesday, AKA midweek and although determined to orchestrate some electronic noise we take a rest.

History of electronic audio

As an introduction RadioNZ hosts the most excellent These Hopeful Machines series that covers the history of electronic sound. 

I find it fascinating to consider the contest of sampling versus synthesising. The ear and the eye can feast on both fact and fiction. The graphics industry tends to focus on the former with motion capture feeding reflections of the real world while the audio industry seeming to excel at rhyme over reason.

Today, we are hear to talk about audio.

Audio savant

Audio synthesis has created some true savants in electronic design both in function and usability.

A pioneer of filtering the signal using additive chunks of wall space is Moog. This here is a great documentary of an electronics industry legend and some of the wonderful machines he built.


Following the flaccid corporate staging of CES the electronics new year also features the disposable musical equipment fest that is NAMM.

My twitter feed has been overrun by pictures of weird and wonderful as synthtopia feeds us pictures of this years hardware redundancies.

Look mum, no patch cords.

Mum, have you seen my patch cords?

I have always admired this form factor, reminds me of an OSCar

The colour and layout in audio equipment is rich, embracing and emanating the creative identity of it's functions while often following an organic tradition retaining the fine wooden framing.

The adoption of standards at NAMM continue with bluetooth finally ready for show time (not 10 but 20 years later than expected) thanks to heavyweights Yamaha.

And euro-rack standards for the modern modular cave builder.

Friday, January 22, 2016

NitroSDK side projects

With the planned addition of media processing chops to the NitroSDK I have begun a side project that will allow performance testing of raw camera I/O,  functional testing of OpenCV ROM cartridge and some experiments in depth perception and telepresence that have been an itch I have been wanting to scratch since the first generation of VR speculation and study.

The SiBot Facebook page is here.

The following courtesy La Valve Vive.

Wednesday, January 13, 2016

bro town

Summary of episodes as scraped from

Note the Special Guests - everyone who knows everyone from our little corner of the planet.

Bro'Town: episode guide

Go Home Stay Home

Episode 1.06
New Zealand: October 27, 2004
Canada: October 04, 2006
When Constable Bababiba discovers that Vale and Valea have been left home alone, he sends Vale to a bad boy's home and Valea to a rich white family in Parnell, but when Dad realises that he is no longer eligible for his benefit, he launches a bid to bring his boys back home.
Special Guests: Alan Gibbs, Jenny Gibbs, Rodney Hide, Michael Jones
Note: series one episodes are listed in the order they appear on the DVD release (which is also the order of airing in Canada). Numbering and air dates give original NZ broadcast order

Get Rucked

Episode 1.04
New Zealand: October 13, 2004
Canada: October 11, 2006
It's the annual rugby match against the St Sylvester's Old Boys, but when the school 1st XV comes down with a terrible case of food poisoning, the boys have to play against a crack multi-code team featuring Joe Rokocoko, Tana Umaga, Stacey Jones, Henry Fa'afili and Awen Guttenbeil.
Special Guests: Awen Guttenbeil, Frank Bunce, Henry Fa'afili, Joe Rokocoko, Stacey Jones, Tana Umaga

The Wong One

Episode 1.03
New Zealand: October 06, 2004
Canada: October 18, 2006 (APTN)
Wong from Hong Kong arrives in Morningside and Dad takes him in as a homestay visitor, but a case of mistaken identity sees Vale kidnapped in Wong's place by the legendary Grasshopper - a hot Asian chick with incredible martial arts skills.
Special Guests: John Campbell, Carol Hirshfeld


Episode 1.02
New Zealand: September 29, 2004
Canada: October 25, 2006 (APTN)
Sione finally gets his chance to impress the girl of his dreams at the school ball, but his mother and his rival Rex Ruka do all they can to ruin his chances.
Special Guests: John Campbell, Carol Hirshfeld, Michael Jones, Lucy Lawless

A Maori At My Table

Episode 1.05
New Zealand: October 20, 2004
Canada: November 01, 2006 (APTN)
The boys go on a trip to Jeff's Marae, only to find an unexpected tangi going on. The mantle of leadership is suddenly thrust upon an unsuspecting Jeff.
Special Guests: Keisha Castle-Hughes, Cliff Curtis, Niki Caro, Rawiri Paratene, Witi Ihimaera

The Weakest Link

Episode 1.01
New Zealand: September 22, 2004
Canada: November 08, 2006 (APTN)
After being run over by a bus, Valea suddenly becomes the brainiest boy in Morningside, and the boys stun the school by making it through to the televised finals of the national quiz show.
Special Guests: Prime Minister Helen Clark, Carol Hirshfeld, John Campbell, Robert Rakete, Scribe


Episode 2.01
New Zealand: September 15, 2005
Canada: November 15, 2006 (APTN)
It's Morningside Fashion Week, and one of the world's top fashion designers discovers Jeff da Maori and catapults him to international catwalk fame.
Special Guests: John Campbell, Carol Hirshfeld, Keisha Castle-Hughes, Francis Hooper, Denise L'Estrange-Corbet, Rove McManus, Kate Sylvester, Karen Walter

Survival of the Fattest

Episode 2.02
New Zealand: September 21, 2005
Australia: October 09, 2006
Canada: November 22, 2006 (APTN)
The class sets out for a day in the bush, but the boys get lost and stranded in the wilderness. Sione starts to go mad, Mack suffers from constipation, Jeff is terrified of the 'bush spirits', Valea is homesick and Vale films the action Survivor-style.
Special Guests: John Campbell, Michael Jones, Carol Hirshfeld

Honky The Wonder Horse

Episode 2.03
New Zealand: September 28, 2005
After Vale and Valea feel sorry for a racehorse who is about to reach its expiry date, they try and persuade Dad to let them train and race it.

Touched By A Teacher

Episode 2.04
New Zealand: October 05, 2005
Australia: October 16, 2006
Canada: December 20, 2006 (APTN)
Mack tries to impress his mates by inventing a story about being abused. Brother Ken is thrown into jail and a witch-hunt ensues, led by the Minister and Mrs Tapili. Mack becomes a celebrity and is lauded for his braveness in coming forward and subsequently finds himself facing a major conundrum.
Note: The "special guests" listed in the end credits are incorrent, they are for episode 2.01, "Zeelander". The voices of Lucy Lawless and Carol Hirshfeld are among those that should be listed for this episode

Half Caste-Away

Episode 2.05
New Zealand: October 12, 2005
Australia: October 30, 2006
Canada: November 29, 2006 (APTN)
The boys find a baby in the creek and try to bring it up , but struggle from sleep deprivation and the ordeal of nappy-changing until they have to search elsewhere for parents for the baby.

A Chicken Roll At My Table

Episode 2.06
New Zealand: October 19, 2005
Australia: October 23, 2006
Canada: December 06, 2006 (APTN)
Joost's conservation-loving zoo-keeping Dad invites the boys to the van Den Van Van's African-themed Morningside Shore home for a weekend cultural exchange , but an incident with a chicken roll turns the weekend into a weird kind of Whodunit.

Morningside Story

Episode 2.07
New Zealand: October 26, 2005
Canada: December 13, 2006 (APTN)
An incident of racial abuse inspires St Sylvester's to produce a multi-racial musical love story called Morningside Story. Vale is director, Jeff in charge of music, Sione, Sina, Mack and Rex are the stars.
Special Guests: P. M. Helen Clark, H. R. H. Prince Charles

In My Mother's Den

Episode 3.01
New Zealand: 2006
Pepelo falls in love a concussed Canadian girl named Mary fascinated with the struggles of indigenous peoples. Vale and Valea are unimpressed until Mary starts feeding them. Meanwhile Sione falls in deep lust with the Canadian.

Know Me Before You Haunt Me

Episode 3.02
Halloween sees the boys trick or tricking, without luck. Rain forces them into an ancient home on the hill where a Maori ghost called Oma Kapiti enters Jeff's body. Whilst Jeff's performance in history class is greatly improved, his desire to burn the school down lands him in a spot of bother with a trip to the Morningside Psychiatric hospital. The boy's enlist the help of Temuera and Howard Morrison to exorcise Oma from their friend.

Upstairs Brownstairs

Episode 3.03
The Morningside Club is losing numbers and realises needs to increase it illegibility criteria. Allowing Samoans into the hollowed halls of exclusive domain broadens its catchment, however when Pepelo Pepelo joins the club gets a little more than what they bargained for. Meanwhile Valea falls for a beautiful rich girl. The only problem is his insistence that he is the Lord of Rumbatumbo.

Go Ask Agnes

Episode 3.04
Sione's family can't make ends meet as God makes demands on Agnes' small income via the church, so she turns to the casino for help. When that backfires Agnes turns to phone sex. Meanwhile Valea's money elephant disappears....

Mack Is From Mars, Sione's A Psycho

Episode 3.05
Mack sneaks into the netball team by disguising himself as a Muslim girl, in a burqa. Meanwhile Sione falls for the new French Islamic girl in the netball team, Mamushka Monet.

I Still Call Australia Home Oh

Episode 3.06
The boys decide to enter Polyfest, however when they don't make the Samoan team they decide to join Abercrombie's Aborigine cultural group.

The Summer The Brazilian Came

Episode 3.07
Record temperatures forces Morningside to the beach where Sione tries to surf, Valea falls for a Brazilian beauty and Jeff da Maori charges taxes for use of the beach.

Sons for the Return Home

Episode 4.01
New Zealand: Wed, October 11, 2007
Morningside's softest criminal, Motorcycle Boy, returns home from 'boarding school' just in time for his 21st. Motorcycle Boy trains the boys up to become staunch gang members - but Sione's big mouth soon has himself, his brother, and his own "gang" in deep trouble.

The Artful Dadger

Episode 4.02
New Zealand: October 18, 2007
Valea becomes immersed in the art world, winning praise for his talent and unleashing the tortured artist within! However, bitter rivalry quickly ensues when Dad impresses the glitterarti and steals the lime light.
Guest stars: John Reynolds, John Pule, Jenny Gibbs, Witi Ihimaera, Madeleine Sami as Ms Whotere

A Miracle In Morningside

Episode 4.03
New Zealand: October 25, 2007
In an attempt to outdo his friends, Mack gives up food and water for Lent, and becomes convinced he is a descendant of Jesus Christ and Maria Von Trapp from The Sound of Music.

Yes Prime Minister

Episode 4.04
New Zealand: November 01, 2007
A desperate Brother Ken insists that Vale represent St Sylvester's at Youth Parliament in Wellington. The boys travel to the capital city where they find themselves surrounded by fierce opponents in the dog-eat-dog world of politics.

An Alien At My Table

Episode 4.05
New Zealand: November 08, 2007
Cliff Curtis organises a star-studded Matariki concert at Kia Ora Bay, but one by one New Zealand's finest musicians disappear - and Jeff gets the blame! Will Valea and Keisha rekindle their spark? Will Jeff get to sing with TrinityRoots? Is there anybody out there? And will this be the day the music died?
Guest stars: Bic Runga, Boh Runga, Scribe, Trinity Roots, Anika Moa, Fat Freddys Drop, Cliff Curtis, John Campbell, Carol Hirschfeld, Keisha Castle-Hughes

I'm Going To Limbo... I May Be Some Time

Episode 4.06
New Zealand: November 15, 2007
Dad Pepelo's hard living lifestyle finally catches up with him, and while the boys maintain a bedside vigil, Dad embarks on a journey of the soul, where he must face the demons of his past.

The Summer Of Samson

Episode 5.01
New Zealand: Sunday, April 19, 2009
When Sione catches his Mum and the Minister in a compromising position, he discovers that his brother Samson is the spawn of adulterers.

A Vegetarian At My Table

Episode 5.02
New Zealand: Sunday, April 26, 2009
After eating a mouse pie, the boys take a vow of vegetarianism! They are determined to expose the dodgy innards of the meat industry... but when the powers-that-be catch wind of their plan, Vale becomes the meat in the sandwich!
Guest stars: Fred Dagg, Carol Hirschfeld and John Campbell

To Sam With Love

Episode 5.03
New Zealand: Sunday, May 03, 2009
When world famous actor Sam Neill turns up to teach drama at St Sylvester's, the boys become his biggest fans!

Apocalypse Ow

Episode 5.04
New Zealand: Sunday, May 10, 2009
Jeff's unhinged Uncle Murray returns from Afghanistan and takes the boys to a 'fun' camp... but before long everyone except Jeff realises that things are not what they seem! Will Jeff turn on his friends once and for all?
Guest stars: Neil Finn, Tim Finn, Bret McKenzie, Jemaine Clement

Lost In Cyberspace

Episode 5.05
New Zealand: Sunday, May 17, 2009
Rakeesh converts his dairy into a Cyber Café and Valea soon becomes a 'War is Fun' Master, but his obsession with the game starts to take over his life, and when the boys discover that he has been having a secret relationship, they realise it is crisis time!

So You Think You Can Dance Near The Stars?

Episode 5.06 (series finale)
New Zealand: Sunday, May 24, 2009
When Dad is slipped an ecstasy tablet he gets all loved up and convinces Agnes to show the world her fancy footwork in a televised dance competition.

Thursday, January 7, 2016

nitro format

Sitting at main computer for first time since Christmas we find the following file waiting.


To stay a productive developer I always try and leave a few bones with meat lying around for the following day / week / year.


After 2 educational (in the bad way) implementations of json and xml, I adopted a loose json implementation in which quotes are optional for single word strings as the standard file format for my NitroSDK project.

Json beats xml due to native support for numeric arrays which in xml require CSV style extensions that smell bad and offend the xsl purists.

Json however is class less, and so in the above we begin with singleton definitions and a plan to plurify (add plural version) all nouns using array of said objects.

The formatting is attempting to follow output of which I find very readable.

The color format follows RGBA precision in which only alpha is floating point.

The current implementation doesn't support any of the above.


It turns out I neglected YAML as seen in OpenCV.

YAML looks like a pretty nice standard: