Updating a 5 Year Old Android To Build With Android Studio 2024.1.2


A (long) while back I built a simple android app to help me manage my text messages. It was kind of novel and fit a niche use case I had. Eventually I moved on to other approaches and the code sat dormant for 5 years. I decided to revive the project and build an APK which would work on my Android 14...


VLAN Configuration across Mikrotik CRS310 and OPNSense 24.7.2


I'm in the process of replacing my aging pfSense deployment with a combination of new OPNSense setup and a Mikrotik CRS310-8G+2S+IN. This lets me run 2.5Gb Ethernet as an upgrade from the 1Gb that I've been accustomed to. For now I'm only upgrading 2 network segments with corresponding VLANs. With m...


A Bash one-liner for printing GIF comics emailed from gocomics


My son likes comics (Calvin & Hobbes, Sarah's scribbles, etc...) so I like to include one in his lunchbox each day. With my gocomics.com subscription I get emailed a set of comics each morning and I save the images to be printed later by my receipt printer. For the last year my bash one-liner has wo...


Adventures in Installation: VMware Workstation 17.5.2 on Ubuntu 24.04


As part of my continued efforts to upgrade to Ubuntu 24.04 I encountered an issue while installing VMware Workstation. Specifically, the kernel modules would not compile... I've encountered this issue before, and have had to apply out-of-band patches to address this issue. Those did not appear to work this time and I had to do some investigating.


Backup and Restore - Migrate - Signal Desktop Messages (Linux/Ubuntu)


As part of my migration from Ubuntu 22.04 to a clean install of 22.04, I wanted to migrate my Signal messages to the new install. Signal Foundation does not provide a way to migrate message history on 'desktop' platforms, which is one of the few frustrating things about Signal and may eventually drive me to a different messaging platform. Fortunately, there are others who have walked this path before me and there appears to be a way to migrate signal desktop messages and configurations from my old Ubuntu install to the new one.


Enabling the fingerprint reader on my Dell 5750 in Ubuntu 24.04


It's been a few months since Ubuntu 24.04 dropped and its time I upgraded to the latest LTS from Canonical. My Dell 5750 has 2 SSDs which lets me 'upgrade' via fresh install while leaving my previous release untouched. After installing 24.04 I ran into an issue that I've seen before: the fingerprint scanner (27c6:533c Shenzhen Goodix Co., Ltd. Fingerprint) was not recognized.

Fortunately the fix was straight forward enough, once I found the key


Boot failure: /init: line 256: /sbin/zpool: Text file busy (AMD 7950x3d)


Over the last couple of months I'd noticed a strange message which appeared at boot time:

error: out of memory.
Press any key to continue...

Up until now I hadn't had to do anything except let the system sit for a few seconds as it would appear to 'self-correct' and boot me into Ubuntu 22.04. Today I experienced a different issue where my zfs root partition will not mount and I'm dropped to a busybox shell and left to wonder what went wrong?

Begin: Running /scripts/local-premount ... done.
[    8.710953] ZFS: Loaded module v2.1.5-1ubuntu6, ZFS pool version 5000, ZFS filesystem version 5
Begin: Importing ZFS root pool 'rpool' ... Begin: Importing pool 'rpool' using defaults ... Failure: 126
Begin: Importing pool 'rpool' using cachefile. ... Failure: 126

Command /sbin/zpool import -c /etc/zfs/zpool.cache -N   'rpool'
Message: /init: line 256: /sbin/zpool: Text file busy
Error: 126

Failed to import pool 'rpool'.
Manually import the pool and exit.

When I try to directly re-run the zpool command above, I get a Text File Busy error, which is entirely unhelpful...

(initramfs) /sbin/zpool import -c /etc/zfs/zpool.cache -N   'rpool'
Message: /init: line 256: /sbin/zpool: Text file busy
Error: 126

Eventually I was able to find the solution to my boot issue.


How to Configure the Mikrotik hAP ax lite as a WiFi Client (WPA2-Enterprise)


I'll be at DEF CON 31 next week and in preparation for the event have upgraded my portable wifi router to a Mikrotik hAP ax lite. My preference is to have a separate device handle WiFi connectivity to conference networks and use wired connectivity to the various devices I like to operate during the event. What I like about the hAP ax lite is that it is powered through a USB-C connector and includes the capability to act as a WiFi client to pass traffic back to the 4 ethernet jacks provided on the back of the unit.

As this is my first time configuring a Mikrotik router, I want to document it for future reference.


Linux: Flashing Firmware on the DC Darknet Badge for DEF CON 31


Being the contrarian that I am, I don't run Windows or Mac OS on any of my workstations. As a result my path to flashing firmware on the DC 31 Darknet badge is a little more complicated. This post walks through what I did to get the badge setup without using the 'web flasher'.

Here's a picture of the device:


First steps towards MLOps: Goals, Setup and Initial Operation of an OSS model locally


Back in February I started to take an interest in Artificial Intelligence (AI) given the then recent developments in the field. Since then there has been an explosion of generalized interest in Large Language Models (LLMs), which from where I sit started with the leak of Meta AI's Llama Model. At the time I made a mental note to return later in the year (when I had time) to play around with the technology and investigate applications of Generative AI... Months passed on by with high priority / high stress work commitments dominating my waking hours, culminating in a week long offsite in June.

I resolved to take a 'bi-modal' approach to learning and applying machine learning / AI technology:

  1. Gain an understanding of the art from first principles to form a foundation for effective use of the technology
  2. Download, deploy and apply available technology to gain experience in the application of Generative AI

It might come as no surprise to note that this approach lends itself towards unique challenges as I interleave time to both of these avenues of investigation.

This post describes what steps I took to build out a 'functional' ML stack sufficient to download and run freely available LLMs.