Jamie Balfour

Welcome to my personal website.

Find out more about me, my personal projects, reviews, courses and much more here.

Jamie Balfour'sPersonal blog

Happy New Year, everyone! Welcome 2026! 

My New Year's resolutions are as follows:

  1. 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
  2. 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. 

Here's to another Merry Christmas! 

It's been a while since I uploaded a new version of ZPE, and it's not because I'm done with it or anything. 

ZPE is mature, powerful and robust, and I'm not desperately in need of updating it right now. I am, however, working on adding code blocks to the YASS language but that's not due until the end of December. 

As a result, I've released the version planned for the end of October, which has now been rebranded as ZPE 1.13.11 Walmgate. 

Do you remember what you were doing 20 years ago right now? Probably not. But I do remember 20 years ago, at this point, I was learning to program for the first time. 

My first project was FusionScape (at the time it was called Doors). It was what I called a Desktop Replacement Interface Program (DRIP). FusionScape was awesome; it was well-received and liked, but it was bloated and challenging to maintain. You see, all of the programs built into it had to be updated at the same time. I then decided to separate FusionScape into separate programs. These programs were:

  1. Autorun Express
  2. Data Project (a notebook-like program that was designed for project records)
  3. Cobweb Internet Browser (a web browser with so much more than Internet Explorer or even Firefox at the time)
  4. Painter Pro (my bitmap and vector graphics editor, and the longest-lived of all of these programs)
  5. Quick Quiz
  6. Record Checker
  7. Tutorial Master
  8. Wonderword
  9. VUEBB

Development on Autorun Express was stopped in 2006 when I decided it didn't need anything more and was pretty complete. Data Project development continued until about 2008 or early 2009. Cobweb was in late 2009. Painter Pro was somewhere in early 2010, but I did pick it up again in 2017 until 2018. Quick Quiz was stopped in 2008. Record Checker was in 2009. Tutorial Master was also in 2008. Wonderword was in early 2009, and VUEBB was in late 2008. 

Painter Pro was, by quite a long shot the longest lived of them all. Cobweb received updates for a long time, too, but Painter Pro was my baby. It was powerful and had so many features that no other editors had back then. 

All of my software back then was powered by Balfour's Business Class Library, a class library of tools and features for the .NET platform. It featured controls like Painter Pro's drawing platform, Wonderword's rich-text editor, and Cobweb's Yorkshire Hill browser, which was an extended version of the Trident engine. It actually meant that the software itself, like Painter Pro, was just a graphical extension of the class library, providing access to its features. It was a powerful way to enable direct interoperability between the software. For example, Wonderword could use Painter Pro's drawing features, and Painter Pro could use the Cobweb Yorkshire Hill browser when necessary. 

Wonderword, as feature-rich as it was, never reached the point I wanted it to. I'd always dreamed of writing a page control that had proper pages like in Microsoft Word. That never happened and was the main reason Wonderword development stopped in 2009. 

Wonderword was always my dream. I always wanted to make it into a full-on word processor. It featured so many things that weren't really even in existence back then, and the bookmarking system was absolutely brilliant. 

Now...

And, after all these years, I'm finally revisiting Wonderword. However, as my ZPE Programming Environment, eTraxion, BalfLaf, and more are now written in Java, it's time for me to bring Wonderword to Java with a new philosophy.

I am exceedingly proud to announce that for the last two days, I have been redeveloping Wonderword from the ground up in Java. The paged view was built with the help of AI to speed up development. I will be bringing so much more to Wonderword over the next few weeks, but for now, it's got all that you'd expect from a simple word processor, including the ability to save in DOCX format and text formatting and bookmarks. 

My plan is this: make it more useful than before, whilst making it fully interoperable with other software and file formats. I'm also looking at bringing the WUX2 file format to it, which will be based on the same concept: a broad file format with 'Data Channels'. The following is a list of features I aim to bring to it over the next few weeks:

  1. Opening of DOCX files
  2. Macros written in YASS
  3. More formatting options
  4. Named bookmarks
  5. Headers and footers
  6. Locked view (set by the file itself)
  7. WUX2
  8. Tables
  9. AI dictation mode
  10. Printing support
  11. Image support
  12. Shapes
  13. Built-in Pixabay embedding
  14. Links
  15. Styles
  16. Page breaks
  17. Mail merging
  18. Converting to HTML

