Hi, I'm Cameron. I live for investigating, understanding, and solving problems. This site is half for me to show off things that may be interesting or useful, and half for me to learn how to use Jekyll for other projects of mine.

This is my personal website. Currently under construction!

JSim Progress Report 1

March 24, 2021

This is the first progress report for JSim. I've been busy so the work has been slow, but there are very important usability improvements. It is still only a rough approximation of Jeopardy, but it is now a reasonable task for someone to host that approximation. [read more]

JSim Beginnings

March 13, 2021

I've been working on an online Jeopardy simulator recently after returning to the project from a multiple-year break. Here I give a small progress update, explain the (current) flow of the game, and lay out some of the features and changes I would like to make down the road. [read more]

Learning to Love Darktable

February 25, 2021

I can no longer use Lightroom, so my RAW files have been sitting unused on my computer for months. I make my second attempt to use Darkroom, a FOSS Lightroom-like program for processing RAW files and managing photos. Like much FOSS, it has a bit of a learning curve but teaches me more than any other tool has yet. [read more]

Improving the Autoencoder: Batch Normalization

February 6, 2021

To squeeze more performance out of the original network, I try normalizing the inputs and applying batch normalization at appropriate hidden layers. I don't worry too much about tuning the models here as they are only for the purpose of becoming familiar with the data. [read more]

Autoencoders and Pokemon

January 28, 2021

I've operated a chat bot on Pokemon Showdown! for about six years. Many years ago it was able to participate in battles, but due to many subsequent rewrites and changes to the website's message protocol it has lost that ability. I have been thinking of bringing that functionality back, and thought it would be excellent experience to not only make it able to battle, but also use machine learning to do so in place of my previous decision algorithm.

To start on the journey, I decided to make a simple autoencoder to reduce the number of features that must be used to represent a Pokemon. This embedding could then be used in a future model, and it will also give me experience working with the Pokemon data. I first try PCA as a benchmark, then see how much better I can do with an autoencoder. [read more]

Colourscheme Generation

January 18, 2021

I've always enjoyed having a wide range of desktop backgrounds to choose from, but now that I use a tiling window manager with transparency on non-focused windows, I see my background more than ever. It became clear that the colourscheme I was using (Solarized) wouldn't match my all of my backgrounds (or many at all). I had to either live with it, or change my colourscheme every time I changed my backround. Naturally I chose the latter.

Unfortunately I don't have an eye for colour and it would change what should be a single line in my terminal into a tedious process of picking out colours whenever I wanted to change backgrounds. So, I turned to automatically generated colourschemes; while I'm aware of existing scripts for this I wanted to make something that did exactly what I wanted, how I thought it should be done. [read more]