MurphyA/hacker-news huggingface dataset:
by fsloth | 2026-01-11 10:12:23+00:00
Graphics is not an academic body of knowledge as such. It's a bag of tricks developed over 50 years, going hand in hand with industrial hardware development.

There _is_ deep and rich academic framework around the subject, but I think to understand "why this" you need to program to understand the problem space since it's not really anything you could derive from first principles. I mean you get the rendering equation and so on, but the graphics knowledge portrayed in the article comes from understanding the three pillars of real time rendering.

It's about delicate interaction between human visual system (how to fool it), algorithms, and the hardware capabilities.

In general you need to program graphics, not read it. I mean I'm in the "reading" category myself and the people who've focused on programming are much better than myself.

Real time rendering by Akenine-Möller, Haines et all is the standard entry reference. Now in it's fourth edition. It's really good and dense.

If someone wants a simple recipe how to learn real time graphics alone in their cellar, nowadays I would recommend getting Real Time Rendering and going through https://learnopengl.com/.

After that you just continue... continue ... continue.

There are some people who understand everything about the topic instantly intuitively apparently but that's very, very unique. For the rest of us it's a life long adventure facing our own limitations and trying to get better, one program after another.

Speaking as graphics/geometry dev for 20 years now.
by ACCount37 | 2026-01-11 10:12:58+00:00
Starlink isn't perfect, but at least it doesn't go for "it's so not our problem, we'll just make sure that every single VPN exit point Iranians use is GeoIP'd as Iran in our systems" like Google tends to, or "let's lick every authoritarian boot, we control the app distribution and our users will suck it up" like Apple does.

Not even Starlink has the balls to oppose the likes of Russia and China directly - they aren't operating there without a permit, sadly. But at least they don't kneel before every two-bit dictatorship and cave to every single "we want you to do censorship on our behalf" demand. Way better than what most tech companies do now.
by falloutx | 2026-01-11 10:13:06+00:00
"10 parallel agents" was just one guy with access to unlimited credits. Most of us are on Max plan or API plan, and cant afford to burn credits. He can just run the agents just to show that he is running 10 parallel agents.

As an avg dev, what I can even do with 10 agents? It like managing 10 toddlers who can code, it looks good but it becomes hard to manage as you have limited context in your brain.

2 is the best setup if you can afford. One can write Tests and other can write the code. This is better because if you just use the same agent instance, its not gonna be able to write good tests as it will just write tests that its code is gonna pass. Its different for everyone else, but for me, 2 is the best setup for TDD.

Apart from that, you can just go ahead and do it your own way. I have found that many senior engineers think they are special when they can make Claude Code do something, they think its with their setup but I am usually able to replicate without any setups or Agents.md/Claude.md, the models are good enough without any complex setup.
by renegade-otter | 2026-01-11 10:13:06+00:00
People should stop using that word outside of the context of, you know, democracy.

"Democratization" as in "open it to the masses" has never really worked out well with anything. In your case, you are saying "I can dabble in tech where I don't know what I am doing". Is that really a good thing?

The barrier of entry is lower, so is the quality.

We "democratized" writing via social media. Now every dingus with a phone is an expert on everything, or so they think.
by rob_c | 2026-01-11 10:14:27+00:00
Which when it leads to abuse it's saving face and when it's incompetence it's saving face.

For a competent doctor it's used too let a patient know they're doing their job and an acknowledgement of symptoms.

Unfortunately to a _lot_ of the field "catch-all" "diagnoses" (in intentionally separating these labels). It's the same as diagnosing someone with chronic fatigue. It's diagnosing via exclusion.

The difference between chronic fatigue and brain disorders being that you're more likely to get someone looking to make a "name for themselves" diagnosing or curing the latter vs the former...
by QuantumNomad_ | 2026-01-11 10:15:08+00:00
It depends completely on how nested your HTML tags are.

I hand write my HTML sometimes, and in those cases it’s often very basic documents consisting of maybe an outer container div, a header and a nav with a ul of li for the navigation items and then an inner container div and maybe an article element, and then the contents are mostly p and figure elements and various level headings.

