MurphyA/hacker-news huggingface dataset:
Show HN: Browser-only 64-color Wplace image quantizer (no server, free)
by howardV | 2025-08-20 13:56:01+00:00
Hi HN,

I play a lot of *[Wplace](https://wplace.live)*, the pixel-art world map that limits every drawing to the official 64-colour palette (32 free, 32 paid). Re-colouring images by hand was painful, so I built a *client-side tool* that:

* takes any PNG/JPG * maps each pixel to the nearest of the 64 official colours * lets you *toggle paid colours off* → no wasted droplets * adds optional Floyd–Steinberg dithering * shows live pixel / colour stats for cost estimation * exports a ready-to-place PNG or copies it to the clipboard (all computation in the browser, nothing uploaded)

*Link* <https://wplacecolorconverter.online>

*Tech notes*

* TypeScript + Vite + React + Tailwind * Pixel work happens in a Web Worker on an `OffscreenCanvas` * Quantisation is ~300 LOC (RGB Euclidean distance; optional error diffusion) * No back-end, so it runs offline and keeps images local

I’d love feedback on:

* performance for big images (>512 px) * better distance metrics (ΔE?) or a faster lookup table * whether a WebGPU / wasm port is worth it * other pixel-art communities that might need custom palettes

Thanks for reading!
by thecupisblue | 2025-08-20 13:56:13+00:00
I read the overview, and it is blindly obvious that the issue is cache invalidation and someone overengineered it.

This is not a spectacular problem. This is a "building a web service 101 problem", which was solved about the time CGI scripts came out.

Also why would anyone involve background jobs? You can do high-performance templating real-time, especially on 2025 hardware.
by theFco | 2025-08-20 13:56:14+00:00
As I understand it, Intel's strength was in manufacturing their own design in their exclusive (and most advanced) process. So the advantage was being vertically integrated. State of the art processes are too expensive these days. x86 CPUs alone cannot sustain them. Specially, when AMD builds their CPU also with state of the art processes. So by becoming a foundry, Intel may be able to have state of the art fabs and use it in their own designs of x86 CPUs, GPUs, etc.
by bundie | 2025-08-20 13:56:39+00:00
Statement from the developer:

Distribution of Enhancer stopped for Firefox on AMO, GG Mozilla! Once again, YouTube has introduced new UI changes that break the extension, and after much consideration, I’ve made the difficult decision to stop distributing new versions for Firefox.

Why? The system in place has not allowed me to work at the pace required to keep the extension running smoothly. Not only the developer experience has become awful, but the slow and unpredictable review process for each new version kills all my efforts to fix bugs quickly. So, as long as nothing changes on AMO, there won't be any new version for Firefox...

But, for those of you who are not yet affected by the new UI changes on YouTube, and those of you who never had any issue with the latest version of Enhancer, here is a link to it if you need to reinstall it on Firefox: enhancer_for_youtube-2.0.130.1.xpi For security reasons, I highly recommend you to never install another package! This one has been signed by Mozilla and is 100% secure.

My extension is only for Chrome and Edge now. If you are using Firefox, Brave, Opera, or anything else, do not contact me to report issues as I don't provide support for those browsers...
by i7l | 2025-08-20 13:56:54+00:00
https://archive.ph/mtRJi

> In economies that have been built around the prospect of steady population growth, the concern is over future slumps in innovation and productivity, as well as having too few working-age citizens to support a growing number of older people.

Innovation depends much more on education and social mobility than it does on population size.

The world already has 8 billion people. That's six billion more than just a hundred years ago! In 25 years we'll have almost 10 billion. Even with declining birth rates we're not running out people any time soon, save for a global calamity. What is more, any system built on the premise of unbounded growth of any kind seems pretty flimsy to me.

The article states that toxins affecting sperm counts negatively are one factor, but mostly it's down to people making a conscious choice to have fewer children. So, any "solution" to declining birth rates is going to have a distinctly Gileadean feel to it.

Praise be.
Ask HN: Make Flagging Activity Public?
by Guid_NewGuid | 2025-08-20 13:56:54+00:00
In light of this story[0] about cuts to mRNA vaccine funding in favor of live virus vaccine being flagged to death within mere minutes of posting I'm wondering if there would be support for flagging activity being made public?

It is my understanding that the HN code-base is pretty much write-only so it's probably a tall ask but I think it would help confidence in the site at this... turbulent time globally, if people could do their own investigation of which accounts are jumping on stories to kill them.

This would be useful irrespective of your political slant, e.g. on issues like Israel-Palestine.

For the example story there are a few possibilities:

- people are sick of 'political' stories and flag them out of tedium

- there is a prevailing pro-Trump, anti-science majority of active users on the site

- there are active influence campaigns using sock-puppet accounts to hide and prevent discussion of ongoing attacks on science

The most likely answer is all-of-the-above. But why should such anti-speech activity as flagging be private? This may already be possible via the API so I'd be interested to learn that if so.

[0]: https://news.ycombinator.com/item?id=44961584
by alecco | 2025-08-20 13:57:15+00:00
I stand corrected.

To be honest, I completely lost the sense of scale with money in general. It all feels like Zimbabwe dollars to me. The news talking billions and trillions. Meanwhile friends who used to be well-off (in US/UK/EU) struggle with mortgage payments and/or bills. And the ones not laid off are expected to grind 10hs per day to keep their jobs.

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

https://www.theguardian.com/wellness/ng-interactive/2025/may...
by lmeyerov | 2025-08-20 13:57:24+00:00
Exactly. We often end up doing 'direct' retrieval (ex: DB query gen) to skip the time suck , costs , and insecurity of vector RAG, and per user indexing for the same. Agentic reasoning loops means this can be better quality and faster anyways.

Sometimes hard to avoid though, like our firehose analyzers :(
by djrj477dhsnv | 2025-08-20 13:57:58+00:00
What exactly is a "data platform"?

We have a large postgres server running on a dedicated server that handles millions of users, billions of record updates and inserts per day, and when I want to run an analysis I just open up psql. I wrote some dashboards and alerting in python that took a few hours to spin up. If we ever ran into load issues, we'd just set up some basic replication. It's all very simple and can easily scale further.
by joshwaller7 | 2025-08-20 13:57:59+00:00
Hi HN,

Every day, about 10,000 people announce that they're open to work online.

I built a saas that listens for these 'Open to work' posts on LinkedIn, and matches the poster's profile (work history, qualifications, skills, location, etc.) against job descriptions, in real time.

So it's like: "here's someone who exactly matches your job requirements, and they've JUST announced that they want a job".

It's quite simple and hands off because you literally just need to copy and paste in your job descriptions and wait for matches to come in.

There's a 30-day free trial with no card required if anyone would be happy to test it out and let me know what you think.

It's been in development for about 5-6 months, so it's very new and I'm really looking for people to test it out and give me feedback :)

Thanks! Josh
by mooreds | 2025-08-20 13:58:01+00:00
> Tryharding with regards to the HN frontpage is more likely to come at a cost of writing quality, and thus reducing the likelihood of making the front page.

Agreed. I'm always surprised by what hits on the front page.

I think the most important thing is to write something that is interesting and true for you.

Being on the front page of HN is like a TED talk--an effect, not a cause.
Show HN: Upload financial data, get fast financial due diligence insights
by mstroube | 2025-08-20 13:58:16+00:00
I'm Matt, a financial analyst who got tired of waiting weeks for Quality of Earnings reports as a part of financial due diligence.

The problem hits anyone evaluating acquisitions, investments, or partnerships: - QoE reports cost $20k-$40k and take 2+ weeks, even for smaller deals - Fees aren't recoverable when deals fall through - Delays kill momentum – many red flags could be spotted immediately - You're stuck doing manual Excel cleanup while waiting for basic insights

So I built Provafi – an AI-powered tool that gives you the core financial insights in minutes, not weeks:

- Instant data cleanup – Upload messy financial statements, get structured analysis - Automated red flag detection – Spot revenue anomalies, margin trends, cash flow issues - Secure & private – Your sensitive data stays encrypted, never used to train public AI models - Fast go/no-go decisions – Decide whether to commission a full QoE or walk away early

Early traction: currently being used by SearchFunder members on active deals.

Why not just use ChatGPT? Most M&A data is too sensitive for ChatGPT and other public LLMs, and these models need proper data structuring and context to provide valuable AI insights.

Current limitations: still working on automating management adjustments (add-backs, etc.) and other "full-scope" capabilities.

Try it free at https://provafi.com (use beta code HNFREE)

What would make this more valuable for you? - Features for non-finance users to understand the analysis? - Specific red flags or metrics you wish were automated?
by lnxg33k1 | 2025-08-20 13:58:32+00:00
Doesn't seem flexible, seems mostly non-alterable, probably easily extendable is a thing, but I've been mostly productive with stuff that would allow me to don't duplicate existing behaviours but hook into them, that's flexibility imho, if I want to change some of the behaviour of an existing handler I have to reimplement it completely, then it's not flexible, the classes also seem quite giant, making me thing even more it's not really flexible/extendable
by throw10920 | 2025-08-20 13:58:39+00:00
Of course - emotionally undermining valid criticism isn't just evil, it's also clearly against the HN guidelines and the purpose of HN, so even beyond it being wrong and manipulative, it just does not belong here.

> Don't be curmudgeonly. Thoughtful criticism is fine, but please don't be rigidly or generically negative.

> Please don't fulminate. Please don't sneer, including at the rest of the community.

> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

All of these apply to both value-less critical comments (which I'm not defending), and to undermining valuable critical comments - therefore, "wow why is everyone so negative" posts are literally directly against the guidelines and have no place here.
by immibis | 2025-08-20 13:59:20+00:00
The head of the pipeline is at least several clock cycles ahead of the tail, by definition. At the time the branch instruction reaches the part of the CPU where it decides whether to branch or not, the next several instructions have already been fetched, decoded and partially executed, and that's thrown away on a mispredicted branch.

There may not be a large delay when executing from TCM with a short pipeline, but it's still there. It can be so small that it doesn't justify the expense of a branch predictor. Many microcontrollers are optimized for power consumption, which means simplicity. I expect microcontroller-class chips to largely run in-order with short pipelines and low-ish clock speeds, although there are exceptions. Older generations of microcontrollers (PIC/AVR) weren't even pipelined at all.
by Izkata | 2025-08-20 13:59:30+00:00
> Many of us in the US are tired of fighting with people that vote against their own interests time and again.

Most people aren't voting against their interests, they're voting for the least-bad option based on whichever issues are most important to them. Often that means they have to vote against what they want on one issue, to vote for something they want on a different issue they care more about. There is no way to vote for every issue someone might want, so there will always be to make this complaint no matter what the outcome is.
by close04 | 2025-08-20 13:59:34+00:00
Isn't handwriting just the activity of writing by hand as opposed to typing a keyboard? Whether it's cursive or block/print, as long as it's written by hand it still has benefits. Many studies link handwriting to better brain connectivity and learning compared to typing.

The act of writing is the one that brings the benefits, not the looks of the result. I don't see a drawback to learning to write by hand even if nobody will ever read it or if it doesn't look good.
by gus_massa | 2025-08-20 13:59:41+00:00
From a few old post by Paul Graham, he used to run Hacker News in the REPL of Arc in the REPL of Racket. So it was posible to make tweaks on the moment, like changing the title to "Innocuous News" as a joke for a few hours. Also, he once changed the parent of one comment and created a cycle in the DAG and that cashed the site for a while. I can't find the article now.

Anyway, a few years ago dang changed the backend to SBCL that is more REPL friendly, so I guess this comment is showed using the REPL of Arc in the REPL of SBCL.
by skhameneh | 2025-08-20 14:00:16+00:00
I can, I don't have a specific example I've used to give you in this moment. And trying to share an exact example would read like a double negative.

The general rule of thumb is only put what you want in context. If you put instructions of what not to do in context, those tokens can be misunderstood and create unintended/unwanted steering of the model.

A fair example would be testing for positive sentiment. Consider weight of tokens appended to context, phrase instructions or questions to be neutral or positive.

e.g. Some phrases and their impact:

- "Is the tone of the user message positive?" will be biased for a false positive.

- "Analyze the tone of the user message?" will be more neutral and less biased.

- "Is the tone of the message negative?" will be biased for false positives when evaluating for negative tone.
by ajd555 | 2025-08-20 14:00:24+00:00
This is such great news, and these are very notable speedups (decoding and filtering)! I'm looking to host our own tiles, and this would not only reduce file size but also improve performance on our maps (https://dash.hudsonshipping.co could use a speedup in loading the tiles, though we are ever grateful to OpenFreeMap). Will keep an eye out for MapLibre news regarding the JS release of this.
by hardwaresofton | 2025-08-20 14:00:43+00:00
Thanks! Yeah CPP reference is what I tend to find on the internet, but quite surprised there isn't something a bit more "modern" that combines all these.

Searching also revealed some good university guides, the standards, ETC -- just very surprising that people doing day to day work with C are fine with that tooling-wise, though of course people have jump-to-definition so maybe reading header files is "good enough".
by bluefirebrand | 2025-08-20 14:00:59+00:00
It's kinda not though

Pseudo Anonymity is sort of a key feature of IRC that I think acts like a strong filter for people

People who are jerks will use anonymity to be jerks whereas when they are forced to tie an account to their identity they might pretend to be not jerks

People who are kind when anonymous are likely just good people at their core
Show HN: I was curious about spherical helix, ended up making this visualization
by damarberlari | 2025-08-20 14:02:47+00:00
I was wondering how I can arrange objects along a spherical helix path, and read some articles on it.

I ended up learning about parametric equations again, and make this visualization to document what I learned:

https://visualrambling.space/moving-objects-in-3d/

feel free to visit and let me know what you think!
by noodletheworld | 2025-08-20 14:03:10+00:00
Are you talking about the same thing as the OP?

I mean, the parent even pointed out that it works for vibe coding and stuff you don't care about; ...but the 'You can't' refers to this question by the OP:

> I really need to approve every single edit and keep an eye on it at ALL TIMES, otherwise it goes haywire very very fast! How are people using auto-edits and these kind of higher-level abstraction?

No one I've spoken to is just sitting back writing tickets while agents do all the work. If it was that easy to be that successful, everyone would be doing it. Everyone would be talking about it.

To be absolutely clear, I'm not saying that you can't use agents to modify existing code. You can. I do; lots of people do. ...but that's using it like you see in all the demos and videos; at a code level, in an editor, while editing and working on the code yourself.

I'm specifically addressing the OPs question:

Can you use unsupervised agents, where you don't interact at a 'code' level, only at a high level abstraction level?

...and, I don't think you can. I don't believe anyone is doing this. I don't believe I've seen any real stories of people doing this successfully.
by immibis | 2025-08-20 14:03:32+00:00
Or a browser automation server (Marionette/CDP). I seem to remember watching a presentation where it was mentioned you could detect them this way, 
but I don't remember where or what it was called.
 this one: https://www.youtube.com/watch?v=4nZD6ee2Xo8 (WHY2025: Stealth Web Scraping Techniques for OSINT)
by lioeters | 2025-08-20 14:03:37+00:00
> our brand new certificate revocation system known as CRLite.

> CRLite makes your browsing faster, more private, and more secure, and is a significant advancement to the state of the art for encryption on the internet.

> ..CRLite represents a multiyear effort to deliver this vision with a comprehensive system that operates entirely on-device.
by paulkrush | 2025-08-20 14:03:51+00:00
Core claim: “Geissler tubes as a computer ancestor” I was really surprised at this and had to verify it “: Fair: Geissler’s 1857 gas-discharge tubes popularized controlled glow discharges and directly led to Crookes tubes, cathode rays, and gas-discharge lighting. Earlier glow experiments existed (Hauksbee, Faraday), but Geissler standardized the form that kicked off the tech tree. https://en.wikipedia.org/wiki/Geissler_tube” It is odd that Heinrich Geissler does not have a bigger place in history. I guess he was just a “toy” builder… Also interesting: Most keyword searches treat ß ≈ ss, so “Geißler” and “Geissler” have the same search results.
by LarMachinarum | 2025-08-20 14:03:51+00:00
I wouldn't count on either to save Intel as it still is (i.e with the fab business still attached to the CPU/GPU business). While it's true that having Intel fabs as a second source would be nice for them to alleviate the dependency on TSMC, they are also competing with Intel on the CPU/GPU side.

My guess is, they're gonna let Intel rot a little further while doing their best to pressure for Intel to split off their fab biz (as AMD had done back then), and then invest just in the fab.
by josephg | 2025-08-20 14:04:04+00:00
The thing that can make real world text CRDT implementations complex is that the optimisations kinda bleed into all the rest of your code. The 2 big optimisations you want for most text CRDTs - including egwalker - are:

- Using a b-tree instead of an array to store data

- Use internal run-length encoding. Humans usually type in runs of characters. So store runs of operations instead of individual operations. (Eg {insert "abc", pos 0} instead of [{insert "a", pos 0}, {insert "b" pos 1}, {insert "c" pos 2}]).

But these two ideas also affect one another. Its not enough to just use a b-tree. You need a b-tree which also stores runs. And you also need to be able to insert in the middle of a run. And so on. You need some custom collections.

If you do run-length encoding properly, all iteration throughout your code needs to make use of the compressed runs. If any part of the code works character-by-character, it'll become a bottleneck. Oh and did I mention that it works even better if you use columnar encoding, and break the data up into a bunch of small arrays? Yeahhhh.

So thats why diamond types - my optimized egwalker implementation - is tens of thousands of lines of code instead of a few hundred. (Though in my defence, it also includes custom binary serialization, testing, wasm bindings, and so on.)

Rust makes the implementation way easier to implement thanks to traits. I have simple traits for data that can be losslessly compressed into runs[1]. A whole bunch of code takes advantage of that, by providing tooling that can work with a wide variety of actual data. For example, I have a custom vec wrapper that automatically compresses items when you call push(). I have a "zip" iterator which glues together other iterators over run-length encoded data. And so on. Its great.

Though now that I think about it, maybe all that trait foo is what makes it headache inducing. I swear its worth it.

[1] Eg MergableSpan: https://github.com/josephg/diamond-types/blob/00f722d6ebdc9f...
by schiffern | 2025-08-20 14:04:12+00:00
If you dropped me off in vacuo (eg in deep space), I wouldn't meet the definition of "alive" either. But the fact that my life require a specific environment doesn't phase us or challenge our definition of life at all.

Not only do I need certain physical conditions (temperature, pressure, molecular gas composition, etc), but I also need to eat, so actually me being "alive" is dependent on specific biological conditions too. My Minimum Viable Environment actually includes other organisms, yet this doesn't challenge the fact that I'm defined as alive.

Certain parasites can only live or reproduce within another organism. This is even more extreme, but it still doesn't challenge our definition of them as being "alive."

This new organism requires a specific "environment," and that "environment" happens to be inside another organism. So what? We're totally un-phased by this requirement when it occurs in other examples.

Perhaps it's better to think of this not as a spectrum between alive and non-living, but as a hierarchy of how constrained (vs unconstrained) is the "environment" required to support life processes.
by panglesd | 2025-08-20 14:04:20+00:00
Very cool!

Does it replace identical expressions in the same scope? Like:

let tau = 3.14 +. 3.14

becomes

let pi = 3.14 let tau = pi +. pi

?

EDIT: Or even crazier with function:

let _ = (x + 1) + (y + 1)

becomes

let plus_one a = a + 1 let _ = (plus_one x) + (plus_one y)

(I ask this just out of curiosity. Even the "simpler" version is very impressive!)
by LAsteNERD | 2025-08-20 14:04:25+00:00
Chaos theory gave us the butterfly effect: tiny changes that balloon into massive consequences (Lorenz’s weather simulations, or Bradbury’s time-travel butterfly). But Los Alamos researchers just showed that quantum systems don’t always play by those rules.

Using theory, simulations, and IBM’s quantum processors, physicists explored whether small quantum-level disruptions would spiral out of control over time. The result? At the quantum scale, entanglement actually heals damage. A particle “sent back in time” and deliberately altered can return to the present nearly unchanged.

In other words:

Lorenz-style chaos does exist at the quantum level (slight variations can diverge wildly). But there’s also a quantum anti-butterfly effect: in sufficiently entangled systems, information “damaged” in the past can be restored in the present. This has direct implications for quantum computing (a new way to measure “how quantum” a computer really is) and potential applications in information security and error correction. As lead scientist Bin Yan put it: “At the quantum scale, reality is self-healing.”