I am a Full-Stack Web & Software Developer with over fifteen years of experience. Over countless hours I have discovered that I have a passion and talent for creating works that are both highly functional and technically sound.

I have also discovered that I have a knack for understanding new theories & concepts – I am an adamant perfectionist when it comes to just about anything I do.

Current Skill set

  • Responsive Mobile first HTML & CSS3 – Bootstrap, SASS
  • JavaScript (Vanilla JS, JQuery, Angular)
  • PHP (Web Server & CRON)
  • CRM / CMS packages – WordPress, OsCommerce, Marketo
  • MySQL
  • Git
  • SEO & PPC
  • Java
  • Python
Legacy Technology
  • ASP (classic)
  • Visual Basic
  • Adobe Flash
Software Packages
  • Adobe Photoshop
  • MySQL
  • Jet Brains Web Suite
  • Microsoft Word
  • Microsoft Excel
  • Microsoft Access
  • Maya 3d
  • and more…


At the start of 2019, I am entering my 4th year of a 6 year course Studying a Bachelor of
Computer Science with gaming specialisation at Charles Sturt University



A license Pyrotechnician in the state of N.S.W. Australia for over twenty years, performing
professional grade pyrotechnic shows ranging from from Chinese String Crackers, Indoor Close
Proximity Fireworks, Aerial Shells up to 125mm and Aerial Salutes up to 75mm.

A founding member of the Pyrotechnics Industry Association of Australia (PIAA), Based in Sydney
but have performing shows all over NSW for all types of events.

Car Enthusiast

An active member in the Skylines Australia NSW car club I regularly volunteer to help run events.

Social Media

You can connect with me professionally on LinkedIn,
or stalk me through Twitter



Wizardry Fireworks

PRODOCOM Australia

Hannover Fairs Australia

E-Web Marketing

Freelance Websites

Personal Projects

Tipping Comp


National Pyrotechnics

iblott accessories


Ajax – FBJS – Dynamic Form Submission Inside a Facebook App

Well, it was a slight headache (Large actually) but I’ve now got my Facebook app running on an Ajax based tip’s submission system.

I like it; I am worried however that users might not understand that the tips are actually being submitted as they click.

I will need to find a way to indicate this a little better than I have it right now

Bellow’s code has had a lot of stuff taken out for posting. It was in amongst code that was related to this function. If you find any issues please contact me and I will try and fix it up and/or help you out


function PostTips(TipOn, TipOff, BGColour, GameNum, TipTeam, TipRound) {

**   TipOn, TipOff, BGColour = used for CSS purposes   **
** GameNum, TipTeam, TipRound used for data submission **

// set text for confirmation dialogue
var dialog = new Dialog().showChoice('Tip team', 'Are you sure you want to tip this team?');

// puts up a confirmation  box
dialog.onconfirm = function() {

var ajax = new Ajax();
ajax.responseType = Ajax.FBML;
// Once the user hits OK run the Ajax process
ajax.ondone = function(data) {

// Cosmetic CSS styling to indicate process usage
obj = document.getElementById(TipOn);
obj.setClassName(BGColour + '_open_picked');

obj2 = document.getElementById(TipOff);
obj2.setClassName(BGColour + '_open');

// if the requested page returns nothing then spit out an error
ajax.onerror = function() {
dialog = new Dialog().showMessage('Oops', 'Something screwed up.');
// setup the 'form' submission elements that are to be received by /bin/process.php
queryParams={"round":TipRound,"game":GameNum,"team":TipTeam,"fbid":############}"", queryParams);

return false;



There is a lot of content taken out of this; all the attributes are used for different things on the page. I have simplified it with just using variables such as a, b, c etc

PHP in /bin/process.php

$TipRound = $_POST['tipround'];
$fbuid = $_POST['fbuid'];
$GameNum = $_POST['game'];
$TipTeam = $_POST['tipteam'];

if ($_POST['fb_sig'] == '' || $TipRound == '' || $fbuid == '' || $GameNum == '' || $TipTeam == '') { exit; }

$sql = "SELECT * FROM tablename WHERE theusersid='".$fbuid."' AND game = ".$GameNum;

$result = mysql_query($sql);

if (isset($result)) {
$search = mysql_num_rows( $result );

if ( 0 < $search ) {
$sql2 = "UPDATE tablename SET mypick = ".$TipTeam." WHERE theusersid = ".$fbuid." AND game = ".$GameNum;
$result2 = mysql_query( $sql2 ) or die ('error sql2');
} else {
$sql3 = "INSERT INTO tablename (game, mypick, theusersid, round) VALUES (".$GameNum.", ".$TipTeam.", $fbuid, ".$TipRound.")";
$result3 = mysql_query( $sql3 ) or die ('error sql3');

All this does is check to see if there are already tips in the database, IF there is then APPEND the database. If there isn’t, INSERT into the database


One major factor that I found while using Ajax in FBML is if your /bin/process.php page or variant of; returns absolutely not content, then the FBJS confirm dialogue box does NOT return a successful process and spits out the error despite it sending 200 page headers.

My page returns a simple piece of text after a few testing procedures to make sure everything has worked properly.

Published by
January 11, 2010 11:40 pm

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.


I studied Digital Media for 12 months at Mt Druitt TAFE. While  doing so we studied The 3D Modeling Program ‘Maya’. During the course I produced a number of 3D scenes and a couple of 3D animated movies.

I have also played in other programs such as Bryce 3D, 3D Studio Max, Lightwave, Vue D’esprit and a few others. However, i have always returned to Maya as a personal preference.

Bellow are a number of works that i have produced from these various programs.

Bryce 3D: Balls

Vue D’esprit: Sulfuric

Maya: Living Room

Maya: Gauntlet