HNHacker News
TopNewBestAskShowJobs

haberman

20,582 karma · joined May 11, 2009

submissionscomments
haberman··on Python 3.15
As a maintainer of a Python module that uses abi3 now, thank you!

Just one question: any plans to promote APIs like PyUnstable_EnableTryIncRef() and PyUnstable_TryIncRef() into the limited API? So far we have found that these APIs are necessary to implement the weak-valued caches we've always used in the past: https://github.com/protocolbuffers/protobuf/blob/6559a9f9622...

haberman··on Txt: A fast, keyboard-driven terminal text editor for engineers
Vim is great and I have 25 years of muscle memory for it. But I'm also interested in trying Kakoune (https://kakoune.org/why-kakoune/why-kakoune.html) -- which I understand also has a VSCode plugin called Dance (https://github.com/71/dance) -- as I've seen somewhat convincing arguments that it is a more powerful model for modal editing.

Instead of "verb object" (eg. delete word or "dw"), it is "object verb" (eg. word delete, or "wd").

In particular, it seems to obsolete "visual mode" from vim (which I use often), because you're essentially always in visual mode. You always get to see a selection before you perform an action. Or at least that's what I understand, I haven't tried it yet.

haberman··on TurboKV: Insanely fast Rust key-value store
I assume this is for hashing. I've seen several hashing algorithms turn to hardware AES instructions before, but I haven't seen any evidence that this technique outperforms state-of-the-art hashes like RapidHash (https://github.com/Nicoshev/rapidhash) in either quality or speed.
haberman··on NetBSD 11.0
It was a sincere question and I found your comment quite off-putting.

You're talking to someone who spent a month in college installing every free OS I could get my hands on (including the BSDs). I find alternate operating systems interesting, but haven't played with them much lately. I compare other free Unixes to Linux because I use Linux every day and it's what I know.

It's interesting to think of hypothetical scenarios where an alternative to Linux might be more compelling to me for some reason (eg. is OpenBSD objectively more hardened than Linux? Is NetBSD objectively more portable? etc.)

haberman··on NetBSD 11.0
I often wonder what the current status is of the BSDs (FreeBSD, OpenBSD, NetBSD). Who uses them, who works on them, what is their motivation for doing so? How do they compare to Linux these days, in terms of size, feature set, security hardening, etc? Is their usage/development happening at a relatively constant level, or is it growing/shrinking?
haberman··on Fil-C: Garbage In, Memory Safety Out [video]
> rather than hoping LLVM will have your back

My thought here is to proactively verify that LLVM elided the automatic bounds checks in places where you believe that your explicit checks should be sufficient.

That was a key part of my article on "No-Panic Rust": https://blog.reverberate.org/2025/02/03/no-panic-rust.html ("A Dance With The Optimizer")

haberman··on The Tokio/Rayon Trap and Why Async/Await Fails Concurrency
I see two solid points here:

1. It's not reasonable to expect the application layer to carefully partition its work into "I/O heavy" and "CPU heavy" parts.

2. It's not reasonable to queue up an arbitrary amount of work without back-pressure.

I haven't used Tokio much, but if it falls prey to these pitfalls, it would make me pause before adopting it.

I think there are probably ways of using Rust async that don't fall prey to these. Maybe not so much with network servers (I haven't written that many of those), but models where you are evaluating a graph and have more control over how new work is added to the system.

haberman··on My thoughts on the Bun Rust rewrite
> There's a dichotomy being presented here where you have to either choose a "style guide" or a programming language feature in order to avoid bugs. The sleight of hand misdirects the reader away from the main way bugs are eliminated: by dedicating engineering resources to it. You're not giving TigerBeetle nearly enough credit. Quite simply they put in the time to find and eliminate the bugs, they make an effort to maintain a healthy relationship with ZSF, and Bun did not do that.

This is not a compelling sales pitch. The point of using a memory-safe language is not needing to put in extra work to avoid use-after-free or out-of-bounds memory access.

It would have been more reassuring to hear that Zig has its own memory safety story that should also be able to prevent most of the same bugs. But instead the answer is "work harder for the same result."

