MurphyA/hacker-news huggingface dataset:
by m4rtink | 2025-12-23 22:26:50+00:00
Yeah, I have been working on the RHEL and Fedora installer since 2013 and already back then it had a long history almost lost to time - the git history goes all the way back to 1999 (the history was imported from CVS, as it predates Git) and that actually only cover the first graphical interface - it had automated installation support via kickstart and a text interface long before that, but the commit history has been apparently lost. And there seems to have been even some earlier distict installer before Anaconda, that likely also supported some sort of automated install.

BTW, we managed to get the earlies history of the project written down here by one of the earliest contributors for anyone who might be interested:

https://anaconda-installer.readthedocs.io/en/latest/intro.ht...

As for how the automated installation on RHEL, Fedora and related distros works - it is indeed via kickstart:

https://pykickstart.readthedocs.io/en/latest/

Note how some commands were introduced way back in the single digit Fedora/Fedora Core age - that was from about 2003 to 2008. Latest Fedora is Fedora 43. :)
by Jensson | 2025-12-23 22:27:17+00:00
> Right now, a single developer with Claude code can very easily overwhelm even a couple of testers with new code to test.

Because there are endless errors and problems that never gets fixed with AI coding. The reason testers ran out of things to test before was that developers tested themselves before sending it over, if you take a bunch of cowboy coders coding thousands of lines a day with no testing whatsoever before throwing it over to the testers you would say you don't have enough testers even if you had thousands.
by hamasho | 2025-12-23 22:27:18+00:00
> The moment you hand them something fuzzy, though, like ...
> “we should probably think about scaling”,
> that’s when you see the difference.

Senior engineers should ask, "but do we need scaling? And if it does, how much needed now and future?"
But I've seen a lot of seniors who jumped to implementing an unnecessarily complicated solution without questions, because they don't think about it too much, want to have fun, or just don't have energy to argue (I'm guilty myself).
by MillironX | 2025-12-23 22:27:24+00:00
> A key assumption in my argument is that the marginal benefit of spending more time on an exam is always nonnegative

That is a very bold assumption, and I doubt the data supports it.

I couldn't find much published research on the correlation, just this one paper: https://journals.sagepub.com/doi/pdf/10.2304/plat.2009.8.2.5.... It shows no correlation between time on exams and final score, but its methodology is questionable.
by cycomanic | 2025-12-23 22:27:49+00:00
This is such a funny take, I remember all throughout the 90s and 00s (and maybe even 10s, not playing much then anymore) you often could new games on acceptable settings with a 1-2 year old high spec machine, in fact to play at highest settings you often needed ridiculously spec'ed machines. Now you can play the biggest titles (CP77, BG3 ...) on 5-10 year old hardware (not even top spec), with non or minimal performance/quality impact. I mean I've been playing BG3 and CP77 on highest settings on a PC that I bought 2 years ago used for $600 (BG3 I was playing when it had just come out).
by dijit | 2025-12-23 22:28:10+00:00
That argument holds no water. IOUring is essential for the performance of some modern POSIX programs.

You can see shims for fork() to stop tanking performance so hard too. IOUring doesnt map at all onto IOCP, at least the windows subtitute for fork has “ZwCreateProcess“ to work from. IOUring had nothing.

IOCP is much nicer from a dev point of view because your program can be signalled when a buffer has data on it but also with the information of how much data, everything else seems to fail at doing this properly.
by justvugg | 2025-12-23 22:28:27+00:00
Hi HN,

I’ve released an update to PolyMCP, a Python framework for interacting with MCP servers using custom agents.

A common issue in MCP projects is that too many tools get loaded at once, wasting tokens and confusing agents. This update fixes that at a structural level.

What’s new (Python-only for now):
• Skills system: tools are grouped into skills and loaded only when relevant to a request
• Lower token usage and better accuracy thanks to smaller tool contexts
• More ways to run MCP servers in Python: beyond HTTP, you can now use stdio and WASM

PolyMCP aims to make MCP usage simpler, modular, and closer to real developer workflows.

