Programming

Competency

I consider myself an experienced user of:
  • languages: c++, bash, LaTeX
  • VCSs: Git(Hub/Lab)
  • OSs: Ubuntu
I consider myself a competent user of:
  • languages: c, Python, html/css/js, TikZ
  • VCSs: Mercurial
  • OSs: anything unix/posix based, dated but working knowledge of windows

Google ai challenges

From 2010-2011 using the identity antimatroid I competed in, and contributed to designing and building an international artificial intelligence programming contest sponsored by Google, commonly known as the Google ai challenges. Each participant wrote a self-contained computer program, also known as a bot, to play a game against other people's bots. Once submissions were closed for each challenge, bots were matched against each other and ranked based on their performance.

contributions

  • I was a significant contributor to designing and building the Ants challenge, we ended up having 7897 people submit a bot;
  • I was the primary designer and author of the map generators for both the Planet Wars and Ants challenges (see for example mapgen.py, symmetric-mapgen.py and asymmetric-mapgen.py, I also independently worked out how to do symmetric n player maps on the surface of a torus (edges wrapped) which was used for the map generator(s) I cowboy coded and possibly by other people as well. I also wrote code that was able to run some tests on a given map to ensure it meet some desirable properties, for example being traversable by a sufficiently large n2 block;
  • Some of us contestants in the primary irc channel may have overruled the leader j3camero about the battle resolution to be used for the contest as we wanted it to be more strategically interesting, we may have been a tad harsh on how difficult that was to understand for newcomers, though to be fair the competition was more a culmination of the preceding two contests as well (kudos to those who managed to join in the fun without competing in some of the earlier contests). The description I gave from a mathematical perspective, which was perhaps only really helpful to myself, still seems to be available here;
  • I was the developer of the c++ starter bot for the Ants challenge, used as a starting point for contestants intending to write their bot in c++;
  • I was one of the designers and one of the authors of the game specifications for the Ants challenge;

results

  • I'm the reigning Australian champion from the last two challenges, 1st out of 175 in the Ants challenge and 1st out of 122 in the Planet Wars challenge (Australian Ants leaderboard, Australian Planet Wars leaderboard);
  • I placed inside the top 1% globally in the last two challenges, 32nd out of 7897 in the Ants challenge and 36th out of 4617 in the Planet Wars challenge (global Ants leaderboard, global Planet Wars leaderboard);
  • You can find my implementation of my strategy for Planet Wars here and my implementation of my strategy for Ants here.
  • I had the highest ranked version 1 bot in the Ants challenge (it is possible to sort the global leaderboard by version number, however there is no direct link).
  • You can still view some of my ants games here and some of my planet wars games here (including 5/5 wins against Accoun who finished 6 overall and who probably would have finished higher if not for me). This planet wars game is an interesting example of when I am not sure if the bot I implemented my strategy for made an extremely smart move (there was some code in there to consider end game scenarios) or whether it made a mistake and recovered (which is probably more likely where the end game scenario code might have paid off, though am unsure why it would have made the earlier move either).

Nift

I created and develop a cross-platform open source website manager called Nift. More information can be found on the official Nift website.