MurphyA/hacker-news huggingface dataset:
Show HN: Warper – React virtualization with Rust/WASM for 10M+ items
by itsmeadarsh | 2026-01-06 14:43:58+00:00
I built a React virtualization library that offloads scroll calculations to Rust compiled to WebAssembly.

Why I built this:

I was working on a trading dashboard that needed to display 500k+ rows of live tick data. react-window worked fine at 10k rows, but at scale, every scroll event caused visible jank. Profiling showed the bottleneck was JavaScript - calculating visible ranges and item offsets was blocking the main thread for 8-12ms on each scroll.

I wondered: what if the math happened in WASM instead?

What it does:

Warper is a React hook (useVirtualizer) that renders only visible items. The difference from existing libraries:

Scroll position to visible range calculations happen in Rust/WASM
Item offsets stored in a Fenwick tree for O(log n) updates when heights change
Binary search for scroll-to-index is O(log n) instead of O(n)
No JS object allocations during scroll = no GC pauses
Technical details:

The WASM module maintains a Fenwick tree (binary indexed tree) of item heights. When you scroll:

JS passes scroll position to WASM
WASM binary searches the tree to find the start index
WASM returns [startIndex, endIndex, offsets[]]
React renders only those items
For variable heights, updating a single item's height is O(log n) instead of recalculating all subsequent offsets.

Benchmarks (Chrome, M1 Mac):

10k items: react-window 60 FPS, Warper 120 FPS
100k items: react-window ~40 FPS, Warper 120 FPS
1M items: react-window ~12 FPS, Warper 118 FPS
At 10M items, react-window crashes. Warper holds at ~115 FPS.

Try it:

Live demos (no signup): https://warper.tech
Stress test with 1M rows: https://warper.tech/one-million-rows
Variable height chat: https://warper.tech/chat

GitHub: https://github.com/warper-org/warper
npm: npm install @itsmeadarsh/warper (~45KB gzipped with WASM)

Limitations:

Requires top-level await or a bundler plugin for WASM
Only React 18+ (uses useSyncExternalStore under the hood)
Horizontal virtualization not yet implemented
Happy to answer questions about the Fenwick tree implementation or WASM/JS interop challenges.
by todaycompanies | 2026-01-06 14:44:06+00:00
Hey HN,

I built RepoCard because I kept running into a friction point every time I shipped a side project: I’d spend hours coding, but when it came time to share it on Twitter or here, I’d lose 45 minutes fussing around in Figma trying to make a decent "social preview" image.

I realized most of the data I needed for the marketing assets was already in the repo (description, language, stars, code snippets).

RepoCard (https://repocard.dev) is a "launch kit" that auto-generates these assets from a single GitHub URL.

What it generates:
1. Social Cards (OG Images): Styled previews with your repo stats.
2. CodeSnaps: Aesthetic screenshots of your actual code (fetches from main/index files).
3. Launch Posts: AI reads your README and drafts a release thread.
4. File Trees: ASCII art of your project structure for documentation.

It’s free to try (no signup required). There is a $9 one-time lifetime deal that unlocks high-res exports, removes watermarks, and adds premium themes (Cyberpunk, Swiss, HN Orange).

--

Anticipating a few questions:

1. How does it work?
It uses the GitHub Public API to fetch repo metadata and raw file content. The "Launch Post" feature uses a lightweight LLM to summarize the README. Everything is built on Next.js, Supabase, and Stripe.

2. Why not open source?
I’m a solo dev and this is a paid product to support my time, so the source is closed for now. However, I’m using standard libraries (html-to-image, shiki for syntax highlighting) if you want to build your own version.

3. Do you store my code?
No. We fetch the file content to render it on the canvas in your browser. We do not store or train on your repository code.

4. Why $9?
I’m trying to avoid the subscription fatigue we all hate. A one-time price covers the API/LLM costs and feels fair for a utility tool you might use 5-10 times a year.

I’d love to know which templates you prefer or if there are other assets (maybe a GIF generator?) that would be useful for your launches.

Thanks!
by Der_Einzige | 2026-01-06 14:44:18+00:00
The people who think that high end GPUs don't last for ~5 years (really it's 6) do not know what they are talking about. 6 years is likely too low. If the cooling is good and they don't fail early, most of these GPUs could still keep going past 6 years.

