MurphyA/hacker-news huggingface dataset:
by xscott | 2025-07-23 09:44:39+00:00
> If we’re not going to get direct access to the DOM, can we at least get the ability to just list the JS functions that our wasm will call?

You mean like a list of JS functions that are imported into the Wasm binary? This has been there since day one:

(module ... (import "env" "foo" (func (;0;) (type 1))) (import "env" "bar" (func (;1;) (type 2))) ... )

> Everyone having to write all their own glue[*] is just nuts at this point.

Did you mean for the specific programming language you use? If so then that seems like a problem for the language implementor, not a problem with Wasm. Rust has wasm bindgen, Emscripten has their thing, and so on.
by 3cats-in-a-coat | 2025-07-23 09:44:54+00:00
Well, we disagree on our asshole classification. To me a true experienced asshole notices when another asshole is about to swindle them. There is some inexplicable tendency for swindlers to get swindled, but that's probably more at the periphery. Not sure if those qualify as assholes. I'll have to think about it.
by wongarsu | 2025-07-23 09:45:06+00:00
Does it?

It gives good reasons why we can't have specific parts. Having the JavaScript Standard library in WebAssembly would be hard (was anyone actually asking for that?), and some of the modern APIs using promises or iterators wouldn't have a clear mapping. Also not everything could be zero-copy for every language

But the article doesn't do a very good job explaining why we can't have some dom access, at least for the 90% of DOM APIs not using JavaScript-specific features.

Most of the argument boils down to "you shouldn't want direct DOM access, because doing that would be work for these people, and we can instead have those other people do lots of work making the JavaScript bridge less painful. And anyways it's not clear if having these people make proper APIs would actually result in faster code than having those people do a separate sophisticated toolchain for each language"

It reads very much like a people and resource allocation problem rather than a technical challenge
by vidarh | 2025-07-23 09:45:11+00:00
I see the war in Ukraine as more of a war for people that has gone badly wrong. Russia (the same applies to Ukraine) has birth rates far below replacement, and faces total demographic collapse if they can't reverse it.

Russia also won't need more farmland. Russia has far more land. Especially as climate change if anything is likely to open up regions further north where farming has not been practical - in that respect, Russia is better placed that most other countries (including Ukraine) to see off the worst effects of climate change -, but also because their crashing population will reduce their agricultural demand.

Doesn't mean Putin doesn't also want the land and resources, but if taking over Ukraine were to shore up Russia's population and buy them decades to solve the demographic problem, I think that would be far more economically valuable to him.

See e.g. also the large-scale abduction of children from the occupied areas, that while a classic way to try to destroy an enemy is also a move that "makes sense" (though of course reprehensible) to someone who is worried about the very perpetuation of his people.

Of course, then he failed to get the quick win, and the potential win is literally bleeding away on the battlefield, to the point where there's every reason to question whether Russia will survive the after-effects of this as a country 20-30 years down the line.
by EnnEmmEss | 2025-07-23 09:46:58+00:00
The problem is twofold:

- all generated console scripts hardcode the path to python during creation for the shebang

- some of the binaries generated by install processes can link to absolute paths in the venv

Conda does quite a bit of work under the hood to reduce disk space and ran into related issues described here: https://docs.conda.io/projects/conda/en/stable/dev-guide/dee...
by JumpCrisscross | 2025-07-23 09:47:08+00:00
> tariff collections have soared to the point that the budgeted spending is no longer in the red

"The federal government ran a monthly surplus of $26 billion in June. However, this was because government payments typically due June 1 shifted into May this year as June 1 fell on a weekend. Accounting for this timing shift, the government ran a monthly deficit of $71 billion" [1].

Tariffs have brought in like $55bn in extra revenue to date [2]. One would expect that to decrease as trade deals are negotiated and consumers shift behaviour.

[1] https://bipartisanpolicy.org/report/deficit-tracker/

[2] https://www.politico.com/interactives/2025/trump-tariff-inco...
by vidarh | 2025-07-23 09:47:25+00:00
Indeed, I looked up OECD numbers, and the indicate primary crop outputs are on average expected to grow by 1.4% each year, outpacing population growth.

