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

Jamie Balfour'sPersonal blog

This is by far the fastest release of a new version of ZPE since ZPE 1.6.1 was only released some four or so days ago but I'm very happy to announce ZPE 1.6.2. It fixes a ton of stuff and it's a lot better designed under the compiler hood than 1.6.1 was. The VARIABLE_INDEX is now more functional than ever so that there is more stability when using the following:

ZPE
$v = [44, 55, 66]
$x = $v[2]

As well as adding more stability to the compiler, ZPE now will not crash if you access an undefined index, instead it will return !undefined which means it can be much, much easier to check for an undefined index. Also, if an index that currently doesn't exist is assigned a value, e.g. in the above list index 6 does not exist, ZPE will now pad the array until it reaches index 6 with a bunch of nulls.

As well as this, the oldest method in ZPE got a big refurbishment. The is_set, unset and global functions are better designed to handle errors and in general are much better designed. As part of this, the is_set function can also determine if an index is set or not. E.g.

ZPE
$v = [44, 55, 66]
print(is_set($v[6]))

Finally, ZPE's argument parsing system has been improved again. Arguments are now even easier to use than ever before and they are parsed far faster. As well as this, in the main/default ZPE ZAC (that's actually when no ZAC is specified but instead a file is put in it's place) program arguments now simply follow behind the file. For example, when running ZPE:

Bash
zpe test.zex "Hello" "World"

Both Hello and World will be recognised as individual arguments automatically, no need to put the args value in front any more.

zpe
1.6.2
update
big
index
features
zenith

I've been really focusing entirely on Dash and neglecting the other project I care about and letting ZPE receive no major updates since January. Well that's really because ZPE is pretty good as it is, but it's also because I've been busy with work and with Dash as of recent.

But ZPE 1.6.1 is now available to download from my Download Center. It brings a few major fixes as well as a few new built in functionalities. On top of that, the stdLib has been recompiled, so the ZULE repo only contains the version 1.6.1 version (of course, you can recompile the source code for old versions of ZPE, almost all of which have been made available through the Download Center on my website).

The most crucial bug fix in 1.6.1 is the way in which values are compared. For instance, in version 1.5.x and 1.6.0 there was a glitch with comparison so:

1 + "1" = true

In version 1.6.1:

1 + "1" = false

This is essential for direct comparison. As well as this, assuming $x is undefined, in version 1.5.x and 1.6.0:

$x == "!undefined" = true

But as of version 1.6.1:

$x == "!undefined" = false

One should be careful when testing for undefined values by using the is_set method.

A new name

Finally, after 3 and a bit years of development, ZPE is getting a new name. It's a big change and I've decided to rename it from the Zenith Parsing Engine to:

ZPE Programing Environment

zpe
1.6.1
zenith
engine
parsing
programming
environment

The 13th of July may be my own birthday and I'll never forget to celebrate it, but it's also the birthday of Dash.

The new name of Dash was conceived on my birthday in 2017. That makes Dash officially just over 1 year old!

Whilst the last year has been pretty damn quiet for Dash, July has been great for it as I've spent a lot of time working on improving it. Just today I've finally got round to adding multiple notes, last week I added the Girder Framework to it and just a bit before I changed the front end to use object-oriented meta data.

Another big release by Apple kept completely quiet. Yep, Apple has updated the MacBook Pros with huge performance improvements and yet again just don't mention it to the public.

The new range of MacBook Pro feature the new eighth generation Core processors from Intel, so they should get a performance improvement. Apple also offers larger storage options now.

