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

I am happy to announce that my website has had quite a few new changes in the last few weeks, all of which I am finishing now. They are almost all content based but some also improve the actual usability of the website.

DragonScript 2

Last month I began to implement an improved version of DragonScript, DragonScript 2. DS2, codenamed Robber, is a huge update that improves the performance of the backend of my website, thus resulting in shorter loading times for users. It will take a while for me to bring it to every page on my website since some are still using DragonScript 2015 and I have to manually change the PHP file to update the page to DS2. 

New page percentage scroller

If you are on my website reading this then you will see that I have implemented one of those scrollers that goes from left to right as you scroll further down the page. I thought this was a nice navigation element to bring to my website and it was pretty easy to implement so, well you know, I thought I'd give it a try. Lemme know what you think by the usual method!

Goodbye old email accounts

My website email addresses are now limited to the webmaster, information and the no-reply subscribe and admin. Getting in touch via the contact form now goes straight to my personal email address.

New tutorials

I've finished my MySQL tutorial and I am now working on a new tutorial on Web Design. This tutorial focuses on design techniques, design patterns and methods to make a website more efficient and usable. It's fully planned out (and believe it or not I am organising it using the web design technique called card sorting). This tutorial is already coming on. The inspiration to start this tutorial comes from a book I recently purchased on design techniques. It also comes from the fact I now consider myself a bit of a design geek, since I am absolutely obsessed with usability and aesthetically appealing designs now more than ever.

New site features

Since you can now access a JavaScript method without the need for plugins to copy and cut stuff on the web, I have added a Copy button to every code sample on my website. If you cannot copy using the execCommand function in JavaScript, an error appear for you in the form of an alert. This is a pretty cool little feature.

Changes coming

On top of this, clickit.education will finally shut down this year since I didn't receive enough in donations to cover it. The same goes for the zenlang.net website I never finished. I will be moving both to subdomains on my website (www.sites.jamiebalfour.scot). On top of that my DevNet will no longer be maintained. All of this allows me to focus more on my personal website, which I guess is good. I may bring back zenlang.net at some point in the near future, but for now clickit.education will be the biggest loss. Like I said, it is all based on donations which were just not enough this year (there is also ad revenue, which I keep most of so I can continue to pay for things like Creative Cloud used to maintain this website).

Posted in Website news
website
jamie
balfour
update
mysql
web
design

Here is another of my summaries of the year things that I do at the end of the year. I always feel sad saying goodbye to another year, and I like to remember the last day of the year in a sentimental way. That's why I'm writing this post, which will not interest anyone but me since I use my blog as a log of my life as well as a personal blog that everyone can read.

I am finishing my yearly completion of The Legend of Zelda: Majora's Mask as we speak. I'm hoping to finish it before the year is up since I do this every year at this time of year.

Also, I write these posts every year, probably just because I'm sentimental and enjoying doing this, you don't need to be interested at all in this post. 

Last meal I ate: Salmon

Last thing I had to drink with a meal: Coca-Cola

Last place I went out to eat: Goblin Ha'

Last film I watched: Harry Potter and The Deathly Hallows: Part 2

Last game I played: The Legend of Zelda: Majora's Mask

Last song I listened to: The Legend of Zelda: Majora's Mask soundtrack - Clock Town 3

Last person I have sent a text to: My brother

Last friend I have spoken to in person: Calum Cormack

Last TV programme I have watched: Scotland's Hogmanay Live

Last major purchase for myself: Canon EOS 1300D

Although 2016 has been a pretty bad year, there have been some real highlights in it. I graduated this year so it wasn't all bad.

I wish you all the best and a happy new year for 2017!

2015
last
things
done
jamie
balfour

Although this post may not interest anyone, I wrote it all the same. You see I like to look back at my year toward the end of the year. 

2016 has been a pretty bad year for me, and I think in general for quite a lot of people. However, in this post, I'm going to look at the positives in the year too since there were also many of those in 2016.

First off, January was a good month. I started working at Knox Academy for the first time, a school I'd always wanted to work at. I really enjoyed working here, as much even as at Ross High School where I'd been working before. I was doing something I really loved voluntarily every week twice a week. Fourth-year of university was also one of the best years I ever had at university. My courses were really great and it looked like I was on target to get a first-class degree too. However, the loss of the amazing David Bowie was quite a big shock to the world. Then just four days later one of my favourite actors, Alan Rickman (Harry PotterLove ActuallyDie Hard etc.) passed away too. And let's not forget Sir Terry Wogan who since I was a child had been doing so many great things for charity, in particular Children in Need. 

February came along soon and it was one of the worst months of my life. I was told on the 15th of February that my MRI results were bad and that I needed to get surgery. Towards the end of February, I went through a bunch of tests. I was also turned down for teacher training by two of the three universities I applied for.