A lot of what is causing concerns over famines etc., though, is that we're seeing dramatic variability that drives cost that is likely to see a lot of people priced out of access in bad years even as overall food production goes from height to height.
by panabee | 2025-07-23 09:47:50+00:00
100% agreed. I also advise you not to read many cancer papers, particularly ones investigating viruses and cancer. You would be horrified.

(To clarify: this is not the fault of scientists. This is a byproduct of a severely broken system with the wrong incentives, which encourages publication of papers and not discovery of truth. Hug cancer researchers. They have accomplished an incredible amount while being handcuffed and tasked with decoding the most complex operating system ever designed.)
by pheres | 2025-07-23 09:49:11+00:00
No matter what you are using, they are always there, editable/hackable.

However I would argue that it makes it slightly harder to make any change. You no longer have a single class with all the styles that are affecting that element.

You can change the classes in the harder to read html, or override the single element. There is no longer the possibility to, for example, affect all .primary-btns.
by jrflowers | 2025-07-23 09:49:13+00:00
>[x] no

Then it is not a “very serious suggestion”. It is a thought experiment which should be taken with commensurate weight.

>Wrong

Explain what “skip a day of meat do a year of LLMs” is then. If it’s not just an ad for feeling good about using LLMs, what is it?

>The 100,000 number was a throwaway hypothetical to make a point

>Two lines later he threw in a 2,000x too.

Alright he said that meat is 2,000 times worse than language models as well as 100,000 times worse than language models. He might have meant 100k but could also mean 2k.

Do you have a real problem in real life where if somebody called you and said “it’s gotten two thousand times worse” versus “it’s gotten a hundred thousand times worse?” the former would be fine and the latter alarming?

If yes, what is the problem? Why was it a problem at 1x? 2000x? 100,000x? Why was it a problem at at 1x and 100,000x but not 2000x?
by rasadov | 2025-07-23 09:49:19+00:00
Good point! You're absolutely right that many basic SMTP providers (Gmail, Outlook, etc.) restrict bulk newsletter sending to large number of emails.

Fertit is designed to work with newsletter-appropriate SMTP services like SendGrid, Mailgun, Amazon SES, Postmark, and Mailjet - providers that explicitly support bulk email sending. These typically cost $10-50/month depending on volume, which is still much cheaper than the $79+ full-service ESPs charge. The value prop is: instead of paying ConvertKit $79/month for 1000 subscribers, you pay SendGrid ~$15/month for SMTP + Fertit $9.99/month = ~$25/month total, while still getting proper unsubscribe handling, preference management, and basic compliance features.

You're right that it requires users to handle the SMTP setup themselves - it's positioned for people who want more control and cost savings but don't need the full white-glove deliverability management of premium ESPs.

Thanks for pointing this out - I should make the SMTP requirements clearer in the marketing!
by Dylan16807 | 2025-07-23 09:50:10+00:00
A compromised relay server can't access the data because it's encrypted.

A meaningful vulnerability would have to be in either the software itself or in the coordination server. That attack surface is the same whether or not you have relays.

You can reduce the attack surface to just the software if there's a way for users to verify keys manually. But again, same attack surface whether or not you have relays.
by serhack_ | 2025-07-23 09:50:18+00:00
For anyone wondering what this "new" tax is: https://www.agenziaentrate.gov.it/portale/dichiarazione-impo...

> The digital services tax (Digital Service Tax) is applied at a rate of 3% on revenues deriving from the provision of services on a digital interface for targeted advertising to users of that interface, for the provision of a multilateral digital interface that allows users to connect and interact with each other, also for the purpose of facilitating the direct supply of goods or services for the transmission of data collected from users and generated by the use of a digital interface.

> In practice, taxation applies to digital advertising on websites and social networks, access to digital platforms, fees received by the operators of such platforms, and also the transmission of data “collected” from users. Revenue is taxable if the user of the digital service is located within the territory of the State. For online advertising services, the user is considered to be located in the territory of the State if the advertisement appears on their device when it is used in the territory of the State. The location of the device in Italian territory is determined on the basis of its IP address.

