I don’t actively maintain projects any more, but in this page you can find various software I have built and (usually) freely distributed in the past.
Picaxo 2 (2016) is a rewrite of Picaxo Image Viewer, a lightweight image viewer I wrote in March 2008. It is written in C++ using the cross-platform SDL2 library. It has some basic image processing features, and has been tested on Windows and Linux.
Ultima 1: Revenge
Ultima 1: Revenge is an attempt at reverse engineering Ultima 1 in order to document the game files and create an engine port.
The engine port went through a number of different iterations:
- First engine port in C using SDL (2007)
- Second engine port in C# using XNA (2012)
- Third engine port in C++ using SDL2 (2016)
You can find more information about this project:
- At the BitBucket project page (general info, technical info, source code and downloads from the 2016 iteration)
- At Dino’s Complete Guide to Ultima 1: The First Age of Darkness (technical documentation, as well as info and screenshots at the relevant project section).
- At its project entry at The Ultima Codex (two early XNA demos, as well as technical documentation)
Some utilities classes that I find myself recreating and reusing all the time have been added to NuGet as the Dandago.Utilities package (2016). Some of these are based on my Scope Bound Resource Management article.
My finance library (2015) is a small NuGet package providing common finance-related functionality such as IBAN and credit card validation.
.NET Settings Framework
The .NET Settings Framework (2015) is a mature AppSettings abstraction available via NuGet. The concept behind it was developed over several years and finally released as a proof of concept with well-documented design considerations.
Its primary strengths are in eliminating the boilerplate needed to read and validate AppSettings, and in being a testable framework that fits in well with dependency injection.
It is also designed to cater for more advanced scenarios such as reading settings asynchronously (e.g. from a database).
Since .NET Core has finally brought a robust configuration library to the .NET world, this .NET Settings Framework is no longer necessary.
IMAPTalk (2012-2015) is a simple IMAP client that allows you to talk to IMAP servers by typing in your own commands. It is a learning tool written to allow people to learn more about email technology and how IMAP works.
Despite being made for the purpose of learning IMAP, it works just as well as a diagnostic tool for most line-based internet protocols, including IMAP, POP3, SMTP, HTTP, FTP, chess servers, and possibly others.
Lilly Notes (2014) is an application that allows you to lay out your notes and TODOs into a virtual workspace, in much the same way you would lay out your sticky notes on your physical desk, allowing you to easily brainstorm or visualise your tasks.
My older projects can be seen at Gigi’s Computer Corner:
- The Minesweeper Legacy – a series of Minesweeper clones I wrote over the years as learning exercises.
- Magnetic Pool – an experimental game blending elements of pool and mini-golf, written in Unity3D.
- Deposits System – a system used to manage hotel deposits.
- Picaxo Image Viewer – a lightweight, cross-platform and experimental image viewer written in C back in 2008.
- The Null Neuron Interpreter – a brainfuck interpreter written for fun.