MurphyA/hacker-news huggingface dataset:
by mrweasel | 2026-03-13 07:25:05+00:00
It's only recently some have come to terms with the fact that DNA evidence sometimes returns false positives. Society, and law enforcement, assumed that DNA was infallible. No one apparently wondered millions of people could be reduced to a tiny number of genetic markers apparently having no overlap.

Danish police had to redo 20.000 DNA tests with a larger set of markeres begin tested, because they jailed someone based solely on a DNA test and did consider that they might have gotten the wrong person, despite the DNA match. It's essentially a human hash collision.

Identification by AI is going to be the same, except worse, because it's frankly less scientific. Law enforcement, the judicial system and especially the public is simply to uninterested in learning the limitations of these types of systems. Even in the more civilized part of the world police would love to just have the computer tell them who to pick up and where.
by rudolftheone | 2026-03-13 07:25:49+00:00
WOW, that's amazingly dystopian!

It’s fascinating, even terrifying how the AI perfectly replicated the exact cognitive distortion we’ve spent decades trying to legislate out of human-to-human relationships.

We've shifted our legal frameworks from "no means no" to "affirmative consent" (yes means yes) precisely because of this kind of predatory rationalization: "They said 'no', but given the context and their body language, they actually meant 'just do it'"!!!

Today we are watching AI hallucinate the exact same logic to violate "repository autonomy"
by steve_adams_86 | 2026-03-13 07:26:49+00:00
It cut my build/dev times by ~1/3 for a few projects. Deployments are meaningfully faster. It also plays perfectly with Deno projects which isn't totally shocking or anything, but I was expecting at least some friction somewhere. They did great work on this.

It looks like I'm at the lower end of their reported improvement range (like Mercedes-Benz.io at 38% improvement). Some of these are insane. "Linear: Production build times dropped from 46s to 6s" wow
by pjmlp | 2026-03-13 07:27:57+00:00
Vanilla JS is "supported" if you write the missing parts, e.g. layout service, visual editing integration,...

In many places they will say it is supported, but when you look into the details only React/Next.js work out of the box without additional work.

A bit like you can deploy Next.js on Vercel, or do it yourself somewhere else.
by justsomehnguy | 2026-03-13 07:28:39+00:00
> It seems our fingers have gotten thinner

Of course not. It's actually way simpler: smartphones became taller and heavier and you no longer can use it with one hand anymore even if you are 2m tall man. So the main mode of interaction changed to a two-hand mode and one-hand is relegated for the doom scrolling, selfies and quick replies.

Hell, my Moto has a special one-handed mode!

>> Use one-handed mode

>> Want to use one thumb to navigate your phone? Turn on One-handed mode.

>> This mode is only available if you're using Gesture navigation.

https://en-us.support.motorola.com/app/answers/detail/a_id/1...

Trivia game: try to guess to which smartphone these dimensions belongs to:

115.2 mm 58.6 mm 9.3 mm 137 g
130.7 mm 68.9 mm 8.99 mm 145 g
146.7 mm 71.5 mm 7.4 mm 162 g
163.0 × 77.6 × 8.25 mm 227 g
by gspr | 2026-03-13 07:29:39+00:00
I absolutely believe you on the facts, and it all sounds very disgusting, but here's what I don't understand: customers and staff alike no longer like the clinic. Won't that be a huge boon to competitors, essentially ruining the VC's investment?

I get that it's not so clean cut with something as equipment- and licensing heavy as the veterinarian sector. But I've heard the same story exemplified with pizza parlors instead. Won't all the good staff take all the loyal customers and go elsewhere very easily in that case?
by Quothling | 2026-03-13 07:29:50+00:00
I'm Danish and like every other western country Palantir want's to mass survailance us (and we apparently sadly want them to do it too despite the whole Greenland thing). I can't tell you how it'll shift power from the cultural elite to the working class because that's not what we're seeing. We're seeing AI shift power from the cultural elite, and, the working class to the technical/financial elite.

