logo

A Mind @ Play

Pipeline Poetry

Pipeline Poetry

A few months ago, I found myself hacking chunks out of a monolithic Python repo to break out a few generic reusable packages. Splitting out the libraries had a number of benefits beyond being able to reuse the code in other places: it gave a much clearer picture of the test coverage, provided a chance to ditch some vestigial code, as well as some impetus to pay off roll over some old technical debt. But one area that gave me a few headaches was getting the packages to play nicely with existing CI/CD pipelines.
3 minutes to read

Lightroom Crashing on Import

Argh! One of those maddening adventures down the digital rabbit hole later, and the solution turned out to be quite simple. Every time I clicked to import files into Lightroom 5.7 (because yes I’m that old) the program crashed without so much as a smell you later. After checking plug-ins, corrupted preferences files and databases, and avoiding various people suggesting I needed to re-install Windows, the solution turned out to be rather straightforward:
One minute to read
Windows 10 Home/Pro

Windows 10 Home/Pro

I recently gave my machine a long overdue brain transplant, but stupidly didn’t consider what would happen to my Windows 10 licence after making a major change to the hardware. Of course, upon booting back up I was greeted with the friendly warning that my OS installation had not yet been activated.

While it is possible to reactivate Windows after a hardware change , this relies on you having linked the licence to your Microsoft account, which I hadn’t done beforehand. Various attempts to troubleshoot the problem just had me going around in circles navigating the same help pages from different angles (“have you tried turning it off and on again?”) And as tempting as it sounded to spend another evening elbow-deep in transistors restoring the status quo ante, there’d be no guarantee that my copy would be activated again with the original hardware in place (anyone know if this is the case?)

3 minutes to read
Commenting memoQ Light Resources

Commenting memoQ Light Resources

Editing memoQ’s light resources can be a painful experience, with somewhat clunky interfaces, intimidating lists, small default window sizes, and the inability to add comments to rules written with regular expressions. Anyone who’s tried to pin down an error in a list of dozens of autotranslatable rules will know the maddening experience of trying to wade through to reams of similar-looking rules to find the culprit, especially as any edited rules are automatically re-added to the bottom of the list, so any initial effort at structuring rules according to their purpose gradually falls apart over time.
2 minutes to read
Migrating phpBB to NodeBB

Migrating phpBB to NodeBB

I recently set about migrating an aging phpBB forum to NodeBB and ran into enough problems that I considered cancelling the whole project.

The phpBB exporter script has been updated various times, and I managed to find a fork which appears to work with phpBB 3.2 . Unfortunately, it refused to install itself correctly and appeared to land in the wrong directory, so I had to manually clone the Github project into the expected subdirectory.

2 minutes to read
memoQ and XSLT: Fun with Namespaces

memoQ and XSLT: Fun with Namespaces

Using memoQ to translate standard XLIFF (XML Localisation Interchange File Format) files can be made that bit more user friendly when you take advantage of the built-in feature to use XSLT transformations . Since I can’t get my head around namespaces, my simple transformation ended up strewn with unreadable references to local-name() nodes. As ever, there is an easier way.

Take a standard XLIFF file along the lines of:

<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns="urn:oasis:names:tc:xliff:document:1.2">
   <file source-language="en" datatype="plaintext" original="Project">
      <header/>
      <body>
         <trans-unit id="string">
            <source>This is the source content.</source>
         </trans-unit>
      </body>
   </file>
</xliff>

We can identify the nodes in the source using standard XPath syntax having defined the namespaces in the header:

2 minutes to read
CPU Throttling

CPU Throttling

Over the past few weeks I’ve had a niggling suspicion that my machine was running slowly. Things felt a little sluggish, sites were less responsive, switching between applications took longer than usual. My machine was showing signs of ageing, despite its relative youth.

Then I tried launching Heroes of the Storm , a game I hadn’t played for a few weeks and which had been updated in the meantime. After getting through the menus and starting a game, the performance gradually plummeted, with the frames per second dropping from around 20 at launch to just 1 when there were a few moving characters on screen at once.

2 minutes to read
Key Literacy

Key Literacy

I’m sitting at the table one morning, hands cradling a warm mug, that rich smell of coffee hanging in the air. The sun is shining down on a brand new day, only the chittering of birds offering their choral backdrop to an otherwise blank canvas. Then a vibration on the windowsill accompanied by a tinny melody. Dad’s calling.

‘The battery in my car key’s dead,’ he tells me, apparently standing in front of his locked car on the car park, desperately pressing the transponder. ‘Can you find the number to call the AA? I can’t get in the car.’

2 minutes to read

Lazarus on Firefox

Lazarus may be risen from the dead, but it looks like he’s now been lain to rest again once and for all. This handy plug-in for Firefox , which stores what you write in input fields and staves off the frustrations of having your work lost should your browser crash, seems to have been abandoned by its author and hasn’t been updated for some time. Each progressive new version of Firefox leaves it a little more broken, to the point where I’ve sadly been left with a button that does nothing more than say ‘Loading…’ in the latest version.
One minute to read