MurphyA/hacker-news huggingface dataset:
by DANmode | 2025-11-02 17:42:49+00:00
Blind twins* will need to carry an alternative. /s

Of course the technical solution isn’t easy, (or necessarily all good),

but that doesn’t make it any less likely, or intriguing to discuss the roadmap.

(You combine the scanned data together from both of those scans, regardless of value, as your recovery mechanism, by the way - accounting for abnormal anatomy in a defined, reproducible way is a challenge, not a barrier)
by cwzwarich | 2025-11-02 17:43:05+00:00
Adding axioms to simple type theory is more awkward than adding them to a set theory like ZFC. One approach to universes I’ve seen in Isabelle/HOL world is to postulate the existence of a universe as a model of set theory. But then you’re stuck reasoning semantically about a model of set theory. Nobody has scaled this up to a large pluralist math library like Mathlib.
by e12e | 2025-11-02 17:43:35+00:00
I used vim for about twenty years, and I'm mostly happy having moved from neovim to helix.

The main thing I miss in helix is solid debugging support and slime style repl support - but I never had that working in vim.

The other thing I'm missing in ruby is "go-to definition" automatically working with dependencies, allowing to go to the source code by "opening" gems - tpope has/had some amazing stuff for ruby development with vim.

That said - I like how helix is more discoverable (pop up context menu), has sane/great defaults and out of the box experience - and I like the select-apply or subject-verb and multi cursor workflow better than vim verb-subject flow.

I recommend trying to go through the tutorial and see if fits.

I'm hoping plugin support will open the door to some improved go-to-definiton support - I'd love to be able to go "up" to edit/view dependencies be that libc source code, java, rust crates etc.
by embedding-shape | 2025-11-02 17:43:35+00:00
> the rats are effectively as blind as the bat in the dark

Are they? Aren't rats nocturnal in the first place, meaning evolution should have given them some benefit in that environment? AFAIK, rats have pretty OK contrast/motion detection even in low light situations.

I guess if "in the dark" means "low light" or "total darkness". You're probably right for "total darkness" but if it's "low light", I think the rats would "see" better than the bats.
by vips7L | 2025-11-02 17:44:58+00:00
> So “Java” in practice is different from niche Java.

This is an odd take, especially when in the discussion of Rust. In practice when talking about projects using Rust as an http server backend is non-existent in comparison. Does that mean we just get to write off the Rust benchmarks?

Java performs, as shown by the benchmarks.
by qdotme | 2025-11-02 17:45:17+00:00
Nesting, mostly (having used that trick a lot, though I usually sign that record if originating from server).

I've almost entirely moved to Rust/WASM for browser logic, and I just use serde crate to produce compact representation of the record, but I've seen protobufs used as well.

