To use this website fully, you first need to accept the use of cookies. By agreeing to the use of cookies you consent to the use of functional cookies. For more information read this page.

Jamie Balfour'sPersonal blog

2017 will bring a whole lot of new stuff to my projects. I am going to start with one of my recently more neglected projects, ZPE.

ZPE will be rebranded this year, well in a way. ZenLang will no longer be called ZenLang and will finally get a proper name (more on this later). ZPE has received a huge number of updates in the last few days, bringing it to version, the most secure, advanced and best version to date. In this version there are a number of fixes and new a number of new features. Version 1.5.0.x brings a lot of new things like the remote server, which can now be used as a message server too. On top of this, ZPE now features a JSON parser, through Google's GSON. GSON has been worked to parse the JSON into a list of lists (or an array of arrays). There are new security and safety updates in version 1.5.0.x that are crucial. On top of this, the LAMP parser was improved and loops have been further optimised. 

My website has received it's yearly revamp, this time in the form of DragonScript 2 which is still being put in place on all pages across the site, but it's clearly a lot faster than the original DragonScript. I've also been adding more responsive tools and my code samples now have copy buttons for modern browsers. As well as this I introduced BalfJS to my front end. This is a new way of keeping all of the JavaScript I want to use organised. It also means that functions are better named too and prevents conflicts. My JavaScript was a mess from the days when I first built my website in 2013 and it was time to finally tidy it up four years later. I have also taken out the table sorter and I am also saying goodbye to the wonderful MouseTrap plugin which was awesome but no longer necessary.

BalfBar received an update in early December that brought many new features with one in particular, a sidebar menu. This gives developers the choice between two different types of mobile menu. As well as this it was made overall more efficient.

BalfBlog also received it's latest update in early December. This update, version 2.2, brings a lot of new things including more control over users, a better UI and an improved plugin interface for the tools menu. As well as this it became more modular than ever and far better organised, and in some ways can now be seen in an MVC manner. BalfBlog also became more dynamic, adding more ways to make your blog or website easy to update in the future. Finally, OneSignal's push notifications and social media buttons were added. This year a lot of new features are planned including the long awaited 'Single BalfBlog Multiple Blogs' (SBMBS) strategy that will eliminate the need for multiple copies of BalfBlog on your webserver. This is planned and I'm still putting together ideas on how best to approach it.

BalfSlider may receive some updates this year since it is dependant on whether or not new features come to CSS or JavaScript that can improve it. Many effects of the plugin require both CSS3 and JavaScript to work.

As mentioned before, ClickIt and the ZenLang website will come to their ends this year. My donation thermometer did not make it high enough (I made more in ad revenue this last few months). However, the themometer did make it high enough to help pay for my website for another year. 


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. 

Powered by DASH 2.0 (beta)
Code previewClose