Jamie Balfour BSc

Welcome to my personal website!

Technology enthusiast

I am very interested in technology, particularly relating to computer science. I am most interested in web design and development.

My main hobby is programming. One of my most well known products from this is ZPE. I also am the sole creator of BalfBlog, BalfBar and BalfSlider.

A little bit about me

In 1997, when I was six years of age, I got my very first computer. I was always very interested in the ins and outs of it and dismantled it to see how it worked.

Years later, in 2016 I received my BSc (with honours) in Computer Science, obtaining a First class degree.

I'd like to welcome you to my website and hope you enjoy using it as much as I have enjoyed building it!

Google Plus
Me
Jamie Balfour BSc
Full stack developer

Personal Blog

Ultrabooks are amazing devices - combining high end mobile computing power with a slim design and decent battery life. The first ultrabook released was probably the MacBook Air, a moment I remember like it was yesterday. I've always really liked them and have always had an interest in them but never went out and got one.

In the last few years I've been following the development of one or two of them but one came to my attention - the Razer Blade Stealth. This ultra portable features two USB 3.0 ports and one USB-C port. The USB-C port also supports 40Gb/s over Thunderbolt allowing Razer to take advantage of the PCI-Express standard built into the laptop itself. As a result, Razer have developed the Razer Core, an external dock which features a full PCI-Express x16 slot in it. This allows you to insert a discrete desktop graphics card into the dock and use this as the laptops graphics processor. This is why this Ultrabook excited me so much.

Now the latest Razer Blade Stealth has arrived in the UK and is available to buy from their website.

The thing is I'm saving my money and until I decide to sell my MacBook Pro, if that ever happens, I cannot be buying this laptop. 

Posted by jamiebalfour04 in Tech talk

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 Neutral Project. Since my Web Neutral 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 Neutral 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. 

The latest update to BalfBlog brings a range of new features. The most crucial is that you can now manage subscribers and users from the dashboard. On top of this, you can now change the date of a post after posting (I am putting in an option to disable this by default, but some people may want this).

This update also focuses on the dashboard side of things and improving the way it works. A lot of JBlogs 1.x is still exists in BalfBlog and it's being replaced with newer stuff in each update. This update removed a lot more of this. 

As well as this, I focused on the way JavaScript is included. Since many people who use BalfBlog are developers I wanted to make it easier to include your JS in the post. A separate text area allows you to quickly insert JS code.

Today BalfSlider received it's first major update - adding functionality to the slide control buttons and to give more externally available features. It also added newly exposed Back, Forward, Stop and Start functions. This update makes the slider controllable by users through two different accessible options. 

The first of these options is through the slider buttons. The slider buttons are found on almost every slider as a crucial feature allowing users to select a slide of their choice (so if they caught only a glimpse of a slide but missed the main focus of it they can easily go back to it quickly without needing to go through the whole slide show). BalfSlider simply detects whether there is a ul element with the class selectors inside the BalfSlider element. If it detects one it will bind a click event to each of these and it's corresponding slide. Theoretically, this is the best way to prevent any external exposure of these on your website. There's no need for external exposure anyway. 

On the subject of external exposure, the second option is designed for this. This method binds the Back, Forward, Stop and Start functions to the plugin and makes it very easy to go backward, forwards, pause and play your slide show from JavaScript - a feature I've desired on many other sliders out there. This is designed for use at an elementary level meaning you can easily just call the function. Let's take a look at how we do this:

