MurphyA/hacker-news huggingface dataset:
by thyristan | 2025-11-19 13:40:30+00:00
Git ergonomics were far far better than the rest because of one reason that all the supposedly more ergonomic projects like Bazaar, Mercurial, SVN, ClearCase and lots of others failed miserably at:

Performance.

Since the CVS days, Version Control Systems got slower and slower. Centralized servers worsened the problem by doing everything in a synchronous manner, making people wait for locks, wait for checkouts, wait for diffs, wait for everything. But even the distributed ones like bzr or hg were slow as hell. What git enabled was the far superior ergonomics of not having to get a coffee while running a "git diff" on a project the size of the Linux kernel, X.org or LibreOffice. All the whining about inconsistent command line options and weird subcommand naming is totally secondary to this.

Nowadays, many of the aforementioned competitors either died out or worked on their performance problems. Nonetheless, git is still unmatched in this regard.
by miyuru | 2025-11-19 13:40:39+00:00
>It goes over my head why Cloudflare is HN's darling while others like Google, Microsoft and AWS don't usually enjoy the same treatment.

Do the others you mentioned provide such detailed outage reports, within 24 hours of an incident? I’ve never seen others share the actual code that related to the incident.

Or the CEO or CTO replying to comments here?

>Press Release

This is not press release, they always did these outage posts from the start of the company.

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
by quotemstr | 2025-11-19 13:40:48+00:00
In C++, functions are error-colored by default. You write "noexcept" if you want your function to be infallible-colored instead.

