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 user of functional cookies. For more information read this page.

Personal Blog

Recently after an amount of thought, I have decided to finally make the switch from a sans font to a serif font. I am keeping the Roboto font on my website for things like the site links and masthead, but for the content, I have finally made the switch to Roboto Slab.

This is not necessarily going to stay, the thoughts of the readers and viewers are what determines what I do on my website, and whilst some have already expressed that they preferred the sans font, I am on the mindset that a serif font can also do the job well here.

All of my existing tutorials are being updated over the next few weeks with some small but very nice changes.

These changes are all inspired by my own experience of teaching. Firstly, all articles within tutorials will now have learning outcomes - what you are expected to know by the end of the article. Secondly, I am adding an "Over to you" section to many tutorials that allows you to try out some tasks based on what has been covered in the article. Thirdly I am now working on actively adding downloadable versions of all code samples across my website - this will include tutorials as well as pages like ZPE. This, again, will take a while for me to finish.

In case you hadn't noticed, for the last few days my website has been completely ad-free. Yup, that's right!

One of the original features of my website was the sidebar, and it's original purpose was to serve ads to users on my website and make a bit of money. Some months I would make as much as $40 which covered my website costs. But from last Monday I have been trialing out not running ads on my website at all and I'm quite happy to continue this.

Statistics now show a trend that people are less likely to trust a website if it has ads on it, so it makes sense. On top of that, after looking at my own website advert analytics I have noticed more people have ad-blockers than don't - so it no longer makes as much as it used to. So really, there's no point in me continuing with ads.

A2 Hosting are an amazing bunch of people. I wouldn't have learned half of what I know about setting up a server if it had not been for them so I'm very thankful to them. They offered a very good service at a very good price but they also had their problems.

When I first set up my VPS early last year I got a lot of help with setting up DNS records and so on (something I can do myself nowadays) but what I didn't get I got from a website I came across a few years ago called DigitalOcean. 

I cannot tell you how many times I've googled something and found an article on DigitalOcean that explains a perfect solution to my problem. More and more I started to think it would be good to host with DigitalOcean but I stuck with A2 until about November. 

In November I got hosting credit for DigitalOcean so I thought I'd give it a try and see what DigitalOcean was like, especially now since I am more competent with setting up my own server. I wrote the server_setup script that I use to configure a server, created my first Droplet and transferred a recent site backup to DigitalOcean. Boom! It worked.

Performance wise, on the front end DigitalOcean was a bit faster than A2, which to me seemed unbelievable since A2 was blazingly fast as it was. 

But I mentioned A2 had problems. There weren't many of those and I think A2 are fantastic but they did have one thing lacking that something that is more tailored to system admins/developers should have and that is snapshots. When I first moved to A2 I asked if they offer snapshots but unfortunately not. DigitalOcean provides snapshots! Snapshots allow me to make backups from time to time, for instance before a big update or whatever. It also means I have a secondary, weekly backup of my server. 

So all in all, I'm sad to be leaving A2 but happy to be moving to my fourth host for my fourth iteration of my website. Hello DigitalOcean!

I'm going to be working on a few major things over the next few weeks. My main focus recently has been refurbishing my website with a much more elegant backend and I'm happy to say this was finished on Sunday the 7th after hours and hours of work.

As part of the redesign, I took out my developer tools. I was just this morning looking at my Google Analytics page and found that actually, my developer tools were my most visited pages on my website. As a result, in the next few weeks, I will bring them back. 

Girder will also see some fixes and improvements, although as I have mentioned, it's largely a finished project now anyway. I particularly think I will bring in printable columns and flexes to the next version. I'm also going to move it to a SASS/SCSS based stylesheet that will make it easier to select what you want from it.

Poor old Dash hasn't seen an update for a while now either, so it's time for me to get on with the main project I'm working on.

ZPE hasn't seen an update for months because I've begun work on ZPE 2.0 but that shouldn't be the way it is. In fact, I am going to make big changes to ZPE 1.5 in the next few days to make it perform better. I will not stop supporting the Java version of ZPE until the code in the new version is 100% compatible with the Java version and all features are available in both versions. I also may not even drop the Java version, because it's really good as an educational tool now.

BalfBar 1.2 has had some fixes over the last few days so make sure to download that. I will also be putting the code up for the amazingly lightweight BalfPopup tool that, in my eyes, is better than Magnific Popup due to the size of it. 

As you may know by now I have been in the process of developing a new personal website for the past few weeks. Well, it's finally here!

The new website is meant to be as similar to the old one in appearance as possible, but its aim is to increase performance and change the way it works. The new website uses my Girder framework for the layout and focuses on reusable CSS classes rather than repeating - something that plagued my old website from the beginning (remember, I wasn't really into web development when I started to rebuild it in 2013). 

Although version 3 was the big build for my website, version 4 fixes a ton of stuff that made version 3.x less efficient than it could be. Version 4 also now uses all of my newly developed web tools, BalfBar 1.2, BalfPopup, Dash 1.0 and of course Girder. Dropping things like Magnific Popup makes the website even smaller, and in direct comparison, my new website is about a third of the size of my old one. As well as this, it uses my new development site strategy, allowing me to modify the development site independent of the live site.

Version 4 loads in less than 500ms when tested from Europe. Version 3 took approximately 1000ms to load. On top of that, I've developed a faster way of producing the pages, thus reducing the load on my server when running the PHP and in turn allowing more than 100 concurrent requests at once.

For historical reasons, I have kept just one page of my old website intact and available at http://2013.archive.jamiebalfour.com/

I've got tons of stuff still to bring to the new website, but the main aim of this update was to make the new site ready for improvements. My new website is by no means finished, but it's very functional and serves its purpose.

It's been four whole years since my website received a major refurbishment and it's now time that it did. 

The major refurbishment will retain the exact same layout design but will focus on better performance. It will use my Girder framework and will integrate more deeply with Dash. 

Speaking of Dash, I have not worked on Dash for a while, but with the new refurbishment, I aim to focus on making it easier to work with. 

I have been contemplating this redesign since the launch of Girder and the new Jambour Digital website, so now it's actually coming to fruition. 

I've also been building a few other websites as of recent, and due to their success with clients, the change seems to be very obvious.

It's happened again, I've moved up even further in the Alexa ranks in my latest check!

Since this time last year, my website has increased 5 million places in the global rank! 

I will admit, the last few months have been very busy with Dash improvements and I've neglected my own website.

Not any longer! I'm working on improving a lot of stuff. Things like email that used to work before my change to a VPS package just worked, but not any longer. For this to work, I'm going to need some assistance from PHP Mailer (I may just use Dash Mail to do this - the wrapper around PHP Mailer) and I'm going to need a new email address for my domain.

After working on Dash day in day out, I've become really obsessed with clean and neat code. Refactoring Dash became a hobby, not a chore. But now I've got a lot of work to do with refactoring a lot of my own website (just the backend stuff, so you'll hardly notice anything happening).

Anyway, at the present time there are a few issues with glyphs not displaying correctly, so if you do find anything wrong, feel free to leave a comment below.

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.