MurphyA/hacker-news huggingface dataset:
by vablings | 2025-12-19 15:16:20+00:00
It's actually the buffering in this case that will get you dinged. The stated 110ms "lag" is probably the minimum time between keystrokes ever. If you have ever recorded data on the mean time between keystrokes you get a nice even distribution but for someone on a KVM it will look very skewed with most being under 110ms and zero below 110ms which is impossible for a normal human at a machine to replicate

Furthermore, there are a number of other side channel attacks here you could use to make things really inconvenient. Something super powerful would-be having a fido2 key such as a YubiKey and recording the mean time to human press keypress. Your average person who is present at the machine will touch the button in a number of seconds. A remote operator in NK will have to summon the homeowner which could take significantly longer.

Another technique you could use is look at the mouse movement data. You would also see the same truncated. distribution, I think a few people have put together a PoC for detecting cheaters in games based on mouse movements.

I do wonder also if the KVM devices they are using support HDCP. Showing media over HDCP on the screen that instructs the user to write an email or make a phone call instantly would be pretty cool.
by DGoettlich | 2025-12-19 15:16:43+00:00
Also one of our fears. What we've done so far is to drop docs where the datasource was doubtful about the date of publication, if there are multiple possible dates we take the latest to be conservative. During training, we validate that the model learns pre- but not post-cutoff facts. https://github.com/DGoettlich/history-llms/blob/main/ranke-4...