(You usually want to make a function infallible if you're using your noexcept function as part of a cleanup path or part of a container interface that allows for more optimizations of it knows certain container operations are infallible.)

Rust makes infallibility the syntactic default and makes you write Result to indicate fallibility. People often don't want to color their functions this way. Guess what happens when a programmer is six levels deep in infallible-colored function calls and does something that can fail.

.unwrap()

Guess what, in Rust, is fallible?

Mutex acquire.

Guess what you need to do often on infallible cleanup paths?

Mutex acquire.
by stephen_g | 2025-11-19 13:41:22+00:00
I’ve seen one theory that it might be something to do with not needing as much chewing and how quickly you can eat it. I can’t remember exactly the article I was reading but apparently there is a massive difference (e.g. insulin spike, etc.) eating apple purée of one apple vs. eating an apple.

Needing to chew less processed food may help just by being kind of rate-limiting (slowing down how fast you can get the food in), but also the enzymes in your saliva have time to start working on the food before you swallow it.

If I recall correctly I have also read (perhaps the same article, but maybe somewhere else) that some processes related to digestion might be triggered when you start eating (chewing), so the fact that you can eat so many calories so quickly before those processes get going might make a big difference too.
by piva00 | 2025-11-19 13:41:29+00:00
I highly doubt it, I know several people who worked (and some who still work) there, no way that's the median compensation for the staff in R&D.

Quick edit: now I see they are adding the pensions into that calculation, tjänstepension is something every company in Sweden has to pay, it doesn't make sense to include it as part of the "average compensation".
by clbrmbr | 2025-11-19 13:42:38+00:00
What do you mean, they typically get half the assets and a sizable chunk of the other partner’s salary in alimony that they don’t need to give up if they do become employed, and then if childcare is needed typically this would be an extra child support expense that both parties pay for even if the erstwhile stay-at-home parent has full custody.

How would the stay-at-home parent get a bad deal here?
by throw0101c | 2025-11-19 13:42:41+00:00
> "To make error is human. To propagate error to all server in automatic way is #devops"

This saying dates back to 1969: To err is human but to really foul things up requires a computer.

* https://quoteinvestigator.com/2010/12/07/foul-computer/

Also: I know there’s a proverb which says ‘To err is human,’ but a human error is nothing to what a computer can do if it tries.

* https://quoteinvestigator.com/2017/05/26/computer-error/
by lucideng | 2025-11-19 13:42:41+00:00
Mecrosuft locked the thread. Classic.

I will say that as a Windows Administrator, the overall quality of the OS has fallen, and more attention is put into 'features' compared to performance, reliability, etc. I shouldn't have to wait for right click menus. 4gb ram should be a viable web browser and basic Office machine, even in 2025. The bigger and faster machines get, the lazier software companies get.

Generally, Windows is reliable for my Org. The OS is decent; yes it is annoying to have to remove the adware from an office machine. I struggle to understand why 16gb with a good SSD is the bare minimum to make the OS feel like it has a sense of purpose. I have 10-year-old hardware running Linux and mechanical drives that performs really well and only slows down when you're asking it to do heavy lifting.
by torginus | 2025-11-19 13:43:17+00:00
By the way - does this discussion matter and were they wrong to use unwrap()?

The way they wrote the code means that having more than 200 features is a hard non-transient error - even if they recovered from it, it meant they'd have had the same error when the code got to the same place.

I'm sure when the process crashed, k8s restarted the pod or something - then it reran the same piece of code and crashed in the same place.

While I don't necessarily agree with crashing as business strategy, I don't think that doing anything other than either dropping the extra rules or allocating more memory - neither of which the original code was built to do (probably by design).

The code made the local hard assumption that there won't ever be more than 200 rules and its okay to crash if that count is exceeded.

If you design your code around an invariant never being violated (which is fine), you have to make it clear on a higher level that they did.

This isn't a Rust problem (though Rust does make it easy to do the wrong thing here imo)
by wongarsu | 2025-11-19 13:43:23+00:00
KSP2 made some degree of sense: the game had outgrown its engine and architecture, so you start fresh with a bigger dream.

But before that had a chance to fail from second system syndrome it was doomed to fail by insane demands from Take 2. News of work on KSP2 could harm sales of KSP1, so when hiring people to work on KSP2 they couldn't mention what they were hiring for. So you had a team who didn't know KSP1, and due to budget constraints were mostly juniors. Then to "save time" they were not allowed to only pick the good parts of the old source code or to even switch engine, they were supposed to just expand the janky KSP1 code base. Obviously without being allowed to talk to the developers of that code base, because secrecy. And no talking to fans about what they would want from a KSP2 either, because, you guessed it, secrecy.

So an inexperienced team disconnected from the fan base was supposed to fix a code base they were not familiar with, without speaking to the people who wrote it, add some cool features to it that the original team never tackled due to engine limitations, and release it to massive fanfare. Surprisingly this did not work. As the project was failing went back on many of those decisions, but it's hard to fix a project that starts off so wrong

Compare to Kitten Space Agency: hire KSP1 devs and KSP1 modders so you have people who can judge what worked and what didn't, start with a home-grown engine that fits the unique demands of a KSP-like game, talk with the community during development. Obviously they aren't far enough along yet to call it a success, but I give them much better chances
by das_keyboard | 2025-11-19 13:43:27+00:00
direct link (PDF): https://www.esma.europa.eu/sites/default/files/2025-11/List_...

− Accenture plc − Amazon web Services EMEA Sarl − Bloomberg L.P. − Capgemini SE − Colt Technology Services − Deutsche Telekom AG − Equinix (EMEA) B.V. − Fidelity National Information Services, Inc. − Google Cloud EMEA Limited − International Business Machine Corporation − InterXion HeadQuarters B.V. − Kyndryl Inc. − LSEG Data and Risk Limited − Microsoft Ireland Operations Limited − NTT DATA Inc. − Oracle Nederland B.V. − Orange SA − SAP SE − Tata Consultancy Services Limited
by TZubiri | 2025-11-19 13:43:30+00:00
The problem with this whole product category is that vcs cannot track what was actually the source input and what was generated.

If I write "float exp(float base, float exp){"

Then that is the source code and the rest is generated. Mixing it all up is as dumb as uploading a compiled binary or bytecode to git.

Especially annoying when you are working with other people and you can't tell what they actually wrote and know about.
by throw0101c | 2025-11-19 13:44:27+00:00
> I don't understand why they didn't validate and sanitize the new config file revision.

The new config file was not (AIUI) invalid (syntax-wise) but rather too big:

> […] That feature file, in turn, doubled in size. The larger-than-expected feature file was then propagated to all the machines that make up our network.

> The software running on these machines to route traffic across our network reads this feature file to keep our Bot Management system up to date with ever changing threats. The software had a limit on the size of the feature file that was below its doubled size. That caused the software to fail.
by tom_alexander | 2025-11-19 13:44:43+00:00
It's the same thing. Just like how a "cash discount" is the same thing as a "credit card surcharge", the end result is the same regardless of how you word it. Simply stop using the first group. You can even be explicit by sending a message to the first group of "I'm forming a new group without Becky because she's a loser" or you can start the new group with a message "I started this new group without Becky because she's a loser" which has the added benefit of humiliating Becky as she keeps sending messages to a group that will not respond to her.
by atq2119 | 2025-11-19 13:44:51+00:00
It's important to remember that people are not some homogenous mass.

There were certainly some rich and powerful people who did intend to lower everyone (else) to a shit position.

That's what stuff like anti-union policies are about. Sure, they drape it up in nice rhetoric, but ultimately the intent is to reduce the power (and thereby the material outcomes) of the common the worker.

But of course there were also other developments that had the effect more unintentionally.
by tanya-donska | 2025-11-19 13:45:41+00:00
Last year, a SaaS company paid me to fix their onboarding. Churn was 23% monthly. Brutal.

First call, the CS lead opened their dashboard. Gorgeous interface. Real-time health scores. Customer journey maps. Risk alerts. Engagement tracking across seven touchpoints.

“We have complete visibility.”

I asked if they knew why customers were leaving.

She pulled up someone who’d canceled yesterday. Health score the day before: 76/100. Green. Healthy. Low risk.

“The algorithm didn’t flag them.”

The algorithm was spending $2,400/month being confidently wrong.
by radeeyate | 2025-11-19 13:46:35+00:00
Hi HN!

I'm Andrew, and I'm a high school student who participated in Hack Club's Apex program, which funded 30 students to built high altitude balloon (HAB) payloads.

My project, StratoSpore, was an attempt to use algae fluorescence as a biological sensor for detecting changes in altitude and stratospheric conditions.

This challenge involved a full electronics and software design cycle: - I designed PCBs based on Raspberry Pi Picos for sensor logging (AS7264 spectral sensor, temps, etc) and a Raspberry Pi Zero 2 W for data processing - Implementing a highly lossy, custom compression algorith to compress 1080p images down to 18x10 pixels for sending of LoRA (915 Mhz) along with shoving a bunch of telemetry into 45 bytes. - Unfortunately, the payload couldn't be recovered as it is stuck in a dense forest. I also had some GPS problems and had to splice some data.

This was a huge step outside my comfort zone and taught me about hardware design, logistics, and compression.

I'd love to hear and thoughts or technical critiques on the design of software. If you have any questions, I'd love to answer them. Code/hardware is on GitHub (https://github.com/radeeyate/stratospore), and I hope you enjoy the blog post!
by amiga386 | 2025-11-19 13:47:29+00:00
1. Get a copy of the Amiga 3.1 Kickstart ROM (v40) and Workbench disks (for example by legally buying Amiga Forever ... or other ways). If you do buy Amiga Forever, they've put together an Amiga emulation environment for you with lots of software pre-installed.

2. Consider buying AmiKit or using its free version: https://www.amikit.amiga.sk/ -- it needs the aforementioned Kickstart ROM and Workbench Disks, but again they've put together an Amiga emulation environment for you with lots of software pre-installed.

3. If you don't want to use those pre-made packs, install WinUAE (for Windows) or amiberry (for macOS/Linux) yourself, configure them yourself with the ROM... and use one of the ClassicWB (https://classicwb.abime.net/) hard drive images.

4. And if you don't like ClassicWB, you can also extract the Amiga hard drive image included with PiMiga 4 to enjoy an alternative pack. PiMiga is a Raspberry Pi image that includes an Amiga emulator for the Pi and a huge Amiga hard drive image -- simply use software to read the PiMiga Linux ext2 filesystem and extract that hard drive image to use it on your own emulator, no RPi needed (https://old.reddit.com/r/amiga/comments/1dfcn8u/extract_amig...)
by lysace | 2025-11-19 13:47:31+00:00
I am very happy with AmigaVision, packaged by Alex Limi (of early Mozilla Firefox UX/product fame) et al.

AmigaVision is a carefully curated collection of game and demo configurations for the Amiga computer platform, as well as a minimal Workbench setup with useful utilities and apps, wrapped in a user-friendly launcher.

https://amiga.vision/

https://github.com/amigavision/AmigaVision

I run it on a Mister FPGA but there are multiple other ways to do it, including emulators running on your regular computer.
by monegator | 2025-11-19 13:48:04+00:00
> The non-movment complainers are more of an alibi for those developers with little UI improvement interests.

True, but i also remember vehement discussions on everybody else in the world that wanted the scroll / zoom to work as in every other software in the world, and a few vocal users that would spam every thread and discussion insisting that we (the rest of the world) should have been using other software instead.

You know, the usual hostile attitude open source communities are famous for. I guess that for GIMP the moment that will change everything is when they will add a proper circle tool /s

GIMP and Inkscape are already moving in the right direction with the new UIs, fingers crossed
by AdmiralAsshat | 2025-11-19 13:48:39+00:00
> but you also have french fries, popcorn and even some nuts there

For popcorn at least, I'd assume it's the prepackaged microwavable popcorn that gets flagged as UPF, where it's encased in hydrogenated oils, salt, and preservatives. It's hard to think that popcorn you make at home could be considered UPF, considering that it's literally one ingredient with heat applied to it (and oil I guess if you're popping it on the stovetop rather than an air fryer).
by varnaud | 2025-11-19 13:48:45+00:00
The productive decline of the farms is because of the fast-track land reform. Before 2000-2001, there were no effective national programs to prepare the people to run the farms. The opposition party was gaining ground, and so to stay in power, the ruling party rushed the land reform with no preparation.

Not sure how this is a relevant example of a culture that don't value punctuality.
by stetrain | 2025-11-19 13:49:00+00:00
Even before you get to "value to shareholders" you have to actually pay your developer salaries to update the game. Where does that money come from when you're updating a game that's been on the market for 10 years and sales of new copies have tapered off?

Free major updates make your existing customers happy but don't pay salaries. This is why so many games have moved to some kind of ongoing revenue model with Battle Passes, cosmetics, item marketplaces, etc.
by ejflick | 2025-11-19 13:49:01+00:00
It is unfortunate that this field underestimates the importance of the "people" part in favor of the "computer" part. There's definitely a balance to be stricken. I do believe that languages that are designed for computers have done a pretty decent job at adapting features that are geared more towards the "people" part of the equation. Unfortunately, programmers are very tribal and are very eager to toss the wine out with the cork when it comes to ideas that may help but they've misapplied.
by __MatrixMan__ | 2025-11-19 13:49:07+00:00
I'm not against automation at all. But if all of the devs build it and get one hash and CI runs it through some gauntlet involving a bunch of third party software that I don't have any reason to trust and out pops an artifact with a different hash, then the CI has interfered with the chain of trust between myself and my user.

Maybe I've just been unlucky, but so far my experience with CI pipelines that have extra steps in them for compliance reasons is that they are full of actual security problems (like curl | bash, or like how you can poison a CircleCI cache using a branch nobody reviewed and pick up the poisoned dependency on a branch which was reviewed but didn't contain the poison).

