MurphyA/hacker-news huggingface dataset:
by Mawr | 2025-05-16 00:42:18+00:00
> Speeding mildly is usually a consequence of stupidly low speed limits.

And you think the average driver is qualified to make that assessment on a moment-by-moment basis?

Hell, I don't know you, but given the chances I'm gonna go ahead and say you don't know the intricacies of road design either. Most drivers do not even fully grasp the concept of line-of-sight, much less anything more complex than that. Hence, the easy to understand speed limits decided by experts.

But hey, go ahead, tell me specifically where the speed limits are commonly too low in your opinion and why.

> these are grown adults willfully ignoring the law because they find it inconvenient.

No, "inconvenient" is e.g. what drivers find yielding to pedestrians. Riding a bike amongst cars is dangerous and unsafe.

> A motorcycle likewise can ride on the sidewalk to avoid car congestion but it doesn't because it's illegal

Speeding is illegal too, so clearly "illegal" is not the reason. It'd be unreasonably dangerous to pedestrians to operate a motor powered vehicle on a sidewalk in a way that a bicycle isn't.
by surgical_fire | 2025-05-16 00:44:52+00:00
> "Having your problem addressed" is not a valid reason to post on Stack Overflow. You are expected before posting to have done enough analysis to the point where if your question is answered, you can solve the underlying problem yourself.

If I can solve the problem myself, why do you think I would ask a question?

It may sound a silly question, but what you are describing is the reason why I never actively interacted with SO (never asked, answered, nor upvoted). Either what I was looking for was already there, or I completely ignored the site.

Maybe it is the reason why it is dying. It's just not that useful after all.
by bglazer | 2025-05-16 00:45:13+00:00
The “How to make superbabies” article demonstrates a couple of fundamental misunderstandings about genetics that make me think the authors don’t know what they’re talking about at a basic level. Zero mention of linkage disequilibrium. Zero mention of epistasis. Unquestioned assumptions of linear genotype-phenotype relationships for IQ. Seriously, the projections in their graphs into “danger zone” made me laugh out loud. This is elementary stuff that theyre missing but the entire essay is so shot through with hubris that I don’t think they’re capable of recognizing that.
by buzer | 2025-05-16 00:46:09+00:00
> That said, I don't understand how TC String can be considered PII.

IANAL (or even Belgian).

There wasn't a direct ruling on if TC strings itself were PII. They were personal data that can be linked to individual since CMP will get both the IP address and the TC string.

As for IAB being (joint) data controller, the reason (sections 68 to 80) given for that is that they determine purpose and means of processing. They might not hold any data, but they set the rules for the framework.
by proc0 | 2025-05-16 00:46:37+00:00
Companies have no loyalty towards employees, especially large companies, with only the people who sacrifice the most having a semblance of job security. If you want to limit your hours every day, or draw lines around your role, then you inevitably are filtered out. This is the subtle way that companies exploit individuals.

I don't know what the fix is, but it probably has something to do with not letting companies have double standards. If they demand loyalty and sacrifice, then employees should demand that back.
by watersb | 2025-05-16 00:47:40+00:00
Another fun interaction of trailing dot in URLs and web browsers: password management.

This is layers far above the curl internals discussed in the article.

On some platforms, the built in web password management considers web passwords for URLs with or without a trailing dot as distinct situations. Same for the 1Password manager.

I can't think of problems this might cause.

As long as we're trying to break things, I presume it would be easy enough to use JavaScript to switch the current URL to the one with a different trailing dot situation than the current application flow. Like in the middle of a hand-off from one authorization screen to another.

I tend to consider multi-page web application issues as a much higher plane than something curl library internals. But essentially, the back-and-forth of web communication isn't so different.
by bkyan | 2025-05-16 00:49:05+00:00
This is for running locally in the terminal (or in WSL2 if you are on Windows).

Here is an example session from a similar script that I <cough>ChatGPT</cough> wrote in Perl, illustrating the same concept:

$ ~/agentloop.pl

YOUR PROMPT:

Is Python installed on this system? If so, which version?

BASH STDIN:

python --version 2>&1 || python3 --version 2>&1

BASH STDOUT:

/bin/bash: python: command not found

Python 3.6.7

LLM RESPONSE:

Python is installed on this system. The version available is Python 3.6.7. However, it looks like the python executable (python) is not directly available, but python3 (or a direct version path) exists and resolves to Python 3.6.7.

