Improving error messages in Grace

This is a bit late, but I have just uploaded the report for my Honours year project: “Improving Error Messages in Grace” which can be found here.

My project consisted of modifying a compiler for the Grace programming language in order to produce error messages that are more helpful to novice programmers, i.e. are more likely to help novice programmers identify and correct the source of the error.

Following the completion of the project, my changes were merged into the master branch of the Grace compiler, Minigrace, which can be found on Github.



Recently I have been doing some work for a company called ThunderMaps that provides real-time alerts for location-based incidents. I have developed several scripts to pull data from New Zealand online auction website TradeMe and create ThunderMaps alerts, freely available on Github.

You can read more about using ThunderMaps and getting alerts for TradeMe properties on the ThunderMaps blog.

The individual TradeMe accounts on ThunderMaps are:

A few links: part 2

Over the past week or so I’ve come across several really interesting websites (mainly via Reddit) that are definitely worth a look/visit:

  • – A tool that will parse a shell command and provide the relevant sections from the man page for each argument; useful when trying to understand what shell scripts actually do.
  • The First Few Milliseconds of an HTTPS Connection – An in-depth look at what actually happens when your browser connects to a website over HTTPS. Very thorough, and includes background information on multiple encryption algorithms.
  • A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux – A tutorial that tackles the challenge of how to make ELF executables for Linux that are unbelievably small. It goes from the standard C program at 3998 bytes down to the bare minimum, standards-breaking 45 bytes.

A few links

Recently I’ve been looking in to good practice when it comes to writing code and maintaining filesystems and found several handy documents related to this:

I’ve also been trying to improve my knowledge of the C programming language, in particularly good practices relating to memory management, and in the process have posed several questions on StackOverflow which have received very detailed and helpful answers: