MurphyA/hacker-news huggingface dataset:
by pornel | 2026-01-11 10:39:45+00:00
NN did not reject invalid HTML. It could not incrementally render tables, while IE could. That's all.

Because table layout was common, a missing </table> was a common error that resulted in a blank page in NN.
That was a completely unintentional bug.

Optional closing tags were inherited from SGML, and were always part of HTML. They're not even an error.
by vessenes | 2026-01-11 10:40:12+00:00
Samba was arguably the way Linux snuck into corporations in the late 90s. Microsoft’s server offerings were truly terrible in that era, compared to getting a very functional Unix-a-like for free out of commodity hardware. Terrible and expensive. The issue was, you needed to be able to do group file sharing to windows desktops, full stop. IT teams wanted Linux, bad, for nerd and quality of life reasons. They also wanted Apache, not IIS. As Samba stabilized, Linux boxen quietly started appearing without notice or fanfare, and never left.
by gbnwl | 2026-01-11 10:40:37+00:00
In my experience multi-agent orchestration frameworks usually accomplish vague to unnoticable to straight up worse results compared just getting used to the vanilla tools before impulsively installing the daily flavor of "I made Claude Code better". I'm guessing you've probably already noticed by now these come out daily. But a look at the repo shows that they do at least halfway use sub-agents in the way most people are starting to realize they're (currently at least) most helpful imo, which is managing context bloat in the main chats. Not a fan of wishfully creating "expert" agents which amount to little more than prompts asking Claude to a good job at the task. I'm honestly not sure why that couldn't be a slash command at that point.
by wewewedxfgdf | 2026-01-11 10:40:51+00:00
You paint a very rosy picture of Linux.

It's a mess of disparate highly inconsistent systems.

The Linux user experience matches what it is - a random bunch of developers developing random software in the way they like with a very thin patina of consistency failing to hide the mess.

It's nowhere near as fabulous as you are making out - it's fanboiism to say otherwise.
by OlaProis | 2026-01-11 10:40:57+00:00
Ferrite is privacy-focused in that it's fully offline — no telemetry, no cloud sync, no accounts, no network calls (even Mermaid diagrams render locally in pure Rust).

However, files are stored as plain text, same as Obsidian/VS Code/any text editor. Encryption at rest isn't currently on the roadmap.

For encrypted storage, you might consider:
- Using Ferrite with an encrypted volume (VeraCrypt, LUKS, FileVault)
- git-crypt for encrypted git repos

That said, if there's strong interest in built-in encryption (vault-style or file-level), I'd love to hear more about the use case. Would you want password-protected vaults? Per-file encryption? Something else?
by falloutx | 2026-01-11 10:40:58+00:00
I too do video game dev as my offterm job, I would say coding is like 5% of a game, and the market is more flooded than Florida in summer. I shifted from Unity to Godot and usually just make games for myself or just chill on gamejams. Money in video games dev is also rare, but its more enjoyable than web dev and again AI's impact on the video game dev is very minimal.

I enjoyed Pieter's vibe coding jam: https://jam.pieter.com/ and I made some horrible games, but atleast its funny.
by nubinetwork | 2026-01-11 10:41:06+00:00
> Browsers do not treat missing optional end tags as errors that need to be recovered from

Just because it worked on the one browser you tested it on, doesn't mean it's always worked that way, or that it will always work that way in the future...

Every browser treats html/etc differently... I've run into css issues before on Chrome for android, because I was writing using Chrome for desktop as a reference.

You'd think they should be the same because they come from the same heritage, but no...
by KarlVoit | 2026-01-11 10:41:10+00:00
Author of the article here:

It hurts me to read through the comments. One part of the people who commented obviously didn't read the article they're commenting on.

And another part of the commenters does mix up Org-mode, the Elisp implementation within Emacs, with orgdown, the lightweight syntax which is actually the topic of this article. This part of the discussion is totally missing the whole point of my article: practical issues related to Markdown; choosing any other LML which doesn't come with those downsides. Orgdown was just one example of many which I wanted to mention because it is one of the least known alternatives outside the Emacs bubble.