Feedback, critiques, or ideas for improvement are very welcome!
by ThrowawayR2 | 2025-12-23 22:29:11+00:00
> "A few decades ago, tech, science and liberalism were bedfellows in the Bay Area."

A few decades ago was before the meteoric internet and mobile web boom and the deluge of non-hackers with CS degrees and MBA types with dollar signs in their eyes that flooded into the tech industry. The hacker ethos turned from "information wants to be free" into "f--- you, pay me" in only a few short years simply because the old guard was diluted away to nothingness by so many newcomers.
by alexdowad | 2025-12-23 22:29:21+00:00
Lua isn't my primary programming language now, but it was for a while. My personal experience on the library ecosystem was:

It's definitely smaller than many languages, and this is something to consider before selecting Lua for a project. But, on the positive side: With some 'other' languages I might find 5 or 10 libraries all doing more or less the same thing, many of them bloated and over-engineered. But with Lua I would often find just one library available, and it would be small and clean enough that I could easily read through its source code and know exactly how it worked.

Another nice thing about Lua when run on LuaJIT: extremely high CPU performance for a scripting language.

In summary: A better choice than it might appear at first, but with trade-offs which need serious consideration.
by lioeters | 2025-12-23 22:29:29+00:00
I don't write modern C for daily use, so I can't really say. But I've been re-learning and writing C99 more these days, not professionally but personal use - and I appreciate the smallness of the language. Might even say C peaked at C99. I mean, I'd be crazy to say that C-like languages after C99, like Java, PHP, etc., are all misguided for how unnecessarily big and complex they are. It might be that I'm becoming more like a caveman programmer as I get older, I prefer dumb primitive tools.
by Groxx | 2025-12-23 22:29:39+00:00
re NPUs: they've been a marketing thing for years now, but I really have no idea how many of them are actually used when you run [whatever]. particularly after a year or two of software updates.

anyone have numbers? are they just an added expense that is supported for first party stuff for 6 months before they need a bigger model, or do they have staying power? clearly they are capable of being used to save power, but does anything do that in practice, in consumer hardware?
by imiric | 2025-12-23 22:29:43+00:00
This has always been possible, even if you weren't a programmer. You just needed to have the desire to customize your computing environment, and the time and patience to do it.

There is so much software out there, written by people who wanted to solve their particular problem, just like you. Chances are that some of it will fit your needs, and, if the software is flexible enough, will allow you to customize it to make that fit even better.

This is why the Unix philosophy is so powerful. Small independent programs that do one thing well, which can be configured and composed in practically infinite number of ways. I don't need to write a file search or sorting program, nor does the file search program need to implement sorting. But as a user, I can compose both programs in a way to get a sorted list of files by any criteria I need. This is possible without either program being aware of the other, and I can compose programs written decades ago with ones written today.

You can extend this to other parts of your system as well. Instead of using a desktop environment like GNOME, try using a program that just manages windows. Then pick another program for launching applications. And so on. This is certainly more work than the alternative, but at the end of the day, you feel like you are in control of your computer, instead of the other way around.
by cobertos | 2025-12-23 22:30:18+00:00
Sublime Text for example[0], the source is closed, so what else is there to do

[0]: https://github.com/NixOS/nixpkgs/blob/76701a179d3a98b07653e2... (does a fetch URL against the pre built .tar.gz from https://download.sublimetext.com)
by IshKebab | 2025-12-23 22:30:39+00:00
It's useful for shared spaces like schools, universities and internet cafes. The point is that without it you can display a fake login screen and gather people's passwords.

I actually wrote a fake version of RMNet login when I was in school (before Windows added ctrl-alt-del to login).

https://www.rmusergroup.net/rm-networks/

I got the teacher's password and then got scared and deleted all trace of it.
by tylertyler | 2025-12-23 22:30:52+00:00
I've found that WebM works much better because of the structure of the data in the container. I've also gone down similar routes using outdated tech and even inventing my own encoder and decoders trying to smooth things out but what I've currently found is the best current approach is using WebM because it is easier to lean on hardware encoder and decoders including across browsers with the new WebCodecs APIs. What I've been working on is a little different than what is in this post but but I'm pretty sure this logic still stands.
by jarofgreen | 2025-12-23 22:30:56+00:00
Some of it is different, but the basics are still the same and still relevant. Just today I've been working with some of this.

