Mono Lake alkali flies in JavaScript

We recently went on a fantastic family camping trip to California, travelling round various National and State Parks. One of the places we saw was Mono Lake. There are lots of interesting aspects to Mono Lake, but this post concentrates on one of them: the vast numbers of alkali flies which live on the waterline. This video (by YouTube user Jeff Lowe) gives a good impression of their behaviour, and of the beautiful scenery which they inhabit: Walking along, your feet set off ‘waves’ of jumping flies, interrupting the flies’ normal meandering. I wondered whether it would be possible to create a simulation of the flies which captured some of this behaviour. In a modern browser, there should be a

Continue reading

Guess Poo: An application of nearly-orthogonal fractional factorial design

We have the game ‘Guess Who’, which comes with a selection of sheets to play variants of the original game. In a flash of comedy inspiration, my eldest, Meg, and I thought it would be excellent if there was a game called ‘Guess Poo‘. In Guess Poo, instead of trying to identify faces, you have to identify faeces. We therefore set about designing drop-in sheets for our game. (‘Guess Who’ is probably a trademark of Hasbro or Milton Bradley, and I would be very surprised indeed if either of them endorsed this post.) Choice of characteristics In the original, the faces have different values for various characteristics, such as hair colour, whether they wear glasses, gender, and so on. It

Continue reading

Faint amusement from arrows

In logic, we talk about propositions, giving them names, say p or q. For example, p might be the proposition ‘it is raining’, and q the proposition ‘I will get wet’. Then to represent the proposition ‘if it is raining then I will get wet’, we can say ‘p IMPLIES q‘, which is often written with a double-arrow: p ⇒ q. In ASCII, this can be approximated by ‘p => q‘. In full, this operator has the following truth table: p q p => q T T T T F F F T T F F T (This appears slightly strange, but the only way we can disprove the claim ‘p implies q‘ is if p happens but q doesn’t.) In many programming languages,

Continue reading

Post-specific Javascript and CSS in WordPress

A couple of recent posts here — An oscillator from a jam-jar lid The value of a second opinion — required some post-specific Javascript and CSS styling. It took me a little while to figure out how to achieve this, given my limited exposure to PHP in general and WordPress programming in particular. This is how I went about it; there may well be better ways. Start writing post At this point your draft is assigned a post-ID. This is the value at the end of the post’s URL. For example, this post has URL https://redfrontdoor.org/blog/?p=970 and its post-ID is 970. Write post-specific Javascript Make a self-contained Javascript file, wrapping the logic in jQuery(document).ready(function($) { // [… code goes here

Continue reading

Failure: playing video from audio cassette

The idea for this project came from a few different places: Curiosity about how cable modems actually transmit ones and zeros along the coax cable. This led to some reading about the various modulation methods used. Code I’d written to read the data on cassette tapes containing files from the Dragon 32 computer of my youth. (Including this one.) The modulation here is fairly simple, being one cycle of a certain tone for a ‘0’ and one cycle of a different tone for a ‘1’. Some fairly superficial reading about video codecs. I wondered what could be achieved with cable-modem-style modulation techniques in the way of putting data onto audio cassette tapes. In particular: could you read enough bits per second

Continue reading

Free Software collaboration at the National Library of Ireland

RTE recently carried a news piece announcing the release of a large volume of historical digital images by the National Library of Ireland. One detail in the piece caught my eye: it quoted the library’s Digitisation Programme Manager Sara Smyth as saying Since 2010, we have overhauled our digitisation workflows and put in place key technical infrastructures. We achieved this with limited full time technical resources and a very restricted budget by collaborating on international open source projects. (emphasis added). This sounded like a great thing. I wondered what projects these were, so emailed Ms Smyth. She and a colleague wrote back, kindly supplying plenty of detail, which this post reports. Engagement with open source projects generally Perhaps unsurprisingly, Systems

Continue reading