temp-postgres 0.4.0 Posted on 30 April 2026 temp-postgres is a small utility to run the PostgreSQL server off a temporary directory. It’s been almost six years since the initial release . The new version completes a major upgrade in terms of user experience and implementation: Rewritten in async Rust to improve error and signal handling UNIX-style command wrapper option Structured logging (also…
Brck Posted on 24 March 2024 I’ve just released Brck , a simple bit rot checker for legacy file systems. It records and compares the modification times and cryptographic hash sums of regular files. When a file’s hash changed but it’s modification time did not, then Brck reports the file as corrupted so you have a chance to restore the file from backup. You do have backups, right? 😉 You can find…
Unattended installation of Alpine Linux Posted on 3 November 2023 Today I would like to share a quick and dirty way to perform unattended installations of Alpine Linux . I use it to spin up offline and diskless local virtual machines on OpenBSD’s built-in virtual machine monitor vmm(4) for one-off tasks such as testing or cross-compiling a piece of software. However, the method I describe is also…
Parseq Posted on 20 December 2022 I’ve published my own parallel sequential iterator library for Rust, Parseq . Parseq provides an extension trait adding a map_parallel method to the standard iterator trait. It’s a drop-in-replacement for the standard map method. use std::time::Duration; use parseq::ParallelIterator; let mut iter = [3,2,1] .into_iter() .map_parallel(|i| { // Insert heavy…
Install rust-analyzer on OpenBSD -current Posted on 4 January 2022 The Rust Programming Language is anything but small. One thing that helped me find my way through the language and its libraries is the language server rust-analyzer . The manual lists numerous compatible editor integrations. For example, I’m happy with using Vim with vim-lsp and asyncomplete.vim . The project provides pre-compiled…
My first Rust crate Posted on 3 January 2022 Recently I decided to give Rust another try – if only to compare it to Haskell. After reading through the decent documentation, especially the book , I felt prepared to write some remotely useful application: a command-line application to compute the WPA pre-shared key of a Wi-Fi from its SSID and passphrase. Why? Because I needed to manually connect to…
Readable random passwords with jot Posted on 12 October 2021 My handwriting is hardly readable. Without the context of words, several pairs of characters are almost indistguishable, e.g., O and 0 , u and n , or 1 and l . Yet, I sometimes need to come up with and write down strong passwords to be deciphered by my future self, or some unlucky other person. That’s why I created a small script to…
First release of installiso Posted on 24 July 2021 One year ago I posted how to script an unattended installation of OpenBSD on the QEMU virtual machine monitor on Linux. The script involved setting up a complicated network boot environment because I treated the installation image as a black box. Of course, I could have mounted the ISO 9660 image and created a modified image using mkisofs(8) . But…
GoAccess log format for OpenBSD httpd Posted on 14 May 2021 GoAccess is a neat HTTP access log reporting tool for the command-line. In this post I’ll briefly describe how to import access logs generated by OpenBSD’s built-in HTTP server. OpenBSD’s httpd(8) supports four different log styles: The common and combined log styles are similar to the de facto standard access log formats of the Apache…
Temporary PostgreSQL server Posted on 14 October 2020 Today I want to share a simple shell script to spin up a temporary PostgreSQL database. I’ve been using this script for two years and found it useful enough to publish it now. The script is inspired by a blog post by Johannes Bornhold that reminded me of Unix’ simplicity. You can download it here . The script essentially performs seven steps:…
Auto-install OpenBSD on QEMU Posted on 22 July 2020 Update 5 October 2023: The two mirrors used below have removed the OpenBSD 6.7 release. As of this writing, you can still download the files from other mirrors, for example, from LeaseWeb . Update 17 March 2022: Starting with OpenBSD 7.0, autoinstall(8) no longer respects the TFTP server name option used below. I’ve added updated instructions at…
Unix Domain Socket Forwarding with OpenSSH Posted on 6 July 2020 OpenSSH is well-known for its ability to forward TCP ports from a local host to a remote host and vice versa. Typical use cases include: Access an otherwise unreachable server via a bastion host. Access the loopback interface of a remote host. Expose a local network service to a remote host. Recently, I had an interesting variant of…