MurphyA/hacker-news huggingface dataset:
by Tainnor | 2025-07-03 20:19:51+00:00
> In my experience, people new to Haskell focus way too much on getting the "a-ha" moment for monads in general, [...]

I feel this is true in general for mathematics (and therefore by languages whose design is heavily inspired by maths). A lot of people not familiar with university-level maths think that they need to understand what some mathematical concept "really means", but modern mathematics is a structural science. It looks at things that have entirely different semantics (symmetries, conservation laws, integers, matrices, Rubik's cubes, ...) and noticing that they all have the same structure (they're all groups) and therefore we can say something about all of them simultaneously.

That doesn't mean that intuition is useless. Once you have thoroughly understood what makes a group a group or a vector space a vector space, it's totally normal to e.g. consider a space of functions and think of them in your head as if they were arrows in a Euclidean space (the analogy breaks down at some point, but it can carry you a certain way). That's also why it's fine to think of a monad as a container or as a burrito or whatever once you've actually understood the concept. But you can't really short-circuit this process in my opinion.
by dzhiurgis | 2025-07-03 20:20:19+00:00
NZ OP here. Few weeks ago there was a morning checkpoint to inspect everyone's child car seat installation.

Few years back got chased by a cop and ticketed (and scolded) for not restraining kiddo (small town and my clever 2yo somehow learned how to unbuckle themselves (even that houdini clip didn't help)). Warned I could get prosecuted for child neglect if I continue. I suspect the daycare has tipped him off.
by moritzwarhier | 2025-07-03 20:20:25+00:00
Getting cache keys or caching events wrong is easy and a nightmare.

But getting them right can easily cross the boundary of purely optimizing performance towards simplifying public API of something. I think this is true.

I'd imagine an involved example where semantics and caching really start to offer a trade-off.

Imagine that somehow querying the actual meteorological data is quite expensive, and consider this badly written pseudocode (equals sign denoting default parameters):

- measureCurrentTemparature()

- retrieveAccurateTemperatureForNanoSecond(momentInTime)

-> cached abstractions which would access cached data:

- getTempearature(moment = now(), tolerance = 1min)

- getCurrentTemperature(tolerance = MIN_TOLERANCE)

I know, reality is much more complicated, and using time (seeing it as quasi-continuous) as a caching parameter is already stretching it so far.

Just a stupid example that came to my mind.

I've bitten myself in the ass with caching rasterized reprentations of images more than once, where the input were SVG images or limited formats that convert to SVG.
by blendergeek | 2025-07-03 20:20:26+00:00
but the industrial work still has to be done. Whether it's done in the USA (with OSHA and the EPA to keep people safe) or in another "cheaper" country where they lack the safety regulations we take for granted is the question. I am rejecting the premise that I should be happy that industrial jobs are being outsourced overseas because those jobs are dangerous and kill people. I don't want people dying in industrial accidents anywhere and I trust the US EPA/OSHA (generally). I have severe qualms about outsourcing jobs because they are too dangerous for Americans.
by unshavedyak | 2025-07-03 20:20:28+00:00
Honestly i'm less scared of claude doing something like that, and more scared of it just bypassing difficult behavior. Ie if you chose a particularly challenging feature and it decided to give up, it'll just do things like `isAdmin(user) { /* too difficult to implement currently */ true }`. At least if it put a panic or something it would be an acceptable todo, but woof - i've had it try and bypass quite a few complex scenarios with silently failing code.
by hnlmorg | 2025-07-03 20:20:57+00:00
tmux doesn’t really gain anything from memory safety because:

1. anything running in tmux already has execution rights and typically for the same user as tmux anyway.

2. Anyone who wanted to exploit tmux could just run ‘tmux -C’ and automatically get access to literally every interaction within tmux.

3. The software itself is already damn stable. I've never had it crash.

If you’re worried about someone exploiting your terminal then tmux is a terrible option, irrespective of whether it’s with written in C or Rust. And I say this as someone who absolutely loves tmux and uses it every day.

[edit]

And if you're worried about non-security related bugs affecting UX, then a rewrite in any language, regardless of the language, is a worse solution if your application has already been battle-tested for close to two decades. You're much better off creating something entirely new instead of porting code from one language to another because at least then you have new ideas instead of the same application but with new bugs in different places.

I don't say this because of some bias that Rust fanboys will assume I have. I love memory safe languages and think Rust is a great option for new projects. The point I'm making here is that a rewrite doesn't gain much for tmux SPECIFICALLY because tmux is already extremely stable.
by PaulHoule | 2025-07-03 20:21:23+00:00
Real innovation in OS is somewhere between impractical and impossible.

You might think POSIX is boring and bloated but if if you really change the relationship of applications and the OS you will need all new applications. If you like microkernels, replace POSIX with Mach or maybe L3. Hypothetically you could make a POSIX implementation which beats Linux for some particular special case but Linux has so much investment in it to deal with difficult problems that I don't see how you beat it.

Steam Deck is Linux with an implementation of the Win32 API. Hypothetically you could do better but Linux works and there are zillions of Win32 games on steam.

Meta Quest 3 is basically an Android phone you wear on your face, Apple Vision Pro is basically a Macbook you wear on your face. Is this optimal? No. But they can draw from a pool of existing applications as well as developer skills and tooling. Even if these platforms fail it's not a complete waste of time to learn how to develop for them.
by JanisErdmanis | 2025-07-03 20:21:39+00:00
An intuitive explanation is that of proving you can find Waldo in a picture without revealing his exact location. Digital wallets can be interpreted as fancy signature schemes that operate on third-party issued commitments C instead of public keys that directly link users to their identities.

A simple signature scheme is based on proof of knowledge PoK{x : pk = g^x}, which is transformed into a noninteractive variant via the Fiat-Shamir transformation, where the message is appended to the hash. Range proofs work similarly, with the simplest form being for a single bit: PoK{(b,r) : C = g^b * h^r & b(b−1)=0}. This proves that commitment C contains a bit b in {0,1} without revealing which value it is.

Arbitrary ranges can then be constructed using the homomorphic properties of commitments. For an n-bit range, this requires n individual bit proofs. Bulletproofs optimize this to O(log n) proof size, enabling practical applications.

The commitment C can be issued by a trusted third party that signs it, and the user can then prove certain properties to a service provider, such as age ranges or location zones (constructed from latitude and longitude bounds).

A key challenge is that reusing the same commitment C creates a tracking identifier, potentially compromising user privacy.
by thih9 | 2025-07-03 20:21:47+00:00
It’s actually safe to do that, watch owners would be distracted by global cataclysms ;)

> Tides would be much smaller (…) But the movement of tides underpins the balance of ecosystems the world over, and an impact that widespread would cause global biological collapse across oceans and, in turn, the whole Earth.

https://www.popularmechanics.com/space/moon-mars/a43633761/b...
by jandrese | 2025-07-03 20:22:24+00:00
I had a back of the napkin design that was basically a sleeve that fitted over Starship and could be launched into orbit. Those sleeves had angled ends that could then be bolted together in orbit to make a station with an octagon shape that could be spun at 2 or 3 rpm to get 1/2 Earth gravity. Obviously still an enormous engineering challenge, but one that I think is solvable using today's tech. Well, tomorrows tech, but nothing that requires a breakthrough in materials science or basic physics or anything like that.

My plan was to fit the inside with huge water bags that would help to reduce cosmic radiation, provide thermal mass, and slow any micrometeorites that puncture the hull. The water could be launched on cheaper rockets and transferred in orbit. The water could also be pumped between sections to keep the wheel balanced. The central hub area would be more of a challenge, probably having to be assembled (or at least unfolded) in orbit.

Probably the biggest downside is that you wouldn't be able to spin it up until the entire structure was somewhat balanced, which means installing things like solar panels and radiators in pairs and the docking bit of the central hub would probably need to be on bearings so it can counter rotate to be effectively stationary or you wouldn't be able to dock more than 2 spacecraft at a time. The ISS was built in sections over the course of decades, this would need to be built all in one go, which is a huge commitment.

NASA's plans for two tethered stations (or one station and a counterweight) are probably more feasible, but much less cool.
by wooders | 2025-07-03 20:22:47+00:00
I think the "memory blocks" are essentially what you are describing - to have an infinite session (which systems like Letta is designed for) you have to have a mechanism for organizing the important information and persisting it for future interactions. This organization can be done via tool calls (which was what MemGPT did) or done by other agents in the background. While the message buffer is continues to grow / old messages get evicted, the memory blocks are fixed size and always in context.
by spankibalt | 2025-07-03 20:23:35+00:00
> "Yes, there were strictly technical limitations."

Precision, friend. I never disputed that there were no (strictly) technical limitations for PCs. I only argued against the notion, emphasis mine, that "PCs were definitely at a disadvantage for anything involving a lot of motion, like arcade-style games, platformers, shoot em ups, fighting, and racing games. [...] That disadvantage was gone, at least on a technical level, by 1992-94."

Amigas never saw the light against IBM and compatibles in a lot of ways, and that already before 1992. Two famous titles I already mentioned; one had no Amiga port (Silpheed, 1989) AFAIK, the other (Wing Commander, 1990) came out later as a technically inferior, albeit atmospheric, hand-me-down. When people reminisce about the graphics capabilities of home computers, especially Amigas, they often forget whole, shall we say "inconvenient", genres. Et cetera.
by quuxplusone | 2025-07-03 20:24:42+00:00
For "only two hard problems," read "two candidates for among the hardest problems (but we feel strongly that these are indeed good candidates)," or something along those lines, more or less.

It's also possible that these used to be the only two hard problems at the time the aphorism was first recorded, but the underlying state of the world has changed since then and the aphorism, as recorded, is no longer current.
by Hemospectrum | 2025-07-03 20:24:55+00:00
Wizards wave their hands and say something like, "Whatever, space is an ocean."

The Expanse makes the observation that accelerating your ship at a substantial fraction (or multiple) of Earth gravity gives you that same degree of artificial gravity, only, you have to orient your decks the right way. Down is towards the engine.

Of course, this in turn makes Star Trek (and Star Wars, and Firefly...) look even sillier, because flying in a direction perpendicular to your deck layout means you need two magic gravity fields — one to cancel out the engines and one more to give your crew a place to stand.
by JoshMandel | 2025-07-03 20:24:57+00:00
But to be clear, mdoc already accounts for this through its selective disclosure protocol, without the need for a zero knowledge proof technology. When you share an mdoc you are really just sharing a signed pile of hashes ("mobile security object") and then you can choose which salted pre-images to share along with the pile of hashes. So for example your name and your birth date are two separate data elements and sharing your MSO will share the hashes for both, but you might only choose to share the pre-image representing your birthday, or even a simple boolean claim that you are over 21 years old.

What you don't get with this scheme (and which zero knowledge proofs can provide) is protection against correlation: if you sign into the same site twice or sign into different sites, can the site owners recognize that it is the same user? With the design of the core mdoc selector disclosure protocol, the answer is yes.
by codekansas | 2025-07-03 20:25:03+00:00
Thanks!

We're all pretty cross-stack - there are some hardware people and some software people, but the product is quite integrated. Personally, my time has been mostly focused on the RL stack recently, and after there are more robots in the wild, I suspect my time will transition to working on building this data feedback loop.

I try to answer questions pretty actively on our Discord so happy to chat there about whatever you like
by varispeed | 2025-07-03 20:28:06+00:00
Calling it a "career killer" to avoid constant face time ignores the reality that many people are masking disabilities just to survive daily interactions. Burnout from that kind of masking _is_ a career killer - just a quieter, slower one. We wouldn't tell someone in a wheelchair to "get more visible by taking the stairs." Yet we build ramps, pat ourselves on the back, and ignore invisible disabilities entirely. The fact that this kind of exclusion is still seen as normal - even strategic - should be a source of shame, not resignation.
by necovek | 2025-07-03 20:28:13+00:00
The language used is seriously confusing here.

Algorithms can't really abstract anything since they are, well, just algorithms (formal descriptions of how a computation should be done).

Looking at the author's examples again, I think most everybody would say that caching is used in both:

if data_id in fast_storage: return fast_storage.get(data_id) else: data = slow_storage.get(data_id) fast_storage.set(data_id, data) return data

and

# Uses fast storage or slow storage just like above, but behind the get() method. return storage.get(data_id)

The first one does not make an abstraction on storage, the second one does, but they are both "caching" data internally.

While there are generic implementations of caching algorithms and we can consider those abstractions, "caching" is a wider term than those implementations, and is specifically not an abstraction (the fact that there is a caching implementation that abstracts something does not make all caching an abstraction).

Edit: Let me also point out that "abstract the concern of minimising retrieval cost" is not caching — I can say that eg. a simple interface with method FastGet(id) does the former, and it needs not use any caching if the underlying structure is fast enough and eg. directly in memory.
by al_borland | 2025-07-03 20:28:33+00:00
That assumes the device/app I’m logging into supports that. It also assumes I have my password manager on a device that can scan QR codes.

Are passkeys ubiquitous? It doesn’t feel that way. Tech demos are nice, but they’re just tech demos. When I’m doing my taxes I don’t want to find out I can’t download my data in TurboTax because I can’t login to my bank with a passkey via their app. Or maybe I want to use some old hardware, where the apps haven’t been updated with QR codes and passkeys, I guess I’m out of luck.

Too many edge cases. They are trying to sell passkeys as a magic way to login. I’m not going to entrust my ability to login to magic.

Also, scanning QR codes to authenticate feels very janky. Isn’t that why CurrentC failed? No one wanted to do a QR code dance with their phone.
by scientific_ass | 2025-07-03 20:28:59+00:00
If I’m building a system that needs a full audit trail, what exactly am I gaining from your approach vs just doing insert-only rows with metadata (version, timestamp, user etc)? I mean, besides a nicer UI?

Also, when you say “immutable, off-host” — are we talking like another SQL Server instance on a diff machine? Or something else entirely?

And can this be queried directly with SQL too? Or is it locked behind some API/UI?
Ask HN: What are the best resources to help with health insurance denials?
by cigna | 2025-07-03 20:29:39+00:00
In late 2023, I had hospital expenses outside of the USA, and spent about $3k out of pocket. I submitted the claims to Cigna, but even though I got email confirmations of my submission, it was only until 2024 (when Zoox, the employer who the insurance was through, got involved) that I could see the claims in my Cigna dashboard.

Zoox was initially helpful in getting Cigna to respond to the claims, and they let me know what additional information Cigna needed. Cigna gave inconsistent reasons for why my claims were rejected, including saying that I needed to resubmit due to my plan being 'handled by different department', and that a 'vendor outage... prevented many of [my] claims to come through’. There have also been at least two times that I have talked with Cigna over chat, only to have the chat die after the agent asks for more and more time.

Conversations with Cigna: https://docs.google.com/document/d/1dNDsCJ0_LSed4CmCmkSPQYMA-MpDPL6vg9lVRR1rgOY/edit?usp=sharing

Eventually, Zoox stopped responding as well, though I have a followed up a few times through email.

Is there any way to get Cigna to have a good faith review of my claims? Any government agencies that can help me, or outside companies that can help with the appeal?
by dotnet00 | 2025-07-03 20:29:55+00:00
Looks like I misremembered the shutting down bit, but it was this guy: https://twitter.com/leojr94_/status/1901560276488511759

Seems like he's still going on about being able to replicate billion dollar companies' work quickly with AI, but at least he seems a little more aware that technical understanding is still important.
by ynouri | 2025-07-03 20:30:27+00:00
Pave | https://www.pavefi.com | Data Scientist | Backend Engineer | Remote (US or Canada) | Full-time

I’m the Director of Engineering at Pave, a rapidly growing startup revolutionizing financial access for underserved consumers and small businesses through AI-powered Cashflow Analytics and Scores. 50+ risk teams use Pave to reduce defaults, provide the optimal loan amount/credit limit, and maximize collections success.

- We’re hiring a Backend Engineer to scale our data processing platform to 100M+ users: https://wellfound.com/l/2BmPpa

- We’re hiring a Data Scientist to ship models that will redefine the US credit system, making it fair and inclusive: https://wellfound.com/l/2AqFf9

Shoot us an email at howdy@pave.dev and let us know you found us on HN!

Pave is backed by Better Tomorrow, Bessemer, 8VC, and other top funds and angels from Coinbase, Chime, SoFi, CashApp, and Plaid.
by krapp | 2025-07-03 20:30:29+00:00
>It's not like other systems have a better track record on environmental protection. https://en.wikipedia.org/wiki/Aral_Sea

Socialism is the firm hand keeping capitalism at bay. Environmental laws, labor laws and the abolition of child labor, the 8 hour workday, weekends, minimum wage and overtime, disability rights and social welfare (such as it exists in the US) are all due to socialist activism in spite of the free market. The Black Panthers are the reason American schools have free lunches.
by Swizec | 2025-07-03 20:30:48+00:00
I think we are violently agreeing.

Think of frameworks as "distilled experience". They help the next "generation" go faster because they don't need to make all the same mistakes. This is awesome.

But it is not magic. People will make a mess. Often because they hold the framework wrong and/or miss what it's trying to do for them. Or just don't grok the author's beautiful vision.

However, an experienced practician groks the fundamentals and can quickly adapt to any framework. Because all the frameworks are built on similar fundamentals so it's easy to hold them correctly. You go "Ah, the author believes X, so if we just assume X, it all falls into place and the code looks great".

That said, you might be working in a domain where X is fundamentally untrue. Then this is the wrong framework and an experienced practician will go "This is the wrong tool and choose a tool that fits better". The thing that doesn't fit may be the current team/experience moreso than the business domain.

At the end of the day more experienced engineers will produce a better solution than less experienced engineers. For a variety of reasons. Good tools can make less experienced engineers ramp up faster.
by wat10000 | 2025-07-03 20:30:53+00:00
That search misses this: https://www.cvedetails.com/cve/CVE-2020-27347/

That is still quite a good record, but my statement stands. It is supported by decades of my experience working in C-derived languages. You don't have to accept my experience or believe my statement, of course, it's all the same to me.
by legobmw99 | 2025-07-03 20:30:59+00:00
There are reasons to be worried about additional safety beyond just security. My first thought when reading the article was it would be a huge bummer if a bug in tmux brought down a long-running or particularly stateful session. Of course, I’ve never encountered such a thing in my own usage, but if you could make it less likely that alone seems like a value add
by forrestthewoods | 2025-07-03 20:31:38+00:00
I think if someone were, for example, to release an open source C++ library and it only compiles for Linux or only comes with Bash scripts then I would not consider that library to be crossplatform nor would I consider it to run everywhere.

I don’t think it’s “just semantics”. I think it’s a meaningful distinction.

Game dev is a perhaps a small niche of computer programming. I mean these days the majority of programming is webdev JavaScript, blech. But game dev is also overwhelmingly Windows based. So I dispute any claim that Unix is “everywhere”. And I’m regularly annoyed by people who falsely pretend it is.
by bitwize | 2025-07-03 20:32:05+00:00
Reggie Watts's lines are going from parody to the absolute state of things: "I like to take a flat-panel display monitor, put one in the steering column, one inside of the glovebox, one on top of the dashboard, two in back of the headrests, one mounted in the ceiling, two still in the motherfucking packaging in the back seat, so when my motherfucking friends go and sit on the shit and break it, I can honestly say...

I... just... don't... give... a... fuck!"
by sunshowers | 2025-07-03 20:32:43+00:00
As I mentioned, cargo-nextest is a widely used test runner for Rust -- you're welcome to check out its website for its feature set.

It is possible to do this in C, because it compiles to machine code in the end. But would be out of reach for all but the most talented of C teams working over many years, and the portability costs would be massive. As a result, I don't know of a test runner that comes anywhere close to the feature set and portability of nextest that's written in C.

> I think you have no idea how big the C ecosystem is.

I'm definitely aware that the C ecosystem is much larger than the Rust ecosystem.