+++*

Symbolic Forest

A homage to loading screens.

Blog : Post Category : Geekery : Page 1

A walk in the park

Some South Wales railway history that is still around, but not for long

Back on to my complex and fragmentary sequence of posts about the history of the complex and fragmentary South Wales railway network. It was prompted by news that Network Rail are working on upgrading the Ebbw Vale line to allow a better train frequency than once per hour, by widening the line from one track to two for a few miles around Aberbeeg. Changing the track, though, involves changing the signalling, and changing the signalling will involve getting rid of a little island of 19th-century mechanical signalling that still exists in Casnewydd/Newport. It’s the signalbox at Park Junction, in the Gaer area of the city.

Park Junction signalbox

And there it is, with the signals pulled off for an Ebbw Vale train. This picture is from April 2021. It might not look like much from this angle, but if I swing round a bit, you can see that the box is really quite a grand affair for something that only handles a few trains per hour.

Park Junction signalbox

You’d be right to assume that, given the size of the building, it was built to control a much bigger junction than the handful of tracks in front of it today.

I’ve written before about the Monmouthshire Canal Company building a railway all the way back in 1805, to carry coal and iron down the Sirhowy Valley. This is, indeed, on that 1805 route. When, a few decades later, the South Wales Railway was built from Abertawe/Swansea to Casgwent/Chepstow, it burrowed under the Monmouthshire Canal Company’s railway at right-angles, and a complex mesh of interconnecting routes slowly developed. This is a map from around the time of the First World War, after the MCC and SWR had both been bought out by the Great Western, so confusingly both railways are in the same colour.

Railway Clearing House map of the area

The Monmouthshire Canal’s railway runs from left to right, the South Wales Railway from bottom to top, and Park Junction is there on the left. Nowadays, most of the tangle of lines heading towards the docks has gone, and Park Junction is at one corner of a triangle, trains to Cardiff joining the main line at Ebbw Junction and those into Newport joining it at Gaer Junction.

I’ve written previously about that purple line running parallel to the yellow one. That belonged to the company which had extended Newport Docks, the Alexandra (Newport) Dock & Railway Company; and they had built a line from Bassaleg, right alongside the Great Western, so that coal trains coming down the Brecon & Merthyr Railway from Bargoed, Rhymney or Bedwas could reach Newport Docks without paying tolls to the GWR. When they were built, the lines ran around the back of the signalbox, which had nothing at all to do with them. You can see this on a more detailed map from around the same time.

Ordnance Survey 25in map of 1916

Reproduced with permission of the National Library of Scotland, as was the one below.

I’ve made that one a clickthrough because it’s quite detailed; apologies for the horizontal line, but the original is split across two sheets which I’ve roughly stitched together. Three pairs of tracks in front of the box, belonging to the Great Western; and the pair behind it, separate, spreading out into a bank of sidings. About five years after this was surveyed, the Railways Act 1921 merged Newport Docks into the GWR, and within a few years they had put in additional connections at Park Junction, between the lines in front of the box and those that ran behind it.

Ordnance Survey 25in map from the 1930s

Look how much suburbia has grown up in those twenty years, too.

The route through Park Junction lost its passenger services in the early 1960s. Ostensibly this was because British Railways wanted to rearrange the platforms at Newport Station in such a way that there was no space for the Ebbw and Sirhowy Valleys services to turn around; of course, if they had really cared about keeping them, they would have been able to find a way to do it. Back then, there was still heavy freight traffic up and down the valley, from the steel works and the mines; and a large marshalling yard at Rogerstone. Over the following years that traffic dwindled away and shrank, but Park Junction signalbox nevertheless survived, opening a bit less maybe, but still there to signal freight trains up the valley when needed. In the 2000s when the line to Ebbw Vale reopened to passengers, a modern signalling panel was put into one corner of the box to control most of the Ebbw Vale line; but the box still kept its mechanical levers and the tracks past it kept their mechanical semaphore signals, as you can see on the photos above.

