Automating all the things.
Monday, 2023-03-13
Random fiddling day.
- Revisited RDP connections from Remmina to a domain-joined machine: Security protocol set to
TLS
,DOMAIN\username
authentication (not theUPN
),Best
quality. - Cleaned out my
homebridge
configuration (also disabled automatically adding 433MHz sensors discovered byOpenMQTTGateway
, which was a cute puzzle to sort out). - Triggered some monthly
restic
backups. Remember, kids, always have an off-site backup. - Looked at ComfyUI, which is intriguing to say the least (and a breath of fresh air after kludgy Stable Diffusion WebUis where the actual workflow is a mess).
- Sorted out some media archives.
Tuesday, 2023-03-14
I can never get the hang of Tuesdays. My work laptop died mid-afternoon, so I found myself with some time in between troubleshooting sessions.
- Found it rather amusing that I serendipitously sorted out remote desktop domain authentication yesterday, almost as if I predicted this. Still can’t get Remmina to work with corporate WVD, though, so might have to turn the U59 into a temporary “corporate” desktop.
- Did some spelunking in
OpenMQTTGateway
code andMQTT
topics to understand what it can decode in the 433MHz band and how it is mapped to topics. - Spent half an hour with WeasyPrint to generate a presentable document out of Markdown notes. Still the best Python PDF generation tool out there, and has pretty decent
CSS
support, plus it’s trivial to automate:
MARKUP = $(wildcard *.md)
all: $(MARKUP:.md=.pdf)
%.pdf: %.html layout.css
python -m weasyprint -e utf8 -m A4 -s layout.css $< $@
%.html: %.md
python -m markdown < $< > $@
- Created a ComfyUI sandbox on
borg
and spent a while collecting all the requisite models and going through the (maybe too whimsical) examples. Really happy with the UX so far, and with the fact that I went with a 12GB GPU. - Began adding docstrings to my py-sdf fork to make it easier to use with VS Code autocomplete.
Wednesday, 2023-03-15
Mid-week slump. Slept horribly, had a lot of catching up to do, still managed to have a few productive breaks:
- Realized Godot 4 was already in Fedora testing and grabbed it (it went into mainstream 3 days later).
- For the first time this year, added a little bit more content navigation functionality to the site. Still very happy with the way the static page generator turned out.
- Given my work laptop woes, tried to get a semblance of my usual environment working over RDP device redirection:
Client (Fedora)
- Remmina, Advanced, Redirect local microphone,
sys:pulse
- Remmina, Advanced, USB device redirection,
id:0fd9:006d#3564:fef4,addr:01:0b
Also make sure you can access the USB devices (some might be automatically accessible to dialout
group members, but this makes sure):
# cat /etc/udev/rules.d/70-passthrough-access.rules
# Elgato StreamDeck
SUBSYSTEM=="usb", ATTR{idVendor}=="0fd9", ATTR{idProduct}=="006d", MODE="0666"
# Webcam - tried it just to see if it worked, here for reference
SUBSYSTEM=="usb", ATTR{idVendor}=="3564", ATTR{idProduct}=="fef4", MODE="0666"
Server (Windows 11)
Run gpedit.msc
and configure this setting:
Computer Configuration:
Administrative Templates:
Windows Components:
Remote Desktop Services:
Remote Desktop Session Host:
Device and Resource Redirection:
- Do not allow supported Plug and Play device redirection = Disabled
I have plenty more tweaks, but the above is what you need for USB pass-through.
The StreamDeck works great, the audio is passable, but I can’t get the camera to work since Remmina/freerdp
still doesn’t support UVC camera pass-through (I already knew passing the raw USB device would be unfeasible, but I had to give it a go). For now, that only works in Windows and Mac/iOS clients.
- Did a little more Fedora audio tweaking, including moving to a real-time kernel on the U59 and setting Bitwig to use
pulseaudio
(just because the preset for it had slightly lower latency):
# Quick set of essentials for audio priority
echo '@audio - rtprio 90
@audio - memlock unlimited' | sudo tee -a /etc/security/limits.d/audio.conf
echo 'fs.inotify.max_user_watches=600000' | sudo tee -a /etc/sysctl.conf
sudo usermod -aG audio $USER
sudo usermod -aG realtime $USER
sudo dnf copr enable ycollet/audilinux
sudo dnf install kernel-rt-mao
Thursday, 2023-03-16
Long meeting day, way into the evening.
- Realized that a recent Raspbian update broke screen blanking on my automation dashboard, which can be worked around by reverting the X server version:
sudo apt install xserver-xorg-core=2:1.20.11-1+deb11u5
sudo apt-mark hold xserver-xorg-core
- Spent a little trying to get the Linux Intune client to work in Fedora, even though it is unsupported. Got it to work via… unconventional means, but Edge crashes when syncing an AD account.
- Fiddled with PyTorch 2.0, but
xformers
hasn’t really been updated yet, so most Stable Diffusion tools can’t make proper use of it yet.
Friday, 2023-03-17
Winding down for the weekend. My work laptop was serviced, which meant doing the BitLocker dance and appeasing the InTune deities, so that took a chunk out of my day.
- Updated my RDP page with a more comprehensive set of tweaks that I refined while the X1 was MIA.
- Realized the CSS font stack for this site could be improved for monospace fonts, so I re-did the entire thing while looking at
modern-font-stacks
, which is a very handy resource if you are designing text-intensive websites and want to deliver the best possible experience without any web fonts. - Investigated a possible
uwsgi
bug related tocron
tasks. - Investigated how to programmatically take screenshots under Wayland using
dbus
. - Fiddled with
pyxel
as a way to port some code one of my kids wrote inPICO-8
.
Saturday, 2023-03-18
Family day.
- Decided to clean up and post my take on LLMs before it got too stale (had to drop a fair chunk of it because it was outdated already).
- Brief outing to attend local Chemistry Olympics (kid brought home bronze medal, yay!)
- Decided to tackle the Docker Apocalypse and start moving all my public images to
ghcr.io
. Even though I have a private registry at home (and another in Azure) some of my images are in general use and need a public repository, and they’re all in GitHub anyway, so I’m starting with this GitHub Action as a baseline to build and push new images for each new tag:
# cat .github/workflows/build-image.yml
name: Build Image
on:
push:
tags:
- v*
jobs:
Build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Login to Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Docker Image
uses: docker/build-push-action@v4
with:
push: true
context: .
tags: |
ghcr.io/${{ github.repository }}:${{ github.ref_name }}
ghcr.io/${{ github.repository }}:latest
Since docker buildx
is now largely usable, I will be updating my cross-platform images to use a slight variation on the above.
Sunday, 2023-03-19
Father’s Day over here, and another day impacted by machine issues.
- Fiddled with
rtl-433
a bit more, but I’m starting to realize it can’t pick up the decade-old 433MHz sensors I have. - My U59 rebooted after updates to a corrupted filesystem (not sure if it’s a SATA issue or a
btrfs
one, but I know where I would place my bets), so I set the default boot device to the WindowsNVME
and begain reinstalling the Fedora drive as time permits:
# For later reference, this my baseline Fedora install:
# yabridge COPR
sudo dnf copr enable patrickl/yabridge-stable
# list of essentials I need:
sudo dnf install cabextract curl fontconfig git gnome-extensions-app \
gnome-shell-extension-pop-shell gnome-shell-extension-user-theme \
gnome-tweaks godot golang htop keepassxc kvantum liberation-fonts \
lm_sensors openscad remmina rpm-build rsms-inter-fonts syncthing \
tmux vim wine xorg-x11-font-utils yabridge docker
# RPM Fusion and MS web fonts
sudo dnf install \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm \
https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
# VAAPI and Firefox hardware acceleration
sudo dnf install ffmpeg handbrake libva-utils libva-intel-driver \
intel-media-driver igt-gpu-tools
# groups
sudo usermod -aG dialout $USER
sudo usermod -aG video $USER
sudo usermod -aG docker $USER
In the meantime Windows makes for a slightly better thin DAW box and work thin client (I get UVC camera pass-through, can run all VST
s and have WSL), but, ironically, my xrdp
configurations are so fine-tuned that mstsc.exe
is slower than Remmina.
I guess you just can’t have it all…