Over the next few weeks, I will be giving my resources an overhaul. I'm going to be looking at adding animations next to instructions to show pupils how to do things without having to read. I will also review the learning intentions, the conciseness of the content, and assess the overall quality of the content.
After using Quicksand as my de facto font for my website, web tools, DragonDocs, DragonSlides and my software, it's finally time for a change. I'm now moving everything to Instrument Sands. DASH still hasn't switched to the new font, but I do intend on making it the default font for DASH.
I remember the day I decided to switch to Quicksand very well. My first project to use it was DASH in 2019. I replaced Source Sans Pro on my website after using it extensively for digital literacy materials at my previous school. This experience led me to choose it as my default font for all my projects. Quicksand is still on my website, and I'm hesitant to remove it entirely, so we'll see what happens.
Whilst this may not be as sad for some of you readers, for me, this is a sad day as it's like the end of an era for me in terms of design.
Over the last few weeks, I have been working very hard to improve my smart home to make life easier, but the primary focus has been making things easier for other people when they use my house. I've been adding stuff for myself as well, of course.
The first thing I did was get myself into Matter. Following the rapid transition from technologies like Zigbee and Z Wave to Thread and Matter for smart homes, I have decided to adopt Matter devices in my house. I will make them the primary technology going forward. This happened after I decided to get a new lock for my door, which is Thread/Matter-based. After several attempts to connect it directly to Home Assistant, I opted instead to run it through my HomePod Mini, which immediately connected and gave me complete control of it, and it works nicely through it. Home Assistant then connects to the HomePod Mini to get the device through it, too. This new Aqara U200 is absolutely brilliant, and I am loving not having to carry keys around with me.
I now also have an excellent new robot vacuum, the Roborock QV 35S, and not only does it integrate really well into my smart home, it also makes my floor spotless and is hundreds of times better than its predecessor. I cannot believe how effective it is.
Next, I've been adding NFC contact points around my house. One of my new innovations is an NFC tag you can tap on each photo and picture around my house. Your device then takes you to the location where the image or picture was taken (all my pictures are of places). I've also developed a clever filter that, when an Apple user taps a location tag, opens Apple Maps; however, for others, it opens OpenStreet Maps. Nice.
Additionally, I've added new NFC points around the house to control devices that you'd typically have to manage from the front door tablet (known as my Home Control Tablet), either via Siri or HomeKit. To make this accessible to everyone in my house, I've created straightforward URLs to activate web hooks, eliminating the need for a specific app like Home Assistant. I'm very proud of how these have come along.
I also have NFC points in the garden, allowing me to activate various features such as my Home Sweet Home mode, which will simply turn on the appropriate lights when I get home (I do also have my detection automation on my iPhone, actually).
I'm doing a video in the current month that will show everything that I have done so far, so keep an eye out for that.
ZPE 1.13.8 is only just out, and we've already got the headline feature of ZPE 1.13.9, and it's all about security.
Plugin security has been non-existent over the last few versions due to changes and deprecations in the underlying Java language. Anyway, today I decided it's time to relook at this and I've come up with my own way of doing this. Simply put, it forces plugin developers to develop an alternative way of accessing files, and that's using the new ZPE Sandbox Security file system. It also prevents access to certain other things, like running commands on the command line through the shell and restricts users to the built-in ZPE shell.
Overall, this is the first step to a more secure plugin-based environment and I'm really happy with it.
Most of the focus of the new Colliergate release is on the new and improved parser. The parser claims up to 24% increases in performance, and that's because it finally brings a new means of peeking.
What I'm talking about is that the Zenith Parsing Engine version 1.5 no longer wastes parsing time when peeking - once a token has been read, it is stored and it's never reparsed. Because of this, when ZPE asks the parser to peek ahead, the parser checks if the token has been parsed, and if not, it parses it, then returns that token. See, whenever you do a K(n) peek ahead, you parse n tokens, but in previous versions of the Zenith Parsing Engine, these tokens were discarded and reparsed again when the parser re-peeked at them or tokenised them, thus, storing a token cache, we can easily discern its value without reparsing it.
It's just astoundingly fast, and this improves CSV, XML, JSON, TOML, JBML and INI parsing too.
What this means is that ZPE is catching up to competitors for parsing speed, and there's still room for further enhancements that are planned for version 1.6.