Now, in 2022, Park Junction is something of an isolated island given that the main line through Newport is all controlled from the Wales Rail Operating Centre, in Cardiff. When passenger services returned to Ebbw Vale, only one track was kept north of Crosskeys, meaning that the maximum service frequency on the branch is the hour that it takes a train to get from Crosskeys to Ebbw Vale and back down to Crosskeys again. To increase the service means more track; more track means more points and signals; and if you’re putting in more points and signals, it makes sense to move on with the plan to put all of Wales’s signalling into the ROC. So, Park Junction will close, some time over the course of the next few months. It’s a shame, but that’s modernisation for you. I must try to get there again to take more photographs before it goes.

The Paper Archives (part two)

More relics from the past

The previous post in this series is here.

Spending some more time going through the things The Parents should arguably have thrown out decades ago, I came across a leather bag, which seemed to have belonged to my father. Specifically, he seemed to have used it for going to college, in the 1970s. Him being him, he’d never properly cleaned it out, so it had accumulated all manner of things from all across the decade. There were “please explain your non-attendance” slips from 1972; an unread railway society magazine from 1977; and the most recent thing with a date on was an Open University exam paper from 1983. It was about relational database design, and to be honest some of the questions wouldn’t be out of place in a modern exam paper if you asked for the answers in SQL DDL rather than in CODASYL DDL, so I might come back to that and give it its own post. What he scored on the exam, I don’t know. There were coloured pencils, and an unopened packet of gum.

Juicy Fruit gum

It seems to be from before the invention of the Best Before date, but the RRP printed on the side is £0.04.

Slightly more expensive: a rather nice slide rule. Look, it has a Standard Deviation scale and all. Naturally, my dad being my dad, it was still in its case and with the original instruction book, which will be useful if I ever try to work out how to use it.

Slide rule

And finally (for today) I spotted what appeared to be a slip of paper at the bottom of the bag with “NEWTON’S METHOD” written on it in small capitals, in fountain-pen ink. Had he been cheating in his exams? Had he written a crib to the Newton-Raphson method down and slipped it into the bottom of the bag? I pulled it out and…I was wrong.

Paper tape

It was a rolled-up 8-bit paper tape! Presumably with his attempt at a program to numerically solve a particular class of equation using Newton’s method.

I don’t know what type of machine it would have been written for, but I could see that it was likely binary data or text in some unfamiliar encoding, as whichever way around you look at it a good proportion of the high bits would be set so it was unlikely to be ASCII. Assuming I’m holding the tape the right way round, this is a transcription of the first thirty-two bytes…

0A 8D 44 4E C5 A0 35 B8 0A 8D 22 30 A0 59 42 A0 47 4E C9 44 C9 56 C9 44 22 A0 D4 4E C9 D2 50 A0

That’s clearly not ASCII. In fact, I think I know what it might: an 8080/Z80 binary. I recognise those repeated C9 bytes: that’s the opcode for the ret instruction, which has survived all the way through to the modern-day x64 instruction set. If I try to hand-disassemble those few bytes assuming it’s Z80 code we get:

ld a,(bc)
adc a,l
ld b,h
ld c,(hl)
push bc
and b
dec (hl)
cp b
ld a,(bc)
adc a,l

This isn’t the place to go into Z80 assembler syntax—that might be a topic for the future—other than to say that it reads left-to-right and brackets are a pointer dereference, so ld c,(hl) means “put the value in register c into the memory location whose address is in register hl. As valid code it doesn’t look too promising to my eyes—I didn’t even realise dec (hl) was something you could do—but I’ve never been any sort of assembly language expert. The “code” clearly does start off making assumptions about the state of the registers, but on some operating systems that would make sense. This disassembly only takes us as far as the repeated 0A8D, though: maybe that’s some sort of marker separating segments of the file, and the actual code is yet to come. The disassembly continues…

ld (&a030),hl
ld e,c
ld b,d
and b
ld b,a
ld c,(hl)
ret
ld b,h
ret
ld d,(hl)
ret
ld b,h
ld (&a0d4),hl
ld c,(hl)
ret
jp nc,(&a050)

