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

Jamie Balfour'sPersonal blog

Tonight I managed to recover my home server after it encountered a fsck issue. I'm going to say, when I had this issue I shouted the word it resembles. However, it was easy to recover from, since I DD my machine every day onto a separate location. The problem is, that downloading the image, for backup purposes, took forever. This is because the image is 40GB. 

My network is a mix of gigabit and 2.5 gigabit Ethernet and with my new gaming PC will be even more 2.5 gigabit. This causes slow downs for example when transferring from the home server to my MacBook (the server is only gigabit).

However, over the next few months, I will begin the transition to 10 gigabit Ethernet across the house for certain things like my PCs. I will be documenting this as I go along with it so follow my blog to find out more!

ZPE's codenames have been a continuing tradition, and since I announced version 1.10.x codenames I have been following a once a month release cycle, the same will happen with ZPE 1.11.x.

However, there will be a change. Instead of just being given a codename, each version will ditch the version number from the name and will instead use the codenames as the version. The version numbers will still increment, but will not be as prominent as the names. The names are yet to be decided but the first version, aka ZPE 1.11.x will be called ZPE Omega. ZPE will also keep codenames between versions in the future, so ZPE 1.11.1 may share a codename with ZPE 1.11.2 and so on. 

The headline feature of ZPE 1.10.10, known as Lusty Lion, will be MQTT support. As an MQTT user myself, having MQTT support in ZPE will be a welcome addition. ZPE 1.10.10 will also reintroduce the MySQL features to ZPE.

ZPE 1.10.10 will also introduce minor performance improvements and will be the second version that will be available in native images as well as a JAR.

Another great week ended with me getting a little certificate - completely out of the blue. This certificate was to say how well I'd managed to settle into my new school, which without a doubt I feel I have. I've never actually been happier in any other job, I really love the place and my department are amazing! 

This certificate is another one of those little reasons that reminds me why I love my school - I not only feel very appreciated and welcome, but I also know that I made the right choice coming here, even if at first it was a difficult one because I liked where I was before.

I really wanted to simply outline what I thought of the latest Nintendo Direct, which blew my mind.

There were three staple elements that made this Nintendo Direct so amazing. Those three announcements were:

  • The Nintendo 64 games - I was over the moon to see a good old classic, Pokemon Stadium, is coming to the Nintendo Switch, and I was just as over the moon with the announcement of Pokemon Stadium 2, but I was even more over the moon with the announcement that Goldeneye was coming to the Switch also.
  • Pikmin 4 - I've enjoyed Pikmin since 2002 when the first version came out - heck that feels a long time ago as I was still in primary school! Pikmin 3 was one of my favourite games of all time - it was just an awesome culmination of a strategy game that works so well with a controller.
  • Legend of Zelda - I've always loved Zelda since OoT was one of the first games I owned. I cannot wait for another Zelda game. Enough said.

Let's be clear from the start, it was obvious that the native build of ZPE was going to have better performance, but I wasn't entirely sure of how much better the performance was going to be until I compiled the latest version and tested it.

The native version is considerable faster when it processed loops. Here is an example of a 100,000 iteration loop running on the Java version first, then the native version. Both are running on an M1 Mac with the native version compiled for aarch64.

And with the ZPE Standard Library the comparison is made even clearer:

Whilst ZPE native is faster than the JRE ZPE, it's important to know that its feature set is not complete. I am working on improving this and the native binaries may become the future of ZPE, but at present, they have bugs (for example the sound features do not work).

Performance is now gaining on that of PHP with loops in particular.

After 5 years of development, the Zenith Parsing Engine is now being separated from the main ZPE application. This will make it easier to write compilers using it. As a result, I also intend to make separate JSON, XML and CSV compilers based on this. 

The reason for this is that I feel the Zenith Parsing Engine could be better utilised in other applications than including the whole package.

The very first version not to include the parser natively will be version 1.10.9, aka Lusty Lion.

BalfVote is my latest addition to my WISP. Developed in a couple of hours, I developed a tool that I want to use in my classroom. Since I have already moved away from using Google Slides and to slides.com, which gives you much more granuallar control over the HTML and CSS on the pages, I have already made the change to a more consistent set of slides - all hosted on my website. I have also been creative with my interactivity in my lessons, for example in one lesson the pupils must provide the correct answer and when they do, the text box highlights green, whereas if they get it wrong it goes red. Other lessons have timers built-in to them, or quizzes built with BalfQuiz and much more. By having the ability to embed iframes and HTML I can do anything I want. 

As you'll know, being a dual-typed being, an educational practioner (aka teacher) and a computer scientist, I like to mix my skills together and come up with ideas that can really change and inspire children and over the last year my focus has been making my lessons more digital and more interactive. I mainly focused on moving away from standard PowerPoint based lessons, to more online tools such as Google Slides. I then opted to have much more control over my content so moved back to slides.com (I have been creating presentations with reveal.js since 2016). slides.com is only part of the picture as it helps me to make the slides and export them to HTML. I made a lot of the features I have in my lessons myself. And my slideshow player is where the magic happens. I have tons of features in JavaScript, CSS and PHP powering them. This makes my lessons consistent and very functional, but also engaging. 

This is exactly what BalfVote aims to do. By asking pupils questions regularly throughout a lesson I can guage how well the class is understanding a concept. Coming very soon is an option to have right and wrong answers too, which can make this more like a quiz. 

Head on over to balf.vote to find out more.

There are plenty more innovations like this coming, so keep an eye on my blog!

ZPE is now available in native format!

Unlike previous operating-specific versions, these are not bundles but are actual binaries. They are compiled from the original JAR using GraalVM and native-image to improve performance. As a result, they are considerably larger files but also faster than the previous versions. A Linux version will also be available very soon. The JAR version will continue to be available and will remain as the primary version for those wanting the easiest of the installations.

As for Windows, I'm not sure when it will be available, since I only have one machine running Windows and I don't intend to turn it on to solely compile ZPE.

BalfBar version 1.5 is a massive update, making performance improvements, changing the way it works underneath, and adding features that make it much easier to set up and more stable than previous versions.

Version 1.5's headline feature is that it removes animations from JavaScript and moves them solely to CSS. The other feature that is now completely departing is the hover class that is added to items. This was added to help support older browsers but also was used in the older versions to decide whether to keep the menu open or not. BalfBar now also adds a new menu_open class to the main BalfBar item which is added when a menu is opened. 

I have already deployed the updated version to my website, so take a look to see what I mean.

Powered by DASH 2.0