It does so with survailance and information. In a free democratic society you can jaywalk when no car is around and be ok. In a survailance state, you can't, because it'll hurt your social credit score. Similar to what we see in certain Asian countries, effectively making you a B class citizen. Jaywalking is just an example of course, because we've agreed that is technically illegal but basically every human when confronted with a situation like that outside of bureaucracy will think it's ok you crossed the completely empty road. They won't think it's ok if the road wasn't empty. Which is the nuance in the system, that the survailance bureaucracy doesn't have.

I like to think of it in dungeons and dragons alignments. Democracy is in the neutral zone, perhaps with a slight chaotic basis, but over all you don't want it to be either too lawful or too chaotic. If it goes too far either way the other side will suffer. The reason it can be a little biased toward chaotic is because chaotic people don't try to force their way on lawful people quite as much as the other way around.

I guess more working class men in America are lawful? Over all though, the people with the power will be the people with the information and the wealth to impact the bureaucracy.
by marcus_holmes | 2026-03-13 07:30:52+00:00
Isn't this part of the same problem we have with LLM security in general; that it can only ingest a single stream of tokens, and has no method of privileging "system" tokens over "untrusted" tokens?

If we could solve this (and forgive me if I'm not aware of recent advances that mean we have solved this) then this problem gets easier to solve; permissions live in the system token stream and are privileged. We can then use the LLM to work out what that means in terms of actions.
by JuniperMesos | 2026-03-13 07:31:14+00:00
What are the boundaries of the community that votes? What if the racial demographics of that community have changed recently, in ways that affect how the vote turns out? What if some people in that community are aware of these voting patterns and explicitly bring up race when engaging in public discussion about the merits or demerits of the red-light-camera-policy, because it's important? What if they try to change the boundaries of the voting district in order to include/exclude more people who they think will vote with/against them on the red-light-camera issue, in ways that highly correlate with race?
by 21asdffdsa12 | 2026-03-13 07:31:18+00:00
This posts observation have interesting side-effects. Measurements, metrics and surveillance kill creative work. And hierarchies and the fear of embarrassment do too. So, the more you try to force "excellence" into existence via external pressures and resource tracking, the more it disappears.

Which leaves as observation, you can only do truly creative work - in a high trust society, where people trust you with the resources and leave you alone, after a initial proof of ability.

Or in a truly low-trust society, where you are part the kleptocrat chieftain system and you just use your take to do this kind of work. The classic MBA process will totally destroy any scientific or creative institution.
by cableshaft | 2026-03-13 07:32:01+00:00
All I know is it feels very different using it now then it did a year ago. I was struggling to get it to do anything too useful a year ago, just asking it to do a small function here or there, often not being totally satisfied with the results.

Now I can ask an agent to code a full feature and it has been handling it more often than not, often getting almost all of the way there with just a few paragraphs of description.
by stevenhuang | 2026-03-13 07:33:32+00:00
Yeah the author makes a really poor example with the async case here.

Async in rust is done via cooperative scheduling. If you call await you enter a potential suspension point. You're willingly telling the scheduler you're done running and giving another task a chance to run. Compound that with something like tokio's work stealing and now you'll possibly have your task migrated to run on a different thread.

If this is in hot path making another call to await is probably the worst thing you can do lol.

The author demonstrates later with a dead simple inlining example that the asm is equivalent. Wonder why he didn't try that with await ;)
by csin | 2026-03-13 07:34:34+00:00
It's a horrendous example.

Bears are the same thing as bulls. Just the opposite.

You can look like a degenerate wallstreetbets gambler, being a bull, buying puts.

You can equally look like a degenerate wallstreetbets gambler, being a gay bear, shorting the stock.

The "beauty" of our modern stock market, is it provides both sides the avenue to lose stupid amounts of money.
by Ajakks | 2026-03-13 07:34:41+00:00
I cant reply to your other comment - that is what I assumed you were saying but it does not make sense to me outside the process that naturally occurs - I'm assuming the suns gravity simply cant move objects of such different mass, at the same rate, and thereby the orbit and position changes accordingly?

The speed doesn't have to be much different - 366 days and earth will eventually hit asteroid - 364 days and it will eventually hit the earth.

Ahh, Im still having a hard time figuring out why that would take more energy - I'm going to be researching this all morning tomorrow.

Thanks for the help!
by adrian_b | 2026-03-13 07:34:46+00:00
No, you cannot, because that is logically inconsistent and it leads to bugs.

NaN means either an unknown number or that no number can satisfy the condition of being the result of the computed function.

When you compare unknown numbers, you cannot know if they are equal and you cannot know if they are not equal.

That is why both the equality operator and the non-equality operator must be false when comparing a NaN with itself.

When you see a binary FP number, the encoding no longer has any memory about where the number has been generated.

For deciding that a NaN is equal to itself, it is not enough to examine the encoding, you must know the history of the 2 instances of the same NaN value, where they had been generated. Only if the 2 instances are duplicates of a single value, i.e. they had been generated by the same operation, then you could say that they are equal.

If you would want such a facility in a program, then it is not enough to propagate just a floating-point value. You would have to define a custom data type and accompany the FP value by another value that encodes its provenance.

Then you could make custom equality and non-equality operators, which when comparing identical NaNs also compare their provenances, and they decide whether the NaNs are equal or non-equal based on the provenances.

Such a use case is extremely rare. In decades of experience I have never seen a situation when such a feature would be desirable. Nevertheless, if someone wants it, it would be easy to implement it, but it will add considerable overhead.

For example, the provenance could be encoded as a pointer to strings of the form "File ... Line ...", produced using the normal compiler facility for this, which will refer to the source line where the result of a function is tested for being a NaN, and if so the provenance pointer is stored, instead of a null pointer.

Even this encoding of the provenance may not be foolproof, because some functions may generate NaNs with different meanings. For a complete provenance encoding, one would need not only a pointer identifying the function that had generated the NaN, but also the value of a static counter that is incremented at each function invocation.

The provenance could be encoded compactly by storing the string pointers in an array and storing in the provenance an index into that array together with the value of the invocation counter.

So it can be done, but I am pretty sure that this would never be worthwhile.
by LarsDu88 | 2026-03-13 07:35:32+00:00
I've been thinking hard about this paradigm shift while thinking about ideas for things to "vibecode"

I started by trying to think about ways of running a vending machine company autonomously using a finite state machine + agents. It turns out most of "automating" a vending machine company doesn't need LLM agents at all, and simply buying machines with reliable telemetry + a database + automated inventory could get you much further than replacing every or even some components with an LLM. The LLM could replace the person on the phone texting the laborers who refill and service the machines, perhaps autonomously order refills (but hey so can a cronjob).

The troubling thought I had is that AI does not displace the technicians, or the vending machines. It replaces the manager. The human manager is the component that is unnecessary. The entire global economy can eventually reflect this reality where most of the wealth is technically owned by humans but where the majority of financial transactions and decision making will be done by machines (at a level not yet seen)

Macroeconomic metrics will go up along with wealth and standard of living, but for actual flesh and blood humans, much of this will be irrelevant.
by olejorgenb | 2026-03-13 07:35:35+00:00
Thanks for explaining :)

