Programming Ideas

These are not (necessarily) intended as student projects. These are ideas that I have had for novel pieces of software that would be useful or interesting for various reasons. Hence the scope, difficulty and scale of these vary greatly; if any of these sound interesting, come and talk to me about them.

A better server-side filter for email

Anyone who has used a vacation message to deal with email whilst absent will know that such software is often quite one-dimensional. In my case, I know that there are some incoming email messages to which I do not want to sent an automated reply (such as spam, or mailing lists), and some to which I want to send a very different message than others (such as a colleague from a nearby office, a student requesting an appointment, the Vice-Chancellor, or a fellow researcher with a reviewing request). The aim is to develop a server-side processing program (eg one that would run as a daemon on goanna, rather than as part of a filter in an email client such as Thunderbird) which would allow such variable actions to be performed. The user would then be able to specify rules indicating which actions are to be performed on which incoming messages. 


Visualization of the execution of busy beaver machines

A recent interest of mine is busy beaver machines.When evaluating particular machines of interest, it is often useful to provide as much analysis as possible, including all kinds of statistics. However, a visual representation of the action of such machines would often be a much more compact representation of what is going on, and in fact could be quite crucial given that some machines can produce output of length in the billions upon billions.

Chatterbots of various sorts

Chatterbots are a conceptually simple mechanism for generating simple conversations, often based around a particular theme, such as a virtual personality, or a particular line of products to be advertised. The aim here is to allow a more flexible interface to some sources of information, such as course descriptions, frequently asked questions, and program structures.