I'm convinced that anything with more than 80gb of VRAM will be worth it for closer to 10 years at this point.
by morpheos137 | 2026-01-06 14:45:12+00:00
Treat as a knot$\mathcal{F}(3)\|\mu_H^{19.31}\|\epsilon_{.0233}\|\beta_{\kappa+\frac{1}{2}\lambda}=0\|\mathcal{P}_{\frac{37}{73}:\epsilon}\|\oint \mathbf{J} \sin\delta_\ell=0\|\Delta \phi_n \to \ell_D^{1400}\|\Omega \circlearrowleft \{37 \leftrightarrow 73\}_{\{0 \mid \infty\}}^{\text{0x3749}}$
by jbstack | 2026-01-06 14:45:26+00:00
Why does scale matter?

If I have 100 customers and I have to spend 1 hour a week dealing with legal compliance requests then if I have 200 customers I have to spend 2 hours a week dealing with legal compliance requests, but I also have more resources to do it with.

In fact, scale usually makes it easier rather than harder because you can take advantage of economies of scale to streamline the process.

And, in the end, if you aren't able to comply with the law then you shouldn't be in that business regardless of your scale.
by Ragnarork | 2026-01-06 14:45:32+00:00
You do lose the ability to use some features, that's true. Mostly RAII around the interface. You can still leverage it internally in the implementation, and if using context objects it would be even easier. The main pain point is if you want to let client of the library use their own allocators. It's still doable, but quite a pain.

Classes can be wrapped with a bit of effort. You do need to write the constructors and the destructors manually and invoke a pair of new/delete on the C side, but it's just as you would handle a type allocated by a C library itself. You'd use it the same way. You just have the liberty to have the implementation use (mostly) C++.
by xg15 | 2026-01-06 14:45:59+00:00
Looks like some people have discovered the first "accidental" game mechanic: The horse can walk over cherry fields, but the player cannot place walls on them - so if a level designer places cherries strategically, they can create unblockable paths.

Right now, this is only used for troll levels, but I wonder if you could also use it for some actual puzzles.
by willjohnsonio | 2026-01-06 14:46:26+00:00
Auth0 is an option not just for the enterprise. I'm developer advocate there, you get 25,000 users in our free tier with a custom domain, unlimited social connections, basic attack protection, and more.(https://auth0.com/pricing). We also have the Auth0 for Startups program you can apply to and get one year free. (https://auth0.com/startups)

Reach out with any questions. Would love to help you with your project
by vel0city | 2026-01-06 14:47:21+00:00
> if you want to cancel Netflix you need to have a DVD collection

You don't need a whole DVD collection to cancel Netflix, even ignoring piracy. Go to a cheaper streaming service, pick a free/ad supported one, go grab media from the library, etc. Grab a Blu-Ray from the discount bin at the store once in a while, and your collection will grow.
by oofbey | 2026-01-06 14:47:34+00:00
They have a strange business model. Their chips are massive. So they necessarily only sell them to large customers. Also because of the way they’re built (entire wafer is a single chip) no two chips will be the same. Normally imperfections in the manufacturing result in some parts of the wafer being rejected and other binned as fast or slow chips. If you use the whole wafer you get what you get. So it’s necessarily a strange platform to work with - every device is slightly different.
by ericmay | 2026-01-06 14:48:05+00:00
I am not following this rationale at all. Because you're not Japanese or American, Americans are uncivilized for using a weapon that caused lots of Japanese people to die after Japanese people attacked the United States (and Australia, China, the Philippines, and more) and wouldn't stop?

> Either the calculations were the justification

The person I responded to was trying to suggest the number of American lives saved was a lot fewer than estimates. Instead of saving 1,000,000 Americans it "only" saved 50,000 or something and because of that, the calculus to use the bomb wasn't as "good" as it otherwise would be if it had saved more lives.

I say if it saved a single American life it was worth it, and was righteous, thus the shifting around of how many American lives saved is pointless because we know the lower bound is 1, and 1 was all you needed.
by mattgodbolt | 2026-01-06 14:48:10+00:00
From the readme:

The B+tree implementation provides significant performance improvements over industry standards for large trees. For some workloads with large trees, we've observed:

