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.
I rushed BalfBlog 2.3 out a few weeks ago and realised the installer which was made on the day of release was just not perfected enough. In the next few weeks, I intend to release BalfBlog 2.3.
I'm also astonished to say that it's changed internal a huge amount. 2.4 and 2.5 aim to make the system more powerful, but in terms of features, since I first released 2.3, it has come a long way. The interface has been modified to make it more flexible on mobile and desktop, it now features glyphs on the options, a new help feature, a more powerful API and much more Ajax support. The UI focuses more on a blue look, something taken from my own website but has become a staple part of the BalfBlog interface.
2.3 will also be the last version to include procedural modules. In 2.4 I aim to move all of these modules to a more object-oriented design, one that will make the system easier to maintain. As well as that, I've cut out several old JBlogs methods that were being used for very little purpose. For starters, there is no longer the GetPostsForUser or GetXPosts functions, both of these have been solidified by the single GetPosts method, which now accepts an associative map of parameters, these will be documented in due course.
Security has been improved as part of the object-oriented design, so it's even easier to protect your dashboard.
2.4 will focus on finishing off the object-oriented features, adding the updater and on validation and sanitisation of data. Either version 2.4 or 2.5 will focus on the addition of a plugin system. The log entries that are stored will also soon be improved because this feature was an original JBlogs feature from 2014 and hasn't seen any updates since it started. 2.4 will also focus on the integrated messaging system that I've spoken about for a while. Also, multiple categories are also coming. So you can easily categorise posts in two multiple categories. I'm also thinking about adding my own styled custom dialogs rather than using the basic JavaScript alert popups that I use at the moment (and funnily enough I have written my own one already, just not quite got round to putting it into BalfBlog).
For those who are interested as well, the focus on BalfBlog has detracted from BalfBar (and the rest of my Web Independently Styled Project) and ZPE. Once I've properly launched BalfBlog 2.3 I will focus on these again for a bit, so no worries. I plan to redo the ZPE page on my website, breaking it down into a smaller documentation on each individual feature. Also, I'm very happy to say that ZPE has been downloaded 5,000+ times as of April 2017! That's amazing!
If you are interested in downloading 2.3 please get in touch or wait until the middle of May for the official release! :)