<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: stryan</title><link>https://news.ycombinator.com/user?id=stryan</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 07:59:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=stryan" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by stryan in "Ask HN: What are you working on? (June 2026)"]]></title><description><![CDATA[
<p>I've been working on getting another major release out for my side project Materia[0], hopefully by or on the solstice. Materia is a GitOps continuous delivery tool for Podman quadlets: it handles installing/removing/updating files, installing secrets, restarting services and dependencies, rolling back failed updates, and more. I've been working on this for almost two years now and am pretty happy with how its coming along and the growing user base. Plus it's been a fun excuse to try out some new things, like creating a Varlink API or different CI/CD setups.<p>Besides Materia itself I've been bouncing around some other ideas for the Podman quadlet ecosystem. The biggest one is Athanor[1], which re-uses the same plan-execute system and primitives provided by Materia to backup Podman volumes.<p>I've also been kicking around a clustering system for Podman volumes called Firmament  that uses Serf and the built-in Podman import/export API to move volumes to where they need to be in the cluster. But this will probably wait until Materia hits 1.0 before I really start putting effort into it. Or if my homelab needs something like it, whichever comes first :).<p>[0] <a href="https://github.com/stryan/materia" rel="nofollow">https://github.com/stryan/materia</a> ,main site <a href="https://primamateria.systems" rel="nofollow">https://primamateria.systems</a>
[0] <a href="https://github.com/stryan/athanor" rel="nofollow">https://github.com/stryan/athanor</a></p>
]]></description><pubDate>Sun, 14 Jun 2026 19:46:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48531836</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48531836</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48531836</guid></item><item><title><![CDATA[New comment by stryan in "Leaving Mozilla"]]></title><description><![CDATA[
<p>That's not how federation works? You wouldn't log into Mozilla's matrix server with another Matrix server's login, you would just join the :mozilla.org rooms with your normal Matrix account. That's the whole point of federation.<p>It sounds like you were trying to login to Mozilla's Element web client and it was only set up to authenticate against the Mozilla homeserver but A) that's a client setting unrelated to federation or really the protocol in general and B) not what you were supposed to be doing to begin with.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:06:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518579</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48518579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518579</guid></item><item><title><![CDATA[New comment by stryan in "Love systemd timers"]]></title><description><![CDATA[
<p>Yeah I run my steps as one-shot commands to try to avoid that, but the timer/service split can be very annoying like that.</p>
]]></description><pubDate>Wed, 03 Jun 2026 01:46:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48378803</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48378803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48378803</guid></item><item><title><![CDATA[New comment by stryan in "Love systemd timers"]]></title><description><![CDATA[
<p>Should have been more clear: I use RandomizedOffsetSec= to add a random offset to a set start time (usually 4am), to prevent overloading the backup server, not truly random start times.</p>
]]></description><pubDate>Tue, 02 Jun 2026 13:42:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48370174</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48370174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48370174</guid></item><item><title><![CDATA[New comment by stryan in "Love systemd timers"]]></title><description><![CDATA[
<p>Timers can work with arbitrary units (not just a similarly-named service unit) so they can be surprisingly flexible. I have a timer on my servers that starts a  backup.target that fires off a full "restic backup","restic prune", "restic forget" backup cycle each morning with randomized start times and notifications. The actual restic-* units are Podman Quadlets so the whole setup runs agnosticaly of what's on the server, just as long as it has Podman and Systemd installed.<p>I will admit thought, timers are up there in terms of being the clunkiest systemd unit type to use on a regular basis. I get why they're split up into two files and require different start vs enable syntax's, but man sometimes I just want to create a file that runs a script and be done with it.</p>
]]></description><pubDate>Tue, 02 Jun 2026 13:09:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48369793</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48369793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48369793</guid></item><item><title><![CDATA[New comment by stryan in "Stop Advertising in Your Commits"]]></title><description><![CDATA[
<p>My projects also require Assisted-by attribution as that's what the Fedora AI policy requires and that was the first major org with a coherent AI policy that I found when choosing it. Not sure which came first, that or Claude hijacking Co-Authored-By.<p>Personally, I prefer Assisted-By. Co-Authored-By implies a level of respect and self-direction I don't think LLM's deserve.</p>
]]></description><pubDate>Tue, 26 May 2026 20:08:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48285297</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48285297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48285297</guid></item><item><title><![CDATA[New comment by stryan in "Hanoi’s humble beer glass and the memory of a nation"]]></title><description><![CDATA[
<p>It's a new batch each day, but it's not drank in the same day it's brewed I suspect. Probably a week or two later, going off some quick research into "running ales", a similar English style of brewing.</p>
]]></description><pubDate>Tue, 19 May 2026 19:46:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48198454</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48198454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48198454</guid></item><item><title><![CDATA[New comment by stryan in "Clusters become personal (like PCs did)"]]></title><description><![CDATA[
<p>I'm assuming you're at least overseeing the creation/updates of the Ansible playbooks and have some familiarity with what is being managed outside of that. While I personally would not do that[0], I can see the reasoning behind it.<p>ClusterdOS appears to be a kubernetes-in-a-box multiple node setup that's goal is to work so well that the user doesn't know or care what it's doing. I wouldn't trust an LLM with managing one machine by itself, let alone a whole cluster of them running the incredibly complex mess that Kubernetes is (and that's not even counting the 8 other layers of software this is), so this feels like an order of magnitude worse.<p>[0] Using LLMs for sysadmin research or boilerplate writing is one thing, but after a certain amount of use you're really just paying $X a month for Anthropic to manage your systems for you. I'd rather just pay a real person to do it at that point. I'd also rather people get over their pathological fear of learning how to run a server but I've given up on that.</p>
]]></description><pubDate>Sat, 16 May 2026 21:48:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48164101</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48164101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48164101</guid></item><item><title><![CDATA[New comment by stryan in "Clusters become personal (like PCs did)"]]></title><description><![CDATA[
<p>As far as I can tell and from some quick researching of the guys previous experience, that's all it is. I think the implication is that LLM's will be architecting and deploying the cluster setups at some point? Which sounds horrific so I'm assuming I am interpreting it long<p>The article itself reminds me of the enthusiasm I felt for plan9 when I first heard about it back in uni. I also thought everyone should have their own compute grids and that clustered computing was the future; of course now I realize there's a lot of reasons why that doesn't actually work. Considering this appears to be a start-up ad, I hope the author knows something I don't.</p>
]]></description><pubDate>Sat, 16 May 2026 20:15:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48163402</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48163402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48163402</guid></item><item><title><![CDATA[New comment by stryan in "Discord Incident – Resolved"]]></title><description><![CDATA[
<p>Glad you're taking it in-stride, I was worried I was a little too direct. Everyone and their mom is making a Discord competitor these days but being Not-Discord isn't enough to stand out.<p>> I see what you mean, if you had a magic wand, what would you call it?<p>Naming things is, of course, the hardest part of programming so somewhat hypocritically I can't say I have an answer :) . It probably depends more on what you view your target audience as and what your main selling point is. Discord worked as a name since it falls in line with a lot "gamer branding". If you have a theme going on I'd go with that, otherwise the age old traditions of picking a random communication related or mashing two words together (Linphone, Threema, Skype, etc) are probably the easiest.<p>Personally I think I'd go with "Microcosm" or something similar. Sounds cool, abbreviates well to just "micro". Or maybe something with "vox" in it. Honestly it probably doesn't matter too much, people will get used to saying anything.</p>
]]></description><pubDate>Sat, 09 May 2026 00:21:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48070418</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48070418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48070418</guid></item><item><title><![CDATA[New comment by stryan in "Discord Incident – Resolved"]]></title><description><![CDATA[
<p>From a normie perspective:<p>- No screenshots on front page, I have no idea what it looks like<p>- no video chat, no screen sharing<p>- No downloadable version isn't a feature. What's a PWA?<p>- "Live audio space" doesn't explain whether it's drop-in voice channels like discord/slack huddles or scheduled audio calls<p>- The name makes it sound like a Discord clone<p>From a technical perspective:<p>- Not FOSS, can't self-host or federate. What makes this less likely to rug pull than Discord/any of the other alternatives<p>- No information on who is making this<p>- No information on <i>how</i> messages are encrypted<p>- Webpage looks vaguely AI generated<p>- Bot API is A) hidden at the bottom of the very long tutorial, B) seems to be limited to normal user actions (I could be wrong!), and C) desperately needs an index or sidebar<p>- Unclear whether anonymous channels are truly anon or just anon on the client side<p>Some stuff seems neat: I am intrigued by anonymous channels and from your feature table it hits more table-stakes features than most Discord alternatives. But I would give it a few touch ups if you want it to stand out.</p>
]]></description><pubDate>Fri, 08 May 2026 22:14:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48069425</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48069425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48069425</guid></item><item><title><![CDATA[New comment by stryan in "Komai: a fine Matrix chat app you can get to love"]]></title><description><![CDATA[
<p>Having the core of your app be written in languages you self-admittedly don't understand is a bold move. I've been a big fan of the ansible-matrix playbooks for a while now so I'm willing to see this play out, but it doesn't fill me with confidence.</p>
]]></description><pubDate>Fri, 08 May 2026 02:23:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48057734</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48057734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48057734</guid></item><item><title><![CDATA[New comment by stryan in "Should I run plain Docker Compose in production in 2026?"]]></title><description><![CDATA[
<p>Yeah, I wouldn't be surprised if a lot of the mindset differences come down to people used to using Docker Compose as a development environment being uncomfortable with managing things on a real/traditional/production/whatever-you-want-to-call-it server. Compose treats things as sort of a hermetically-sealed "Application" versus a collection of services. Quadlets are more the latter, and of course that's all Docker Compose is as well but it's a decently good abstraction over it.</p>
]]></description><pubDate>Tue, 05 May 2026 22:29:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48029608</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48029608</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48029608</guid></item><item><title><![CDATA[New comment by stryan in "Should I run plain Docker Compose in production in 2026?"]]></title><description><![CDATA[
<p>> It's a tool for user age verification that happens to be something you can use to manage services.<p>Good talk buddy.<p>> Did you miss my point about it being a filthy kitchen sink?<p>I suspect there's not really a point in responding to this since you've already made up your mind.<p>Nevertheless, yes I am aware the systemd project contains many modular components. Some of which are good (systemd-the-service-manager that is what I was referring to), some of them are bad, and some of them are just odd (still haven't wrapped my head around systemd-homed's purpose). Podman integrates with the systemd service manager, not the rest of the project, so I'm really not concerned about that: there is no point where I am unable to use quadlets because I don't have, say `systemd-timesyncd` installed.<p>On the gripping hand, Quadlets are just a systemd-generator so there's nothing stopping you from getting that exact same benefits of Quadlets with some other service manager. You'd just have to write that implementation (and probably your own bespoke service manager) and will probably miss out on some of the niceties systemd provides to anything it manages.<p>> One of the major selling points of podman is that you dont need a daemon. except maybe yes you do because podman compose sucks so toss that selling point in the trash.<p>You skipped the second part of my sentence where I reminded you that Podman is daemonless. There is no long-running Podman daemon/service/etc, it is spun up on demand and then stops when the action is done. Having a second process instance is not a daemon, and I'm not sure how you would have expected this to work otherwise.<p>>  Ever had "docker compose" and "docker-compose" do subtly different things which drive your team mate to pull their hair out? I have.<p>..Take this up with docker?<p>> Personally I suspect it languished because Red Hat simply cant abide the idea that somebody out there might avoid using systemd for something.
> They happily built a docker compose to quadlets converter but they cant bring themselves to make podman compose not be a piece of shit even though it wouldnt be a lot of work.<p>I don't think `podman-compose` was ever an official Red Hat project. I don't think there was every really much interest in ironing out all the corner cases, especially before compose was actually fully specced, and once Podman itself implemented the spec the interest has been drying up.<p>Assuming you're referring to podlet[0] for the latter, that was never a Red Hat project.<p>[0] <a href="https://github.com/containers/podlet" rel="nofollow">https://github.com/containers/podlet</a></p>
]]></description><pubDate>Tue, 05 May 2026 22:24:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48029547</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48029547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48029547</guid></item><item><title><![CDATA[New comment by stryan in "Should I Run Plain Docker Compose in Production in 2026?"]]></title><description><![CDATA[
<p>> * use systemd, red hat's favorite kitchen sink for handling everything<p>Systemd is a tool for managing services. Containers are services. Why require an entirely separate bespoke service manager when you're already running one?<p>> * docker compose where i have to run a whole separate podman service to lie to docker compose about not actually being docker.<p>This is the same system state as using docker compose with docker: you have a client program speaking to a backing daemon. Only difference here is the Podman service, being daemonless, only runs when needed (assuming you're setting up things the documented way by enabling the podman socket).<p>> * podman compose which would be the obvious solution if it didnt just plain suck.<p>Yeah I haven't had the best luck with it either. But part of the reason it's languished is that it makes more sense to just reimplement the Compose spec on the backend rather than re-invent the wheel and create a new compose client as well.<p>There's also the fourth option of writing Kubernetes yaml and applying that with `podman kube play`. Honestly this is probably closer to being the podman equivalent of docker compose but since it involves writing The Bad YAML (kubernetes) rather than The Good YAML (compose) most people don't use it.</p>
]]></description><pubDate>Tue, 05 May 2026 20:55:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48028414</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48028414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48028414</guid></item><item><title><![CDATA[New comment by stryan in "Should I run plain Docker Compose in production in 2026?"]]></title><description><![CDATA[
<p>> Having your whole application with its containers, volumes, and networks all defined together in one easy-to-read YAML file is a way better experience. Deployment is two steps: 1. `git clone foo` 2. `docker compose up -d`. You can see the state of the application containers with `docker compose ps`. You can run multiple compose applications on the same host and manage them separately by putting them in different directories.<p>I always felt it the other way around: docker compose files are weird blobs of YAML that I have to hunt down the location of or parse their under-speced labels to find the location of. I can't make them depend on any non-container services[0], the break my firewall rules[1], and I have to use a whole mess of bespoke tooling just to do normal start/stop/restart operations with them instead of using the same commands I use for literally any other service.<p>> With quadlets, you delegate everything to systemd. You have to break the configuration up into a bunch of tiny unit files and then separately copy them to /etc or a dedicated user's dotfiles.<p>The nice thing about quadlets is exactly that, they integrate with systemd and by extension the rest of the system. I don't have to think about `webapp.container` as a "Docker container" I can think of it as just `webapp.service`, like any other piece of software I would install and run. All the related files are in one of the well-speced file locations that follow the same hierarchy as anything else on the system (user -> etc -> /usr), optionally grouped in folders[2].<p>>  Good luck SSH'ing into an unfamiliar system and understanding at a glance what it's doing.<p>Just use the same tools you'd use on any other systemd system: `systemctl list-units`, `systemctl status`, etc. Versus having to hunt down compose files either manually or by parsing the under-specified labels on the containers.<p>> (Even moreso if you created dedicated users for each application, which I understand is the recommended solution.)<p>TBH I've rarely seen this advice. Most people I know just run it as root (which is what I do) or as a `podman` user. But even in this situation it should be pretty easy to figure out whats' running, as you know it's all running as one user and is hard-namespaced to only rely on resources available in that account.<p>> If I'm just holding it wrong and there exists some better tooling to manage podman in prod that I don't know about, I'm happy to hear about it.<p>Quadlets are just files that created systemd services, so basically any configuration management or deployment tool will manage them fine. Ansible has a dedicated Quadlet role that works pretty well, or just git clones+`systemctl start`. This would probably be the recommended way if you're not using k8s/etc.<p>Alternatively, you can just `git clone /etc/containers/systemd/`, `systemctl start container` like with docker compose. If you're running multiple containers, either refer to them with `Wants=`/etc in the Quadlet files, create a `.target` file that references them all, or put them all in a `.pod` and start the pod. I think this is the part were most people stumble though: when you're used to treating containerized software as a separate kind of "thing" it's a little weird to go back to treating it like normal services.<p>I've been writing something to help with deploying quadlets GitOps-style[3] that will hopefully fill the "more than one server but less than kubernetes" deployment gap.<p>[0] Unless I wrap the compose steps in a systemd unit, at which point now I have two problems.<p>[1] Caveat, this has probably gotten better overall but I still run into compose-related firewall issues about once or twice a year<p>[2] The newer versions of Podman also support `.quadlets` files, that merge all the quadlets into one file.<p>[3] <a href="https://github.com/stryan/materia" rel="nofollow">https://github.com/stryan/materia</a> . There's also <a href="https://github.com/orches-team/orches" rel="nofollow">https://github.com/orches-team/orches</a> and <a href="https://github.com/ubiquitous-factory/quadit" rel="nofollow">https://github.com/ubiquitous-factory/quadit</a></p>
]]></description><pubDate>Tue, 05 May 2026 18:14:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48026353</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=48026353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48026353</guid></item><item><title><![CDATA[New comment by stryan in "NetHack 5.0.0"]]></title><description><![CDATA[
<p>Possibly to avoid conflicts with Nethack4[0], which was a fork of the Nethack 3.x series back when development was stalled. I think the guy behind it later joined the main Nethack dev team.<p>[0] <a href="http://nethack4.org/" rel="nofollow">http://nethack4.org/</a></p>
]]></description><pubDate>Sat, 02 May 2026 18:26:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47988993</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=47988993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47988993</guid></item><item><title><![CDATA[New comment by stryan in "Ghostty is leaving GitHub"]]></title><description><![CDATA[
<p>Glad to hear about the web UI changes, git-bug has been really great for my projects that exist across forges so I look forward to testing it out :)</p>
]]></description><pubDate>Wed, 29 Apr 2026 17:10:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47951312</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=47951312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47951312</guid></item><item><title><![CDATA[New comment by stryan in "Ghostty is leaving GitHub"]]></title><description><![CDATA[
<p>git-bug is great but it doesn't handle PRs nor does it have a method for users without commit rights to submit bugs to the project. I know they're working on the latter (something with the web UI?) but until then you still need some kind of public infra for issue management if you want the general public to be able to submit issues.<p>I use it for my project[0] to keep issues centralized with the repo, but I still use Github Discussions as a pseudo-bug tracker to let random users provide input. If it's a bug I add it to git-bug and sync it to Github issues for public viewing[1], but if you want use bug reports that's not really going to work.<p>[0] <a href="https://github.com/stryan/materia" rel="nofollow">https://github.com/stryan/materia</a><p>[1] Ironically I got this workflow idea from ghostty and mise, both of which require users to submit bug reports as discussions first and only generate tagged issues once an actionable bug is determined.</p>
]]></description><pubDate>Tue, 28 Apr 2026 20:28:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47940245</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=47940245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47940245</guid></item><item><title><![CDATA[New comment by stryan in "Amazon is discontinuing Kindle for PC on June 30th"]]></title><description><![CDATA[
<p>You can copy physical books for storage/otherwise personal use IIRC so it's not quite as locked down as a DRMd book. Not sure what the legal state of hand copying a book and then loaning it out as it probably doesn't come up much.</p>
]]></description><pubDate>Sat, 18 Apr 2026 17:36:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47817789</link><dc:creator>stryan</dc:creator><comments>https://news.ycombinator.com/item?id=47817789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47817789</guid></item></channel></rss>