I extended the article accordingly and also answered to a comment that came via email.

HTH
by beingflo | 2026-01-11 10:41:19+00:00
Ah forgot to mention it in the post. This comes built in by Playwright. Normally, you invoke the test suite by running `npx playwright test`. This fails your test if a screenshot is missing or if it differs. By running `npx playwright test --update-snapshots` you tell Playwright to just overwrite the snapshots and not fail tests.
by tkiolp4 | 2026-01-11 10:41:45+00:00
Please provide a PDF as well. I cannot read books in HTML format because I need to keep track of where i left. That means I either have to leave the browser tab open (but this is prone to accidentally closing it) or I need to bookmark every progress, which creates noise in my bookmarks. With a PDF I simply leave it, the reader remembers my last page. I also have a sense of progress with pdf.
by PeterStuer | 2026-01-11 10:42:02+00:00
Be careful with the 'utility' model of explaining behavior. It is fairly easy to slide into 'if behavior X is manifested, this must mean X must somehow be useful'. You can use this model to explain behavior, but be aware of the circularity trap in the model. "She lied thus the lie must have had use, even if it is not obvious we will discover the utility if we dig down enough".

Another model can be post-rationalization. People just do stuff instinctively, then rationalize why they did them after the fact. "She lied without thinking about it, then constructed a reasoning why the lie was rational to begin with".

At the extremes, some people will never lie, even to their detriment. Usually they seem to attribute this to virtue. Others will always lie. They seem to feel not lying is surrendering control. Most people are somewhere in between.
by amriksohata | 2026-01-11 10:42:35+00:00
White dwarf explosions result in zinc? Can someone ELI5 as to how they know this if a white dwarf has never actually been monitored closely? Or are these just theories? Pluto for example was found to have a haze with newer telescopes so what if the observarions from white dwarfs which are so far away based on assumptions - are not correct?
by OlaProis | 2026-01-11 10:43:10+00:00
Definitely interested in the concept! Though it's not on the immediate roadmap.

A few thoughts:
- Obsidian's plugin system is JavaScript-based, which makes sense for Electron. For a native Rust app, we'd likely want something like WASM plugins or Lua scripting.
- v0.3.0 includes plans to extract the Mermaid renderer as a standalone crate and potentially the editor widget as a library — this modular architecture would be a foundation for future extensibility.

What kinds of plugins would you want? Knowing specific use cases would help prioritize. Custom renderers? File format converters? External tool integrations?

In the meantime, Ferrite has a "Live Pipeline" feature that lets you pipe JSON/YAML through shell commands (jq, yq, etc.) — not a full plugin system, but useful for custom transformations.
by krona | 2026-01-11 10:43:21+00:00
> So the standard library plays it safe: if your move constructor might throw (because you didn’t mark it noexcept), containers just copy everything instead. That “optimization” you thought you were getting? It’s not happening.

This is a bit of a footgun and clang-tidy has a check for it: performance-noexcept-move-constructor. However, I don't think it's enabled by default!
by gsf_emergency_6 | 2026-01-11 10:43:45+00:00
Related thoughts..

(Attempt at applicability:) how "compradores"[0] can provide superior[1] Pastoral Care to , eg, ICE-chimps[2] after having said chimps realise their old bosses, comrades, even their own "archaic needs", have been betraying them all along [3]

[0] "sellers", as in PH of his "foxwork"?

[1] superior in the sense that the welfare will be bespoke but proportional to the struggle and schlep put in by the chimp on his guided path to salvation

[2] we are all part of the chimp troupe, though some may cosplay at foxes. So that wasn't meant to be derogatory

[3] guess this is the "(psychological) warfare" part of this 2 part process.

Sorry for the contrived example. Trying to surf the sync!

Recommendations for tales of how historical (actual, WWII) Nazi bullies got a payout in such futuristic pastoral care? (Part1 or 2)

