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 want to wish all my readers a Merry Christmas for 2021! 

This year's codenames are a bit more fun than chosing place names or locations. This year I have chosen several animals, much like how Canonical does with Ubuntu's codenames. As always the list can be added or removed from. Here they are for ZPE 1.10:

  • 1.10.1: Amazing Aardvark
  • 1.10.2: Commendable Cat
  • 1.10.3: Dazzling Dog
  • 1.10.4: Exceptional Elephant
  • 1.10.5: Fantastic Fox
  • 1.10.6: Great Giraffe
  • 1.10.7: Hasty Hyena 
  • 1.10.8: Jolly Jellyfish
  • 1.10.9: Lusty Lion
  • 1.10.10: Proud Penguin
  • 1.10.11: Worthy Whale
  • 1.10.12: Zippy Zebra

So what do you think? Are the Amazing Aardvarks and Zippy Zebras going to be good codenames for ZPE?

ZPE 1.10 plans to brings many new features to ZPE, ranging from simple things like performance improvements (plenty have been planned out) and bug fixes, to more complex things. This post will discuss the first of many new features that will come to ZPE over the next year.

Firstly, the Zenith Parsing Engine 1.5. As a result of writing the Zippidydoda syntax highlighter, I have identified a new method to make parsing more efficient within the Zenith Parsing Engine. Within the next few weeks I will launch version 1.5 of my syntax parser which will have further optimisations.

Secondly, speaking of optimisations, I have plans to bring precompiled JSON, CSV and XML to ZPE. What this means is that the code will be precompiled at compile time which will speed up runtime.

Thirdly, static variables will come to ZPE in 2022, bringing many benefits and new features including the singleton pattern. Static variables have been seen as being a requirement for a long while now.

The fourth thing I'm working on is the new ZPE Online includes feature. I am aiming to have this done by the end of the month and ready for ZPE 1.10.1 but I'm not sure if it will be ready. 

ZPE 1.9.13 will be the last version to feature the ZPE UI features as ZPE 1.10.1 will remove this from ZPE. This will be moved to the ZPE UI library, a free, opensource library. It will be very easy to reintegrate these features into ZPE again once the library becomes active again.

Tools like highlight.js are fantastic, until you need to add your own language as I did when I developed ZPE/YASS. highlight.js is also quite heavy and also, it's not developed by me! 

All of these reasons are why I chose to write my own syntax highlighter and I immediately thought to myself, it cannot be that hard since I've written a language parser myself. How right I was! 