- vs Abseil B+tree: 2-5× faster across insert/find/erase operations
- vs std::map: 2-5× faster across insert/find/erase operations
by treetalker | 2026-01-06 14:48:11+00:00
See US's Treaty of the Danish West Indies:

> During 1916, the two sides agreed to a sale price of $25,000,000, and the United States accepted a Danish demand for a declaration stating that they would "not object to the Danish Government extending their political and economic interests to the whole of Greenland".

https://en.wikipedia.org/wiki/Treaty_of_the_Danish_West_Indi...

I'm reminded of the Budapest Memorandum (Russia's promise not to invade the Ukraine if the Ukraine gave up its nuclear weapons): https://en.wikipedia.org/wiki/Budapest_Memorandum.
by bitshiftfaced | 2026-01-06 14:48:16+00:00
While Polymarket does offer holding rewards interest, it looks like it doesn't for this particular market.

That doesn't mean there aren't other explanations. It could mean that No holders expect to incur an opportunity cost greater than the risk free rate. Combine that with how there's low liquidity (there's less than $300 on the book buying Yes, and at 2 cents or less), and so we could just be seeing the effect of random fish temporarily distorting the price. It could also mean that the risk of a smart contract failing is making it not worth the hassle for a market maker to come in at such a slim margin and low volume.
by conductr | 2026-01-06 14:48:25+00:00
Most people here are pro capitalism. It has flaws but you’re also being blind to its benefits.

If 20 people need homes to live in and can’t afford to build them, suddenly landlords/investors have a place because they built housing inventory where others couldn’t. They won’t do that for free though and why should they.

I remember your username from prior threads, you’re a troll man. Take this crap to Reddit.
by shafyy | 2026-01-06 14:48:30+00:00
Why not taking two seconds to look it up before making such a false statement? From Wikipedia:

> Citizens of Greenland are full citizens of Denmark and of the European Union. Greenland is one of the Overseas Countries and Territories of the European Union and is part of the Council of Europe.

https://en.wikipedia.org/wiki/Greenland
by runjake | 2026-01-06 14:48:39+00:00
Context: Along with the never ending pressure to migrate a project to new shiny, there is a lot of momentum against C and other memory-unsafe languages.

The US government recently called on everyone to stop using them and move to memory-safe languages.

Regardless, there are practices and tools that significantly help produce safe C code and I feel like more effort should be spent teaching C programmer s those.
by coldtea | 2026-01-06 14:48:48+00:00
>It's quite funny that we see the CEO of a publicly traded company has worse than a sole-proprietor, when profits will go directly to a sole proprietor- but not to a shareholder CEO.

Speaking in the same mindset as the parent, we're fine with the profits going directly to a sole proprietor.

In fact, what we want is a name attached to the profits, and a not a role.

We're not anti-profits.

We're anti bland corporate leadership, with no reputational risk and no personal ties to the company (and often no financial risks either, see golden parachutes) - one whose only mission is to maximize profits, product and customers and legacy be damned.
by heybales | 2026-01-06 14:48:57+00:00
For terminal text editing I've switched everything over to helix, highly recommended. Basically no config other than I'll change the theme.

Unfortunately I'm still trying to figure out my AI workflow. Right now it's a mix of Cursor, Claude Code, and JetBrains Rider. I mainly use Cursor for the heavy AI lifting and then switch to Rider and Claude Code for tweaking and debugging. If Cursor didn't completely suck at .NET debug, I might just be able to use it alone.
by eloisius | 2026-01-06 14:49:31+00:00
Can you say anything about where you were five years ago? Or how your ability to write and ship code from 2015 to 2020 changed? It’s hard to believe all these 50x AI productivity claims, especially without an idea of what that multiplier applies to and what the right side of the equation even means. Is it lines written, dollar amounts of impact, pull requests merged?
by bell-cot | 2026-01-06 14:49:51+00:00
> ...that doesn't seem too bad.

Yep, "seem". But the reality is more like 3 different subscriptions going up by $5/month, and the new computer is a once-in-4-years purchase:

$5/month * 3 subscriptions * 48 months = $720.00

And no bets on those subscriptions being up to $20 or so by the end of year 4.
by Ajedi32 | 2026-01-06 14:50:33+00:00
As of May posting AI generated porn of unconsenting adults is a federal crime[1], so I'd be very surprised if they didn't ban users for that as well. The article conflates a bunch of different issues which makes it difficult to understand exactly what is and is not being talked about in each individual paragraph.

