RSSAmplifier

Blog

Cory Dransfeldt • Posts

I'm a software developer in Camarillo, California. I write about software development, technology and music.

coryd.devRSS feed ↗20 posts

Latest posts

Farewell Cadence

Replying to 'I made a music app' I've decided to retire Cadence, my iOS and macOS Navidrome client. This isn't a post I was planning to write and it wasn't the easiest decision. I originally created Cadence because there wasn't a Navidrome or Subsonic client I was happy with or enjoyed using. That is no longer the case. Cadence was the first native app I'd authored in years and was an interesting…

Disabling Siri

I only ever use Siri to set timers and turn on Do Not Disturb. It's pretty good at those things. It is very, very bad at many other things. I'll often have one AirPod in for music or podcasts when I'm doing chores around the house (I tend to function better with background noise). But, increasingly, Siri has taken it upon itself to activate itself for no apparent reason. It could be a stray noise,…

Self hosting a PDS isn't hard (so far)

Due to my compulsive need to self-host whatever I possibly can 1 , I decided to set up a self-hosted PDS. All that's on it so far is my Bluesky profile data , but it was a surprisingly painless process. Why bother? Well, I get to own my identity (DID) and my data. The relay and AppView remain Bluesky's, but the authoritative copy of my account is mine. I already syndicate from my site to Bluesky…

Somewhere, I'm online and listening to music

For a while now, my home page has shown whatever song I'm listening to (or, if idle, the last one I played). Initially, it was powered by last.fm . As I've built my own scrobbler , I populated the element from my own data. The static implementation is straightforward: I store each listen as a record. When a listen is inserted, the cache is cleared and warmed, and an update is displayed. What I've…

Designing a listen later pipeline

I've had this long, long running relationship with bookmarking and read it later services. I'll commit to one, excited about whatever feature set it offers and then, without fail, my list grows and grows and grows and grows. I archive things to reset, repeat and then move to a different service. The only thing that's ever worked has been listening to articles as audio when I have a spare moment.…

Implementing standard.site on a nonstandard site

Now that this site is written in Go 1 , I've turned to restoring and adding more features connecting it to the open web. While I maintain a healthy skepticism of Bluesky the company, I'm enamored with open protocols and ATProto falls under that umbrella. ATProto exists apart from Bluesky and Bluesky is built on top of ATProto. Wikipedia The AT Protocol (Authenticated Transfer Protocol, pronounced…

Throwing my Roku in the trash

I work from a big corner desk and part of the space on that desk is taken up by a small TV positioned in the corner. I use it occasionally and, for the longest time, it's had a Roku stick attached to it. It's reliable, but the UI has been filled with more and more cruft when all I ever want to do is launch Jellyfin . 1 This was the lone Roku device on our home network, it was mostly idle and the…

Lifting Mastodon rate limits

I'm a reluctant Bluesky user and a new Bluesky user. I expanded my site's syndication implementation to support Bluesky and updated my links implementation to support tagging authors on Bluesky. Why join now? I'm not totally sure. Indigo launching was a factor. It looked like (and is) a lovely app. One thing I encountered when using Indigo was regular rate limit warnings. Having recently moved to…

Building the future

Watching the tech hype train while working in the industry has always felt a bit surreal. There's this nascent feeling that what I'm working on, while it pays my bills, either won't amount to much or is potentially a net negative. I'll admit that I'm predisposed to cynicism and will freely cast off jokes at the expense of what I observe. It's easy to do. But, what's being built and what's the…

Ribbon - a linkding client

I built a native iOS client for linkding and launched it, as I usually do, with a sarcastic-ish Mastodon post. I'd been using my instance as a PWA (inasmuch as PWAs are supported on iOS) and found it to be ok but not terribly satisfying. I appreciated the existing clients, but didn't love them. I'd tried them all, but ended up generally using a Safari extension and the web app in Safari. Safari…

Personal site infrastructure, diagrammed

That I even need and have made a diagram of the infrastructure for this site speaks to how over-engineered it is. Yet, while it is ostensibly a personal site, it's a personal site that's replaced many services that I previously used ( last.fm , Letterboxd , Trakt , oku , The Storygraph , MusicHarbor et al). I maintain a lot of this for the same reasons anyone might use the services I replaced.…

Battling bots

I've already blocked entire countries to combat scrapers , I update my robots.txt for well-behaved bots (and 403 any included in the list that access anything other than my robots.txt ). In addition to these steps, I've started blocking traffic from IPs contained in Spamhaus ' DROP and DROPv6 lists. The script I use to handle these lists and countries is as follows. The script creates temporary…

Migrating infrastructure off Coolify

I've spent a while recently migrating my personal infrastructure off Coolify . Coolify 's an excellent tool and one that helped manage the initial learning curve of managing and deploying things when I started to self host things. As I got more comfortable with the process, issues and details I found myself wanting to remove it as an abstraction on top of what I had become comfortable managing.…

Building a Navidrome scrobbling plugin

Navidrome released plugin support a few weeks ago and I've been working on implementing a plugin that scrobbles my listens to my own API endpoint. This has replaced my previous approach of regularly polling a private endpoint that sat unused in Navidrome 's UI. It works better and uses a properly supported mechanism to meet my needs. All plugins run inside a WebAssembly (WASM) sandbox provided by…

Owning your data

Owning your own data is hard . I've been trying to own as much as I can, and my site has become a reflection of that process, both in what I display and discuss. As difficult as it is, there's a freedom in owning as much as you can. When Twitter was sold, I joined the migration to Mastodon. I have my own instance where all of my posts sit . I pay for this to be hosted, but Mastodon makes…

Pinning homebrew dependencies

You learn something new every day. I've been using Homebrew for over a decade and, up until a few weeks ago, hadn't hit a case where I would not want to update something. What I recently encountered, however, is running my simple update alias: View raw # update dependencies alias update = 'antidote update && brew update && brew upgrade && brew cleanup && mas update' Led to PHP being updated from…

The conditionally open web

I spend a lot of time thinking about the open web. We talk about it a lot. But I'm not sure it exists, at least not in the way it's often described. Embedded within the underlying architecture of the web is an ideal of openness. One can publish anything and one can link to anything. The web as it exists today and as it has existed for some time is only conditionally open. Anything can still be put…

Getting cited as a source on Wikipedia

I use analytics on this site primarily to see where referral traffic comes from. It's not necessary, but it satisfies my curiosity. One of the most interesting referrals I've received was from Wikipedia. This site has upwards of 8,000 pages and most of those are part of the music section . Each track I scrobble is counted against artist, album and genre pages. Each artist page consists of a photo,…

Blocking entire countries because of scrapers

I use Goatcounter for analytics primarily to see where things I post might get mentioned. I don't get a ton of traffic, nor should I expect to. However, checking the dashboard this morning, I saw that 82% of my traffic was now attributed to China. 89% of visits had no referrers, 85% using Windows and, as you'd expect, 82% of visitors with their language set to Chinese. Checking through access…

2025 in review

This year has, to be frank, been exhausting. At least in a macro sense. It feels quite like the United States is collapsing as fascism and kleptocracy continue to take hold. Institutions are being turned inward to attack the most vulnerable, corruption is rampant, the economy is sliding and we're only a year into this nightmare. I'd say look to the midterms, but who the hell knows if we'll even be…