In this case, there is no mental overhead of omitting closing li and closing p at the end of the line, and I omit them because I am allowed to and it’s still readable and fine.
Show HN: Bound – local code autocomplete LLM fine-tuned on your repository
by misterchocolat | 2026-01-11 10:15:52+00:00
Hi everyone, I'm Vivien one of the creators of Bound.

I'll keep things brief, there are two things I hate about using AI coding models: paying a subscription and how bad they are for the environment.

So my cofounder and I built Bound. Simply put, we provide Cursor's "tab" feature but instead of using a cloud model we use an ultra-small local LLM trained on your own repo (that and a couple other tricks to make sure it's the same quality as cursor). The nice thing here is that you own the model and it's so small that it runs on your laptop with no latency issues.

Join the waitlist on our website and we'll get in touch to implement it for you.
by imiric | 2026-01-11 10:18:08+00:00
Wrong.[1]

> if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/)

If you're going to be pedantic, at least be correct about it.

[1]: https://html.spec.whatwg.org/multipage/syntax.html#start-tag...
Show HN: Ambient Shield – Cinema mode for dual-monitor setups
by haka_ | 2026-01-11 10:18:36+00:00
Hello HN,

I built Ambient Shield because I was tired of my second monitor blinding me whenever I tried to watch a movie and I didn't want to always turn off my second monitor.

What it does: Ambient Shield detects when you enter fullscreen mode (F11 or via a video player like YouTube/Netflix) and automatically opens a pitch-black window on your secondary monitors. When you exit fullscreen, it clears the windows instantly.

How it works: It uses the Chrome system.display API to map your monitor coordinates and the windows API to spawn and position popup windows precisely over your other screens.

Tech Stack:

Built with React, Vite, and Tailwind for the UI.

Uses Chrome Manifest V3.

Payments handled via ExtensionPay (Stripe).

There is a free tier that dims screens to grey, and a lifetime license for the customizable blackout mode.

I’d love to hear your feedback on the implementation or any edge cases I might have missed with window management!

