MurphyA/hacker-news huggingface dataset:
by bigyabai | 2025-07-28 22:11:10+00:00
That doesn't exonerate anything, though. It shows Israel's willingness to put innocent lives in harm's way to plug potential future threats before they form. Threats they are overwhelmingly capable of deterring during transit, urban warfare or border conflicts.

The doctrinal violence against civilian infrastructure (Dahiya doctrine) and the deliberate homicide of hostages (Hannibal directive) are inexcusable no matter how many military brass it kills.
by sedkodes | 2025-07-28 22:11:40+00:00
This line of argument misrepresents both the nature of genocide and the current reality.

First, genocide isn’t defined by whether all members of an ethnic group are being killed everywhere they live—it’s about intent and actions toward any part of the group “as such.” The fact that Palestinians exist elsewhere doesn’t negate what’s happening in Gaza. The UN and multiple human rights organizations have documented mass civilian casualties, deliberate targeting of infrastructure, starvation as a weapon, and systematic displacement. That pattern aligns far more with collective punishment than a surgical military operation against Hamas.

Second, invoking WW2 to justify killing civilians today is morally bankrupt. The world learned from WW2—that’s why the Geneva Conventions and international humanitarian law exist: to prevent states from repeating those same atrocities. “We did it in WW2” is not a defense—it’s an indictment.

Third, claiming Hamas could “end it all by surrendering” is naive at best, dishonest at worst. Hamas doesn’t control every decision civilians make—babies didn’t vote for October 7. Collective punishment violates international law, period. And 60% of Gazans allegedly supporting October 7? Even if that number were accurate (which is debatable given wartime polling), collective punishment is still illegal and immoral. Civilian rights don’t evaporate because of public opinion.

Lastly, the idea that a population “actively trying to kill you” justifies cutting off food, water, and medicine reveals a complete erosion of moral clarity. If that logic held, any state could commit war crimes and simply blame the victims for “supporting the wrong group.”

You can condemn Hamas and demand restraint from Israel. These are not mutually exclusive positions—they’re what civilized societies are supposed to uphold
by ianferrel | 2025-07-28 22:11:59+00:00
"gamers who want porn games" is how it will be phrased by their political opponents, and I expect they'll be more persuasive. This is probably not a winning political issue.

Censorship has lots of popular support most places. The reason it's less successful in the US isn't because people in the US are broadly opposed to it; it's because the courts have traditionally upheld strong rights to freedom of expression under the 1st Amendment.
by burnt-resistor | 2025-07-28 22:12:37+00:00
Backend version:

- Install a rolling release distro by hand

- Install stuff without using packages or configuration management by hand without documenting them

- Install stuff on bare metal without using containers or a hypervisor. Bonus points for unlabeled spaghetti patch cable rat's nest.

- Don't automate deployment or upgrades

- Don't have backups of anything

- Don't have a plan for patching, DDoS mitigation, or DR/BCP
by ThunderSizzle | 2025-07-28 22:12:50+00:00
I'm curious what it could possibly be too. I guess he's trying to say the comments you might make at the top of a feature file to describe a feature would be his goal, but I'm not aware of a structured way to do that.

The problem is that tests are for the unhappy path just as much as the happy path, and unhappy paths tend to get particular and detailed, which means even in gherkin it can get cumbersome.

If AI is to handle production code, the unhappy paths need to at least be certain, even if repetitive.
by cauch | 2025-07-28 22:13:20+00:00
The places I've used "prove" are in totally different contexts that the context in which you pretended I was claiming some proof.

For the rest, it feels like you are moving the goalpost. The initial discussion was about the fact that if there is an impact of the societal messaging, it is smart to acknowledge that (and I insisted that it should still be done carefully). If now you are saying 75/25, then you are still saying that the societal messaging has an impact. Therefore I still think it's smart to acknowledge it.

(I understand the objection that it may be too dangerous, but unfortunately you did not go into this direction. I come back on that on my last paragraph.)