I took a Django app that's behind an Apache server and added cache-control and vary headers using Django view decorators, and added Header directives to some static files that Apache was serving. This had 2 effects:

* Meant I could add mod_cache to the Apache server and have common pages cached and served directly from Apache instead of going back to Django. Load testing with vegeta ( https://github.com/tsenart/vegeta ) shows the server can now handle multiples more simultaneous traffic than it could before.

* Meant users browsers now cache all the CSS/JS. As users move between HTML pages, there is now often only 1 request the browser makes. Good for snappier page loads with less server load.

But yeah, updating especially the sections on public vs private caches with regards to HTTPS would be good.
by pvitz | 2025-12-23 22:31:02+00:00
From the manual:

The control variable in for loops is read only. If you need to change it, declare a local variable with the same name in the loop body.

Also [0]:
Roberto Ierusalimschy
> So what's the rationale to make them constant now? Does it have performance
> reasons?

Yes. The old code does an implicit "local x = x" for all loops, in case
you modify 'x'. With the new semantics, the code only does it when you
ask for it.

[0] https://groups.google.com/g/lua-l/c/SlAG5QfpTac
by drag0nblad3 | 2025-12-23 22:31:24+00:00
ExecuTorch developer here, agreed it's a huge pain to deal with if conditions right now. Part of the pain comes from the vast expressiveness of python on if condition, which causes all ML compiler a lot of headache to be able to capture a sound graph. The rest of the pain comes from the strict requirement of torch.compile itself (no mutation/aliasing behavior in the if branches), which in often times makes torch.cond hard to use or inefficient.
by ddtaylor | 2025-12-23 22:31:49+00:00
Yes, but the real issue (IMO) is that something is causing an avalanche of some kind. You would much rather have a consistent 100ms increased latency for this application if it works much better for users with high loss, etc. Also, to be clear, this is basically just a memory cache. I doubt it would add any "real" latency like that.

The idea is that if the fancy system works well on connection A and works poorly on connection B, what are the differences and how can we modify the system so that A and B are the same from it's perspective.
Show HN: SafeSnipe AI – Rug pull detector for Solana meme coins
by botbuilder | 2025-12-23 22:32:03+00:00
Built this after losing money on Pump.fun rug pulls.

Scans tokens for:
- Liquidity verification
- Whale concentration
- Contract safety
- Token age

Takes 10 seconds vs 10 minutes of manual checking.

Tech: Supabase + Netlify + vanilla JS. Would love feedback!
by NooneAtAll3 | 2025-12-23 22:32:04+00:00
I'm so confused by the first task...

specifically I got hit with "chimpanzees and humans have common ancestor" (or something like that)

definition for a "fact" (supposed correct answer) given on the page ("A basic statement established by experiment or observation. True under specific conditions.") seems to me akin to "direct result of some experiment"

meanwhile, determining common ancestry - in my mind - took a lot of work, comparing anatomy, digging out bones and stuff... all the correlation, all the composition

surely it's more of a theory that's supported by many facts?
by beezlebroxxxxxx | 2025-12-23 22:32:11+00:00
If you liked Andrei Rublev, you should check out Alexei German's adaptation of the Strugatsky brothers "Hard to Be a God." It's insane, gorgeous, disgusting, teetering on the edge of madness, and monumental.

German's "Khrustalyov, My Car!" is also the purest cinematic distilation of paranoia I have ever seen.
by m4rtink | 2025-12-23 22:32:28+00:00
Add to that all the bullshit they have been pushing on their customers lately:
* OS level adds

* invasive AI integration

* dropping support for 40% of their installed base (Windows 10)

* forcing useless DRM/trusted computing hardware - TPM - as a requirement to install the new and objectively worse Windows version version, with even more spying and worse performance (Windows 11)

With that I think their prospects are bleak & I have no idea who would install anything else than Steam OS or Bazzite in the future with this kind of Microsoft behavior.
by brikym | 2025-12-23 22:32:42+00:00
You should really put some usage instructions on the README.

uv run --with PyMuPDF --with pillow ./unredactor-main/unredact.py

I tried a couple PDFs but get "Failed to open PDF: bad argument type for built-in operation".

Redactle.net has something similar where you can double-click or tap-hold then type a note over the redacted word.
by otterley | 2025-12-23 22:33:02+00:00
> those ingested logs are not logs for you, they are customer payload which are business criticial

Why does that make any difference? Keep in mind that at large enough organizations, even though the company is the same, there will often be an internal observability service team (frequently, but not always, as part of a larger platform team). At a highly-functioning org, this team is run very much like an external service provider.

> I've yet to see a Logging as a Service provider not have outages where data was lost or severely delayed.

You should take a look at CloudWatch Logs. I'm unaware of any time in its 17-year history that it has successfully ingested logs and subsequently lost or corrupted them. (Disclaimer: I work for AWS.) Also, I didn't say anything about delays, which we often accept as a tradeoff for durability.

> And for the capacity side, again the design question is "what happens when incoming events exceed our current capacity - all the collectors/relays balloon their memory and become much much slower, effectively unresponsive, or immediately close the incoming sockets, lower downstream timeouts, and so on."

This is one of the many reasons why buffering outgoing logs in memory is an anti-pattern, as I noted earlier in this thread. There should always -- always -- be some sort of non-volatile storage buffer in between a sender and remote receiver. It’s not just about resilience against backpressure; it also means you won’t lose logs if your application or machine crashes. Disk is cheap. Use it.
by justatdotin | 2025-12-23 22:33:07+00:00
> Unfortunately it means those languages will be the permanent coding platforms.

not really,

I suspect training volume has a role in debugging a certain class of errors, so there is an advantage to python/ts/sql in those circumstances: if, as an old boss once told me, you code by the bug method :)

