web dev

Simulating win probabilities of the CamelUp boardgame

Camel Up is a deceptively simple board game in which the aim is to predict the outcome of a camel race. I’ll quickly try to explain the game now, although it’s always hard to explain a boardgame without an actual demonstration. The camel movement is randomly generated from dice rolls as follows. Five dice coloured for each of the five camels, each labelled with the numbers 1-3 twice, are placed into a container (decorated as a pyramid, since the game is set in Egypt), which is then shaken.

An interactive Multi-State Modelling Shiny web app

In the last couple of months I’ve been teaching myself about multi-state survival models for use in an upcoming project. While I found the theoretical concepts relatively straight forward, I started having issues when I began to start implementing the models in software. There are many considerations to be made when building a multi-state model, such as: Convert the data into a suitable long format Deciding whether to use either parametric or semi-parametric models Different subsets of the available covariates can be selected for each of the transition hazards In addition, covariates can be forced to have the same hazard ratio on every transition There’s a choice to be made between clock-forward or clock-reset (semi-Markov models) time-scales The Markov assumption can be further violated by including the state arrival times as part of the transition hazard; this often has theoretical justification The baseline hazards can be kept stratified by transition, or certain ones can be assumed to be proportional Needless to say, actually building a model was very time consuming.

Tracking thesis writing progress

It’s gradually getting closer to the three year PhD deadline in which I intend to submit, meaning I’ve got two and a half months to not only finish up my experiments but write up my entire thesis. To help motivate myself to work on this huge document (and definitely not as a form of procrastination) I’ve started recording my writing progress and am publicly displaying the data here. The idea is that I won’t want people (family, supervisors, colleagues) to notice that I’m slacking.

Brief update and future learning thoughts

I haven’t blogged in a while, mainly because I’ve been so busy with teaching work. It’s fantastic experience and very rewarding, but at the same time I find myself sometimes wishing I had more time to do my research, especially now that I’m in my third year. The other day I came across a very well done hierarchical Bayesian modelling approach for football games. I’ve been thinking a lot recently about what area I want to go into for my first post-doc research, and learning standard statistical techniques (including Bayesian methods) is something I’ve been considering.

New website up and running on Drupal

As an update to the last post, in pretty much just a day I’ve gotten my website configured with Drupal and it’s much the same as before. As previously mentioned, I had essentially developed my own CMS originally, which provided very similar functionality to what I’m getting from Drupal now. However now it is much easier to make any changes as I don’t need to mess around with the code, and more importantly, the website is far more robust now.

Drupal wins!

Related to my previous blog post about updating this website, it appears that my current web host don’t offer Python support. This means that until I have the time and energy, this website will still be run by php. This isn’t a big issue but I do want to use Python for everything I can as it is such a brilliant language. Looking at php CMS options it seems that Drupal will be best for me, it may be a little overkill for just a personal website but it’ll be good to know for the future!

Website update in the works

I initially developed this website just to learn a new skill. I wanted to make it from a low level, so I wrote it all from scratch in a text editor with no templates or anything. As it was my first time using PHP, the backend code integrating with the database is rather basic. It’s fine for a small personal website such as this, but now I also manage the website for my hockey league I should probably further these skills and learn better habits.