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

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 Independently Styled 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 Independently Styled 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.

Posted in BalfSlider
balf
balfslider
web
neutral
project
wnp
slideshow
image
img

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 Independently Styled Project (WISP), 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.

balf
balfslider
web
neutral
project
wnp
slideshow
image
img

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. 

Posted in BalfBlog
balfblog
javascript
update

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).

Posted in Smartphones
android
samsung
apple
ios
switch
jamie
balfour

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.

Posted in Tech news
heriot
watt
university
royal
charter
computer
science
alex
balfour

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.

Posted in Web Development
google
mobile
enforce
enforcement
push
http
https
io
rules

I don't often post about my projects here in my personal blog and tend to leave these to my project blog. However, this update to BalfBlog is significant and very important.

Today's update brings the long awaited installer package. It's very lightweight and fits right into any blog. All that you will need to do is go to your blog for the first time with the front page referencing the BalfBlog.php file. If the front page of the blog is not configured with this file, it's just as easy to visit the /balfblog/ directory on the blog. This will also trigger the installer. When you get to the installer, it's simple, since it's just the same as the settings front page on the BalfBlog Dashboard.

This new and improved version of BalfBlog also brings some changes around that focus on making it more flexible and lightweight. For those that enjoy the fact that BalfBlog integrates into any website very well, I will be bringing more and more features to make this easier for you in the next major version. The latest version is not yet available, and I do not intend on making it available until the full release of version 2.2. 

balfblog
october
2016
update
installer
features

Whilst I'm not the biggest user of Bash, I do use it at least everyday for lots of jobs. I learned a lot from a friend but also from experimenting a lot whilst being an OS X user. In this post I'm going to discuss the main benefit of Bash for me. 

The first notable benefit of Bash is automation. Since Bash is relatively easy to access and will not need compiled it's easy to automate certain things. One of the things I use Bash for is it's find command. This allows me to list all files which match a certain name. Using this command I can run an exec command on it and do things like move them or delete them.

But, you ask, I've got a Mac with a graphical interface so why do I not just search using the Finder search tool? This is very true but I'm not able to do that on my Raspberry Pi which is not connected to any display am I? No. What I do here is the second notable benefit of Bash - remote login. 

Remote login is generally handled by SSH for me. This fantastic tool lets me manage my Raspberry Pi remotely from my Mac but it also gives me access to the server from which this website is being hosted on. Couple the two aforementioned features of Bash and I can manage my website server using my Mac remotely. Not only does this give me more access around the server but it gives me speed.

Say I want to delete 1,000 files which are in a directory of directories, I would need to recursively delete them. With FTP, I would request the deletion of the whole directory and my FTP client (FileZilla) would send a REMOVE command to the server. However, before it can do that it would need to go into each sub directory, recursively (meaning it would need to visit each sub directory of that sub directory too) and send a REMOVE command on each file inside of it and then on the empty directory itself. The FTP client needs to check each directory out for any files which it requests from the server each time. This is a long and cumbersome task. For me it takes no time though, because I know Bash. 

Using Bash the deletion of remote files can be sped up considerably. Once I've SSH'ed into my server and I wish to remove a directory and it's contents it's fairly simple:

rm -r test_dir

In the above example I'm removing the test_dir directory and it's contents. Since Bash sends a single one line command to the server which the server then interprets and executes using its own Bash interpreter, the execution time for the above example is less than one second. This is an astronomical improvement over the FTP client. 

So there you have it. My favourite reason for using Bash. 

I will criticise Bash over one thing however, and I guess I think of myself as a bit of a snob when it comes to programming languages since I feel that a lot of languages have ugly syntax and I do not feel that Bash is any different. For example if statements do not use the normal < or > signs to represent their comparators. No, in Bash this is done with the -lt and -gt words. Then you've got the whole thing with variables where instantiating a variable does not require a $ but referencing one does. 

This ugly syntax has often deterred me from using Bash to do something. My own ZPE aimed to fix a lot of this and has, just without the horrid syntax of Bash. It's worth a look if you want a simple scripting syntax and powerful language all in one. 

Posted in Programming
bash
shell
scripting
Linux
unix
macOS
OS X

Whilst it is nearly October 2016 (how time flies), I will be launching a new video on to my website and YouTube most likely in September.

This video aims to explain two of my Web Independently Styled Project, namely BalfBlog and BalfBar. BalfBlog has been getting a lot of updates, but that's not to say that BalfBar hasn't been getting that TLC.

As you may have noticed I have moved my website to a slideout side menu recently. This is a new feature of BalfBar and it's easy to switch. Since BalfBar is written in SASS instead of pure CSS, switching between enabling or disabling Dark Mode and switching between Dropdown and Sidebar mode is easy because all you do is change a variable or two. The main focus of BalfBar recently has been on this new type of menu and bringing it to it was not difficult at all. By doing this, users have the choice between two types of mobile menu with few changes, making BalfBar one of the lightest mulitple menu typed menu systems available. 

BalfBlog has become even more powerful in the last few months with a focus on cleanliness and a move to a more streamlined interface. BalfBlog 2.2 which will be out later this year will focus on adding more server support so that the IIS servers out there can have just as pleasant a time as Apache has with BalfBlog. It will also focus on more tools and remove some of the older tools. BalfBlog also focuses on a much stricter system that ensures that all posts have an introduction, regardless of the mode. The reasoning behind this is to ensure that subscribers' RSS and emails are more concise.

I'm also looking to integrate infinite scrolling through posts (i.e. Ajax loaded posts) to BalfBlog and hoping that this will be an easy to integrate option. Whilst BalfBlog is solely a backend blogging system, I will provide source code to allow you to perform an Ajax request (you could simply write your own now, it's not going to be all that difficult). Next I will focus on integration with new modes, particularly the page CMS mode. I will also be making a new and fresh installer application for BalfBlog. This powerful new installer will integrate into the existing dashboard and for users who have yet to configure a data.php file it will help them generate the settings for them.

Both BalfBlog and BalfBar rely on community support, so if you are using either, please let me know what you think through the contact forms on my website.

balfblog
balfbar
information
september
2016

A minor update has come to BalfBlog. This post will explain it in more detail.

The main updates are as follows:

  • Deployment has been simplified.
  • Settings tool now fully works, allowing you to change settings straight from the blog admin
  • New directives in Settings tool
  • Improved the way in which Blog Mode, Introduction Mode and Journal mode are switched, now selected from a single dropdown in the Settings tool. 
  • More friendly URL rewriting on Apache
  • Simplified and lightweight user interface for the backend on mobile devices
  • Removed some of the older JBlogs features that were unusable due to major changes

As always, I am commited to ensuring that the latest version is fully compatible with all older versions with very little effort. I also suggest if you wish to try this version out that you run the Flush tool and update your settings (data.php) file using the built in Settings tool.

Very important note for all, since this version does rely on the new Settings tool, it is not recommended you edit the data.php file any more since BalfBlog handles this. 

Posted in BalfBlog
minor
update
Powered by DASH 2.0