MurphyA/hacker-news huggingface dataset:
by dreamcompiler | 2025-12-07 19:23:44+00:00
The only one I found that was truly battery-powered was the Makita [0]. The $99 Cuisinart I found seems to be a standard electric kettle. Lots of kettles describe themselves as cordless but that does not mean battery-powered; it just means the kettle itself can be removed from a corded base.

I also found a ton of AI-generated link spam pages purporting to be about battery-powered kettles that are all clearly not battery-powered (e.g. [1]). Some of these are 12v powered, but they still contain no batteries. Apparently the adjective cordless confuses AI just like it does people.

Side note: Boiling water takes a lot of energy. You need a big battery; not just a couple of AAs. Any truly battery-powered kettle is going to require a battery at least as big as one for a contractor-grade power tool, and that battery is going to deplete after roughly one boiled pot.

[0] https://www.acmetools.com/makita-40v-max-xgt-hot-water-kettl...

[1] https://activegearreviews.com/best-battery-powered-kettles/
by velcrovan | 2025-12-07 19:24:42+00:00
For any given reality, someone will benefit.

I too despise the existence of a profit motive in public health, the sane (not perfect) alternative is to nationalize medicine, not to ban it because the profit motive makes it suspect.

I'd like to bring to your attention that many people on the internet have made claims which were later retracted, thus your comment is unreliable.
by tpoacher | 2025-12-07 19:24:48+00:00
Fair enough.

I haven't followed closely; but the few times I did, it seemed that he had reasonably nuanced opinions translating into upholdable values, rather than overzealous cancel-fever, whether I agreed with his opinions or not. To me this is not reason enough to not use his product, and I happen to like his product (much more than the alternatives anyway).

Also, it would be remiss of me not to appreciate the irony that you're effectively suggesting "cancelling" his business over his opinions which you consider of a "cancelly" nature ...
by sivoais | 2025-12-07 19:24:58+00:00
It is possible to do so, but it stands out in a way such that most people aren't doing it using direct language features unless necessary. If you have `strict` and `warnings` enabled, which is recommended, then the interpreter can give runtime warnings or compile-time errors if you try to manipulate the symbol table or redefine a function. If you still want to use those on a case-by-case basis, you have to turn off those pragmas within a scope. So there are built-in ways the language discourages using them arbitrarily.

In tests, you can use monkeypatching as a quick way to mock, but typically, you use modules that wrap up the functionality and make it cleaner. The mocks get cleaned up on scope exit.

There are also more principled ways of having composable behavior, such as <https://metacpan.org/pod/Class::Method::Modifiers> (advice/method combination).

There is another approach that takes advantage of the variety of scoping approaches Perl has. If one uses `local`, it indicates the use of dynamic scope rather than the standard `my` lexical scope. This can be used for things like setting an environment variable temporarily and automatically reverting it when leaving the scope. But this is not common.
by dijit | 2025-12-07 19:26:12+00:00
The “severe” autism that I used to experience, at least the most severe that I experienced was non-verbal, sometimes with violent outbursts.

But of course there’s a whole range.

What concerns me though is that when I’m on the internet, people talk about autism like it’s a quirky character flaw that can be overridden with moderate effort.

Which feels criminally ignorant.
by jonathanlydall | 2025-12-07 19:26:30+00:00
It’s a friction point for potential customers, so we do it with our Electron based app,

The USD 99 annual fee is almost inconsequential, the painful part was getting a DUNS number (we’re a South African entity) and then getting it to work in a completely automated manner on our build server.

Fortunately, once set up it’s been almost no work since.
by GrantMoyer | 2025-12-07 19:26:39+00:00
> This metalanguage must have some kind of constructs to describe unknown things, or things that are deliberately simplified in favor of exposition.

Perhaps you're thinking of mathematics.

If you have to be able to represent arbitrary abstract logical constructs, I don't think you can formalized the whole language ahead of time. I think the best you can do is allow for ad-hoc formalization of notation while trying to keep any newly introduced notation reasonably consitent with previously introduced notation.
by Sophira | 2025-12-07 19:26:59+00:00
He was using text mode at the time in 2002. The term has something of a technical meaning that he was likely referencing. To be precise:

