"Closed" (/2026/06/25/shutters2.jpg) I'm moving to an "SQLite-style open-source but not open-contribution" (https://sqlite.org/copyright.html) model for development. I'm no longer interested in hearing bug reports and do not want PRs. I'll be moving all ...
It's that time of year again. Now that Maven Central and seemingly everywhere else now supports "ED25519" (https://en.wikipedia.org/wiki/EdDSA) keys, I've eliminated all RSA keys and reduced the keys I work with down to a set of three. Fingerprint ...
NAS You want a "NAS" (https://en.wikipedia.org/wiki/Network-attached_storage) device that is "repairable" (#repairability), "non-proprietary" (#non-proprietary), "reliable" (#reliability), "energy efficient" (#energy-efficiency), "cost efficient" (#cost-ef...
Having run "FreeBSD" (https://freebsd.org) for nearly two decades, I eventually got frustrated with it for various reasons and moved my workloads from "a lot of virtual machines on a FreeBSD "bhyve" (https://bhyve.org/) host" to "a lot of "OCI containers" ...
After a lot more back and forth with "Bosch support" (/2025/03/27/bosch-serial-numbers.xhtml), I finally got an actual answer. The serial number on a Dremel is written on what they refer to as the "data plate" on the side of the tool. The number doesn't m...
I'm in the process of migrating "io7m.com" (https://www.io7m.com) to "Hetzner" (https://www.hetzner.com/). My previous setup on "Vultr" (https://www.vultr.com/) consisted of a single "bastion host" (https://en.wikipedia.org/wiki/Bastion_host) through whic...
"Years ago" (/2017/10/13/ipv6-and-mtu-woes.xhtml), I had to deal with some aggravation around "IPv6" (/glossary.xhtml#ipv6). My connection to my ISP is such that I'm using "PPPoE" (/glossary.xhtml#pppoe) which means I have to use an "MTU" (/glossary.xhtml#...
Like any good obsessive, I keep an "inventory" (https://github.com/io7m-com/cardant) of computer parts, tools, and so on. The inventory keeps track of serial numbers so that I can answer questions like "Which machine did that PSU end up being installed int...
I'm planning to move hosting from "Vultr" (https://www.vultr.com/) to "Hetzner" (https://www.hetzner.com/). I can't fault Vultr, I've been with them since "2017" (/2017/07/04/vps-provider.xhtml). The functionality Vultr provide, their transparent pricing, ...
I did end up buying "6 × 8TB drives" (/2024/11/01/nas-hdd-price.xhtml). Specifically: * 2 × Western Digital Pro Red 8TB * 2 × Toshiba N300 M/N 8TB * 2 × Seagate IronWolf NAS 8TB About a week ago, one of the Toshiba drives started producing I/O erro...
I recently decided to publish a paid-but-open-source "application" (https://www.io7m.com/software/exfilac/) for getting data off of Android devices and into S3 buckets. Unfortunately, Google have added so many restrictions and requirements to the awful Pl...
Note: Prices aren't static, and everything written here will likely be invalid inside a year. The analysis process was fun, though, and would work regardless of how prices change. I'm about to replace an existing backup storage server. The existing server...
There's a lot of literature on "filtering pixel art" (https://jorenjoestar.github.io/post/pixel_art_filtering/) in modern rendering engines. The basic issue is that we want to use nearest-neighbour filtering in order to preserve the sharp, high-contrast lo...
The traditional starting point for monitoring is to install "Prometheus" (https://prometheus.io/docs/introduction/overview/) and have it scrape metrics from each machine being monitored. Each monitored machine runs a node-exporter service that exposes metr...
I was using "Vultr DNS" (https://docs.vultr.com/introduction-to-vultr-dns) to serve DNS records for my various VPS instances up until the point where I wrote and deployed "certusine" (https://io7m.com/software/certusine/) to manage ACME-issued certificates...
Following on from a "previous episode" (/2024/04/28/becoming-organized.xhtml), I've migrated any actively-maintained software projects to the new "organization" (https://github.com/io7m-com), and archived a lot of projects that weren't maintained and weren...
In a "previous episode" (/2024/04/22/seasonic-ss-600H2U.xhtml), I moved the contents of a server into a new "SC-316" (https://www.servercase.co.uk/shop/server-cases/rackmount/3u-chassis/3u-server-case-w-16x-35-hot-swappable-satasas-drive-bays-12gbs-hd-mini...
I have an idiotic number of GitHub repositories. There are, at the time of writing, "536" repositories in my account, of which I'm the "source" for "454" of those. At last count, I'm maintaining "159" of my own projects, plus less-than-a-hundred-but-more-t...
I recently moved the components of an existing server into a new "SC-316" (https://www.servercase.co.uk/shop/server-cases/rackmount/3u-chassis/3u-server-case-w-16x-35-hot-swappable-satasas-drive-bays-12gbs-hd-minisas-sc-316/) case. I ordered a "Seasonic SS...
Edit: "https://github.com/io7m/com.io7m.visual.comfyui.wideoutpaint" (https://github.com/io7m/com.io7m.visual.comfyui.wideoutpaint) One of the acknowledged limitations with "Stable Diffusion" (https://en.wikipedia.org/wiki/Stable_Diffusion) is that the un...
Mostly a post just to remind my future self. I run a "Forgejo" (https://forgejo.org/) installation locally. I'd been seeing the following error on trying to "git push" to some repositories: $ git push --all Enumerating objects: 12, done. Counting objects...
I've been working with "Stable Diffusion" (https://en.wikipedia.org/wiki/Stable_Diffusion) lately. One acknowledged "problem" with these kinds of text-to-image systems is that it's difficult to generate consistent subjects and/or background environments b...
A "while ago" (/2023/11/10/batch-files-are-your-only-option.xhtml) I got into a fight with "jpackage" (https://docs.oracle.com/en/java/javase/21/docs/specs/man/jpackage.html). Long story short, I concluded that it wasn't possible to use "jpackage" to produ...
I've recently been looking into the allocation of device memory in "Vulkan" (https://vulkan.org/). It turns out there's a lot of complexity around balancing the various constraints that the API imposes. Device Memory Vulkan has the concepts of device memo...
I'm shutting down my mail server and moving to "fastmail" (https://www.fastmail.com). If everything works correctly, nothing should appear to be any different to the outside world; all old email addresses will continue to work.
Edit: This is "wrong" (/2023/11/27/batch-files-are-not-your-only-option.xhtml). Wasted a day getting aggravated at the options for producing per-platform distributions for Java applications. I have lots of applications. None of them are platform-specific...
Like many people, I've been waiting for "JDK 21" (https://jdk.java.net/21/) for a long time. Now that "Eclipse Temurin" (https://adoptium.net/) has JDK 21 builds, I'm finally now starting the push to upgrade all of my projects to JDK 21. Primarily, I'm in...
I bought a "Yamaha Pacifica PAC120H" (https://uk.yamaha.com/en/products/musical_instruments/guitars_basses/el_guitars/pacifica/pac_100.html) a while back. I wanted a guitar that I could use as a testbed for hardware experiments. Ideally, an inexpensive gui...
Did a pile of server updates today, and for some reason one specific VPS refused to boot with this error: "Boot error" (/2022/01/31/booterror.png) It turned out I hadn't updated the boot code to handle the latest zpool version. There's a note about this ...
I'm attempting to print a part like this: ""Part" (/2021/10/18/thumb_part0.png)" (/2021/10/18/part0.png) The part must be printed in the orientation shown due to the anisotropic properties of 3D printed parts: The part needs to be printed such that the p...
Installation All of this is in the "documentation" (https://www.io7m.com/software/changelog/documentation/d2e49.xhtml), but here's a friendly version. First, grab the "changelog" (https://www.io7m.com/software/changelog/) "jar" file and wrapper script. At...
Been thinking about protocol versioning recently, and this post is more or less an attempt to organize my own thoughts on the matter. Protocol Versioning is what it sounds like... Much like software has version numbers to track changes over time, protocol...
Ordered and received some "eSun ABS" (http://esun3d.net/products/382.html). I must admit, I was expecting a fight. If you look on the internet regarding the printing of various filaments, you'll find page after page describing ABS warping, cracking, and o...
See "Part 1" (/2020/10/30/eryone-petg.xhtml), and "Part 2" (/2020/10/31/eryone-petg-2.xhtml) first! Success! ""Boats" (/2020/10/31/boats_thumb.jpg)" (/2020/10/31/boats.jpg) It seems that the issue was printing with a "0.3mm" layer height. There's simply...
See "Part 1" (/2020/10/30/eryone-petg.xhtml) first! I realized I never checked to see if the extruder was actually consuming "10mm" of filament each time it asked for "10mm". In other words, I never calibrated the "extrusion multiplier" (https://www.help....
I'm relatively new to 3D printing, so I don't have an intuitive understanding of what to expect from various materials. I'm going to start documenting the various materials each time I try a new one. Unfortunately, my testing methodology won't be all that ...
For 3D printing, I want to print with more challenging materials than the standard "PLA" (https://en.wikipedia.org/wiki/Polylactic_acid) filament. Materials such as "PETG" (https://en.wikipedia.org/wiki/Polyethylene_terephthalate) benefit from the increase...
Recently decided to start learning about 3D printing. Ordered a Prusa i3 MK3S kit a few weeks ago, and it arrived a couple of days ago. The packaging and documentation was excellent, and the print results essentially flawless. ""Packaging" (/2020/09/12/DS...
Gave a presentation at the "Sonatype User Conference" (https://www.sonatype.com/nexus-user-conference-2020) back on "2020-08-12" on how the "Library Simplified" (https://www.librarysimplified.org) project uses "Maven Central" (https://search.maven.org/) an...
""The Sleep Of The Engineer" (/2020/08/23/engineer.jpg)" (https://github.com/io7m/com.io7m.visual.engineer_sleep) "Source" (https://github.com/io7m/com.io7m.visual.engineer_sleep)
I'm considering changing the range of JDKs I support. Right now, I specify JDK "11" as the target bytecode level. That is, you require at least JDK "11" to run any code I write. I specify the range of allowed compiler versions as "[11, 14]". That is, you...
I've been running a server on my LAN here for a couple of years. This week, I built a new machine and am in the process of trying to migrate to the new hardware. However, something odd happened... With an SSH connection open to the old server ("cranberry"...