I'm not saying much; this post speaks for itself:
ZPEX
All: 26.449, 24.766, 24.764, 23.458, 24.775, 24.326, 24.694, 23.347, 23.642, 23.805, 23.537, 24.524, 36.397, 27.322, 26.400, 29.528, 26.261, 24.890, 28.138, 35.016, 31.776, 25.566, 24.986, 23.452, 24.375, 23.610, 24.100, 24.536, 24.620, 24.208, 24.343
Python 3
All: 30.093, 30.297, 29.567, 29.024, 29.126, 28.232, 29.098, 29.045, 28.279, 28.109, 29.296, 31.022, 30.010, 29.900, 29.773, 29.896, 29.706, 29.242, 29.819, 30.404, 30.392, 30.285, 30.099, 30.159, 29.626, 30.205, 33.647, 36.448, 34.320, 31.158, 29.901
I shall let this post from my Bluesky account summarise this:
I honestly cannot believe this, but the new ZPEX 1.14.8 has brought compile time right down. I mean, right down, we're talking from ~390ms to 7ms after I made a few little changes here and there! This is one of the most revolutionary moments in ZPE's history.
— BALF (@jamiebalfour.scot) July 18, 2026 at 9:10 PM
This is a remarkable result, and one I most definitely did not expect. ZPE compiles considerably faster due to improvements to the Zenith Parsing Engine (now version 1.6). This also improves:
- The JSON parser - used frequently in the ZPE Runtime Environment (ZRE).
- The CSV parser
- The XML parser
- The TOML parser
- The INI parser
- The JBML parser
- The YAML parser (coming this year)
This is, without a doubt, one of the biggest improvements in ZPE's history, especially in the compiler. This all goes back to ZPE version 1.5.3 back in 2017, when I introduced a separate parser and compiler, which led to performance gains back then. But the next big improvement was tonight's improvement, and I still cannot believe it.
It means that there will likely be no need for any more improvements to the compiler unless they benefit the runtime.
I turned 35 today at 10:30. I'm actually shocked that I'm now half my dad's age as well.

If I look back to my late teens, when my health was grim compared to now, things have improved a lot.
This was, however, also the first birthday without my auntie Deirdre. I still can't believe I don't have her anymore.
Anyway, from tomorrow onwards, I'll be closer to 40 than 30. That's absolutely nuts!
As the title of this post says, I simply cannot believe this is now on macOS.

Given that it already works on Linux, it shows shifting attitudes toward other operating systems with growing user bases.
A couple of days back, I was told that I had been nominated for an award through my company name (which is of course soley me anyway). Well, I won it (I actually found out on the 20th of April). The award is for:
Independent Digital Development Specialist of the Year 2026
Happy New Year, everyone! Welcome 2026!
My New Year's resolutions are as follows:
- Become more environmentally friendly and sustainable - although I do a lot, there's more I can do, I want to try and inspire those around me to do more as well
- Attempt to find a new career

As we get toward the end of 2025, I thought it would be a good idea to look back on 2025 before welcoming 2026. The end of the year is always emotional, either in a good way or a bad way. For me, this year has been mixed.
2025 has not been an awful year like 2010, 2016, or 2021, but it has had some serious downs for me. I'm going to try to go through the months of the year to describe the year as best I can in a couple of sentences, rather than by month.
Firstly, ZPE hit a significant milestone this year when the parser became up to 24% faster, resulting in a much more performant ZPE. This was a substantial improvement for ZPE. Additionally, ZPE also hit 10 years this year in May - something I cannot believe. ZPE also got a new file sandbox security within plugins, and it's really powerful. And the YASS language got labels and goto statements (again), and the editor saw a massive change with the introduction of BalfLaf (a new project of mine that's now applied to all my UIs).
I reintroduced BalfComment as the primary commenting system on my website. As time goes on, I'm going to continue improving this to ensure that comments are automatically moderateable (through AI) to avoid users seeing unsavoury comments.
DragonDocs introduced AI marking last year, but this year it improved considerably. You see, the marking was done on each script individually, whereas now it is done in one, so the marking is consistent. Additionally, the context is retained so that future tests are marked using the same marking strategy as before.
Technology-wise, I did quite a few reviews and got some really cool new tech, including my new Nintendo Switch 2, GPD Pocket 4, iPhone 17 Pro, Apple Watch Ultra 3, my Unfolded Circle Remote 3 and my Zettlab AI NAS D6.
I also moved into my house four years ago, in February. I also got myself a nice little upgrade on the house with my understairs drawers. Speaking of upgrades, I've made a lot of progress on the smart home, with things like my smart front door that locks and unlocks via my watch and my new LED light strip along the back of my house, and I've finally developed a powerful, handy dashboard for my home control tablet at the door.

Although I began planning my move out of teaching and back into my previous career in 2024, 2025 was the year I started putting those plans into action. My aim is that by the end of 2026, the remaining pieces will be in place to allow me to change careers fully. This year also saw me move from my previous school — one I genuinely loved — to a new school. While I do enjoy working there, it doesn’t resonate with me in the same way. A significant positive, however, has been gaining a wonderful colleague who makes day-to-day work far easier and more enjoyable. In a broader sense, not being as emotionally attached to my current school has given me clarity. It reinforces that I’m ready for change, and makes the decision to eventually step away from the profession feel both practical and achievable.
April was a good month overall, though it did include one of the year's most challenging episodes. Following an incident in March, my mum—despite my reassurance that everything was fine—contacted an ambulance. The crew attended, carried out their checks, and confirmed there were no concerns. In April, the hospital requested a follow-up. Although there was no evidence to suggest anything serious, one doctor chose to pursue a possible seizure diagnosis—something that appeared to be based on little more than fatigue. This line of enquiry continued through to June. Thankfully, in July, a different doctor reviewed the original ambulance report, which explicitly stated that no seizure had occurred, and concluded that the earlier assessment was not supported by evidence and could not be substantiated. The drawn-out nature of this episode caused significant disruption to my life and was extremely distressing at the time. Still, it was ultimately resolved after a more thorough, evidence-based review. Ultimately, however, this plagued 2025 as it put so much pressure on me and left me feeling pretty broken.
As if to round off the year properly, my fridge/freezer decided to pack in at the very end of 2025.
So here's to 2026, but let's not forget all of the positives that came from 2025. Let's hope I can get myself sorted next year.
After using Quicksand as my de facto font for my website, web tools, DragonDocs, DragonSlides and my software, it's finally time for a change. I'm now moving everything to Instrument Sands. DASH still hasn't switched to the new font, but I do intend on making it the default font for DASH.
I remember the day I decided to switch to Quicksand very well. My first project to use it was DASH in 2019. I replaced Source Sans Pro on my website after using it extensively for digital literacy materials at my previous school. This experience led me to choose it as my default font for all my projects. Quicksand is still on my website, and I'm hesitant to remove it entirely, so we'll see what happens.
Whilst this may not be as sad for some of you readers, for me, this is a sad day as it's like the end of an era for me in terms of design.
Haddington was tied with Perth for being the happiest place to live in Scotland. I don't disagree, Haddington is a lovely place, and as someone who has lived in this area all my life and spent much of my youth in Haddington, I totally agree.
In the UK, Berwick-upon-Tweed was voted number one. Again, I don't disagree. I visit Berwick-Upon-Tweed once every few months because I love the town (and because it's such a nice drive to it). Other prominent places are York (which I love and visit once a year), Durham and Exeter.

