RSSAmplifier

Blog

crush depth

blog.io7m.comRSS feed ↗133 posts

Latest posts

Closing Shop

"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 ...

New PGP Keys

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 ...

How I Would Build A Home NAS (2025 Edition)

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...

How I Run Containers (2025 Edition)

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" ...

Bosch serial numbers II

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...

A Confusion Of Wireguards On Hetzner

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...

MTU Strikes Back: Wireguard

"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#...

Bosch serial numbers

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...

Ab nach Bayern!

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, ...

One Down

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...

New PGP Keys

It's that time of year again. Fingerprint | Comment --------------------------------------------------------------------------- EEB8 AB46 DD49 21F9 2D65 2951 AF65 0323 17B1 1325 | 2025 personal 12BC 7CF4 BB72 BD17 F7F...

Once You Have Their Money…

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...

NAS HDD Pricing

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...

A Dumb Solution To Fat Pixels In Blender

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 Rube Goldberg Machine Of Metrics

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...

Pork Vultures

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...

Being Organized

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...

Pennies Saved On Construction

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...

Becoming Organized

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...

Seasonic SS-600H2U Issues

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...

A Workflow For Wide Outpainting

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...

send-pack: unexpected disconnect while reading sideband packet

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...

Consistent Environments In Stable Diffusion

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...

New PGP Keys

It's that time of year again. Fingerprint | Comment --------------------------------------------------------------------------- E362 BB4F 16A9 981D E781 2F6E 10E4 AAD0 B00D 6CDD | 2024 personal 37A9 97D5 970E 145A B9D...

Batch Files Are Not Your Only Option

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...

Vulkan Memory Allocation (Part 1 of N)

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...

To Fastmail

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.

Batch Files Are Your Only Option

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...

JDK 21

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...

Journey To The ... Earth

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...

New PGP Keys

It's that time of year again. Fingerprint | Comment --------------------------------------------------------------------------- A438 A737 C771 7871 95CF C166 F843 51F7 2C91 8476 | 2023 personal 62AB 091D 563E 51BE 9E5...

Boot Config

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 ...

New PGP Keys

It's that time of year again. Fingerprint | Comment --------------------------------------------------------------------------- 2680 A50E FD03 2007 FABE 8C87 B0E4 322E EE81 8BDE | 2022 personal 3CCE 5942 8B30 462D 104...

Cold Spot ABS

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...

Using Changelog

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...

New PGP Keys

It's that time of year again. Fingerprint | Comment --------------------------------------------------------------------------- 2C83 11D5 E344 626A E76E B866 CB39 C234 E824 F9EA | 2021 personal B32F A649 B192 4235 A6F...

Protocol Versioning

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...

eSun ABS

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...

Eryone PETG (Part 3)

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...

Eryone PETG (Part 2)

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....

Eryone PETG

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 ...

Tukkari Enclosure

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...

Prusa i3 MK3S

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...

Heavy Water Station

""Heavy Water Station" (/2020/09/11/heavywater.jpg)" (https://github.com/io7m/com.io7m.visual.heavywater) "Source" (https://github.com/io7m/com.io7m.visual.heavywater)

Nexus At Library Simplified

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

""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)

JDK Support Range Change

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...

MAC Address Conflicts Hurt

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"...

The Vanishing Path 1

""The Vanishing Path 1" (/2020/03/19/VanishingPath1.png)" (https://github.com/io7m/com.io7m.visual.vanishing_path1) "Source" (https://github.com/io7m/com.io7m.visual.vanishing_path1)

New PGP Keys

It's that time of year again. -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Fingerprint | Comment - ------------------------------------------------------------------------- E369 81ED 130D B4F6 8D42 0248 BBFF DB75 ...