When Zig was first created, Rust looked genuinely harder to use because the borrow checker is so demanding and its errors sometimes so hard to reason about and fix. It made Zig look much simpler and easier by comparison. But now, LLMs are very good at writing Rust. I've been writing Rust using LLMs for weeks and haven't thought about the borrow checker once.

AI made Rust tractable without heroic effort, and in doing so eroded one of Zig's major advantages.

The point about compile times is taken though. Rust is definitely slow to compile, easier to believe it's slower than Zig.

haberman··on Why does kinetic energy increase quadratically, not linearly, with speed? (2011)
I’ve always found it especially confusing that energy has this quadratic relationship with speed, whereas momentum is linear in the speed.
haberman··on U.S. science is in chaos
The French, who have "égalité" in their national motto, prohibit the kind of demographic tracking and reporting that US Progressives consider core to their project. Do you think the French don't care about egalitarianism? No, they just have a different concept of what that means. Just like many Americans.

Academics could broaden their horizons and consider the possibility that there are multiple perspectives on egalitarianism, and that the public that funds them is quite split on the issue. If Science is really the priority, it should be easy to stay neutral on unrelated contentious social issues. But I guess it's more fun to preach and condescend to people who disagree, and then complain when those people don't want to fund your enterprise anymore.

haberman··on U.S. science is in chaos
It happened directly at least once: https://www.science.org/content/article/u-s-college-first-de...

It happens indirectly all the time. As of 2025, despite all the funding cuts, the AAAS is still publishing its yearly DEI report, now rebranded as an "Inclusivity for Excellence Report", but containing all of the same stuff: an effort to collect and publish as much demographic data as possible, and a stated goal of getting all the numbers to go in the "right" direction. These practices are too ingrained and sacrosanct at this point to let a mere funding crisis throw them off course.

haberman··on U.S. science is in chaos
I think you can easily turn this around: scientists who are only willing to do science if it involves preferential treatment, DEI statements, and other practices that half of the country despises are saying that it's better to do no science at all than to set those divisive practices aside and just do science.

Proponents of these policies want to have it both ways; they're at one moment just this small thing that nobody should be bothered by, but in the next moment a nonnegotiable bedrock principle that they are unwilling to stop doing, even under threat of losing funding.

haberman··on Windows GOG DOS Games on M-Series Macs
If this works I wonder why GOG doesn’t do it automatically.
haberman··on Citing 'severe' math deficits, UC faculty demand a return to SAT tests for STEM
I am not convinced that separating students by ability harms anybody's academic performance. I think it's a false premise that a parent who wants their kid in advanced classes (or advanced schools) is behaving "antisocially."

When there is too great a difference in ability in a single classroom, teachers struggle to serve everyone's needs. I don't believe anyone is well-served by this.

haberman··on The Prompt API
I'm inclined to think that this will actually decrease the power of echo chambers. Echo chambers become that way by policing dissent, either through moderation or through aggressive attacks on dissenters. A de-snarkifier would de-fang the latter.

I agree that what is toxic to one person is not toxic to another, but think that this is largely because many people enjoy seeing their perceived enemies attacked. In other words, it comes down to a viewpoint bias: attacking my group/viewpoint is toxic, while attacking other groups/viewpoints is good and noble.

My ideal is that a de-snarkifier would be strongly instructed to be viewpoint neutral; to filter based on whether the comment is being respectful, without regard to the views being expressed.

My idea would backfire if other people program their filter to reinforce their own biases by favoring content that they agree with and creating or amplifying personal attacks on their perceived enemies. That would be unfortunate, but ultimately we can only control what we do; each person gets to make their own decision.

haberman··on The Prompt API
I 100% agree with this. I am certain that I cannot foresee how this would play out in reality.
haberman··on The Prompt API
That is unironically exactly what I want from social media.

I want the option to engage with the substance of new developments in the world, technology, etc. without the drama. I don't want to be drawn into the drama of strangers (who could, for all I know, just be bots or ragebaiting AIs).

If I want drama, there's plenty of it on TV, or I could talk to my friends about what is going on with people I actually know.

The anti-pattern, in my mind, is logging on to engage with substantive content and to be inadvertently drawn into flamewars with strangers.