1. He was using a virtual console (ie. what you get when you press Ctrl-Alt-F1 and similar if using X), not an X terminal.

2. The virtual console was very likely not using a framebuffer (which would be a graphics mode), but was in fact just the Linux kernel's standard text mode output for virtual consoles, using the BIOS font.

Making a screenshot of such a text mode as a graphics file is actually not really something you can do. For the most part, the best you can do is to synthesize an equivalent image from scratch by rendering the text using another program.

That's likely what he meant when he said that he didn't know how to do a screenshot. Yes, it's overly specific, and the person who asked was probably just wanting to see what he was looking at on the monitor, which wouldnt require an exact pixel-for-pixel copy, but there you go.
by preisschild | 2025-12-07 19:27:16+00:00
> Not having root prevents me from taking proper backups that include app data

You can handle this better without root. GrapheneOS includes SeedVault per default for example.

> Have you ever had to work on a locked-down machine at an office?

Fortunately I'm the admin at work :)

> I don't need Google or Graphene to play IT department for me.

GrapheneOS is security+privacy first and "enabling root" compromises on this. Thats why its not recommended.
by toomuchtodo | 2025-12-07 19:28:11+00:00
It's a hard, and potentially inflammatory, conversation, about parents who likely shouldn't have been parents, and how Germany is going to handle migrant parents interested at parenting at level needed for their children to succeed.

> Ackermann said she wants to hold parents accountable as well. She decried what she said was the fact that a rising number of parents spend more time with their mobile phones than with their children.

> Tichys Einblick magazine reported today that columnist and former middle school teacher Josef Kraus wrote in response to the GEW letter: “There are parents who do not want to raise their children out of convenience or due to difficult circumstances.

> “They entrust the upbringing of their children to day care centres and schools. Or they simply do not care,” he wrote.

> “This is especially true for many parents with a migrant background who do not consider it important for their children to acquire a solid command of the German language.”
by swatcoder | 2025-12-07 19:28:23+00:00
> They all have ads on paid tiers now.

Yup, because people who pay for subscriptions are far more valuable ad targets than people who might be too poor or too disciplined to convert on the advertised products.

And the more you pay for a subscription, and the more others purchases they can correlate you making behind the scenes once they have a fingerprint for your identity, the more and more valuable your eyeballs become, and therefore the more challenging it becomes to resist selling your eyeballs on the ad market.

Even if a service you subscribe to isn't placing obvious ads in front of your face today and promising they never will, they're 100% strategizing ways to either make the ads less obvious or to sell your data upstream so that the ads you see elsewhere are more convincing. Better hope you like buying stuff!
by rendaw | 2025-12-07 19:28:39+00:00
> But with constraint-based systems, the layout might be literally under- or over-determined, in the sense that there might be more than one, or less than one, layouts that satisfy your rules.

This is under the "what's wrong" section but it doesn't actually say what's wrong.

