Starting with DragonSlides this evening, SSE is coming to my products.
With SSE DragonSlides Remote and DragonSlides Live, the state of the show is no longer received via polling. Instead, it uses Server-Side Events, similar to what I achieved using WebSockets in the past.
This reduces the load on both the server and the client. It also reduces the data sent back and forward and will, ultimately, make things so much better for the client and my server. I've also added polling as a fallback if the EventSource API isn't supported.
Haddington was tied with Perth for being the happiest place to live in Scotland. I don't disagree, Haddington is a lovely place, and as someone who has lived in this area all my life and spent much of my youth in Haddington, I totally agree.
In the UK, Berwick-upon-Tweed was voted number one. Again, I don't disagree. I visit Berwick-Upon-Tweed once every few months because I love the town (and because it's such a nice drive to it). Other prominent places are York (which I love and visit once a year), Durham and Exeter.
Today is YouTube's birthday, and I remember watching the first video on YouTube ever! I remember going to my next-door neighbour's house and watching YouTube as it was a new service that they'd found out about prior to its launch. Before YouTube we all used to watch Stupid Videos (.com) and Weeble's Stuff.
What a wonderful memory that is!
It's sad that I have to move from Disqus after moving back to it only a few years ago, but Disqus decided to force ads onto the free tier when a website becomes busy enough. Because I'm now actively getting 6,000 to 8,000 visits a day, Disqus now force ads on to my website, which I think is totally unacceptable and not part of the original model of this website. As a result, I'm building my own comment system again.
Please continue to use Disqus in the mean time.
BalfML, my own markup language, is now available to view on my GitHub as a formal specification.
Whilst the specification is clear and provides some clarity as to what the language context will look like, it's is far from finished. There are plans to update the formal specification and indeed the markup as I begin to develop Java, Python and C# libraries that will parse the data to the correct format.
The formal specification of BalfML is similar to that of the specificationless INI format and the TOML markup language. However, BalfML has a few additional data types and features.
I will soon build this in Java as well as for ZPE.
I also intend on using this as a configuration format for ZPE soon enough.
2024 has been an exciting year. Personally, I believe there have been several key highlights. This is one of those sorts of sentimental look back at the year moments, particularly from my point of view. I mainly make these so I can look back, since a blog is kind of like a journal anyway.
First, in January, I launched my new balf.io platform. balf.io is an external way to view things like my slideshows and documents (DragonSlides and DragonDocs, respectively). It also acts as my URL shortener and redirect system. Overall, balf.io has simplified things that I do on a daily basis. Speaking of DragonDocs, January was the first year my new DragonDocs AI was released, allowing DragonDocs to mark answers provided automatically.
Also, in January, I released ZPE 1.12.1, which brought the critical changes that made room for LAMEX2.
In February, I updated my smart home to be entirely local for the first time since I built it. Nothing relies on the cloud, making it more streamlined and faster.
The Internet turned 35 years old in March 2024 - a historic moment.
ZPE 1.12.2 was also released in February and was one of the most significant updates in a long time, with LAMEX2 being included, offering up to 4 times the performance of the previous versions and having a much lower memory overhead. LAMEX2 became the standard LAME in version 1.12.3.
In May 2024, I released my first fully functioning ZPE transpiler, ZenPy, and I fixed the plugin system within ZPE (and then split ZPE's core so that parts that were not necessary became plugins). June saw the introduction of breakpoints to ZPE.
In July, we had the first election in over 14 years, which did not result in Conservatives and ended up with the Labour Party instead. ZPE finally got namespaces in July. In July, once again, I went to York, this time with my mum and dad. It was nice once again and I made some critical decisions about my life and what I'm planning on doing in the near future whilst on holiday this year.
In October, my oldest/longest friend got married. It was a spectacular day up in Dunkeld (I stayed for three days), and the wedding itself was out of this world. Also, in October, I finally got back into YouTube and want to continue to do it again. I also finally updated my house infrastructure to use 2.5GbE for everything.
In December I got my routine MRI scan of my head and spine and all was clear. To top the year off, I went to my very first gig. I saw Travis in Glasgow (my second favourite band). It was exciting and one of the best events I have ever attended. Once again, I went with my mum and my dad came along as well (he's not a fan of Travis the way I am, or my mother even, so he didn't enjoy it the way we did).
All I have to say now is that let's hope 2025 is a great year, too! Happy New Year when it comes.
I just wanted to say Merry Christmas for 2024! Have a great day!
A few days ago, I spoke to a friend who showed me his CV and what he had done. It was stunning in its design, something I had done a few years ago when I used Microsoft Publisher to make my CV. I moved away from Publisher due to the incompatibility with macOS and because I like to make my things using code rather than rely on software like that. I also wanted to host a native version of my website and add some of the themes from my website to it.
I eventually caved in and came up with the idea of making it with HTML and CSS and hosting it on my website. It worked well, and over the years, significant changes have been applied, such as making it more interactive and powered by a database.
Over the last few days, I have made even more extensive (and beautiful) changes. These changes are especially prominent when printed to either a PDF or paper.
Take a look by going to the About section on my website.
Finally, ZPE 1.12.3 has been released!
ZPE 1.12.3 is a significant update because it dramatically changes how LAME evaluation is carried out on mathematical expressions. It switches to a new method of parsing mathematical expressions, making them up to 4 times more memory efficient. To explain this, I have bulleted the different areas of improvement:
- It no longer modifies IASTs
- As a result of the previous change, it now no longer copies IASTs before attempting to parse them, making it both faster and memory-efficient
- It parses BODMAS statements in one single pass rather than performing four passes on a statement.
- It separates logical expressions and mathematical expressions further, making both faster.
As I have said, this is a significant update for ZPE that flushes out some of the bad things about the first LAME.
LAME X2 closes the bridge even further between ZPE Native and ZPE Java, as it brings in further optimisations that improve performance to a native level.
I am very proud to say there's a company whose products I believe are the best in the field.
That company is Reolink. Reolink is a new company to me and one that I only discovered about one year ago. I have invested heavily in Ring products but have encountered issues here, there and everywhere. This started at my parents' house when I bought them a Ring doorbell. From then on, I always stuck by Ring products, even when Amazon bought them.
I like Amazon, so don't get me wrong; they are a very reliable company. But their tech products scare me to some degree. And I say this because they could pull the plug or increase their prices at any time. I also feel that the Ring products haven't ever really fitted into my smart home ecosystem.
I have spent over £600 on Ring products over the last year alone. This is a considerable investment, considering this is only a security system. This mirrors my original, somewhat poor investment in WiFi-based products for my smart home, which was quickly reversed with Zigbee and Zwave products.
I've been trialling out my newish Reolink cameras today, and I've got to say I'm hugely impressed with them compared with the Ring cameras they are about to replace. For starters, the night vision is streaks ahead and very clear. The daytime camera is also miles better, with a much clearer picture than the Ring. The customisation in the app is also great too. But let's not forget, the main reason for getting these is that they are local. Yeah, that's right, everything they are doing right now is local. I plan to connect mine via FTPS to my local home server to make recordings and store them there.