Well, that sort of makes some sort of sense. The instructions that reference fixed addresses all appear to point to a consistent place in the address space. It also implies code and data is in the same address space, in the block starting around &a000 which means you’d expect that some of the binary wouldn’t make sense when decompiled. If this was some other arbitrary data, I’d expect references like that to be scattered around at random locations. As the label says this is an implementation of Newton’s method, we can probably assume that this is a college program that includes an implementation of some mathematical function, an implementation of its first derivative, and the Newton’s method code that calls the first two repeatedly to find a solution for the first. I wouldn’t expect it to be so sophisticated as to be able to operate on any arbitrary function, or to work out the derivative function itself.

If I could find jumps or calls pointing to the instructions after those ret opcodes, I’d be happier. Maybe, if I ever have too much time on my hands, I’ll try to decompile the whole thing.

Crossing the line

Or, just how long can a project take

In England, if you’re a transport nerd, it’s becoming clearer and clearer that London’s “Crossrail” project is almost ready to open. If you’re actually in London, signage is now visible on maps and in stations. On the internet, fairly frequently, you see people posting photos of their behind-the-scenes tours, or of ghost services, or of test exercises. There’s also plenty of speculation as to when it will actually open, because although the opening date is clearly close, it hasn’t actually been fixed yet.

Update, 4th May 2022: See below for an update on the above paragraph.

Because this blog isn’t really London-focused, I last mentioned Crossrail in an aside about fifteen years ago, when the government of the day agreed it could actually go ahead. I said at the time that the plan was about fifteen years old then, which makes it a thirty-year-old project now. However, I was recently reading a book I’d picked up on a second-hand stall and found this:

A description of Crossrail

Hold on while I transliterate that…

Most exciting of the BR schemes considered for London is Crossrail. This would be a counterpart to the RER in Paris or schemes in German cities, with deep-level cross-London links joining Paddington and Liverpool Street on the north and emerging on the Eastern Region east of Bethnal Green; the southern tunnel would mainly be for Central Division services of the Southern Region and join the Victoria routes with the London Bridge route. There would be interchange between the two at Leicester Square. The northern tunnel would have intermediate stations at Paddington, Marble Arch, Oxford Street, Leicester Square, Ludgate Circus and Liverpool Street; the southern at Victoria, Piccadilly, Leicester Square, Blackfriars, Cannon Street and London Bridge. Such a scheme (with closer-spaced stations than the Paris RER) would reduce the demand on buses and the Underground and improve the terminal facilities for suburban trains by giving them a through run. It would be cheap at £300 million, but might be vital to public acceptance of the proposed high-cost daily licensing of private cars in London, along with other projects such as better interchange (Euston—Euston Square is cited) and covered bus stations at key points. Property development schemes, as at Hammersmith and Liverpool Street/Broad Street, might finance modernisation.

In other words, the Crossrail we’re getting now is only part of what was originally on the plans, but is still recognisably the “Crossrail North” described here even if some of the route and station locations are rather different nowadays. It’s also rather telling that the Broad St property development went ahead years before any part of Crossrail was even attempted—within the next few years it’ll turn forty. Even the congestion charge, mooted here, was brought in well before Crossrail was. So when, in that case, was this actually written?

The publication date

This is a description of Crossrail as it stood in 1976!

So when Crossrail does open in a few weeks or months time, and there are innumerable speeches on how this gives London a world-beating transport system, just remember that: it was first planned nearly fifty years ago, in emulation of other schemes. I assume the references to German projects include the Munich Stammstrecke, which is just turning fifty (they opened it for the Olympics) and the Frankfurt City-Tunnel* which opened in 1978. London isn’t leading the world in any way with Crossrail; it’s trailing it by a number of decades.

The book, incidentally, was London’s Lost Railways by Charles Klapper. It’s one of those railway books written in the 1970s by an elderly man who could still when he wrote remember the railways as they were before the Great War. It’s also one of those railway books that must have been printed in vast quantities, because you find it on sale in practically every place that sells second-hand railway books, for about 50p. I’ll likely be donating my copy back to charity once I’ve read it a second time.

Update, 4th May 2022: Crossrail’s opening date was finally announced this morning as May 24th 2022. Only some fourteen-and-a-half years since the Brown government committed to building it.

* That’s actually its name in German.

The astronomy calendar

It's meteor shower time again