> First, you open source the code that's running in the enclave, and pin a commitment to it to a transparency log (in our case, Sigstore).

This means you have reproducible builds as well? (source+build-artifacts is signed)

Also - even if there are still some risk that the link is not 100% safe, maybe it's safe to assume vendors like yourself going through all that trouble are honorable? (alternatively - they are very curious of what "paranoid" people would send through LLMs :sweatsmile:)
by mid-kid | 2026-03-13 07:36:53+00:00
It's worth noting that while these videos may have been unintentional, this was also an era when youtube was still inventing itself. Sure, there was real content creation, but the structures of sponsors and ad revenue that can be a real income today weren't there. Let's plays were just starting to dominate the platform, and people were still figuring out how to make money off of that.

As a result, there was a lot of this type of content: barely edited, poorly performed, honest moments of real life, amateurish creations of any kind, be that digital animation, music, acting, etc. I feel these IMG_xxxx videos reflect some of the vibe of the era. Now, sharing videos with people is easy enough in group chats, and youtube content feels so manufactured that people feel it's less appropriate to share this sort of thing via youtube.
by ryanjshaw | 2026-03-13 07:37:09+00:00
> It exists only for the people who think it exists

Right. Which means it does exist. And the point of the article is to bring about self awareness of the phenomenon so that people can improve.

