<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: dap</title><link>https://news.ycombinator.com/user?id=dap</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 01 Jun 2026 21:11:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dap" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dap in "United Airlines 767 returns to Newark after Bluetooth name sparks alert"]]></title><description><![CDATA[
<p>It doesn’t have to be an intentional threat to be worth responding to. One might reasonably think they’d stumbled on an (admittedly poorly executed) attack.</p>
]]></description><pubDate>Mon, 01 Jun 2026 02:33:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48352037</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=48352037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48352037</guid></item><item><title><![CDATA[New comment by dap in "United Airlines 767 returns to Newark after Bluetooth name sparks alert"]]></title><description><![CDATA[
<p>Is it a taboo, or is it just reserving specific words to mean specific things and insist everybody be precise about it?</p>
]]></description><pubDate>Mon, 01 Jun 2026 02:32:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48352032</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=48352032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48352032</guid></item><item><title><![CDATA[New comment by dap in "United Airlines 767 returns to Newark after Bluetooth name sparks alert"]]></title><description><![CDATA[
<p>This is explicitly mentioned in the article:<p>> Though some have questioned why anyone intending to blow up a plane would broadcast the word bomb, many terrorist acts have relied on the threat of a bomb as leverage during attempted hijackings or hostage situations.</p>
]]></description><pubDate>Mon, 01 Jun 2026 01:18:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48351583</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=48351583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48351583</guid></item><item><title><![CDATA[New comment by dap in "Don't just paste the AI at me"]]></title><description><![CDATA[
<p>This really depends on context.  Sure, if you're responding to a forum post or StackOverflow question with nothing but the LLM output, then I agree with this.  On the other hand, where I've done this at work, it's because I and some peers _together_ are trying to understand something (e.g., debugging), and Claude has some potentially useful input, but I'm not actually sure.  And I'm looking to collaborate on interpreting the output together to see if there's anything useful.  (Folks can decide to ignore it if it doesn't seem promising.)  As another comment[1] said, pasting the output as-is contains other useful metadata.<p>There are also cases where I think I know the answer, and I ask the AI, and it produces a more complete answer than I would but I know enough to assess it. It seems like a waste of time to paraphrase the whole thing.  That's the "Here's how Claude phrased it and I can attest that it's right" case.<p>[1] <a href="https://news.ycombinator.com/item?id=48243331">https://news.ycombinator.com/item?id=48243331</a></p>
]]></description><pubDate>Sat, 23 May 2026 00:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48243426</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=48243426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48243426</guid></item><item><title><![CDATA[New comment by dap in "An OpenAI model has disproved a central conjecture in discrete geometry"]]></title><description><![CDATA[
<p>Have you not seen:<p><a href="https://www.anthropic.com/research/project-vend-1" rel="nofollow">https://www.anthropic.com/research/project-vend-1</a>
<a href="https://www.wsj.com/tech/ai/anthropic-claude-ai-vending-machine-agent-b7e84e34?st=ZZwvG4" rel="nofollow">https://www.wsj.com/tech/ai/anthropic-claude-ai-vending-mach...</a><p>(Two different examples of a similar idea)</p>
]]></description><pubDate>Thu, 21 May 2026 00:29:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48216231</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=48216231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48216231</guid></item><item><title><![CDATA[New comment by dap in "The peril of laziness lost"]]></title><description><![CDATA[
<p>I don't think these things are as different as you think.  I started at "ls" and worked down.  If you work up, you get things like a "socket", an "object" within a programming language, a "linked list" in a standard library, an "HTTP client" within an application-level package.  You can keep going up and rattle off lots of useful abstractions in application-level code.<p>There are certainly _bad_ abstractions that ought not to exist, which I think is what you're getting at.  There are poorly built abstractions, and leaky abstractions.  But abstraction itself isn't the problem -- abstraction is what allows us to build anything at all without being crushed by the sheer complexity.</p>
]]></description><pubDate>Mon, 13 Apr 2026 16:52:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47754813</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47754813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47754813</guid></item><item><title><![CDATA[New comment by dap in "The peril of laziness lost"]]></title><description><![CDATA[
<p>I’m curious what you think an abstraction is.  Even running “ls” involves several layers of abstraction: a shell, a process (abstracts memory), a thread (abstracts CPU)… you think it would be simpler if you had to deal with all that to list a directory (another abstraction)? Even bits are an abstraction over analog voltage levels.</p>
]]></description><pubDate>Mon, 13 Apr 2026 05:59:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47748146</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47748146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47748146</guid></item><item><title><![CDATA[New comment by dap in "Show HN: Made a little Artemis II tracker"]]></title><description><![CDATA[
<p>Is the MET right? They launched about 29 hours ago but it says 1d18h</p>
]]></description><pubDate>Fri, 03 Apr 2026 02:00:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47622462</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47622462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47622462</guid></item><item><title><![CDATA[New comment by dap in "An incoherent Rust"]]></title><description><![CDATA[
<p>Thanks for the context.  That makes a lot of sense!  Those three constraints seem pretty important and a useful way to think about the problem.</p>
]]></description><pubDate>Tue, 24 Mar 2026 16:56:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47505719</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47505719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47505719</guid></item><item><title><![CDATA[New comment by dap in "An incoherent Rust"]]></title><description><![CDATA[
<p>Having used Rust professionally for six years now, I share your fear.  Like many of the commenters below, coherence just hasn't been a big problem for me.  Maybe there are problem spaces where it's particularly painful?<p>How does the Rust language team weigh the benefits of solving user problems with new language features against the resulting increased complexity?  When I learned Rust, I found it to be quite complex, but I also got real value from most of the complexity.  But it keeps growing and I'm not always sure people working on the language consider the real cost to new and existing users when the set of "things you have to know to be competent in the language" grows.</p>
]]></description><pubDate>Tue, 24 Mar 2026 03:31:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47498321</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47498321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47498321</guid></item><item><title><![CDATA[New comment by dap in "An incoherent Rust"]]></title><description><![CDATA[
<p>I've never once pulled in a new dependency and had the program fail to compile just by virtue of that dependency being present [because both my code and the new code both impl'd the same trait on the same type in some other code].  Because that can't happen because of coherence.  (Right?)<p>It's so easy to forget about the problems we <i>don't</i> have because of the (good) 
choices people have made in the past.</p>
]]></description><pubDate>Tue, 24 Mar 2026 03:20:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47498265</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47498265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47498265</guid></item><item><title><![CDATA[Formulas for Pi]]></title><description><![CDATA[
<p>Article URL: <a href="https://mathworld.wolfram.com/PiFormulas.html">https://mathworld.wolfram.com/PiFormulas.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47377218">https://news.ycombinator.com/item?id=47377218</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 14 Mar 2026 14:45:11 +0000</pubDate><link>https://mathworld.wolfram.com/PiFormulas.html</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47377218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47377218</guid></item><item><title><![CDATA[New comment by dap in "“It turns out” (2010)"]]></title><description><![CDATA[
<p>I don’t think that sums up the post well. I would say:<p>The phrase “it turns out” has a surprising way of disarming skepticism in readers. While surprising, it’s easy to understand: the phrase suggests a story of the author’s journey of believing one thing, investigating, and finding something different. That’s more credible than simply saying the thing they now believe. The touch of vulnerability (admitting being wrong) avoids the reader’s ego getting defensive when asked to admit they were wrong. The net result is that it’s surprisingly easy to be convinced without any real argument.<p>I’ve noticed this as well (often in podcasts and programs like Radiolab) and I think it’s quite valuable to just be aware of it as a reader/listener, if you care about thinking critically about your own beliefs.</p>
]]></description><pubDate>Thu, 05 Mar 2026 03:28:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47257162</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=47257162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47257162</guid></item><item><title><![CDATA[New comment by dap in "Eat Real Food"]]></title><description><![CDATA[
<p>> How long did humanity survive without vaccines for _everything_? Oh that's right.<p>Is this a trick question?  <i>Humanity</i> survived by having enough people with enough other useful traits (like thinking, including the ability to reason about disease and how to prevent it) to overcome the numbers lost to disease.  <i>Humans</i> died to disease in enormous numbers.<p>> nor that they're all good for _me_ as an individual.<p>Herd immunity presents a real challenge to idea that people should generally be allowed to make their own choices.  One's choice here affects everyone else, in a minuscule way that nonetheless adds up to many thousands of lives saved.  I'm not sure what the answer is for this, but generally I come down on the side of: if a democratic process creates rules requiring us all to be immunized for the common good, that's okay with me.</p>
]]></description><pubDate>Wed, 07 Jan 2026 21:17:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46532969</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46532969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46532969</guid></item><item><title><![CDATA[New comment by dap in "Parental controls aren't for parents"]]></title><description><![CDATA[
<p>There is important truth in your post, yet you seem to miss the really important pieces that make this hard.<p>> It's the parents obligation to educate their child.<p>> It's the child's obligation to use that education wisely.<p>Two obvious things complicate this:<p>- You weren't taught how to use a real gun at 6 months old, right?<p>- Would it not follow from what you said above that if you had accidentally shot and killed yourself at age 7, then it would be your own fault and nobody else's?  That seems (to me, at least) like an absurd conclusion.<p>I think about it like this: as a parent, my jobs include identifying when my child is capable of learning about something new, providing the guidance they need to learn it (which is probably not all up front, but involves some supervision, since it's usually an iterative process), allowing them to make mistakes, accepting some acceptable risks of injury, <i>and</i> preventing catastrophe.  I'll use cooking as an example.  My kids got a "toddler knife" very young (basically a wooden wedge that's not very sharp).  We showed them how to cut up avocados (already split) and other soft things.  As they get older, we give them sharper knives and trickier tasks.  We watch to see if they're understanding what we've told them.  We give more guidance as needed.  It's okay if they nick themselves along the way.  But we haven't given them a sharpened chef's knife yet!  And if they'd taken that toddler knife and repeatedly tried to jam it into their sibling's eye despite "educating" them several times, while I wouldn't regret having made the choice to see if they were ready, I would certainly conclude that they <i>weren't</i> yet ready.  That's on me, not them.<p>You allude to this when you say:<p>> I am very much for showing kids how to use the internet responsibly, but I'm not of the opinion that parental controls are particularly desirable beyond an initial learning period.<p>Yes, the goal should be to teach kids how to operate safely, not keep them from all the dangerous things.  But I'd say that devices and the internet are more like "the kitchen".  There are lots of different risks there and it's going to take many years to become competent (or even safe).  Giving them an ordinary device would be like teaching my 2-year-old their first knife skills next to a hot stove in a restaurant kitchen with chefs flying around with sharp knives and hot pots.  By contrast, without doing any particular child-proofing, our home kitchen is a much more controlled environment where I can decide which risks they're exposed to when.  This allows me to supervise without watching every moment to see if they're about to stab themselves -- which also gives them the autonomy they need to really learn.  The OP, like other parents, wants something similar from their device and the internet: to gradually expose elements of these things as the parents are able to usefully guide the children, all while avoiding catastrophe.</p>
]]></description><pubDate>Fri, 02 Jan 2026 19:32:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46468434</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46468434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46468434</guid></item><item><title><![CDATA[New comment by dap in "Rust's Block Pattern"]]></title><description><![CDATA[
<p>I inferred that they’re referring to the fact that in typical C the compiler must have seen a function earlier in the file for you to use it. One solution (that the author doesn’t like) is to put the leaf functions first so that they’re defined when the compiler sees their callers. The author seems to be ignoring the alternative approach: declaring functions at the top and then writing the in the top-down order that they like.</p>
]]></description><pubDate>Sun, 21 Dec 2025 19:55:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46347803</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46347803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46347803</guid></item><item><title><![CDATA[New comment by dap in "Pricing Changes for GitHub Actions"]]></title><description><![CDATA[
<p>Doesn't this depend a lot on how long your actions run?  Like, you may have already invested in your own hardware (maybe because your actions use a lot of resources and it's cheaper) and now you have to pay per-minute of <i>action runtime</i> for the API that does the bookkeeping?</p>
]]></description><pubDate>Tue, 16 Dec 2025 18:28:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46292306</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46292306</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46292306</guid></item><item><title><![CDATA[New comment by dap in "Vacuum Is a Lie: About Your Indexes"]]></title><description><![CDATA[
<p>>> What remains is me feeling triggered when it feels like users' pain is being casually dismissed.<p>> Was that done in this thread?<p>Well, I raised a general problem around 24/7/365 use cases (rooted in my operational experience, reinforced by the more-current words that I was replying to and the OP) and you called it "tedious", "low-info griping".  Yes, that seems pretty dismissive.<p>(Is it fair?  Though I thought the podcast episodes were fairly specific, they probably glossed over details.  They weren't intended to be about those issues per se.  I did write a pretty detailed post though:
<a href="https://www.davepacheco.net/blog/2024/challenges-deploying-postgresql-9.2-for-high-availability/" rel="nofollow">https://www.davepacheco.net/blog/2024/challenges-deploying-p...</a>
(Note the prominent caveat at the top about the experience being dated.))<p>You also wrote:<p>> running an, at the time, outdated postgres, on an outdated OS<p>Yes, pointing to the fact that the software is old and the OS is unusual (it was never outdated; it was just not Linux) are common ways to quickly dismiss users' problems.  If the problems had been fixed in newer versions, that'd be one thing.  Many (if not all) of them hadn't been.  But also: the reason we were running an old version was precisely that it was a 24/7/365 service and there was no way to update databases without downtime, especially replicated ones, nor a great way to mitigate risk (e.g., a mode for running the new software without updating the on-disk format so that you can go back if it's a disaster).  This should be seen as a <i>signal</i> of the problem, not a reason to dismiss it (as I feel like you're doing here).  As for the OS, I can only think of one major issue we hit that was OS-specific.  (We did make a <i>major</i> misconfiguration related to the filesystem that certainly made many of our issues much worse.)<p>I get that it sucks to keep hearing about problems from years ago.  All of this was on 9.2 - 9.6 -- certainly ancient today.  When this comes up, I try to balance sharing my operational experience with the fact that it's dated by just explaining that it's dated.  After all, <i>all</i> experience is dated.  Readers can ignore it if they want, do some research, or folks in the PostgreSQL world can update me when specific things are no longer a problem.  That's how I learned that the single-threaded WAL receiver had been updated, apparently in part because of our work: <a href="https://x.com/MengTangmu/status/1828665449850294518" rel="nofollow">https://x.com/MengTangmu/status/1828665449850294518</a> (full thread: <a href="https://x.com/MengTangmu/status/1828665439234474350" rel="nofollow">https://x.com/MengTangmu/status/1828665439234474350</a>).  I'll happily share these updates wherever I would otherwise share my gripes!</p>
]]></description><pubDate>Mon, 15 Dec 2025 19:20:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46279071</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46279071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46279071</guid></item><item><title><![CDATA[New comment by dap in "Avoid UUID Version 4 Primary Keys in Postgres"]]></title><description><![CDATA[
<p>It is, although you can have sharded PostgreSQL, in which case I agree with your assessment that you want random PKs to distribute them.<p>It's workload-specific, too.  If you want to list ranges of them by PK, then of course random isn't going to work.  But then you've got competing tensions: listing a range wants the things you list to be on the same shard, but focusing a workload on one shard undermines horizontal scale.  So you've got to decide what you care about (or do something more elaborate).</p>
]]></description><pubDate>Mon, 15 Dec 2025 17:12:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46277260</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46277260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46277260</guid></item><item><title><![CDATA[New comment by dap in "Vacuum Is a Lie: About Your Indexes"]]></title><description><![CDATA[
<p>> It's a question of resource margins.<p>What you describe is true and very important (more margin lets you weather more disruption), but it's not the whole story.  The problem we had was queueing delays mainly due to I/O contention.  The disks had the extra IOPS for the maintenance operation, but the resulting latency for <i>all</i> operations was higher.  This meant overall throughput decreased when the maintenance was going on.  The customer, finally accepting the problem, thought: "we'll just build enough extra shards to account for the degradation".  But it just doesn't work like that.  If the degradation is 30%, and you reduce the steady-state load on the database by 30%, that doesn't change the fact that when the maintenance is ongoing, even if the disks have the IOPS for the extra load, latency goes up.  Throughput will still degrade.  What they wanted was predictability but we just couldn't give that to them.<p>> To be fair, I find oxides' continual low-info griping against postgres a bit tedious. There's plenty weaknesses in postgres, but criticizing postgres based on 10+ year old experiences of running an, at the time, outdated postgres, on an outdated OS is just ... not useful?<p>First, although I work at Oxide, please don't think I speak for Oxide.  None of this happened at Oxide.  It informed some of the choices we made at Oxide and we've talked about that publicly.  I try to remember to include the caveat that this information is very dated (and I made that edit immediately after my initial comment above).<p>I admit that some of this has been hard for me personally to let go.  These issues dominated my professional life for three <i>very</i> stressful years.  For most of that time (and several years earlier), the community members we reached out to were very dismissive, saying either these weren't problems, or they were known problems and we were wrong for not avoiding them, etc.  And we certainly did make mistakes!  But many of those problems were later acknowledged by the community.  And many have been improved -- which is great!  What remains is me feeling triggered when it feels like users' pain is being casually dismissed.<p>I'm sorry I let my crankiness slip into the comment above.  I try to leave out the emotional baggage.  Nonetheless, I do feel like it's a problem that, intentionally or otherwise, a lot of the user base has absorbed the idea that it's okay for necessary database maintenance to significantly degrade performance because folks will have some downtime in which to run it.*</p>
]]></description><pubDate>Sun, 14 Dec 2025 19:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265981</link><dc:creator>dap</dc:creator><comments>https://news.ycombinator.com/item?id=46265981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265981</guid></item></channel></rss>