Obviously if over-specified, the extra constraints can't be followed which wouldn't be intuitive (and... css does this constantly, so it doesn't seem relevant). But surely the system could just do one of them and alert the developer which constraints can't be followed?

And for under-specification, it could use 0. Nobody's going to write a specification and then publish a site without looking at it once.

And actually, can't under/over specified constraints be statically checked? Doesn't SolveSpace do this?
by bogrollben | 2025-12-07 19:28:58+00:00
I enjoyed the article. Many comments here on HN seem to be missing the point.

The author isn't bashing on "hobbies" and is not even bashing on "vanity activities". S/he is merely challenging us to acknowledge them for what they are. Stop kidding yourself.

If you churn credit cards (for example) and are one of the 10% that can make it truly profitable, then good for you. The other 90% are probably kidding themselves. Same for the other examples. The author is encouraging a self-sanity check. Are you in the 10% or the 90%, and wherever you land, are you okay with that? If not, you may want to reevaluate, pick something else, or make peace with it. It's better than kidding yourself.
by wrs | 2025-12-07 19:29:14+00:00
GCC can type-check printf (matching format string to arguments) because the compiler doesn’t just treat it like a function. But that requires special-case code in the C compiler itself that is basically opaque magic.

Rust doesn’t need that, it’s mostly Rust code in the standard library, with only a small bit of compiler magic triggered by the macro. (Println! isn’t the best example because it does have that small bit of magic; most macros are just plain Rust code.)

Here’s a very impressive set of macros that I use daily. [0] This lets you do “printf logging” on an embedded device, with the human readable strings automatically pulled out into a separate section of the ELF file so the actual log stream data is tiny.

I did a similar thing for C a while ago, as a pre- and post- build step. It worked, but much less well, and was a maintenance nightmare.

Edit: and yeah, I think you do need to know you’re calling a macro, because macros aren’t limited to “normal” syntax or semantics. The ! is a signal that you’re escaping the usual bounds of the language. Like this. [1]

[0] https://defmt.ferrous-systems.com/macros

[1] https://docs.embassy.dev/embassy-stm32/git/stm32f301k6/macro...
by froh | 2025-12-07 19:30:25+00:00
Is there some literate programming LSP server around, which under the hood tangles the code chunks for language specific child LSP servers, and proxies those? so you have LSP support in the litprog source?

it would probably also semi-weave the source into a standard, say, markdown or latex or asciidoc and proxy that LSP server on those woven files.
by Libidinalecon | 2025-12-07 19:30:55+00:00
California gold rush is practically the textbook example of a mania.

Gold, tulips, real estate, rail, witch hunts, satanic panic..

We shouldn't be worried because "this time it is different".

"AI" is none of those things. It is "totally different this time". "AI" is going to do all the work for us, we are all going to get UBI then at some point as it grows the "ASI" is going to either figure out how to grant us immortality or cause mass human genocide.

It is all completely rational this time.
by IshKebab | 2025-12-07 19:30:56+00:00
> how would you even know?

The obvious way is by searching the training data for close matches. LLMs need to do that and warn you about it. Of course the problem is they all trained on pirated books and then deleted them...

But either way it's kind of a "your problem" thing. You can't really just say "I invented this great tool and it sometimes lets me violate copyright without realising. You don't mind do you, copyright holders?"
by markbao | 2025-12-07 19:31:13+00:00
“Bad” seems extreme. The only way to pass the litmus test you’ve described is for a tool to be 100% perfect, so then the graph looks like 99.99% “bad tool” until it reaches 100% perfection.

It’s not that binary imo. It can still be extremely useful and save a ton of time if it does 90% of the work and you fix the last 10%. Hardly a bad tool.

It’s only a bad tool if you spent more time fixing the results than building it yourself, which sometimes used to be the case for LLMs but is happening less and less as they get more capable.
Show HN: Handler – A2A Protocol Client CLI and TUI
by alDuncanson | 2025-12-07 19:31:40+00:00
Hey HN, I'm building Handler!

My day job consists primarily of building and testing agentic systems, and I needed a tool that I could use to connect to, validate, and communicate with those systems.

The software is in beta right now, but I'd love any feedback from the community to gauge interest, usefulness, etc.
by pjmlp | 2025-12-07 19:31:43+00:00
Most companies that I know that allow employees to use Linux laptops, IT washes their hands of any kind of support.

While anyone with macOS or Windows laptops can open support tickets, the hardcore Linux users get invited to join internal forums to help themselves.

Thus naturally one needs to be really into it, especially when dealing with software that doesn't even exist.

So we get our IT supported systems and run GNU/Linux either on servers or VMs.

I sense only if there are changes imposed at governments level, would companies change their stance on this.
by polinux | 2025-12-07 19:32:05+00:00
I built this to avoid constantly SSH-ing into servers for routine tasks.

It's a single Go binary with embedded React frontend. Run commands locally or on remote servers via SSH, manage keys and servers through a web UI, store scripts with execution presets.

Quick start: ``` docker run -d -p 7777:7777 polinux/web-cli ```

Stack: Go, React/MUI, SQLite. Everything encrypted at rest (AES-256-GCM). Multi-arch Docker image (amd64/arm64).
by mystifyingpoi | 2025-12-07 19:32:06+00:00
> My understanding is that Java added a lot of functional programming

This is true, but needs more context. Java 8 added Stream API, which (at this time) was a fantastic breath of fresh air. However, the whole thing felt overengineered at many points, aka - it made complex things possible (collector chaining is admittedly cool, parallel streams are useful for quick-and-dirty data processing), but simple everyday things cumbersome. I cannot emphasize how tiring it was to have to write this useless bolierplate

customers.stream().map(c -> c.getName()).collect(Collectors.joining(", "))

for 1000th time, knowing that

customers.map(c -> c.getName()).join(", ")

is what users need 99.99999% of the time.
by th0ma5 | 2025-12-07 19:32:15+00:00
I personally don't understand why asking these things to do things we know they can't do is supposed to be productive. Maybe for getting around restrictions or fuzzing... I don't see it as an effective benchmark unless it can link directly to the ways the models are being improved, but, to look at random results that sometimes are valid and think more iterations of randomness will eventually give way to control is a maddening perspective to me, but perhaps I need better language to describe this.
by 4bpp | 2025-12-07 19:32:29+00:00
Once upon a time, in a more innocent age, someone made a parody (of an even older Evangelical propaganda comic [1]) that imputed an unexpected motivation to cultists who worship eldritch horrors: https://www.entrelineas.org/pdf/assets/who-will-be-eaten-fir...

It occurred to me that this interpretation is applicable here.

[1] https://en.wikipedia.org/wiki/Chick_tract
by rendaw | 2025-12-07 19:33:04+00:00
> designers are, by necessity, going to rely on implicit knowledge encoded somewhere on what to do in edge cases

This seems to be implying that designers rely on quirks like the left alignment thing and not behave consistently... that seems like a crazy assertion to me.

And that appears to be the crux of the argument. A more general, consistent system wouldn't provide enough context for the browser to provide specific quirks, so instead a system with a different parameter for every single individual use case where quirks can be introduced to parameters individually is better.
by zdragnar | 2025-12-07 19:33:28+00:00
I spent the first two years or so of my coding career writing PHP in notepad++ and only after that switched to an IDE. I rarely needed to consult the documentation on most of the weird quirks of the language because I'd memorized them.

Nowadays I'm back to a text editor rather than an IDE, though fortunately one with much more creature comforts than n++ at least.

I'm glad I went down that path, though I can't say I'd really recommend as things felt a bit simpler back then.
by cxr | 2025-12-07 19:33:42+00:00
"Write code top-down"[1] is to literate programming what "concentrate on writing readable code" is to code comments.

(Having said that, I firmly hold the opinion that we should all be writing READMEs in HTML[2][3] (instead of Markdown) and more fully exploring/exploiting the capabilities—and ubiquity—of web browsers to enable "smart documentation": self-contained (i.e. single-file) study aids, visualization widgets, etc[4].)

1. <https://www.teamten.com/lawrence/programming/write-code-top-...>

2. <https://hn.algolia.com/?dateRange=all&type=comment&prefix=tr...>

3. <https://crussell.ichi.city/pager.app.htm>

4. <https://holzer.online/articles/easteregg-lp-style/>
by jennifer-ha | 2025-12-07 19:33:45+00:00
I built SafeDOM.ai to generate AI prompt context directly from real UI state while automatically redacting PII.

It uses data-ai annotations to decide what to include, exclude, or redact, and produces structured fields, rawText with placeholders, and a redactions list. PII (email, phone, IBAN, credit card, SSN) is removed before sending data to a model, and placeholders can be safely reinjected on the backend.

Demo: https://jennifer-ha.github.io/SafeDOM.ai — Repo: https://github.com/jennifer-ha/SafeDOM.ai
by tpoacher | 2025-12-07 19:34:02+00:00
Sure but the focus here is on the reviewer not the author.

The point is what is expected as reasonable review before one can "sign their name on it".

"Lazy" (or possibly malicious) authors will always have incentives to cut corners as long as no mechanisms exist to reject (or even penalise) the paper on submission automatically. Which would be the equivalent of a "compiler error" in the code analogy.

Effectively the point is, in the absence of such tools, the reviewer can only reasonably be expected to "look over the paper" for high-level issues; catching such low-level issues via manual checks by reviewers has massively diminishing returns for the extra effort involved.

So I don't think the conference shaming the reviewers here in the absence of providing such tooling is appropriate.
by seba_dos1 | 2025-12-07 19:34:03+00:00
If you still don't see the point of these adjustments, I'm afraid it may be beyond my abilities to teach you to see it. Each of the scenarios presented can lead to either experiencing stress or being in distress, ability to take it varies between individuals and there's no category of scenarios that always leads to "objectively worse situation" (whatever it means) as you're trying to present it, making it a distinction without a difference in this context as for whatever you'd try to argue, you can find an example from the other category that fulfills it too and that has potential to lead to the same outcomes when it comes to health.
by perbu | 2025-12-07 19:34:03+00:00
JFS-CPP bans exceptions because you would lose control over the execution of the problem. The HFT crowds didn't like it because you'd add 10ns to a function call.

At least before we had zero-cost exceptions. These days, I suspect the HFT crowd is back to counting microseconds or milliseconds as trades are being done smarter, not faster.
by jmward01 | 2025-12-07 19:34:06+00:00
Any web historians know the timeline of ads and search engines? It seems like the killer feature of ChatGPT was being able to find something again since ads have made search engines basically useless. With ads in ChatGPT it just feels like the evolution of search engines applies here. First, be useful for finding information. Next slowly strip value with ads and paid ranking until the value prop exactly equals the value you have stripped out. I suspect custom weighted sampling to favor products, aka 'sales training', is next. You will be able to pay to have your product favorably sampled during decode. It is only a matter of time.
by Ygg2 | 2025-12-07 19:34:06+00:00
> I think "optionality" alone oversimplifies and a person trying to adopt that rule for taxonomy would just have a really hard time and that might be telling us something.

I think optionality is what gives that definition weight.

Think of it this way. You come to a project like a game engine, but you find it's written in some language and discover for your usage you need no/minimal GC. How hard is it to minimize or remove GC. Assume that changing build flags will also cause problems elsewhere due to behavior change.

> Similar binding vagueness between properties (good, bad, ugly) of a language's '"main" compiler' and a 'language itself' and 'its "std"lib' and "common" runtimes/usage happen all the time (e.g. "object-oriented", often diluted by the vagueness of "oriented")

Vagueness is the intrinsic quality of human language. You can't escape it.

The logic is fuzzy, but going around saying stuff like "Rust is a GC language" because it has an optional, rarely used Arc/Rc, is just off the charts level of wrong.
by perching_aix | 2025-12-07 19:34:18+00:00
So if Twitter complied with the demands such that flagged EU-illegal content still remains available to non-EU (e.g. US) visitors, thus not removing anything on the demands of a foreign jurisdiction, in your eyes it would suddenly no longer be a case of "anti-free-speech insanity"?

Cause the whole "they're ordering around an American company" defense falls apart pretty quickly when said American company also operates (read: is accessible from) within EU borders, and in general can be used by citizens of EU member states (independent of their location).
by LoganDark | 2025-12-07 19:35:13+00:00
There are no peer-reviewed studies yet for me to corroborate this with, but I've seen this pattern primarily from a specific type of autistic, and it's similar to an actor pattern: a Manager is expected to entirely "manage" whatever feature it's concerned with. This is usually different from a simple module by not collecting related functionality regarding the feature, but rather trying to contain the entire feature itself.

This typically creates artifacts like each "Manager" owning too much of its implementation (not benefiting from or contributing to shared structures, such as a proper domain suffix list), inconsistency between different parts of the app (since different "Managers" don't necessarily share common patterns between them), and tons of hooks into random "Managers" all over the code.

To me, it feels a bit like an "emotionally driven" architecture, where the organization of the code is based on the list of features of the app, and not based on the implementation of those features. So rather than having, for example, a drag and drop component for the tabs to use, you would have, for example, a ReorderingTabsManager, and the implementation may behave differently than drag and drop in other places. So rather than factoring out code into modules for deduplication, you're making modules ("Managers") based on where they are in the product, and duplicating functionality across each module, to varying standards of completeness and/or quality.

Now I don't know if this project is quite that egregious, but it hopefully illustrates why I raise an eyebrow when I see a project architected this way.