Posts whose title or text contains one of these words are left out of every view.
Whole words only: ai catches "AI-generated" but not "openai". Add a star for word beginnings: llm* catches llm and llms.
99 words is the limit
https://www.coryd.dev
22 posts · 33 Votes · 1 Followers
Tech 91% · Life 9%
Subscribe via RSS
I run my own analytics on this site. It's straightforward, collects as little as possible and gives me some basic counts, referral info and a list of 404s to (potentially) fix. Server-side analytics are noisy, so most of this is reported from a simple client-side script. What is surfaced from the server requests are 404s. I use these to find links I've broken, near-miss paths and anything else I might want to tidy up. The annoying part of tracking 404s this way is that the panel fills up with…
Merriam-Webster: An organism living in, on, or with another organism in order to obtain nutrients, grow, or multiply often in a state that directly or indirectly harms the host. That's it, right? The whole thing, their entire business model. Scrape the whole of the internet, destroy books, siphon everything they can from whoever they can without compensation, and call it fair use. Train models on said stolen data. Sell metered access to the models. Repeat until you've killed the host. Hope you…
I've written at length about my scrobbling implementation on my site. Until now I'd managed the metadata for my music manually, editing it on macOS before adding it to Navidrome. That gave me direct control, ate time and came with quite a bit of tedium. I'd seen beets mentioned a few times as a tool to programmatically manage and apply metadata. I've wanted to use it, but cutting over a collection with nearly 800 artists and over 5,000 albums was a lot. But, as with most bad ideas I have, this…
Tech companies and their executives have, broadly, moved to align themselves with investors and adopted a posture of, often, disdain or outright hostility towards their users and employees. If tech companies don't value you, why provide value to them? If they back political positions hostile to your interests, why not return that hostility? I'm not arguing for boycotts, I know that people are bound to different platforms for different, compelling reasons. What I am arguing for is that, given…
I've been getting more email from agents lately and it's all both formulaic and irritating. My favorites (sarcasm) are the ones that cite a post where I explain a problem I'd already solved and then offer me a solution. They all read the same: polite, bland, slop. Agent email lives at the intersection of slop and spam. Nobody wants to read or receive either. I have a running sieve rule that I expect to grow and it looks like this: if address :domain :matches "from" ["ilands.app",…
When I started setting up private, self-hosted services one of the things I wanted to maintain was a pattern of friendly, human readable names to access them. I didn't want the overhead of bookmarking domains available via Tailscale's MagicDNS and I wanted real SSL certificates that were trusted and that clients wouldn't complain about. The tools To accomplish this, I have DNSimple managing the public zone (for things like this site, my Mastodon instance and so forth). I have Headscale set up…
I've been working on a number of connection points between my site and the broader web. Part of that effort has been webmentions (which are a fairly small spec). You advertise an endpoint and someone posts a source and target and, from there, you do with the information as you please. What expanded the scope of my implementation was that I wanted to pull in similarly shaped data from Mastodon and Bluesky. To receive a webmention, you have to advertise the endpoint in the head of your document:…
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 challenge. Navidrome's support of the Subsonic API is well documented and clear. But streaming and…
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, a show, one of our kids — it happens a lot. At best, this is annoying, at worst it's calling…
Due to my compulsive need to self-host whatever I possibly can1, 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 and controlling the PDS is the last part of this infrastructure I can reasonably control. I've been…
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. Sometimes it's background noise but, generally, I absorb things better as audio. Pocket (RIP) was…
Now that this site is written in Go1, 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 "at protocol", commonly shortened to ATproto or "ATP") is a protocol and set of open standards for…
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 top two domains blocked by NextDNS were a pair of Roku tracking subdomains. Roku is also being…
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.
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.
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.
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 mai
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.
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.
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.