BalfBlog 2.4 is designed to do a lot. In this very short post I will outline the new design of the BalfBlog core and how it will make BalfBlog more efficient than before.
Architecture
As someone who cares about organisation, BalfBlog 2.3 and before always upset me. Currently version 2.4 minimises the issue of organisation by organising files in an MVC pattern with a single dashboard controller than routes requests easily. Everything is passed through the main controller. The way that the new version has been designed also takes advantage of the object oriented features of PHP to make the architecture even more seamless. By the release of 2.4, the architecture should be perfect.
Features
As well as organisation, all features have been integrated into the dashboard. The AJAX requests pages have now also been seamlessly integrated to make sure that if AJAX isn't supported by the browser (for instance if JavaScript is not enabled, why on earth would you disable JS?!) then it has a PHP fallback.
New features have also been added in terms of the way posts are produced, information is retrieved and the way in which you interact with the content management system.
Performance
Performance has seen a slight increase since 2.3 but I cannot be 100% about this because I also have changed to a VPS since version 2.3, so I might see the increase in performance because of this.
The next big change to BalfBlog is designed to make it even more powerful whilst extending it's MVC pattern to be even further refined.
Actions can now performed very easily using links which store references to each individual action and it's corresponding view. The controller then decides whether or not to access the view or model. BalfBlog is still incredibly lightweight and fast, and the new query engine makes it even faster to retrieve results from the past.
In the front end, Ajax has been removed from all individual modules and is now a system wide option if it is supported (it should be since BalfBlog expects your browser to be at least a bit modern).
Since I created this post, a lot of stuff has been fixed and is ready for release. I will hold out until the end of July for 2.4 however.
Version 1.5.5! Wow!
I cannot believe we are now in June and ZPE version 1.5.5 is now under development. So in this post, I'm going to discuss some of the new core functionalities that will be coming (hopefully) to ZPE 1.5.5 at the end of June 2017.
Serial communication
Yes! Finally! After all these versions I have finally decided that it was time to add this feature that has existed in the .NET BlackRabbit Script since the very beginning. It has been very difficult to get to a point where I can say that I know how to do it because for some reason it has been very difficult to get here. Anyway, despite the issues, I may have found a solution that would allow me to implement this effectively in ZPE, providing a wrapper to a set of functions that would allow this communication to take place.
This has been a big priority for me since I have wanted to be able to send hex commands to my projector to switch it on and off (amongst many other things) with my Raspberry Pi and whilst the BlackRabbit Script Interpreter could do this, it was a Windows only program (ZPE is of course, thanks to the underlying Java, cross platform).
Function aliases
Yep! Another feature requested from the beginning. So now I intend to add the compiler functionality of function aliases. It is planned to look like below:
function test() print("Hello world") end function function hello aliases test
Continuing on the concept of function aliases, I intend to improve the way that compiled functions can aliases other functions very soon too. This feature has been requested from the very start.
As part of the next version of ZPE, to be released at the end of May, 1.5.4 will include a new XML parser which will be similar to the JSON parser and CSV parser.
This new parser will be available to both Java and ZPE users. The new version also improves the efficiency of the ZPE parser and brings it up to version 1.1 after a big change was brought to it.
The new XML parser will generate a list of elements which themselves are associative arrays. ZPE 1.5.4 also aims to improve the way that associative arrays and lists work, making them more similar in syntax and provides a new object syntax.
ZPE 1.5.4 seems to be the fastest version to date, compilation is done faster than ever, parsing is done quicker than ever and the interpreter also received a little boost recently.
Also, 1.5.4, like 1.5.3, is part of the Port Royal versions, so nothing will change there (what this means is that the syntax is identical for all ZPE installations).
This is now my sixth entry into my blog that is a celebrity tribute and today's post goes straight to the heart for me.

