Patrick Galbraith

Web developer - Adelaide, Australia

Uploading files to Salesforce using jsForce 5

There aren’t many examples of how you can upload files (aka ContentVersion entities) to Salesforce using the jsForce library. So I wanted to document what I found while working with the library. Simplest way The easiest way to upload a file is to base64 encode the contents and pass it to the create method. Unfortunately […]

Living in a closed source world

Decompiling C# using dnSpy .NET debugger and assembly editor

Recently I was working on a project where I had to work with a C# library with limited to no code level documentation. DnSpy is a debugger and .NET assembly editor. You can use it to edit and debug assemblies even if you don’t have any source code available…

Zombicide #2 32

How to print the ultimate spawn card deck

In this follow up post I will look at how I created my custom Zombicide spawn card deck using Photoshop’s Variables and Data-sets feature to generate 144 unique cards based on a CSV data source… read more

Zombicide 62

How to print the ultimate custom equipment deck

Lately I’ve been playing a lot of the awesome hobby that is board games. The last few years have seen a renewed interest in board games likely aided by the internet and its ability to provide crowd funding for a range of new and exciting games. One of these is Zombicide which was funded in 2012 and raised a respectable $780k.

Basically lots of dice rolling, zombie minis, crazy weapons… what more could you ask for in a board game.

How about more crazy weapons and equipment… read more

Simple Template Engine 1

An exploration of frontend template engines

There are a number of different JavaScript template engines. However in this post I just wanted to explore how you would go about evolving from a simplistic approach into something more complex. Faux-Mustache So the simplest approach to converting the template and data into the output we need is to just use String.prototype.replace(). Note I […]

Drawing Animated Curves 11

Using Javascript and HTML5 canvas

After digging through some older projects today I came across this code from used to animate the flight path from the Radiohead tour map. It was originally written in AS3 but I ported it to JS for fun.

RAGEagain 90

Re-experience ABC TV's RAGE again...

Rage is a popular all-night Australian music video program broadcast on ABC1 on Friday nights, Saturday mornings and Saturday nights. It was first screened on the weekend of Friday, 17 April 1987.

Since 1998 rage has posted all their episode playlists online. So I created a website that combines these playlists with YouTube allowing you to travel back through time and re-experience rage’s recent history.

Bookmarklet – Force Youtube HTML5 Embed

Here is a simple JavaScript bookmarklet that replaces YouTube videos embedded using the old flash object embed method with the new iframe embed method. What this means is that you can force a lot of embeded YouTube videos to play with the HTML5 video player. This is particularly useful on IOS devices (iPhone, iPad) with […]

Follow Them Around

Follow Radiohead's tour using video footage uploaded by fans

Just launched a new site that I worked on with Leigh Cosma called Follow Them Around. It allows people to follow Radiohead on The King of Limbs World Tour using video footage uploaded by fans. By the end of the tour our hope is that all the tracks from every gig will be available to […]


Photoshop Livestream

For the last month or so I have taken some Photoshop graphic requests and streamed the creation live on Justin.TV. I really like the idea of streaming the creation process since it forces you to work quickly and productively (in other words to focus more on the big picture than the details).

So far I have created graphics mostly relating to various video games and pro video gamers since that is what people have asked for.

Default Thumbnail Plus 120

WordPress Plugin

Automatically display a default Post Thumbnail image, either the first image attached to a post, or set default images for specific categories, tags, or custom taxonomies. Supports custom fields to ease upgrading. Download:    

Truncating Text & HTML with PHP 14

A common occurrence in programming are problems that seem simple on the surface but become increasingly complicated the longer you look at them. While working on the latest version of the Recent Posts Plus WordPress plugin I stumbled upon a variety of issues with text/html truncation which I hope to outline in this post. So […]

Neonoir Catalogue

Design and photography I did for Neonoir jewellery catalogue. View the Neonoir collection on the PaulGStudios website. A selection of pages from the catalogue:

Loot Wallpaper

I was asked by designer Victoria Lamb for some flowery wallpaper designs for Sydney Theater Company’s latest production of Loot. Photo above by Heidrun Lohr   Victoria also asked for a Monty Python-esque 5 pound note. I’m not sure ultimately how it was used but changing the Queen into a Corgy was fun :p

Recent Posts Plus (WordPress Widget) 357

An advanced version of the WordPress Recent Posts widget, allows display of thumbnails, post excerpt, author, comment count, and more. Provides options to trim the title and override the post order and type. Also includes a simple template parser so you can override the default output. Download:

South Australian ABC Weather Calendar 2012

A photo I took has been chosen for the 2012 South Australian ABC Weather Calendar for May Buy online at the ABC Shop

Windows 7 64bit Sharing Brother Fax Printer with Windows XP

The other day I had an issue with sharing a Brother Fax 2850 printer connected to Windows 7 with another Windows XP computer. Which I wanted to post for future reference. The problem is fairly simple the driver from the Brother website here has a slightly different model name to the one detected by Windows […]

AAUMv5 Windows Sidebar Usage Meter 1

Originally created by James Roberts (basefield) I completely rewrote and updated the Windows Sidebar gadget to work with Adam Internet’s new API. Source Code (GitHub) | Latest Version | Whirlpool Thread