Smart home: Starting with OPNSense Router, Eero Wi-Fi and a pile of cables
I recently moved into a home, that whether I like it or note, is rather “smart”. There is a Ring video doorbell, Ring camera out the back and Wi-Fi radiators throughout, not to mention the Wi-Fi fridge, dishwasher, washing machine, hot water tank and Amazon Echo Dot that I was recently gifted. In total, I…
COVID-19 Wikipedia pageview spikes, 2019-2022
Back in 2019 at the start of the COVID-19 outbreak, Wikipedia saw large spikes in page views on COVID-19 related topics while people here hunting for information. I briefly looked at some of the spikes in March 2020 using the easy-to-use pageview tool for Wikimedia sites. But the problem with viewing the spikes through this…
See all Windows 11 network data usage
Windows 11 (and possibly previous versions of windows) have a data usage view built into the advanced network settings view. This feature allows users to monitor and manage their data usage on both Wi-Fi and wired connections, and I assume also data connections if your device can be connected via a SIM. The Data usage…
Autoreload go code on code change
For developers, the ability to autoreload code upon any changes is nothing short of a game-changer. It not only streamlines the development process but also fosters an environment of continuous improvement and experimentation. There are so many packages for languages such as JavaScript for such a behaviour, but I struggled to easily find a simple-to-use…
Automatic cobra command registration with fx
Cobra is a popular Go package for creating CLIs. It provides a lot of functionality for creating commands, subcommands, and flags. However, it can be tedious to manually register all of your commands. fx is a Go package that provides a dependency injection framework. It can be used to automatically register your application components, including…
A copy-paste go SQL mock for GORM
When it comes to writing robust and reliable tests for your Go applications, having a well-structured and efficient testing setup is crucial. One common challenge in testing Go applications is dealing with database interactions. To ensure that your code functions correctly, it’s essential to create a controlled environment for database operations during testing. In this…
Verifying Wikimedia user page links on Mastodon
While reviewing the ongoings of the 2023 Wikimedia hackathon, I learned about the RealMe MediaWiki extension, which is already deployed to Wikimedia sites and allows verification of URLs that appear on user pages within other software or platforms, such as Mastodon. Link verification for dummies Imagine you want to show that your online profiles, like…
Dependency injection in go using fx, and replacing services for test
I’m writing a new go application and ended up giving fx (by uber) a try for dependency injection. The getting started docs were brilliant for my use case (creating an API), but the examples for how to inject mock services for tests were lacking, so I decided to write some code examples of how I…
Wikidata query service Blazegraph JNL file on Cloudflare R2 and Internet Archive
At the end of 2022, I published a Blazegraph JNL file for Wikidata in a Google Cloud bucket for 1 month for folks to download and determine if it was useful. Thanks to Arno from weblyzard, inflatador from the WMF search platform team, and Mark from the Internet Archive for the recent conversations around this…
Creating properties with statements using Wikidata Integrator
Wikidata Integrator is a Python library that simplifies data integration from Wikidata (and other Wikibases). It is written in Python, is focused on Wikibase concepts (as opposed to some libraries which are MediaWiki focused) and has a user-friendly interface. I’m currently working on a demo Wikibase and decided to bring all of the data into…