Why this impression? Your initial main argument was initially resting on "lesbian couples have the same amount of violence", but this argument does not make sense if it is 75/25: if there is a 25% effect, what does observing the same rate means? If you observe exactly the same rate, does it mean that we have a societal impact that somehow canceled itself, or does it means that in fact the "natural rate of violence from women" is less than men (the exact thing you pretend this data proves impossible), but that the societal impact increases it up to reach the same value? If indeed you believe in the 75/25, then the "same rate amongst lesbians" cannot prove anything. And on top of that, now, you also need to justify why it is 75/25 and not 85/15 or 65/35, and the whole argument seems to be "it's my gut feeling" (not that it is bad in itself, but then you cannot use that as basis to pretend that the lesbian data proves something).

I can be wrong, but because of that, it feels to me that you were not really agreeing to 75/25 at the beginning of the discussion (otherwise you would not have used the "lesbian rate" argument as you had), but now that the discussion advanced, you are making some concessions but still try to find some reasons why the conclusion you prefer is still valid. If my impression is correct, it means that instead of looking at the arguments first and reaching the conclusion based on the arguments, you start with the conclusion that you prefer, and build arguments in order to defend this conclusion.

(and I understand that you instinctively prefer the conclusion where we avoid acknowledging that there is something specific to men, it's not a comfortable prospect)

I've mentioned that we could have discussed around the danger of acknowledging. Unfortunately, if now we start discussing that, it will just reinforce my feeling that you jump to another thread now that one ran its course because you want to defend the conclusion you like.

So, yeah, I guess there is not much more to add here.
by arrowsmith | 2025-07-28 22:13:22+00:00
The generated addresses aren't real. It gave a London address for my MP; I know where he lives and it isn't London.

Most MPs' home addresses are actually quite easy to find. Mine's was printed below his name on the ballot paper last election – a nice reminder of how we used to have a high-trust society. I doubt this practice will be continued for much longer.
Show HN: Running Claude Code using any LLMs? Here's an open-source tool for it
by tensorblock | 2025-07-28 22:13:25+00:00
We recently built something useful if you want to run Claude Code with any LLMs. Forge is an open-source API layer that lets you mix Claude Code with any model – OpenAI, Gemini, Qwen, Moonshot, etc. Full flexibility without changing your app logic. You can mix-and-match models however you’d like.

Our demo runs:

Gemini 2.5 Flash as the fast, lightweight model

Qwen3-Coder-480B as the more powerful planner and code generator

But you can configure whatever combo works best for your use case. Forge offers better performance, lower costs, and full control with self-hosting options.

You can find our quickstart repo here: https://github.com/TensorBlock/claude-code-forge

Would love to hear your thoughts on this!
by erikig | 2025-07-28 22:13:45+00:00
A quick online search revealed that the HIV prevention drug Yeztugo (lenacapavir), is priced at $28,218 per year in the US. This translates to $14,109 per injection, as it is administered twice a year.

I wonder what this will look like worldwide, especially in countries where this is needed the most, once production ramps up.
by sojournerc | 2025-07-28 22:13:46+00:00
Despite the down votes I think this is right. The reason the "conservative" side has voted for Trump is more voting against the other side. With maybe a Mitt Romney type and an actual primary, the religious right would go that way. Many conservatives do not like trump, but consider him better than the alternative.

I'm grateful my parents, who were life long conservatives, haven't lived to see the tragedy of what passes for Republicans these days.
by mstokes81 | 2025-07-28 22:13:48+00:00
Hey HN, Michael here.

For the past year, I've been obsessed with a problem: as AI answer engines (Perplexity, ChatGPT, etc.) replace traditional search, how do they decide which sources to trust and cite? Too often, I see them citing low-quality, keyword-stuffed SEO articles because those are the easiest to parse. The actual human expertise is getting lost in the noise.

My attempt at a solution is AXIS, a single, 95KB dependency-free HTML file. It's built with vanilla JS and uses DOMPurify for sanitizing user content. The goal is to take high-quality content and wrap it in the rich, structured metadata that AI models need for deep comprehension. It works on most platforms like WordPress, Ghost, and Squarespace (I even had to write a fun CSS hack using `calc(-50vw + 50%)` to force full-bleed pages there).

The core workflow uses "Smart Prompts" - prompts for Claude/GPT that generate validated HTML configuration blocks. The AI outputs metadata, FAQs, and structured data that the template's JavaScript then uses to build the page, schema, and meta tags. No manual schema writing required.

The real experiment is what I'm calling "Agentic Discovery Features". These are optional fields that add `JSON-LD` navigation paths (`Agentic Paths`) and content categorization metadata (`Memory Hints`). The idea is to give future AI agents a clear, machine-readable map of your content's structure and purpose, moving beyond simple `BlogPosting` schema. It's a data-first approach to a problem that's currently dominated by black-box "agent" frameworks.

I got a bit carried away and wrote a 97-page user guide, which I've structured so you can upload it to an AI and ask it questions directly, like "How do I customize the colors?" or "What are agentic paths?".

To be fully transparent, this is a commercial product ($147 for single-site license). I'm a solo developer, and this is my shot at building a sustainable project that lets me focus on this problem space full-time. I know the "Why not open source?" question will come up, and I'm happy to discuss my thinking there.

I'm here all evening to answer questions. I'd especially love to hear your thoughts and critiques on the agentic data structures. Thanks for taking a look.

The full technical specification is here: https://www.axis-ai.org/technicalspecs
by p1necone | 2025-07-28 22:13:54+00:00
> Ahh, this is such a pet peeve of mine. I hate how it leaks. A thing I often also encounter in this vein is when you write a useEffect, but the linter forces you to declare everything in the dependency array. I only want the effect to trigger when x changes, and then call function y. But I have to declare y as well, but then if y isn't memoed it will trigger every render. But I don't want that, and I might not even have full control of function y, coming from somewhere else. I could usecallback around it myself first, but that just moves the problem, as I need to maintain the correct closure, or there will be subtle bugs.

If y never changes it should be declared as a const function outside of the context of the component, then it can be safely included in the dependency array without triggering unnecessary rerenders.

If y does change, you've just created a bug where your component will keep using an old version of y.
by 1a527dd5 | 2025-07-28 22:14:06+00:00
I think this is a fun project, but I'm not sure I'd leave this up for much longer.

MPs can be litigious. Especially if this is seen to be enabling things like ID fraud.

Also, there are only 650 constituencies. I would pre-populate the list so when entering a new postcode, it doesn't stall waiting for AI.
by StrandedKitty | 2025-07-28 22:14:11+00:00
There's a big upside to Google One Tap. It makes users sign up for your product like crazy.

I recently added it to a SaaS web app I'm working on, and the number of new sign ups went up 8x overnight. You don't necessarily have to create an account to use the minimal functionalty of our app, but after signing up you do get some perks, and we get a way to communicate with the user through email. So I think it can be beneficial for both parties.
by varenc | 2025-07-28 22:14:20+00:00
It does disrupt the user experience and clobber a site's own home page, but associating a persistent identity to a user is VERY valuable to sites, and normal sign up flows have a lot of friction. They probably figured it's worth the cost if it gets more users to login/create accounts. Its presence despite the drawbacks indicates a lot of people use this feature.
by pratt4the_win | 2025-07-28 22:14:55+00:00
Pratt parsers are elegant. I really like them.

For those to whom they are new: I found them a little tricky to implement directly from Pratt's paper or even Crockford's javascript that popularized them.

So, through trial and error I figured out how to actually implement them in regular languages (i.e. not in Lisp).

If it helps, examples in C and Go are here:

https://github.com/glycerine/PrattParserInC

https://github.com/glycerine/zygomys/blob/master/zygo/pratt....

I find them easier to work with than the cryptic LALR(1) bison/yacc tools, but then I never really felt like I mastered yacc to begin with.
by nickforr | 2025-07-28 22:15:46+00:00
I think some perspective is missing if you’re describing this as “pushing anyone down that attempts to break into the middle class” when the cutoff points (when the step changes occur, as you’re correct to note) come into effect at around something like the 95th percentile of UK salaries.

https://thesalarysphere.com/blog/average-salary-uk/
by eddythompson80 | 2025-07-28 22:15:49+00:00
You could block account.google.com (or google.com) if you don’t use any google services or expect anyone on your network to use any google services*.

* I think search still works without an account, but I don’t think anything else works that way these days. The last I know was YouTube and I get a “sign in to confirm your age” on YouTube on most videos I try to watch without being logged in.
Show HN: Companies use AI to take your calls. I built AI to make them for you
by michaelphi | 2025-07-28 22:17:14+00:00
We're living in this weird asymmetry where companies use AI to talk to us, but we're still manually dialing them. Companies everywhere are adopting AI voice agents lately. Big retail, family dentist clinics, local pharmacy. This year, I've been in a few calls where it's super natural sounding AI, which has been pretty cool to experience. But then it got me thinking - why are we, the consumers, still the ones making calls if they're using robots for theirs?

So I built Piper: basically AI that makes phone calls for you. You tell it what you need (book appointment, check on an order, dispute some charge, whatever), and it handles the entire conversation while you do actual work. Right now it's a web app, Chrome extension is pending approval but soon you'll be able to click any phone number anywhere and just let Piper handle it.

Technical stuff that was harder than expected:

Latency - every millisecond counts in conversation, had to optimize around kv cache, got it down to ~1000ms to first word over PSTN for telephony, which feels pretty natural

Keeping the voice agents on track - built custom context engineering logic that constantly updates the agent's situational awareness, so it knows when it's been transferred, when it's on hold, etc

Done ~50 successful calls with early testers so far. Main failures are when they need complex verification or documents. Also had to take down our IVR navigation temporarily :/, found some edge cases that were causing unnecessary transfers but working on fixing that.

I really think we're heading toward this world where AI talks to AI for most routine things, and phone calls might be the first real example of this happening at scale!

you can check out the a voice demo on our website. https://pipervoice.com
by jamesfmilne | 2025-07-28 22:17:31+00:00
JPEG-XS is great for low latency, but it uses more bandwidth. We're using it for low-latency image streaming for film/TV post production:

https://www.filmlight.ltd.uk/store/press_releases/filmlight-...

We currently use the IntoPIX CUDA encoder/decoder implementation, and SRT for the low-level transport.

You can definitely achieve end-to-end latencies <16ms over decent networks.

We have customers deploying their machines in data centres and using them in their post-production facilities in the centre of town, usually over a 10GbE link. But I've had others using 1GbE links between countries, running at higher compression ratios.
by alias_neo | 2025-07-28 22:18:47+00:00
It's kind of wild how people can't accept that anyone would want to leave the UK, plenty of people come here, they're leaving other places, so this must be the best place in the world.

If you don't like it you must be foreign; I'm not, I was born and raised in England to British parents. Nowhere did I say I was even planning to leave, I merely suggested that if things got worse I might have to consider it, and I was jumped on for that.

Things ARE getting worse, but I'm not at that point yet, maybe we'll have a miraculous turn around and our public services will improve and our economy will grow, I'm not even asking for it to be sunny for 3 months of the year, but if they don't, am I just supposed to sit here on a sinking ship with my children next to me?

And let's be real, it's not even about me at this point, it's about what is and what will be for my children, I've worked hard to give them a better life than I had as a kid, and I'll be damned if I don't do it.
by bigyabai | 2025-07-28 22:19:24+00:00
Hmm... let's think. Why would iOS, iPadOS and TVOS all be ignored when discussing margins on gaming profits? Any guesses?

Oh! The Mac! Whenever you let publishers compete with software storefronts of their own, Apple is chronically incapable of making money for some reason. You know, like how League of Legends and Steam and World of Warcraft and all support the Mac but conspicuously don't show up on the macOS app store or get ported to the mobile platforms that could clearly support them. Or how Photoshop and Pro Tools and Premiere all support the Mac, but just refuse to put their professional software on the App Store or iPad! What's up with that?

The fact that those storefronts are entirely captive audiences might be it. When you add macOS to the lineup, it becomes the punchline to a tortuously protracted joke.
by mandmandam | 2025-07-28 22:19:31+00:00
> As a condition for joining the controlled tour, The New York Times agreed not to ... publish geographic details

> according to the Israeli military

> There are no known entrances to the tunnel within the hospital itself

> According to the World Health Organization, Israel has conducted at least 686 attacks on health facilities in Gaza since the start of the war, damaging at least 33 of Gaza’s 36 hospitals

> In other tunnels discovered by the Israeli military, soldiers have used Palestinians as human shields, sending them on ahead to scour for traps.

... You read this article as proof vindicating the IDF's version of events? ... Huh.

If anyone wants to see the full story for themselves they can read it at https://archive.ph/giBjP#selection-1185.0-1189.43
by Izkata | 2025-07-28 22:19:37+00:00
> > Adding non-primitive props you get passed into your component to internal dependency arrays is rarely right, because this component has no control over the referential stability of those props.

> I think this is wrong? If you memoize a callback with useCallback and that callback uses something from props without putting it in the dependency array, and then the props change & the callback runs, the callback will use the original/stale value from the props and that's almost certainly a bug.

The problem is up a level in the tree, not in the component being defined. See the following code block, where they show how the OhNo component is used - the prop is always different.
by mjamil | 2025-07-28 22:21:23+00:00
The UN definition is quoted here:

In the present Convention, genocide means any of the following acts committed with intent to destroy, in whole or in part, a national, ethnical, racial or religious group, as such:

- Killing members of the group; - Causing serious bodily or mental harm to members of the group; - Deliberately inflicting on the group conditions of life calculated to bring about its physical destruction in whole or in part; - Imposing measures intended to prevent births within the group; - Forcibly transferring children of the group to another group.

Note that to meet this definition, the following conditions must be met (among others): 1. Intent to destroy must be present. 2. The intent must be to destroy, in whole or in part, a national, ethnical, racial, or religious group. 3. The destruction can be serious bodily or mental harm, or it can mean creating conditions calculated to bring about the destruction of the group in whole or in part.

This means that: - people that believe that genocide must be about a race is misguided (it can be about a nationality, and Palestinians identify as a nationality that is recognized by over 75% of the countries in the UN); - the fact that there are Palestinians elsewhere (the West Bank and Jordan, as two examples) isn't relevant to deciding whether this is a genocide (since genocide can be about destruction targeted at a part of a group); and, - there are many examples of Israeli ministers and government personnel stating goals that sound genocidal, which people interpret to affirm intent.

IANAL, and genocide is a legal term, so I am not weighing in on this with a personal opinion, but it seems reasonable that laypeople, at least, can read that definition and reach the conclusion that Israel is committing genocide. The fact that various genocide scholars (including Omer Bartov at Brown); the Lemkin Institute (named after the Lemkin who coined the term genocide); HRW; Amnesty; MSF; and other institutions have called this a genocide is also probably helping laypeople believe the claim.

Finally, there is not just a moral imperative but a legal requirement under the Geneva Convention to feed people. Article 55 states that an occupying power is responsible for this.
by gardnr | 2025-07-28 22:21:40+00:00
It looks like the code was/is going to be published?

From the FAQ:

> How did you do this?

> This site uses React for the frontend and Node.js for the backend. The MP data is fetched from the UK government public API, and the AI-generated images use the latest model from open AI. The images are stored on a Cloudflare R2 bucket. The code is open source, so you can check it out on GitHub. It was done in a hurry.

The git repo linked from that FAQ shows a 404: https://github.com/timje/use-my-mps-id
by maxerickson | 2025-07-28 22:22:18+00:00
$84,000 for a (likely) cure is a huge improvement over ~$300,000 for a liver transplant. This is partly how they established the pricing, they knew that insurers would go for the cost savings.

It's fascinating that "fair" ends up being that the drug developer has to capture the correct amount of the value they are providing the patient, and the patient gets the rest.