If you need to use Python, you should use python3 as the command.
by tombert | 2025-05-16 00:51:13+00:00
I don't really know what you're going on about? We're all going to die, we all know that that's going to happen, but none of us want to suffer and most of us would like to live relatively long lives.

I am not a parent but I think if I did have a kid I would try everything I could to keep my child alive and minimize pain in my child's life.
by toomim | 2025-05-16 00:51:53+00:00
I work on the referenced Braid project (https://braid.org), and the author is right on— HTTP needs to evolve from a state transfer protocol to a state synchronization protocol.

What he doesn't seem to realize is (a) how doable this is, and (b) how beneficial it is once you solve it.

First, the Braid extensions to HTTP [1] achieve this already! They transform HTTP from state transfer to state synchronization with four simple, backwards-compatible extensions to HTTP, which work in today's browsers and servers, with a simple polyfill library [2].

You can use this today, with or without any CRDT or OT algorithms. In fact, 99% of apps don't need a fancy CRDT — they just need the subscriptions feature. This is really cool: instead of GET responding just once, a Braid-enhanced GET will keep the response open, and send you new updates each time the resource changes, until you're done with it.

This gives you realtime synchronized HTTP without a Websocket. No CRDT or OT needed.

You only need a CRDT or OT algorithm if multiple writers mutate the same state, and your app needs to guarantee perfect consistency. And if this is needed—no problem! We've got libraries for that that use the other 3 independent Braid extensions — essentially adding a few more headers to carry over the CRDT/OT metadata. They work with any CRDT or OT.

Second, I don't think anyone yet realizes how big of a deal this is, so let me explain. The lack of realtime synchronization in today's HTTP is what drives developers to move their state synchronization traffic to a websocket, with some random pub/sub protocol that meets the needs of their app — but is totally incompatible with other developers, other websites, and other tools. This means that every website uses standard HTTP to serve its pages, but has a non-standard protocol for its internal state. As a result, websites openly link to each other's pages, on the open web — but the internal state of websites has become a walled garden. This basic limitation in the architecture of HTTP has led to the centralization of data silos in websites. It's simply too difficult for a peer-to-peer community of web developers to build apps that re-use each others' internal state, in the same way that they can link to each other's pages, because they lack the infrastructure.

We've been building the tools for this new style of peer-to-peer synchronous web of state. I just presented on it a few weeks back here: https://braid.org/meeting-107

Cheers to the author for correctly identifying this problem. And onward to the glorious future of the synchronous web of state!

[1] https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-b...

[2] https://github.com/braid-org/braid-http?tab=readme-ov-file
by ahelwer | 2025-05-16 00:55:28+00:00
Hillel Wayne wrote https://learntla.com/ which is quite good! Leslie Lamport also has a webpage of other possible learning resources, including a video course he put together where he wears many strange hats: https://lamport.azurewebsites.net/tla/learning.html

Personally I learned by reading the first few chapters of Specifying Systems.
by conductr | 2025-05-16 00:56:21+00:00
They could also just easily enhance the feature right? It’s an extra if statement in the code. I get enough calls that it’s not practical to constantly edit a setting that’s like this. There’s nothing else in the settings app I change regularly, it’s mostly set and forget.

It’s much better to just silence every spam call manually instead of having to go into voicemail, listen , decide if I need to respond, hope that I’m acting quickly enough that the other person answers when I ring them back, etc. i imagine this works for a lot of people. But if you get enough calls, or get urgent calls for any reason, it’s not ideal.

For those that can’t imagine the use cases. Consider you are primary contact for your elderly parent. If they fall in the middle of the night you might be getting a call from any random number. Do not disturb isn’t an option and sometimes the EMS guys will call you from their personal cell phone. Even some services like home security will call from random numbers. If ask a plumber to come over, some random technician will call from their device to talk. If a potential client gets my number somehow, I’d prefer to answer versus them get my voicemail.

You have to also factor in that a lot of people don’t even like leaving voicemail so they don’t leave one and I’m left guessing if it mattered that
by kazinator | 2025-05-16 00:56:44+00:00
You're not trying to argue that random selection for a benefit is unfair, compared to selecting for people who are willing to pay?

About appointments, there could be a very simple website where you punch in your license plate, hit Enter, and see a calendar with all your days highlighted, for the next 6 to 12 months.

There could be some flexibility in the system. Everyone gets a small number of tokens (which expire: must be used in a year or something) that provide a free pass on any day whatsoever. You use those for those situations like getting a sudden appointment that couldn't be planned around the regular system (e.g. someone canceled and you were next on the waitlist, and the time is the time).

The token system could be automatic in fact. You just drive to the city on an off day when you aren't supposed to, and your "ding count" increments by one. On the same website where you punch in your plate number to get a schedule, you can see the number of dings against your license plate. (The system wouldn't have to track all license; just ones that triggered a ding.) (Not sure about the privacy implications. Someone who enters your plate number and sees a ding count knows that your car has been to the city sometime in the past few months on an unassigned day. If that's something you need to hide from someone, then maybe just don't go by car on those days.)
by dundarious | 2025-05-16 00:57:04+00:00
The "generic macro over struct definitions" approach is the one that has at least some trouble dealing with these situations, not the "getter function with string argument" approach. I've had to do plenty of json and protocol buffers wrangling (meaningfully different, I know), and versioned packed struct memcpy/reinterpret_cast "parsing" as well.

