Skip to content


Advent of Code 2023

I was planning on writing more about this because I spent a bit more time on it this year, but for reasons I won't go into right now I've just not had the energy or inclination to do more, but there are a few comments I think I'd like to make about it and my thoughts on the focus of the puzzles.

Thoughts from a Github Workflow Virgin!

Clickbaity? Maybe, but it's true... I was, until this morning at least, a virgin in terms of Github workflows. Now I'm not and it's been both a simultaneously enjoyable and somewhat infuriating experience popping my workflow cherry, so I figured I'd share my thoughts.

Touch Portal Plug-in Development - My Thoughts

Part of my streaming setup is a program called StreamHelper (SH). This is a Delphi application that does a bunch of stuff including playing music and running scripts for automation. The original interface between Touch Portal (TP) and SH was a unidirectional HTTP request based system. The net result was limited capabilities and a need to refer to the source code to keep looking up the request paths and for things like requesting a song, a need to lookup request params and then the information to put in them by searching through the music lists.

I was aware from the moment I started using Touch Portal that they had a plug-in API but for some reason I put off making one and I kept putting it off until a couple of days ago. This post is a bit of a retrospective on my efforts and a few comments about the API and how I think it could be improved.

AI Helpers - Useful Tool or Security Risk?

The ads for Grammarly are slowly but surely gnawing away at my soul with their frequency... I've seen numerous people mention some fancy 'AI plugin' for VS Code that helps you with your coding and now Speechify, which helps you by reading your documents and emails using AI so you can get more done.

Great, some useful applications of technology that can clearly help you out. But in my mind, these apps and similar raise nothing but security concerns.

Let's Talk About StreamElements

First up, I'd like to be clear... I moved from StreamLabs to StreamElements because I felt it offered a better overall product offering. This is not a complaint about the portion of their product that most people will use (i.e. the overlays, the store, merch etc.) but I do have a big gripe about the API, specifically the lack of good, clear supporting documentation.

Connecting Node.JS To StreamElements WebSocket

If you're planning on using the Streamelements Websockets service to receive realtime notifications of things like tips, merch purchases and stream store redemptions (it can also do follows, cheers, raids, hosts and subs for Twitch), you may find information is a bit thin on the ground, so here's a quick guide to getting connected using TypeScript and Node.js.

Case Sensitivity In Source Code

In case it's not clear from my moniker, in the world of software development Delphi is my preferred weapon of choice and if you're not familiar with it (you should be), the underlying language is Pascal. I've been using Pascal for over 30 years. In this time of COVID-19 lockdowns I've been using my time to learn Typescript, brush up on modern Javascript and familiarise myself with the Node.js ecosystem.

It's been both a rewarding and incredibly frustrating experience (more on the frustrations will be forthcoming as I do plan on an in-depth project post-mortem), but right now I need to ask this question....

Who on God's great earth felt it was a good idea to make any software source code case sensitive?

Delphi Conundrum - What Am I Doing Wrong?

So, I'm working on some of the rendering classes for my latest project and I've encountered an interesting issue that I can't explain and I'd greatly appreciate it if someone could explain to me what it is I'm doing wrong because I just can't see it.