To use this website fully, you first need to accept the use of cookies. By agreeing to the use of cookies you consent to the use of functional cookies. For more information read this page.

Personal Blog

I've been planning on getting BalfComment up and running for a long time and now it's finally here. I'm close to adding this to my own website and will start with my own ZPE Documentation pages.

Once again, BalfComment is neutral to designs.


For a long time it's been something I've needed to implement - a new version of my select element on my website.

Some of you may already know that styling select elements isn't easy and is incredibly restrictive in all of the main browsers. I'm sick of this attitude from the developers of these browsers and I really couldn't be bothered wasting my time trying to pull off some hack that fixes that so instead I followed my technique I used to create the radio buttons and checkboxes on this website - hide the actual form component and wrap it in a label. I call this BalfPick.

BalfPick is nearly finished and it's already across my website. I've had a few issues with Windows tablets but overall it's working on Android, iOS, Mac OS X Firefox, Chrome and Safari and the Windows equivelants with click and Edge on Windows. Surprisingly, each browser acts very differently and each operating system works differently too. As well as that, click and touch events must be registered differently (I developed a rather crude but very clever method for stopping click and touch events being registered at the same time in BalfBar back in 2014 and I'm using a slightly better version of that in BalfPick now too).

BalfPick is also available as a jQuery plugin as with the rest of my Web Neutral Project. What makes BalfPick different is it's unique support for both a really attractive desktop dropdown and it's ability to support the native dropdown on touch devices.

I'm also planning on bringing BalfPick to Dash in the next few days because some of the dropdowns could do with this.

Take a look at an example of this on my site here


In the last few hours I have brought a ton of new features to the BalfGallery project - features that make this gallery miles better than what I had with my previous gallery.

In essence, BalfGallery is formed of two of my components - a PHP scripts aptly named BalfGallery and a jQuery plugin called BalfPopup. The popup is used in multiple places on my website and replaced MagnificPopup earlier this year on my website. This was a big change and required a lot of my time to make BalfPopup actually useful. In comparison to the previous gallery, BalfGallery is lightweight, fast and it takes advantage of features of my own BalfPopup which make it really powerful.

On top of this, it integrates better into my own website by flowing with the design concepts of it. Although currently available as a jQuery plugin, it is actually written differently to the other plugins I provide and the jQuery plugin is nothing more than a wrapper.

New features to BalfPopup now include left and right arrows for images - it cleverly finds the next images using the PHP script thus saving JavaScript resources. 


I have been trying to find time to make this video and finally got round to it last week. In this video I take you on a small tour of BalfBlog and explain what it is. I hope you find it useful and interesting.

Click here to watch it.


Working on many projects at once means you get genius ideas every day! Today's post is about the genius idea that came to BalfBar today.

When I say genius, it was actually inspired by my main competition, jQuery SmartMenus. However, my own ideas were used to actually make BalfBar work the way I want it to.