JavaScript
var  s = jQuery('.balfslider').BalfSlider({AspectRatioWidth : 16, AspectRatioHeight : 9});
jQuery('button').click(function(){
   s.Forward();
}

So in this instance we use jQuery to bind a click event to the button which when triggered will call our Forward function on the BalfSlider assigned to the variable s. That's pretty easy to understand. 

The update will be available to play with on the webpage on my website dedicated to this project. It's still in development stages so bugs may be found in the version up there.

This post also was to describe the inner workings of BalfSlider and what it does that's different. Well BalfSlider takes a new concept introduced with one of my projects a few months back of a model that represents the internal functions, basically acting like an interface. This model is an object which all different transitions must follow. The object features several (empty) functions such as the Next function and the Animate function. These functions are placeholders that should be replaced with the transitions own implementations of them. This makes BalfSlider very lightweight and easy to update too but also makes the development easier. This method of development means that all that is needed to develop a transition is a few implementations that fit the model's specifications.

Also, this is my 300th post on my blog! This marks a very important moment for my blog and for BalfBlog in general. 

Yippe! BalfSlider is back. And this time it's back with a vengeance. 

BalfSlider 2.0 brings a large number of new design features that focus solely on interoperability with any website. Because it's part of my Web Neutral Project, it's main aim is exactly this - no styles are added other than the crucial feature based styles and the JavaScript based ones. The rest is up to you.

The current version includes just one transition but two more will be here by version 2.1. As well as this, I'm happy to announce my Web Neutral Project JavaScript and CSS files. Between these files you can find combined BalfBar, BalfRibbon and BalfSlider CSS and JavaScript that allows you to quickly deploy any or all three of the plugins. 

My next focus in these plugins is efficiency. Let me know if you have any requests using the usual methods of contact.

Whilst I never imagined I would work on an image slideshow plugin for jQuery again, I'm happy to announce the new version of BalfSlider. 

BalfSlider follows my naming scheme and is part of my Web Neutral Project (WNP), and it follows the same design principles - none. In other words, the host website does some styling for it. It's open to development. 

As a result of all of this, BalfSlider is incredibly lightweight - even more so than BalfBar which is hugely small. BalfSlider is designed for flexibility offering many different transition styles (coming soon).

If you want to see a sample, look at my front page.

The latest version of BalfBlog separates your content from your JavaScript. This update makes it a thousand times (no scientific proof here though!) easier to include some JavaScript in your posts - something that TinyMCE does not permit and causes problems across the world wide web with all users of this rich content editor.

However, this will bring some minor changes to way that JavaScript is included in your posts and will actually make it easier for you to do so. I personally like this feature. 

As well as this, the update contains a minor performance improvement, a flexibility improvement and some new settings. A lot of the focus now is on developing the setup program. 

For the very first time in my life I will be switching to an Android powered smartphone. This switch will be one of the biggest ones I have ever made, much like the way I switched from Windows to Mac OS X in 2011.

My smartphone history

Apple have been my thing for the last seven years or so (although I've wanted a Mac since I was in my fourth year of school in 2006, just my parents refused to see any benefit since my dad worked for companies such as Microsoft, HP, IBM, Dell and Fujitsu amongst others). The switch to Apple from Windows was easy - the hardware of the Mac appealed and OS X was a side effect of that hardware. After using it for some time I got used to OS X and it became my daily driver OS. 

The first time I owned an iOS powered smartphone took place all the way back in 2009, but I would not say I switched from Windows Mobile completely (I have been a smartphone user for a lot longer than the majority of people, since I owned my first smartphone in 2005 and second in 2008). When I got my iPhone 3GS in July 2009, I was somewhat disappointed and decided in 2011 to switch back to Windows for my smartphone operating system. I assumed that it would be somewhat similar to my old Windows Mobile devices and that with time the operating system would get better. Indeed it did, with the release of Windows Phone Mango I got a few new updates, but most of them were not enough to make the phone as usable as my old iOS powered device. Every day owning my Windows Phone I felt envious of my friends with the iPhone 4 and iPhone 4S.

In October 2011, I got my first MacBook Pro, a 2011" 13" model. It was a great machine and ran Windows exceptionally well, and whilst I originally was just a Windows user on it, I occasionally switched to OS X and messed about with it. As I became more and more interested in shell scripting and, more importantly, became a web developer, Mac OS X appealed more and more to me.

In October 2012, I went back to Apple for my next iPhone. This time the iPhone 5 (which also just so happens to have been my favourite phone I've ever owned at it's time) was the big thing. I had to terminate my contract with my old Windows Phone and took out a new contract with Orange (who became EE shortly after). I got 4G and many new great features with this phone that I could only have dreamt of with my Windows Phone device. 

My iPhone 5 lasted until October 2014, but I had originally planned on not upgrading it for a while. However, the iPhone 6 got my attention with it's much larger screen (and although the smaller screen appeals to me again now, at the time, the larger screen was worth looking at) and within a few weeks I had myself an iPhone 6 for less than I was paying for my iPhone 5 with more data and unlimited texts and so on. The iPhone 6 lasted me well and I planned not to replace it with a new phone but when it's contract came up for renewal I put the three deals that I found side-by-side comparing the possibility of an upgrade to the iPhone 7, a SIM-only deal that was a third of the price of my current contract with eight times the amount of data or a Samsung Galaxy S7 for the same price and a £29 up front payment. In the end, I chose the latter.

A Samsung Galaxy?!

I think many will be shocked at my decision to make the switch. However, I made this switch for two reasons.

First of all, curiosity. I've used an Android tablet before for some several years, only to replace it with an iPad two years later. I was curious to know exactly what an Android powered smartphone would be like for me. If I like it enough, would I be prepared to infiltrate my Apple ecosystem with an Android device again in the future? Would I replace my iPad in the future with another Android tablet (very unlikely)? Would I be prepared to drop the whole Apple ecosystem and just select what devices appeal the most to me? And finally, could I live without the interoperability of all of my Apple devices? These questions are ones which will be answered from the first couple of weeks of use of the Galaxy S7. Whilst I would say I am somewhat confident I could switch my iPhone for another device that has pretty much the same (and more) capabilities as it, I am still not certain that it will become the phone I have always wanted. 

The second reason, change. I needed a change from Apple's iOS on my smartphone. I've used it now for two smartphones in a row. Even when I took out the iPhone 6 I was a bit worried I'd become massively bored of iOS after several weeks. As a technology enthusiast, Android also appeals to my developer side more than iOS. This reason was even more important than the first reason because it opens me up to the wider market, meaning I won't be restricted to iOS if I like Android enough.

I already swear by Samsung's AV equipment and have been buying Samsung televisions since 2006. My last Samsung phone was in 2006 also - a phone which I adored since it was one of the first slide phones with 3G (so I could watch live TV on my phone at school, pretty awesome to be honest).

The answer to this will be revealed only with time (and in my review which will be coming soon).

Heriot-Watt University, the university I received a First Class Honours degree from, celebrated it's Royal Charter in 1966, making 2016 the 50th anniversary of this event. I was a graduate of this university at this time.

To add to this, the celebrations in 2016 continued since the Computer Science degree was first launched in 1966 by Alex Balfour (now that's convenient) after a lot of hard work to bring it to Heriot-Watt. This was the first Computer Science degree in Scotland. Quite remarkable that now I'm celebrating this too. 

It seems like almost all of my time at university I've been celebrating some anniversary, first Alan Turing's 100th birthday, then 50 years of James Bond, then the Royal Charter and then the first Computer Science degree in Scotland.

I'm proud to have my degree from this university and to have stuck with it for the four years, despite the number of times I had considered quitting.

As a web developer, it is becoming increasingly harder to make your website become recognised as number 1 in searches with Google (although I still am the number 1 Jamie Balfour :P ) since Google is making changes all the time to the way they rank websites.

One of these changes that Google has brought across is that of the requirement of a mobile based website. They currently rank websites without a mobile website as being incompatible and therefore rank them lower than ones which do adhere to the standard.

The newest enforcement that Google has thrown at website is that of requiring HTTPS, that is an SSL or TLS certificate, on your website. Now I'm going to admit that I only recently adhered to this due to the fact I was using CloudFlare which did not permit me to use HTTPS (it did provide SSL but the URL did not show HTTPS on it).

This requirement is a good requirement since HTTPS ensures two things. The first of those is to ensure that the website you are visiting is what it says it is, meaning that you are not connecting to a website that is not the one you want to visit. The second reason is that HTTPS ensures that all content is encrypted, so it means that the content you receive is not some malicious JavaScript or whatever and that you get what you hoped for. It also means that if you login to a website the user name, password etc. is all encrypted so no one can just open it. All of this is fairly important nowadays and I'm glad Google is enforcing this across their search engine because if they didn't I don't know who would!

Now I would say that this is a good idea since it means that since my website uses SSL it will be ranked higher. But I also believe this is good because this also encouraged me to implement SSL, even though my website is personal and not necessarily going to be used for transactions. This will benefit me personally for my login system as well as for my blog logins. 

Most importantly, I feel that this is the correct move since a lot of us are now using public WiFi. Before HTTPS became a requirement, any website could use standard HTTP and therefore not encrypt data. On an unsecured public network this data can be read by anyone. This means, for example, anyone in the café that you happen to be in surfing your webmail or visiting some online shop.

There's more in the Google I/O conference here.

Site accessibility

A lot of the original functionalities that once existed here have been removed.

This page was generated in 0.39 seconds using 6291456 bytes. Slow? Let me know.

To use project mode, the window must be greater than 920 pixels in width.
Click here to disable Project Mode.
This site uses cookies to deliver its services, to personalise ads, to store preferences and to analyse traffic. Information about your use of this site is shared with other companies. By using this site, you agree to its use of cookies.
Contact me
Contact Jamie Balfour

Get in touch with me via this form.