I think you have the same goal with your comment, but your style of communication needs work.

Ironically, I would argue you might benefit from caring a little about how others perceive you.
by swiftcoder | 2026-03-13 07:37:51+00:00
> You probably want int(2) and float(2) to be considered the same key in a dictionary to avoid surprises

There are a variety of problems here:

- floats can't represent whole numbers exactly as they get further from zero.

- error accumulates in floating point arithmetic, so calculated keys may not match constant keys

- Do you really want 2.0 and 2.00001 to refer to different objects?
Show HN: YAOS – A 1-click deploy, real-time sync engine for Obsidian
by kavinsood | 2026-03-13 07:37:55+00:00
Hey HN,

I'm a heavy Obsidian user.

I recently got tired of the two usual sync tradeoffs:

1. File-based sync (iCloud/Dropbox/Syncthing) that leaves you waiting for changes to propagate, or hands you a "conflicted copy."
2. Self-hosted setups (like CouchDB) that need touching VMs and dockerized databases to sync markdown.

So I built YAOS: a local-first, real-time sync engine for Obsidian.

Self-hosting OSS should have better UX.

You can deploy the backend to your own Cloudflare account in one click. It fits comfortably in Cloudflare's free tier (costing $0/month for normal personal use), and requires absolutely no terminal interaction, no SSH, and no env files.

You can try it out right now: https://github.com/kavinsood/yaos

How it works under the hood:

- Text sync uses Yjs CRDTs. It syncs real-time keystrokes and cursors rather than treating the vault as a pile of files to push around later.
- Each vault maps to a Cloudflare Durable Object, giving you a low-latency, single-threaded coordinator at the edge.
- The backend uses a chunked Checkpoint + Delta-Journal MVCC storage engine on top of the DO's SQLite storage.
- Attachments sync separately via R2 (which is optional—text sync works fine without it).

The hardest part of this project was bridging Obsidian's synchronous UI and noisy OS file-watchers with the in-memory CRDT graph. I had to build a trailing-edge snapshot drain that coalesces rapid-fire IO bursts (like running a find-and-replace-all) into atomic CRDT transactions to prevent infinite write-loops.

The current design keeps a monolithic CRDT per vault. This is great for normal personal notes, but has a hard memory ceiling (~50MB of raw text). I chose this tradeoff because I cared more about fast, boringly reliable real-time ergonomics than unbounded enterprise scale.

I also wrote up engineering notes on the tricky parts (like handling offline folder rename collisions without resurrecting dead files) on GitHub.

I've spent the last three weeks doing brutal QA passes to harden mobile reconnects, IndexedDB quota failures, and offline split-brain directory renames.

I'd love feedback on the architecture, the code, or the trade-offs I made. I'll be hanging out in the thread to answer questions!
by hvoetsch | 2026-03-13 07:38:40+00:00
Hey HN,

I've been thinking about why AI agents struggle with code generation — it's not the models, it's the languages. Every
compiler was designed to output human-readable errors. Agents have to regex-scrape them, which breaks constantly.

So I built Valea: a minimal systems language where the compiler speaks JSON by default.

$ valea check program.va --json
[{"code":"E201","message":"Function 'foo' returns bool but declared int","span":{"start":4,"end":7}}]

Stable error codes (E201, E202...) mean an agent can branch on the code, not fragile string matching. Canonical
formatter means two agents generating the same program always produce identical output. Targets C as output.

The demo shows Claude autonomously:
- Writing a program → hitting E001 (negative literal not supported) → inventing a workaround within the language
constraints → emitting valid C
- Building Fibonacci via pure function chaining (no loops, no recursion)
- All without human intervention

https://asciinema.org/a/834560

Repo: https://github.com/hvoetsch/valea

Still MVP — only functions, int/bool, addition, and zero-arg calls. But the compiler infrastructure (lexer, parser,
type checker, C emitter, JSON diagnostics) is solid. Looking for feedback on the design direction before expanding the
language surface.

