<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: mceachen</title><link>https://news.ycombinator.com/user?id=mceachen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 07 Nov 2026 17:39:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mceachen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mceachen in "We know 15k websites are infected. how do we tell them?"]]></title><description><![CDATA[
<p>Can't you do a .well-known or DNS handshake (like certbot) so people prove domain ownership, then hand then the report of what you found on their domain?</p>
]]></description><pubDate>Fri, 06 Nov 2026 23:21:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=50399870</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50399870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50399870</guid></item><item><title><![CDATA[New comment by mceachen in "Sshole"]]></title><description><![CDATA[
<p>*0</p>
]]></description><pubDate>Thu, 05 Nov 2026 15:04:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=50379985</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50379985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50379985</guid></item><item><title><![CDATA[New comment by mceachen in "Ask HN: What's your current AI agentic setup?"]]></title><description><![CDATA[
<p>Have your agents keep contexts of tasks up to date as they work on stuff.<p>I've been iterating on this approach for about a year—it makes switching between agents and harnesses trivial.<p><a href="https://photostructure.com/coding/claude-code-tpp/" rel="nofollow">https://photostructure.com/coding/claude-code-tpp/</a></p>
]]></description><pubDate>Thu, 05 Nov 2026 06:28:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=50375879</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50375879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50375879</guid></item><item><title><![CDATA[New comment by mceachen in "Ask HN: What's your current AI agentic setup?"]]></title><description><![CDATA[
<p>"use subagents as applicable" (and maybe "use sonnet for simpler tasks")</p>
]]></description><pubDate>Thu, 05 Nov 2026 06:22:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=50375851</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50375851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50375851</guid></item><item><title><![CDATA[New comment by mceachen in "I dumped Apple’s word list"]]></title><description><![CDATA[
<p>Same on the other side of the pond</p>
]]></description><pubDate>Wed, 04 Nov 2026 16:26:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=50367916</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50367916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50367916</guid></item><item><title><![CDATA[New comment by mceachen in "I dumped Apple’s word list"]]></title><description><![CDATA[
<p>There's no X in Wayland</p>
]]></description><pubDate>Wed, 04 Nov 2026 16:23:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=50367869</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50367869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50367869</guid></item><item><title><![CDATA[A CVE-2026-98432 firewall rule for Ubuntu, with or without Docker]]></title><description><![CDATA[
<p>Article URL: <a href="https://photostructure.com/coding/cve-2026-98432-ubuntu/">https://photostructure.com/coding/cve-2026-98432-ubuntu/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50340028">https://news.ycombinator.com/item?id=50340028</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 02 Nov 2026 17:12:47 +0000</pubDate><link>https://photostructure.com/coding/cve-2026-98432-ubuntu/</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50340028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50340028</guid></item><item><title><![CDATA[New comment by mceachen in "Linode Security Incident"]]></title><description><![CDATA[
<p>gopher goes to 11<p>(archie and veronica are non-denumerable)</p>
]]></description><pubDate>Fri, 30 Oct 2026 23:05:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=50311284</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50311284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50311284</guid></item><item><title><![CDATA[Trusted code is one bad update away from malware]]></title><description><![CDATA[
<p>Article URL: <a href="https://photostructure.com/coding/malicious-editor-extensions/">https://photostructure.com/coding/malicious-editor-extensions/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=50307645">https://news.ycombinator.com/item?id=50307645</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 30 Oct 2026 17:53:17 +0000</pubDate><link>https://photostructure.com/coding/malicious-editor-extensions/</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50307645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50307645</guid></item><item><title><![CDATA[New comment by mceachen in "Removing Next.js Got My Blog to 100 on Every Lighthouse Category"]]></title><description><![CDATA[
<p>An “image ladder” is the same image resampled at several widths. It’s not a standard term; MDN calls the technique “resolution switching”.<p>A srcset lists those versions, and the browser picks the one that fits the current viewport and screen density. <a href="https://responsiveimages.org/" rel="nofollow">https://responsiveimages.org/</a> has details.<p>For an example, view the source of <a href="https://photostructure.com/tags/" rel="nofollow">https://photostructure.com/tags/</a>. All the header art looks like this:<p><picture><source type="image/webp" srcset="/img/2026/05/desk-2000w_hu_f9b8e901c6d3512c.webp 400w, /img/2026/05/desk-2000w_hu_4e2d65cccd03c969.webp 800w, /img/2026/05/desk-2000w_hu_11f3bf6c90dbf78d.webp 1200w, /img/2026/05/desk-2000w_hu_8c1a7d0a013e4ee2.webp 1600w, /img/2026/05/desk-2000w_hu_4cebe999e55b5486.webp 2000w" sizes="100vw"><source type="image/jpeg" srcset="/img/2026/05/desk-2000w_hu_cf5671a2e3bdd0cc.jpg 400w, /img/2026/05/desk-2000w_hu_2906e4ba7cda040.jpg 800w, /img/2026/05/desk-2000w_hu_f59ef0388799d4d2.jpg 1200w, /img/2026/05/desk-2000w_hu_e183d28df837e14a.jpg 1600w, /img/2026/05/desk-2000w_hu_ea9c422963c8e0e1.jpg 2000w" sizes="100vw"><img src="/img/2026/05/desk-2000w_hu_f59ef0388799d4d2.jpg" width="1200" height="600" alt="About" class="w-100 header-image" loading="eager"></picture><p>That’s generated by <a href="https://gist.github.com/mceachen/d5915e46d1294489698e155eb11d9876" rel="nofollow">https://gist.github.com/mceachen/d5915e46d1294489698e155eb11...</a>, which uses Hugo’s resources.Get and .Resize.</p>
]]></description><pubDate>Mon, 26 Oct 2026 04:16:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=50239058</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50239058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50239058</guid></item><item><title><![CDATA[New comment by mceachen in "Removing Next.js Got My Blog to 100 on Every Lighthouse Category"]]></title><description><![CDATA[
<p>I use Hugo as well. If any of your pages have larger media, look into Pipes to get images ladder srcsets built for you automatically. Very fancy.  <a href="https://gohugo.io/hugo-pipes/introduction/" rel="nofollow">https://gohugo.io/hugo-pipes/introduction/</a></p>
]]></description><pubDate>Mon, 26 Oct 2026 03:55:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=50238904</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50238904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50238904</guid></item><item><title><![CDATA[New comment by mceachen in "Now Google says it might use your Gmail and Google Photos data to target ads"]]></title><description><![CDATA[
<p>Oh man that's rough.<p>Your experience would make for excellent feedback for me if you're willing, email hello@ my domain name if you want complementary PLUS!</p>
]]></description><pubDate>Sun, 25 Oct 2026 16:29:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50233319</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50233319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50233319</guid></item><item><title><![CDATA[New comment by mceachen in "Now Google says it might use your Gmail and Google Photos data to target ads"]]></title><description><![CDATA[
<p>Just to clarify, I've open sourced a ton of PhotoStructure (exiftool-vendored, batch-cluster, fs-metadata, @photostructure/sqlite, sqlite-vec, and 10 more repos), but PhotoStructure's frontend and backend integrations are not open source. If PhotoStructure, Inc. ever closes, though, I will open source the repos powering the consumer product.<p>I've written open source for several decades, and certainly enjoyed the spoils of open source, but I've also seen a ton of bad behavior. Keeping it closed source certainly is not a guarantee that I avoid intellectual property theft or license violations, but at least I'm not just one agent prompt away from someone rebranding and reselling what I've worked full-time on for more than a decade.</p>
]]></description><pubDate>Sat, 24 Oct 2026 18:19:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=50223756</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50223756</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50223756</guid></item><item><title><![CDATA[New comment by mceachen in "Now Google says it might use your Gmail and Google Photos data to target ads"]]></title><description><![CDATA[
<p>You can switch to tgz which supports 50gb splits.</p>
]]></description><pubDate>Sat, 24 Oct 2026 05:10:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=50218496</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50218496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50218496</guid></item><item><title><![CDATA[New comment by mceachen in "Now Google says it might use your Gmail and Google Photos data to target ads"]]></title><description><![CDATA[
<p>Don't rely on Google Takeouts for byte-perfect backups of your Google Photos library.<p>Depending on the device that uploaded the media and your country, they may have stripped GPS metadata from your media. I've also had captured-at times get changed randomly (!!) from your original media.<p>If possible, pull your media directly off your smartphone to make sure there are no shenanigans going on.<p>(These were painful discoveries made while trying to help support my PhotoStructure users)</p>
]]></description><pubDate>Sat, 24 Oct 2026 05:09:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=50218490</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50218490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50218490</guid></item><item><title><![CDATA[New comment by mceachen in "Now Google says it might use your Gmail and Google Photos data to target ads"]]></title><description><![CDATA[
<p>I wrote the open source library that Immich (and PhotoStructure and several thousand other projects) use for metadata reads and writes.<p>PhotoStructure runs everywhere (laptops, desktops, macOS, Windows and Linux), libraries are portable across machines and OSes, there's a generous, usable free tier, and setup takes about three minutes. If you have any questions hop into our discord, we're a friendly bunch.</p>
]]></description><pubDate>Sat, 24 Oct 2026 05:01:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=50218468</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50218468</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50218468</guid></item><item><title><![CDATA[New comment by mceachen in "mitmproxy adds --emudhra option"]]></title><description><![CDATA[
<p>That's the combination to my HSM!</p>
]]></description><pubDate>Thu, 22 Oct 2026 03:05:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=50190678</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50190678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50190678</guid></item><item><title><![CDATA[New comment by mceachen in "Chain of Thought for Humans"]]></title><description><![CDATA[
<p>In almost every interview I gave at the last several companies I worked for, I'd start with "This may feel a bit odd, but with this coding problem, I'd appreciate if you spoke through your problem solving. If it helps, pretend like I am your intern. Good ideas, bad ideas, pros and cons of whatever you're considering, it's all valuable information for me to learn a bit about how you approach problems."<p>I feel like being explicit like this put candidates at a bit more ease than having them try to suss out what the interviewer is expecting from them implicitly (and I know there are many interviewers that will auto-veto any candidate with the audacity to suggest a possibly imperfect approach).</p>
]]></description><pubDate>Thu, 22 Oct 2026 03:00:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=50190638</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50190638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50190638</guid></item><item><title><![CDATA[New comment by mceachen in "Do dentists know what they're doing?"]]></title><description><![CDATA[
<p>Yeah, took a look at your legacy codebase. Lots of deadwood, spaghetti, misalignments. I'd even say there was skeletal deformities in the architecture. If I was your uncle, I'd say it needed at least two full rewrites. Yeah, two, because the first rewrite will suffer from second system syndrome. You don't want that. Better to plan for both rewrites ahead of time.</p>
]]></description><pubDate>Thu, 15 Oct 2026 03:50:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=50098917</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50098917</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50098917</guid></item><item><title><![CDATA[New comment by mceachen in "Gemini 4 Argon"]]></title><description><![CDATA[
<p>He deserves a full parliament</p>
]]></description><pubDate>Tue, 13 Oct 2026 16:47:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=50074715</link><dc:creator>mceachen</dc:creator><comments>https://news.ycombinator.com/item?id=50074715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50074715</guid></item></channel></rss>