haberman··on The Prompt API
This API seems perfect for an idea I've had for a while: a de-snarkifier for social media.

Social media can be intellectually stimulating and educational, but it's also easy to get sucked into ideological sniping and flamewars, even if you didn't go looking for it. The emotional and intellectual energy spent flaming strangers on the Internet is a complete waste of human capital.

With an API like this, I assume you could have a browser extension that could de-snarkify content before showing it to you. You could ask the LLM to preserve all factual content from the post, but to de-claw any aggressive or snarky language. If you really wanted to have fun, you could ask it to turn anything written in an aggressive tone into something that sounds absurd or incompetent, so that the more aggressive the post, the more it would make the author look silly.

This could have a double benefit. For the reader, it insulates them from the personal attacks of random strangers on the Internet. Don't get me wrong, there is a time and a place for real, charged arguments about important issues that affect us all. But there is little to be gained from having those fights with strangers; on the contrary, I think it poisons the body politic when strangers are screaming at each other.

For the writer, it takes away any incentive to be snarky or rude. If other people filter their content this way, there's no point in trying to be mean to them, and no "race to the bottom" for who can be more nasty.

haberman··on AI Resistance: some recent anti-AI stuff that’s worth discussing
It's an interesting essay, and the TLC case does sound pretty egregious. But the premise is undermined by the fact that Love is worth an estimated $100M today, largely thanks to owning Nirvana's publishing rights, which she inherited from Kurt Cobain.
haberman··on AI Resistance: some recent anti-AI stuff that’s worth discussing
The artists were certainly making more money from the studios and record labels than they got from the authors of DeCSS, Napster, BitTorrent, The Pirate Bay, etc.

When Gillian Welch wrote "Everything is Free" in 2001, she wasn't complaining about the record companies, she was complaining about Napster.

> Q: Do you remember where you were when you wrote “Everything is Free”?

> A: I do. I remember exactly where I was and what was going on. It was when Napster was starting to decimate the traditional recording industry dynamic, the viability of making your livelihood [from] your art.