What would you add first: parameters, variables, or conditionals?
by vidarh | 2026-03-13 07:38:51+00:00
I made the argument multiple times that the right answer to many prompts would be a question, and it was allowed under some rare circumstances, but far too few.

I suspect in part because the provider also didn't want to create an easy cop out for the people working on the fine-tuning part (a lot of my work was auditing and reviewing output, and there was indeed a lot of really sloppy work, up to and including cut and pasting output from other LLMs - we know, because on more than one occasion I caught people who had managed to include part of Claudes website footer in their answer...)
by throwawaytea | 2026-03-13 07:39:19+00:00
I've been using computers since 1991 (I'm 42, from 1984), and to be honest this stuff is getting harder and more confusing, not easier. Mostly because it keeps changing, and not based on any logic towards improvement. Sure I'm good at getting my questions and problems solved now, especially with AI, but I don't believe I have the ingrained mastery I felt after a while with computers in the 90s.
by ZeroGravitas | 2026-03-13 07:41:00+00:00
All obviously true but for this audience you have to, sadly, address the Nazi mind view that is explicitly built to counter this.

The parents lived in the better location because they are better, purer Aryans. That's why the kid did better, because they have the good genes. They deserve their success. The poor deserve their poverty.

Zoom out to different countries and you can find top level members of the government making this argument on a daily basis. "They" are poor because they are inferior human beings and do not deserve to be treated as full human beings.
by retsibsi | 2026-03-13 07:41:17+00:00
I don't think it's intended as that kind of binary. It's more like "yeah, it's flawed in that way, and here's how you can get around that". If someone's claiming the tool is perfect, they're wrong; but if someone's repeatedly using it in the way that doesn't work and claiming the tool is useless, they're also wrong.
by cableshaft | 2026-03-13 07:42:08+00:00
> I also think that having to solve novel puzzles as part of my job helps preserve my brain plasticity as I age.

Yeah, this is a concern. I remember when I took a break from coding to work as a video game producer for a couple of years and I felt like my ability to code was atrophying and that drove me nuts.

Now I'm not so sure. There's just so much dumb garbage that's accumulated around coding nowadays, especially with web dev. So much time just gluing together or puzzling out how to get APIs or libraries to works and play nice together.

It's not like back in the days where it was relatively simple with PHP and HTML, when I first started. Much less you could do back then, sure, but expectations were a lot lower back then as well.

I might just content myself with doing Sudoku or playing/designing board games to help keep that brain plasticity going, and stop fighting so hard to understand all this junk. Or finally figure out how to get half-decent at shader math or something, at least that seems less trivial and ephemeral.
by gnarlbar | 2026-03-13 07:42:08+00:00
Not me, but I can imagine it happening.

JSX is a nice server side templating language. There a lot of people who aren't dependency conscious, and a lot of people who love react, and there is quite a bit of overlap in those two groups. I've used bun + preact_render_to_string for server side JSX templates before and it was nice. When I did it seemed that bun somewhat embraced react, and I could imagine react being the path of least resistance to server-side JSX there for some of the folks in the aforementioned groups.
by gherkinnn | 2026-03-13 07:43:14+00:00
It's the Vercel way to first run broken previews for several years.

Next started with Turbopack alpha as a Webpack alternative in Next 13 (October 2022) and finally marked Turbopack as stable and default in Next 16 (October 2025). They also ran sketchy benchmarks against Vite back in 2022 [0].

Next's caching has a terrible history [1], it is demonstrably slow [2] (HN discussion [3]), RSCs had glaring security holes [4], the app router continues to confuse and relied on preview tech for years, and hosting Next outside of Vercel requires a special adapter [5].

Choosing Next.js is a liability.

0 - https://github.com/yyx990803/vite-vs-next-turbo-hmr/discussi...

1 - https://nextjs.org/blog/our-journey-with-caching

2 - https://martijnhols.nl/blog/how-much-traffic-can-a-pre-rende...

3 - https://news.ycombinator.com/item?id=43277148

4 - https://nextjs.org/blog/CVE-2025-66478

5 - https://opennext.js.org/