Time for me to point out another of those regular events on the astronomical calendar. We’re just coming into the season of the Lyrids meteor shower, which should peak a week on Sunday in the early hours of the morning. So, if you fancy going meteor-spotting, next weekend is your best chance to do it until August. The phase of the moon makes it not too promising this year, but meteor-spotting is one of the easiest and simplest forms of astronomy there is, so if you fancy it and don’t mind being up in the middle of the night, go out and give it a try. The Royal Observatory Greenwich has some advice, but essentially, all you need to do it sit in a dark spot outside, look up at the sky, and relax.

On the map, again

Back to an Ordnance Survey anomaly

Back in 2020, I briefly mentioned a map anomaly that I was going to blog about at some point, but was going to wait until I’d done a bit more research on it. Some of that research I did do, but I still haven’t made it as far as the National Archives, which the OS themselves had pointed me towards. Nevertheless, recently some more useful information on it has been released online, so I thought it might be time to come back to it. The map in question is this one, of New Waltham in North East Lincolnshire, which when this map was published in 1947 didn’t even merit its own name on the map.

New Waltham, 1947

Reproduced with permission of the National Library of Scotland, as were the extracts below.

What is the anomaly? It’s at the railway station. There’s a little curving siding shown, branching off from the Down side of the line (where the station goods yard was) into a field, with a few buildings either side of it. What’s so curious about this? Well, it doesn’t appear on any other maps. At all. Including maps done shortly before or shortly afterwards. So my question was: was it something real on the ground, or was it just a copyright trap?

There were a couple of potential suggestions of an explanation. One—which I think was originally sent in by one of my old Geography teachers—was that it was a temporary siding connected with RAF Waltham (or RAF Grimsby), a nearby Bomber Command base which, interestingly, also isn’t shown on the 1947 map—it should be just on the bottom edge of that map extract, between Waltham and Holton le Clay. RAF Waltham had opened as a civilian airfield with grass strips in 1933, was briefly called Grimsby Airport at one point, and was requisitioned and given concrete runways in 1940. It closed operationally in 1945 as the hurriedly-installed concrete runways weren’t really up to long-term use, although they’re still very visible on the ground today. So was a railway siding briefly put in to help deliver materials or fuel? Well, maybe, but it’s quite a long way between the railway station and the RAF station, and there’s nothing about it in the one book I’ve seen on the history of the RAF station.

The other suggestion was that it was some sort of agricultural railway, of which there were a lot in Lincolnshire. However, there were a couple of issues with this theory. First, it’s not listed in the standard work on the subject, Lincolnshire Potato Railways by Squires. Squires’ book might not be fully comprehensive, because many Lincolnshire agricultural railways were ephemeral, short-lived things that left little trace on the ground, but it is reasonably thorough. Secondly, on the map, it just doesn’t look like an agricultural railway. This is one, a couple of miles away between Humberston and Tetney Lock.

A Lincolnshire agricultural railway

Note the differences. It’s much longer than the tiny siding at Waltham, and it doesn’t follow nice, smooth curves either. It’s laid out for a horse to pull a small wagon or two, so it’s a series of straight lines and sharp bends, likely following field boundaries.

That was the point I got to back in 2020. However, as I said at the top, something new has come up: Historic England have put their Aerial Photo Explorer online. Its collections include a cartographic-quality aerial survey of England made by the RAF in 1955; and that includes this shot of New Waltham.

On this photo, South-West is at the top, with the railway station on the right-hand side midway up the picture. If I rotate the OS map to roughly match the photo’s orientation, it might be easier to line up.

Rotated map of New Waltham

That map covers a slightly wider area than the photo, but you get the idea. The station goods yard stands out very clearly on the photo with a bright white ground surface. It the siding had existed, it would curved through the goods yard and upwards, roughly following the line you can see between two different types of vegetation. Now, although this photo is from about ten years after the siding would have existed, you can see there’s absolutely no evidence of there having been anything following the line of the railway siding on the map. Nothing at all, really, that matches up with what the map says.

So, well, there you go. Without going to look at the detailed survey records in the National Archives, I have to say I’m pretty much convinced: this railway siding was never really there. It was only ever there as a copyright trap, for the Ordnance Survey to spot as a red flag if they saw it appearing on any other maps of the area, and has likely sat there on the map almost completely unnoticed for seventy years. If any evidence comes in that it was a real feature on the ground, I’ll be very very surprised.

