Most of my alfred workflows are in python and I often use uv to run them. To make working on them a bit easier, I brainstormed an alfred-uv command to make it easier to develop. uvx alfred-uv install All the workflows I develop for myself, I tend to store as a git repo and then symlink. To make this flow easier, I write a uvx alfred-uv install command. Given the current directory, we can loop…
While nearly everyone likely has their own sisyphean task, one of mine is the search for the perfect inbox. Trying to have just one inbox to look at for the day has continued to be a challenge, even since I wrote about it in 2020 . Recently, I have looked at my daily workflow, and how I might converge on a single, primary inbox. Apple Reminder + EventKit Since I am on the Apple ecosystem already,…
I use saltstack to manage deployment of docker containers in my homelab. For two of my cloud servers, I am running them in memory constrained environments for cost reasons, and typically only run the minimum required there. Since I wanted to wrap the docker_container module, I started by creating my own state in _states/docker_customized . I can do a simple naive version, just by using setdefault…
For the past many years I have used various notification methods in my projects. Prowl Prowl is one that I have been using for the longest time. It has a simple API that can be used easily from curl and other applications. # https://www.prowlapp.com/api.php#add import requests requests . post ( url = 'https://api.prowlapp.com/publicapi/add' , data = { 'apikey' : api_key , 'application' :…
While the entire systemd project has historically been rather polarizing, I have found it to be easier to maintain for my own environments. When working on services on windows or MacOS , I have come to miss having journald when running services. MacOS launchd services let you StandardOutPath and StandardErrorPath , each application can set them to whatever path they want. While applications can…
Due to the flexibiilty of Django , I will often use it in places that are not a normal web app. A combination of the Django ORM and admin commands makes a Django project a useful place to collect useful scripts. In the past I would often add things to Cron, but due to the tasks framework I have started to add some jobs there. To make it even easier to call tasks, I hooked up Alfred to my Django…
The XDG Base Directory Specification was first published in 2003 as version 0.6 . There were minor updates in 2010 with 0.7 and in 2021 with 0.8 . While applications that pre-date the specification do not annoy me so much, newer applications that ignore it are a specific pet peeve of mine. While this specification typically only applies to Linux, many MacOS utilities are cross platform and could…
Entry_points are used in a lot of my projects as they’re a fairly simple way of adding plugin points. Recently I was wondering if there was a tool or site that maps them to PyPI though I am not aware of any of them. I spent a little time prototyping with an idea to see how much of it might be feasable. PyPI provides a json api with basic meta data, but understandably, it’s unreasonable…
Often when a company does something silly (being quite generous with this term), there are almost instantanious comments about some kind of self-hosted alternative. While I enjoy self-hosting (and building tools for me to self-host), the server is the easy part (again, being generous with the term). A huge source of friction for many of the self-hosted options, are the integrations that make it…
Webhooks are useful for bridging multiple applications together, and I often wish more apps supported them. One use case that could be a fun place to support webhooks are multiplayer game servers. Minecraft I have a group of friends that I know intially through Minecraft. One of the neatest plugins we have, is SDBot a simple plugin for Bucket, that takes certain events in game, and posts them to…