I use Multipass as my VM orchestrator, which means that when I spin up a VM for any project, I’m generally getting some version of Ubuntu. There was a major change between Ubuntu 20.04 and 21.04: starting with 21.04, the user directory is set by default to 750 – where in 20.04 it is 755. This means that by default other users can no longer browse the files in your user directory. But it also means that if you symlink a directory under /var/www/ to a directory in your home folder (a thing I do while I’m doing development of web applications that would normally live somewhere under /var/www), the webserver won’t be able to access the symlinked directory unless it can access the containing home directory, regardless of how many ways you specify FollowSymLinks in the config. TIL. (this is as much of a reminder for me as for anyone else)
I’d like to subscribe to a newsletter. This news appears on a single page, with individual articles listed in order from most recent to least. You know the kind I mean. Alas, this news page does not appear to have an RSS endpoint. And so, I have sent a message: I would like to subscribe to your newsletter. It is accompanied by a description of what the problem is and a polite request to respond back with the RSS url (in the event that my reader just couldn’t find it). I don’t want to resort to building a Python script that uses BeautifulSoup to scrape the page for new items, but I will if I have to.
Can a Raspberry Pi computer and a USB microphone stream live audio to a smartphone’s browser over wifi? No idea but we’re gonna find out.
It occurred to me several months ago that I could build a Docker image for Mobiliaire to make it easy to grab and evaluate or use. Problem was, I was very unfamiliar with Docker and struggled to grok how it works. Got frustrated and put it aside. I picked it back up today and got a dev environment running w00t! I still need to work on a prod or close-to-prod build, but hey, progress!
Went and helped set up for an indoor fundraiser yard sale thing that is happening this weekend. A benefit is that you get first pick of the sale items. I came home with a decent amount of things. On the Python front, I got an emailer script running via Gmail SMTP, so now I can haz automated emails.
I added two new config sheets to my collection – one that does a majority of the work setting up a copy of my Inventory app, and one that, when done, will fully configure a dev environment for a php app I work on regularly. It’s so nice to be able to do the setup work once (while I’m authoring the config) and then once it’s done and tested I can use it repeatedly, as needed.
I’m abandoning WSL on my desktop machine. It and Multipass don’t play nicely with each other when run on the same system. So I spent about two days working out a single-file cloud-config YAML that I can feed to Multipass and have it build me a customized “daily use” VM to be the replacement for WSL. I’ve got it juuuust about worked out.
Today’s accomplishment, though small, is also big. Given a WordPress widget that is inserted both in a Page and in a global footer, where I want the full text to appear in the Page entries and only the first sentence to appear in the global footer entries, I worked out a combination of CSS selectors that only set `display: none;` on the non-first-child elements in the global footer without affecting the same elements in the page.
Today I wrote a python script that parses a Google calendar iCal feed and posts a list of events occurring in the next 7 days to a Discord server channel. I need to post that same information in a few other locations, so I can’t call it done yet.
My favorite thing today is finding that the documentation for a programming language library uses Pokémon in the examples