Middle earth

Or, a trip on a steam train

A while ago—I can’t find the exact post—I set myself a target of having more posts on here filed under Trains than I do under Political. I think I even said the target I was giving myself was by the end of last year. Well, I’m still clearly a long way off that at the time of writing (58 versus 113) but this is an attempt to make amends. Right at the start of the year, you see, I went out for a trip on the Middleton Railway.

Happy New Year on the Middleton Railway

The Middleton Railway is quite an interesting little line, for its history if nothing else. There are various claimants to the title of “oldest working railway” in various parts of the UK, partly dependent on what counts as a railway and what doesn’t. If you insist steam trains have to be involved, then various branch lines around Darlington usually get the prize, as they opened in 1825 with a mixture of steam trains and horses. If you’re happy with horse-drawn trains, the stretch of the Ebbw Vale line between Rhisga and Pye Corner opened in about 1805. Both of these are lines that carry passengers in main line trains today. If you’re happy with railways that are just for freight, there’s a branch line near Dunfermline that might have had trains on it in the 1760s, although its early history is a little unclear. The Middleton Railway, by contrast, has a definite starting date, as the first railway to be authorised by Parliament, in 1758, during the reign of George II. Moreover, and something that is unusual for a volunteer-run heritage railway, it has operated continuously ever since, switching from commercial to volunteer operations in 1960.*

Of course,** none of the railways I’ve listed above really resemble their original form and the Middleton is no exception to this. In the 19th century it ran from Great Wilson St—roughly where the Crown Point branch of Pets At Home is now—and ran down to, naturally, Middleton. The furthest-south point I’ve found on a map was “Bleachground Engines”, on the 1854 six-inch map, nowadays at the very south end of Middleton where Middleton Park Avenue meets the A654. As the crow flies, it’s a distance of about 3.5 miles. The current Middleton Railway runs for about a mile, from Moor Road to the northern edge of Middleton Park. Moreover, the landscape it runs through has changed entirely, the coal mines it was built for all turned into post-industrial green spaces.

Park Halt

Being built purely as an industrial railway, the Middleton didn’t carry passengers at all until its heritage days. The first passenger trains were run using a hired diesel pulling a second-hand Swansea and Mumbles tramcar.*** Later, they needed proper carriages. Those in the picture are the underframes of old 4-wheeled parcels vans, which the Middleton has rebuilt with completely new bodies to give themselves a passenger rake.

The sheds

Behind the scenes, the Middleton has an awful lot crammed onto a very small site, with their workshops packed full of stuff under restoration. I can imagine shunting things to the right place in the workshop is a bit of a pain. If they didn’t specialise in small ex-industrial locos, they’d hardly have room for any. As it is, everything is jammed in rather tightly, with just enough room inside for people to move around them and actually do the work. I have an old friend who works at the Middleton; he managed to arrange for the both of us to have a little tour behind the scenes, and see the locos under repair, those undergoing major restoration, and the next carriage the railway has started to build.

Inside the workshop

Spare loco in the shed

Running round

We had a few round trips, too, shuttling back and forth along the mile of track. The Middleton Railway might be very different to its original intention, and might run now for a slightly different purpose. It’s still a fascinating place to come and visit, and was an excellent way to start the new year.

Inside the museum building

No public access

Wreathed in steam

* The only other heritage railway that can really claim this is the Talyllyn, which opened in the 1860s. The Ffestiniog has never quite closed, having leased out a short stretch of its track for former customers to use, but their claim is a wee bit of a stretch.

** And unlike the railways in the first footnote.

*** Another early railway: the Swansea and Mumbles, also known as the Oystermouth Railway, was carrying horse-drawn passengers from the first decade of the 19th century. It later essentially became a tram line, and closed just before the Middleton became volunteer-run. If you’ve ever visited the Gower, you have likely travelled by car along part of its route. The tramcar which moved to Leeds was sadly destroyed by arson.

Too tired for meteors

On not seeing the Quadrantids