> Businesses that generate revenue in Italy from the above-mentioned digital services and that, during the calendar year preceding the one in which the tax liability arises, generate a total revenue of not less than €750 million anywhere in the world, either individually or as a group, are subject to the digital tax.

It seems for me a fair tax for corporations that take advantages of data collected to provide a service that someone pays (advertisements).
by kpcyrd | 2025-07-23 09:50:26+00:00
oss-rebuild is for independent verification, which cache.nixos.org doesn't have yet. I'm still waiting for https://github.com/nix-community/trustix to become a thing.

Until then they are still behind Debian and Arch Linux, which do in fact implement this with rebuilderd and debrebuild/archlinux-repro.
by Pandaadir | 2025-07-23 09:51:13+00:00
A couple of days ago, I set out to understand how compilers work by building one myself in C. It implements a full 3-phase pipeline (lexing → parsing → code generation) and emits valid C code.

It handles variables, arithmetic, comments, strings, number formats, and compiles most programs in ~1ms.

Arena allocation ensures zero memory leaks. Interactive mode and benchmarking tools are built-in.

Would love feedback or suggestions — especially around codegen strategies.
by inemesitaffia | 2025-07-23 09:51:18+00:00
My critique starts from the labels themselves. The labels force a colocation in the minds of people about the people it's used to describe in a gender asymmetrical way.

Your description/definition doesn't match mine and I've given the reason above. and men indeed

I've also mentioned that men don't live in the history you keep bringing up.

I'm also not the sort to say and men like you did. Men as an afterthought. Never independently thought about but always in relation to some other entity. I always consider it a yellow flag unless the audience is politicians or "not men".

Men as men are whole without roles.

>man as nurturer and protector, for example, or stoicism, dependability, and responsibility

I'm supporting men regardless of the presence of these especially because others are supported without regard for virtue.

You warned earlier about things people can't say. I'm here saying them. (I believe PG has an essay)

In a world where someone in power can say this

“My snarky reaction always to that is: I never heard anyone talking about the desperate need for gender balance when women were so underrepresented,” Bigham said. “Really, it’s just when boys seem to be falling behind and suddenly it’s a thing. This whole argument that we need gender balance – there’s really very little to back it up.” without censure;

I feel compelled to speak out.

Below is stuff I'm repeating to answer your edit

"Antisocial behavior and the ideas that lead to it can be treated without using language that diminishes ones sex/gender or its expression." - me

"Language in its plain form shapes us. That's why I won't take any slander of men or masculinity as ideas while there's cultural bars to doing that to others."- me
by chrisldgk | 2025-07-23 09:52:33+00:00
Turns out „artificial general intelligence“ just means AI can sometimes be exactly as stupid as any other human to the point where it will delete a production DB like any other junior developer if you give it permissions it shouldn’t have.

Welcome to the future you didn’t want, but deserved.

I won’t go on a rant about giving AI any permissions and trusting it blindly here, I’ll just say that I think the typical AI bulletin point list where it perfectly recounted how it fucked up made me fall out of my chair from laughter.
by lucideer | 2025-07-23 09:52:55+00:00
I don't think I want WebAssembly to have DOM support.

Would it be nice? Yes. But.

Every added feature is a trade-off between need -vs- outlay, overhead, complexity & other drawbacks. In order to justify the latter things, that "need" must be significant enough. I'd like to have DOM, but I don't feel the need is significant.

Some thoughts on use-cases:

1. "Inactive" or "in-instance" DOM APIs for string parsing, document creation, in-memory node manipulation, serialisation: this is all possible today in WASM with libraries. Having it native might be cool but it's not going to be a significantly different experience. The benefits are marginal here.

2. "Live / active" or "in-main-thread" direct access APIs to manipulate rendered web documents from a WASM instance - this is where the implementation details get extremely complex & the security surface area starts to really widen. While the use-cases here might be a bit more magical than in (1), the trade-offs are much more severe. Even outside of security, the prospect of WASM code "accidently" triggering paints, or slow / blocking main thread code hooked on DOMMutation events is a potential nightmare. Trade-offs definitely not worth it here.

