Dark theme

Introduction

These days I mainly program in Java, Python 3 (and 2), and JavaScript, but over the years I've used C, C++, VB, VB.Net, Pascal, TurboPascal, Delphi, FORTRAN 77, Fortran 90/95, Perl, PHP, and Bash script, along with more application-specific languages like MicroPython, Processing, and Arduino C. I've also a small amount of experience in C# and Blueprint. I've taught a number of these languages at university level, as well as various aspects of software development and security.

Much of my programming has been aimed at Agent Based Models (ABM), which are a form of artificial life used (in my case) to run social and environmental simulations. I was involved in some of the earliest realistic economic simulations using ABM, some of the earliest properly parallel modelling of real systems using ABM, and have recently been pushing forward dynamic calibration of ABM models using data streams. I've also talked a lot about the ethics of ABM, especially for modelling crime.

The other think I'm interested in is capturing vague or fuzzy 'vernacular' objects (things like the area "downtown" in the phrase "I'm going down downtown"), and how we use them in decision making, and I've been involved in building online systems to capture this kind of information, including the first "fuzzy" mapping system.

A lot of my early work was in web-based mapping and its use to improve democracy and planning, including developing the first web-based map that users could upload information into. When I built my first webpage, back when I was a PhD student, there were only 200 sites on the WWW – tell that to the kids of today... I've also been involved in building neural networks for flood prediction: essentially taking artificial replications of how the brain works, and training them to recognise when rain will cause floods.

You can find some of my programming on my GitHub profile, but most of it is uploaded under the University of Leeds MASS and Quantitative Criminology Groups. I developed the MASS group and chivvied it along for 17 years; recently we've been running a a Friday afternoon Coding Club, working on socially useful projects and supporting coders who are starting out.

Coding related

Most of my writing on coding is in my course materials and tutorials, but I've also written a few pieces for various blogs.

...and some bits for teaching...

Until recently I co-ran the International GeoComputation Conference Series and I led organising the 21st Birthday Conference in Leeds; we tried to do some more unusual stuff than you see at most academic conferences, including a crowd-sourced keynote, an algorave, and a MicroPython competition.