Anyway, the top end model as configured allows you to have a Core i9 and 4TB of storage in your overly priced laptop! What a world we live in where you can spend that sort of money on a laptop (PS: I own a £2,500 MacBook Pro and I feel it's been worth every penny, but that's as far as I'd go)!

Of course, I can't see myself going for a top model like that since it is around $6,700 so it'll be about that in GBP as well and I just don't see a MacBook Pro being worth that sort of money.

Posted by jamiebalfour04 in Tech news
macbook
pro
2018

Last month, I announced that Dash was now getting BalfPick. This was the first time I had integrated one of the other components of my Web Independently Styled Project into Dash. It was an important moment for me because of two reasons. Firstly, it meant that Dash would finally be getting the dropdown boxes it needed. And secondly, it was the first step to integrating my personal projects into Dash.

The next step was, I guess, to bite the bullet and make this a thing. Well from today, I'm very excited to announce that Dash has had its first major makeover since becoming Dash last year and is now built with the Girder Framework. No longer is it tied down to a CSS stylesheet that relied on duplication of styles but it now focuses on a much simple Girder-based grid system.

This means that certain pages look far more consistent with each other, certain styles are better developed and in general, it will be easier to develop Dash. This is similar to how it helped me with my personal website when I switched it to Girder. Although Girder is not prominent across my website, there are parts where it is hugely important, and that's what it's all about.

On top of that, there have been new placeholders added and old ones have been renamed. Please take a look at the help files in Dash when you have upgraded to see all the placeholders if you use Dash at the moment. There is also now a cookie acceptance box because Dash now tries to comply with the cookie policy in case your own surrounding website does not and Dash also now uses TinyMCE 4.7 for a far more sleek look than before.

Best of all though, and as a side-effect of Girder coming to Dash, here is the new Dashboard:

dash
new
cms
features
girder

This post is written for a particular family member who wanted to know what this means.

By the year 2025, BT aims to abolish the good old POTS or Plain Old Telephone Service, also known as the Public Switched Telephone Network or PSTN.

Wait? What?! Does that mean no more landline calls?!

No. Let me explain how the system works presently. We have a hybrid system where our internet is sent on approximately three-quarters of the bandwidth of the line that we use. We use Copper To The Cabinet* (CTTC), Fibre To The Cabinet (FTTC) or Fibre To The Premises (FTTP) to deliver an internet connection. Broadband as it is called, refers to the fact that three-quarters or more of the cable are given to the internet whilst the remaining quarter is given to the phone line or PSTN.

When broadband first arrived, to cope with the increased internet speed and the ability to use the phone and internet at the same time the phone signal was compressed. This meant it went from taking a full 100% of the bandwidth to just about 0.5% (0kHz to 4kHz). The rest of it went to the internet connection where 87.5% of the line was given to download (138kHz to 1104kHz) and the remaining 10% to upload (25kHz to 138kHz). Finally, to ensure that the analogue PSTN does not receive interference, there is 2% of the bandwidth reserved between it and the upload. Remember, the way that these signals are transmitted is as frequencies in pulses. This also explains why upload tends to be a lot less than download. Below is how this is all separated out:

As you are no doubt aware, removing the copper cabling that is in use at present and replacing it with fibre makes the bandwidth increase so faster connections are available.

The abolishment of the PSTN from the signal would have an increase on speeds because that existing 25kHz would allow the internet to use that instead.

So what would happen to phone lines?

The purpose of this article was to inform someone in my family of what we have recently chosen to do in our own home - abolish the PSTN from it. Yeah that's right, as of this week we've got no PSTN telephones in the house and we now use a PBX powered by Asterisk (that I setup back in November for my own line) and a bunch of SIP phones. Businesses have done this for years, but the flexibility of these phones is what makes them great.

When BT gets rid of the POTS and PSTN, we will all use phones running on VoIP or Voice over IP technology, basically internet phones. But that doesn't mean you need to buy any new phones, BT or whoever is in control of the phone line in your home will need to provide a compatible option to connect these phones to the new VoIP network.

I'm a bit of an expert now on SIP, VoIP and the PSTN so if you've got any questions just fire away!

*officially, Copper To The Cabinet is not a thing, it's just what I've called it here!

Posted by jamiebalfour04 in Tech talk
pstn
voip
sip
pbx
bt
abolish
pots

This evening I discovered a little bug that affects all sites hosted that use my Girder Framework and whilst it's not an astronomical issue and doesn't affect usability, it's one that makes some websites I've built using my framework less attractive.

Tonight I speak of parallax.

Many of you will know that a few of my websites use a parallax effect in several places. One of the most obvious is with the Jambour Digital website. Today I discovered that iPads and iPhones do not support parallax background images properly. In fact, they don't really support the background-attachment: fixed property at all.

In some ways, this makes sense due to the fact that scroll events on iOS devices are only triggered at the end of the scroll, for instance. Another reason is possibly because of battery life.

But what really gets to me as a designer is Apple's lack of understanding for developers who develop this stuff. Since a fallback would be difficult and would require at least JavaScript, Apple should have some kind of a backup for websites that rely on this.

So please Apple, fix this!

Posted by jamiebalfour04 in Web Design
web
design
development
parallax

In case you hadn't noticed, for the last few days my website has been completely ad-free. Yup, that's right!

One of the original features of my website was the sidebar, and it's original purpose was to serve ads to users on my website and make a bit of money. Some months I would make as much as $40 which covered my website costs. But from last Monday I have been trialing out not running ads on my website at all and I'm quite happy to continue this.

Statistics now show a trend that people are less likely to trust a website if it has ads on it, so it makes sense. On top of that, after looking at my own website advert analytics I have noticed more people have ad-blockers than don't - so it no longer makes as much as it used to. So really, there's no point in me continuing with ads.

jamiebalfour.com
google ads

Just a few days ago I was saying how Microsoft is becoming one of the tech greats again - Windows 10 finally feels like a decent OS (although it never will be macOS or Linux and will always have flaws at it's core), their cloud platform is really quite something, opening the .NET library to everyone and making it cross platform and their awesome work with the latest version of Microsoft Office. Then they pull a stunt like buying GitHub.

Microsoft has always been very committed to GitHub since apparently they made the most contributions to repositories, which is nice to see, but it's sad to see a company, whose CEO once referred to open source as a cancer, whose main products are all proprietary, paid for, non-open source, buying a company who is committed to making open source a big thing.

Of course I use GitHub - who doesn't in the software development world. I have my own private repositories where I store the latest versions of Dash and ZPE amongst other software but from my point of view, particularly from the point of view of integrity, I am worried about the future for GitHub. If Microsoft pushes new restrictions as they have done in the past (for instance, the shutting down of the new free, non-Microsoft developed Halo 3 remake on PC) then GitHub may not be the place for open source developers to put their faith into.

I'm not being critical of Microsoft here, by the way, I'm just pointing out that I don't think their $7.5 billion purchase was the right move for the community.

As of 17th of June, I am no longer a paid member of the GitHub service. I'll be moving to my own private Git repository at some point soon.
Posted by jamiebalfour04 in Tech talk
microsoft
purchase
github

BalfRibbon was a major project that aimed to bring a very well designed user-experience element to a web development environment in the form of a ribbon bar similar to that of Microsoft Office. It's use outwith that university project has been limited and I do not allow downloads of it.

However, requests can be made to use it. I have used it on several of my own backends to my websites (non-front facing parts of my websites).

I'm now working on releasing version 2, better known as BalfRibbon V2, which removes a lot of scrap from the first version and focuses more on a CSS implementation and removes a lot of unneccessary JavaScript. V2 will be available very soon, so keep an eye on my page dedicated to it.

Powered by DASH 2.0