Quotes from the aforementioned books that precede the above welcome too! (I'm guessing mostly for Part1 if any, but UKL might have covered some of Part2)

Ps: is it me, or has Gemini been giving markedly less useful responses last couple of days?
by hk__2 | 2026-01-11 10:44:03+00:00
> If people lived until now without it it can't be that big of a problem

That’s a very weak argument that can justify anything. Why do you need electricity, a car, a fridge? There have been people living without these for thousands of years. Of course there are bad ads and useless products (probably 99% of them), but not all ads are useless.
by ErroneousBosh | 2026-01-11 10:44:14+00:00
If you buy a commercial product labelled "military grade", you are also buying snake oil.

"Military grade" is generally shit. It's built down to a price, manufactured the cheapest possible way, so they can get the lowest possible tender submitted. Bonus prize if the manufacturer is owned by either someone already in government, or with close ties to someone in government.

The only "military grade" devices I own are some woefully unsuccessful radios, which failed in the market because they were actually good - easy to use, reliable, and easy to repair - which made them about 5% more expensive than the cheapest option which was made by a company part-owned by the government and part-owned by someone who donates heavily to the Conservatives.
by rspoerri | 2026-01-11 10:45:06+00:00
These arguments make no sense at all.

- Solar power is already starting to make so much surplus during the days, and it needs battery power to store. Cars are an ideal object to use surplus energy. Cost will continue to sink.

- Creating additional charging infrastructure costs very little, because power lines are available everywhere. Fuel stations might be currently broader available, but even maintenance on fuel stations is likely more expensive than building new charging infrastructure. If more electric cars are available, more charging infrastructure will be built.

- Europe has very little oil / fuel reserves and is heavily dependent on other countries. As we have seen in recent years this is a major long term problem.
by thrance | 2026-01-11 10:46:10+00:00
Sure, his ketamin-addled brain has been promising us that there would be millions of humans on Mars very soon for years now. That doesn't make it real. And that does not explain either how they'd survive, or even how they'd get there in the first place. Sending one ship to Mars is something, sending thousands is unfeasible in this century.

Also, I don't believe they'd ever be auto-sufficient, because of the aforementioned qualities of Mars: anoxic, sterile, radioactive and subzero. They'd certainly never thrive. More probably, they'd live in a kind of inescapable company-town, millions of miles away from the nearest jurisdiction, at the mercy of a guy known for brutalizing his workers, where going on strike means you probably just die. Sounds like absolute hell.

So, unfeasible, unrealistic, pointless. You can do much more good for humanity by investing here on Earth, obviously.
by harel | 2026-01-11 10:46:26+00:00
I don't presume to know the reasons. I want to believe that "leaders" just have their own misguided view as to what is "good for the country". That is, no malice, just gross incompetence. Maybe I'm naive. I don't know.

What I do know and is more and more apparent to me, is that the current systems of world relating to governance, here in the UK, no longer work. Not fit for purpose. Broken beyond repair. Scary.
by MORPHOICES | 2026-01-11 10:46:57+00:00
When reading succinct technical documentation, I see how so many times the documentation attempts to cover everything possible. ~

Most developers want guidance instead of exhaustive details. Developers want to know where they should focus their time and where they can afford to skim over the documentation. And they want to know where they should expect to encounter problems and difficulties.

A simple framework to use when producing succinct technical documentation is to divide the documentation into three sections.

Maps: Identify what type of problems this documentation can assist you with

Defaults: Understand what the majority of people will experience and what to do about it.

Exceptions: Identify when to deviate from the default recommendations.

Succinct documentation does an excellent job of providing clarity by eliminating edge cases. The more clearly the user understands the documentation the more useful the documentation will be during the time where the user is experiencing the most confusion.

The danger is the temptation to simplify the information contained within the documentation to such an extent that the user is left with a large amount of missing information and no method for seeking assistance with incomplete information.

What situations have you encountered where the information contained within short technical documentation has been more helpful than official technical documentation? ~
by HiPhish | 2026-01-11 10:47:07+00:00
Serious question: why would you ever want to not close tags? It saves a couple of key strokes, but we have snippets in our editors, so the amount of typing is the same. Closed tags allow editors like Vim or automated tools to handle the source code easier; e.g. I can type `dit` in Vim to delete the contents of a tag, something that's only possible because the tag's content is clearly delimited. It makes parsing HTML easier because there are fewer syntax rules.

I learned HTML quite late, when HTML 5 was already all the rage, and I never understood why the more strict rules of XML for HTML never took off. They seem so much saner than whatever soup of special rules and exceptions we currently have. HTML 5 was an opportunity to make a clear cut between legacy HTML and the future of HTML. Even though I don't have to, I strive to adhere to the stricter rules of closing all tags, closing self-closing tags and only using lower-case tag names.
by locknitpicker | 2026-01-11 10:48:50+00:00
> I show people coming from object oriented backgrounds this page first in order to correct the perception that TypeScript is best used with that programming paradigm.

I think you're confusing things. Languages like Java or C# impose an artificial constraint that free functions don't exist and functions can only exist as members of a class. You don't see this constraint in OO languages such as C++.

Also, it's a simplistic assertions to claim that classes have no place in TypeScript or aren't idiomatic. That's just nonsense based on specious reasoning. Classes/objects with function members are still the best way to implement some features. I'm seeing too many people writing absurd typescript code who go through great lengths to avoid a class because they think a class is taboo. They pull out convoluted stunts like passing closures as object members, just to avoid the sin of rolling out a class.
by Sesse__ | 2026-01-11 10:49:00+00:00
> any 'building' or 'underground' type cable needs to be of the exact length required at the demarcation point, fastened properly to prevent movement and terminated on a proper patch panel (can be a one-port box-type thingy for small setups)

How exact is exact? :-) I once had to reterminate some fiber that was cut and terminated to exact length, which means there was literally two centimeters from the wall to the connector. I literally had to squeeze the fiber splicer up against the wall to have a chance at splicing on new pigtails, but I had two mis-cuts and I was hosed. :-)
by sho_hn | 2026-01-11 10:49:23+00:00
A lot of what is shown here comes down to the people in the art asset and level pipeline.