If you’re into astronomy—or if you were reading this blog this time last year—you might remember that the first week in January is home to one of the big annual meteor showers, the Quadrantids. I still keep meaning to write a blog post about Quadrans Muralis and other forgotten constellations, and I’m sure I will do at some point. Anyway, as I was saying, last night was the Quadrantids’ peak night.

I went outside at 7 or so for an evening walk, and the sky was beautifully clear, with what felt like it would be excellent seeing. Unfortunately, it was also bloody freezing, with a strong wind blowing, and I was exhausted from my first day back at my desk after the long Christmas break. So, an early night, and no Quadrantids for me.

About half two I woke from bad dreams, and considered getting dressed, dragging a garden chair out and going outside. I could hear the wind blowing gustily, though, and howling around the gutters. Moreover, I’d already worked out that the radiant, here, would be in the direction of the worst street-lights in any case. “Maybe not tonight,” I thought, and turned over and tried to get back to sleep.

There will still potentially be meteors to see tonight, of course, and if the seeing is good again I’ll at least consider taking myself outside. I might have to dig out my warmest clothes and put them to one side first, though.

Teaching an image to think

Computers work in unexpected ways

Following on from yesterday’s post about log4j: another security article fascinated me in the last week, too. You might have already seen it, because it was widely shared on Twitter and computer people everywhere were amazed and aghast at its engineering and its possibilities. The log4j vulnerability is a relatively pedestrian one by comparison, using something that is an entirely documented and public feature of the library. This, on the other hand, is a completely different animal.

It’s a hack which lets you run code on a stranger’s iPhone just by sending them a message. They don’t have to click on anything, they don’t even have to open it, all their phone has to do is receive it and the hacker can take their phone over. At least, could: the fix for this security hole was fixed three months ago in iOS 14.8 and later. If you are running an older version of iOS on your phone or tablet, then, er, maybe don’t. The analysis of how this hack works, by Google Project Zero, has started to be published; and if you’re a programming nerd, it is beautiful and amazing and horrific in just the same way that a biological virus is.

In short, this hack relied on the fact that an iOS device, when it receives an animated GIF, tries to hack the GIF a little so it will always loop forever whatever the GIF itself actually says to do. It does this in an unhealthy way, though. When it opens the file to change it, it doesn’t matter if it’s not actually a GIF. The software will try to be clever and say “ah, looks like your file’s got the wrong name there, don’t worry, I still know how to open one of these” and do it. Even if it’s not a GIF and therefore doesn’t really need to.

Secondly, the hack relies on a bug in an open source PDF-reading library, in the part of the code used to open embedded images that are in an obscure and rather out-of-date format mostly used by fax machines. PDF is a big, complex and rambly format (believe me I know, I’ve been on-off trying to write a .NET PDF writing library for some years now) so it’s not surprising there are bugs and holes in PDF-reading software. What this hack does, though, is frankly brilliant. It uses the capabilities of the compression algorithm of this particular graphics format to implement an entire virtual CPU in the memory of the target device. It’s a small CPU but it is a Turing-complete one, which in technical terms mean that if you ignore practical limits of time and memory, it’s just as powerful as any other computer. An entire virtual CPU…created by feeding a carefully-designed image into a buggy image decompression routine.*

Frankly, if you’re a software developer, this is genius. Evil genius, to be sure, but genius nonetheless. I’m somewhat in awe of it, in a dirty way. It’s a wonderful level of lateral thinking, to know that the bug is there to exploit and work out a way to reach it and trip it up to begin with; and then to build an entire virtual machine from the basic Boolean logic operations available inside a particular image format. As I said above, it’s beautiful, it’s amazing, and it’s horrific in the original sense of the word. It’s awe-inspiring. I might be good at my job, but I can only look upon this with amazement and envy.

* I assume the image itself looks like just so much white noise if you could actually view it, but you can’t have everything. It reminds me a little of Neal Stephenson’s early-90s novel Snow Crash, in which a carefully-designed image that looks like white noise can hack the viewer’s brain.

Some logical relief

In which we discuss a topical flaw