My point is I don't want to do "this task" at all if "this task" means layering funky auto-generated machinery on top of what is already a perfectly reasonable API.
by keepamovin | 2025-05-16 00:58:11+00:00
Yes lol me too!

Here’s how I recently found out about it: So I was doing a customer demo, and everything was going great — I was in the middle of showing them how to set up BrowserBox, and I said, “You know, BrowserBox can run on any port, so let’s just pick one. Maybe…” and I just randomly picked one — 9000?

I input that, hit run, and opened the login link in the browser, and nothing happened.

And I was like, what? So I said, “I’m sure it’s nothing, let’s check the logs.”

I checked the logs, and I see this “bad port” error. And I’m like, bad port? What the…?

I went down a rabbit hole trying to figure out what was going on — all in the middle of a customer demo.

Anyway, I put a pin in it, changed the port, and moved on with the demo.

But basically, what happened is: the port for the actual headless Chrome service is always 3000 less than the application port. So in this case, that meant the headless Chrome had been listening on port 6000.

Chrome was fine with that. But when I tried to connect to that with Node.js — specifically using undici, the native Node fetch — it refused to connect to port 6000.

And somehow, this is the first time after, like you, being a web dev for more than ten years and working on this project for five, that I’d ever encountered that. I can’t believe I never picked port 9000 before in my life!

Anyway, I actually find it kind of ridiculous that a server-side library would restrict what I can connect to.

So I created a very well-tested shim of fetch — API identical — but based on the http2 and http libraries in Node.

It turned out to be this surprisingly impactful thing that I’d never, ever heard about before.

And honestly? I think it’s really stupid that the Node.js fetch library has this browser-based restriction.
by techno-beetle | 2025-05-16 00:58:42+00:00
A few questions regarding CRDT usage from someone that's lightly tested out automerge/autosurgeon in rust late last year, but hasn't used it or any other CRDT for an actual project.

1. Do you use the CRDT document as the source of truth or as just synchronization with a database as the source of truth. If the document is the source of truth, do you keep data in it or copy the data into some other format that's easier to query?

2. How do you handle changes to the schema of the CRDT documents? In my testing I had a `version` field at the top level of the documents and then a function to migrate forward between versions when a document is loaded, but I'm not sure how to handle when different clients are running different versions concurrently as opposed to all clients updating at the same time. I had read some articles that alluded to allowing the previous versions to still change the state and then, seemingly, translate it as needed on newer versions, but they seemed to hand-wave away any details of what that would actually look like to implement.

3. How granular do you go with documents in the spectrum of "one per user" to "one per object"?
by frollogaston | 2025-05-16 00:59:15+00:00
C++ is supposed to be an extension of C, so I wouldn't expect things to be initialized by default, even though personally I'm using C++ for things where it'd be nice.

I'm more annoyed that C++ has some way to default-zero-init but it's so confusing that you can accidentally do it wrong. There should be only one very clear way to do this, like you have to put "= 0" if you want an int member to init to 0. If you're still concerned about safety, enable warnings for uninitialized members.
by FireBeyond | 2025-05-16 00:59:33+00:00
The other person who replied to you is much more accurate.

> HIPAA also makes it maximally difficult to involve other people, providers, and entities in your health care.

If I am a provider (and I am, or have been) of yours, I can get information from other providers on the care they've provided you. In fact, as appropriate, I can get it without your permission or consent (particularly useful in situations of pill-seeking, or mental health, but other situations too, that I encountered as a paramedic).

While many providers will get you to sign paperwork consenting to this, it is mostly CYA.
by neumann | 2025-05-16 01:00:20+00:00
This is great, and I like seeing all the implementations people are making for themselves.

Anyone using any opensource tooling that bundles this effectively to allow different local models to be used in this fashion?