Introducing Zippidydoda (it will probably get a new name soon). Zippidydoda gets its name from the fact it was designed to work originally with ZPE (pronounced Zippy, the nickname for my brother's hamster Henry) which was also a nickname for Henry. It's fast, it's customisable from JSON, it works in tandem with PHP which makes it ideal for me and it also allows for such easy customisation.

You can see Zippidydoda in action on my ZPE Online which you can find here

Based on the performance of the Zippidydoda parser, I will drawing inspiration for the Zenith Parsing Engine v1.5 as well as my DASH Boost parser since it is so unbelievably fast as well as lightweight and very manageable.

Posted in General
javascript
syntax
highlighter
fast

I have recently made a big decision that DASH v2 will now be hosted on GitHub. For the first time ever, I will be making DASH's source code available on GitHub. This will allow me to invite others to assist in the development of DASH v2. It is currently private with plans to make it available to the public by February.

Further to DASH v2 being hosted here, I am also going to be removing the ZPE UI feature from the main runtime and making a separate object which will be more manageable and easier to update, which will also be open source and available from GitHub. 

A couple of days back from now, I received an email from the contact form on my website. This email enquired about when DASH 2.0 would be released. At that point, I had no way of directly answering this person since I was in the middle of fixing a bug that has been bugging me since I switched my own install of DASH to using a symbolic link (DASH 2.0 works with symblinks no problem now). The issue was resolved by moving image uploads from the tmp folder to the assets folder of the install (I will post more later). Since this bug is fixed, DASH 2.0 is once again ready for release. However, I have yet to decide just how to release it.

I want your thoughts on this. Should I release it on GitHub or similar, or should I release it through my website? Use the get in touch or comments below to let me know what you think. 

The following is a short video on why desktop Linux distrubtions suck. It's very true as well.

As part of my update to DASH for version 2.0, I have completed a redesign of the UI that involves much more use of gradients and curves to make it more pleasing on the eye. DASH 2.0 now features an updated dark mode that is based on the operating system (unlike Dash 1.x which used user preferences, but that was all that was available back then as these features weren't available at the time of Dash 1.x).

Below are two images showing the early version of DASH 2.0 (beta) compared with how it looks now. The curved interface makes it much more visually appealing.

DASH 2.0 has been my main project for a good few weeks and has helped me recover mentally by allowing me to use my brainpower over and over. It's helped me with getting back into programming as well as helped me get my typing skills back to normal and has generally helped with the brain fog I have had over the last few weeks.

DASH 2.0 is a big update to my old Dash project, and whilst the majority of updates as of recent have maintained compatibility, this latest update I have made breaks compatibility with Dash 1.0. 

For starters, content posts no longer include separate scripts. This is due to the fact that the new version of TINY MCE that is used with DASH 2.0 allows scripts to be included in the content. This is great news but will require the `scripts` column to be removed from all posts tables in current Dash 1.0 implementations. Further to this, the `category` and `poster` fields are no longer textual fields but are now integers representing the `category_id` and `user_id` fields respectively. 

Secondly, the users tables should have their `details` and `preferences` columns removed as these are no longer needed. 

Those are the main changes but they are worth it. Because of the new way that DASH 2.0 has been designed with a much more object-oriented design, implementing new features is really easy. More features will continue to come to DASH as time goes on so stay tuned.

This was bound to be one of the most exciting Apple Events of all time since it would show how Apple's roadmap and progression of the last year have pushed what the Mac can do. 

Last year's Apple Event was perhaps their most monumental in the history of the Mac - the shift away from Intel to their own architecture and system-on-a-chip design based on the ARM Architecture (known in the industry as AArch64). 

But this week's event was expected to bring even more improvements including a rumoured Apple M1X processor. Instead, we saw something that was, for the most part, unexpected, two new variants of the M1 processor: the M1 Pro and the M1 Max (much like iPhone 13 Pro, iPhone 13 Pro Max). With these new processors, the MacBook Pro also saw two new models, a brand new 14-inch model and a refurbished 15-inch model. The base model M1 Pro has 8 CPU cores (2 of those are high-efficiency cores), whereas the top model M1 Max has 10 cores (again, two high-efficiency cores). In terms of graphics, the base model has 14 graphics cores whereas the top model M1 Max features 32 graphics cores.

Compared to previous models of the 15-inch model, the new versions no longer offer discrete graphics options but rely on Apple's new M1 Pro and M1 Max for the graphics, which, according to Apple, are very capable. Apple has made up for this graphics horsepower within the new M1 Pro and M1 Max and has gone absolutely all out with this! The M1 Pro has a whopping 200GB/s of bandwidth between the graphics cores and the memory and up to 32GB of memory available to it due to the unified memory architecture that Apple has integrated into this system. The M1 Max on the other hand is a whole new ballgame, offering up to 64GB of system memory that is shared with the graphics processing units of the processor, and an insane 400GB/s of bandwidth! That is approximately eight times more than the most powerful Intel Xe integrated graphics! 

Apple also brough a new design to the MacBook Pro which I'm not sure I like quite as much as the old one but will have to wait until I see it in person. On the subject of the new design, there are finally more ports available on the sides of the MacBook, one of the main reasons I had considered getting one originally. As well as your standard Thunderbolt 3/USB 4 ports, which there are now three of, you also get a full-size HDMI port, a headphone jack (as before), an SD card reader, and, to me the best feature, the new MagSafe 3 connector which acts as a dedicated power port. You can continue to use Thunderbolt to charge your MacBook of course.

Overall, I am very impressed with Apple and how they have developed the Mac so rapidly over the course of the last year. 

Posted in Apple Corporation
apple
mac
october 2021
Powered by DASH 2.0