Otherwise you end up with parsing monsters like ?actions[3].replay__timestamp[0]=0.444 vs {"actions": [,,,{"replay":{"timestamp":[0.444, 0.888]}]}
by neom | 2025-11-02 17:46:17+00:00
I've kept rats my whole life and on one hand I'm not surprised, they'll eat what seems like literally anything, on the other hand they seriously pick their battles, a rat isn't going to engage with anything it's unaware of, they have extreme neophobia so I'm somewhat surprised this rat felt the situation out enough that it was comfortable doing this, I'd guess it had spent a lot of time around the bats, also surprising because the rat is a bit on the chonky side to be opportunistically hunting that way. Interesting.
by zozbot234 | 2025-11-02 17:47:08+00:00
The claim that dependently typed languages are inherently reliant on fully written-out proof objects looks quite wrong to me. You could easily imagine a proof term with opaque typed "holes" (written `_`) where the content of each "hole" is simply replaced by a LCF-like proof script that was somehow proven (in entirely unspecified ways, having to do with the peculiar programming language that the LCF-like checker uses for its implementation - so the soundness boundary has been expanded a lot, we have given up on having an easily checkable 'kernel'!) to generate some term of the correct type, starting from its environment. Since the content is opaque, no other part of the proof development can tell what exactly was in the hole, and we can dispense with writing that part of the proof term out.
Show HN: I built a smart blocker after destroying my dopamine baseline
by Rahul07oii | 2025-11-02 17:47:32+00:00
I'm a solo dev. A few years ago, I got addicted to Reddit. Spent months in that loop.

Being a programmer, I thought I'd be clever. Redirected Reddit's domain to nowhere in my DNS file. Worked great until I'd just... open the file and undo it 20 minutes later.

So I made it irreversible. Locked the DNS file so it can't be edited unless I boot my Mac in safe mode. And if I do that, there's a script that instantly locks it again. Haven't used Reddit since last year.

Problem solved, right?

Wrong. I just replaced Reddit with Twitch and YouTube. Started keeping streams running in the background while I coded. This went on for almost a year.

It killed my ability to focus. If you know about dopamine, you know your brain releases it when it wants you to repeat an activity. The constant background streams destroyed my dopamine baseline. When I tried to code without anything running one day, it felt genuinely weird. Hard problems that used to be interesting just felt like grinding.

I tried blocking Twitch and YouTube the same way I blocked Reddit. But I actually need YouTube for learning. I watch programmers on Twitch I learn from. I couldn't just nuke them entirely.

So I built something smarter.

The first version was terrible. Blocked things it shouldn't, let through things it should've blocked. Really buggy and annoying.

Then I added AI. I tell it what I'm working on, and it blocks anything unrelated to that task. This was the breakthrough. I need YouTube for tutorials, but I don't need 3-hour video essay rabbit holes. The extension knows the difference now.

It reminds me in the moment. Not after I've already wasted an hour. Right when I'm about to click into the distraction, it stops me and makes me think: "Is this what I'm supposed to be doing right now?"

The result: I actually enjoy hard problems again. Turns out I wasn't burned out, I'd just wrecked my brain's reward system.

Then I had to market this thing, so I started using Twitter. And oh boy, Twitter is addicting. You post something and wait for the notification to light up. I had to install my own extension on my Twitter Chrome profile. It's wild how effective it is when something reminds you "you're here to market, not scroll" right as you're about to fall into the feed.

It's still hard sometimes. Your brain will try to disable it. But having something that catches you in the moment before you lose an hour makes all the difference.

It's a Chrome extension, currently at beta v1.0.43: https://chromewebstore.google.com/detail/memento-mori/fhpkan...

It's free, no signup, no payment. Just install it.

Fair warning: it's still in beta. There will be bugs. But it works well enough that I use it daily, and it's helped me get my focus back.

Built this to fix my own problem. Figured other devs might be in the same boat.

Question for HN: Anyone else dealt with this? The programming with streams thing destroyed my focus for almost a year before I realized what was happening. What worked for you?
by mythrwy | 2025-11-02 17:47:38+00:00
Interesting. I have been feeding my chickens ground flax seed and pecans (there are a lot of pecan orchards in the area so it's easy to get old nuts which I just smash and let the chickens pick through them). I don't have any quantitative data but I'm hopeful it produces healthier eggs. At minimum it produces very tasty eggs.
by sally_glance | 2025-11-02 17:49:20+00:00
Very accurate - that was one of the steps that caused me to fiddle quite a bit. Had to add an entrypoint to chown the mounts and also some Buildkit cache volumes for all the package managers.

You can skip the uid/chown stuff if you work with userns mappings, but this was my work machine so I didn't want to globally touch the docker daemon.
by mikkupikku | 2025-11-02 17:49:38+00:00
That sort of solution is cancer if you want to do anything the display server authors didn't think of. I've got a script that I invoke with a global hotkey that determines the window title of the currently focused window and fuzzy matches it against pipewire audio stream names so I can mute the focused window with a single keypress. If I want that to work in Wayland I'm pretty much up shit creek because somebody with their head in the clouds thinks that my needs are super dangerous or something.
by nickpinkston | 2025-11-02 17:51:06+00:00
Yea, I agree.

Arguably LLMs are both (1) far easier to switch between models than it is today to switch from AWS / GCP / Azure systems, and (2) will be rapidly decreasing switching costs for your legacy systems to port to new ones - ie Oracle's, etc. whole business model.

Meanwhile, the whole world is building more chip fabs, data centers, AI software/hardware architectures, etc.

Feels more like we're headed to commodification of the compute layer more than a few giant AI monopolies.

And if true, that's actually even more exciting for our industry and "letting 100 flowers bloom".
by echelon | 2025-11-02 17:52:19+00:00
Can someone explain why anyone would want non-squashed PRs?

For the 5% of engineers that diligently split each PR into nice semantic changes, I suppose that's nice. But the vast majority of engineers don't do this. Individual commits in a PR are testing and iteration. You don't want to read though that.

Unless, of course, you're asking the engineer to squash on their end before making the PR. But what's the value in that ceremony?

Each PR being squashed to 1 commit is nice and easy to reason about. If you truly care about making more semantic history, split the work into multiple PRs.

For that matter, why merge? Rebase it on top. It's so much cleaner. It's atomic and hermetic.
by tmoertel | 2025-11-02 17:53:21+00:00
I don't think it's that simple. For example: Show me the unit tests and CI/CD scripts you would write to prove your code is free from security holes.

Yet, once you've identified a hole, you can write a script to test for it, run `git biset` to identify what commit introduced the hole, and then triage the possible fallout.
by clanky | 2025-11-02 17:53:47+00:00
My understanding is that bounty hunters are generally sent after people who fail to appear for their court dates or prison sentences? This would be more akin to "Walmart got a shoplifter on video and the local sheriff sent a bounty hunter after them."

The use of mass surveillance Palantir dragnet data in this case is also unique, and a precursor/practice for using it in domestic counterinsurgency and war on the broader populace.
by mjg59 | 2025-11-02 17:53:57+00:00
808x registers are all 16 bit, despite it having a 20 bit address space. That means you can't fit a full memory address in a single register, which means memory is split into 64K "segments" and you have a separate segment register that tells the CPU which segment you're referring to (segments can overlap, so this is distinct from banked memory). On its own that makes writing 808x code fucking miserable.
by lotharcable | 2025-11-02 17:54:38+00:00
Fixing X11's security would of broken window positioning as well. Since that is a security issue.

The deal here is that the only way to fix X11's security issues is by breaking all those types of workflows and forcing application rewrites to implement them in authenticated ways.

So if you are going have to go and break all that stuff, why not fix a crapload of other problems while you are at it?

Calling Wayland "X13" may have avoided a lot of misunderstandings, but it probably would of caused others.
by rikroots | 2025-11-02 17:56:12+00:00
tl;dr: This is a link to a sign up sheet for a yet-to-be delivered product promising something that is vaguely hinted at - "Drive traffic [...] AI-powered [...] help you create and share content [...]" - nothing to see here.

And yet the CTA touches on something I find deeply interesting: how can we use LLMs to make products more discoverable to people using LLMs to search for products to solve their particular problems.

I put some work into this over the summer - prepping my canvas library repo (and my author site, but that's just vanity) with LLM-friendly documentation and training data which I hope will, at some point, get picked up by the AI data scrapers and crawlers for inclusion in the next generation of training data, to be used in turn to train the next generation of LLMs.

The big downside to this approach is, of course, the terrible lead-in times (6-18 months) alongside the lack of guarantee that the docs I've written will be good enough to pass muster and make it into the training data sets.

But the payoff I'm after is to get accurate, unbiased information about my canvas library into LLMs in such a way that when people ask general questions about coding up the canvas element my library gets ranked alongside the usual suspects, and gets assessed fairly against them. Plus having accurate "how to" templates to minimise the glaring mistakes current LLMs make when hallucinating how they think my library should be used.
by embedding-shape | 2025-11-02 17:56:37+00:00
> For that matter, why merge? Rebase it on top. It's so much cleaner. It's atomic and hermetic.

With an explicit merge, you keep two histories, yet mostly care about the "main" one. With rebase, you're effectively forgetting there ever was a separate history, and chose to rewrite the history when "effectively merging" (rebasing).

There's value in both, mostly seems to come down to human preference. As long as the people that will be working with it agrees, I personally don't care either way which one, granted it's consistently applied.
by nixpulvis | 2025-11-02 17:57:05+00:00
I'd take fully squashed PRs over endless "fix thing" and "updated wip"... but if you work in a way that leaves a couple meaningful commits, that's even better. Sometimes I end up in this state naturally by having a feature branch, which I work on in sub branches, each being squashed into a single final commit. Or when the bulk of the logic is on one commit, but then a test case or two are added later, or a configuration needs changing.

I like merge commits because they preserve the process of the review.
by actionfromafar | 2025-11-02 17:57:28+00:00
The US is possibly too free now to have a proper revolution. A key requisite for a revolution to be successful is that the population just accepts the new leaders. I think it’s a coin flip now if that requisite is met. Of course the alternative isn’t peaceful either, but more like a civil war or at least factions going after each other.

This is why even flawed democracy is better. The alternatives are just horrible.
by 0xbadcafebee | 2025-11-02 17:57:52+00:00
Why do people keep persisting this myth? X11 has authentication. You can either rely on filesystem permissions, or a shared secret. The same way thousands of other network servers work.

Any program you run on a computer (especially a Linux computer, which lacks modern OS security measures and has constant privesc kernel holes) exposes you to security flaws. There has yet to be any computer system designed that a hacker can't break out of. If you intentionally download and execute a program, you are rolling the dice, regardless of what the software is.

What's insane about all these discussions is that NOBODY IS HACKING X SERVERS. There's a thousand other kinds of software on Linux that there is real malware for. But nobody is trying to hijack your X11 session. This imagined threat is a red herring designed to bolster the argument for Wayland's horrible designs.
by pron | 2025-11-02 17:58:14+00:00
You can start trying the first part of Project Valhalla today (with a ready-made JDK build): https://inside.java/2025/10/27/try-jep-401-value-classes/

No specialised generics at first, and this "beta" Early Access flattens only tiny objects on the heap, but changes to both will come later. Most of the foundation is there.
by skywhopper | 2025-11-02 17:58:42+00:00
These sorts of things make me realize how many people spend their time thinking about total nonsense. Looking at the agenda for the upcoming BGI summit sure looks like a bunch of people who have no actual idea how LLMs work and could not explain what AGI and the “singularity” actually have to do with each other blathering nonsense about how we’ll beneficially manipulate these supposedly imminent superintelligences to be nice to us. This author even asserts with no evidence or argument that it’s obvious that superintelligence would actually be empathetic and kind.

It’s just wild how many people are so truly disconnected from reality. But I suspect they’re all well-off enough and well-connected enough that the coming conflicts and disasters (which won’t be due to any such thing as “super intelligence”) will mostly not harm them.
by thomasmg | 2025-11-02 18:00:23+00:00
The author of Fil-C does have some ideas to avoid a garbage collector [1], in summary: Use-after-free at worst means you might see an object of the same size, but you can not corrupt data structures (no pointer / integer confusion). This would be more secure than standard C, but less secure than Fil-C with GC.

[1] https://x.com/filpizlo/status/1917410045320650839
by leptons | 2025-11-02 18:00:39+00:00
>How often do you sleep over on the couch or floor of strangers homes, waking up when they wake up, participating in something that isn't overflowing with tourists already? Or got to experience how a day is for someone who works and lives in the place you're visiting for the first time?

You have the strangest travel goals I've ever heard of.

Fortunately I don't have to sleep on floors when I travel. That sounds awful.

I can't imagine anyone would want to "experience how a day is for someone who works and lives" in my life, they'd be sitting on a couch in my office watching me type in lines of code all day. Thrilling.

I spent 3 months living and working in a city abroad (again, coding), so yeah, I know what it's like. We travelled all around the region, saw and did amazing things instead of "winging it", and the horror - there were tourists there too! Avoiding tourists just to avoid tourists means you missed out on things that are interesting, because why, you don't like being around other people? But I don't actually care why or how you travel, you do you.
by JumpCrisscross | 2025-11-02 18:01:09+00:00
> What is needed is a communist popular revolution, it's the only hope left for the country

Communist popular revolutions succeeded in replacing the previous elites. None of them—apart from departure from Tsarist mismanagement, and even then only for a short run—resulted in a higher quality of life for the people.

History rarely has justice. Idiots overthrowing flawed democracies reaping and then getting stomped on by the ensuing autocrats are a rare example. (The others are terrorism and strategic bombing backfiring. Pretty much always.)
by bitshiftfaced | 2025-11-02 18:01:37+00:00
This is sort of my thinking too. It's finding next token once the previous ones have been generated. Dashes are an efficient way to continue a thought once you've already written a nearly complete sentence, but it doesn't create a run-on sentence. They're efficient in the sense that they allow more future grammatically correct options even when you've committed to previous tokens.
by stefan_ | 2025-11-02 18:01:43+00:00
There is no free lunch, the same people that can't be bothered to make atomic semantic commits are the same people that will ruin your bisect with a commit that doesn't build or has some other unrelated run failure. People that don't care can't be fixed by tools.

The advice around PRs rings hollow, after all they were invented by the very people that don't care - which is why they show all changes by default and hide the commits away, commit messages buried after 5 clicks. And because this profession is now filled with people that don't care, add the whole JIRA ticket and fix version rigmarole on top - all kinds of things that show up in some PMs report but not in my console fixing an issue that requires history.
by margalabargala | 2025-11-02 18:04:02+00:00
You've now turned a moral willingness-to-help problem into a logistical and coordination problem.

What you suggest requires entire organizations to execute properly. These organizations do exist, such as Doctors Without Borders.

I don't think your original claim is fair, which amounts to "any surgeon who does not participate in Doctors Without Borders is just as bad as a landlord who evicts a family during winter".

What do you think we owe to one another, philosophically?
by neilv | 2025-11-02 18:04:05+00:00
False choice.

The reality of these "rigorous, systematic technical interviews" is that we have a ton of companies doing nonsense theatre that isn't actually about "fundamentals", is also easily biased (as even some purported Google interviewers have admitted on HN), and have almost nothing to do with how effective a software engineer will be (as even Google's own stats show).
by rectang | 2025-11-02 18:05:33+00:00
Crafting a PR as an easily-consumed, logical sequence of commits is particularly useful in open source.

1. It makes review much easier, which is both important because core maintainer effort is the most precious resource in open source, and because it increases the likelihood that your PR will be accepted.

2. It makes it easier for people to use the history for analysis, which is especially important when you may not be able to speak directly to the original author.

These reasons also apply in commercial environments of course, but to a lesser extent.

For me, organizing my PRs this way is second nature and only nominal effort, because I'm extremely comfortable with Git, including the following idiom which serves as a more powerful form of `git commit --amend`:

git add -p git commit --fixup COMMIT_ID git stash git rebase -i --autosquash COMMIT_ID~

An additional benefit is that this methodology doesn't work well for huge changesets, so it discourages the anti-pattern of long-lived topic branches. :)

> For that matter, why merge? Rebase it on top.

Yes, that works for me although it might not work for people who aren't going to the same lengths to craft a logical history. I have no interest in preserving my original WIP commits — my goal is to create something that is easy to review.

BUT... the PR should ultimately be merged with a merge commit. Then when you have a bug you can run `git bisect` on merges only, which is good enough.
by 3rodents | 2025-11-02 18:08:49+00:00
Rats are not predatory, they’re resourceful. You didn’t witness what rats do in the wild, you witnessed abused rats doing whatever they could to survive. Rats will eat mice if they need to but they will not seek them out when other food sources are available. You can’t judge the behavior of rodents when they are feeders. Mice would do the same thing. As would you and I.
by cmrdporcupine | 2025-11-02 18:10:40+00:00
Don't worry, the US is actively trying to export that rejection, too, so it won't be alone. See Trump's messed up rant at the UN, and the policies and proposals of his conservative allies here in Canada.

Alberta was the the fastest growing renewable producer in Canada due to high winds and long solar days and low cloud cover. The provincial government in the pocket of the oil industry banned renewable developments for months under the excuse that it was "destroying farmland" and then came back months later with a policy that hamstringed future development.

to these people, renewables are a threat because they can't be a parasite off it.