MurphyA/hacker-news huggingface dataset:
by coltonv | 2025-07-22 16:51:00+00:00
> If Tailwind is so bad and has literally no upsides then how on earth it managed to take the frontend world like a storm? In authors eyes frontend developers have to be either stupid, or ignorant, or both if they decided to choose such a bad solution en masse.

Please read the entire article before commenting. I have an entire section on this. I don't think frontend devs are idiots and never said they were. Tailwind offers global constants configuration out of the box, which is the most important problem people are looking to solve, which is why I think such a flawed library has so much success.

> To me (and probably many others) using Tailwind is all about speed and reducing file hopping. If I ever need to adjust style of anything it's always trivial - just locate the component and adjust the classes. Writing new code is so much faster because I don't need to think about what classname to invent for every single html element I would like to style, I don't need to create separate definitions, files etc. for them. For my particular workflow it's a huge win.

Part of my point is that this already exists with inline styles. In react for example you can set up some plain JS constants and import them to do inline styles. And you get the benefits of type checking and other JS features. That's not a perfect solution either, and it's not one I'd endorse past hobby projects, but my point is that Tailwind just takes an existing pattern and makes it worse.

> This is just plain wrong. You can install Tailwind autocomplete, checks or eslint rules in literally any editor/IDE of your choice and you will never have an issue of misspelling the classes. Most solutions will even autocomplete your custom classes defined in your Tailwind config.

These are okay but trip over themselves and cause issues if you have any plain CSS class usage, which is necessary in certain situations in my experience.
by seabass | 2025-07-22 16:51:03+00:00
When it comes to getting a deeper understanding of words you already know, two of my favorite resources are Etymonline [1] and the 1913 edition of Webster’s dictionary [2]. And if you’re curious why 1913 specifically, this post [3] gives a great overview.

[1] https://www.etymonline.com/

[2] https://www.websters1913.com/

[3] https://jsomers.net/blog/dictionary
by qingcharles | 2025-07-22 16:51:17+00:00
I just vibecoded 2 silly projects over the weekend to test this for the first time (prior all my AI coding is at the function level, which has been enormously beneficial).

First app was to scrape some data using a browser. It did an excellent job here, went down one wrong path that it obsessed over (it was a good idea in theory and should have worked) and in the end produced a fully-working tool that exceeded my requirements and the UI looked way more polished than I would have bothered with for a tool I wrote for me only.

Second app is a DHT crawler. It has gone down so many dead ends with this thing. The docs for the torrent tools don't match the code, I guess, so it gets horribly confused (so do GPT, Grok, Claude, Gemini). Still not working 100% and I've wasted way more time than it probably would have taken to learn the protocols and write it from scratch.

The main issue is -- I have no idea what the code looks like or really how it works. When I write code I almost always have a complete mental map of the entire codebase and where all the functions are in which files. I literally know none of that. I've tried opening the code on the DHT app and it is mentally exhausted. I nope out and just go back to the agent window and try poking it instead, which is a huge time waster.

So, mixed feelings on this. The scraper app saved me a bunch of time, but it was mostly a straightforward project. The DHT app was more complicated and it broke the system in a bunch of ways.

Try again in 6 months?
by CivBase | 2025-07-22 16:51:26+00:00
> But the `// TODO:` doesn’t need to be a plan to actually do something. Instead, it’s a note about “here’s an edge case that wasn’t handled” or a suggestion for a better structure that the author didn’t make time to implement — it captures a little slice of the author’s brain and gives a little window into the rich context they had at the time they wrote the code.

Sounds to me like this should just be a regular comment. Don't add "TODO" if you're not actually going TO DO it.
by giantrobot | 2025-07-22 16:51:32+00:00
> I think the real question is whether they can have taste. Can they really tell good ideas from bad ones beyond obvious superficial issues?

Someone not musically talented but appreciates music could generate a hundred songs with an AI, pick ten good ones, and have an album that could sell well. The AI is a tool, the user is the only one that really needs taste.
by hermitcrab | 2025-07-22 16:51:45+00:00
It is so easy to destroy infrastructure and expertise that has taken decades to build. All so Trump and his buddies can get even bigger tax breaks. It is enough to make you cry.

