MurphyA/hacker-news huggingface dataset:
by keepamovin | 2025-12-27 19:11:25+00:00
Wow, thanks for the front page, HN! I'm thrilled you're enjoying this little "web art" project.

The idea was to deconstruct Hacker News and view it through a different lens -- not time or score, but the fundamental, dynamic of prime numbers.

It's "useless", perhaps, but I find it fun!

Few tech details for those curious:

- Data Source: The public Google BigQuery dataset (bigquery-public-data.hacker_news.full). I did not scrape HN.

- ETL: A Node.js script ran a Sieve of Eratosthenes up to the current max ID (~46M) to find all the primes. It then processed the ~7GB of raw JSON, extracted the ~2.7M prime items, and packed them into sharded SQLite databases. The final repo size is only ~500MB.

- Frontend: This is a fully static site with no server backend. It uses sqlite3.wasm to load the specific database shard for the page you're viewing (e.g., shard_0.sqlite for the first 50k primes) and queries it directly in your browser.

- The Logo: The "Y" logo has been replaced with the Riemann Zeta function (ζ), which is deeply connected to the distribution of prime numbers.

- The "Warp Drive" / Live Mode: you might notice the static data is a few months old - that's a known lag in the BigQuery mirror.

To solve this, if you go to the very last page, the site switches to "Live Mode." Your browser fetches the current maxitem from the live HN API and starts mining for new primes client-side, bridging the gap between the static past and the live present. :)

Source code is here if you sho¨ld like to see the sausage being made: https://github.com/DOSAYGO-STUDIO/prime-news

Happy to answer any questions
by smj-edison | 2025-12-27 19:11:42+00:00
That's fair. It's still pre-alpha, and under heavy development, but it's working on taking the best of dynamicland[1] and trying to take it a lot further.

