To use this website fully, you first need to accept the use of cookies. By agreeing to the use of cookies you consent to the use of functional cookies. For more information read this page.

Personal Blog

So it's that time in my life where I change browser again, which seems to be a regular thing for me. So much so that in my bookmarks folder there is a folder called Imported from Firefox which contains a folder called From Google Chrome which contains a folder called Imported from Safari which contains a folder called Imported from IE. 😂

Chrome 76 is just around the corner, looking to a July 30th release this year, and it brings about a feature that the latest version of Firefox also includes. I speak of dark mode.

Dark mode is becoming a more and more popular thing with websites these days. And rightly so since developers like myself tend to be more drawn to the dark interfaces in the development programs (IDEs and text editors) that we use for the majority of our work. Well, now it's coming to browsers and Firefox already has it implemented. 

Twitter and Facebook etc all have their own dark modes, but they are not implemented how it should be. The dark mode should be based on the operating system - both Windows 10 and macOS implement a system-wide dark mode that applications should be implementing too. 

Chrome 76 Beta implements this. For those who follow me on my website, you may know that a few weeks ago I implemented my own version of dark mode that follows the operating system's dark mode preferences. If the browser has the feature it will turn dark too.

Here's my website in dark mode in Chrome 76:

Posted by J B Balfour in Web design
dark mode
chrome

ZPE 1.8.x might still be over six months before it's initial release following the 1 minor version per year system, but I always like to have my codenames for the versions lined up. So here's the list:

  • 1.8.1 - Quinn
  • 1.8.2 - Hunter
  • 1.8.3 - Reynolds
  • 1.8.4 - Evershed
  • 1.8.5 - Carter
  • 1.8.6 - Younis
  • 1.8.7 - Portman
  • 1.8.8 - Myres
  • 1.8.9 - James
  • 1.8.10 - Kaplan
  • 1.8.11 - North
  • 1.8.12 - Levendis
  • 1.8.13 - Bailey
  • 1.8.14 - Reed
  • 1.8.15 - Watts
  • 1.8.16 - Pearce

Now try and tell me where these names come from.

ZPE 1.7.8 focuses on a bunch of things but it's main focus is on the compiler.

ZPE 1.7.8 has new compiler optimisations that take a bit of strain from the interpreter and put more on the much faster compiler. These changes do not affect interpreted programs but affect ones compiled to a file such as the standard library. One of the first things that was changed is that compiler now removed assertions from a compiled program (these are only needed when the program is tested). Secondly, mathematical operations are now optimised so that operations that would come first are moved to the first place in the operation. Finally, inherited structures now are created at compile time rather than runtime.

I'm hoping to have 1.7.8 out by the end of the month, but it will all depend on how much other work I end up having to do as I'm quite a busy web dev at the moment.

zpe 1.7.8

Although I would never spend the amount of money required to get a Mac Pro since my MacBook Pro is my work machine, it's always both exciting and inspiring to see how the Mac Pro changes and to follow it's paths.

Mac Pro has had it's latest update this June and the new update was very welcome. Gone is the dustbin-design of 2013 and in is the more classic and traditional looking Mac Pro with a new twist.

I thought I'd take a look at this thing in my living room

This thing, on paper at least, is a monster in terms of both performance and upgradability. It's actually on a new level for upgradability too. Featuring 8 PCI-E slots, all x16 in length of which a maximum 3 are actually full x16 slots capable of 16 lanes of PCI-E 3.0. Although Apple could probably have held out a little longer for PCI-E 4.0 this is still a beast.

Design wise, I'm really happy to see Apple move back to a more traditional looking machine.

apple
mac
pro
2019

ZPE 1.7.6 is just around the corner. As part of this, the ZPE engine gets a new logo for each version as shown above.