The real problems I've had that hint at training data vs logic have been with poorly documented old versions of current languages.

To me, the most amazing capability is not the code they generate but the facility for natural language analysis.

my experience is that agent tools enable polyglot systems because we can now use the right tool for the job, not just the most familiar.
by thewebguyd | 2025-12-23 22:33:13+00:00
> When developing for Linux becomes more and more attractive this might change.

If one (or maybe two) OSes win, then sure. The problem is there is no "develop for Linux" unless you are writing for the kernel.

Each distro is a standalone OS. It can have any variety of userland. You don't develop "for Linux" so much as you develop "for Ubuntu" or "for Fedora" or "for Android" etc.
by drewg123 | 2025-12-23 22:33:25+00:00
Third-party accessories like smart watches will be able to receive notifications from the iPhone

This seems incorrect, or at least misleading. I have always (since I switched to iPhone in 2020) been receive notifications on my Garmin Fenix watch. In fact, the only problem I have with notifications is that I have no ability to blacklist apps from notifying on my watch, and its all or nothing. This is a huge downgrade from Android, and I wish whomever is responsible could fix that.. That's probably my biggest annoyance with my iphone.
by rogerbinns | 2025-12-23 22:33:39+00:00
In 1994 at the second WWW conference we presented "An API to Mosaic". It was TCL embedded inside the (only![1]) browser at the time - Mosaic. The functionality available was substantially similar to what Javascript ended up providing. We used it in our products especially for integrating help and preferences - for example HTML text could be describing color settings, you could click on one, select a colour from the chooser and the page and setting in our products would immediately update. In another demo we were able to print multiple pages of content from the start page, and got a standing ovation! There is an alternate universe where TCL could have become the browser language.

For those not familiar with TCL, the C API is flavoured like main. Callbacks take a list of strings argv style and an argc count. TCL is stringly typed which sounds bad, but the data comes from strings in the HTML and script blocks, and the page HTML is also text, so it fits nicely and the C callbacks are easy to write.

[1] Mosaic Netscape 0.9 was released the week before
by bugufu8f83 | 2025-12-23 22:35:08+00:00
>Setting aside...the LLM writing style

