July 2020
How a non-existent English village ended up on maps, and the implications this has for how we handle information.
Categories: general computing
The built-in cd command in the bash shell is not as smart as it could be; but it's a little fiddly to extend its functionality.
Categories: Linux
A military-surplus steel ammunition box makes a great housing for a high-current, outdoor 12V power supply. This article gives some ideas about how to build one.
Categories: science and technology
An explanation from first principles of this much-misunderstood principle of statical inference.
Categories: mathematics
Java's strict adherence to Unicode standards for text representation ought to make life easier for developers, and usually it does. But not always.
Categories: software development
Volts, amps, ohms, and watts, for complete beginners. This article explains electrical circuit theory in the context of domestic wiring installation.
Categories: science and technology
How character encoding actually works, and the implications for developers of choosing one character set over another.
Categories: software development
Well, perhaps you can play Bach on a piano, if you have the skill and the patience; but you can't hear Bach's music the way he and his contemporaries would have heard it because, in general, we don't using the same tuning schemes. This is an article about the mathematics of music tuning, from Pythagoras to the modern equally-tempered scale.
Categories: mathematics, music
Advice for students on how to do well in university level examinations, fairly and honestly. There are no secrets here, but it's amazing how many students do less well than they should because they haven't understood how university teaching works.
Categories: education
A quick-and-dirty way to make it possible to execute Java JAR files at the prompt, without needing to invoke the JVM.
Categories: software development, Java, Linux
This article describes in detail the steps the Fabric8 Maven plug-in carries out when deploying an application to OpenShift.
Categories: software development, Java, OpenShift
Using the official Raspian repository to assist the construction of a custom Linux for embedded applications is quick and convenient, compared to building everything from source. However, this approach has certain hazards.
Categories: Linux, Raspberry Pi, embedded computing
The GraalVM 'Native Image' plugin has the capability to compile to stand-alone binaries languages like Java that are normally compiled on the fly. This article describes step-by-step how to install GraalVM and the plug-in, and use it on some simple Java examples.
Categories: software development, Java
Some guidance, mostly for students, on how to make a scientific or technical presentation.
Categories: education
Why does Java have a NullPointerException when it doesn't support pointers? Why does the equality operator compare object references, but the collections framework comparison methods compare object contents? These questions and many more like them will comprehensively fail to be answered in this article.
Categories: software development, Java
Developers don't use @Override enough. Java's method visibility rules, when classes are in different packages, make polymorphic inheritance behave in odd ways. Careful use of @Override can prevent these problems, and make applications much easier to maintain.
Categories: software development, Java
Although the Java Media Framework can do some very sophisticated things, it remains relatively difficult to generate simple musical tones using Java. The de-facto method for specifying musical notes remains the MIDI file, although there are now more sophisticated approaches. It's surprisingly difficult to generate even a simple MIDI file in Java, not least because of the lack of unsigned data types. I wrote this article years (perhaps decades) ago, but it's recently become popular again, because of the use of Java in Android, and the lack of any Java API in Android for playing musical tones, other than by reading a MIDI file.
Categories: software development, music, Java
A quick-start guide that highlights the similarities and differences between the Java and Perl programming languages.
Categories: software development, Java, Perl
An explanation from first principles of the concepts of probability applied to two random discrete variables.
Categories: mathematics
This article outlines, with step-by-step examples, how to carry out the most fundamental Linux storage management tasks: partitioning a disk, creating a filesystem, setting up swap space, managing a logical volume management (LVM) storage pool, and configuring a RAID mirror.
Categories: Linux
The essentials of Lua programming in one page, for experienced Java programmers.
Categories: software development, Java, Lua
Lua is an embeddable scripting language, which can be extended in a number of useful ways. This article describes in detail how to create a Lua extension in C (or, with a bit of fiddling, C++) as a loadable (.so) library.
Categories: software development, Lua, C
Using a single MOSFET transistor for power switching in microcontroller applications is simple and low-cost, but it often doesn't work as well as expected. Either the switched device doesn't run at full capacity, or the MOSFET gets hot. This article explains why.
Categories: Raspberry Pi, electronics, embedded computing
It's surprisingly difficult to detect switch actuations in a robust way, dealing with contact bounce and other quirks. This article describes one approach to the problem in C.
Categories: Raspberry Pi, electronics, embedded computing
Faster, more of everything, same price -- what's not to like?
Categories: Raspberry Pi
Using high-density vinyl board to construct a practical prototype case without specialist tools or materials
Categories: Raspberry Pi
The official Raspberry Pi 7-inch touchscreen is a useful and well-designed piece of equipment but, if you're using it in a custom (hardware and/or software) build, you'll notice a lack of any relevant technical information. This article tries to supply some of that information.
Categories: Raspberry Pi, electronics, embedded computing
Oh yes it's great to be an engine... But how did the driving force of the industrial revolution actually work?
Categories: science and technology
This article is about whether you can legally and openly buy a British noble title. Spoiler alert: no, you can't. People still keep asking, though.
Categories: law
An exploration of various aspects of English law, as they apply to the owners and managers of small, private woodlands.
Categories: law
Using a simple application of Euler's method to estimate the solutions of non-linear differential equations, and work out your chances of surviving the zombie apocalypse. No, really.
Categories: mathematics
An introduction to the science of exterior ballistics -- tracking the flight of a projectile under the influence of gravity and drag.
Categories: mathematics