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

Browsers

NPAPI or Netscape Plugin Application Programming Interface was the norm for a very long time in web browsers. It was a single standard that allowed all browsers to use plugins. But plugins have plauged the web for a long time too. One of the most well known plugins, Adobe Flash, had become pretty much everywhere, requiring users to download a plugin for the system. It used NPAPI. On top of this, plugins were cumbersome to develop and meant developers needed to know several in order to achieve the results they wanted. Now the web is finally moving away from a plugin interface to a much more standards based interface.

NPAPI was the interface (a set of methods which each plugin must implement) which all plugins complied with. This was originally developed by Netscape, one of the original companies to develop a web browser and Microsoft's competitor in the first browser war. Netscape developed many standards and one of them was this plugin interface that has left us in the messy situation we are in now.

NPAPI has been around for a long time, but last year was supposed to be the end of it. In 2015 Mozilla announced they had plans to drop NPAPI by the end of 2016. This was later brought back to March 2017. Chrome has already dropped NPAPI and did so in September of 2015, only after turning support off by default in April that same year. Google cited that it "has become a leading cause of hangs, crashes, security incidents, and code complexity" thus that the older architecture of it needs "to evolve the standards-based web platform". It's important to note that NPAPI is an architecture from the 90s when the web began to take shape and at that point we were using HTML 3.2 and lower. Since then HTML5, CSS3 and JavaScript have all brought huge improvements to the standards-based web. 

Many plugins already exist that take advantage of NPAPI including Flash and the Java applet plugin. But both of these can be replaced by much more modern solutions. 

By removing the NPAPI browser developers are encouraging standards. They are making it more difficult for those who develop these plugins to make them a part of the future. By doing this they are offering a safer web environment for everyone. They are also ensuring that there is no longer the complicated mess of choice that Netscape and Microsoft once supported through the NPAPI and that we live in a standards controlled environment where no one company owns the web.

A standards based website is the way to go and older websites need to update to catch up with standards. Nobody has time for these older websites that rely on these plugins now, they themselves are slow and ineffective and need to catch up. 

Today I have decided I will no longer add support for Internet Explorer 8, 7, 6 and below to BalfBlog, BalfBar, BalfSlider, BalfRibbon and my own website.

Subsequently, users of these will see a very small reduction in file size. 

After many years of adding extra support to my website for older browsers, I have decided it is time to move on. I am officially ditching a percentage of users of these older browsers.

Back in the day, when Netscape and Microsoft started the First Browser War, Internet Explorer and Netscape Communicator fought to become the most popular browser. 

Ultimately, to many people's dislike Internet Explorer won and Netscape disappeared. Netscape Communicator evolved into Firefox. At this time Internet Explorer's share of the browser market kept growing, largely due to the fact that it was bundled with Windows until the EU decided to make it compulsory for Microsoft to include a way for users to change to other browsers easily.

Since then, I have become a web developer, and I stopped using Internet Explorer again in favour of Firefox and eventually Safari. I'm not the only one who stopped using Internet Explorer however. Year on year the share for Internet Explorer has dropped. Here is are the statistics that shows this for November 2015 from W3 Schools:

2015ChromeIEFirefoxSafariOpera
November 67.4 % 6.8 % 19.2 % 3.9 % 1.5 %

And here is a set of statistics from 2002, 13 years ago (when I used Netscape I'll have you know!)

2002AOLIENetscape
November 5.2 % 83.4 % 8.0 %

But why is this the case?

Microsoft just didn't care

Microsoft were very bad at developing Internet Explorer between iterations, they thought because they had a huge market share that they wouldn't loose it. I only realised this after becoming a web developer myself, since developing for Internet Explorer all the way up to IE9 is very difficult.

Even if other browsers had features for a year or two, Internet Explorer would most likely not get these features for a long time after. Prefixed support wasn't even there. Microsoft, as always, just thought it was ok to just leave it. 

Microsoft only cared when Internet Explorer started to disappear.

The future

Microsoft will have a lot of catching up to do with Microsoft Edge since Internet Explorer got them the bad name of the browsers. I personally do not see this happening in a way that will transform the share so that Microsoft has the upper edge again, but I can see them regaining some of the lost ground with it.

Edge is a fantastic browser, especially from Microsoft. Edge really does support cutting edge technologies and implements most of the web standards well.

Just yesterday I got myself an Xbox One (There may be a review on this coming soon). I tried out Internet Explorer on it, which I found out was Internet Explorer 10.

I also discovered that my PHP script to detect Internet Explorer 8 accepted Internet Explorer 10 as being an older version than Internet Explorer 8. This is a simple mistake to make but it's also incredibly easy to fix.

Here was what I had:

PHP
preg_match("/.* MSIE [1-8] .*/i", $userAgent)

And here is a working solution, to detect all browsers less than IE8:

PHP
preg_match("/.* MSIE [1-8].[0-9]?; .*/i", $userAgent)

And the reason for this happening is down to the fact this only checks the first number of the version, not the second, so IE10 would be recognised as IE1. I also put in, just for the sake of it, a check for a dot (.) and a check for a minor version number ([0-9]) and a semi-colon at the end. At the beginning and end of the regular expression match are any symbols.

Site accessibility

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

This page was generated in 0.3 seconds using 2097152 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.