Software Development

Some tools developed over the years. Mostly free for download and use.

Note though there is no help or support for the free utilities. Use at your own risk.


iPRC Scaling Tool

I hate having to do math—that's what computers are for! Who wants to have to convert mm to pixels for image shifts and calculate scaling percentages when working on a Canon imagePRESS?¹.

This tool has been through many iterations. It started as something really quite sophisticated that actually interfaced with the imagePRESS via the RUI and managed the XML paper catalog—problem was that with each firmware release it often would get broken, making maintenance and compatibility difficult. It then became a webpage that just did the calculations, but when the hosting for the webpage was discontinued I decided to rewrite it on my own time as a stand alone app.

All it does is guides you though the alignment process when printing on A3 or SRA3 stock and does the math for you. You just measure and enter the mm, it converts these to scaling factors and pixel adjustments.

The software does phone home to check that you are using the latest version, other than that, no internet connection is required.

¹This has actually improved in newer system releases, however the built in test sheet still suffers when printing on short cut media.


FS Type Editor

If you are a font designer and you quickly want to be able to change the license type of a TTF font before releasing it to the world, this tool is for you.

If you look at the Microsoft TTF Specifications this is controlled by setting the fsType attribute. This is what this tool allows you to change.

If you are not the designer of a font, please do not use the FSType Editor to change the fsType value of a TrueType font! Please respect the copyright of the font designer.

If you want a commandline tool that does the same thing, then check out TTFPatch by Wolfram Eber.


Colour % Calculator

Ever wondered about the percentages of colour coverage in a specific file? Wondered how much a particular print might cost to print given the manufacturers toner/ink yield amounts?

This is a rewrite of a tool I originally wrote for work. The original has a nice GUI and a few extra features, but it is slow due to the way it processes the file. This is a rewrite in C to try and improve the speed (at the expense of ease of use)

What it does is takes a Photoshop RAW file and counts the total number of pixels of each of the CMYK channels and presents these as a percentage of the total number of pixels.

It is not very flexible and requires a specific file format, but it does exactly what it suposed to do. Because it is hard to use, rather then try and write extensive documentation there is a short training video showing how to use it.

I have included the C source code if you wanted to make improvements or recompile for a different OS. It is distributed under the AGPL license.


Printer Popup

Often when doing driver testing I will print to the NUL: port on Windows. This has the effect of /dev/null on Unix, dumping the resulting print job.

Often it would be quite nice to be able to tell that a job did actually reach the printer. Basically this program splashes up a printer icon onscreen when printing a job, that is useful to visualise the printer hitting the device.

It uses RedMon to fire the program, and displays some of the RedMon environment variables. You can configure how long the popup appears onscreen for before closing.



Using ManageEngine ServiceDesk? Want a quick way to create miscellaneous tickets for time tracking? Welcome to Miscalculator!

At work we used to have to use ServiceDesk in order to allocate 100% of our time for reporting purposes. I used to hate having to log into ServiceDesk, find the correct ticket, enter time, close the ticket at the end of the month and then open a new ticket for the new month.

I hated it with a passion—so I spent an entire weekend writing a tool that used the ServiceDesk API to log time for me. I am guessing about 10hrs of coding, including reading up about how the API worked, to save a few minutes of time a day... I must be crazy!

It am putting it down to a good learning exercise about how to interact with a XML based API via web forms in Xojo—as after all that work I ended up changing roles and not really using ServiceDesk.

The source might be useful for someone else if they were wanting to write a desktop application to interact with ServiceDesk.



Some other bits and pieces.

Matt Cutting: A webpage that allows you to enter the frame and image dimensions for performing matt board cutting. It displays a cutting guide for setting up a Logan Matt cutter (or any matt cutter).

Printer Installation Scripts: Some scripts for the automated installation of printers.

Mail Merge Finishing: A Word macro to apply subset finishing to a Word Mailmerge Job.

MinuteWar Commander: A tool to make playing Minutewar slightly easier (IMHO).


I write code because I am lazy.

Let me explain that. I have a degree in Computer Science. To get that I had to write a lot of code. I realised that I don't enjoy actually writing code—what I do like is the payoff at the end, especially when it is something that I can use that makes my life easier.

At times my day job requires me to write code (not often thankfully), but that code belongs to my employer and it is usually really specific for customers. What I have here are some little programs written on my own time that make my life a little bit easier. Maybe they will make your life easier too?

If you feel like showing your appreciation then you can buy me a beer (or laptop) below.

I am available for contract programming, but I do only code for fun, so if your project is not fun then I will probably say no. Generally Xojo is my preferred language (it is quick to code in and cross platform) but I hack around in C, Javascript, PHP etc

Contact me via the contact form on my main webpage.