--Gillian Welch, 2018 (https://www.rollingstone.com/music/music-features/gillian-we...)

haberman··on AI Resistance: some recent anti-AI stuff that’s worth discussing
You can certainly argue second-order effects (ie. we have to restrict information to save information), but the movie studios were making that same argument at the time:

> If copyright can no longer protect the distribution of the work they produce, who will invest immense sums to create films or any other creative material of the kind we now take for granted? Do the thieves really expect new music and movies to continue pouring forth if the artists and companies behind them are not paid for their work?

--Jack Valenti, Motion Picture Association of America, 2000 (https://archive.is/PBy7C)

It sounds remarkably similar to what people concerned about AI say today. How do we make sure that artists get paid?

I don't think many hackers found the argument compelling at the time.

haberman··on AI Resistance: some recent anti-AI stuff that’s worth discussing
I'm old enough to remember a time when the primary hacker cause was DRM, the DMCA, patent trolls, export controls for PGP, etc. All things that made it difficult to use information when you want to. "Information wants to be free."

It's wild to see the about face. Now it's:

> If [companies] can’t source training data ethically, then I see absolutely no reason why any website operator should make it easy for them to steal it.

It would have been very difficult to predict this shift 25 years ago.

haberman··on America will come to regret its war on taxes
Wait, didn't Clinton actually balance the budget? That gets props from me; no government since then has actually given Americans an honest picture of what it actually takes to run a balanced budget, which will require some combination of higher taxes and/or decreased spending.
haberman··on America will come to regret its war on taxes
I would be open to paying higher taxes if I believed it would help address the deficit and debt (instead of just enabling more spending) and if I believed that the money was being well spent.

Earlier in my adulthood, I would happily vote for almost any tax or levy, because I had faith that that money was turning directly into societal good.

I have lost that faith. In the worst case, money seems to be grossly mismanaged (here is a local example from just last month: https://www.seattletimes.com/seattle-news/politics/fallout-f...).

In other cases, it is going to real nonprofits that are tasked with solving problems that never seem to get better, no matter how much money is spent.

In yet other cases, the money goes to building transit (something else I was previously very bullish on), but that, once built, seems to be governed by principles of limitless permissiveness (an example from a few days ago: https://komonews.com/news/local/only-8-metro-fare-enforcemen...)

It's hard to feel invested in the programs that my taxes pay for when it doesn't feel like they reflect my values.

haberman··on LaGuardia pilots raised safety alarms months before deadly runway crash
> Obama's FAA disincentivised its traditional "feeder" colleges that do ATC courses to "promote diversity", net outcome was fewer applicants

It was much worse than that. Students who had already spent years studying to be air traffic controllers through the CTI program were subject to a sudden policy change that disqualified them from entering the profession unless they passed a “biographical questionnaire.”

85% of candidates failed this questionnaire, but the National Black Coalition of Federal Aviation Employees (the organization that pushed for this change to begin with) was feeding the “right” answers to its own members.

“Right” answers included things like having gotten bad grades in high school science class. You can take the test for yourself here and see how you score: https://kaisoapbox.com/projects/faa_biographical_assessment/

I can’t blame anyone for thinking this sounds too outrageous to be real, but all of it is public record at this point and the subject of an ongoing lawsuit: https://www.tracingwoodgrains.com/p/the-full-story-of-the-fa...

haberman··on Making WebAssembly a first-class language on the Web
> Thankfully, there is the esm-integration proposal, which is already implemented in bundlers today and which we are actively implementing in Firefox.

From the code sample, it looks like this proposal also lets you load WASM code synchronously. If so, that would address one issue I've run into when trying to replace JS code with WASM: the ability to load and run code synchronously, during page load. Currently WASM code can only be loaded async.

haberman··on Why can't you tune your guitar? (2019)
> Not everyone in history thought that 12-TET was an acceptable compromise. Johann Sebastian Bach thought we should use other tuning systems

This is presented as fact, but as I understand it there is no conclusive evidence for what Bach intended wrt temperament. There is a theory that the title page of the Well-Tempered Clavier encodes Bach’s preference in the calligraphic squiggles, but this is a recent theory and speculative. I don’t believe there are any direct statements by Bach as to his intention.

haberman··on Linux Internals: How /proc/self/mem writes to unwritable memory (2021)
TL;DR: when a user writes to /proc/self/mem, the kernel bypasses the MMU and hardware address translation, opting to emulate it in software (including emulated page faults!), which allows it to disregard any memory protection that is currently setup in the page tables.
haberman··on An AI agent published a hit piece on me – more things have happened
> So many of our foundational institutions – hiring, journalism, law, public discourse – are built on the assumption that reputation is hard to build and hard to destroy. That every action can be traced to an individual, and that bad behavior can be held accountable. That the internet, which we all rely on to communicate and learn about the world and about each other, can be relied on as a source of collective social truth. [...] The rise of untraceable, autonomous, and now malicious AI agents on the internet threatens this entire system.

I disagree. While AI certainly acts as a force multiplier, all of these dynamics were already in play.

It was already possible to make an anonymous (or not-so-anonymous) account that circulated personal attacks and innuendo, to make hyperbolic accusations and inflated claims of harm.

It's especially ironic that the paragraph above talks about how it's good when "bad behavior can be held accountable." The AI could argue that this is exactly what it's doing, holding Shambaugh's "bad behavior" accountable. It is precisely this impulse -- the desire to punish bad behavior by means of public accusation -- that the AI was indulging or emulating when it wrote its blog post.

What if the blog post had been written by a human rather than an AI? Would that make it justified? I think the answer is no. The problem here is not the AI authorship, but the actual conduct, which is an attempt to drag a person's reputation through mudslinging, mind-reading, impugning someone's motive and character, etc. in a manner that was dramatically disproportionate to the perceived offense.

haberman··on Open source is not about you (2018)
> he eventually needed to write bluntly

Is there a history of that here? Were there earlier clear statements of expectations (like CONTRIBUTING.md) that expressed the same expectations, but in a straightforward way, that people just willfully disregarded?

I don't mean to "ding" anybody, I mostly just felt bad that things had gotten to the point where the author was so frustrated. I completely agree that project owners have the right to set whatever terms they want, and should not suffer grief for standing by those terms.

Page 1 of 34Next →