Tag: til

10 posts

Fixing NPM permissions errors on WSL

Saving this one for posterity since I seem to run into something like this once every couple of months. Really gotta get a Mac for my next dev machine. sudo apt update && sudo apt upgrade -y # Since you mention that you have set your user to be root: sudo sh -c 'echo "[user]\ndefault=root" > /etc/wsl.conf' wsl.exe -l -v # Confirm your distribution name for the following command: wsl.exe --terminate Ubuntu Credit to this StackOverflow answer.


L
lesser daemon
blog.bront.rodeo
Oct 2, 2025

Deploying Static Website using Cloudflare Workers

Sep 14, 2025

Making An Evil Jupyter Notebook

I recently came back to an idea I started playing with back in January: sticking a game into the Jupyter notebook interface. The key problem to solve here is that, while Jupyter is designed to run the code you see and explain it, for game purposes I want the code to do the opposite: control the interface itself (and do so while being at least lightly obfuscated from the user). Adding, Running, and Removing Cells With IPyLab IPyLab has been a great (and really fun) tool for this purpose. You c


L
lesser daemon
blog.bront.rodeo
Jul 15, 2025

Home Assistant Is Astonishingly Easy To Set Up On Synology

Just a quick shout-out to Home Assistant, who have relatively easy-to-follow documentation for setting the app up on a Synology NAS. Just download the container, add your time zone, make sure it's set to use the "host network", and make sure port 8123 is open on your firewall. I'd been putting off setting this up given the usual amount of lift involved in getting something new runing on my homelab, but it only took me about 10 minutes. Finally no more fiddling with the Hue app, and K can purchas


L
lesser daemon
blog.bront.rodeo
Jun 20, 2025

Running gunicorn from a Python virtual environment with systemd and selinux

There are a lot of tutorials out there for running a gunicorn server on systemd, but I wasn't able to find one that actually told me how to do so in selinux. Since I'd never used selinux before, this relatively simple task turned into hours of trial and error, but my loss is your gain. YMMV dependent on how custom your selinux setup is, but this worked for me: Assuming your project is in /www/myproject: /www/myproject/gunicorn_config.py: bind = 'unix:/run/gunicorn.sock' worker_class = 'sync'


L
lesser daemon
blog.bront.rodeo
Apr 4, 2025

Using Dependency Groups with uv

I've slowly been getting more familiar with uv and the broader new school of python packaging ecosystems (sorry, I used virtualenv for a long time, it does the job fine), and one of the most exciting things to me is its use of dependency groups in a pyproject.toml file: finally, a non-janky way to use different packages in different environments. However, I think its documentation leaves a bit to be desired on this front, so I wrote down a few commands I find myself using regularly. To add a pa


L
lesser daemon
blog.bront.rodeo
Mar 28, 2025

#100DaysOfWriting

In googling for a stock image to put at the top of today's post, I discovered there's already a #100DaysofWriting movement. Apparently it's quite popular! The whole thing is based on showing up to the page with curiosity and gentleness. 'Showing up' can look like whatever you want. Five minutes of note scribbling? That counts. Research reading? That counts too, just as much as writing 1000 words. The point is regular connection without judgement. These people think it's okay to "set reasonable


L
lesser daemon
blog.bront.rodeo
Feb 6, 2025

Programmatically Creating Styled Cells In Jupyter Notebooks

I've been playing around with the idea of using Jupyter notebooks as a narrative game interface for a while, and finally got around to doing some prototyping this week. One thing I really wanted to do was require users to run code cells in Jupyter to unlock story beats: Jupyter notebooks are usually presented as a step-by-step tutorial, which is perfectly fine if you're trying to teach someone how to run a linear regression in sklearn but less so if you're trying to build suspense over the cours


L
lesser daemon
blog.bront.rodeo
Jan 29, 2025

"I have a horror of sentimentality, and its name is Saint-Saëns" - Claude Debussy

Ran across this quote recently and went down a bit of a rabbit hole into Debussy and Saint-Saens' mutual hatred. I think it's important to remember that classical composers were all catty as hell and constantly beefing with each other. RIP Claude Debussy, you could have gotten in some great fights on Twitter. (Saint-Saens may have been sentimental but Danse Macabre still slaps).


L
lesser daemon
blog.bront.rodeo
Jan 26, 2025

Checking Disk Space On An Ubuntu Server

du -cha --max-depth=1 / | grep -E "M|G" From this StackOverflow answer - ncdu is also a good tool for this, allegedly, but its output didn't really seem to have any correlation to the actual folders on my server. I feel like I have to do this once a year because of storage issues and always forget, so hopefully this serves as a reminder going forward. Turns out snap is the culprit, as per usual. In a fit of pique I uninstalled snap and all of its files, and lo and behold I'm able to finally upd


L
lesser daemon
blog.bront.rodeo
Jan 18, 2025