Welcome to my blog with some of my work in progress. Click on “Projects” to see what projects I’ve been working on.
My most recent posts are below. You can see all of my posts by clicking “Posts” in the main navigation.
Welcome to my blog with some of my work in progress. Click on “Projects” to see what projects I’ve been working on.
My most recent posts are below. You can see all of my posts by clicking “Posts” in the main navigation.
My Filco Majestouch 2 Keyboard (with Cherry MX Brown switches) has served me well as a work keyboard for over a decade (I purchased on 30/01/2013).
However today when I plugged it in to my laptop it would not recognize the keyboard. I found that moving the cable around would make it connect and disconnect.
I had a look at websites for replacement cable assemblies but there was only one online store in the UK that had non braided versions. I also tried to see if there was any easy way to convert to a USB C port but I couldn’t find any quick/easy ways to do this.
When I first decided to create this blog I was at a critical point in deciding what to host on-premises and what to host in the Cloud. As much as possible, I was trying to move workloads to the Cloud so that I didn’t have to worry about hardware failures and backups.
My previous experience in Content Management Systems defaulted to self-hosted WordPress installations. I have operated many WordPress sites over the years and although it is not perfect, it is relatively easy to add dynamic content and maintain (once you have set it up).
I was pair programming with a friend of mine (who is getting more in depth into programming) on a small project and the subject of tests (as in Unit Tests) came up to try and debug some behaviour. My friend then communicated that they have not written many tests and was a bit unsure of how to get started. To which I very much appreciated their honesty (it’s often not easy).
I know this sounds crazy right? Lets rewind a bit so we can try and understand why.
In a previous post Material 3 + Flutter 3.16.0 Broke Pi Garage Theme I stated that you should pin core dependencies. Apart from the Flutter version there was another place that I did not pin dependencies specifically enough. This was in the Dockerfile. Here I has specified the node version as below.
FROM node:18
As you can see although this would limit the Node version to 18 this would allow anything from 18.0.0 through to 18.100.0. Something very interesting happened with version 18.19.0. In the Release Notes one of the first things mentioned is that npm 10 has been backported and included. This like the Flutter + Material 3 issue linked above caught me by surprise.
The release of Flutter 3.16.0 introduced something that caught me out and broke the theme in the Pi Garage companion mobile app.
lthough Material 3 has been “opt in” for quite a while (I couldn’t find since when) it is only in 3.16.0 breaking changes you can see that this version has flipped the default value for the flag (useMaterial3) from false to true.
In the Pi Garage mobile app I did not set this flag to false when it was introduced as well as I didn’t lock the version of Flutter in the GitHub action that built and deployed the Android and iOS apps.
It’s been a while since Pi Garage V2 has been released and I have not mentioned it on my socials. Since this is a major release I thought I would go into a bit of detail on to why I decided to make a major release version bump as well as the nitty gritty to what changed.
Although V1 worked it had a pretty big flaw in my opinion and it was related to how it handled the sequences. To rewind, in Pi Garage a sequence is the actual hardware “actions” that take place when a door is “opened”, “closed” or “toggled”.
Whilst performing the server migration (detailed in some of my previous posts) I had to perform a database migration of a Postgres instance.
This database though not critical is a basic Data Warehouse that is the data storage for a data scraper application. This means that although some down time is acceptable a large window of downtime of the database would result in a large data gap.
In my last post Windows 2012 R2 Decommission I mentioned about a problem that would change my whole architecture.
Whilst copying all the data over Samba from my M1 Max Macbook Pro over Gigabit Ethernet and having the Plex server access the files using NFS over Gigabit Ethernet it seemed like everything was going perfect. Transfer speeds of > 100MB/s were achievable in both directions.
However, over WIFI connecting over Wireless AC I was only getting around 10MB/s. Transfer speeds to the old Windows 2012 R2 server over WIFI were about 40-45MB/s. Nothing else in the network had changed.
My NAS/File Server has gone through multiple iterations after the years so it’s interesting to know the reasons for each iteration and the reason why I’m migrating it once again.
My first NAS implementation was an old desktop PC running Ubuntu 11.10 that was running samba. I didn’t know about using RAID/mdadm at that time so it used a single 2TB hard drive that would mirror itself with rsync to another 2TB hard drive nightly.
Pi Garage version 1.8.0 has been released. In this version the mobile app has been given the ability to have multiple configurations saved.
The main driver for this was so that other people who had a Pi Garage could simply give you the configuration details and you could add this as a second (or even tenth). Before this you would have to destructively edit your existing configuration which would be a pain if you had a complex API key.