What happened was that I finally got round to adding scrollable menus to BalfBar. In some ways it's pretty sad when layout needs to be done using JavaScript, and I'm more a fan of green code over yellow code (CSS vs JS for those who don't know my naming for CSS and JS). However, the layout is instant, and even on older computers running on older versions of Google Chrome it still runs perfectly fine. My main concern for BalfBar is the amount of work being done in the JavaScript so I am working on removing more of the older features found from earlier versions and working to improve performance and reduce memory overheads generated. 

Scrolling is managed by binding the scrollwheel and some clever stuff to do with absolute position and calculating the distance to the top versus the height of the dropdown. I've also removed the fixed positioning on menu items since there was no need once I figured this out, were are back to absolute positioning (which is great because it works well on all browsers when zoomed).

I believe this concludes all of the main features I wanted in BalfBar and in a way, brings this project to an end, or at least a feature end. Bugs can still be reported to me as usual. 


Since the development of JBlogs (now BalfBlog) back in August 2014 began, I have worked tirelessly on making my blogging system flexible for everyone. It matters to me not that it may never get that many users because by developing this I am developing my own skills whilst developing an excellent blogging system I can use on my other websites and future websites without any hassle.

Developing BalfBlog has become so easy, especially due to it's MVC design pattern that I have adopted into it. But the development of BalfBlog has not been easy from the start. In fact, when BalfBlog started it's core aim was to integrate completely with any website. The way it worked was to integrate both the front end and the backend (or dashboard as it is now known) into any website. Unfortunately, this was a huge job for anyone non-technical to setup and it was too much for me to develop further without any real reason.

After talking with some potential users I got a lot of feedback stating they liked the fact that the front integrates well with any website, but if the backend was complex to develop then they'd rather that the backend was easy to use and if that meant sacrificing integration with the website for a backend then so be it. I followed this feedback and decided to move to my own custom designed Dashboard. This is the Dashboard you can see now if you have trialled or used BalfBlog. 

The development of this new Dashboard allowed me to redesign the whole of the BalfBlog backend to sit comfortably on the object-oriented balfblog.php file that manages all of the main operations of BalfBlog. The redesign also allowed me to develop the backend in a semi-MVC model, which makes the development of BalfBlog so easy. 

However, the purpose of this post is not to talk too much about what makes BalfBlog amazing, but it's to ask what more you'd like to see in a blog. This year, particularly the last two months and this month, there have been a huge number of very useful features come to BalfBlog 2.2 (version Klebb, after Rosa Klebb) that have made BalfBlog exceptionally powerful and useful. The majority of those have focused on the social side of things like integration of OneSignal's API, allowing us to utilise push notifications and social buttons on each post, allowing users to quickly share a post. Unfortunately, I am beginning to run out of ideas for features for BalfBlog. I am looking to my users and readers again for more ideas! Test out my demo version here and let me know what you think by using the contact form on my website.

I will be holding BalfBlog development until the new year, I hope that by then I will have a good idea as to some new features people want to see in the next version. Also, I'd like to know, should I upload BalfBlog to GitHub soon?


BalfBlog now features a built in 'related posts' tool. Nothing needs to be changed to have this in an existing blog other than one setting needing changed to enable it. This new feature makes it even easier to generate your own related posts section than I had done before. Simply turning the toggle to on will then make BalfBlog auto generate this after each post. 

It's a very powerful feature that will help generate more readers for each post.


Today I finished the backend of BalfBlog polls. You can now make polls straight from the dashboard.

It's easy enough to create polls from the BalfBlog dashboard, but it is my intention to make it even easier in the future. 

For now, you can simply insert the information at the end of a post in the Poll section. Options should be one per line and should not contain the new line character. Polls will then be generated automatically.

As well as this, I am working to change the system in which users who do not have .htaccess or web.config support (Apache or IIS servers) would utilise the system.What this means is that instead of accessing posts through /posts/post-name you would access the post through some URL parameters like ?nme=post-name. This will make it more flexible but it is not the only way in which these users will be able to access the pages. I will be trying it out on my own IIS web server soon and will keep everyone up to date on this.

As part of a few fixes I laid out on my own website, I have decided to updated both BalfBar and BalfBlog today.

Most crucially, BalfBlog received an update that makes it more compatible with future versions of PHP. When it was written it was written for use with PHP 5.2. Now it is compatible with newer versions of PHP so you should have no trouble installing it on your newer installation.

BalfBar has now received an important update that adds more flexibility to the SASS code (and even provides all of the settings to rip off the menu from my own website) as well as changes that make the JavaScript more flexible.


BalfBar is receiving a big update this weekend!

This update focuses on changing the menu items from being absolutely positioned to fixed positioning. This will allow a lot of new things like scrolling (hidden overflow doesn't work well with absolute positioning, since the element resides inside it's parent, whereas fixed detaches it). The menu will still look exactly the same but the way the items are positioned will allow me to finally bring scrolling to the items and allows you to set a maximum height to the items. 

As much as I am more a fan of green code (CSS) over the yellow code (JS) for design and layout, I feel that using it was more appropriate here for what is being done, since it will give a lot more functionality.

This is currently experimental since this change was implemented in next to no time (only took me about 30 minutes to implement) and therefore not tested enough yet. I will post more in my Project blog when more becomes available.

This update will become BalfBar 1.2. 

I will be trying it out on my website soon too, so keep an eye on it!