BTW 'Barbarian' get a bad rap. They were in many ways more civilized than the Romans. But the Romans were really good at killing people and got to write the history.
by ldoughty | 2025-07-22 16:52:08+00:00
This is a long read, so to summarize:

A woman developed what we call schizophrenia. She hid it reasonably well, but eventually was hospitalized for it.

Later they found cancer. While treating the cancer, her schizophrenia "magically" disappeared. Seemingly for good.

The article points that this isn't a unique case, and that schizophrenia, as a "hopeless disease," doesn't get enough attention... And there's no real sub classification to determine what lead to a set of symptoms (which is the only current diagnostic criteria).

So the speculation is that autoimmune treatments might cure or help some forms of schizophrenia.

Read the full article if this story sounds interesting!
by 827a | 2025-07-22 16:52:12+00:00
My complaint with tailwind is that it doesn't do a good job of working well with components. E.g. if I have a component that wants to set a default background color for a button, but makes it customizable, I might think to do something like this?

export function MyButton({ className }) { return <button className={clsx("bg-red-500", className)} /> } <MyButton className="bg-green-500" />

But that doesn't really work, because ultimately we've just provided both the bg-red-500 and bg-green-500 classes, and we're leaving it up to the precedence rules in the browser CSS engine (which I'm sure are consistent, but that feels like a no thanks from me)

So instead I end up doing something like:

export function MyButton({ bg = "bg-red-500" }) { return <button className={bg} /> } <MyButton className="bg-green-500" />

But that also feels unsatisfying, because while that prop is named 'bg' you could literally provide any tailwind class you want through it; there's no way to constrain it to only allow tailwind classes which are functionally interchangeable with bg-red-500.

Anyone else run into this and have a nicer solution?
by impossiblefork | 2025-07-22 16:52:17+00:00
>This is enough under international law to prevent Israel from passing any aid, as it works to assist its enemy's forces.

