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.