[1]: https://www.congress.gov/bill/119th-congress/senate-bill/146
by Ragnarork | 2026-01-06 14:50:50+00:00
> Is it easy to write a nice C interface for C++ that makes heavy use of templates, smart pointers, and move semantics?

If the interface itself has or leaks those features, no that's not easy indeed. But if those do not leak, then they can be used internally yes.

My point was not that it's easy to wrap a currently existing C++ library that has modern features in its interface in a C interface, especially post-C++11.

But that if you design something from the ground up, then it's rather easy (with a certain set of constraints). My bad for not conveying that better.
by hu3 | 2026-01-06 14:51:06+00:00
Thanks for sharing your methodology. And ignore the rude people that it might attract please.

I might start using a second LLM to review the diffs. Something like Gemini 3 Fast. Sounds good.

But I don't want to give up on a fancy IDE to use browser tabs.

So I think I will ask the second LLM to review the `git diff`.
by tolitius | 2026-01-06 14:51:22+00:00
The “Dad” Problem

My kids are navigating the ways of middle/high school: one is deep in ionic bonding in Chemistry, another one is grappling with graphing sine waves in Pre-Calculus.

I can explain these concepts to them with words, or I can scribble on a napkin (which I love doing), but some concepts just need to move. They need to be visualized. I could write a Python program or a D3.js visualization for every single problem, but that takes too long, even when done directly with “the big 4“.

I needed a way to say: “Show me a covalent bond in H₂O” and have the visualization write itself, test itself, run itself, and show me that interactive covalent bond moving step by step.

Great fit for a “Skill” I thought and built Salvador that can do this.

more details here: https://www.dotkam.com/2026/01/06/mad-skills-to-learn-the-un...
by dzonga | 2026-01-06 14:52:00+00:00
> That's why they're so fucking horny to have chatbots shit out software at superhuman speeds. That's why they think it's good that they've got a chatbot that "produces a thousand times more code than a human programmer."

Then when you think with some certain people saying yeah use A.I to write your code .... we will become forever renters. if you can't write code by hand & have to depend on A.I what happens when the providers raise prices ? same thing with cloud computing ?

a certain crowd - SF people - VCs etc want people to be technoserfs
by bena | 2026-01-06 14:52:11+00:00
There's a matrix, with each cell being weighted differently.

Do free work.
Do good work.
Be liked by your superiors.

And sadly "good work" is weighted the lowest. And if you are liked enough by your superiors, that's often enough.

And you are actively disliked by your superiors, it does not matter how much work you do or how good it is. You will plateau.
by okanat | 2026-01-06 14:52:18+00:00
My company maintains a medium set of Rust programs deployed on embedded Linux systems. Most of the time the migration is automatically done for you by Cargo itself with the command `cargo fix --edition`.

I don't know where you got this impression but our switches from 2018 to 2021 and now 2024 editions went very smootly. Rust hasn't broken backwards compatibility in any bigger way since 1.0.
by the_biot | 2026-01-06 14:52:36+00:00
You're right about federation having failed in those instances, or at least failed to take over the world as was expected.

But Forgejo is a git + associated services application first and foremost. It's clearly on the up, and this federation is no more than a planned feature that may or may not catch on. You make it sound like Forgejo will fail because of it, but it's just an add-on.
by lotsofpulp | 2026-01-06 14:52:38+00:00
“Rent” needs to better defined at this point.

At least some portion of utilities and tax charges pay for ongoing maintenance and investment to provide expected quality of life. Similar to how rent for a home eventually pays for a new roof or other repairs.

The profit margin component of rent is probably what most are referring to in this discussion, but presumably tax and (government owned) utilities don’t have that.
by Supernaut | 2026-01-06 14:52:38+00:00
Well, those are common talking points in some quarters, but I can tell you they're false, because I live in a southside suburb, the kind of place that journalists describe as "leafy". For the last couple of years, a large immigration centre has been operating a kilometer and a half away from my house. (You haven't heard of it because there were no protests about it.) There's a halting site located a kilometer away from me in the other direction.

Is the system perfect? No, of course not. But the Us vs Them polemics are unfair.
by evanjrowley | 2026-01-06 14:52:52+00:00
Congratulations on pushing the envelope on open source EEG tech!

