MurphyA/hacker-news huggingface dataset:
by virtualwhys | 2026-01-04 16:12:08+00:00
Serialization support has been coming for years, I lost patience.

Otherwise, yes, some support for expressions, some support for immutability, no support for optional semi-colons, no privacy modifiers so "_" littered everywhere.

I just found it to be an exceedingly ugly language when I used it a couple of years ago. Yes, some more pleasant modern functionality has been bolted on since then, but it's unfortunate that Dart was chosen as the backing language for Flutter, which is an awesome mobile framework.
by Lwerewolf | 2026-01-04 16:12:27+00:00
This kind of works for me, GPT 5.2:

Base style & tone - Efficient

Characteristics - Defaults (they must've appeared recently, haven't played with them)

Custom instructions:
"Be as brief and direct as possible. No warmth, no conversational tone. Use the least amount of words, don't explain unless asked.'

I basically tried to emulate the... old... "robot" tone, this works almost too well sometimes.
by mbreese | 2026-01-04 16:12:42+00:00
I had a similar issue, but with Jekyll. I had a customized theme and some update along the way broke everything. So, I very much agree with a sibling comment about not needing to update static site generators and it’s not just a Hugo thing. Sadly, my site was also being hosted/generated by GitHub, so I had no real choice in the update matter. (I’m not sure if pinning would have helped.)
by delis-thumbs-7e | 2026-01-04 16:12:53+00:00
I didn’t quite understand why sitting alone in a café makes you a weirdo (is it an American thing?), but the piece was very well written. We all should learn how to be without electronics for every now and then, accompanied only our thoughts. It is good for the soul.

I think the important part is leaving your phone and other devices home. Be alone, without even a possibility of connecting (apart from the old-fashione way of talking to an actual human being). People used to do this y’know? Back then.
by Group_B | 2026-01-04 16:13:15+00:00
I've been using Hugo for the past 3 years. Biggest lesson I learned is to just fork the theme you're using and don't use submodules. There's no rush in keeping your theme up to date. Also you have complete control over the theme when its forked. I've only had stuff break on occasion when updating to a newer version of Hugo, had to change a couple things with the theme which did not take too long to fix. Curious to see how comments will be implemented though. Does not sound straightforward to add to a SSG.
by zenoprax | 2026-01-04 16:13:22+00:00
Activities function best as "context domains" (the classic split is "Personal" and "Work") while preserving your existing Workspaces.

I use workspaces to group apps/tasks/programs functionally (eg. "Active Projects", background stuff like music or a long running terminal task, no tiling).

Some things like Obsidian or Spotify are open on multiple Workspaces and multiple activities at the same time but only require a single instance.
by checker659 | 2026-01-04 16:13:53+00:00
I don't know about that. All I'm pointing out is that just because US doesn't like China doesn't mean there isn't a bigger market out there. So, even if China ends up servicing that market only, that's still a big chunk of the pie. So, case in point, a Chinese DRAM maker flooding the market with cheap(er) DRAMs (or any DRAM for that matter -- thanks Micron), will end up affecting the price of DRAM in the US.
by mrkeen | 2026-01-04 16:14:15+00:00
> Muratori ... never actually shipped a game?

Ahh, I was just thinking about this morning.