Link: [https://chromewebstore.google.com/detail/iecfhnldblpkafnmbin...]
by locknitpicker | 2026-01-11 10:20:36+00:00
> Big companies are significantly better to work in when you're either (...)

You're basically stating that people who are hired to staff projects that are superfluous secondary moonshots are more likely to be fired than those who maintain core business areas. That's stating the obvious. When a company goes through spending cuts, the first things to go are the money sinks and fluff projects that are not in any key roadmap. This is also why some companies structure their whole orgs around specific projects and even project features, because management limits the impact of getting rid of entire teams by framing that as killing projects or delays in roadmap.
by masklinn | 2026-01-11 10:20:53+00:00
> Can you show an example of what you mean?

void foo(std::unique_ptr<int, Deleter>&& p) {
std::random_device rdev {};
auto dist = std::uniform_int_distribution<>(0, 1);
if (dist(rdev)) {
auto pp = std::move(p);
}
}
by chiengineer | 2026-01-11 10:21:01+00:00
The "industry" is a couple hundred billion per year

I think its fine

Now with AI - you can cry about it or learn how to use it. Simple

Im making video games on the side I never thought possible - for example - all by myself and a 40$ subscription

Things are changing

And its never going to be this cheap ever again so grab it while its hot

Because by next year 2027 the price with be 10x
by QuantumNomad_ | 2026-01-11 10:23:00+00:00
To each their own. In simple lists for navigation menus I always omit closing li. There is no ambiguity on what I am intending even with those closing li omitted in such simple cases:

<nav id=main-nav>
<ul>
<li><a href="/">Home</a>
<li><a href="/hamburgers/">Hamburgers</a>
<li><a href="/sausages/">Sausages</a>
</ul>
</nav>
by chiengineer | 2026-01-11 10:23:51+00:00
Multi agents are per use case, enterprise big organizations with tiered access probably is a good one

For personal use vs code + GitHub copilot pro plus works great (highest limits available for code generation for 40$) includes has over 10 models

Because its been updated even just this past couple weeks - everything is there - agents - codex - claude

I only have 16 gb ram and im coding like 4 projects at once if im crazy enough
by rastriga | 2026-01-11 10:25:21+00:00
It's the last 5 commits, not the full history. Here's what actually gets sent in the system prompt:

gitStatus: This is the git status at the start of the conversation...
Current branch: main
Main branch: main
Status: (clean)

Recent commits:
6578431 chore: Update security contact email (#417)
0dc71cd chore: Open source readiness fixes (#416)
...

Enough for Claude to understand what you've been working on without sending your entire repo history.
by dada78641 | 2026-01-11 10:25:55+00:00
The thing that really offends me about Windows 11 is that new right click menu that takes like 500 ms to appear each time you use it and is less useful than the old one.

Recently I've been experimenting with Atlas, Revi and Ghost Spectre, which are custom stripped versions of Windows, and it's such a breath of fresh air. It really makes me feel like if only they'd just ruthlessly pull out all the new garbage without regard for "but we just made and shipped this", Windows would actually be pretty good.

Say what you want about Apple and their slow descent into a fully walled garden where independent software development is slowly eroded and sabotaged, but even their most reviled update in years (macOS 26) is still miles ahead of Windows 11 in terms of cohesion and polish.
by MORPHOICES | 2026-01-11 10:27:48+00:00
Value categories and move semantics are great examples of programming concepts that can cause confusion, and it's a great example of how not having a bad documentation can still lead to confusion through bad mental models. ~

Intuitively you think you understand what is going on, and you think you can answer what is going on, and you can even use it due to understanding it on an operational level, but you can't explain it due to your confusion.

As a result, you most likely are going to create a lot of small bugs in your software and a lot of code that you don't really understand. So, I'm curious to know what others think.

What concept did you learn later than you thought you would? What knowledge did you struggle with the most? What finally helped you understand it?
by sacs0ni | 2026-01-11 10:27:48+00:00
I built this to have a dedicated wire-protocol client for postgres logical replication.
General-purpose SQL clients either don't implement the replication protocol at all, or bury it behind abstractions designed for other use cases. Replication has a bit different mechanics - it's a stateful binary stream requiring LSN tracking, standby heartbeats, and feedback to prevent WAL bloat. Bolting that onto a query-focused client has its own challenges.

This is just the transport - raw XLogData frames and LSNs. Use pg_replicate, as an example, if you need "replicate to BigQuery." Use this if you're building replication infrastructure.

What it does:

- Explicit LSN control - start/stop at specific WAL positions for deterministic recovery

- Automatic standby feedback - no more forgotten heartbeats filling your disk with WAL

- Bounded channels - backpressure propagates to Postgres naturally

- Pure Rust, no libpq

What it doesn't do: pgoutput decoding (intentionally). That belongs in a higher layer.
Simplest way of using this:

while let Some(event) = client.recv().await? {
match event {
ReplicationEvent::XLogData { wal_end, data, .. } => {
process(&data);
client.update_applied_lsn(wal_end);
}
_ => {}
}
}
by hnlmorg | 2026-01-11 10:29:17+00:00
I don’t think tables are human readable in any machine readable format, not even markdown.

The problem is when you have long cells that you’d normally word wrap inside the cell, everything else ends up misaligned in your markup language. Or when you need to add styling to text in a cell, suddenly it’s unreadable again. Or when there’s more than a small few number of columns thus causing each row to word wrap inside your IDE, etc

I think it makes far more sense to just acknowledge that tables are going to ugly, compose them elsewhere, and then export them to your markup language following that language’s specification strictly.
by MORPHOICES | 2026-01-11 10:30:50+00:00
As I was looking at various film formats, I was reminded of how messy standards are. ~

There are dozens of formats with slightly different sizes and long tails that never fully disappear.

There is almost no rhyme or reason to it and a lot of it feels like it's just been passed down.

After a while, a format can no longer be considered optional. Once again, I see the same pattern with software and I was curious how others view the same phenomenon.

Which standards survived due to inertia? Which lost better alternatives? Where was the emphasis on compatibility over design?
by xolve | 2026-01-11 10:32:58+00:00
Some of the key milestones for desktop Linux which I can remember:

* Office and PIM apps moved to web, no longer its a requirement.

* You can game on Linux out of the box, same performance or even better.

* Installation and hardware compatibility - it has improved a lot! Even Nvidia and Broadcom chips run easily with no tweaking of config editors.

* Old hardware still runs at same performance (mostly). If I need to upgrade its because I am doing something more like watching 4K movies, running LLMs locally or running MS teams! Not because my file browser or basic text editor is suddenly slow.

There are two major hurdles I see:

* Enterprise IT still prefers Windows or Mac because of MDM (managed devices).

* Niche tools like photo/video editing, CAD software are still Windows only (with Mac ports for some).
by 7bit | 2026-01-11 10:35:21+00:00
> "Did you forget to close your p tags or is that on purpose?"
> [...]
> These are all adapted from real comments;

If that's a comment you get, write better code. It does not matter to me whether closing p-tags is mandatory or optional. If you don't do it, I don't want you working on the same code base as me.

This kind of knowledge makes for fun blog posts, but if people direct these kind of comments to me. You're obviously using your knowledge to just patronize and lecture people.
by senko | 2026-01-11 10:35:25+00:00
I support your right to have an opinion, but in my opinion, thank God this is just your opinion.

Copyright, as practiced in late 20 and this century, is a tool for big corps to extract profits from actual artists, creators, and consumers of this art[0] equally. Starving artists do not actually benefit.

Look at Spotify (owned and squeezed by record labels) giving 70% of the revenue to the record labels, while artists get peanuts. Look at Disney deciding it doesn't need to pay royalties to book writers. Hell, look at Disney's hits from Snow White onwards, and then apply your "LLMs are IP theft" logic to that.

Here's what Cory Doctorow, a book author and critic of AI, has to say about it in [1]:

> So what is the alternative? A lot of artists and their allies think they have an answer: they say we should extend copyright to cover the activities associated with training a model.

> And I'm here to tell you they are wrong: wrong because this would inflict terrible collateral damage on socially beneficial activities, and it would represent a massive expansion of copyright over activities that are currently permitted – for good reason!.

---

> All written text, art work, etc needs to come imbued with a GPL style license

GPL-style license has been long known not to work well for artifacts other than code. That's the whole reason for existence of Creative Commons, GNU Free Documentation License, and others.

[0] "consumers of art" sounds abhorrent, yet that's exactly what we are
[1] https://pluralistic.net/2025/12/05/pop-that-bubble/
by democat | 2026-01-11 10:35:56+00:00
You are absolutely right. Thank you for pointing this out! Regarding your questions:
1. The `\pair` issue: This is definitely a bug. My macro expander is based on text replacement and obviously cannot handle nested parameters. I will fix the recursive logic.
2. The `fib` loop: Pandoc seems to use `typst-hs`, which contains a complete Typst evaluator. Tylax is strictly designed as a static AST transformer. We haven't implemented the Typst virtual machine, so loops or recursive functions cannot be executed. This will be gradually improved later to make it more usable; my claim of "better macro support" was clearly premature. This was a big mistake on my part, and we will strive to achieve this goal in future updates! Thank you very much for your feedback and for pointing out the bug!
by vessenes | 2026-01-11 10:36:09+00:00
I’m 50, and I can tell you exactly what happened - AOL. Plus the death of the BBS. Usenet started changing radically in the late 90s, and the independence BBS operators had wasn’t appealing enough to keep them running dial up services, nor was it generally appealing enough to keep people logging in over modem when the baby internet was available.

All that said, I want to be clear that I’m still partial to TCL - an elegant highly usable language, and happy to fight you over it.
by OlaProis | 2026-01-11 10:37:03+00:00
Great catch! Mermaid styling syntax (style and classDef directives) is on the roadmap for v0.3.0. Currently the diagrams render with Ferrite's theme colors (light/dark).

For privacy, you're in the right place — Ferrite's Mermaid rendering is 100% native Rust, no JavaScript, no external services, no network calls. All ~6000 lines of diagram rendering happen locally. We're even planning to extract this as a standalone crate so others can use it.
by iam_pri_s | 2026-01-11 10:37:41+00:00
I've been researching blockchain-based capital markets and developed a framework for tokenized equity with separated economic, dividend, and governance rights.

Core idea: Instead of bundling everything into one share, issue three token types:
- LOBT: Economic participation, no governance
- PST: Automated dividends, no ownership
- OT: Full governance control

Key challenge: Verifying real-world business operations on-chain without trusted intermediaries. I propose decentralized oracles + ZK proofs, but acknowledge significant unsolved problems.

This is research/RFC seeking technical feedback on oracle architecture, regulatory viability, and which verticals this makes sense for.

Thoughts?
[ https://zenodo.org/records/18209805?token=eyJhbGciOiJIUzUxMi... ]
by lawlorino | 2026-01-11 10:38:22+00:00
As someone with perfectionist tendencies I'd say for some people it's perhaps best to enjoy walking aimlessly rather than seeking to optimise yet another part of life, at least at the start.

Personally I found this with running. It never became a consistent habit and something I looked forward to until I stopped thinking about where, when and how fast I was running and just did whatever I felt like. This realisation came after many years of trying and failing to stick to any kind of cardio exercise, and now a couple of years later I have a few half marathons under my belt and am training for my first marathon later this year. I attribute this entirely to the mindset change I described.
by shakna | 2026-01-11 10:38:24+00:00
I don't need the text of the page. Thats easy, and I already have it.

But information has a hierarchy, usually visual, and that hierarchy needs to be reflected. LLMs are famously bad at structure, especially any tree with significant depth. RAG is not enough - hallucinations become common at depth.

My response now, to you, is in a semi-structured node graph. I know a reply has happened, because of the dangling children. I know who made it, and what they said, by cell attributes in the spans, surrounding it.

Don't worry - AI is being shoved down accessibility's throat, like everywhere else. FSCompanion for JAWS, NVDA has an OpenAI plugin, and VoiceOver has it builtin.

Why do I hate it? Because when it _doesn't work_, you can't tell. You don't know if it is hallucinating data, and cannot verify the response. If it is the mode of communication, it is all you have, making every failure a catastrophic failure.
by croisillon | 2026-01-11 10:38:30+00:00
i went down this rabbit hole and in fact Tim Berners Lee is/was not old (b. 1955), though one can argue George HW Bush (b. 1924) had the White House website running he evidently didn't have a personal one

and then there is Olive Riley (b. 1899) https://en.wikipedia.org/wiki/Olive_Riley
by arw0n | 2026-01-11 10:38:47+00:00
Regarding an 'invasion' of Greenland, it would actually be done in a day, and I highly doubt an effective insurgency would form. The US already has military control over the territory, and the population is way too low and concentrated to offer opposition.

This is implicit in the reaction of the EU: If the US takes over Greenland, Europe will close down all American bases in Europe.

This is what makes this particular foreign policy so incredibly stupid: The US already gets everything it needs from Denmark/Greenland. The US is considering throwing away European allies to have their flag be bigger on a world map.
by OlaProis | 2026-01-11 10:38:48+00:00
Fair point about fragmentation! Ferrite uses Comrak which implements CommonMark + GitHub Flavored Markdown (GFM) — arguably the closest thing to a "standard" we have.

We chose Markdown because:
- It's what most developers already use (README files, documentation, wikis)
- Plain text files are portable, grep-able, git-friendly, and won't lock you in
- GFM covers tables, task lists, strikethrough, and autolinks which handles 90% of use cases

We also support JSON, YAML, and TOML with native tree viewers. Wikilinks ([[links]]) and backlinks are planned for v0.3.0 for folks wanting Obsidian-style knowledge bases.

That said, I'd love to hear what format you'd prefer — always interested in expanding support!
by MORPHOICES | 2026-01-11 10:38:51+00:00
The HTML Specification (spec) states it is possible to omit closing tags for certain elements when writing HTML documents. ~

In fact, most web browsers now automatically insert these closing tags for the user.

This feature has been around for many years now.

However, I have found that many organizations still require that the closing tags be included explicitly.

I am curious how other organizations determine when to use the "the spec allows it" as a reason to not include the closing tags.

What point do developers cross from merely allowing this to being considered a technical debt?

Have you ever utilized the feature of the specification that caused you a problem later?