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
Jamie Balfour BSc
Full stack developer

Personal Blog

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.

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. 

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. 

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

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. 

I don't make enough of these writing tips it would seem. But for those who want to know the difference between discrete and discreet, here's a little attempt from me to explain it to you.

So we talk about several discrete things like a discrete graphics card or in my case discrete mathematics. We use the discrete with a t between the two es. This is because the meaning of discrete is totally different from discreet. This form of discrete means for something to be individual or disconnected, detached or distinct. In terms of our graphics card you can see how this the case since integrated graphics are a physical part of the system (and nowadays included in nearly every system) and cannot be added after. Discrete graphics on the other is distinct and disconnected or individual from the rest of the system, in fact it's actually a whole system on it own that has all the parts to be able to operate on its own.

Discreet on the other hand is associated with being unnoticed or concealed. For instance, during a talk you may be told to go and find someone but to make it discreet. 

Both of these words are totally different but knowing when to use the correct form is very important. 

Since beginning my PhD, which will mainly use qualitative research methods, I have taken a much bigger interest in this form of research. My honours thesis was mainly based on quantitative research involving Lickert scales, but it did have one or two qualatitive based parts of the research.

Qualitative research focuses on subjective answers to the original problem. As a result, it tends to be based on opinion and it's an exploratory research method. Qualitative research aims to discover underlying reasons, motivations and opinions. It is less structured than quantative research. Research that takes place can be done using focus groups and/or interviews, using small groups of people. 

Quantitative research will be used with this project to ensure that we get the right opinions and the reasons behind why this project needs to be developed, as well as suggestions on what should be done. It will then be used to generate the specification and what needs to be done to improve the current situation.

On qualitative research, Filstead (Filstead, William J. (Ed.) Qualitative methodology). Chicago: Markham. 1970) said:

This in no way suggests that the researcher lacks the ability to be scientific while collecting data. On the contrary, it merely specifies that it is crucial for validity - and consequencely, for reliability - to try to picture the empirical social world as it actually exists to those under investigations, rather than as a researcher imagines it to be.

I'm planning to keep updating these posts with more information when I start to get it.

BalfBlog 2.1 is the next big iteration of BalfBlog and it will be released maybe by the end of the year. 

In the meantime, BalfBlog's updates are still being rolled out weekly and the next update will focus on consistency. I've had some suggestions put forward about the RSS and emails, and in general notifications, that BalfBlog is producing. Suggestions mainly attack the fact that entries in the RSS are currently including the whole content of the post and that emails are including a length-limited strip of the content. If there was one way I could unify it we could look back to June's update in which the Introduction Mode came to BalfBlog. 

This update enforces the use of introductions on all posts. As a result of the feedback that was received about emails particularly, I've decided that all future versions of BalfBlog will enforce this no matter what the mode.

Version 2.1 is going to focus on one BalfBlog dashboard for multiple BalfBlog powered blogs and sections - something that currently is needed for my website. It will also focus on management and administration of your blog, particularly with multiple users. If you have any further ideas and would like to see them integrated into version 2.1, please suggest them using the normal method of contact. 

Since many of us, including myself, like a bit of customisation with every little thing we use, BalfBar's next update will bring more optional items to the table. The core has been designed to make it easy to bring new features to it very quickly and by the end of tomorrow the new sidebar mode will be in place on the latest version. 

The sidebar option allows you to have a mobile sidebar menu as opposed to a dropdown menu. This fantastic option is already in place on my website, so resize the page to test it. I find that this option offers more accessibility options and it's much better for larger menus. I'm focusing on improving it in the next few days however, so please suggest any positive and negatives about this design using the usual contact page. 

I pay quite a bit to host all of my websites, ranging from jamiebalfour.co.uk (the original), to jamiebalfour.me (an addon domain), jamiebalfour.com (my personal website, now with HTTPS), clickit.education and finally, zenlang.net.

Since version 1.5 will rename the syntax of ZPE, zenlang will no longer be the valid name. On top of this, the website has received much less attention from myself and has been left a bit of a mess. As a result, zenlang.net will no longer remain online from next year when it goes up for renewal. I will leave it as a subdomain (which is always available too at http://zenlang.jamiebalfour.com.) for the future and will probably work on it for a while before I relaunch it with the new name.


Site accessibility

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

This page was generated in 0.32 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.