Remember the Muratori v Uncle Bob debate? Back then the ad-hominems were flying left and right, with Muratori being the crowd favourite (a real programmer) compared to Uncle Bob (who allegedly didn't write software).

Then a few months ago Muratori gave a really interesting multi-hour talk on the history of OOP (including plenty of well-thought out criticism). I liked the talk, so I fully expected a bunch of "real programmers" to shoot that talk down as academic nonsense.

Anyway, looks like Muratori is right on schedule to graduate from programmer to non-programmer.
by zimmerfrei | 2026-01-04 16:14:37+00:00
It is not a coincidence that most of the various proposed alternatives to PGP (signal, wormhole, age, minisign, etc) are led by a single golden implementation and neither support nor promote community-driven specifications (e.g., at the IETF).

Over the decades, PGP has already transitioned out of old key formats or old crypto. None of us is expecting to receive messages encrypted with BassOmatic (the original encryption algorithm by Zimmermann) I assume? The process has been slow, arguably way slower than it should have after the advancements in attacks in the past 15 years (and that is exactly the crux behind the schism librepgp/opengpgp). Nonetheless, here we are, pointing at the current gpg as "the" interoperable (yet flawed) standard.

In this age, when implementations are expected (sometimes by law) to be ready to update more quickly, the introduction of new crypto can take into account adoption rates and the specific context one operates in. And still, that happens within the boundaries of a reasonably interoperable protocol.

TLS 1.3 is a case in point - from certain points of view, it has been a total revolution and break with the past. But from many others, it is still remarkably similar to the previous TLS as before, lots of concepts are reused, and it can be deemed as an iteration of the same standard. Nobody is questioning its level of interoperability, and nobody is shocked by the fact that older clients can't connect to a TLS 1.3-only server.
by jrmg | 2026-01-04 16:14:42+00:00
The ‘thesis statement’ at the top (It’s contradictory to sit alone in a café. It’s against the reason cafés exist.) is entirely incorrect - and it’s odd that the author thought like that. But I don’t think they deserve to be denigrated.

The post is eloquently written, and if it inspires people to take a little time for themselves the world will be a little of a better place because of it. And posting it makes the author a little vulnerable; I’d much rather people write posts like this than self-censor because they’d be exposed to ridicule.
by nodja | 2026-01-04 16:14:46+00:00
I've run the first of the sample images through 3 captioning models, an old old ViT based booru style tagger, a more recent one and qwen 3 omni. All models successfully identified visual features of the image with no false positives at significant thresholds (>0.3 confidence)

I don't know what nightshade is supposed to do, but the fact that it doesn't affect the synthetic labeling of data at all leads me to believe image model trainers will have close to 0 consideration of what it does when training new models.
by rendaw | 2026-01-04 16:14:53+00:00
It was partial, but IIRC Arch Linux made the switch to get rid of at least some of the directories previously: https://archlinux.org/news/binaries-move-to-usrbin-requiring...

Edit: Oh haha, this article was posted 13 years ago and there was a similar thread which is how I dug up that link... https://news.ycombinator.com/item?id=5944594
by analog31 | 2026-01-04 16:15:34+00:00
Interestingly, persuading young people to vote would have this effect too. You could double the effectiveness of your vote by inviting your friend to vote. Instead, the young are persuaded that their vote won’t matter. Also, making voting generally more effective would help. In my state (Wisconsin) there are only four consequential elections: President, US Senator, Governor and state Supreme Court. Everything else is gerrymandered.
by drinkfluoride | 2026-01-04 16:15:35+00:00
Location US:
Remote: Yes
Willing to relocate:
Technologies: PyTorch, Docker, Python, Java, AWS, Machine Learning,
Résumé/CV: https://github.com/qiyam/resume/blob/main/cv_2025_12_19.pdf
Email: qwvako@gmail.com
by ruralfam | 2026-01-04 16:17:25+00:00
When Coffee People was just one shop in Portland, went there every day before work. (B4 internet or phones.) Loved the shop, but they played pretty aggressive rock. Not adverse to it, but first thing in the morning... Anyway was a regular. They played music via a CD player. I noticed they often silently mouthed the lyrics to the background music. Talked them into including a CD I gave them: Cecilia Bartoli "Heroines" (Rosinni). Over time it made it into the regular rotation. I noticed after a while the staff would also silently mouth the "words" being sung. Good times. Long ago.
by cosmic_cheese | 2026-01-04 16:17:26+00:00
GNOME is a much closer match for iPadOS than it is macOS due to how far it goes with minimalism, as well as how it approaches power user functionality (where macOS might move it off to the side or put it behind a toggle, GNOME just won’t implement it at all). Extensions can alleviate that to a limited extent, but there are several aspects that can’t be improved upon without forking.
by stevendgarcia | 2026-01-04 16:17:27+00:00
Your comment got my wheels turning so.. quick followup.

Since you lived with this for such a long stretch, I'd love your gut reaction to the specific escape hatches I'm building in to avoid the rigidity trap:

1. Arenas grow, not fixed:

Unlike stack frames, the arenas in my model can expand dynamically. So it's not "size for worst case"—it's "grow as needed, free all at once when scope ends." A request handler that processes 10 items or 10,000 items uses the same code; the arena just grows.

2. Handles for non-hierarchical references

When data genuinely needs to outlive its lexical scope or be shared across the hierarchy, you get a generational handle:

let handle = app_cache.store(expensive_result)
// handle can be passed around, stored, retrieved later
// data lives in app scope, not request scope

The handle includes a generation counter, so if the underlying scope dies, dereferencing returns None instead of use-after-free.

3. Explicit clone for escape:

If you need to return data from an inner scope to an outer one, you say `clone()` and it copies to the caller's arena. Not automatic, but not forbidden either.

4. The hierarchy matches server reality:

App (config, pools, caches)
└── Worker (thread-local state)
└── Task (single request)
└── Frame (loop iteration)

For request/response workloads, this isn't an artificial constraint—it's how the work actually flows. The memory model just makes it explicit.

Where I think it still gets awkward:

* Graph structures with cycles (need handles, less ergonomic than GC)

* FFI with libraries expecting malloc/free (planning an `unmanaged` escape hatch)

* Long-running mutations without periodic scope resets (working on incremental reclamation)

Do you think this might address the pain you experienced, or am I missing something? Particularly curious whether the handle mechanism would have helped with the cases where you had to hammer code into the hierarchy.
by kennywinker | 2026-01-04 16:17:38+00:00
First, the IPC famine scale is a scale in phases, not a simple yes-no binary.

Second, yes there is a war going on - solid data is hard to come by. But that’s a lack of data, not a change in their criteria. You can read their full mortality analysis and reasoning starting on page 24 https://www.ipcinfo.org/fileadmin/user_upload/ipcinfo/docs/I...

The conclusion is:

>Considering the available evidence, and in line with
the IPC Guidance Note on Famine Classification,64
the FRC infers from the available data that mortality
thresholds for Famine have already been exceeded in
Gaza Governorate. Based on expert judgement, we also
conclude that the Famine thresholds for mortality have
not yet been crossed in Deir al-Balah or Khan Younis
governorates.

No goalposts moved. Based on the data we have, people are dying of malnutrition.
by rabf | 2026-01-04 16:18:00+00:00
Fractional scaling is a really bad solution. The correct way to fix this is to have the dpi aware applications and toolkits. This does in fact work and I have ran xfce under xorg for years now on hi-dpi screens just by setting a custom dpi and using a hi-dpi aware theme. When the goal is to have perfect output why do people suddenly want to jump to stretching images?
by peheje | 2026-01-04 16:18:08+00:00
I don't necessarily disagree with providing context, but my concern is that comments eventually lie. If the business rule evolves (say the window moves to 5 days) the comment becomes a liability the moment someone updates the code but forgets the prose.

The comment also leaves me with more questions: how do you handle multiple identical amounts in that window? I would still have to read the implementation to be sure.

I would prefer encoding this in an Uncle Bob style test. It acts as living documentation that cannot get out of sync with the code and explains the why through execution. For example:

test("should_match_debit_with_credit_only_if_within_three_day_settlement_window", () => {
const debit = A_Transaction().withAmount(500.00).asDebit().on(JANUARY_1);
const creditWithinWindow = A_Transaction().withAmount(500.00).asCredit().on(JANUARY_4);
const creditOutsideWindow = A_Transaction().withAmount(500.00).asCredit().on(JANUARY_5);

expect(Reconciliation.tryMatch(debit, creditWithinWindow)).isSuccessful();
expect(Reconciliation.tryMatch(debit, creditOutsideWindow)).hasFailed();
});

This way, the 3 day rule is a hard requirement that fails the build if broken rather than a suggestion in a comment block.
by pwdisswordfishy | 2026-01-04 16:18:40+00:00
Mmm...

ageAlertThresholdHours = 24 + // backup interval
2 + // approx backup duration
2; // "wiggle room"

No static assert needed, no need to pre-compute the total the first time, and no need to use identifiers like `approxBackupDurationHours`, the cognitive override about the possibility of colliding with other stuff that's in scope, or the superfluous/verbose variable declaration preamble.
by onion2k | 2026-01-04 16:18:40+00:00
On the frontend, you have build pipelines, bundlers, CSS frameworks with their own toolchains, progressive web apps, Core Web Vitals, SEO, layout shifts, srcset/responsive images…

I've been making web stuff for a similar length of time as Mattias by the sounds of it. I started with Perl but moved to PHP 4 pretty soon after. I recognise this problem but I have different take.

All the complexity was there 20 years ago, but we ignored it. That doesn't mean it was simpler. It just means we took crazy (with hindsight) risks. Sure, there were no build pipelines like today, but we had scripts we ran to build things. There was Adobe Pagemill for making site wide changes before we deployed a new version. Back in the day we made those changes, did a very brief check that things worked locally, and then manually FTP'd files to a server, breaking it in the process because a user would see the site change as they navigated. Some of us would put up a maintenance page during an update effectively just blocking all the traffic. That's certainly 'simpler', but it's also much worse for the user, and on a site that did things with data potentially risked corrupting a user's records. It was incredible that things didn't break more often. Maybe they did and we just never realised.

We didn't have CSS frameworks but we certainly did have our own in-house templates, and they had separate toolchains. As time went on that toolchain mostly migrated to Wordpress and it's template builder plugins. Again, give me Tailwind over that mess.

We had Core Web Vitals and SEO in the form of Urchin Stats. We had layout shift but we called it FOUC. We had kind of had srcset, but it was implemented as a set of Macromedia Dreamweaver mm_ JS image preload and swapping functions. <picture> is a lot nicer.

Things are just better now. Writing web software is loads of fun. I also leverage LLMs in my code because they're awesome, but not to simplify things. I don't think the complexity is new. I just think it's visible now.
by JumpinJack_Cash | 2026-01-04 16:18:51+00:00
> > Random unproven accusations, conspiracy theories and repetition of “facts” that have been disproven long ago.

Every person who has been out in the world had to deal with a Trump like person in the workplace or wherever .

And people don't like it, as a matter of fact they despise it, he's only kept afloat by those who fail to connect the abusive bullying behavior of DJT with their own personal experience with a similar character and those who enjoy bullying or are paitiently waiting in line to do some bullying.
by b112 | 2026-01-04 16:19:02+00:00
Blame the managers who weren't users of the site, decided it wasn't important to the business, and ignored the problems.

This always cracks me up. I've seen it so many times, and so many books cover this...

Classic statement is "never take your eye off the ball".

Sure, you need to plan ahead. You need to move down a path. But take your eye off of today, and you won't get to tomorrow.

Maybe they'll SCO it, and spend the next 10 years suing everyone and their LLM dog.

You know, I wonder how the board and execs made out suing Linux related... things. End users were threatened too, compelled to pay...

SO could be spun off into a neat tiger, nipping at everyone's toes.
by ffsm8 | 2026-01-04 16:19:23+00:00
i think youre not hearing what - at least i - was saying.

I never said that running the same connectivity and NAT traversal via 2 nodes which are both inside of a NAT is possible.
Neither did I ever claim you dont need a static public IP which _isnt_ behind a NAT / has an open port.

With Tailscale, these are being provided to you by them.
Without them, you would have to maintain that yourself.
This is a significant maintenance burder, which is why I - as in my very first comment you yourself responded to - pointed out that the service theyre providing is great and that i use it myself for that as well.

Nonetheless, _if wireguard was blocked, tailscaile wouldn't work either_

But its not blocked. Hence tailscale works. Just like wireguard would work, if you configured NAT traversal in some way.
To get that working, you have multiple options, one of these being the STUN server.
Another being an active participants in the VPN which facilitates the connection (not just the initiation, which the STUN server would be doing). Either to configure and maintain, but less performant.

Tailscale themselves actually have an incredibly indepth article on how they've implemented it on their end, its a little aged at this point, but I suspect they havent changed much (if any) since

https://tailscale.com/blog/how-nat-traversal-works
by graynk | 2026-01-04 16:20:12+00:00
So -o "%(channel)s - %(title)s.%(ext)s", --batch-file and optionally --download-archive?

https://github.com/yt-dlp/yt-dlp#:~:text=channel%20%28string...

https://github.com/yt-dlp/yt-dlp#:~:text=%2Da%2C%20%2D%2Dbat...

https://github.com/yt-dlp/yt-dlp#:~:text=%2D%2Ddownload%2Dar...

Not to mention that the script is clearly LLM-generated
by simoncion | 2026-01-04 16:20:40+00:00
> ...what goal does Redhat have in "forcing wayland on users"?

The same goal any group of savvy corporate employees has when their marquee project has proved to be far more difficult, taken way longer, and required far more resources than anticipated to get within artillery distance of its originally-stated goal?

I've personally seen this sort of thing play out several times during my tenure in the corporate environment.
by bschwindHN | 2026-01-04 16:20:48+00:00
Depends on the complexity of the model and how you organize it. If it's broken into functions where one function is one relatively simple part of the model, things work pretty nicely. And names are scoped to the function so you don't have to worry about polluting some global scope.

But if you're making something very complicated, code-based CAD sort of falls apart, which is why I'd love to see some sort of hybrid approach.
by llm_nerd | 2026-01-04 16:20:49+00:00
All 100% true, it is more muted, but another effect that happens is that when a source is a sure thing on HN, it's self-reinforcing. People start watching those sites for new entries and submit them, and HN's automatic behaviour is that if you submit an entry that already exists, it just upvotes the existing entry.

Get dozens of people watching the hot blogs for content, each running to submit it, and in an instant it's to the front page and the reinforcement redoubles.
by danaris | 2026-01-04 16:21:01+00:00
You really are absolutely determined to insist that this should not be a factor for anyone in deciding whether to get a Tesla, aren't you?

To the best of my knowledge (and I would be willing to bet money on it), no one in the history of the world has died from the cyanide in almond milk. Despite many millions of cartons of almond milk being sold and consumed every year.

A nontrivial number of people are known to have died specifically because of this failure of Teslas. It is not a hypothetical. It is a real, measurable danger.

Is that number high enough for any given person to choose not to get one? Well, it's high enough for me. And I think that arguing that it shouldn't be even a consideration, as you appear to be, is, at best, disingenuous, and at worst, actively risking people's lives for the sake of supporting a company you happen to like.
by Aurornis | 2026-01-04 16:21:55+00:00
I think this is an epiphany everyone has to get through before making LLMs really useful.

> An LLM wants to agree with both, it created plausible arguments for both. While giving "caveats" instead of counterarguments.

My hypothesis is that LLMs are trained to be agreeable and helpful because many of their use cases involving taking orders and doing what the user wants. Additionally, some people and cultures have conversational styles where requests are phrased similarly to neutral questions to be polite.

It would be frustrating for users if they asked questions like “What do you think about having the background be blue?” and the LLM went off and said “Actually red is a more powerful color so I’m going to change it to red”. So my hypothesis is that the LLM training sets and training are designed to maximize agreeableness and having the LLM reflect tones and themes in the prompt, while discouraging disagreement. This is helpful when trying to get the LLM to do what you ask, but frustrating for anyone expecting a debate partner.

You can, however, build a pre-prompt that sets expectations for the LLM. You could even make a prompt asking it to debate everything with you, then to ask your questions.
by qweiopqweiop | 2026-01-04 16:22:02+00:00
It shouldn't feel weird not to look at your phone, but approximately 98.5% of the population will do so (unless perhaps they're the older generation).

When you're so addicted to checking at your phone (like me and many others), it does feel weird to sit and not look at it.

I say this to help you understand, nothing more.
by n8henrie | 2026-01-04 16:22:36+00:00
Tried to migrate to Hugo from Jekyll multiple times and have bounced off every time. Don't really know Go very well, but better than Ruby, and used this as justification -- since dealing with Jekyll updates was sometimes a headache (I use GitHub Pages for free hosting and let them build things for me when I push updates).

Instead I eventually just created an environment in nix that had compatible dependency versions to what GitHub uses and have been pleased since.
by chubot | 2026-01-04 16:24:21+00:00
They don't have "skin in the game" -- humans anticipate long-term consequences, but LLMs have no need or motivation for that

They can flip-flop on any given issue, and it's of no consequence

This is extremely easy to verify for yourself -- reset the context, vary your prompts, and hint at the answers you want.

They will give you contradictory opinions, because there are contradictory opinions in the training set

---

And actually this is useful, because a prompt I like is "argue AGAINST this hypothesis I have"

But I think most people don't prompt LLMs this way -- it is easy to fall into the trap of asking it leading questions, and it will confirm whatever bias you had