Side projects I’ve been working on over the past couple of years in somewhat reverse chronological order. 2024/04-present Asbury Park happy hours Static website listing happy hours in Asbury Park, NJ. Used to be jekyll, rewrote in Rust using minininja . The “database” is a RON file. 2026/02 ntsc frei0r video filter plugin that uses ntsc.rs to emulate analog TV and VHS artifacts. 2026/01-2026/02…
In iOS when you enable the Personal Hotspot, it creates a separate bridge100 interface. So your tethered traffic goes out over this interface instead of the one your device traffic uses. So it counts against your tethered traffic instead of device traffic. There is a way to make the tethered traffic use the same outbound interface that device traffic uses. This is a walk-through of how to do that.…
Years ago I found a company called analogic . I thought it was brave that they put anal front and center in their name. Even their logo kind of looks like a techno-stylized puckered hole So I figured if an international corporation can choose this name, I can do something similar. Other words that make me laugh: analyze , therapist , banal , the ASS file format I turn 12 in February.
Arq 5 backup on macOS does not automatically create and back up from an APFS snapshot . By configuring Arq preferences with before and after backup scripts, you can take an APFS snapshot, mount it and perform the backup from the snapshot, then unmount when finished. This way the backup is point-in-time consistent. snapshot-before.sh #!/usr/bin/env bash diskutil unmount /tmp/snapshot set -o errexit…
SQLAlchemy ResultProxy.rowcount does work with SELECT statements when using psycopg2 with PostgreSQL, despite the warnings - as long as you aren’t streaming the results. This is because psycopg2 uses libpq PQexec along with PQcmdTuples to retreive the result count ( PQexec always collects the command’s entire result, buffering it in a single PGresult ). Using SQLAlchemy stream_results causes…
This describes how to configure an ipsec VPN in an AWS VPC with a customer who does not allow RFC-1918 (private) IP addresses in the VPC subnet. The basic idea is to expose a single host in the VPN using a /32 subnet of the VPN public IP. We can restrict each client peer to a specific port on that host and use port forwarding to connect them to internal hosts on private subnets in the VPC. So we…
Sometimes you want to secure local traffic in a private subnet for compliance reasons, e.g. HIPAA requires data in-transit to be encrypted. This can be done at the application level if the application supports SSL, but it can also be done independent of the application using IPsec transport layer encryption. In this example we have an AWS VPC with three Ubuntu 14.04 database instances in a private…
This is an Swift class to allow KVO observing using Swift closures, useable from a Swift class that does not subclass NSObject . From Swift, create a KeyValueObserver instance with the object being observed, the key path to observe and a closure to be called. As long as this instance remains alive, observations will be reported to the closure. To remove the observer, release the KeyValueObserver…
Mavericks doesn’t have Java installed by default. If you try to use the /usr/bin/java executable from Terminal, it will pop up a dialog prompting you to visit Oracle’s site and download a JDK. $ /usr/bin/java If you want to install Apple’s Java instead, then run java from a subshell. This will pop up a dialog prompting you to directly install Apple’s JDK. $ ` /usr/bin/java ` The Java installer…
There are two bugs that prevent the python M2Crypto 0.21.1 package from being pip install ed from pypi in a virtualenv on Ubuntu 13.10. First bug #696327 . libssl-dev is now multiarch and M2Crypto can’t find the opensslconf.h header: SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h' SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h' error: command 'swig' failed with exit…