At the start of March a biopsy showed that there was nothing to worry about. But the surgery did damage me, I had headaches for days on end and huge pains in my head over and over again. I also worried about how I was going to complete my degree. Admittedly, by the end of March, the plan was in place to help me finish my degree and I was on route to getting it again. Also in March, Ronnie Balfour Corbett passed away, 

April was not much better for me, I spent most of that month recovering from surgery. Although towards the end of April I did go back to teaching. I also finished my dissertation in April.

In May I submitted and presented my honours year poster, marking the end of my time at university. Towards the end of May, I got an interview for the University  of Strathclyde for teacher training. The interview and presentation I had to deliver went very well and both of the two members of staff said that I was perfect for teacher training. As soon as I got the conditional acceptance from them, I went ahead and phoned up the college I was going to go to for catching up on my Higher English I needed to pass the conditional requirements of the university. Even after phoning them just two days before where they had plenty of space they had completely run out. This meant I had a conditional acceptance that I could never meet the condition of. However, on the 30th of May, the degree classifications for Computer Science were released. I was amazed to see that I had a First Class degree. It was honestly one of the most amazing feelings ever! 

June was a good month, perhaps the best of the year. A few days after the degree classifications were announced our grades for our fourth year second semester and dissertations were released. I got 7 As and 1 B for my fourth year, and 82% for my dissertation. A couple of days later I was emailed by my mentor congratulating me but also asking me if I'd be interested in a PhD. Without thinking about it too much, I said "I'd be interested in a PhD so long as it matches what I'm interested in". I considered it a backup plan but also something I would have wanted to do at some point in my life anyway if I didn't get into teaching. I also went ahead and started applying for jobs in the industry, just in case, although at that time (and things have changed now) my heart wasn't really hugely set on a job in the industry. I graduated on the 21st of June 2016 and it was one of the best, yet saddest days, of my life - I saw a lot of my friends for the very last time but we were celebrating. Also on the 21st of June, I was told I would not be able to get into teacher training without Higher English and was given all the evidence to prove it. On the 29th of June, I was officially accepted onto the PhD I had applied for.

July was another month of relaxing for me, and of course my birthday. I had a good July, admittedly too relaxed but I spent a large amount of time working on BalfBlog and improving it, with version 2.1 being launched towards the end of July. However, I also was told that the house I had the deposit on was now completely possible since the mortgage I had applied to was now possible too.

August was another month of relaxing, and a week away up in Perthshire as always. It was an exciting month for me because I knew that I would be starting my PhD in a few weeks. 

September was obviously the month I started my PhD. It started off very quiet, I did really know what I was doing. I felt quite lost. At the end of the first week, I seemed to feel like I was part of it however, with my supervisor treating me to lunch and explaining how the first week always feels like that. Week 2 of my PhD and I was helping at my first ever conference. I really enjoyed this, plus I got to see inside the new gym at the university. The conference allowed me to see just how these things work and how they benefit the subjects of the research so greatly, with many of them praising the work of the researchers. I also met two really good friends in September; Lewis and Ana, who have both been very supportive of me over the last few months and I couldn't have stayed without the two of them (it'd have been very boring). I also began lab helping again, something I thoroughly enjoy doing

In October I was diagnosed with a form of dyslexia (which I have obviously obtained from my treatment, which is what my doctor also believes also), which explains why I have difficulty reading for long periods of time (though this may have just been attributed to general brain fog). Dyslexia has not affected me in a huge way, since I can still write, spell and read, it just makes it more difficult for me to concentrate on reading for long periods of time. However, finding out that what I originally thought was true was very discouraging for my PhD. On top of that, there was a nightmare and disaster going on around me, since there was a huge problem with one of my friends. I'm not going to explain it for obvious reasons, but it had a huge effect on me. For the first time in 2016, I was actually feeling depressed again. However, there were still some good things in October, with the Computer Science department celebrating 50 years, and a fantastic dinner and lovely evening (where I got to meet Alex Balfour, the man who brought the first Computer Science degree to Scotland at Heriot-Watt). 

In November I felt I had to go back to my bank to double-check on the mortgage. To my disappointment, the bank had now changed their mind and was not prepared to give me the mortgage they had been able to get me before. My PhD, paying in a net salary, was not enough for the house any more. As a result, I started to get bad feelings and felt that this house was too good an opportunity for me to miss and that I need to think about myself rather than what others think for the first time. This house means a lot to me, and I may never get another attempt at such a good offer again, so I have to pursue it. On top of that, I felt really down because of the situation in October and felt like the PhD was no longer for me. After discussions with my parents, friends and a few others, I decided to stay with the PhD but apply to jobs. I made a promise that if none of the 20 jobs I applied to wanted me, I would stick with the PhD. I think a lot of that worry about the PhD did stem from the fact that I began to think about what I was doing and whether I could stick for the four years that I was being told it would take (when I applied it was 3).

