blog Removing Distractions with DNS

Many sites are designed to snare your attention and keep you scrolling for as long as possible. This is often not particularly compatible with taking just a short break. Because so many sites are designed with patterns to hijack your brain, often we need to be proactive about not letting them get the initial hook.

For a while now, I’ve been using DNS to help me out. A few months ago, I started using NextDNS to help me with that. With my heavy internet usage (and possibly a misconfiguration on my side) I exceeded their free tier a bit each month,but I was happy enough with their service that I became a subscriber. (They have an affiliate program though I doubt I would get much traffic from my link.)

Read More →

blog GitOps for My DNS

I’ve used Namecheap for many years for hosting my DNS. It’s nothing particularly special but it works well enough for my needs. When managing DNS entries it can sometimes be a little annoying doing everything on their web page. I’d rather be able to script something. After thinking about it for a while, I finally created something.

Namecheap’s API is implemented in XML which makes parts of it feel a bit old, but our use case is fairly simple. We can use get-hosts to download a backup of our DNS entries for history, and then set-hosts to publish our new values. I wrote a class to handle the basic Namecheap API calls (which is mostly formatting them and wrapping the requests library).

Read More →

blog Growl and MQTT

Many years ago before notification center, there was Growl . It was widely supported by many different MacOS applications, and had many nice customization options for the toaster popups. Eventually Apple released notification center and Growl slowly faded away, but I still appreciated the ability to send a remote notification and continue to use prowl for many of my projects.

Read More →

blog Rewrite for That Last 10%

One frustration of being a developer is becoming fairly opinionated on how one thinks things should work. When my family have tech issues, if they cannot figure things out in a short time, they will often accept it as-is and move on. Being a developer, I often experience an irrationally large annoyance and spend more time than I should trying to figure things out or trying to change things how I think things should work.

Read More →

blog Packaging a Django Application

Our goal when packaging up a Django application, is that we can use it as part of an existing application, or we can run it by itself in a standalone mode. To this end, I have over time, started to package my django applications in the following way. You can see diffs of all the commits in the example-django repository.

Start with a Makefile and setup files

Instead of using tools like Poetry and Pipenv , I find it easier to just create a basic Makefile to use as the entrypoint.

Read More →

blog Activitypub and Federation

Recently I’ve started to be interested in activitypub and how it connects projects like Mastodon or Pixelfed as alternatives to centralized services such as Facebook and Instagram. For my blog, I’m generally fine with things such as atom and rss (though there seems to be a way to bridge a feed to activity pub) for something like quickstats it may be nice to consider how to federate.