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

I finally decided to jump away from big towering desktop computers to a more reasonable laptop-based eGPU setup. 

In the next few months, I will begin dismantling my desktop setup which I have had since January 2019. The desktop I currently have has parts that have survived 5 generations of desktop PCs, and some parts in it are as old as 2007. The PSU in it replaced my 10-year-old Corsair HX850 which lasted exactly ten years from when I built my first PC in 2009. It marked the point when I was considering ditching the desktop PC altogether and going down the USB-C-based laptop route which I tried with my Razer Blade Stealth until the screen started to fail.

I have been torn between two laptops that both comply with my environmental concerns and my Right-To-Repair belief. They are the Framework laptop and the HP EliteBook 845 G9. I have mixed feelings about both, but I am more swayed towards the Ryzen processor than an Intel that offers little performance improvements over my brother's Skylake-based computer.

Apple makes many bold claims, not least about it's attitude to the environment. But it also forgets to mention how detrimental Apple is towards the environment when it comes to their laptops. As an owner of several Apple products from a Mac Mini to several MacBook Pros, iPhones, Apple Watches, iPads, Apple TVs and so on, you quickly realise the lack of repairability each of these has. They all have that one thing in common - lack of repairability.

This is, of course, good for Apple, whose core goal is to make as much profit as possible (even though they don't need half of what they have made). Apple will make a nice bit of extra cash when they have to repair devices for users because there is no easy method to do this. 

But it's the planet that suffers. MacBooks cannot even have their batteries replaced by the consumer anymore - meaning that people like me who are experienced and able to do things like replacing drives etc, cannot do this anymore. Most people, including myself, chuck away the old device and get a completely new one because replacing the battery is around about £200 or something crazy.

All of this, is totally against the Right To Repair movement. Proposals for the Right To Repair have emerged in the European Union, which could force companies like Apple to start making their devices more repairable. As an iPhone 14 user who was actually trying to desperately hold on to his iPhone 12 until the iPhone 15 was released (mainly for the USB-C port that will be required by law), I find that Apple's defiance to law is disgraceful. 

I personally will not be buying another MacBook Pro after this one, which is a real shame as I love the device so much, but the fact it lacks repairability (as well as ports) to try and make it as slim as possible is very anti-consumer. As a long time Mac user, I have finally had enough. I will miss macOS but I cannot justify the lack of repairability in Apple's products.

Over the last few days, my work has been focused on finishing off the BalfVote website. 

For those who haven't been keeping an eye on my blog, BalfVote is now available to use freely at balf.vote. The new system allows you to create simple polls that users can access from their devices. It's part of my WISP project and the actual interface that was developed as part of my website has no actual styling. This is why I use this in my presentations - it fits with the theme. 

It's still in very early beta stages but the whole interface from the graphs and the questions works 100% - it's just the creator that still needs work.

In the November 2022 release of ZPE, sockets will be available through the new Socket object! This has been a long-requested feature that was first proposed but scrapped when ZPE became object-oriented. Further to that ZPE 1.10.11 is bringing back the UI object due to issues within the plugin version.

ZPE 1.10.10 already brings the new MQTT object which will soon feature subscription as well as publishing (probably in December). The new MQTT object is actually really awesome and it allows me to automate my house even further than before with ZPE. As always, the core principle behind ZPE is to make features like MQTT more accessible and easier to use, and the socket is no different. Instead of requiring 20 lines of code, ZPE's socket implementation requires just two lines of code.

ZPE 1.10.10 is considerably larger at 1.2MB instead of 960KB as it would have been if not for MQTT. It's still reasonably small, but expect ZPE to get bigger as new features like MQTT get added.

ZPE 1.10.10 will be released today at some point, and the headline feature is MQTT support. 

In case you didn't know, MQTT is built upon the TCP/IP stack and is intended for direct communication in the form of a publish and subscribe system. ZPE now has the ability to publish (not subscribe yet) messages to an endpoint and is fairly straightforward to use (unlike the underlying implementation). 

To use MQTT in ZPE, one uses the MQTT object which encapsulates several built-in functions (connect and publish). More will be published after the release today on using MQTT.

You could write the following code (assuming you have cached values already setup):

YASS
$topic = "comms"
$message = "Hello world!"
$mqtt = new MQTT()
$mqtt->connect("192.168.1.2", 1883, read_cache_value("MQTT_USER"), read_cache_value("MQTT_PASS"))
$mqtt->publish($topic, $message

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.
Powered by DASH 2.0