Today my tribute is to Sir Roger Moore who to me was a fantastic actor. Some say he ruined James Bond, but to me, he improved it. He brought humour that didn't exist before him and he portrayed Bond well. Although Roger Moore was the least like Ian Fleming's 007, he portrayed a more modern Bond compared with Sean Connery's mid-20th century Bond, something I thought changed the way that Bond became.
I have a couple of non-Bond favourite films that Roger Moore starred in, including The Wild Geese and The Sea Wolves amongst others.
I am very sad to have heard the news about Sir Roger Moore and my thoughts are with his family.
I introduced my gallery over 3 years ago when I decided to write in whilst on my yearly get away to Dunkeld. I have finally updated it.
This means that I haven't quite finished adding the original content to it, but you'll see it performs much better for both my server and for you in terms of waiting.
Please be aware that some links on my website will no longer work as expected if they link to the gallery. I aim to have my gallery updated with all the content from the original gallery by the end of tonight. I also realise that a lot of people aren't even interested in my gallery as of recent, but I also have to point out my gallery is not for everyone. I built it as a way to share photos with my family and to build my own kind of 'scrapbook' of photos.
As the pilots of the planes that crash into the Severnaya bunker say in Goldeneye:
Negative so far. Everything seems normal
Well, now everything actually is normal. The transition has been made from jamiebalfour.net to jamiebalfour.com. jamiebalfour.com now points to my new host, jamiebalfour.me and jamiebalfour.co.uk will be here in about 2 and a bit months' time (due to restrictions on the transfer of domains, they can only be transferred 60 days after registration, and sadly .co.uk renewed automatically just before I started the transfer).
I had to make some changes to BalfBlog, and I have no idea why these changes were actually needed, but they were (actually, come to think of it, I have a rough idea it might have something to do with the DocumentRoot directive in Apache2, but I'll test that out).
In the meantime, if there are any further issues across my site get in touch via Facebook or my contact form on my website. I've still got a lot of stuff to try out at the moment so the site may have some issues due to this.
What's new
There's a lot of new stuff coming to my website because of the change to running my own system from the ground up (well in a VM).
My favourite new feature is the use of PHP 7. PHP 7 is supposedly up to twice as fast as PHP 5 and I see a huge performance gain on my website. OPCache is enabled to reduce the amount of time spent parsing the PHP in the first place too. My site was always fast but now it runs only one core and 512MB of RAM and yet it performs better than it did on the shared host where I had 3GB of RAM and four cores. Ahh the benefits of VPS!
Now that I am finally nearing the finishing line for this huge change to my website I'd like to update everyone on what's happened and what problems exist.
First off, I now have a new website, jamiebalfour.net. This is only temporary. I will be switching back to jamiebalfour.scot as soon as I can (I'm awaiting transfer on this). All of my subdomains are currently hosted on .net, and whilst this may change, I'm not sure there's much point in worrying about this kind of stuff.
More crucially, since I'm now hosting on a VPS, I've had to learn how to do things without cPanel and the like. Nothing was too difficult. I originally worried about setting up subdomains but they've been painless and easy and I also like doing things this way a lot more.
HTTPS or SSL is also now free since I found a fantastic CA that offers free certificates. I'm limited in space and memory and CPU power, but despite this, I've still found this to be a more performant option.
From One.com to Arvixe
One.com was the second web host I ever came to, the first being 123 Reg but I never took advantage of it as I had no idea what I was doing. When I opened jamiebalfour.co.uk in 2010, I never thought about using it for anything at all apart from sharing my software. In 2012, I decided to ditch the original template and begin a redesign. Still not a web developer myself, I went for a table based design. In early 2013 I decided to build it to do more. I learned both PHP and CSS and made my first dynamic website. In the second part of 2013, I learned JavaScript and responsive design and made my website more flexible and dynamic.
In 2014, I made the change from one.com to arvixe.com. This was a big change for me. It sparked the point when my website had a meaning to me and that I actually was interested in web development for the first time.
As well as this, the plan was to use the new package to do more than just that. I wanted to run Python-based and Ruby-based websites on it too. Alas, this never came and the site was merely the way I managed to expand my website.
Within the first year or so, I experience a huge amount of downtime. Almost half of the first year I was thinking about moving away from Arvixe. Toward the end of 2014 however, I was moved from Seahorse to Ayeaye. It offered 3GB of RAM and a quad-core CPU - a huge improvement. I saw much less downtime and my site was far more responsive. As time went on my demands became bigger and bigger and Arvixe was perfect for this.
Arvixe to A2Hosting
After 3 years of Arvixe to the month, I decided to switch to A2Hosting. This is a huge change that brings lots of new benefits to my website, particularly, as mentioned earlier, VPS hosting. I've been contemplating VPS for about 6 months now as it would allow me to do more than just host a website. It will also give me the flexibility to experiment with other technologies such as Node.js, Django (Python) and Ruby on Rails and much more. I've got less space on this server but I'm not bothered since my whole website and all of its subdomains and my projects comes to less than 4GB.
I've now officially abandoned jamiebalfour.scot on Arvixe and until it moves over, jamiebalfour.scot will be unmaintained. jamiebalfour.co.uk will also be in the same boat until it switches over, which will yet be another 60 odd days since it auto-renewed before I could stop it.
I'm hoping for a very happy time now with my new VPS package and I hope to have my website fully up and running by the end of the next week!
I've finally made the move from shared hosting to VPS!
This change is the biggest site change I've made in 3 years. But three years ago when I switch to Arvixe's shared hosting I didn't know as much as I do now about server administration so it was a good move to switch to a more advanced shared hosting package that Arvixe provided from the One.com shared hosting I started in 2010.
Arvixe has been great. Apart from downtime which I experienced in the first year, I've had no real trouble with them. Now that I'm a pretty mature web developer and system admin, I felt it was time to make the next move.
VPS
Virtual Private Servers are basically a system running in a virtual machine. I chose to go for the un-managed VPS, which meant I had a lot of work to do and there's no support. However, I've persevered and made it! And you are now on my new jamiebalfour.net website.
Oh yeah. Also, this is actually costing me slightly less every year somehow because now I get SSL free which means that I don't pay $30 a year for it.
When I first started my website in 2010 I never once thought I'd be interested in web development and server stuff. I only actually started my website as a way of getting information about my software out there. I never saw it as a way for me to learn a new technology or to experiment with new things.
As time has gone on, my demand for new stuff on my web server has gone up and now I'm at the stage where I've become not only a competent web developer, but I now have a lot of experience with Linux servers (my job is spent half of the time doing things like server administration in Linux).
So without further ado, the main subject of this post. I bought a VPS package very recently and started a new website.
Well, I will one day transfer this website across to it, but for now I am experimenting with one or two things.
So I decided to compare my current shared hosting package with the VPS package in terms of performance using a PHP script shown below:
time php -r 'for($i = 0; $i < 100000; $i++) echo $i;'
and here's the results:
real 0m0.122s
user 0m0.038s
sys 0m0.078s
real 0m0.880s
user 0m0.144s
sys 0m0.248s
As you can see, the first set of results are much better and that's because they are the VPS results. Despite the VPS package only having 512MB of RAM and 1 core vs 3GB of RAM and 4 cores on the shared package, the performance is still much higher (I was originally concerned there might be a problem with performance here because of the lack of cores).
So there you have it, the difference is quite substantial and may mean that I change my own site to VPS, particularly because it will allow me to experiment with things.