Corran Webster

Do Not Call Up That Which You Cannot Put Down

2023-02-18

This admonition, which I first ran across in Charles Stross' excellent Laundry Files series (but which seems to have originated in the much more problematic work of H.P. Lovecraft), is all about making sure that when you summon an Eldritch Abomination to do your bidding that you can also send it back from whence it came.

This is also true of resources that you use in software.

Read more...

Python Build Backends

2023-02-11

In which we look at the history of building Python packages, the new build backend systems, and a trick that lets you extend your chosen build backend when it doesn't quite do enough.

Read more...

Sound in Python

2023-02-04

I've been playing around with producing sound in Python using the scientific Python toolset for a number of years. In fact rather than buying a white noise generator for my wife about 10 years ago, I just generated a 15 minute sample of white noise with NumPy and SciPy and threw it on an old iPod we had hanging around - and she's still using it. One of the salesfolk at work described this as "the most Enthought thing" she'd ever heard.

Read more...

Observers in Python

2023-01-29

The observer pattern is one of the original patterns identified in Design Patterns. The core idea is that an object can notify other objects when their state changes. Because the formal presentation of patterns tend to come from languages like C++ and Java, the presentation tends to be somewhat verbose and not particularly intuitive to use.

Read more...

Hamurabi

2023-01-22

In the early days of the personal computer revolution, in the late 70s and early 80s, there was no common automated way for the new personal computers to communicate to one another. Floppy drives were expensive and hard drives even more so, modems were rare and slow, and while you could save data out to cassette tape on most of these early computers reading it back was unreliable. For many of these computers the way you got a program from one computer to another was, at least for hobbyists, to print out the code and manually type it in to another one. There was a small industry of publications–both magazines and books–that printed program listings for games, often in written in BASIC, that you could type in and then play.

An example of this sort of game, found in many different variants (due to the different implementations of BASIC on different machines) is a game called “Hamurabi” (note the spelling: filenames were often limited to 8 characters). This is an early simulation game and ancestor in some sense of games like SimCity and Civilization, although obviously far simpler.

Read more...

A Refactor and a Reboot

2023-01-21

After over a decade of neglect I'm looking at revamping the website, getting rid of things which are no-longer relevant, and perhaps using this to highlight my work and interests a little more. During that decade there's been a lot of life happening: we've had a second child, moved country, and my work has changed to involve a lot more management.

Read more...

Modern Group Theory on Github

2011-11-17

I've released a set of group theory notes I wrote on Github.

Read more...