December was a good month to start, with me feeling a lot more motivated about my PhD and getting on with it again. I got my scan results on the 7th and they were good again. I was also phoned by the bank to tell me that would be able to offer me a mortgage, but I'd need to increase my deposit by £3,000. However, on the 12th of December, I got a seriously bad spell of a little bug. This bug meant I was unwell for a whole 2 weeks, and I actually had to go to the hospital at one point because it was so serious. I finally recovered fully and was eating again on the 21st of December. It didn't end there, however, because the bug had put me into depression, and perhaps the worst depression I had ever had. I just could not shake it. We also found that our lovely little hamster, Henry, had a couple of tumours and not long left to live. We were all devastated by this news. Christmas Day arrived and I was still not feeling great. I enjoyed Christmas as always, but it was perhaps the worst Christmas ever due to my depression. Sadly also on Christmas Day, George Michael, one of my mum's favourite singers, passed away. I really liked Wham myself so it was also very upsetting for me. On the 27th I went away for a night up north and it seriously fixed me. Just that one night away was enough to get rid of my depression this time and so I was cured. And here we are now. The end of the year. At the moment I am not working and not doing anything but relaxing and, as I do every year at this time, completing The Legend of Zelda: Majora's Mask once again.

I'm hoping 2017 will be a much better year, and as I once said, the odd years are always much better than the even ones for me. I cannot see myself doing my PhD much longer since things have got very fraught between other people in the department and I'm always the one picking up the pieces. 

Posted in Life
2016
look
back
hindsight
year

Wishing you all a Merry Christmas 2016! I hope you all have a wonderful Christmas 2016! Here are some Christmassy pictures for you to enjoy (all stock and royalty free, but thanks to the people who made them)! 

Snowman Reindeer Christmas Tree Merry Christmas

Just remember the real message behind Christmas, and don't forget what Christmas is really all about!

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.

balfblog
update
nutshell
description
features
video

I've finally brought JSON support to ZPE. 

ZPE 1.5.0 will bring JSON support and will also focus on adding XML parsing tools to the mix. Currently version 1.5.0 uses the GSON library to add JSON parsing capabilities but I do intend to replace it with my own JSON parsing application at some point, since GSON brings the size of ZPE up to 500KB from just 300KB and I can't justify this. However, the change will only be a back end change when it comes and all applications will perform the same way if they are written to use the JSON functions currently provided. Consider GSON a placeholder.

Here's a small sample that takes the JSON from my own http://code.jamiebalfour.scot/balfblog/info.json file that I use to share updates to BalfBlog:

ZenLang
$json_string = '[ {"name" : "BalfBlog", "version" : "2.2.1", "version_name" : "Klebb", "last_update" : "12-2016" } ]'
$map = json_to_map($json_string)
$name = $map.get("name")
print($name)

If we now look at what is output we should get the word BalfBlog. 

gson
json
parse
parsing
engine
zenith
zpe

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. 

fixed
absolute
position
menu
update
december

I'm very (to the power of one million) happy to say that after a couple of weeks of not working on ZPE after feeling very despondent about it after spending a long time searching for a bug, I'm glad to say that I have finally fixed it and it only took me a few minutes tonight.

The issue affects all of version 1.4 from version 1.4.2 onward due to the bug being in the LAMP parser. This bug was down to the fact that if a single variable was part of an expression it would attempt to look at the variable as a value, not as an ID. This fix is marked as being crucial to the success of any version of ZPE, so please ensure you do not use version 1.4.5 any longer and update to version 1.5.0. 

There are still things needing done in version 1.5.0 to make it work perfectly, but I'm getting there now.

Note as of tonight, the following needs to considered:

ZenLang
$v = 12
$x = 10
print($x * $v + 12)

This will not give 132 as expected. However, the following will:

ZenLang
print(12 + $x * $v)
print(($x * $v) + 12)

Future versions of ZPE are fixing a lot of these bugs, but I will be adding the Typo system to the next major version of ZPE as well.

I have since fixed this bug and I am testing it with a lot of use cases at the moment. You can try the latest version of ZPE from the Dropbox page and if you find any issues with this please let me know via the contact form on my website.
Posted in Software updates
zpe
engine
zenith
update
december
fix
major
1.5.0

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
developer
ideas
suggestions
features

December has been a month about bringing notifications to BalfBlog. This month has brought quite a lot of new features that connect with the users of the blogs. 

First of all I added push notifications towards the end of November, allowing users to quickly subscribe to push notifications. Users can still subscribe by email using the my_blog/subscribe/ URL. On top of this, notification frequency can be changed so you don't spam your followers. 

Secondly, I have finally added social media buttons for sharing. This is completely controlled by BalfBlog, so you don't need to worry. All that you have to do is style the buttons and set them to appear from the settings controls.

Take a look at my blogs to see exactly what has been done.

Posted in BalfBlog
balfblog
update
december
2016
new
features
Powered by DASH 2.0