In many ways I lead a charmed life and hold a wide range of privileges in my hand. Not least, this week just gone, the fact that I’m a software developer who generally works with the .NET software stack. More specifically, I am not a software developer who works with Java. Java developers have not, generally speaking, been having a good week.

This is all because of a software vulnerability discovered just over a week ago in a Java library called “log4j”. To summarise, for non-experts: “log4j” is a logging library. No, not the let’s-clear-the-rainforests sort. “Logging” means your software writing diagnostic information as it goes along: records such as “user etoainshrdlu asked to see their bank balance at 9.10am from this address with that web browser”. You can see why…

Regular reader E Shrdlu (from Clacton) writes: Oi! You can’t go around giving my bank balance to people!

Hush now, I was just using you as an example! You can see why it’s useful to have this information stored away somewhere, and log4j is a software library that makes it really easy to do. Virtually all Java server-side code out there uses log4j somewhere inside it, to handle this sort of thing.

Unfortunately, log4j has a few handy features that were originally intended to be useful features, but aren’t necessarily a good idea to have running on an internet-facing server that does important work such as process your banking requests. Particularly, in this case, if you put a certain specialist type of URL into a log record, log4j will see it, try to download another program from it, and will then run that program in a certain well-defined way. Of course, you might say, there’s nothing wrong with that because all of the log record messages are just written by the bank’s own software developers, so everything’s perfectly safe. However, as I said above, one thing they may very well be logging is which browser you happen to be using, because that’s very useful diagnostic data if people start having problems. “Which browser you happen to be using”, though, is just a field that you send them, and if you know what you’re doing, you can change it to whatever you want to. Including a special type of URL which will…well, hopefully you get the picture. And now you’re running whatever programs you like on one of your bank’s internal servers. Ah. You can see now why Java developers have not been having a good week.

The fix for this is straightforward, but rolling the fix out will have involved a huge proportion of the Java code running in the world being checked, double-checked, and redeployed when it’s known to be safe. Moreover, all of the developers doing this will have had several queries a day from their managers asking just how much they are exposed to this issue. I know: I’ve had several myself, even though my response is straightforwardly “we don’t run any Java code at all, so don’t worry.” I do tell them to tell the clients we have thoroughly and conscientiously audited our systems because from a client-relations point of view it does sound a bit more professional than “no, and our tech lead is very glad of her career choices”. But it still means plenty of messages for me to answer.

Incidentally, I don’t feel any sort of schadenfreude about this, in case you were wondering. I genuinely feel sorry for a lot of people I know, who will not have had a good week fixing this stuff. I’ve worked in big banks and other similar organisations, and I know a lot of former colleagues and current friends who will have spent the last week focusing on this above all else. It’s not nice when you are suddenly bowled by a risk like this; and moreover, it’s not as if Java is uniquely likely to suffer from this type of problem. There are nuances to this that I may come back to in a later post; but next time something like this happens, the person fixing it might well be me.

The old gods (redux)

Or, looking at the sky again

Back in August I talked about how Jupiter and Saturn were nicely visible in the sky, but not until well after The Children were in bed. Last night, though, we had a rare family conjunction of myself and The Children being in the same place, on a night when it was dark well before their bedtime, with a largely clear sky. So, the telescope came out.

This was the first time The Children had been able to use the telescope this autumn, the first time since a few abortive attempts just after moving house in February. I was impressed, to be honest, how over nine months they have grown that bit more mature to be able to use the telescope a bit better. Last winter, it was difficult to get them to stand still long enough to look through a telescope properly, difficult to get them to look through the eyepiece without grabbing onto it and swinging it out of position, and difficult to get them to wait patiently whilst I aimed and focused it. Now, though, they managed to do that with a few different things. FIrst we looked at Saturn, its rings angled and nicely visible; then at Jupiter and the four Galilean Moons. I couldn’t really see any cloud bands on Jupiter this time, unlike in August, but nevertheless the children were pretty excited.

There was a fair amount of patchy cloud; some constellations were visible but nothing exciting enough to hold The Children’s interest. In any case, it was almost bedtime. I left the telescope set up, though, and after a few hours the clouds had largely cleared and we went outside again. Orion was just rising; we looked at the nebula, and at Betelguese, and the Pleiades. The night sky, still just as it was last winter.