20 Years of this Blog
Today marks 20 years since I first blogged. I wanted to give a little context to that post.
Framework 13 AMD
I recently bought a Framework 13 laptop as a personal machine. If you are not aware - Framework makes build-it-yourself laptops. I wanted to review different parts of the process and give an overview of how it’s been from ordering to delivery.
HomeAssistant Yellow Review
For Christmas as a gift to myself I bought a HomeAssistant Yellow. If you’re not familiar with HomeAssistant - it’s a one-stop-shop to control all your smart lights, plugs, sensors and anything else in your smart home. HomeAssistant is the software part and as it’s open source you can freely install it on any computer you have. In fact many people install HomeAssistant on a Raspberry Pi.
HomeAssistant Yellow is their own custom hardware with a built in chip for Zigbee (and now Threads) protocol, along with Bluetooth, WiFi and audio out. It takes a Raspberry Pi compute module 4 as its “brains”. This technically means it should - emphasis on should be upgradeable if a Raspberry Pi compute module 5 that is compatible with CM4 socket is produced.
Convert Bank Transactions XLS to CSV in Python
I’ve written previously on importing transactions to hledger/ledger from KBC bank in JavaScript and PTSB bank in Python. I took different approaches to each:
- For KBC, you needed to log in and run Javascript which scrape the transaction table and download it formatted as CSV
- For PTSB, the script automatted logging in, get the transaction table and save locally as CSV
Both approaches are valid - but suffer from the same issues: any change the bank makes to it website needs to be updated in the code. The KBC/JavaScript approach was a bit more robust in that it would just search for rows on a website and download as CSV.
Linux, Freesat and Saorview
I recently replaced a rusty satellite dish and faulty LNB (it has been in use in the house I moved in to for 10+ years I’d guess) and decided to try install one myself. Here in Ireland, the two main broadcast methods of receiving TV are satellite (Freesat / Sky) and terrestrial aerial (Saorview).
An issue I have one larger sitting room TV and one small living room TV. I couldn’t get both to be Samsung (out of stock on smallest sizes - which seem to be going out of fashion). So both TVs had very different methods of switching between satellite and aerial connections. I’m not sure if it is a hardware limitation (they make switching tuners slow to hide this), a licensing issue (broadcasters pay to be on the Freesat EPG for example) or a software issue (seems least likely). The fact multiple TV brands (in my case Phillips/Samsung) make it this clunky - makes me think it’s a licensing issue. I wanted to solve this by using an external box and having one mental model for navigating broadcast TV.
Ubiquiti Unifi with Sonos on a separate VLAN
Update 2023: these instructions are out-of-date for the latest Unifi controller software versions. It's preserved here as written for those who still have older versions. This post uses a file called gateway.config.json
and Unifi now say:
This article is not applicable to the UniFi Dream Machine models, because all configurations are already available in the UniFi Network user interface.
So I take that to mean use of this file is deprecated and it should be possible to do this via the administration webpage.
Ubuntu 20.04 Vagrant with Packer
Ubuntu have recently released the new 20.04 LTS codenamed “Focal Fossa”. I’d also recently seen a tool that piqued my interest, Hashicorp Packer. Packer builds machine images that can be deployed to a cloud or as a virtual machine, or just even a plain disk image. You can even generate many images at once, really simplfying deployment. Very handy if you wanted to create virtual machines for a cluster for example, with a similar but slightly different configuration.
Ubiquiti Home Network
Over the summer, I upgraded my home network to Ubiquiti gear. Ubiquiti do business Wifi, all the way up to covering stadiums. I first heard about them from Troy Hunt and then again from Marco Arment on Accidental Tech Podcast. Ubiquiti are popular in prosumer space - for people serious about good Wifi.
So far it’s been an excellent experience and I’d highly recommend it. After setting it up (there is a few moving pieces) it has been running without any intervention from me. Being a professional product, it’s not just a home router (with inbuilt wifi), there is a few more pieces you need to buy:
Scraping Transaction Data from KBC Bank
In a previous post, I mentioned importing transactions using ledger/hledger and plain text accounting. As my former bank PTSB recently raised their fees, I decided to move to KBC. I was excited to see, as part of the open payments directive, they have a nice developer portal. I reached out to KBC’s dev team, but alas they are only accepting registered companies, who meet stringent criteria. They told me they hope to open it up soon to end users, I live in hope!
Using IPv6 with Docker Compose on Ubuntu Server
I recently started using PiHole to block ads on my home network. As the name suggests, you install it on a raspberry pi. I left it in situ for about a month, until I decided I wanted to swap out the pi, but keep PiHole.
The natural solution to this, is to use a docker container. Rather helpfully, there is a publicly available docker build of PiHole. Simple, right? Well my home network is also IPv6, thus the DNS on the raspberrypi should be also. The problem is, Docker has support for IPv6, but it’s not very straightforward with Docker Compose.