I used various Subsonic clients for a number of years, but the clients were always lacking. Android clients were buggy or didn't prioritize local caching and I preferred to use mpd+ncmpcpp on my laptop.
I ended up switching to fully-local media after realizing that my 956GB flac+mp3 would be ~159GB when converted to Opus. I now use https://github.com/nvllsvm/harmonize to maintain a 128kbps Opus version of my main library and Syncthing to synchronize it to my phone and laptop.
---
side note, Auxio is the client I'm using on Android with my synced library.
Better yet, GrapheneOS allows you you sandbox Google's crap if you need or want it. Very useful when needing to use a proprietary app that requires it.
I can't recommend libvips enough. I recently switched to it from ImageMagick+tificc in a flatbed scanner appliance and am seeing a minimum of a 2x performance increase with minimal memory usage. libvips makes it easy to setup a pipeline of transformations and utilizes all CPU cores by default.
I've had a lot of luck capturing USB packets using a Windows virtual machine and Wireshark on a Linux host. Most recently I've used this to reverse engineer the configuration protocol of the Pulsar X2 v2 Mini gaming mouse.
I've also used this to capture the firmware update flow for the gamepad on a GPD Win 2. A physical sniffer wouldn't be ideal here since the gamepad - while USB - is embedded within the device.
I use KOReader to read epubs on Android, but not PDFs. Being geared towards eink devices, KOReader lacks the smooth panning+zooming one would typically expect in an Android PDF reader. I've settled on using Bubble2 when I need to read a PDF, though I'd prefer to use my laptop when possible.
I keep them mostly space efficient by combining as many things into each bin while remaining easy to find due to the labels. Inside the boxes, most cables are individually coiled using releasable zip ties. Velcro ties get dirty too easily.
I have fequently used cables hanging on a wall hook without cable ties. I also have a small drawer organizer I keep various other frequently used things in (lots of USB-C to legacy adapters, zip ties,...).
This is how I do it. Move to bigger bins if that "category" of cables gets too big. The zip ties are key here so that there are no rats nests. I have a rule for myself that I won't put a cable in unless it's coiled into a circle and zip ties at two points. It's worked well for years.
This is why I encourage not overriding common commands in $PATH. Setup an alias instead so it only applies to interactive shells (or just type the new command :p).
Shell scripting is already fickle enough with compatibility issues across the major implemtations of POSIX utils (GNU, macOS/ BSD, Busybox). Even /bin/sh itself cannot be relied upon to behave consistently across platforms. Notably, Busybox's ash supports the non-POSIX substring syntax that Bash does. This won't work on distro's like Debian where /bin/sh is linked to dash shell.
reply