No. Article 54 of the additional protocol I (https://ihl-databases.icrc.org/en/ihl-treaties/api-1977/arti...) only allows destruction of objects etc. necessary for the sustenance of the civilian population if they are solely used for the members of the armed forces.

So even if Hamas stole the vast majority of the aid, as long as there is starvation, destroying it is forbidden.
by braiamp | 2025-07-22 16:52:27+00:00
"In 2011, the United States stopped funding Unesco because of what was then a forgotten, 15-year-old amendment mandating a complete cutoff of American financing to any United Nations agency that accepts Palestine as a full member. Various efforts by President Barack Obama to overturn the legal restriction narrowly failed in Congress, and the United States lost its vote at the organization after two years of nonpayment, in 2013."

https://web.archive.org/web/20220503183152/https://www.nytim...
by bxparks | 2025-07-22 16:52:29+00:00
Nice! The 'の' (237 matches) is even better than 'は' (216 matches). The 'の' matches every Japanese spam in my Spam folder.

I was not able to use comma 、 and the period 。 because I think FastMail disables searches on common punctuations, so those matched nothing.

(In case people are wondering, I sometimes scan through my Spam folder to check for false positives, i.e. things which were incorrectly marked as spam. It's difficult to do that when it is flooded with Japanese spam.)
by wwweston | 2025-07-22 16:52:53+00:00
This is a novel take that I think genuinely adds something to tired tailwind discourse:

> I think the most important factor in Tailwind's success is that it does one thing very correctly: it demands the developer who installs it set up a config file that lays out all codebase-wide style constants: colors, margin sizes, fonts, border radii, etc. Writing individual styles that do not use a pre-configured constant from the config file is clunky in Tailwind. This is a good thing, an unironic win for Tailwind. More than anything else, this is what a large codebase with multiple frontend devs needs: a rigid set of global constants that everyone is strongly incentivized to use.

I’m still considering its merits, but it at least goes beyond the “How I learned to stop worrying and embrace tailwind’s standardized soup” vs “I can’t stand this, it goes against every organizing principle I’ve found useful” familiar dichotomy.
by jarjoura | 2025-07-22 16:53:01+00:00
Yes, Tailwind's CSS reminds me of the same unoptimized HTML tag soup that editors of the 2000s era web used to spit out. Tailwind is created by designers for designers. It's perfect for how designers think about layout and works well for them in a world with strict design specs.

Unfortunately, it's also incredibly bespoke and since it's found in most recent well designed templates, engineers must also learn how to work with it. Something 5 years ago that would have died from its own complexity weighing it down for the new shiney, is now kept alive by the ease at which AI can keep it going.
by hirako2000 | 2025-07-22 16:53:10+00:00
Because some rich supremacists happen to support Israel, and they happen to be a large number of financial contributors to Ivy league universities.

For politics at large, there is a very powerful lobby.

A great talk from Mearsheimer on the subject https://youtu.be/RTksWA1I2UI The man deserves upmost respect to have courageously spoken and written about it, all along. On a more recent video he mentions the level of threats and attacks he has been subject to for his exposing of that lobby.
by chuckadams | 2025-07-22 16:53:25+00:00
Special cases in layout are a thing, happens a lot once you start nesting third-party widgets. So yes, there may be enough of a use-case for overriding px-3 that it wouldn't make sense to specifically omit it as a utility class -- to say nothing of it being useful as a utility class to begin with.

I only sprinkle in the very occasional tailwind class via UnoCSS. I don't have the fire in me to dig trenches for either side of this battle that some people want to make all this into.
by aipatselarom | 2025-07-22 16:53:30+00:00
Absolutely.

So, it was smart and young German students that wanted to get rid of most or all of the material produced by one of the earliest institutions on the planet dealing with controversial topics like birth control, LGBT, fetishism, sadomasochism and venereal disease.

The founder and most of the researchers there were Jewish, so I wouldn't discard an antisemitic motive behind that as well.

As you say, I always bought the "dumb nazis burned books" story, but this context makes me think about the event in a much different way.
by hombre_fatal | 2025-07-22 16:53:39+00:00
Since Tailwind looks obviously bad on first pass with all the class spam, I'm more curious to see someone steelman Tailwind.

I have some ideas, like how the dead code elimination + granular but consistent classes lets you build novel components that are still consistent with your UI which might be essential for making a 3rd party component library work.

I've been using Bootstrap since it came out 15 years ago but it never developed a 3rd party component library. I assume because it doesn't have the same sort granular building blocks for building novel components.

Then again there are also component libraries like https://ui.mantine.dev/ that don't use Tailwind.

I sadly never really looked into these modern options since when I want to build something, the last thing I want to do is dick around with a whole new UI solution vs Bootstrap muscle memory.
by wat10000 | 2025-07-22 16:53:41+00:00
Of course. And it's also a (deliberate, widely accepted) misunderstanding of basic economics. If you pay more you'll be able to hire more. Immigrants such as the one I'm replying to aren't typically hired because there are literally zero available locals with the skills. They're hired because they're cheaper, putting a ceiling on wages. Sometimes that ceiling can be quite high, but it's still there. "You can only bring someone into the country if you can't hire locally" is a polite fiction.
by toomuchtodo | 2025-07-22 16:53:42+00:00
Road maintenance. It's already not taxed enough to pay for existing roads. Auto fuel/mileage taxes will need to go up to continue to pay for roads in the future.

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

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

(road damage is roughly proportional to the fourth power (not square root) of axle weight (and linear with axle count), so it's heavy trucks doing most of the damage to road surfaces through a compression wave that penetrates into the asphalt surface, as axles travel over)

https://hackaday.com/2025/06/26/field-guide-to-the-north-ame...
by mauvehaus | 2025-07-22 16:53:46+00:00
Yes, but for racing bikes, which are the target market for wireless shifting in 2025, the efficiency losses of an internal hub are a non-starter.

The casuals whose bikes haven't seen a wrench since they were assembled aren't buying wireless groupsets. For them: we're in agreement about belts and internally geared hubs.

Automatic shifting has yet to prove itself to be more than a curiosity. A 20-something year old Autobike came into the shop I was wrenching in. It still worked shockingly well for being covered in rust. In good shape it would be an entirely adequate solution, if only it solved a problem anyone had.

My money is on e-bikes entirely supplanting any demand there may have ever been for automatic shifting on a bicycle. The motors have enough oomph that they make a lot of shifts unnecessary if you're not looking to maximize speed/battery life/whatever.
by j7ake | 2025-07-22 16:53:56+00:00
Compression is fine for consuming information. But people need to be both consuming and generating knowledge in order to understand concepts beyond summary points.

Generating knowledge is an exercise in compression. It is helpful to deliver insights to readers. Consuming knowledge is important to keep your pulse in your field. Only consuming leads can create an illusion of understanding but no real usable knowledge that can provide value to the community.

The issue is that we live in an information glut and one can now live a life spending all their time consuming, but never creating for themselves.
by lapcat | 2025-07-22 16:54:09+00:00
I don't think the article author is claiming that we should have no compression, that all compression is bad. But compression culture can reach absurd levels, for example in the opening sentence of the article where the author receives requests to summarize a novel. The whole point of a novel is to be experienced. Nobody has time to deeply learn everything, but that shouldn't become an excuse to be lazy and refuse to deeply learn anything, just because it's possible to ask anything of ChatGPT.
by dismalaf | 2025-07-22 16:54:25+00:00
> The ministry of health has published id numbers of the dead, which means you can do stats and tell if the data is fake. On top of that, so far (afaik since 2009 when hamas came to power) nobody has caught them in a lie. So they’ve a track record of telling the truth, and give us data that we can smell-test for fraud and it passes.

If you comment that they give us this data, surely you have a link to said data?
by player1234 | 2025-07-22 16:54:33+00:00
Is it miraculous? We have spent hundreds of billions, trillions on reading the whole internet(training we call it) and with breakthroughs in statistics we can guess the next probable word and it makes sense to a pretty high degree. I think it works pretty much as you would expect does it not? With all that data read and all that money spent?

The impressive thing with the tech is that we(the humans) thought of it and through better hardware actually where able to do it. Super f-ing cool but in the end pretty pointless imo.
by bigyabai | 2025-07-22 16:54:40+00:00
You chose to use fascist technology. If you're scared by the potential for your state to exercise the same power your OEM has, then stop buying from that OEM. Regulate shitty security models, demand transparency for opaque systems. Switch to honest and open alternatives that trust you with freedom and power.

Or, reap your fascist just deserts. Why the hell should I waste my time calling Apple a fascist if I haven't daily-driven one of their devices in a decade? You want us to protest, standing arm-in-arm with you against Apple? You wanted this, you told yourself Apple was a secure business.

The only person who insists on using technology that coddles it's user is you.
by christianqchung | 2025-07-22 16:54:48+00:00
The thread is full of people debating what AI means and whether ML/optimization algorithms count as AI. Laypeople don't think of machine learning when they see AI, they think of chatbots. I would argue even for a techy magazine this is a bad term to use without spending two sentences to clarify the distinction.

Examples of people being confused:

rlt: The discovering itself doesn’t seem like the interesting part. If the discovery wasn’t in the training data then it’s a sign AI can produce novel scientific research / experiments.

wizzwizz4 in reply: It's not that kind of AI. We know that these algorithms can produce novel solutions. See https://arxiv.org/abs/2312.04258, specifically "Urania".

About a quarter of the comments here I just have to assume what definition of AI they're talking about, which changes the meaning and context significantly.
by trevor-e | 2025-07-22 16:55:11+00:00
I agree with others that this is not how Tailwind is meant to be used. For example, the approach shadcn (https://ui.shadcn.com/) takes is much better IMO.

Creating helpers like `btn` makes it very difficult to understand how it works and is not very customizable. Shadcn creates an actual component for you in your codebase and is just trivial Tailwind styles to modify.
by 2b3a51 | 2025-07-22 16:55:25+00:00
Monetisation: how about a periodical publication? Edited and curated around a theme and then contributors can write to an appropriate length. Spin-off courses and perhaps even individual sessions where a general theme is applied to a specific situation?

https://www.idler.co.uk/

These people seem to be doing OK with that format for er, a different market segment.
Ask HN: Mentor for Transition from Software Engineer to Sales Engineer
by pedrodelfino | 2025-07-22 16:55:35+00:00
Hi HN,

I'm a software engineer aiming to transition into a sales engineer (solutions/pre-sales) role. I’m drawn to the mix of technical problem-solving and customer interaction.

I'm looking for a mentor who has made this switch or works in sales engineering. Any tips on positioning myself, key skills, or resources would be appreciated.

Happy to chat via email: p.delfino01 [at] gmail [dot] com

Thanks!
by bramhaag | 2025-07-22 16:55:45+00:00
I wish Firefox wasn't so insecure.

On Android, although a built-in isolatedProcess API [1] is available for them to use, there is no sandboxing. No sandboxing on the web in 2025 (!!!). This has been an issue for so many years, yet Mozilla refuses to address it [2]. Chromium does do proper sandboxing on Android, and additionally restricts what syscalls a process can access. Other alternatives, such as Vanadium have even stronger sandbox implementations [3]

On desktop, it's a similar story. Site isolation has had numerous bad issues that haven't been fixed for many years [4][5][6], and especially the Linux builds have had bad sandbox escape vulnerabilities that Chromium is not susceptible to. This is mostly due to architectural differences, like [7] and [8].

The idea of someone being able to take over your computer by just visiting a site is scary. It's beyond me why Mozilla does not prioritise security over yet another sidequest that will slowly bankrupt them.

[1] https://developer.android.com/guide/topics/manifest/service-...

[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1565196

[3] https://grapheneos.org/usage#web-browsing

[4] https://bugzilla.mozilla.org/show_bug.cgi?id=1505832

[5] https://bugzilla.mozilla.org/show_bug.cgi?id=1484019

[6] https://bugzilla.mozilla.org/show_bug.cgi?id=1707955

[7] https://bugzilla.mozilla.org/show_bug.cgi?id=1653444

[8] https://bugzilla.mozilla.org/show_bug.cgi?id=1322426
by dragonwriter | 2025-07-22 16:55:48+00:00
They... don’t. The ICC sought warrants for both Israeli and Palestinian leaders (at least one of the Palestinian leaders was subsequently killed by Israel, rendering any charges moot, but the ICC wasn't ignoring the alleged crimes.)

Similarly, many countries have sanctioned both Hamas (and/or other groups like PIJ, etc.) and/or individual Palestinians for acts against Israeli civilians as well as Israel and/or Israeli politicians for acts against Palestinian civilians.
by KittenInABox | 2025-07-22 16:56:15+00:00
> If we want to counter manipulation and polarization, we need to focus on strengthening the structural integrity and resilience of our own belief systems. This means fostering internal coherence, building bridges between different templates, and cultivating narratives that are not just factually accurate, but also emotionally compelling and structurally robust.

I fear we are already increasingly too late on much of these things because there also exists communities that maintain structural integrity by resisting bridge building between different cultural templates. I.E. You must refuse bridge building in order to maintain your own community, such as wizard, blackpill, or MGTOW actively discouraging bonding with women as equal people to men.
Show HN: Create your color palettes in context, not isolation
by mazahermuraj | 2025-07-22 16:56:27+00:00
As a developer working with UI/UX teams, I’ve seen how much of a pain it still is to create accessible, well-balanced color palettes.

A colleague of mine (UI/UX designer) mentioned how frustrating it is to:

- Generate tints and shades from a brand color - Check WCAG accessibility contrast - Preview how those colors will actually look on buttons and components - Then jump between 2–3 tools just to get something usable

So I built a tool to help fix that.

1. Choose a base color 2. Generate automatic tints/shades 3. Get WCAG contrast ratings live (against black/white backgrounds) 4. See automatically suggested complementary colors 5. And drop your palette directly onto real UI components (buttons for now, more coming) to visualise how your palette actually looks in a design system.

You get to create your color palettes in context, not isolation

Here’s the tool (free, no signup required to get started): https://colorpal-sage.vercel.app/

I'd appreciate feedback from this community on: - Is the new UX clear or confusing? - Is the “component playground” something you’d actually use? - Anything that feels unnecessary or missing? - Anything else?

I am genuinely grateful for any insights from designers or developers working with colour systems.

Thanks in advance!