Plus, it's a high value target with an elevated threat model. Far more likely to be attacked than each separate dev machine. Plus, a motivated user might build the software themselves out of paranoia, but they're unlikely to securely self host all the infra necessary to also run it through CI.

If we want it to be secure, the automation you're talking about needs to runnable as part of a local build with tightly controlled inputs and deterministic output, otherwise it breaks the chain of trust between user and developer by being a hop in the middle which is more about a pinky promise and less about something you can verify.
by duxup | 2025-11-19 13:49:14+00:00
I don't doubt there's fewer people in the trades, but I also don't see them making 120k generally and these claims seem questionable at best outside some very specific situations.

I worked at a company that actually paid well for a tech support team of about (roughly) 20 - 40 people at any given time covering a 24/7 schedule 365 days a year.

Over the course of TWENTY years the core group all stayed together. It was no mystery how, good training (that we did ourselves), good pay to start, good benefits, flexible / respectful management. It wasn't even 6 figures, but they were good jobs that made it hard for most everyone to leave, in a good way.

But all good things come to an end, tech support, I suspect like all "maintenance" roles they are eventually are seen as a cost and quality management starts to fade ... and everything falls apart. Management will bemoan not being able to find good people, while doing nothing to help make them good or treat them well.

I wonder how many leaders understand that it is their job to MAKE A GOOD TEAM and that it is their job to keep it that way, as opposed to expect people to just show up and do it for them?
by the__alchemist | 2025-11-19 13:49:15+00:00
I will phrase my response in an alternative form which, I mean not in a flippant way, but because I think it will clarify this, in complement to the other replies:

