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've had shares in Tesla since the middle of last year and bought them at approximately £144. Today, I decided to sell all 25. Each share was now worth £346, meaning a profit of £202 per share! This is only the second company which has been highly profitable, after selling my shares in AMD for five times more than I paid for them.

This is why I think it's important that when you've got some spare cash, invest it into big companies like this! The return I got today was incredible! 

Though don't take my advice as I've messed up in the past with investments that didn't work out.

The next version of ZPE, version 1.12.12, will introduce the new ZPE Performance Enhanced Cache (ZPEC). ZPEC will improve the performance of applications run through the -r ZAC by precompiling the application's bytecodes into a small file. The cached version will be stored in the ZPE folder as an unoptimised compiled program to make it as similar as the code it is based on.

The next time the program is run, ZPE will perform a cache lookup and, if the file exists, run it. If a cache miss occurs, it will compile and store the file in the cache and then run it.

It then performs some hashing to decide if the compiled program needs to be updated. 

ZPE nightly was introduced so that when a change to any version of ZPE was made, the download would automatically be the latest version. Ultimately, nightly was supposed to be the latest, but it was not necessarily the most stable version of ZPE. Alas, the plan to deliver this didn't really work as it relied on my laptop being on. 

The good news is that now, ZPE nightly is the most up-to-date commit on my GitHub. Once I commit to GitHub, the nightly will always be the ZPE that's on there. This means you can try out the latest and greatest ZPE anytime. You can head to my Download Center to download the newest version right away.

My website's function information on ZPE isn't always up to date with the internal function information from ZPE.

Well, from now on, the function information string will be automatically updated to align with ZPE. This is a big update that should hopefully make it easier in the future for me to update ZPE.

The latest version of ZPE brings many changes that improve its performance while adding new and additional features to make the language even easier to work with. 

Let's start with that, then. ZPE introduces function tooltips that allow you to hover over a function within the code and read a quick overview of that function, its parameters, and its return type(s). 

The latest version also adds support for $-unbound parameters within function definitions, changes the way objects are passed across (they are always by reference, never copied), and changes the underlying ZPE class to the ZPEMain class and the ZPE class, separating logic from the startup features.

There's also a new internal object for Pairs and the function keyword that has been used for declaring a function type is now separate and is fn.

It's been a long time (nine years) since I posted my last YouTube video review, so I think it's time for me to return. This time, I will focus on software and web development tutorials. 

But I'm also going to livestream again. I'm aiming to rebuild my YouTube account, so if you're interested, you can follow my channel at balf.io/youtube

Since moving to my current house three and a half years ago, I have done many things to improve my home's technology.

I love my house; it's just perfect for me. It's close to work, in a place I always loved growing up, and somewhere I've known since I was a kid. That's why I've worked hard to improve my home more and more, and thanks to Colin coming round to assist me the other day, I've been able to tidy up the front cupboard finally (whilst I do know how to wire an RJ45 keystone and put cables through the wall, my good friend Colin is far more experienced).

But now, the next big thing I've been planning is upgrading the house to at least 2.5Gbe, as it makes no sense now that I have a fibre connection providing 1.6Gbps. After 1.6Gbps, the next upgrade is 2.2Gbps, so I'd need to consider this the last upgrade available on 2.5Gbe. The solution for computers is easy since most computers I own have a Thunderbolt port capable of up to 10Gbps at the minimum, though most are 40Gbps Thunderbolt 3 or Thunderbolt 4. I also have some computers that have 2.5Gbe on them. 

For me, this means ensuring that all cables are at least CAT6a around the house, updating the router (out of my hands at the moment) and ensuring all my switches are cable of 2.5Gbe.

I will continue to update my followers with what happens out of this.

When I first started blogging in 2009, I was asked if HDMI could accept input and output over the same connector (not precisely at the same time). Of course, a graphics card with an HDMI port on it is most likely only for video output and not video input. Of course, the answer, therefore, was no.

But why not? 

Well, the answer is that it's just not been implemented. That's because HDMI was never designed this way. Usually, when a connector (such as USB-C) is bidirectional, a handshake protocol is implemented that decides the connector's data flow. 

Some features of HDMI, like Audio Return Channel (ARC) and Consumer Electronics Control (CEC), are, of course, bidirectional; for CEC, for example, the device can control a TV, and the TV can also control the device, and for ARC, the audio can be sent back to the device.

When I chilled out today, I realised that building multiple return values into ZPE would be easier than I thought.

That's because the new tuple syntax already works with that. So, without further ado, the latest version of YASS, YASS 24.10, supports the new multiple return values syntax:

function multiReturn()
  return 1, 3, 5
end function
($x, $y, $z) = multiReturn()

YASS 24.10 may be one of the final updates to the YASS language for a while. That's because its syntax is pretty perfect now.

I'm excited by what multiple return values brings to the YASS language.

Last week, I came across a potential means to add AI support to ZPE. This AI support could lead to better error reporting, code generation in the editor, syntax checking, or perhaps even for use within code.

I wanted to use this post to state that this is potentially on the cards.

Powered by DASH 2.0