The new version of ZPE will be released on Friday, marking one of the most exciting updates to date. Spanning three months rather than the usual one, it brings a slew of new features and changes designed to improve performance, add functionality, tighten the syntax, and enhance the UI.
It contains several significant changes, including the headline feature: a new parser, the Zenith Parsing Engine version 1.5, which offers up to 24% faster parsing speed by reducing backtracking in the parser.
Constructs
Labels and GoTo have been added to YASS. This is something I have tried to implement in the past, but have always disliked the way I've done it. I also think that, given YASS is meant to be object-oriented and unprocedural, it's not something that fits in with the standard, but it is here anyway.
$i = 0 label openloop print($i++) if ($i < 10) goto openloop end if print("Done")
Assertion has seen a massive change to make it more like other languages:
assert($a == [5, 8, 13, 21, 34])
Not only that, but the error identification is so much better than before when using assertions.
Bugs
Many bugs have been fixed, including:
- All properties of anonymous objects are now always accessible.
- Fixed a bug in the list_zpe_properties function to ensure it always returns all functions
- Added a new and more effective means of determining whether the program is run from a command line/headless
- Fixed the JSON parser to ensure it no longer double-checks every string for quote marks
Functions
Several new functions have been added:
- get_environment_variables
- get_percentile
- base64_encode
- base64_decode
- histogram
The beep function has also been significantly improved with more accurate frequencies.
Objects
Added two new objects:
- Colour
- Point
GUI
The GUI has been updated considerably:
- The rogue white line at the bottom has finally been removed!
- The curved UI has been improved further, as has the menu.
- The macOS icons are now manually rendered rather than relying on PNGs (this was always temporary)
- There's now support for BalfLaf Themes (blt) files
- There's now a property editor dialog for changing properties of ZPE
- There's now a lockdown option that can be set on individual installations of ZPE
- Symbols are no longer highlighted as part of the keyword set in the editor
- Built-in objects and imported objects are now highlighted
- New, clean and straightforward white icons are used at the top right of the GUI instead of the multi-coloured ones
- There is now an option to run ZPE Native if it is found in the correct place
- There's no longer an option to run code locally, and without running it through a separate ZPE process, which makes it easier to work with and prevents the GUI from crashing. The 'local' option is only used as a fallback.
The Quick Fire Command Window (-q) has also undergone significant improvements in both form and functionality.
ZPE Macro Interface Editor
There's a lot to discuss here, but in short, the macro editor has improved significantly over the last few months to the point that it's now become a key part of my other software. It has always been able to act on an object provided to it, but now it can give information on functions provided in the object, it can be used to not only make simple code and execute it, but also provide code back to the calling program that can be used call a macro when a button is clicked for example. See eTraxion for more information on how this is used.
Other changes
ZPE now stores data in a new folder on the system. For macOS, this is the Library/Application Support folder; for Windows, it is AppData; and for Linux and other operating systems, it remains the home directory.
Mathematical functions have been split into two separate categories: Numerical and Arithmetic, and Scientific Mathematics. This is because the Mathematics category was getting too large.
New ZPEKit methods have been added to provide more comprehensive access to the ZPE Core.
That's just been a quick overview of the main new features coming to ZPE in version 1.13.8, which will be released on Friday. I'm exceedingly excited!
This rebrand marks more than just a name change — it signals a renewed vision.
eTraxion consolidates its role as an all-in-one solution for tracking, reporting, and monitoring across the education sector. Designed with educators in mind, it brings together powerful features under a unified identity, streamlining everything from learner progress to departmental analysis.
The new name reflects my commitment to driving traction, promoting transparency, and fostering transformation in educational data management.
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.
I never expected much from a Nintendo alarm clock, but Alarmo pushes all the wrong buttons for me, and I've hated it since day one.
First, the pros are that it's easy to set up, the interface is simple, the sounds are fab, and the sleep tracking is excellent. New music is being added over time, too!
But for me, that's where it ends. But the thing is, my Apple Watch can do all of that anyway, as can my iPhone. Additionally, it's fidgety having to stop and alarm (which I guess is the point), and it's made more fidgety by being on my bedside table and not responding to my voice (again, maybe the purpose of such a device is to do this). Next, the fiddly button on the top. Why not just add a touch screen? WiFi was particularly frustrating to do on this control stick.
For now, my Alarmo will go away into a cupboard, and I will likely set it up in the spare room when guests come round. It no longer feels right having this wake me in the morning alongside my HomePod.
This thing is a waste of money, even if you're a Nintendo fan like me!
We’ve gone full circle in UI design. What began as the richly tactile skeuomorphism of early smartphone interfaces gave way to the clean simplicity of flat design, only to reincarnate as the soft shadows of neumorphism—and now we find ourselves embraced by a new "glass" look. With Apple’s recent introduction of their frosted-glass style effect, it’s clear that designers are once again drawing inspiration from the physical world, layering translucency, depth, and context to bring digital surfaces to life.
From leather stitching to simple borders
In the late 2000s and early 2010s, skeuomorphic interfaces reigned supreme. Buttons looked like real buttons, notes looked like yellow legal pads, and readers flipped virtual pages in the Newsstand app. The goal was familiarity: to help users learn digital tools by evoking real-world metaphors.
But by 2013, Apple’s iOS 7 heralded a new era. Shadows vanished, textures flattened, and colours brightened. Suddenly, interfaces felt more abstract—icons became simple glyphs, and grids and cards organised content with minimal ornament. This "flat design" philosophy prioritised clarity, performance, and scalability, influencing everything from Android’s Material Design to countless web and desktop applications.
Neumorphism
Fast-forward to around 2020, and designers began craving warmth and tactility within flat layouts. Enter neumorphism—a style that married flatness with subtle, extruded shadows. Elements appeared as though gently raised or inset into the background, lending a sense of touchable realism without reverting to literal material textures.
While visually striking, neumorphism proved challenging for accessibility. Low contrast between elements and backgrounds sometimes made interfaces hard to navigate, and the delicate shadows could feel more decorative than functional.
Glassmorphism
Now, we're witnessing a resurgence of layered translucency with Apple’s freshly unveiled frosted-glass effect (first glimpsed in their latest OS previews). Unlike skeuomorphism’s heavy textures or neumorphism’s tonal embossing, glassmorphism leverages blur, light, and colour bleed:
- Depth & Context: Background content subtly shows through translucent panels, reinforcing spatial relationships without overwhelming.
- Focus & Hierarchy: Blurred backdrops push primary controls and information into sharper relief, guiding user attention naturally.
- Modern Nostalgia: The effect nods to Windows Aero’s “glass” of the late 2000s while feeling fresh thanks to Apple’s refined blur algorithms and dynamic colour adaptation.
In practice, glassmorphism offers both form and function: you see hints of underlying content (context preserved), but the blur ensures legibility and focus. Apple’s implementation dynamically adjusts tint and translucency based on ambient lighting and on-screen content, creating a living, responsive canvas. This is rare in modern UIs.
So where are we now?
Design trends rarely die—they evolve. Skeuomorphism taught us the power of metaphor; flat design taught us clarity and efficiency; neumorphism reminded us of dimensionality; and glassmorphism now balances all three, marrying context, aesthetics, and usability.
This cyclical return speaks to a more profound truth: users crave interfaces that feel both intuitive and alive. Pure flatness can feel cold, and overly literal textures can feel gimmicky. However, translucent layers create interfaces that are simultaneously minimal and rich, echoing how we perceive real glass.
We should expect that push to continue, with more skeuomorphic elements and interfaces creeping back into our everyday life, and I'm not happy!