When I’m making music in the evenings, I like a little creative nudge. So I built a self-hosted system that sends me a daily Oblique Strategy quote on WhatsApp while I play - free to run and using WhatsApp Web directly from my machine. Here’s how it works.
I tend to use LLM coding agents in the cloud, and then roborev locally to assess the code. This bash command pulls from git, and runs roborev only if changes were pulled
Now I can finally play with my local SAM Audio installation and discover just how useful it really is. Meta advertises it as a professional-grade tool, but is it?
Meta recently released SAM-Audio , an exciting new audio LLM capable of separating sounds from complex mixtures using text or visual prompts. Like many research models, it isn’t installable out of the box for macOS users. To get it running on my M1 Mac was a bit of an adventure, but I managed in the end.
I have started using Continue with Ollama to have a local llm assist my coding. Initially it was too slow to be of real use, but since adopting GLM4 , it now rivals Cursor in performance.
The code spell checker plugin , formerly cspell, works well for “normal” vscode project, but wasn’t doing anything for a workspace based project.
Actual Budget is the open source budgeting app I replaced YNAB with. They have now merged all the Actual apps into one repo, which meant running a migration.
It used to be possible to click on a button in a YouTube channel and view all of the channels’ video as a single playlist. The button is gone, but the playlist is still there.
On macOS, netstat is a BSD-based tool that is still fully supported. It is great for seeing open connections, routing tables, and interface stats. When you want to see which process owns a connection or port, lsof is the tool to use.
If you have the Python extension in VSCode, you can open and run Jupyter notebook directly in the IDE. But what if you want to work on the actual JSON source?
Sharing Google Maps links on an iPhone used to be a pain. They’d open in the browser, and when you tapped ‘open in the app’ it led nowhere.
When you want to check how your Mac’s disk and CPU are doing, or peek at memory and swap activity, the commands iostat and vm_stat come in super handy. Both are built-in and give you quick snapshots of system performance.
Asking Git to display all the logs for a given branch, or to squash commits within a branch, is not as straightforward as you might expect if you’ve never tried it before.
pip freeze > requirements.txt is the canonical way to capture all the packages you have installed in a Python project. I am not sure why; it doesn’t do what you expect.
I started this post to keep track of the process, thinking it was going to be a slog. Instead it took me all of 2 minutes and It Just Works. Mind. Blown.
I was trying to install pygraphviz on my M1 laptop using pip, but I found it impossible. Luckily the Dev Container VSCode extension allows me to use it with docker.
Clearing the command history is good practice when, for example, one has mistakenly pasted sensitive info. ❯ history -c will do the trick. More details inside.
I built this site with SvelteKit before it was stable, hoping it wouldn’t change too much. How naive of me. Of course it did. Faced with the prospect of rebuilding it from scratch, I decided I’d rather try something new. Enter Astro
Thanks to Elon Musk, it’s now socially acceptable for developers to ditch their Twitter accounts. While I’m keeping mine to be able to read long threads, I recently decided to delete all of my tweets and start fresh. I like to think of it as a “quiet quitting”
Linting a Python project, I was puzzled by the mysterious error: “found module but no type hints or library stubs” from mypy. The module was my own, with Pydantic definitions everywhere, so why the error? I was missing init.py files in some parent folders.
Google informed me they would start charging me for letting me use their mail servers with my gotofritz.net domain. Fair enough, infrastructure costs money. But if I have to pay, why pay them ? I’m can shop around. And so I did.
Thanks to a bug while copying a youtube playlist with a Python script , I ended up with a lot of duplicates videos in the playlist. Surprisingly, the YouTube interface doesn’t let you remove them. So I put together another small Python script
I wanted to duplicate another user’s playlist to one of my free google accounts. But it’s no longer possible from the web interface. None of the methods described in various SO answers are functional, they are obsolete. But it can be done with a Python script in your terminal.
Thunderbird doesn’t sync message filters. Its roots are from ancient times, before distributed computing was prevalent. If you want to copy your filters from one machine to another you have to do it the old-fashioned way, by copying config files
cSpell is a spelling plugin for VS Code. Not my favourite, but the only one I found. It isn’t particularly well documented though. It avoids spell checking files in .gitignore. To stop that, you need to add “cSpell.useGitignore”: false, to your settings
Building a static website with Sveltekit and markdown is hard going at first. But just when I was about to give up I stumbled on some blog posts and boilerplates that helped me crack it. I may still switch to Astro later though
I have recently switched to Thunderbird from Gyazmail, the obscure mail program I have been using for years. Here are some setup tips that worked for me
I used to curate my music with Apple’s Music (neé iTunes) but stopped when it lost my entirely curated library as I updated OS X. These days I use a combination of Yate and Doppler
Software updates can be quite tedious - you have to click a lot of buttons, then get into the Apple Store etc. But you can avoid all that by running it from the command line.
Yosemite updates Apache to 2.4. A couple of things stopped working from my previous installation, including autogenerated directory listings. Here’s how I got them back.