Here's a little screenshot of it after a day's development:

Simply put, the Wikipedia page on ZPE has been taken down. The page, initially started by me, had other contributors but apparently didn't have sufficient coverage; therefore, someone decided to remove it. 

As a result, I will no longer be supporting Wikipedia - I have donated £20 from time to time, and now I feel it's a waste of money. I will no longer be doing this, nor will I flag things that I spot across the website.

It's such a difficult thing for any teacher to leave a school where they've done things to improve pupils' outcomes, built great relationships with pupils and staff, or built systems that enhance staff's working day. That's what I feel I did at Knox, and leaving Knox was tough. 

But it was the right thing to do, least of all to allow me to grow as a professional. 

This week, week two, saw me finally start to feel integrated into my faculty (not necessarily the whole school yet, but faculty is enough after one week) and having nice chats with pupils who are already showing me a bit of respect. I've also gained a good understanding of how things work here and have come to accept I am not at Knox anymore. Whilst, of course, I will miss hundreds of pupils who will be there to inspire and support, new pupils will come and take their place. 

However, I must never forget those moments I had at Knox—the school I'd wanted to work at since I was 14. Those memories mean a lot to me.

I cannot believe I'm saying this, but I am. Yesterday, I left Knox for the last time after three and a bit years, and it's been a tough couple of weeks in the lead-up. There are so many wonderful members of staff I've worked with that I'll miss seeing every day. But even more painful is not seeing the pupils who make my day every day. Particularly my National 5 class, who I'm so proud of, but also very sad to be leaving—I'd hoped to stay with them until they left school in S6.

I remember leaving Newbattle 3 and a bit years ago. I initially decided to leave due to an argument with someone. I was planning on leaving mid-term without a job to go to because it destroyed what little remained of my mental health after having COVID just a few days before (and for those who follow my blog, you'll know COVID hit me hard). I stayed for the kids, and it was tough. 

In a previous post on my blog, I posted that I would be rebuilding some of my lessons and focusing on improving them. Ultimately, improvements are centred around three core areas:

  • Quality assurance/moderation of my materials
  • Pupil voice and feedback
  • Changes to the curriculum

One of the first areas I'm working on is tightening my learning intentions and success criteria, with the first step being the introduction of "We are learning to" and "Your success criteria" statements being included in all lessons.

It will be gradual, especially as I will update them as I use them. 

It's now common knowledge across my school at Knox Academy that I am moving to a new school, and whilst this is an extremely exciting moment in my life, it's also extremely sad for me.

I'm sad because I am saying goodbye to the school I've wanted to work at since I was thirteen or fourteen. I'm also very sad to be saying goodbye to an awesome group of staff who have become friends with me whilst I've been working here. And then the pupils.

This week has been particularly tough for me after seeing some of the amazing pupils I teach in tears or nearly in tears after finding out that I am leaving (I keep thinking back to when my teacher, Mrs Muir, left in Primary 3 and how sad I was, so I can relate to how it can be). The hardest thing about leaving Knox was leaving them, and I've actually been in tears each night this week thinking about leaving them.

When I first started at Knox, I'd planned to stay there for as long as I remained a teacher, but I'd promised myself that at the very least I'd be there till my current S4s left. Sadly, that hasn't really happened, and I'm sorry for letting them down. 

People always say that you forget teachers over time, but the truth is, I have always remembered the teacher who inspired me most, Mr Laird, my History teacher in S1 and the person who inspired me most as a teacher. I'll never forget the last day I ever saw him - standing on the desk in tears, saying how much he's going to miss his class and the rest of the pupils that went to see him. I remember all my teachers who inspired me. You don't forget teachers. I always remember the wonderful kids who I've enjoyed teaching the most, too. I remember quite a lot of them from Newbattle, and I could name everyone in my registration class from there still, as they were a fantastic bunch. The same will be true of the kids at Knox.

But I need the new challenge, and my new school is the perfect place for that.

To quote Oasis:

Don't stop being happy
Don't stop your clapping
Don't stop your laughing
Take a piece of life, it's alright
To hold back the night

Powered by DASH 2.0