Programming in GameMaker

The first programming language I wrote significant code in was a dinky little scripting language attached to a GUI-based game development program called Game Maker (since rebranded to GameMaker: Studio). The program provides graphical interfaces for creating objects and defining their behaviour by dragging, dropping, arranging and filling in fields, and you can quite happily use this and only this to make a large variety of games: GM works on abstract enough concepts that you’re not restricted to one or two genres of game like you might be if...

Apple and the jackless iPhone

As anyone at all exposed to the internet will know by now, Apple has removed the 3.5mm audio jack from the new iPhone that’s coming out. This has been the cause of much wailing and gnashing of teeth, but will probably not be the cause of a significant drop in iPhone sales. Much of the prevailing attitude appears to be that now that the great gods at One Infinite Loop have removed the audio jack, people will just have to go on living without it, shouldering the burden of not...

GPU passthrough: gaming on Windows on Linux

For a long time, I’ve been trying to figure out just how to get the best of both worlds in terms of running Windows and Ubuntu on my desktop PC. I’ve tried the obvious options: I dual-booted Windows and Ubuntu on my laptop for most of my university career, and more recently I’ve tried just running a Windows host with a virtualised Ubuntu in VMWare. Neither of these approaches fully satisfied me. With dual-booting, the other OS on your system is a full reboot away. If...

Moving to a static site

As of today, this site is no longer powered by the Ghost blogging engine. Before today, this blog was a web application with a database and a complex application server with a lot of moving parts. Now it is a bunch of .html files. These files are generated by Hugo, a static site generator. Apart from a few unrelated CSS changes, you shouldn’t really notice a difference – although now you have to navigate to different pages to see different taglines, rather than just refreshing the front page....

Writing a LaTeX macro that takes a variable number of arguments

LaTeX is the document preparation system of choice for middle-aged computer scientists. Despite its dense, esoteric and downright old-fashioned syntax and general workings, it’s probably still the best way to prepare and typeset complex documents, provided you’re prepared to learn and struggle a lot up front to get your tools and templates set up correctly (and then have everything work forever). One of the nifty things LaTeX provides is the ability to define custom macros. This allows you to do neat, effort-saving things like this: ...