Software

Most of the software I have developed over the years has been released as open source and is freely available in public repositories over at GitHub.

There are 5 Major Applications that I have developed so far. One is recent, the rest developed several years ago. The older ones do have supporting concepts in separate repositories. I won’t mention them here; the reader is encouraged to visit my GitHub account and explore what is available.

The intervening gap has been spent developing, in my spare time, a private application for my existing client - converting the existing Microsoft Access Application, which they fundementally pay me to maintain, to a new Web only application- sharing the same SQL Server Database. I will refer to it and the technology it uses in Blog Posts, but due to the nature of the software and its purpose I cannot make it public.

So the key applications are

  • Air Hockey This is a full simulation of an Air Hockey club the core of which is a table at which matches can be played. This is surrounded by a ladder system which ranks members according to their performances at the table
  • AKCMoney This is a Money Budgeting program that I use for my own personal and business finance management and have been doing so for over 15 years. It consists of three main concepts:-

    1. Domains which hold Accounts we wish to manage.
    2. Acounts which hold money in a particular currency.
    3. Transactions which move money between accounts (or between a single account and the outside world).

    Multiple currencies are supported, although there is normally a Default Currency Specified, and can use exchange rates that are initially estimated, but which are then corrected when the actual value of the transaction is known. Each side of the transaction can be assigned an Accounting Code which belongs to one of Costs, Revenue or Assets (depreciated over three years), Balance (items such as expenses and their re-ebursement which should end up at zero) and Offsheet (items such as Profits and Dividends).

    Data is held in an sqlite data making it easy to backup and move around.

  • MBBall is an American Football results picking sofware allowing an administrator to run a yearly competition to all plays to pick results. Melinda’s Backups started to run this competition on their communinity forum using spreadsheets. I wrote this software to support this process and host it all on their site.
  • MBChat is a multi-purpose chat program developed for Melinda’s Backups. It was originally so the leadership team could meet in real time rather than in psuedo real time using e-mail, but went on to become a more general meeting place for all members.

    Early versions relied on clients polling a database, but later versions relied on a server which managed and passed on messages which was woken up by the first particpant into the server and terminated on the last person out.

    These days Server Sent Events or even web sockets would be used, but video chat capabilities on other platforms make this software someone antiquated. However there are some interesting techniques (such as allowing a computer intensive operation of generating an RSA key pair in the client run without locking the browser (maybe now replaced with async and await along with promises)). I leave the software then as an example of some of the ideas.

  • Pi_record is designed to record audio files from USB connected Microphones on a Raspberry Pi. As part of a plan to handle recording videos of me playing by Grand Piano, I planned to mount an iPad on a small tripod and use the built in Cameras to record the videos. However to improve the sound quality I have both a Blue Yeti usb Microphone and a pair of Rode M5 microphones which connect to a Scarlet 2i2 pre-amp and computer interface. One or both of these would be plugged into the USB interfaces on a Raspberry Pi4. The idea is that a Web Client would have a screen to control the recording or otherwise of these Microphones.

Time For A New Pc

I have been on the lookout for a small computer case to replace my aging cube case. The front panel had stopped working, so using it was somewhat awkward wh...

The Making of a Remote Audio Recorder

Pi Record is an application to record audio files from microphones. I am developing it primarily to record from a Blue Yeti USB microphone and from a Focusri...

Allowing Syntax Higlighting In Comments

I have installed the SyntaxHighlighter Evolved plugin to allow me to post snippets of code to my blog. However (as far as I can tell) it does not natively s...

Site Cutover Completed

As you can see, I have now managed to make this site go live. Copying from the system running on my desktop, to the production version couldn’t have been eas...

Switching To Wordpress

As will shortly become apparent as this blog goes live (I am currently editing posts on my test system, but intend to include the posts I am making whilst I ...

Typing a © Symbol

I was trying to type a copyright symbol (©) in Gimp in order to add a watermark to a photograph. I found this quick tip which I would like to share.

Keeping My Personal Data Backup Up

I just read a post on Slashdot asking the question of how to keep personal data safe. The questioner had just returned from Mexico with lots (he said 16GB w...

Webkit Developers Know Best?

In a web application that I am building I need to use a multiple selection <select> list. Because screen space is limited I decided I would set the si...

Its Been A While

It has been a while since I last made a blog entry. Over the past couple of weeks I have been re-instating my web site and collecting the old blog entries an...

Akc Money Revisited

AKC Money is a personal finance management application. It allows users to create accounts, and transactions to and from these accounts, maintaining a balanc...

Playing With Google Analytics

I have been playing with Google Analytics over the past few days to try and understand better who actual access to my web sites are happening.

An Update On Asterisk

This is just a quick blog entry to note that I now have a working environment of a local telephone system, including three telephones inside the house and tw...

Playing With Asterisk

Asterisk is the Open Source PBX software that can manage telephone lines. As well as the classical hardware phones, more importantly for me, it also manages ...

Update to Tomcat 5.5

Last night I updated the underlying server for this web site from Tomcat5 to Tomcat5.5

Next Steps with UserMgr

As the last article hinted, I had hoped to move forward with the web site. The next stage is an update to my UserMgr application.

CSS Holy Grail

I just saw the article In Search of the Holy Grail about how to get a three column site to work reliably in CSS.

Having fun with GIT

It was just yesterday morning that a light came on in my head and I understood just what the index file was for in git. It seemed to strip away the fear that...

AKC Money is Born

At work I got my new laptop last October. But I couldn’t get my Palm Pilot to Sync with it, so was getting increasingly worried that my data, particularly my...

A Little Test Java V Php

I was curious as to the relative speeds on Java versus PHP. So I created a couple of simple applications (see below).

Ibatis V Hibernate

For those that have been following the “Taking the Java plunge” series, you will note that I have chosen iBatis as the framework to use with the database. By...

Open File Formats

The state of Massachusetts is defining that all government documents should be in an open format. Quite right too. Any government department should ensure th...

Backup And Archiving At Home

I have several computers at home, and it is important that they are properly backed up in order to not lose data. I want to show an example of how this is do...

A New Vision For The Desktop

As I start to write this article at the end of March 2005 I have in my head a partially formed vision for how to improve the usability of the Personal Comput...

Software Patients Are Bad For Europe

Since man first invented the wheel, society moves forward technologically by inventors standing on the shoulders of those who came before. This advance in ou...

Debuging Is My Pleasure

About a month ago I decided the time had come to find out why, when I attempted to blank a cd in my cd rewriter, cdrecord (the program I was using to do this...

Wysiwyg v wysiwym

I was thinking the other day about the way we produced documents in the mid 1980’s. It was kicked off by hp setting up a competition to find the oldest laser...

My Open Source Philosophy

It may seem strange that someone who has made his living for over 35 years in the software business, with at least 15 of those years in charge of a product f...