Sunday 01 October 2006 (10:16PM)
On the 27th of October my current contract as a software consultant comes to an end. I will then take a holiday from working for other people and spend the next four or five weeks working for myself.
This is what I am going to do with my time (in no particular order):
For the past twelve months I have been contracted to produce bespoke vacancy / applicant management systems and job-site portals. My impression of this market is that the products on offer are overly complex, difficult to use, expensive and cumbersome.
As a result I'm going to develop a web-based candidate management system that is:
I intend to write such a system by concentrating on only the essential features required in the process of filling a job vacancy and presenting these features as simply and elegantly as possible.
In order to save time and effort, this project will share a lot of code with:
The concept of TeacherTool.org has evolved from a "Learning Management System" (LMS) with wiki-like features into a collaboration tool for the creation and distribution of an open and evolving curriculum.
TeacherTool.org will be released under a free-software licence with the aim of fostering a community of developers as well as users.
My original Program# AIML chatterbot is definitely long in the tooth. The fact that it was my first project in C# also means that it does not make full use of the features available to a developer in the .NET and MONO platforms.
ProgramR is another AIML based chatterbot but written in the Ruby programming language. Ruby is wonderfully powerful and I am very excited about using it in this project.
I aim to provide updates of both versions of these AIML bots. I'll then use them as the foundations for my own "modifications" to the basic AIML standard.
I've already written an expert system in a previous role as Artitificial Intelligence developer. It was built to meet a very specific need in an even more specific way and made use of custom "in-house" tools for doing so.
On reflection this was a bad thing to do: the expert system could have been a generic and standards-based product show-cased within the company's other products and delivered as a subscription service to customers. This lack of vision (on my own and my then employer's part) means that I now have the opportunity to start again and learn from these mistakes.
The expert system I am about to write is a complete re-design and re-implementation in .NET 2.0 with a SQL2005 backend. It will be the expert-system as it should have been. Delivered through a simple web-service based API and a web-based interface (with perhaps even a multi-platform smart-client). I aim to make it a classic example of software as a service.
Something I've always wanted to do but never had the time or opportunity.
I want to experiment with musical composition software. This seems like an ideal opportunity to add this fascinating language to my box of tricks as it strikes me that Lisp is a language well suited to solving the problems encountered in algorithmic music composition.
I realise that I won't be able to do all these activities in the time span I've allowed so my next task is to prioritise this list and plan exactly what I'm going to do. I'll save that job for another post – although all the "Continue to…" items will definitely be in there.