Also, for more context:

Transcranial alternating current stimulation (tACS) is a unique form of non-invasive brain stimulation.

Reference: https://pmc.ncbi.nlm.nih.gov/articles/PMC7867505/
by nyrikki | 2026-01-06 14:53:12+00:00
Be very careful with that assumption.

The distros try, but one complex problem with a project that holds strong opinions and you may not have a fix.

The gnome keyring secrets being available to any process running under your UID, unless that process ops into a proxy as an example.

Looking at how every browser and busybox is exempted from apparmor is another.

It is not uncommon to punt the responsibility to users.
by neoCrimeLabs | 2026-01-06 14:53:13+00:00
You start with the assumption of "properly set up container". Also I believe you are oversimplifying the attack surface.

A container escape can be caused by combinations of breakdowns in several layers:

- Kernel implementation - aka, a bug. It's rare, but it happens

- Kernel compile time options selected - This has become more rare, but it can happen

- Host OS misconfiguration - Can be a contributing factor to enabling escapes

- Container runtime vulnerability - A vulnerability in the runtime itself

- Container runtime misconfiguration - Was the runtime configured properly?

- Individual container runtime misconfiguration - Was the individual container configured to run securely?

- Individual Container build - what's in the container, and can be leveraged to attack the host

- Running container attack surface - What's the running container's attack surface

The last two are included to be complete, but in the case of the original article running untrusted python code makes them irrelevant in this circumstance.

My point you must consider the system as a whole to consider its overall attack surface and risk of compromise. There is a lot more that can go wrong to enable a container escape than you implied.

There are some people who are knowledgeable enough to ensure their containers are hardened at every level of the attack surface. Even then, how many are diligent enough to ensure that attention to detail every time? how many automate their configurations?

Most default configurations are not hardened as a compromise to enable usability. Most people who build containers do not consider hardening every possible attack surface. Many don't even know the basics. Most companies don't do a good job hardening their shared container environments - often as a compromise to be "faster".

So yeah, a properly set up container is hard to escape.

Not all containers are set up properly - I'd argue most are not.
Ask HN: What do you think of PluriSnake, a new kind of snake puzzle game? [beta]
by amichail | 2026-01-06 14:53:34+00:00
PluriSnake is a snake-based color matching daily puzzle game.

Color matching is used in two ways: (1) matching circles creates snakes, and (2) matching a snake’s color with the squares beneath it destroys them.

Snakes, but not individual circles, can be moved by snaking to squares of matching color, as long as their paths are not blocked by other snakes.

The goal is to score as highly as you can. Destroying all the squares is not required for your score to count.

Of course, there is more to it than that as you will see.

Try it out:

https://testflight.apple.com/join/mJXdJavG

Any feedback would be appreciated. Have fun!
by treetalker | 2026-01-06 14:53:54+00:00
US–Denmark Treaty of the Danish West Indies:

> During 1916, the two sides agreed to a sale price of $25,000,000, and the United States accepted a Danish demand for a declaration stating that they would "not object to the Danish Government extending their political and economic interests to the whole of Greenland".

https://en.wikipedia.org/wiki/Treaty_of_the_Danish_West_Indi...
by kube-system | 2026-01-06 14:54:14+00:00
I'm not sure where you are located, but that is not the case in the majority of the US. In most of the US they are overwhelmingly 2-stroke.

Just checked a couple local hardware store websites too to make sure I wasn't crazy... there aren't any 4-strokes leaf blowers available in-store, they're all 2-stroke.
by dtagames | 2026-01-06 14:54:24+00:00
In fact, nondeterminism goes all the way down to the training level where every token and weight starts as a random number, a concept I wrote about in this intro to how AI works article [0].

The reason for this is that randomness is crucial to getting emergent data out of a system. Those are unexpected, unpredictable, but often useful results. This is how an LLM can answer a question it's never been asked before.

We have had deterministic databases forever so there would be no AI advance if LLMs were just databases. The AI models of the 1960's tried that very approach, called rules based and it doesn't work. We can never come up with or write down all the rules. The failure of those methods lead to the "AI winter" and no further real progress in AI until the invention of transformers at Google.

[0] https://levelup.gitconnected.com/something-from-nothing-d755...