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

First of all, my previous post is not void. I'm still considering ditching Dash. But as a result of talking to a friend and a few members of my family who remember my joy in developing Dash, I am proud to say that I've reconsidered what was said in the post. It's with great joy that I am now able to say that rather than ditching Dash I'm going to consider redesigning Dash and releasing Dash 2.

Dash 2 will borrow tons of code from Dash and will be a total rewrite of the whole thing. Parts will remain almost identical but the majority of the system will be rewritten in an encapsulated, object-oriented manner. Further, it will be backward compatible with the original Dash system (Dash 1?) and the Dashboard will remain the exact same. In the meantime, I've removed download links to Dash.

I'm hoping to start it mid next week and have it finished by the summer.

Dash as it is has become hard to manage. As a result I've now decided that I'm no longer going to develop Dash. This will come as a shock to some of people who have downloaded collectively over 22,000 installers for Dash. I'm also almost in tears with sadness about this at the moment.

Dash as it is works really well for me and I like it as it is. The update that brought Girder to it this year made development easier but overall, I'm extremely unhappy with the fact it's not fully utilising encapsulation amongst several other issues.

This has the same feeling as the moment when I decided to stop working on Painter Pro and Cobweb four years ago since as much as I kept telling myself I'd give it a go again, I knew it wouldn't happen. I hope that doesn't happen here.

I have plans to rewrite it from scratch, drawing the key features like the Dash Dashboard back into the new version, but the rewrite will likely take me months to do again.


I mentioned the other day that I would be updating Dash with the removal of Google Plus in the next few days. I will be doing this today, as well as improving several other dashboard features. I'm specifically interested in getting the poll system started so that you will be able to create polls - connecting them to posts and then accepting user input from them will come later.

Suggestions are greatly welcomed too, so if you've got an idea, use the contact form on my website to let me know what you think I could do to improve Dash.


The announcement by Google that Google+ will finally being getting shutdown is music to some peoples' ears - certainly to mine. But it also means a bit of work for me as Dash had added some integration with Google+. If you are using this integration, please be aware that by the end of the next version release cycle, Dash will remove this feature.

The next version of Dash will hopefully be out in December of this year.


Categories have long been staple in Dash, even as far back as when it was called JBlogs. In BalfBlog 2.1 they got a major overhaul that meant that posts in categories could be easily located. Now in Dash 1.0 they've been promoted.

When I say promoted I mean they have gone from being just attached to a post to being a separate entity. Categories are now numbers and have names and now have their own table in the database. This doesn't mean a huge amount but it does mean you no longer add categories from the new post page but from the dedicated category management page. Overall this improves performance when listing all categories.

The 13th of July may be my own birthday and I'll never forget to celebrate it, but it's also the birthday of Dash.

The new name of Dash was conceived on my birthday in 2017. That makes Dash officially just over 1 year old!

Whilst the last year has been pretty damn quiet for Dash, July has been great for it as I've spent a lot of time working on improving it. Just today I've finally got round to adding multiple notes, last week I added the Girder Framework to it and just a bit before I changed the front end to use object-oriented meta data.


Last month, I announced that Dash was now getting BalfPick. This was the first time I had integrated one of the other components of my Web Independently Styled Project into Dash. It was an important moment for me because of two reasons. Firstly, it meant that Dash would finally be getting the dropdown boxes it needed. And secondly, it was the first step to integrating my personal projects into Dash.

The next step was, I guess, to bite the bullet and make this a thing. Well from today, I'm very excited to announce that Dash has had its first major makeover since becoming Dash last year and is now built with the Girder Framework. No longer is it tied down to a CSS stylesheet that relied on duplication of styles but it now focuses on a much simple Girder-based grid system.

This means that certain pages look far more consistent with each other, certain styles are better developed and in general, it will be easier to develop Dash. This is similar to how it helped me with my personal website when I switched it to Girder. Although Girder is not prominent across my website, there are parts where it is hugely important, and that's what it's all about.

On top of that, there have been new placeholders added and old ones have been renamed. Please take a look at the help files in Dash when you have upgraded to see all the placeholders if you use Dash at the moment. There is also now a cookie acceptance box because Dash now tries to comply with the cookie policy in case your own surrounding website does not and Dash also now uses TinyMCE 4.7 for a far more sleek look than before.

Best of all though, and as a side-effect of Girder coming to Dash, here is the new Dashboard:


In the last few months I've not been able to put as much time into Dash as I'd hoped. However, fear not! I've recently updated Dash with some snazzy new things and some minor improvements.

First of all Dash now includes BalfPick, my own dropdown/select box - a vast improvement on those pesky ones built in to the browser. If you've not seen how BalfPick works, take a look at it on my website or take a look at my sample blog.

Secondly I've fixed the issue with the invisible scrollbar in Firefox. You see the sidebar is meant to be scrollable, but it's meant to hide the scrollbar. This caused issues on Firefox but it's now been sorted.

On top of this, I've made some general improvements to the UI - the login screen now supports the glossy/glass look that I've been testing out across Dash using the backdrop blur effect.

Finally, small performance improvements have been made since the last update so it's worth trying out this version just for that.


It's already August and that means that the official Dash 1.0 launch day is looming 😯! That means that it's time for me to update you folks on what's new and what's still under work (of course you can read the changelog for this).

Dash 1.0 is the first official launch of Dash, because previous versions of Dash were known under the name BalfBlog and secondly because previous releases didn't really get much of a release. Now I'm happy to announce that Dash has been fully optimised for use in any situation and I'm hoping to do an official launch video and so on. 

For now, I'll update you on what's new (read previous blog posts to see what I had already added before now).

What's new?

  • A new password recovery feature
  • A new request account feature
  • System lock down - only allow administrators login privelages
  • A more consistent look across the (Dash)board
  • New reports
  • Post viewing internally within the dashboard
  • More object oriented features including object persistence
  • A new method of access content known as the Dash Content Manager (DashContentManager.class.php)
  • More administration options
  • Blocking and allowing IP addresses
  • Dash logs - storing information about what users are up to
  • Performance logging
  • Sprint templating engine - parses a template to an AST to be traversed when generating posts
  • Many bug fixes

What's still to come?

  • Personalised styling - add a company theme or an individual style to a content management system
  • IP address ranges for blocking and allowing
  • Related posts currently do not use the templating engine - neither do emails (although emails do use templates, they just don't use the Sprint engine to parse them)
  • Help system is getting a complete redesign

Dash 1.0 is nearing completion, but that doesn't mean that I'm ready to launch it on the anticipated original date for BalfBlog 2.4 which was the 31st of July. 

I'm afraid to say it won't be till about mid August that it's released now. However, theres a ton of refactoring going on that will improve the ease of adding features to it.

I'm more impressed by Dash day by day. Today's improvement was the creation of a form generator object - whereby one simply adds whats needed as below:

$current_user = DashLoginManager::GetCurrentUser();
$form = new DashForm();
$form->SetLink(DashLinks::CreateSubmitLink(DashLinks::SECURE, DashLinks::LOGOUT));

$form->AddHiddenInput("referrer", $_SERVER['HTTP_REFERER']); $form->AddParagraph('You are about to log out '.$current_user['username'].' from this dashboard.'); $form->AddParagraph('Are you sure you want to logout of this account?'); if(DashLoginManager::SwitchUserEnabled()){
$form->AddParagraph('Since you have switched users you will be logged back into your own account when you log out.'); } $form->AddSubmissionBox("Logout"); echo $form->Generate();