Jamie Balfour BSc

Welcome to my personal website!

Technology enthusiast

I am very interested in technology, particularly relating to computer science. I am most interested in web design and development.

My main hobby is programming. One of my most well known products from this is ZPE. I also am the sole creator of BalfBlog, BalfBar and BalfSlider.

A little bit about me

In 1997, when I was six years of age, I got my very first computer. I was always very interested in the ins and outs of it and dismantled it to see how it worked.

Years later, in 2016 I received my BSc (with honours) in Computer Science, obtaining a First class degree.

I'd like to welcome you to my website and hope you enjoy using it as much as I have enjoyed building it!

Google Plus
Jamie Balfour BSc
Full stack developer

Personal Blog

Today I am happy to announce that every feature has been added to version 2.4 of BalfBlog. Yep, that's right. It's now fully functioning.

But please note, this is not the end of 2.4, in fact it's just the basics of it. The next things that need to be done are mostly refactoring code and adding validation systems in as there is currently none of that. 

Most of the features of 2.4 are now finished, some of them need furnishing and some of them are completely new. The newest feature added just yesterday and finished today is the build in 'View content' option, which allows you to view a post from within the dashboard, rather than going to the front end to view it. This will have a special purpose very soon.

Templating is still to be improved and moving from constants to a data object is still to be implemented. I'm still well on schedule for the end of July for the release of 2.4.

I have been working a lot harder than usual on my projects, particularly on BalfBlog, which has been my sole focus (even above my own site maintenance) for some time now. 

However, I want to inform you all that from now on I will only be spending the half hour lunch I have and some Saturdays working on these projects. Support can now only be done by contacting me on a Saturday (I won't read any that are not on Saturdays by the way). 

Site issues

Whilst I call it a site issue, it's not in my control at present. Somebody has declared my web host's IP that my site is using is spamming them (probably Microsoft themselves) and therefore no emails are being received by Hotmail/Outlook.com email addresses. This is because the IP address range has been blacklisted. I've been in touch with my webhost about this. But more importantly I am looking at moving to a paid email service now anyway.

Please note that subscriptions and new users are currently not supported. I will send out a push notification about this too.

I'm so impressed by the power and features that version 2.4 (Ben Lawers) brings to the table compared with version 2.3 (Schiehallion) just under a month ago. The whole engine has been redesigned to take advantage of the object oriented design that came to BalfBlog when it went by the name of the JBlogs. The redesign makes BalfBlog easier to develop at a very small cost to performance. It makes other things such as dealing with Ajax so simple that it's not even worth considering it a separate part of the system. It integrates so much very seamlessly that you wouldn't know it's changed, that is unless you are a developer.

2.3 didn't care about developers the way that 2.4 does. Everything is developed in the most object oriented way it can be. Inheritance has become a staple feature of BalfBlog with the latest release and inclusion is no longer the only way to get run things (this doesn't need to make sense to you, but developers who fiddle with BalfBlog will understand).

A new templating system brings so much in terms of performance and easy of use. It also moves even further from the limitations on the content that were the key aim that BalfBlog aims to improve. Emails recently got put into the standard templating system, which is set for a complete renewal in 2.5 (I aim to improve the efficiency considerably by writing a new templating language). 

Since I've now got full approval to include FileManager in BalfBlog, 2.4 will now include it by default and there will be no option to switch it off. However, as this is a new addition, it may still be limited in features until I've got it perfected.

So BalfBlog 2.4 is nearly ready for a late July release.

However, several features are still to be added as absolute essentials.

  • All the way in version 2.4, the delete user functionality is not ideal. This really needs to be fixed. I will work on this again tonight and tomorrow and improve it.
  • Ajax functionality stopped working for the front end when I updated the system to version 2.4.
  • Themes have been a much requested feature but will not be a focus of 2.4, so might not make it into this release.
  • CKEditor is not confirmed to work any longer. I will work on fixing this for the release date, but may remove it in the meantime.
  • Users are supposed to be able to store notes, this has been underway for the last few days and I will be including this in the release.
  • The whole data file needs a complete redesign now that I am using an object oriented methodology for the back end.
  • Finally, I want to have an introduction help page to help new users understand BalfBlog's back end.

These features will soon appear in the changelog, so keep an eye on it and soon enough you'll be able to use them too.

I will also need to rewrite the main post query system. This is a huge priority.
Posted by jamiebalfour04 in BalfBlog

For the last few days I have been looking at using something called FileManager in BalfBlog for managing users' files. The great news is, and I have great pleasure in saying this, but FileManager will now be bundled with BalfBlog 2.4.

After an requesting free bundling with BalfBlog 2.4 by asking the creator, I am pleased to say that it resulted in a very satisfactory result:

I'm very happy to announce that BalfBlog 2.4 will now be bundled with FileManager!

Here's a portion of transcript between us:

I love FileManager and I am interested in whether you would permit me to bundle it as part of an open source CMS project which I plan to share? If not, no worries.


Jamie Balfour

This resulted in a very good result for all BalfBlog users:

Ok no problem

So I am very happy to announce that BalfBlog will now be bundled with the well built, well designed and possibly the best file manager for any web project known as FileManager!

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.


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.


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 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.

Posted by jamiebalfour04 in BalfBlog

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 collection of 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 a humor 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 had a couple of non-Bond 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.

Site accessibility

A lot of the original functionalities that once existed here have been removed.

This page was generated in 0.22 seconds using 4194304 bytes. Slow? Let me know.

To use project mode, the window must be greater than 920 pixels in width.
Click here to disable Project Mode.
This site uses cookies to deliver its services, to personalise ads, to store preferences and to analyse traffic. Information about your use of this site is shared with other companies. By using this site, you agree to its use of cookies.
Contact me
Contact Jamie Balfour

Get in touch with me via this form.