In terms of technical details, we just landed support for multithreaded task scheduling in the reactive database, so you can do something like
When /someone/ wishes $::thisNode uses display /display/ with /...displayOpts/ {
and have your rendering loop block the thread. Folk will automatically spin up a new thread when it detects that a thread is blocking, in order to keep processing the queue. Making everything multithreaded has made synchronizing rendering frames a lot tricker, but recently Omar (one of the head devs) made statements atomic, so there is atomic querying for statements that need it.

In terms of philosophy, Folk is much more focused on integration, and comes from the Unix philosophy of everything as text (which I still find amusingly ironic when the focus is also a new medium). The main scripting language is Tcl, which is sort of a child of Lisp and Bash. We intermix html, regex, js, C, and even some Haskell to get stuff done. Whatever happens to be the most effective ends up being what we use.

I'm glad that you mention that the main page is unhelpful, because I hadn't considered that. Do you have any suggestions on what would explain the project better?

[1] https://dynamicland.org/
by arjie | 2025-12-27 19:12:24+00:00
Two things I like are:

* HOT lanes in the Bay Area: they allocate demand efficiently and subsidize multi-people transport. I wish there were more.

* Toll roads in Texas: you can take the slip roads almost everywhere but they’re slow. The highways were fast but you had to pay.

Overall, I think fare at point of use is a great structure. In the past we couldn’t enforce it but now we can do this for more things.

The only problem is that we’ve decided that impounding cars that don’t have license plates or which have license plate covers is unacceptable because the poor do this most frequently. I hope we will clean up enforcement and then we will have the right incentives here.
by ubercow13 | 2025-12-27 19:12:40+00:00
Totally disagree, I have a wrapper I wrote myself for converting things, often for sharing the odd little clip online or such. It produces a complex command that is not easy to just type out, that does multiple things to maximise compatibility like

- making sure pixel are square while resizing if the video resolution is too large

("scale=w=if(gt(iw*sar\\,ih)\\,min(ceil(iw*sar/2)*2\\,{})\\,ceil(iw*sar*min(ih\\,{})/ih/2)*2):h=if(gt(ih\\,iw*sar)\\,min(ceil(ih/2)*2\\,{})\\,ceil(ih*min(iw*sar\\,{})/iw/sar/2)\*2):out_range=limited,zscale,setsar=1")

- dealing with some HDR or high gamut thing I can't really remember that can result from screen recording on macos using some method I was using at some point

- setting this one tag on hevc files that macos needs for them to be recognised as hevc but isn't set by default

- calculating the target bitrate if I need a specific filesize and verifying the encode actually hit that size and retrying if not (doesn't always work first time with certain hardware encoders even if they have a target or max bitrate parameter)

- dealing with 2-pass encoding which is fiddly and requires two separate commands and the parameters are codec specific

- correctly activating hardware encoding for various codecs

- etc

And this is just for the basic task of "make this into a simple mp4"
by wtallis | 2025-12-27 19:13:04+00:00
The claim you're responding to is that hard drives lose "magnetic charge" at a rate of 1% per year, not that bits get corrupted at a rate of 1% per year. The error correction in hard drives is far simpler and weaker than what's used in SSDs, but it does exist. So we should expect that there's a significant margin for data degradation before any observable data corruption begins. (This is true for SSDs, too; the first symptom of data degradation is reduced read performance as slower, more complex error correction methods kick in, then much later the host starts to actually get read errors or bad data.)
by andrewaylett | 2025-12-27 19:13:25+00:00
That's a controversy I'm not sure you necessarily realise you've stepped into :).

It's fairly common to consider working and PR branches to be "unpublished" from a mutability point of view: if I base my work on someone else's PR, I'm going to have to rebase when they rebase. Merging to `main` publishes the commit, at which point it's immutable.

Working with JJ, its default behaviour is to consider parents of a branch that's not owned by you to be immutable.
by dboon | 2025-12-27 19:13:55+00:00
The problem is that Arch doesn't need to quickly resolve (version -> manifest) for arbitrary versions. With Arch, /var/lib/pacman/sync/core.db has one release of a set of packages. When you install, you just grab whatever's there. Rolling release. pacman -Syu pulls the newest version of that set of packages. If you install sqlite 3.0 and then come back a few years later and "reinstall" all the Arch packages you used to have on a new machine, you'll either (a) use that exact database and pull the same version or (b) pacman -Syu, pull latest package database, and get the newest sqlite (say, 3.5)

There's no concept of installing sqlite 3.0 on a system where sqlite 3.5 is available.

For a language package manager, it's exactly the opposite. I could make a project with every version of sqlite the package manager has ever known about. They all must be resolvable.

If you want to do that resolution quickly (which manifest do I use for sqlite 3.0?), repo-per-package doesn't work without a bunch of machinery that makes it, IMO, not worth it.

Pacman is the best, you'd have to pry Arch from my cold, dead hands. Just different constraints.
by inglor_cz | 2025-12-27 19:14:08+00:00
The vast majority of damage on the road is caused by vehicles with high axle load, e.g. trucks, especially overloaded trucks. IIRC the damage is proportional to fourth power of the axle load.

As a consequence, personal cars barely register.

It would make sense to collect toll from trucks only, and possibly weigh them all, because overloaded trucks are extra damaging to the road.
by HansHamster | 2025-12-27 19:14:35+00:00
> Recently, GPT informed me that the strong force is really a tiny after-effect of the "QCD force"

Maybe you should not take everything GPT tells you at face value? I have no idea what this QCD force is supposed to be. The strong force is _the_ force of QCD.
The Standard Model still considers the electromagnetic, weak and strong force. The description of the weak and EM force can be unified into the electroweak force and there are theories that try to also unify it with the strong force and even gravity, but there are issues on the theory side and no clear evidence on the experimental side as to which direction is the correct one.

The Standard Model and General Relativity are still our most successful theories. It is clear that they don't tell the whole picture, but (annoyingly?) it is not clear at all where this is going.

Just for dark matter there are probably a dozen proposed hypothetical particles, but so far we have found none. But maybe it's something completely different...
by m3047 | 2025-12-27 19:14:58+00:00
I can read that "submission and deference" at the casino as conflict avoidance, the arresting officer says to his peers at the station that he "kind of believes" the suspect. He also states at some point that he can't cite (and I infer then release) the suspect because he is not certain who he is, and therefore has to arrest him as a "John Doe" so that his identity can be established. The fact (?) that the suspect now has a police record for this possible farce won't be settled until after the facts are determined in a court of law.

This video demonstrates that when it comes down to it the blunt end of law enforcement is oftentimes a shit show of "seems to work for me" and that goes for facial recognition, shot spotter, contraband dogs, drug & DNA tests, you name it.
by teiferer | 2025-12-27 19:15:27+00:00
Two quotes from the article you are criticizing:

"As a programmer, I don’t like it."

"As mentioned before, this is not a post about what’s practically a good idea. All I’m arguing is that mathematically, we can extend division in this way without leading to a contradiction. Programming languages are different from mathematical formalisms, and should be different. I prefer that 1/0 is an error, because I’m not using my program to prove theories."

Please do yourself a favor and actually read it.

Besides, 0 as a sentinental value on disk or on the wire is fine, but once you have values in a programming language, use option types. This is not 1980s anymore, you don't need to use 0 or -1 or 0xffff to express something special which sooner or later just falls on your feet.
by wvbdmp | 2025-12-27 19:15:32+00:00
It’s not always destructive as in “to crush”, it can also lend an air of diffusion, dispersion, fraying at the edges, which is perhaps closer to the idea of “sprawl”. I’m not Swiss, so it could be different there, and I can’t speak to how common “Zersiedlung” is in Switzerland. In Germany I would say it’s probably strictly a governmental/admin term of art, if anything.
Show HN: AgentFuse – A local circuit breaker to prevent $500 OpenAI bills
by abdulbasitali | 2025-12-27 19:16:22+00:00
Hey HN,

I’ve been building agents recently, and I hit a problem: I fell asleep while a script was running, and my agent got stuck in a loop. I woke up to a drained OpenAI credit balance.

I looked for a tool to prevent this, but most solutions were heavy enterprise proxies or cloud dashboards. I just wanted a simple "fuse" that runs on my laptop and stops the bleeding before it hits the API.

So I built AgentFuse.

It is a lightweight, local library that acts as a circuit breaker for LLM calls.

Drop-in Shim: It wraps the openai client (and supports LangChain) so you don't have to rewrite your agent logic.

Local State: It uses SQLite in WAL mode to track spend across multiple concurrent agents/terminal tabs.

Hard Limits: It enforces a daily budget (e.g., stops execution at $5.00).

It’s open source and available on PyPI (pip install agent-fuse).

I’d love feedback on the implementation, specifically the SQLite concurrency logic! I tried to make it as robust as possible without needing a separate server process.
by bell-cot | 2025-12-27 19:16:39+00:00
Okay, let's say the misguided individual users are posting on Facebook - a mega-corp with billions of users. And 13-digit market cap, to tempt the lawyers.

How does that play out? IANAL, but I'm thinking Facebook says "Sorry, but Section 230 covers our ass" - and that's about it. Still no consequences.
by whoknowsidont | 2025-12-27 19:16:53+00:00
Why do we need public funds to build a private authority that pays people absurd amounts of money who don't actually do anything instead of just you know.... building the road like we always have. For the public.

If we're going to spend the money anyways why do we need private profits?

Furthermore, just tax the vehicles that are actually doing damage to the roads. i.e., trucks.

A honda civic barely does anything to a road. Where a semi-truck is EXPONENTIALLY more damaging.
by dang | 2025-12-27 19:16:55+00:00
Could you please stop creating accounts for every few comments you post? We ban accounts that do that. This is in the site guidelines: https://news.ycombinator.com/newsguidelines.html.

You needn't use your real name, of course, but for HN to be a community, users need some identity for other users to relate to. Otherwise we may as well have no usernames and no community, and that would be a different kind of forum. https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...
by smusamashah | 2025-12-27 19:17:23+00:00
The editor that is used to draw these animations https://floor796.com/editor/l0

Author has a YouTube channel too somewhere where you can see him making a drawing start to end. (edit: https://m.youtube.com/channel/UCribkEGzOuMQ9ozb0ektMCQ)

From FAQs

> The creation of Floor796 started in 2018. I spent the first year creating the animation editor, the rendering engine and the site itself. Then I started drawing the first characters. I drew slowly at first, as I had to get used to the projection and constantly improve the animation editor. I've been creating the first block for over 8 months. Now I draw 1 block in about 1-1.5 months.

Author made everything, including the editor, by himself.
by alwa | 2025-12-27 19:17:24+00:00
It strikes me as a little disappointing the way commenters seem to think they know you, and seem to respond to your thoughtful work by picking at you personally.

From the root comment that speculates about your existential happiness (he chose a partner and kids instead, and is happier that way than whatever he assumes your life is like!), to the gp comment that passes judgment on your intentions in writing at all.

I’m not really sure what to make of that, but that kind of behavior is the reason I keep my writing to myself (and specific people I email directly) and never share it. I don’t have the patience to deal with the uninvited judgment, and I worry that I’d respond to the unjustified demands by internalizing them.

My life is richer as a result of you being able and willing to deal with all this, and sharing what stimulated you this year. If I didn’t like it, I’d go read something else and politely abstain from judgment. As it happens, I liked it very much, and I did not go read something else. Thank you.

Thank you for that, thank you for not letting various ancillary grumps dissuade you, and a healthy and stimulating and prosperous new year to you!
by KaiserPro | 2025-12-27 19:17:33+00:00
Its only really a crisis for people who are dependent on the US for protection. The whole compact is that you use the dollar, and the US will look after you (ie House of Saud, Europe, taiwan, south korea, etc) But that isn't really certain anymore.

You need to make tributes to the suntan king, and he is most capricious and likley to tariff the fuck out of you. So alternative destination for your goods is a necessity

Also the markets are not convinced that the fed is in good hands. The whole point of the fed is that they are far enough away from the meddling in Washington so that you can rely on the dollar. The fed is being steadily erroded, with the new chair being selected soon. The problem is that present administration is hell bent on loyalty over competence.

Printing dollars to get out of domestic budgetary problems was never a thing (excluding QE, but thats different, nominally) was never an option in the US. but that doesn't seem so far fetched now.
by ltbarcly3 | 2025-12-27 19:18:58+00:00
pre-commit is just a bad way to do this. 99.9% of my commits won't pass CI. I don't care. I run `git wip` which is an alias for `git commit -am "WIP"` about every 15 minutes during the day. Whenever things are in a running state. I often go back through this history on my branch to undo changes or revisit decisions, especially during refactors, especially when leveraging AI. When the most work you can lose is about 15 minutes you stop looking before you leap. Sometimes a hunch pays off and you finish a very large task in a fraction of the time you might have spent if you were ploddingly careful. Very often a hunch doesn't pay off and you have to go recover stuff from your git history, which is very easy and not hard at all once you build that muscle. The cost/benefit isn't even close, it makes me easily 2x faster when refactoring code or adding a feature to existing code, probably more. It is 'free' for greenfield work, neither helping nor really hurting. At the end the entire branch is squashed down to one commit anyway, so why would you ever not want to have free checkpoints all the time?

As I'm saying this, I'm realizing I should just wire up Emacs to call `git add {file_being_saved} && git commit -am "autocheckpoint"` every time I save a file. (I will have to figure out how to check if I'm in the middle of some operation like a merge or rebase to not mess those up.)

I'm perfectly happy to have the CI fail if I forget to run the CI locally, which is rare but does happen. In that case I lose 5 minutes or whatever because I have to go find the branch and fix the CI failure and re-push it. The flip side of that is I rarely lose hours of work, or end up painting myself in a corner because commit is too expensive and slows me down and I'm subconsciously avoiding it.
by casey2 | 2025-12-27 19:19:17+00:00
Data that can be visualized is rarely useful. Better to create a language to talk about it.

Often you need a language in the first place to even be interested in the graph at all. Graphs are worth a thousand words if you are willing to throw out any data that

Is higher than 3D

Requires control flow or recursion to explain

Of course you can have diagrams systems that are languages e.g. Feynman Diagrams (a sort of DSL for quickly reading QM math). I would hold this up as a much greater achievement of human ingenuity than r/dataisbeautiful spam. But the differentiation here isn't between text and graphs, but between languages and glyphs.
by tzs | 2025-12-27 19:19:20+00:00
I think they mean that what happens when a neutron decays is well understood. One of the neutron's down quarks change to an up quark, facilitated by a virtual W boson with negative charge. The W boson is very unstable and immediately decays into an electron and an electron anti-neutrino, both of which are ejected leaving behind the former neutrino which is now a proton because of that quark change.

When that happens is less understood, hence the discrepancies you mentioned.
by tptacek | 2025-12-27 19:19:27+00:00
A thru-line of some of the gnarliest vulnerabilities here is PGP's insane packet system, where a PGP message is a practically arbitrary stream of packets, some control and some data, with totally incoherent cryptographic bindings. It's like something in between XMLDSIG (which pulls cryptographic control data out of random places in XML messages according to attacker-controlled tags) and SSL2 (with no coherent authentication of the complete handshake).

The attack on detached signatures (attack #1) happens because GnuPG needs to run a complicated state machine that can put processing into multiple different modes, among them three different styles of message signature. In GPG, that whole state machine apparently collapses down to a binary check of "did we see any data so that we'd need to verify a signature?", and you can selectively flip that predicate back and forth by shoving different packets into message stream, even if you've already sent data that needs to be verified.

The malleability bug (attack #4) is particularly slick. Again, it's an incoherent state machine issue. GPG can "fail" to process a packet because it's cryptographically invalid. But it can also fail because the message framing itself is corrupted. Those latter non-cryptographic failures are handled by aborting the processing of the message, putting GPG into an unexpected state where it's handling an error and "forgetting" to check the message authenticator. You can CBC-bitflip known headers to force GPG into processing DEFLATE compression, and mangle the message such that handling the message prints the plaintext in its output.

The formfeed bug (#3) is downright weird. GnuPG has special handling for `\f`; if it occurs at the end of a line, you can inject arbitrary unsigned data, because of GnuPG's handling of line truncation. Why is this even a feature?

Some of these attacks look situational, but that's deceptive, because PGP is (especially in older jankier systems) used as an encryption backend for applications --- Mallory getting Alice to sign or encrypt something on her behalf is an extremely realistic threat model (it's the same threat model as most cryptographic attacks on secure cookies: the app automatically signs stuff for users).

There is no reason for a message encryption system to have this kind of complexity. It's a deep architectural flaw in PGP. You want extremely simple, orthogonal features in the format, ideally treating everything as clearly length-delimited opaque binary blobs. Instead you get a Weird Machine, and talks like this one.

Amazing work.
by abigail95 | 2025-12-27 19:19:40+00:00
No the license does not hold! Fair use exists independently of the GPL license.

Using GPL software does not take away your rights under the law. As much as the angry FSF lawyers want you to believe - I can use any GPL software in any way I choose and have the affirmative defense of fair use for every single claim they throw at me.

Whether I lose or not depends on specific factors of my use - and I'm sorry but one comma isn't going to cut it.

Edit: A single comma will lose 100% of the time to a summary judgement via de minimis. That's just an incredible legal theory you have there and not something you should be spreading.

Edit2: The Beastie Boys famously won via de minimis at summary judgement for a 3 note sample. It matters not whether those 3 notes were GPL notes or not. It matters what the law is.