If you have other ideas or think thats not enough, I'd be curious to know! (history-llms@econ.uzh.ch)
by jchw | 2025-12-19 15:17:04+00:00
COSMIC seems cool, though I don't love the visual style myself. Someone I know who used it ran into the problem that it mounts network shares using a mount unit, which is good, but it doesn't add nofail, which is really really bad, because it means you hang at boot waiting for it to mount. I'm sure they'll figure this out, but I really have been wondering where to report this issue specifically; it's hard because I don't know where it actually exists in the code (and I couldn't find it quickly.)
by psyopsy | 2025-12-19 15:17:40+00:00
You said, "I don't think he's said exactly that in his own words but..." That's implicitly saying, "well, he hasn't admitted it outright, but yeah, he basically believes it."

Now faced with evidence contrary to your beliefs, you're claiming you didn't say that. When presented with proof, It's ok to just admit that you were wrong.
by jadedtuna | 2025-12-19 15:17:41+00:00
Right, but C-style generics really are not generics at all. As other comments point out, they effectively are conpile-time if statements. A generic function would automatically instantiate and generate required code for different call types, and perform the correct operations. The C-style "generics" are a conpile-time switch statement, switching on types.
by squigz | 2025-12-19 15:17:47+00:00
This seems like a really narrow perspective on kids' use of computers in schools, but even if that's the case, it seems to me the solution might be to... teach them computing, not take it away. Or, we might recognize that there's lots of technology we don't learn the ins-and-outs of and yet that are fundamental to our lives, even if we could technically get by without it

Anyway, I would think that having a simple, locked-down OS at school is preferable than having a laptop on which they can do whatever they want, at least to the issue of being distracted in class.

Also, a related comment points out that not all is doom-and-gloom - surprisingly, schools can actually implement sane usage restrictions for laptops in class.
by HarHarVeryFunny | 2025-12-19 15:18:09+00:00
> LLMs are just seemingly intelligent autocomplete engines

Well, no, they are training set statistical predictors, not individual training sample predictors (autocomplete).

The best mental model of what they are doing might be that you are talking to a football stadium full of people, where everyone in the stadium gets to vote on the next word of the response being generated. You are not getting an "autocomplete" answer from any one coherent source, but instead a strange composite response where each word is the result of different people trying to steer the response in different directions.

An LLM will naturally generate responses that were not in the training set, even if ultimately limited by what was in the training set. The best way to think of this is perhaps that they are limited to the "generative closure" (cf mathematical set closure) of the training data - they can generate "novel" (to the training set) combinations of words and partial samples in the training data, by combining statistical patterns from different sources that never occurred together in the training data.
by krapp | 2025-12-19 15:18:29+00:00
Who do you think is responsible for the current moral panic around social media?

That shit didn't just happen. Social media only became ontologically evil once it presented a threat to the status quo by allowing the underclasses to organize and establish political power, and when it started to undermine mainstream propaganda narratives.

It's no coincidence that TikTok is being described as a CCP weapon of war and indoctrination when it starts leading people to question their government's foreign policy and capitalism. Can't have that.
by eudamoniac | 2025-12-19 15:18:55+00:00
> Tell me what happened to democracy when Hitler took power? And how democratic was the overall process? So was the decision to commit mass murder of millions of people really the democratic will of the people?

It wasn't, but as I said, if the majority of voters do wish to commit mass murder, that is actually not trivially ignorable.

> You can also look at the parallels to Trump and his continued assault on the democratic norms in the US government. For example assuming powers that are those of Congress, trying to control what states can do via executive order, a thankfully rebuffed attempt at gerrymandering even the Republicans shied away from and so on.

Congress is our representatives. They are philosophically us. The majority of them do not want to impeach Trump for these things. Also the majority of voters reelected Trump knowing how he is. The way things are going is how the people want it (if you believe in democracy and the philosophy of representatives).

> If one believes democracy is important one must also believe that we need checks and balances within government such that democracy is maintained in the face of bad actors. Trump is not the only elected person in government after all and democracy requires free and fair elections to continue when his presidency ends.

There has been absolutely nothing to suggest that democracy, as in the literal sense of voting to determine representation, is at risk from inside the political apparatus. I don't consider Jan6 anything of that sort btw.

> Also nothing about a democratic result means that any side needs to be happy about it or that anyone is or should be protected from criticism

Sure, but the crux of the issue is that the left is going beyond criticism. The vocal left continuously claims that the elected government, and crucially those people who voted for it, are in some outgroup (nazis, fascists, bigots et al) that does not deserve to have democratic power in the country by their very nature. They weild the 'paradox of tolerance' as a bludgeon to disenfranchise half the country. It's unhealthy for democracy, both in itself and because when a group feels under (politically) existential attack they will do heinous things to survive.
by xemdetia | 2025-12-19 15:19:18+00:00
I believe what the commenter is suggesting is that since this is supposed to be machine readable then why not start with a common format like JSON similar to how things like MCP serve what functions are available or an OpenAPI spec. Generate the JSON and serve that from the well known directory.

People serve plain JSON all the time. This proposed standard is essentially a structured file anyway.. why not YAML? Why not INI? Getting away from bespoke unicorn file formats has been good for everyone.
by runako | 2025-12-19 15:20:05+00:00
Noted. We have granted an exception for iMessage on the grounds that communications are primarily/wholly with people known IRL.

There's an analogy for older folks, which is kids who grew up without TVs (and radio, in some cases). I am friends with a number of such folks, and they are just fine. I would imagine they too were "ostracized" because they were largely disconnected from pop culture. I imagine they didn't like the situation when they were younger, but it did not damage them like people suggest will happen to kids without access to Instagram.

(Noting also here that as early as tweens, the kids have been using all kinds of stuff as social media sites. Obviously Google Docs etc. But also any unblocked site on the Internet with a textbox, including Asana, Monday, etc. Anywhere with an image upload can be social media.)

> At college, I could count on one hand the amount of people I met without it.

I'm in the US, will say that most students here are over the age of 16 by the time they arrive at college so this would not apply to them.

Would love to get your thoughts on people who "have" social media vs people who abuse (or whatever you want to call it) social media. Is this like cigarettes, where having an account is too much, or more like sweets that can be enjoyed in moderation?
by vablings | 2025-12-19 15:20:05+00:00
Easy workaround, AI & LLMS can generate you a random area you live and a simple profile from the perspective of people

What do you like about New Jersey?

"I like New Jersey for its proximity to NYC and Philadelphia, the huge variety of food (from diners to boardwalk pizza), and the great beaches and boardwalks like Asbury Park and Cape May."[1]

[1]: gpt5-mini on duck duck ai chat
by pembrook | 2025-12-19 15:20:57+00:00
In many European countries, parents have already handed the majority of their child raising duties to the state.

If your kid is in state-subsidized daycare from 8am-5pm every day and bedtime is at 730pm, your child is effectively interfacing with and being entirely raised by a life setup by the state for bulk processing far more than any bespoke one setup by you as a parent.

When you've already distanced your involvement so much, it's only natural these same people would want to remove additional parenting duties off their plate so they can further lead a fully automated life devoid of responsibility or anything uncomfortable like setting limits for your child. Because who wants to take care of their children or their parents? Yuck. Let the immigrant brown people do it while we simultaneously scapegoat them for our own economic failings.
by ryandrake | 2025-12-19 15:21:01+00:00
> now that the Web had become the de-facto standard application platform.

I feel like we can continue to resist this, although I admit it's getting more and more futile every year. It's like trying to hold back the tide. I personally don't want the web to be an application platform. The web is for browsing web pages. I have an application platform on my computer already.
by swiftcoder | 2025-12-19 15:21:32+00:00
The problem with your scenario is that the Chinese government didn't have a covid vaccine mandate in October of '21 (when Blow's tweet was published).

Their covid vaccine program was voluntary up until they tried to establish a mandate in July of '22 (a lot of commentators seem to be confused on this point, as there are mandates for childhood vaccines in China - but these never extended to covid vaccines)
by b_mc2 | 2025-12-19 15:22:00+00:00
These are two articles I liked that are referenced in the Python ImageHash library on PyPi, second article is a follow-up to the first.

Here's paraphrased steps/result from first article for hashing an image:

1. Reduce size. The fastest way to remove high frequencies and detail is to shrink the image. In this case, shrink it to 8x8 so that there are 64 total pixels.

2. Reduce color. The tiny 8x8 picture is converted to a grayscale. This changes the hash from 64 pixels (64 red, 64 green, and 64 blue) to 64 total colors.

3. Average the colors. Compute the mean value of the 64 colors.

4. Compute the bits. Each bit is simply set based on whether the color value is above or below the mean.

5. Construct the hash. Set the 64 bits into a 64-bit integer. The order does not matter, just as long as you are consistent.

The resulting hash won't change if the image is scaled or the aspect ratio changes. Increasing or decreasing the brightness or contrast, or even altering the colors won't dramatically change the hash value.

https://www.hackerfactor.com/blog/index.php?/archives/432-Lo...

https://www.hackerfactor.com/blog/index.php?/archives/529-Ki...
by blibble | 2025-12-19 15:22:20+00:00
wasn't sure if this was sarcasm until this point:

> with their anecdote about some goalpost-moving challenge designed for the LLM to fail (which they never seem to share with us).

literally what the boosters do on every single post!

"no no, the top model last week was complete dogshit, but this new one is world changing! no you can't see my code!"

10/10 for the best booster impression I've seen this year!
by 9rx | 2025-12-19 15:22:33+00:00
BDD was trying to recapture what TDD was originally, renamed from TDD in an effort to shed all the confusion that surrounded TDD. Of course, BDD picked up all of its own confusion (e.g. Gherkin/Cucumber and all that ridiculousness). So now it is rebranded as SDD to try and shed all of that confusion, with a sprinkle of "AI" because why not. Of course, SDD already is clouded in its own confusion.

Testing is the least understood aspect of computer science and it turns out that you cannot keep changing the name and expect everyone to suddenly get it. But that won't stop anyone. We patiently await the next rebrand.
by Aurornis | 2025-12-19 15:22:34+00:00
> I just can't get my head around it that even Apple, which is supposed to be THE design company, is making phones that can't lay on a table without wobbling like a barstool on a crooked floor. It just feels so broken to me. So detrimental to my sense of aesthetics.

Of all the controversial design choices, I think Apple got this one right.

I do not care if my phone wobbles when flat on the desk. I don’t use my phone like that. It’s in my hand if I’m using it.

I use my phone camera sparingly, but when I pull it out I want it to work very well. And it does. If it takes a little bump out to fit better optics then I don’t care in the slightest.

> Google phones tackled it with an elegant solution. Thanks for that. I wouldn't know what phone to use if Pixels didn't exist.

Making your entire phone choice revolve around the shape of the camera island is the oddest top priority I’ve heard yet, but I’m glad you found one that works for you.
by lm28469 | 2025-12-19 15:22:34+00:00
> the issue is there is very little text before the internet,

Hm there is a lot of text from before the internet, but most of it is not on internet. There is a weird gap in some circles because of that, people are rediscovering work from pre 1980s researchers that only exist in books that have never been re-edited and that virtually no one knows about.
by kodablah | 2025-12-19 15:23:04+00:00
> that your entire workflow still needs to be idempotent

If just meaning workflow logic, as the article mentions it has to be deterministic, which implies idempotency but that is fine because workflow logic doesn't have side effects. But the side-effecting functions invoked from a workflow (what Temporal dubs "activities") of course _should_ be idempotent so they can be retried upon failure, as is the case for all retryable code, but this is not a requirement. These side effecting functions can be configured at the callsite to have at-most-once semantics.

In addition to many other things like observability, the value of durable execution is persisted advanced logic like loops, try/catch, concurrent async ops, sleeping, etc and making all of that crash proof (i.e. resumes from where it left off on another machine).
by ryandvm | 2025-12-19 15:23:04+00:00
The extra price of Apple products was never about not having advertising. The extra price is the feature.

It means you have enough money (status) to have a green bubble.

It means you can afford an adorable little infotainment gewgaw.

Apple products don't look unique because they need to, they look unique so that you can effectively signal your consumption.
by maxmcd | 2025-12-19 15:24:11+00:00
I think a lot of the original temporal/cadence authors were motivated by working on event-driven systems with retries. They exhibited complex failure scenarios that they could not reasonably account for without slapping on more supervisor systems. Durable executions allow you to have a consistent viewpoint to think about failures.

I agree determinism/idempotency and the complexities of these systems are a tough pill to swallow. Certainly need to be suited to the task.
by unethical_ban | 2025-12-19 15:24:18+00:00
A disclaimer on the site that you are not bigoted or genocidal, and that worldviews from the 1913 era were much different than today and don't necessarily reflect your project.

Movie studios have done that for years with old movies. TCM still shows Birth of a Nation and Gone with the Wind.

Edit: I saw further down that you've already done this! What more is there to do?
by mikepurvis | 2025-12-19 15:24:28+00:00
At least in C++ there's also the matter that the type switching happens at compile time, not runtime. You get a new instance of the function for each type that it's called with.

That's why C++ libraries with generic interfaces need to have their full implementations in the header or else have explicit instantiations for known supported types. If you compile the library first and the project later, there's no way of knowing at library-compile-time which instantiations of the generic will later be needed, and like, the types might not even exist yet at that point.
by freedomben | 2025-12-19 15:24:58+00:00
> Don’t be tempted to skip the manual test because you think the automated test has you covered already! Almost every time I’ve done this myself I’ve quickly regretted it.

Seriously, this cannot be emphasized enough. Before LLMS when we were writing tests completely manually, manual testing made sense to me as the second step. However after playing around a lot with coding agents and LLMs, I fully agree this has flipped. Test it manually first! When you generate the tests it is extremely wise to ensure that the tests fail without the new code, and pass with it. You definitely need to review the test though, because it's remarkably easy to have the agent put something in there that makes it not a good test.

Just a couple days ago for example, Claude made a test pass by skipping authentication and leaving a brief comment informing that the authentication made the test flaky. It even threw a quick variable in there that enabled running or disabling flaky tests, and flaky tests were disabled by default! Had I not been doing a good review, I definitely would have missed it because it was cleverly subtle. I've also seen it test the wrong endpoint!
by danbitengo | 2025-12-19 15:25:05+00:00
Hey HN, I'm Daniel, creator of SyncKit.

I've been obsessed with the Ink & Switch "Local-First Software" vision for some time now—apps that work offline, feel instant, and give users control of their data. But every time I tried to build a local-first app, I hit the same wall: integration complexity.

The existing CRDT libraries (Yjs, Automerge) are incredible—they pioneered the algorithms that make local-first work. Kevin's optimization work on Yjs is masterful, and Automerge changed how I think about distributed systems.

But they're designed as modular primitives. You compose networking, storage, and conflict resolution yourself. That flexibility is powerful for complex systems, but it creates what I call the "Day 1 problem" for local-first: you spend 3 days wiring infrastructure before writing features.

I built SyncKit to solve this.

Different philosophy: Where Yjs gives you powerful primitives (build your own local-first stack), SyncKit gives you a pre-wired local-first database. Persistence, sync, presence—built-in, not plugins.

The technical approach: - Rust core with zero unsafe blocks (you can grep the codebase)

- TLA+ verified (explored 6.5M states to prove correctness)

- 154KB bundle (everything compiled together)

- 1,081 tests, 80 chaos tests

Performance: Competitive within 1-2ms of Yjs for standard ops. The win is local-first DX - one package that handles offline, sync, and conflict resolution.

What's included: - Rich text editing (Fugue algorithm for non-interleaving edits)

- Live cursors & presence

- Undo/redo (CRDT-native)

- IndexedDB persistence

- React/Vue/Svelte adapters

Built this in Nairobi, 9pm-3am. v0.1.0 got 601 stars in 3 weeks which honestly shocked me.

Try it live: https://synckit-demo.netlify.app GitHub: https://github.com/Dancode-188/synckit

Happy to answer questions about the TLA+ verification or the local-first architecture choices.
by moh_quz | 2025-12-19 15:25:25+00:00
This is really helpful context, thanks for writing it out.

You’re right that Next wants to be your backend and thats exactly why I kept the real backend separate in Go.

The Go backend handles all auth, billing, database, everything.

Next is just a frontend that calls the API. So if Next keeps changing things or pushes too hard toward Vercel, you swap it out. The backend doesnt care.

The white-label / custom domain point is interesting, hadnt thought about that edge case. Good to keep in mind.

Honestly the backend is the important part here. The frontend is just one way to consume it
by kjs3 | 2025-12-19 15:26:16+00:00
And there's AWS S3, and there's AWS Glacier. And there's AWS S3, Glacier storage tier, which isn't Glacier. Which is OK, because Glacier is going away, and you should use S3, Glacier tier. Unless you're already using it, in which case you can still use it. So you still have to know Glacier and Glacier, while both storing your data, aren't technically the same thing.

But if you think that's bad, you haven't seen the name change shenanigans Microsoft pulls in Azure.
by Aydarbek | 2025-12-19 15:26:33+00:00
Author here. Happy to answer questions about the implementation.

A few details that might interest HN: - Raft replication handles 50K msg/s with sync-majority writes - HTTP parsing is 0.4ms at P99.999 (picohttpparser, zero-copy) - Tested durability with SIGKILL — recovery replays sealed AOF

What would you want from an HTTP-native event log?
by zackmorris | 2025-12-19 15:26:36+00:00
This is very hacker-like thinking, using tech's biases against it!

I can't help but feel like we're all doing it wrong against scraping. Cloudflare is not the answer, in fact, I think that they lost their geek cred when they added their "verify you are human" challenge screen to become the new gatekeeper of the internet. That must remain a permanent stain on their reputation until they make amends.

Are there any open source tools we could install that detect a high number of requests and send those IP addresses to a common pool somewhere? So that individuals wouldn't get tracked, but bots would? Then we could query the pool for the current request's IP address and throttle it down based on volume (not block it completely). Possibly at the server level with nginx or at whatever edge caching layer we use.

I know there may be scaling and privacy issues with this. Maybe it could use hashing or zero knowledge proofs somehow? I realize this is hopelessly naive. And no, I haven't looked up whether someone has done this. I just feel like there must be a bulletproof solution to this problem, with a very simple explanation as to how it works, or else we've missed something fundamental. Why all the hand waving?