ZPE 1.7.6 brings minor performance improvements, a few fixes, 64-bit number representation, negative exponents in numbers (I am surprised this isn't in it already) new object features and I am also introducing an updated GUI which now uses an output console window. I'm hoping it will be available within this month.

zpe
1.7.6
updates

For a long time I have been in and out of Microsoft's smartphone ecosystem with me buying my first Microsoft Windows powered device back in 2005 when I was 13. Back then they were called Windows Mobile phones.

I got my first Windows Phone, a HTC HD7, in 2011, and it feels like a lifetime ago. It was then that Microsoft announced that Windows Mobile was to be replaced by this new, more sleek and modern operating system known as Windows Phone 7. At first it was a great operating system, mainly because it was different to the competition, but within no time at all, I started to see the err in my ways choosing a device powered by Microsoft's operating system. Months into my Windows Phone 7 device there was still no Facebook, and half of the other most useful apps had no intention on coming. The big update known as Windows Phone Mango was supposedly bringing sweeping changes that would improve the device but it was a long wait for something that you weren't even sure would fix the issues.

Microsoft entered a market controlled by two large companies who had actually been their rivals in other markets before now, Apple and Google. Microsoft's corporate business model was their only strength here; the other two were focused on the overall dominance of the smartphone market, whereas Microsoft, with the Office brand amongst other things, could focus on making their devices more suited to the enterprise market.

Unfortunately for Microsoft, they actually went down the route of trying to sell their phones to the average user. This created a variety of different problems for Microsoft because instead of focusing on their enterprise market, they had to cater to everyone, much like how Apple and Google did with iOS and Android. This made them just another smartphone operating system manufacturer, and they lost their own identity trying to copy ideas from their competitors.

My HD7 was the only smartphone I have ever paid to get out of early, simply because the operating system was so bleeding awful. The phone itself was actually really good however.

Windows Phone 10 came out and it's release was a surprise to me, as I had thought by that point Microsoft might have realised that there was no point in continuing with something as dreadful as it. Microsoft even went as far as to buy the Lumia line from Nokia and tried to market them as Microsoft phones.

Nothing worked for them. Windows 10 Redstone 2 was released as a big update and a promised Surface Phone was rumoured. People actually thought that it had a chance of becoming something, but no. Nothing came of it, and this article that I have written was inspired by another, which also talks about how the fate of Windows Phone is a sad one.

Posted by J B Balfour in Tech talk
windows
phone
mobile
fate

From the beginning of version 1.4.0 ZPE has taken codenames pretty seriously. Now it's a major thing as you'll see from version 1.7.x since each version goes by a different name. Originally, codenames were given when the parser changed underneath, whereas now it is actually if there are changes to any part of the whole package. Major releases are denoted by a change in codename. The following is a list of all codenames used to date as well as future planned versions.

The official ZPE codename roadmap to date is as follows.

  • 1.4.0: Tummel
  • 1.4.20: Tummel
  • 1.4.0.23: Lyon
  • 1.4.1.0: Lyon
  • 1.4.2E: Tummel
  • 1.4.2H: Experimental
  • 1.4.3: Rannoch
  • 1.4.3.10: Isla de Muerta
  • 1.4.3.40: Isla de Muerta
  • 1.4.4: Black Pearl
  • 1.5.0: Black Pearl
  • 1.5.0.1: Black Pearl
  • 1.5.1: Black Pearl
  • 1.5.2: Pelegosto
  • 1.5.3: Isla Cruces
  • 1.5.4: Port Royal
  • 1.6.0: Severus
  • 1.6.1: McGonagall
  • 1.6.2: McGonagall
  • 1.6.3: Dumbledore
  • 1.6.4: Potter
  • 1.6.5: Potter
  • 1.6.6: Weasley
  • 1.6.7: Waverley
  • 1.6.8: Haymarket
  • 1.6.8.1: Haymarket
  • 1.7.0: Reindeer Lake
  • 1.7.1: Kasba Lake
  • 1.7.2: Nueltin Lake
  • 1.7.3: Yathkyed Lake
  • 1.7.4: Dubawnt Lake
  • 1.7.5: MacKay Lake
  • 1.7.6: Wollaston Lake
  • 1.7.7: Nettilling Lake (planned)
  • 1.7.8: Cedar Lake (planned)
  • 1.7.9: Cree Lake (planned)
  • 1.7.10: Dubawnt Lake (planned)
  • 1.7.11: Baker Lake (planned)
  • 1.7.12: Primrose Lake (planned)
  • 1.7.13: Aberdeen Lake (planned)
zpe
codenames

Shortly after I built my latest PC, the Red Revolution, AMD released their Radeon VII cards. These were designed to compete with Nvidia's stiff competition that just gets stronger and stronger. The main focus of these cards were Nvidia's RTX 2080 cards which have allowed Nvidia to hold top dog position in the GPU market, with AMD more focused on the budget builder, or those just looking to save a bit.

AMD haven't done that as of yet, and the RX5xx series are a bit dated for someone who, like me, is building a new PC. My card in my gaming PC is an AMD Radeon HD 7950 and it's well and truly dated. But I've got brand loyalty, I've always gone for ATI/AMD cards as long as I can remember, because there was once a time when ATI cards were superior in many ways to Nvidia cards with the latter having troubles with overheating and the former having trouble with software.

It's time AMD launched their next generation of graphics cards. Mainstream cards are my focus, I had a high end one with this one and I probably could have just stuck to mainstream, as it replaced a Radeon HD 5670 which was extremely mainstream.

I'm holding out for AMD's next generation of cards in the hope I can get a mid-range card for a lot less than what I paid for my 7950, but I'm not impressed.

Does anyone know what's going on with the next generation of cards?!

Posted by J B Balfour in Tech talk
amd
gpu
radeon
vii
6xx

Ever since objects were introduced in version 1.3.x they have been gaining more and more attention. They became a huge part of ZPE as the move towards making ZPE an object oriented language became more and more clear with the need to be able to develop and teach simple object oriented methodologies became more important.

ZPE 1.6.4 (August 2018) made a huge change that aligned structure and objects in a better way than before.

Now, with version 1.7.4, objects gain even more power. Previous versions of ZPE from 1.6.4 focused on using new object creation functions such as the generate_image, generate_ui and file_open_sequentially functions, but now ZPE in-lines the creation of objects such that it becomes possible to use internally created ZPE structures in the same way that user defined structures are used. By this I mean using the new keyword:

YASS
function main()

    $v = new ZPEImage()
    $v->display()

end function

This positively one of the most important syntax changes that has been made for a while. As a result of it, certain functions such as the above mentioned ones have now been removed.

ZPE 1.7.4 will be out in the next few days, bringing this new feature amongst many other fantastic features that will make this another one of those amazing releases. Other features coming include a much better GUI and ZPE Online features, lazy/short-circuit evaluation, the removal of an old version 1.3.x hack that affected performance, better designed structure and object generation and a few new functions.

zpe
1.7.4
objects
update

For the first time in however many years, I have been spending a lot of time on working on making ZPE talk to my website and web server. As a result, I have been working on making a shared community that will allow users to save their work to the cloud.

The cloud will be powered by my own website engine that allows the posting and getting of user contributed content. This will not only be very good for clients who would like to access scripts elsewhere, but it will also allow sharing of code.

This is no where near finished, but it's got some traction already. You can find out more here.

zpe
online
1.7.4