Besides, if you really want to achieve (2), writing an abstraction to link main-thread DOM APIs to WASM postMessage calls isn't a big lift & serves every reasonable use-case I can think of.
by JumpCrisscross | 2025-07-23 09:53:10+00:00
> Tariffs are taxes that locals pay on stuff imported from abroad

Importers pay the tariff. But where the tax burden falls is more complicated.

Short answer is that right now, we don't have strong evidence for where the burden is falling. Given how volatile tariffs have been, and the variety of leverage positions of American importers across industries, it will probably be years before we can suss out a signal from the data.
by mejutoco | 2025-07-23 09:53:17+00:00
Thank you for the rational well-argumented answer.

> I'm suggesting that just because you have a UI component, it doesn't mean you should be sending 30 tailwind classes for this button across the wire (in a server-rendered approach), and DaisyUI is 1 mechanism to achieve this with approximately 1 component CSS class.

Aesthetically/ideologically I like that efficiency, but I have to wonder: if we measured that wire with gzip and a lot of redundancy (all the classes) if I would be able to measure any difference in the size or in the cpu decompressing it? Still I like the idea of making it efficient by default.
by flohofwoe | 2025-07-23 09:53:57+00:00
NSString is UTF-16 internally: https://developer.apple.com/documentation/foundation/nsstrin...

...it's trivial to get UTF-8 strings into and out of an NSString though so the internal representation doesn't matter all that much.

More importantly, all of the actual user-facing side of macOS is UTF-8 (e.g. you can simply copy-paste an UTF-8 encoded UNICODE string literal into a C source file, printf() it and it will show up correctly on the terminal without tinkering with text editor or locale settings).
by eadmund | 2025-07-23 09:55:19+00:00
> if orgmode is so good, has it not been implemented outside of emacs

Org Mode is that good, but part of its goodness is due to being in Emacs.

Emacs is not really an editor: it’s an easily user-extensible operating environment with a remarkably shallow learning curve (seriously: one can go years just setting variables before moving up to simple functions and then starting to explore). Having all that power so easily accessible is a part of what makes Org Mode great. It’s what means that each Org Mode user can mold his experience to his needs.
by fleaaa | 2025-07-23 09:55:24+00:00
Glove80 is a decent ready-made product but it's simply too big. From my experience, sofle/silakka/lily58 with tenting solution worked better since they have smaller thumb cluster and surface but still takes advantage of same structure.

The ones I listed are well open sourced and modularized, you can print out parts as you go - trackpad, trackball, tilting pad, joystick whatever you want.
by MaulingMonkey | 2025-07-23 09:55:30+00:00
Externally visible issue where external parties (producers, co-developers, artists, designers, ...) need communication about fixes and timelines? Put it in the issue tracker so people can subscribe, elaborate on repro steps, share links so QA can learn how to verify it's broken / fixed, etc.

Something that needs to be fixed in your local changes before committing, lest something break terribly? Put it in code in such a way that your CI system will reject integration. That can be a // TODO or // DO_NOT_COMMIT comment that can be recognized and rejected by your git pre-commit hooks. Perforce lets you stage and describe changelists before committing them, and you can make hooks that will reject TODOs in those descriptions as well. In a pinch, #ifdefs to check for CI and a static_assert(false, ...); might be another option. One of my more common uses of this pattern is when extending or refactoring a platform abstraction layer - it tends to be easier to get it working on one platform first, and forgetting to test it on a second platform can be very easy. Switching contexts to an external issue tracker for things that nobody but yourself will ever read isn't adding value - keeping it in code where you can build safeguards that will literally prevent you from doing the wrong thing by accident will.

Internal refactoring or performance improvement suggestions? Those often go in the non-blocking non-tracker // TODO bucket for me. They can safely rot away unnoticed for 10 years without causing problems as issue trackers come and go, then suddenly become relevant as new needs cause new development, and as new development causes old problems to become new again. Producers aren't going to have useful input on if the refactoring or performance suggestions are relevant - the developer poking around the existing code isn't doing what they need it to do anymore will.
by constantcrying | 2025-07-23 09:55:43+00:00
>They understand the importance of software, but they do not understand software

But they know that. That was the idea behind Cariad. Having a new company, unburdened by what other parts of the company are doing, which is doing just software. Giving them the freedom to do things a different way has always been the intention.