The real story to tell would be what tooling was used to pre-bake the lighing in the textures, e.g. if they used a seperate rendering package or mostly painted by hand, or in what mix.

Also what guidelines they used to make sure the baked-in reflections would match the use and environmental lighing of objects in the scene, e.g. just general constraints or how much customization there was for important unique arrangements. Is it done by the same person in a tight loop or did it involve hand-ofs, etc.

The excellence of the result is down to a lot of tasteful choices in how to blend these techniques, achieved either from experience or iteration.

As programmers we tend to focus a lot on the raw rendering techniques, but there's a whole systematic practice around art direction and how to achieve and maintain quality in it that feels I guess softer and less deterministic but is still worth talking at length about.

This especially struck me when the reviewer here recommended using multiple stacked texture planes and parallax mapping to improve things. I know a handful of games that have done this, and unless used exceedingly sparingly (e.g. mesh fence over pipes or something, where the foreground isn't expected to have a lot of depth) in my experience it very quickly gives away the illusion and looks very hokey. Humans are good at telling it's planes sliding over each other and doesn't correspond to their experience with depth perception. It also makes a scene a lot busier as the camera is moved, firing "something is changing here!" perceptual sinals all over the screen (note how all the lavish particle effects are about feedback instead), and is not the atmosphere Max Payne was trying to achieve.

In other words, sometimes it's about knowing what possible thing not to do, too. And a lot of magic happens when disciplines meet.
by tialaramex | 2026-01-11 10:51:13+00:00
With Rust you always could unsafely do whatever went wrong in somebody's C or Zig or whatever, but the question is whether you would. Rust's technical design reinforces a culture where the answer is usually "No".

I don't find the claim that weird low level mmap tricks here are perf critical at all persuasive. The page recycling makes sense - I can see why that's helping performance, but the bare metal mmap calls smell to me like somebody wanted to learn about mmap and this was their excuse. Which is fine - I need to be clear about that - but it's not actually crucial to end users being happy with this software.
by UqWBcuFx6NV4r | 2026-01-11 10:51:22+00:00
Visually impaired people are more than willing to tell everyone what they need as far as accessible UIs, myself included. Barely anyone listens. Let’s not let LLMs be the next thing that people that don’t understand the actual problem try shoving in as a solution.

Wheelchair users / people with mobility impairments rightfully scoff at the myriad “concepts” you see now and again of mech suits, wheelchairs that can climb stairs, etc. “Just give us a ramp! This is a solved problem. Your alternative is just sci-fi fetishism!” Still, it keeps happening. LLMs are increasingly becoming the same thing for people with visual impairments.
by guax | 2026-01-11 10:51:35+00:00
"Where was the emphasis on compatibility over design"

Im confused by this line, standards are meant to promote compatibility, not design. They're a way to, well... standardise processes and things. Its almost a given that you'll have to compromise on design to be able to include enough variance to appease the majority of use cases. It is also desirable, I think, of a standard to not give in to edge cases and niche uses and stay as simple as it can to the general use. There will be other niche standards for those and that is a good thing.

Standards survive and die for the same reason they're created, they make things cheaper, faster and easier. Once they fail at those, they give in to newer entrants. Physical standards can also make things safer, but safety must be enforced as people often are bad at judging risk and prefer the other features to a fault.
by OneDeuxTriSeiGo | 2026-01-11 10:51:38+00:00
Yeah if you see something labelling itself "MIL-SPEC", that's grade A snake oil bullshit.

That said military spec stuff is actually generally a good sign that something is of higher quality than random off the shelf garbage but only if you know there's a specific spec you want it to work with. And most of the time you aren't even necessarily looking for a MIL-STD (standard) but rather a MIL-PRF (performance rating/spec).

So like if something is "MIL-SPEC" run. But if you see say a spool of fiber that is "MIL-STD-1678 compliant" and more importantly "MIL-PRF-49291 compliant" and "MIL-PRF-85054 compliant", that's probably a really good sign that it'll do its job. The former PRF documenting perf requirements for the fiber itself and the latter PRF the cabling/sheath's corrosion and deterioration resistance.

It's the military so odds are it'll probably cost extra for that and it'll still kinda suck but it'll suck in exactly the way they promised.
by sgasser | 2026-01-11 10:52:02+00:00
Using LLM APIs but worried about sending client data? Built a proxy for that.

OpenAI-compatible proxy that masks personal data and secrets before sending to your provider.

Mask Mode (default):

You send: "Email sarah.chen@hospital.org about meeting Dr. Miller"
LLM receives: "Email <EMAIL_1> about meeting <PERSON_1>"
You get back: Original names restored in response

Route Mode (if you run a local LLM):

Requests with PII → Local LLM
Everything else → Cloud

What it catches:

PII: Names, emails, phones, credit cards, IBANs, IPs, locations (24 languages)
Secrets: Private keys, API keys (OpenAI, AWS, GitHub), JWT tokens

Uses Microsoft Presidio for PII detection. ~500MB RAM, 10-50ms per request.

Works with Cursor, Open WebUI, LangChain, or any OpenAI-compatible client.

Docs: https://pasteguard.com/docs

Feedback on edge cases welcome.
by Etheryte | 2026-01-11 10:52:13+00:00
Granted I have not used this library myself, so this is not coming from experience, but this type of copy does not instill confidence:

let count = track(0);
<button onClick={() => @count++}>{@count}</button>

No useState, ref(), .value, $:, or signals.

You could replace `track` with `useState`, or `@` with `$` and it's pretty much the same thing. Whether you use syntax that's explicit or magic symbols you have to look up to understand is a matter of preference, but this does not really set it apart from any other library.
by hnlmorg | 2026-01-11 10:52:29+00:00
> Browser will parse that as three HTMLParagraphElements

Why?

> You may think that's invalid HTML, but browser will parse it and won't indicate any kind of error.

It isn’t an opinion, it literally is invalid HTML.

What you’re responding to is an assumption that I was suggesting browsers couldn’t render that. Which isn’t what I claimed at all. I know full well that browsers will gracefully handle incorrect HTML, but that doesn’t mean that the source is magically compliant with the HTML specification.