I am thinking this would be nice to run fully locally to access my code or my private github repos from my commandline and switch models out (assuming through llama.ccp or Ollama)?
by alephnerd | 2025-05-16 01:01:26+00:00
Maybe, but this was a convo during "American" hours and largely in the American context.

Late afternoon PST/EST tends to be when Asian and European HN is sleeping.

Asian HN seems to start up around 10-11pm PST, European HN seems to peak around 3am-7am PST, and "Global" HN seems to be around 7am-10am PST.
by FireBeyond | 2025-05-16 01:01:56+00:00
> Providers, entities: again, HIPAA only prevents this without your consent, and that's basically what privacy is.

Not even, it specifically allows providers who are actively caring for you to share, even without your consent. Straight from the horse's mouth:

"Does the HIPAA Privacy Rule permit doctors, nurses, and other health care providers to share patient health information for treatment purposes without the patient’s authorization? Answer: Yes. The Privacy Rule allows those doctors, nurses, hospitals, laboratory technicians, and other health care providers that are covered entities to use or disclose protected health information, such as X-rays, laboratory and pathology reports, diagnoses, and other medical information for treatment purposes without the patient’s authorization."

Source: https://www.hhs.gov/hipaa/for-professionals/faq/481/does-hip...

> I empathize that moving data between providers is not easy, but this is hardly due to HIPAA, which permits such, assuming patient consent.

It doesn't even really always require consent, but a provider relationship. Consent can grease the wheels though.

It's like you said, very little use of FHIR or still so so much HL7. And anyone who has dealt with those standards knows that just because EHR vendor A says they support them, and EHR vendor B does, doesn't mean data sharing will be smooth.
by CuriouslyC | 2025-05-16 01:01:58+00:00
The main problem with agents is that they aren't reflecting on their own performance and pausing their own execution to ask a human for help aggressively enough. Agents can run on for 20+ iterations in many cases successfully, but also will need hand holding after every iteration in some cases.

They're a lot like a human in that regard, but we haven't been building that reflection and self awareness into them so far, so it's like a junior that doesn't realize when they're over their depth and should get help.
Would you use a CRUD code generator for a disk based database?
by vijaymohan1979 | 2025-05-16 01:02:24+00:00
We are toying with the idea of adding a code generator to our OSS repo. This would be a simpler form of our core product. It woukd generate CRUD code for a database with built in Redis caching. Useful to get a taste of what we provide, but not having other advanced features we have built over time in the core product.

Would you try it? What would a killer feature be?

Which database should be support first? The options we have currently are:

#postgres #mongodb #sqlserver

Feel free to suggest if your database is not in this list.

https://github.com/redfly-ai-org/redfly.ai
by dahart | 2025-05-16 01:02:42+00:00
Sure people have the option to control their own speed, and authorities can police speeders. The accident rate we have already accounts for that. Speeders are still dying, and they’re taking out more non-speeders with them than the total number of public transit deaths, by multiples.

Still not sure what the argument even here is. You’re being pretty forceful about one single, weird incident. Fine, but the fact of the matter is that driving in cars is causing a lot more injury and death than public transit, by several orders of magnitude.
by mkagenius | 2025-05-16 01:03:19+00:00
I built android-use[1] using LLM. It is pretty good at self healing due to the "loop", it constantly checks if the current step is actually a progress or regress and then determines next step. And the thing is nothing is explicitly coded, just a nudge in the prompts.

1. clickclickclick - A framework to let local LLMs control your android phone (https://github.com/BandarLabs/clickclickclick)
by reitzensteinm | 2025-05-16 01:03:35+00:00
Yes. I've made a dozen games using rollback and it really is magical. I built a strategy game in three weeks and didn't test it in multiplayer until the weekend of release. It Just Worked.

But it's not a total silver bullet from a UX perspective when rollbacks happen.

Showing a player dying and then come back to life and actually you're dead will absolutely happen. It's very weird if they were ragdolling.

If players don't have high inertia, like a platformer, they'll teleport around the place as you get the information that actually they aren't falling they jumped 100ms ago.

This is all fixable, but requires first class confirmation (i.e has the player you shot been dead longer than the max rollback window), and hand tuned interpolation on critical entities.

Luckily, I'm sure it's possible to add them to this engine.

I'm curious as to why a custom programming language was designed if the system uses WASM anyway - which you can make deterministic.

I wrote my system in C# and it worked great if you Followed The Rules (eg you must use immutable data structures). But WASM would have been a big step up.