> Mom, may we have SolidWorks?

> We have SolidWorks at Home.

> <SolidWorks at Home>

This is in contrasti to the example the parent comment brought up, and the one I added: Blender and KiCad do not have this concern; there are free (Or you could say inexpensive) high quality tools in their spaces. This is notably not the case for traditional CAD.
by neciudan | 2025-11-19 13:49:25+00:00
Hey folks,

Just dropped a new Señors @ Scale episode that I think will interest anyone dealing with real-world security, supply chain risks, or the growing chaos around AI-driven development.

I sat down with Liran Tal (Director of Developer Advocacy at Snyk, GitHub Star, longtime open-source security contributor) to talk about what security at scale actually looks like today — not generic OWASP lists, but the attacks, patterns, and failures teams are hitting right now in 2025.

Liran has been deep in open-source ecosystems since the early days of Linux and BBS boards, and he’s spent the last decade helping devs secure massive JavaScript and Node.js environments. This episode is packed with real incidents and practical guardrails.

A few highlights:

→ How NPM malware really spreads, including worm-style packages that steal your tokens and auto-publish malicious versions → Why “upgrade everything in CI” is one of the most dangerous patterns a dev team can adopt → What actually happened in recent maintainer compromises and dependency hijacks → How MCP servers introduce entirely new attack vectors: toxic flows, prompt injection, shadowed tools, and tainted context → Why AI-generated code is statistically insecure and how to loop security scanning into the agent workflow → The SQL injection, command injection, and path traversal bugs Liran keeps finding in real MCP servers → The XZ Utils incident and how a 500ms delay uncovered a nation-state backdoor → When UX decisions accidentally create security holes (XSS, anonymous actions, permission gaps)

If you install dependencies, use AI coding agents, or maintain any production-facing Node.js or frontend systems, this conversation will probably make you rethink your threat model.

Watch: https://youtu.be/tks03l1E0IQ

Listen: https://open.spotify.com/episode/1zs8TL4sSfKUBLkTgPXeML

Apple: https://podcasts.apple.com/us/podcast/security-at-scale-with...

More from Liran: GitHub: https://github.com/lirantal

NPQ Package Checker: https://github.com/lirantal/npq

Snyk Blog: https://snyk.io/blog

LinkedIn: https://linkedin.com/in/talliran

If you're dealing with supply chain risk, AI code generation, or insecure dependencies, you’ll get a lot from this one.