Posts published by: Zack Marvel

Debian: Installing docker broke my bridge interface!

These are partly notes for myself, but I'll publish it in case it helps someone.

After installing Docker, I could no longer reach my VMs from outside the VM host (where I also wanted to run Docker).

My network configuration looks something like this:


SQLAlchemy `order_by` gotcha

Today I encountered a surprising SQLAlchemy gotcha. In short, if you have a Query object and call its order_by method on the same column more than once, the first ORDER BY is not superseded. Here's an illustrative example. I'll include the boilerplate code (schema, etc.) at the end of the …

Read-only root filesystem on a Debian Buster system

First, a little background

I was hoping to set up a read-only SD card with a ram-based filesystem on a Raspberry Pi. They're kind of notorious for becoming unbootable, and understandably so, after the power's been pulled a few times. I decided to play around on a Debian 10 VM …

Debugging initramfs-tools scripts on Debian

I was having a hard time trying to wrap my head around how initramfs-tools works. Basically, this is the infrastructure that a Debian system typically uses to generate the initramfs, the inital in-memory, read-only filesystem used while the Linux kernel is booting (after the bootloader, but before most of the …

Curried chickpeas recipe

I've made some approximation of this recipe a couple of times and have been happy with how it turned out.

The recipe itself is meant to serve as a loose guideline--you could substitute a lot of the ingredients and it would turn out fine. For example:

  • Olive oil instead of …

Dynamically generating SQLAlchemy tables


Here's the background: I had some structured data that I wanted to log to a database. That took the form of Python classes something like this:

class Message:
    code = 0x00
    endianness = '!'
    payload_format = {
        'device_address': 'L',
        'packet_id': 'L',
        'length': 'L',
        'enable': 'L',

    def __init__(self, **kwargs):
        self.fields = kwargs

I wrote …

An update on projects

Traditionally, I haven't written much about my life and what I'm working on. I keep most of that stuff for my Twitter, but it might be interesting to write short updates once in a while. I don't know how much I want to write about my personal life, but I'm …