What you are describing is not an automotive problem, it is a Europe wide problem. Software Engineers in Europe, in general, are pretty bad, often cling to outdated methodologies and tend to create overly complex and overly useless systems. There are hundreds of examples for this, throughout European industries and governments. "German engineering" has not translated into software at all.

Consider also the salaries of European Software Engineers, even in the most wealthy countries, like France and Germany, it averages around 50k to 60k, it is not the highly lucrative career it is (was?) in the US.
by Dylan16807 | 2025-07-23 09:57:18+00:00
> Explain what “skip a day of meat do a year of LLMs” is then. If it’s not just an ad for feeling good about using LLMs, what is it?

You can stop being part of the problem if you do it. The problem still exists, but you are no longer part of it. You reduced it by more than your fair share. While the problem would stop existing if everyone made the same choice, there's no pretense that that's actually going to happen. LLM companies are not being excused by such an unlikely hypothetical.

j-lb also made an argument to not care much about LLMs at all, but it was separate from the "skip a day of meat" argument. That's where the big multiplier comes in. But again, separate argument.

I don't want to argue about the example ratio he used. The real ratio is very big if the numbers cited earlier are correct. So if you're going to sit here and say 2000x might as well be arbitrarily large then I think you just joined the "LLM resource use doesn't matter" team, because going by the above citation 2000x is in the ballpark of the correct number, so LLM use is 1 divided by arbitrarily large, making it negligible. Congrats.
by jiggawatts | 2025-07-23 09:58:04+00:00
I think this is more of a criticism of bash than of Gemini.

Also, I out-of-hand reject any criticism of an AI that specifies only the brand ("ChatGPT") and not the specific model version, settings, etc...

So, for example, Gemini 2.5 Pro (Jan 2025) with temperature 0.15 prompted with: "Write a short, idiomatic bash script that takes a file containing a list of directory names, changes to each one, runs a command, and then returns to the original working directory."

Spits out this:

#!/bin/bash # A script to run a command in a list of directories. # Exit if the wrong number of arguments are provided. if [[ $# -lt 2 ]]; then echo "Usage: $0 <file_with_dirs> <command> [args...]" >&2 exit 1 fi DIR_FILE="$1" shift # The rest of the arguments ("$@") are now the command. # Ensure the directory list file exists and is readable. if [[ ! -r "$DIR_FILE" ]]; then echo "Error: Cannot read file '$DIR_FILE'" >&2 exit 1 fi # Read the file line by line. while IFS= read -r dir; do # Skip empty lines or non-existent directories. if [[ -n "$dir" && -d "$dir" ]]; then echo "==> Entering '$dir'..." # Run command in a subshell to keep the 'cd' local. # '&&' ensures the command only runs if 'cd' succeeds. (cd "$dir" && "$@") echo "<== Finished with '$dir'." else echo "--> Skipping invalid directory: '$dir'" >&2 fi done < "$DIR_FILE" echo "All done."

That worked for me, but I was testing it in WSL 2 where I got a gibberish error... which was because I edited the file in Windows Notepad and the line endings were confusing bash. Gemini helpfully told me how to fix that too!

Something that I found amusing, and again, is a criticism of bash instead of the AI, is that this fails to process the last line if it isn't terminated with a \n character.

PS: This is almost a one-liner in PowerShell, and works with or without the final terminator character:

Push-Location Get-Content dirs.txt | cd -PassThru | Foreach-Object { echo "Hello from: $pwd" } Pop-Location

Gemini also helped me code-golf this down to:

pushd;gc dirs.txt|%{cd $_;"Hello from: $pwd"};popd
by adornKey | 2025-07-23 09:58:20+00:00
On the other hand especially the technical community is very quick with censoring anything new about climate-modelling. There has been a lot going on in the last 5 years, but knowledge about any of that is very low. Even Institutes like NOAA still promote models based on very old approximation formulas (Myhre et al 1998 - logarithmic approximation of radiative forcing).

Anything newer - proper line by line calculations that get rid of the approximations and take a serious look at the absorption spectrum - is nowadays essentially a taboo...