Afterwood

As the Earth closes in on another complete loop of the Sun and one more season of this journal comes to an end we first need to pass through the year's final major holiday - Christmas. This is a magical time of the year for both children and adults as that jolly, larger-then-life fellow in a red suit pays us a visit. Sadly, some of the mystique surrounding how he manages to circumnavigate the globe in such a short period of time has been dispelled due to the event being live streamed by NORAD. Santa's big mistake, like so many of us Internet users, was to accept cookies and now his every move is being tracked. When Google first revealed its 'map/reduce' technology I wondered if industrial espionage might have allowed them to expose one of Santa's biggest secrets, but his tech still remains safe for the time being, although I do wonder if their original motto of 'Don't be Evil' was simply a ploy to get on his good side. One thing’s for sure, Santa must be a big fan of The Gang of Four as he takes the Visitor pattern very seriously.

For those of us in the UK there is the annual disappointment of hoping for a “white” Christmas despite knowing full well that the changing climate has probably put that out of reach for the foreseeable future. Maybe if you can find a couple of ageing mainframe programmers and can antagonise them with a fiendish text manipulation problem you might provoke a SNOBOL fight. Of course, baiting people is not going to earn you a place on Santa's more favourable list, and you can't take a leaf out of the Linux playbook and simply invoke yourself with 'nice', you just have to get on with actually being nice. Some parents try to incentivise their children over the festive period, but we've always preferred the long game; the only ELF you'll find on our shelves lives in the library as a chapter in a book about binary file formats.

If you look close enough Christmas is a time of data structures - lists, maps, and those all-important trees. Santa's choice of a list for the containers of who's been naughty and who's been nice is certainly a curious one, although if there is one data structure that has wildly varying characteristics depending on which programming language you choose it's the humble list - it might be singly linked, doubly linked, or even array-like. With billions of people to manage I can only imagine he uses Big HO notation to choose his implementation wisely. I suspect the reason he checks it twice is due to all those pointers and the need for an address sanitizer. Either way he must be storing our names using narrow strings because it's a time for no L"".

While lists might be the focus for Santa, us mere mortals have trees to contend with. Every year December starts with the difficult task of choosing a tree, but then, even more importantly it needs to be decorated. If there is one thing you can never get agreement on it's how best to traverse it: pre-order, in-order, or post-order?! Being the impetuous sort, the kids like to visit the leaves too early by plastering them with tinsel meaning that the lights have to be surgically inserted later. Despite favouring a trunk-based approach I'm not afraid to admit that feature branches have their place too.

Irrespective of how much effort we put into the upper regions of the tree it's Santa who is responsible for most of what lies around the base. Much like the role of an Enterprise Architect he does little of the work himself, preferring instead to farm it out to the little people. Also like an Enterprise Architect you can always spot those presents he handled himself because of the excessive amount of wrapping. I've always felt elves would probably make good C# and Java programmers due to their expertise with boxing although many are probably destined to work at Microsoft in the Office team as they also seem obsessed with ribbons. At least we haven’t reached the point where requesting presents from Santa has degenerated into raising a JIRA ticket.

By the time we reach our Christmas lunch Santa will be back home and resting after rushing around the globe grappling with time-zones. (Dates are a popular festive snack too though fortunately they only come in two formats – pitted or unpitted.) Lunch in the UK typically consists of turkey, although GOOS is popular with the TDD crowd, along with a varied selection of trimmings, such as credential stuffing for those in the infosec business. They aren’t the only ones battling with crackers though, everyone gets to partake in wearing a thin paper crown and reading out a pitiful Christmas themed joke. For those of you who have never had the (dis)pleasure of pulling crackers then let this episode of Afterwood be my present to you.

Merry Christmas and a happy New Year!

Chris Oldwood
12 November 2022

Biography

Chris is a freelance programmer who started out as a bedroom coder in the 80’s writing assembler on 8-bit micros. These days it's enterprise grade technology in plush corporate offices from the comfort of his breakfast bar. He has resumed commentating on the Godmanchester duck race but continues to be easily distracted by emails and DMs to gort@cix.co.uk and @chrisoldwood.