I don't want to set that aside either. Why is AI generated slop getting voted to the top of HN? If you can't be bothered to spend the time writing a blog post, why should I be bothered spending my time reading it? It's frankly a little bit insulting.
by cosmic_cheese | 2025-12-23 22:35:10+00:00
I thought it was relatively common knowledge within technical circles to never give smart TVs an internet connection, but I suppose not.

Also, it's worth noting that TVs built on Android TV have a massive advantage here in that you can plug them into your laptop and remove the content recognition package using adb (Android Debug Bridge) just like you might with a phone or tablet. This might be possible with Samsung Tizen and LG webOS devices too, but both are going to require more esoteric tooling.
by WalterBright | 2025-12-23 22:35:11+00:00
Consider the inputs the avionics had:

1. 40/60 kts on pitot tubes - could that be showing a flat spin?

2. rotating compass - flat spin?

3. altitude drop - stall

4. attitude - level, no bank

5. engines - operating normally

6. GPS - no forward progress

Does that add up to a stall?
by dijit | 2025-12-23 22:35:25+00:00
Hinging senior evaluations on junior promotions directly fuels the title inflation I’m decrying. Desperate to show “impact through development,” seniors (or managers) push for premature title bumps; turning fresh juniors into “mids” or “seniors” without the skills to match, just to hit metrics.

This is rampant in tech, where inflated titles compensate for everything from low pay to talent wars, eroding expertise and making hiring a nightmare.

We end up with a system that prioritises optics over substance, where growth takes a backseat to checkbox promotions. It’s frustrating and counterproductive.

Mentorship should inspire organic development, not force-fed ladders that collapse under their own weight!

Instead, let’s measure seniors holistically, decoupling from junior title escalations to allow people to excel at their level indefinitely. Alternatives include:

* Technical Proficiency and Individual Contributions: Use code reviews, technical assessments, or metrics like deployment frequency and bug resolution rates to gauge a senior’s direct impact, without needing to “graduate” juniors.

This focuses on their own output and problem-solving prowess.

* Knowledge Sharing and Enablement: Track things like workshops led, documentation created, or peer feedback on guidance quality via 360 reviews—emphasising team uplift without mandatory promotions.
* Project Outcomes and Efficiency: Evaluate based on team velocity improvements, innovation (e.g., patents or architectural wins), or overall delivery success, rewarding systemic contributions over individual mentee milestones.
These methods honour diverse career paths, letting juniors stay put if it suits them while still valuing (and evaluating) senior leadership.
by XorNot | 2025-12-23 22:35:40+00:00
The heavy asterisk here is that none of this actually makes using NixOS impossible because it obviously still works. But when you get into the problem I am - and one of the major purported benefits of it which is reproducibility and traceability - this is a pretty serious issue.

So long as the NAR files in cache.nixos.org exist, everything will work - that's not a problem. But if you actually choose to exercise that traceability - which is what I've been working on - suddenly you start finding all this stuff. The problem is nixpkgs doesn't expose or archive the code: it archives a reference to code that existed somewhere at some time, and worse it obfuscates what the code was - I can obviously still go get it from the NAR files, but I can't get any of the context surrounding it.

By contrast, things like the Fedora and Debian patching systems have - crucially - actual archives of what they're building, the patches they're building them with, and the commit messages or other notes on why those patches are being applied and the change record of them. With NixOS you get a bunch of hashes that terminates on "wefu123r23hjcowiejcwe.nar" and you don't know what that is until nixpkgs happens to evaluate it and calculate it, which means it's impossible to even know up-front what's going to be pulled in.

Then of course you get to practical matters: just because you can exactly specify dependencies doesn't mean you should - we all realized with containers that having a couple dozen versions of libraries kicking around is a bad idea (and lo and behold that's what traditional distro packaging tries to minimize) - and that's where all those calculated paths burn you anyway. Nix is a fairly freeform programming language, so it's nigh impossible to stop some snowflake package from pulling in a different version of a compiler or library even if I can see it happening (example I currently have: 5 different version of Rust, 5 different versions of Golang - and the invariant I want on that is "no, it's this version and you deal with it" - but there's a lot of ways nix will let you make this which are very resistant to static analysis or automated correction).