All Change
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):
The World's Easiest Candidate Management System
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:
- Simple and elegant in form and function
- Easy to use and learn
- Cheap
- Agile and adaptable to user's requirements
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:
TeacherTool.org
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.
Program# v2.0 and ProgramR Chatterbots
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.
A Web-Based Expert System
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.
Learn Lisp
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.
Read / Watch the Following
- (Finish) Atlas Shrugged – Ayn Rand
- The Glass Bead Game – Hermann Hesse
- The classic Structure and Interpretation of Computer Programs – Abelson and Sussman
- The TV series Free to Choose by Milton Friedman.
- Idea Virus – Seth Godin.
- Other interesting nuggets from the Best of Google Video page.
Write the Following
- A new version of my CV.
- An update to the my Guide to Species Counterpoint.
- A single article providing more details for each item described in this article.
- Snippets on various subjects ranging from algorithmic music composition to a modern setting for Gesamtkunstwerk (I'll leave you to look that term up).
Find Out More About the Following
- Microsoft's XNA Technology and the XBOX360.
- The extraordinarily wonderful Lucene project.
- The capabilities of the Nintendo Wii.
- Developing software for Apple computers / OS X.
- .NET 3.0
- XUL
Continue to…
- Be a husband and father.
- Play music to a high level (get the Vaughan-Williams tuba concerto re-learned for a performance next year, get the finer points of the dijeridu under my belt, learn some more Bach on the piano and go to orchestra every week).
- Train at Karate (with the aim of getting 4th Kyu in December).
- Jog regularly. (Try and do at least 2 miles a day.)
- Cook and consume freshly prepared vegetarian food.
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.