Jamie Balfour

Welcome to my personal website.

Find out more about me, my personal projects, reviews, courses and much more here.

Jamie Balfour'sPersonal blog

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 its 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 its 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!

I didn't think it was going to be easy to set up push notifications for BalfBlog and that it would take quite a long time for me to work my way through the OneSignal API but alas I was wrong. BalfBlog now features push notifications, and it's deeply integrated too, meaning that it's built in to the settings.

Subscribe to my main website to subscribe to this new form of notification!


A lot changes in BalfBlog very quickly. Today the new poll system was added amongst other changes including the removal of reversing posts (this is coming back in a much better way) and better internal layout including a new BalfBlog constant which is basically # ASSETS # (without spaces between the # characters) which if I put it in this post will give me /blog/assets/2016/11/the-new-balfblog-journal. 

However, I do not want my personal blog to be filled with all of these posts, and my project blog is also beginning to fill up. 

But BalfBlog provides a nice solution to this! Yes, I'm speaking of Journal Mode. This will also allow me to restrict the blog to people who I have accepted to read the blog. So you'll now need to register to view the whole changelog of BalfBlog.

Finally, after many years of planning, I will be bringing polls to BalfBlog. This post will soon feature one.

Also, I'm not planning on adding a way of creating polls into version 2.2 of BalfBlog, just for parsing them. So if you do want to create a poll, create a poll.xml file in the content directory for the post you want to have one. Note that version 2.3 will not use the poll.xml file since I plan to change the way in which this works.

This post now features my first ever poll from BalfBlog! Powered by XML and JSON together this fantastic feature might not find much use on my website, but it most definitely will be very useful in general in BalfBlog. It's asynchronous as well, so by voting you will not leave the page. Finally, users may vote just once and all user votes are stored in the poll. Currently the poll consists of a polling system in which users can vote on one option. Building on what is now implemented, I plan to allow users to insert other quantitative data into the system and eventually qualitative data too. 

My next major project is to develop a bulletin system. If you've ever used phpBB you'll know how great it is. I was a huge fan and used to run it on my own development sub-domain, DevNet. 

All that aside, phpBB is easy to manage and has the concept of integrity within the network security triangle. This means that users are assigned different roles and given different access rights. 

However, phpBB has a pretty big collection of files during installation and it didn't fit with the rest of my website. This is where my next project will come in.

BalfBulletin will be the next big project in my Web Independently Styled Project. Since my Web Independently Styled Project's core principal and aim is to develop web applications that fit in to any website, BalfBulletin will leaving styling to the website and the developer of the website. It will also focus on being very lightweight. As with all of my projects, particularly those in the Web Independently Styled Project, a lot of time will go into actually planning the application.

The main premise and indeed the motivation for the development of this is because I'm planning on developing a forum for my PhD project (more will come with time).

The other idea I came up with was integrating this into BalfBlog. For now however, it will be a separate project altogether. 

Powered by DASH 2.0