<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: psanford</title><link>https://news.ycombinator.com/user?id=psanford</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 03:58:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=psanford" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by psanford in "SQLite is all you need for durable workflows"]]></title><description><![CDATA[
<p>I wrote a library[0] to let you concurrently update a sqlite db in s3 safely. It uses the little known sqlite sessions extension plus s3 compare-and-swap on a small metadata file to make this work reasonably efficiently and safely. I have been enjoying it for a bunch of small projects where I want a lambda function to have a db for state but I don't want to pay for a full database instance.<p>[0]: <a href="https://github.com/psanford/s3db" rel="nofollow">https://github.com/psanford/s3db</a></p>
]]></description><pubDate>Sat, 30 May 2026 00:46:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48331209</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=48331209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48331209</guid></item><item><title><![CDATA[New comment by psanford in "I returned to AWS, and was reminded why I left"]]></title><description><![CDATA[
<p>I do not trust a free-tier VPS with my data.</p>
]]></description><pubDate>Sun, 10 May 2026 14:50:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084453</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=48084453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084453</guid></item><item><title><![CDATA[New comment by psanford in "I returned to AWS, and was reminded why I left"]]></title><description><![CDATA[
<p>I have also used lambda at scale in professional environments. I would not use a lambda for a webserver at scale, but having an s3 object trigger processing via a lambda function is a really nice flow.</p>
]]></description><pubDate>Sun, 10 May 2026 14:49:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084449</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=48084449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084449</guid></item><item><title><![CDATA[New comment by psanford in "I returned to AWS and was reminded why I left"]]></title><description><![CDATA[
<p>> If you're using AWS Lambda then you have to work to keep convincing yourself this is better than your own web servers. Keep convincing yourself that using AWS Lambda is not a horrible mistake.<p>lol ok. I have ~50 lambdas running in my personal aws account. Some of them are webservers running behind an api gateway or using a lambda function url to expose them to the internet. Some are running on a schedule, some are triggered from s3 events. The cost to run these for me is less than the cost of the cheapest vps (my total requests per month stay under the free tier limit). There is also zero maintenance I need to do for these functions (ok, this year I did have to find-replace al2 to al.2023 in my terraform config). I don't have to worry about making sure the os is patched for the latest vulnerabilities. And I don't have to worry about the specific hardware my code is running on at any time. Doing maintenance for old projects sucks. It is great to have servers I deployed years ago continue to chug along without me needing to think about it.<p>Now, all of my lambdas are written in Go and I suspect if I was using one of the manged runtime libraries I would find the language upgrades to be quite annoying. Go also helps quite a lot with cold start times.<p>Then again maybe I have just drank the koolaid. In my quest to use lambdas for as much as I can as cheaply as I can, I made a library[0] to use sqlite on top of s3 (not just readonly). It uses the sqlite session extension plus s3 compare-and-swap to allow you to write updates safely to s3, even if you have concurrent writers.<p>[0]: <a href="https://github.com/psanford/s3db" rel="nofollow">https://github.com/psanford/s3db</a></p>
]]></description><pubDate>Sun, 10 May 2026 14:31:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084296</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=48084296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084296</guid></item><item><title><![CDATA[New comment by psanford in "OpenAI should build Slack"]]></title><description><![CDATA[
<p>The API is free. The statement in the article is not about corporate friction</p>
]]></description><pubDate>Sun, 15 Feb 2026 15:38:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47024521</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=47024521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47024521</guid></item><item><title><![CDATA[New comment by psanford in "OpenAI should build Slack"]]></title><description><![CDATA[
<p>> Developers routinely complain about Slack’s API costs and permissions<p>What? What API costs is the op talking about?</p>
]]></description><pubDate>Sat, 14 Feb 2026 21:33:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47018611</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=47018611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47018611</guid></item><item><title><![CDATA[New comment by psanford in "Using an engineering notebook"]]></title><description><![CDATA[
<p>Most of what I write in my journal I don't want to need to remember (that is why I am writing it down). I also don't know what will be important or not important later, so I want it all to be searchable.</p>
]]></description><pubDate>Thu, 12 Feb 2026 18:53:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46993282</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46993282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46993282</guid></item><item><title><![CDATA[New comment by psanford in "Using an engineering notebook"]]></title><description><![CDATA[
<p>This "it has to be handwritten" stuff is nonsense. Do that if you enjoy it, but also you should acknowledge the downsides to it.<p>I started keeping a work journal a few years ago and it has changed how I work for the better. It is just a text file.<p>The main value of it is that I can search it! When I'm figuring something out for the first time, and I have a lot of trail and error, I write down what I did. And then I might not touch that thing again for 6 months. When I come back to it, it is unlikely that I will remember what I did exactly but because it is written down and searchable I can quickly recover my old state.<p>I like this so much I also started a personal work journal for my home lab. It really is useful for me. But its primary value is that I can search it.</p>
]]></description><pubDate>Thu, 12 Feb 2026 16:08:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46990544</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46990544</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46990544</guid></item><item><title><![CDATA[New comment by psanford in "Why E cores make Apple silicon fast"]]></title><description><![CDATA[
<p>I'm curious how asahi linux manages scheduling across e cores and p cores. Has anyone done experiments with this?<p><i>Edit:</i> It looks like there was some discussion about this on the Asahi blog 2 years ago[0].<p>[0]: <a href="https://asahilinux.org/2024/01/fedora-asahi-new/" rel="nofollow">https://asahilinux.org/2024/01/fedora-asahi-new/</a></p>
]]></description><pubDate>Sun, 08 Feb 2026 15:25:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46935067</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46935067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46935067</guid></item><item><title><![CDATA[New comment by psanford in "Code and Let Live"]]></title><description><![CDATA[
<p>To follow up on this a bit, something that I really want is a way to build and launch apps from an llm really easily. I am imagining and environment with a database, object storage, and a publicly reachable webserver. I think this could be that with OIDC auth to an s3 bucket and litestream.<p>I was previously thinking about doing the same thing on my homeserver with tailscale to expose the web interface publicly and tailscale oidc auth to an s3 bucket for object storage.</p>
]]></description><pubDate>Sat, 10 Jan 2026 19:41:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46569208</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46569208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46569208</guid></item><item><title><![CDATA[New comment by psanford in "Code and Let Live"]]></title><description><![CDATA[
<p>Playing around with this for a small amount of time, it is very neat but also there are a bunch of things that are unclear / undocumented (I assume the documentation is coming so I'm not faulting them for it not being there yet).<p>Some things that are unclear:<p>- How should I auth to github? sprite console doesn't use ssh (afaik) so I guess not agent forwarding?<p>- What on machine api's are available? Can I use the fly oidc provider[1]? There's a /.sprite/api.sock but curl'ing /v1/tokens/oidc gets a 404.<p>- How much is it going to cost me? I know there is pricing but its hard to figure out what actual usage would be like. Also I don't see any usage info in the webui right now.<p>[1]: <a href="https://fly.io/blog/oidc-cloud-roles/" rel="nofollow">https://fly.io/blog/oidc-cloud-roles/</a></p>
]]></description><pubDate>Sat, 10 Jan 2026 19:35:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46569153</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46569153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46569153</guid></item><item><title><![CDATA[New comment by psanford in "Code and Let Live"]]></title><description><![CDATA[
<p>What is the criteria for a sprite being "idle"? Is it no network activity or is it cpu based?</p>
]]></description><pubDate>Sat, 10 Jan 2026 15:46:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46566656</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46566656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46566656</guid></item><item><title><![CDATA[New comment by psanford in "Problems with D-Bus on the Linux desktop"]]></title><description><![CDATA[
<p>Those are not extensions. Not can you use them to talk to dbus.</p>
]]></description><pubDate>Wed, 17 Dec 2025 02:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46297595</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46297595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46297595</guid></item><item><title><![CDATA[New comment by psanford in "Problems with D-Bus on the Linux desktop"]]></title><description><![CDATA[
<p>What browser extensions? Why would I want websites to integrate with gnome or kde? What does that even mean?</p>
]]></description><pubDate>Tue, 16 Dec 2025 02:32:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46284040</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46284040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46284040</guid></item><item><title><![CDATA[New comment by psanford in "Litestream VFS"]]></title><description><![CDATA[
<p>Oh hey this is using my go sqlite vfs module[0]. I love it when I find out some code I wrote is useful to others!<p>[0]: <a href="https://github.com/psanford/sqlite3vfs" rel="nofollow">https://github.com/psanford/sqlite3vfs</a></p>
]]></description><pubDate>Thu, 11 Dec 2025 19:39:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46236138</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46236138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46236138</guid></item><item><title><![CDATA[New comment by psanford in "I put a real search engine into a Lambda, so you only pay when you search"]]></title><description><![CDATA[
<p>This is great!<p>I have been using Quickwit as a low cost search engine on Lambda. It works very well for my relatively small and infrequently updated dataset.<p>Unfortunately Quickwit devs have decided to not support the Lambda deployment mode going forward so eventually I'll need another option.</p>
]]></description><pubDate>Mon, 24 Nov 2025 15:50:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46035394</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=46035394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46035394</guid></item><item><title><![CDATA[New comment by psanford in "What Killed Perl?"]]></title><description><![CDATA[
<p>The thing that killed perl was python. The reason that python won is because it was Google's blessed scripting language.</p>
]]></description><pubDate>Wed, 19 Nov 2025 20:25:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45984650</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=45984650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45984650</guid></item><item><title><![CDATA[New comment by psanford in "Asahi Linux Still Working on Apple M3 Support, M1n1 Bootloader Going Rust"]]></title><description><![CDATA[
<p>I had an M2 air running asahi that I loved and had similar worries. I ended up buying a maxed out refurbished M2 which I expect will last me a few more years.</p>
]]></description><pubDate>Fri, 24 Oct 2025 16:22:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45696178</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=45696178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45696178</guid></item><item><title><![CDATA[New comment by psanford in "1Password CLI Vulnerability"]]></title><description><![CDATA[
<p>Yes. It is a nice report that does not engage with 1password's security model at all. 1password specifically says that they do not think it is feasible to defend against locally executing malware.</p>
]]></description><pubDate>Sun, 05 Oct 2025 11:49:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45480828</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=45480828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45480828</guid></item><item><title><![CDATA[New comment by psanford in "SSH3: Faster and rich secure shell using HTTP/3"]]></title><description><![CDATA[
<p>I do hate the name ssh3. I was glad to see this at the top of the repo:<p>> SSH3 is probably going to change its name. It is still the SSH Connection Protocol (RFC4254) running on top of HTTP/3 Extended connect, but the required changes are heavy and too distant from the philosophy of popular SSH implementations to be considered for integration. The specification draft has already been renamed ("Remote Terminals over HTTP/3"), but we need some time to come up with a nice permanent name.</p>
]]></description><pubDate>Sat, 27 Sep 2025 15:48:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45396774</link><dc:creator>psanford</dc:creator><comments>https://news.ycombinator.com/item?id=45396774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45396774</guid></item></channel></rss>