I'm starting to produce a new version of BalfBlog each month, similar to how ZPE works.
This will allow me to add new features every month that make huge changes to the way you can use BalfBlog.
Here are a list of new features set for the middle of May:
- New custom alert boxes
- Validation on forms (something I have wanted to have for a while but as I've rebuilt it, everything has changed so much)
- CSS, JavaScript and PHP tidy up
- A central database query generator
- A tidy up of the IA of the system
- User preferences
- All Ajax posting will also have an equivalent non-Ajax version and vice-versa.
A huge change has recently made BalfBlog even more object oriented, now the whole core of the system is being divided up into smaller classes, all of which are included appropriately when needed. This makes it easier to develop in BalfBlog.
BalfBlog needs to maintain its focus and not get lost the way that some other CMSes have. The focus must be on getting it to the level where it allows you to produce articles and blog effectively and not stray from that. Plugins will soon be available to improve features but not detract from the original aim.
Morning everyone. Today and tomorrow I will be doing some essential site maintenance that will take down every subdomain hosted on my website. Some of the more popular ones are clickit.jamiebalfour.scot and code.jamiebalfour.scot. blog.jamiebalfour.scot will still redirect you to my blog.
I'm hoping to minimise the effect of these updates but I realise that BalfBlog and ZPE both depend on code.jamiebalfour.scot to check for updates so they will not work at the present time.
The last few weeks have made my website more secure and more performant. I have spent a lot of time making my site work with cron jobs so now my site it is even easier to make a cron job as well as improving my own admin portal, automatically backing up the site every month, backing up MySQL databases automatically and so much more. Most of the stuff I am doing is all about refactoring code and making my site more efficient. I'm also preparing to move to a different server with the possibility of VPS being enabled, so I want my site to be able to 'just move' to that server with minimal disruption by making scripts that do all the resetting up again for me.
We are here now! Version 2.3 of BalfBlog will officially be launched today, and more importantly hosted on a website other than my own!
That's right! BalfBlog will now be hosted on a website that's not related to me!
In a just in time way, I managed to complete the installer for 2.3 just this morning which makes a huge difference to the way that BalfBlog is installed. 2.3 also focuses on adding templating back into BalfBlog, which makes it so easy to make posts fit into your website.
With 2.4, BalfBlog will hopefully get a new, proper name and an updater that will update all files automatically.
I'm very happy to announce that this week I will release version 2.3 of BalfBlog.
That's really it. But what BalfBlog 2.3 brings is a huge update, by far the biggest update since BalfBlog changed from JBlogs or perhaps since it changed to having it's own backend. 2.3 has brought so much that I don't have time to skip through the changelog to find all of the features it brought. I will name a few of the key features however:
- 2.3 moves to a more modular and better design of blogging system.
- Polls! They were created so long ago and yet I am now finally releasing this feature. It's not quite perfect but it should do for now.
- User biographies - write about yourself and become a narcissist.
- A lot, lot more Ajax - that means when you press a submit button, in most cases you will not leave the page to do this
- A new Administration section
- Move from PHP associative array and constants to a JSON file for the settings.
- Better subscriber and user management
- Export tools have been improved.
- New information section
- Moved from MySQLi to PDO, making the blog more efficient
- Template system has been brought back, allowing you to completely change the way a post is displayed
- New help desk feature allows remote login to help you setup and maintain your installation
- More flexible content management system
- Option to switch to CKEditor instead of TinyMCE.
- An update to the new post, update and delete backend appearance
- Soon to have a logo (hopefully in time for this release)
If you are interested in the next version of BalfBlog, let me know by getting in touch, I know the next version has one new website which is going to commit to using it instead of something like WordPress or Joomla which is great!
Version 1.5.3 will now change the way that the break function works. In fact, it will no longer be a function at all, since a function implies it has a return value (and functions that return nothing will return void). Break has always been a special function, mainly because of it's purpose, but also because of the fact that it cannot ever return anything, just like the return function did before it became a staple part of the compiler.
Break has followed suit in the step to promote it from being an interpreted function to a compiled keyword, just as return did back some time ago. Not only did this improve the speed at which return was processed, but it also made it even more difficult to overwrite it.
My question to myself is now, when will version 1.5.3 stop getting updates and when will I actually release it? Well, the answer to that is that I aim to make this a perfect distribution, fixing all bugs that exist currently and adding as many of the promised features as I can. I anticipate the start of April 2017 for this update to be launched on my website, but until then you can always try out the unstable beta versions from the link on the page.
Notice anything different about my blog? No, you don't. And actually, this change came on the front end for a change. Yup, that's right. An unnoticeable change that no one would be aware of unless they are hosting using BalfBlog 2.3's latest update, which currently only I have.
So what is it?
Templates are finally back
What this means is you no longer follow the styling of BalfBlog in the front end at all, let your site do the work is now completely true. You can design a post template very easily by just editing the appropriate template. I have provided several basic templates with the default installation and these will soon be editable from the dashboard.
There are currently just two templates, introduction and post. These templates will be supplemented by a third one soon for single post view and further on I will perhaps change the way that the journal mode works to use one of these as well. This gives flexibility over the way posts are represented far more than before.
I will push this change live to my other BalfBlog installations very soon. Also, the standard GeneratePosts has been moved to GeneratePosts2 and the new GeneratePosts follows this template scheme.
After a long thought process, I am very happy to finally be bringing the index accessor to ZPE . A lot of languages that ZPE aspires to transpile to also have this, so it's fairly important.
It looks like this:
$v[3]
Currently assignment to this is not possible, but it will be soon. I am going to deprecate the list_get_at_index and the equivalent for associative arrays.
Also in the latest vesion of ZPE is the early stages of Typo - ZPEs runtime type checker (it will also be in compile time too) and the new feature which will allow you to produce web pages utilising ZPE.
The latter feature is more of a side project than a major one.
Also, I'm glad to say in the next few hours I will continue the ZPE refactor that takes a lot of ZPE 1.3 out of the code. The big refactor has minimised code from 15,000 lines to just under 9,000 overall, but the structure is miles better.
I also hate to say it, but ZPE is running low on byte codes, with only 160 left at the present point in time (meaning that 96 have been used). 20 more of these are reserved for special purposes.
When I started to write BalfBlog under the name JBlogs in 2014 I began using the now deprecated mysql commands. After some time messing about I switched to the much faster and more powerful mysqli commands.
This was the first big change in the history of the code in BalfBlog. Moving to PDO from MySQLi was another big change (probably about the sixth big change in the history of BalfBlog) and I claim it has many performance improvements.
The improvements do not come from querying the database because I know outright that MySQLi is better for that since PDO adds a layer of abstraction over the databases. No, they come from preventing running the query twice - which is an obvious waste of resources.
Now that I use PDO, this is no longer required since the way that binds are done is much better. Creating prepared statements is so easy and this is where the performance gains come from.
Also, I will point out as it seems a good time. Performance is being thouroughly tested at this point in time under many use cases. PDO definitely seems the way to go however, and it will also allow me to easily switch around database commands to allow other databases to be used in the future.
Also, not every part of the dashboard has converted yet, but most have.
So you already know about some of the new features of ZPE 1.5.3, including the new free to use parser that can be part of any project. But there's also another change coming.
ZPE 1.5.3 is a bit of a minor update in terms of features, but it brings in a sweeping change.
I'm talking about a change that brings a change to something from version 1.3.2. One of the first features added to ZPE way back when it kicked off again in 2015 was associative arrays - almost identical to PHP's associative arrays. They were different to lists in the sense that they mapped values. Well, whilst version 1.5.3 is not a huge update, the update brings a huge change to associative arrays.
You declare an associative array as below:
$assoc = {50 => 10, 10 => 50}
But now, the same associative array is written very similarly to a mix between that and defining a list:
$assoc = [50 => 10, 10 => 50]
The update's purpose is to inline both associative arrays and lists and to free up the curly brace.
Also, I am changing the accessor symbol from => to -> for objects.
It's no shock that a very useful bunch of libraries are now available for ZPE written in ZenLang. Because I have recently added jget to ZPE (a method of accessing my own repository of ZPE extensions easily, allowing easy downloads of these extensions) I have decided to give it a proper name.
Much like the way PEAR and PECL exist for PHP, ZPE will get ZULE or ZPE User Libraries and Extensions. This will be hosted on my website for now and accessible through the jget ZAC in ZPE for now. I will add the ZULE ZAC to ZPE soon however, but jget will exist for a different purpose.
I'm now open to receiving both compiled and uncompiled scripts for ZPE to add to this repository.