MurphyA/hacker-news huggingface dataset:
by akira_f | 2025-07-24 19:26:03+00:00
Found this article and it articulated something I've felt for a long time: that the software industry took a significant wrong turn when it replaced the culture of detailed specifications (like the German 'Pflichtheft') with the ambiguity of user stories and backlogs.

The author makes a compelling case that this shift, done in the name of "agility," actually introduced chaos and massive costs, especially in critical systems. They make it clear this wasn't a return to waterfall; the article describes how these specs were *living documents, developed iteratively over years.* Serious institutions like Deutsche Bundesbank (the German central bank) used this rigorous approach and built rock-solid, durable systems such as TARGET/SEPA as a result.

The most interesting point, though, is how GenAI completely changes the calculus. It transforms the detailed spec from a mere document for humans into the *ultimate prompt*: an executable, high-level source code for AI. The article links to a brilliant talk by Sean Grove on this exact concept. This makes the old, proven method of spec-driven development hyper-efficient and viable again.

It feels like a "back to the future" moment. Curious what HN thinks. Was the widespread move away from specs a mistake fueled by agile consultants, and is AI the key to bringing rigorous spec engineering back?
by maccard | 2025-07-24 19:26:29+00:00
My experience is that if you give a “better” tool to a bad team they’ll just do something outside the tool. I have never worked with a team who has had a roadmap in jira - there’s always a corresponding excel sheet for that. The best defence against this practice is strong leadership and buy in to the value of the tool.

Personally I run myself on a bullet ish journal and I’d probably run my team on Trello given the choice.
by Dylan16807 | 2025-07-24 19:26:31+00:00
I think you might be using a very different definition of "effectiveness" than they are.

Their definition of effectiveness is the percentage of braking force that turns back into electricity and goes into the battery. If your regen system can only do .15G, but 90% of your braking is under .15G, then you'll have about 94% effectiveness by that definition. 94% is not max but it's near max.

It's not about what happens during peak braking, it's about what happens over entire drives.

And when they say "half or so of how fast I could stop" they're underestimating, that's a comparison to a normal but aggressive stop, not pushing the pedal into the ground.
by ggreer | 2025-07-24 19:26:47+00:00
It's not that dire, but energy costs in the EU are quite high compared to the US. US retail prices for electricity average 13 cents per kWh.[1] The EU's average is around 28 cents per kWh.[2] The only EU countries with advanced fabs are Germany and Ireland. In Germany, retail electricity is 35 cents per kWh. Ireland is almost as bad at 31 cents per kWh. Industrial plants tend to pay lower rates and can supplement their grid consumption with things like on site solar, but that's also true in the US.

1. https://www.eia.gov/electricity/monthly/epm_table_grapher.ph...

2. https://ec.europa.eu/eurostat/web/products-eurostat-news/w/d...
Show HN: Sparky - First of its kind sovereign, isolated and enterprise-grade AI
by sparkydev | 2025-07-24 19:26:55+00:00
Coming Soon - first of its kind sovereign, isolated and enterprise-grade AI that works only for you.

100% Private Instance Fully Isolated Learns Only for You Enterprise-Grade No Shared Servers

Your AI. Your Rules.

check out more at https://mtsllc.us
by bgribble | 2025-07-24 19:27:48+00:00
I am still skeptical about the value of LLM as coding helper in 2025. I have not dedicated myself to an "AI first" workflow so maybe I am just doing it wrong.

The most positive metaphor I have heard about why LLM coding assistance is so great is that it's like having a hard-working junior dev that does whatever you want and doesn't waste time reading HN. You still have to check the work, there will be some bad decisions in there, the code maybe isn't that great, but you can tell it to generate tests so you know it is functional.

OK, let's say I accept that 100% (I personally haven't seen evidence that LLM assistance is really even up to that level, but for the sake of argument). My experience as a senior dev is that adding juniors to a team slows down progress and makes the outcome worse. You only do it because that's how you train and mentor juniors to be able to work independently. You are investing in the team every time you review a junior's code, give them advice, answer their questions about what is going on.

With an LLM coding assistant, all the instruction and review you give it is just wasted effort. It makes you slower overall and you spend a lot of time explaining code and managing/directing something that not only doesn't care but doesn't even have the ability to remember what you said for the next project. And the code you get out, in my experience at least, is pretty crap.

I get that it's a different and, to some, interesting way of programming-by-specification, but as far as I can tell the hype about how much faster and better you can code with an AI sidekick is just that -- hype. Maybe that will be wrong next year, maybe it's wrong now with state-of-the-art tools, but I still can't help thinking that the fundamental problem, that all the effort you spend on "mentoring" an LLM is just flushed down the toilet, means that your long term team health will suffer.'
by ApolloFortyNine | 2025-07-24 19:30:00+00:00
I really don't think they can limit who can download their releases with their license.

>If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.

>each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.

I'm not sure how their rules comply with their own license, and I truly don't think they do. They're granting additional restrictions to a binary they're distributing (if you download this give us money). They're just hoping to scare some contributors into handing over some cash.

Maybe some licenses do allow for this, but the one they chose for Wix almost certainly does not.
by cosmic_cheese | 2025-07-24 19:30:10+00:00
This has been my experience too, with the exception being SteamOS. Arch and variants all inevitably break, usually after an update because I missed some patch note about a config change or something. Maybe non-Valve Arch+derivatives are better if used as a daily driver which are subject to more attention from the user, but I’m not convinced they’re that well suited to dedicated gaming boxes that need to just work without much fuss, especially for those not already versed in the ways of (Arch) Linux.

Other distros bring their own problems of course but that’s another topic.
by azimafroozeh | 2025-07-24 19:30:57+00:00
That’s a very valid question. We’ve done zero optimization on the encoding side so far, and improving that is definitely on our roadmap. Technically, once we learn the best expressions, they can be reused — data is often very similar across row groups — which opens the door to caching and amortizing the cost.

For very wide tables, expression detection only needs to happen once. Beyond that, we’re also exploring techniques like grouping columns into smaller sets or applying more aggressive heuristics to prune irrelevant columns. These are areas we’re actively investigating, and we plan to support them in future versions of FastLanes.
by beders | 2025-07-24 19:31:27+00:00
It is tempting, maybe a good first step, but often not expressive enough.

Especially and particularly attributes/fields/properties in an enterprise solution.

You want to associate various metadata - including at runtime - with a _value_ and use that as attribute/field/property in a container.

You want to be able to transport and combine these values in different ways, especially if your business domain is subject to many changes.

If you are tempted to use "classes" for this, you will sign up for significant pain later down the road.
by simonw | 2025-07-24 19:31:40+00:00
I am so confident that open source expanded the job market.

Prior to open source software development was awful. We spent all of our time re-inventing wheels - or, if we were lucky, licensing expensive badly shaped wheels from vendors and crossing our fingers that they would work (because we couldn't fix them if they didn't).

As a result, very few companies developed software - it's not worth hiring a software engineer if it takes them six months to deliver that initial login screen.

Open source started taking off about 25 years ago, and software productivity skyrocketed. The result was a multi-decade boom in jobs and salaries for us software engineers.
by h2zizzle | 2025-07-24 19:32:16+00:00
My experience with writing is that it's often a matter of simply noting down what comes pouring from my subconscious, with the most taxing task being keeping ahold of some given connection, sentiment, or wording (as that subconscious seems to generate more than my working memory can keep track of).

Sometimes I struggle to fit those sentiments and connections to wording that I imagine will make sense, to someone else or even to myself. I guess that would be the, "Writing is thinking," part, but it seems more like, "Effective and coscientious (self-)communication is thinking."
by thewebguyd | 2025-07-24 19:32:36+00:00
Yep. It's almost always either not tracking or not being honest with tracking.

It's possible to overeat anything - whether a food is "healthy" or not, while important, isn't what matters for weight loss. Burning more calories than you consume is what is important for weight loss.

Where I see folks, particularly men, fail most often is in their mid-late thirties. Sedentary lifestyle, wants to lose the "dad bod." Someone in that situation, with no physical activity, would actually have a fairly low TDEE so a 500 cal/day deficit might look like eating in a range of 1500-1700 calories/day, which if they are like the average American and used to consuming 3500+ calories/day, will be quite the shock - so they are almost immediately super hungry, and might start out with good intentions with tracking what they eat but will frequently miss all the little snacks here and there, or just haven't developed the skill of meal prepping, and properly weighing out their food.

It's a lot of work, and requires a lot of dedication. Too many articles out there that just simplify it down to "Eat less, move more" but don't do enough to actually educate folks on what that really looks like.
by kwon-young | 2025-07-24 19:34:03+00:00
This reminds me of the mp-units [1] library which aims to solve this problem focusing on the physical quantities. The use of strong quantities means that you can have both safety and complex conversion logic handled automatically, while having generic code not tied to single set of units.

I have tried to bring that to the prolog world [2] but I don't think my fellow prolog programmers are very receptive to the idea ^^.

[1] https://mpusz.github.io/mp-units/latest/

[2] https://github.com/kwon-young/units
by tptacek | 2025-07-24 19:34:03+00:00
You need a non-contrived example of a memory-corrupting data race that gives attackers the ability to control memory, through type confusion or a memory lifecycle bug or something like it. You don't have to write the exploit but you have to be able to tell the story of how the exploit would actually work --- "I ran this code and it segfaulted" is not enough. It isn't even enough for C code!
by simonw | 2025-07-24 19:34:10+00:00
We lived in that world prior to ~2000. It sucked. Programmers spent all of their time reinventing the wheel - so much so that when I was at university around 2001-2004 one of the biggest topics was "software reusability". How could we get out of the trap of writing the same things over and over again?

Back then the answer was supposed to be OOP. With hindsight, the answer was open source - in particular robust library ecosystems like PyPI and NPM.
by sensanaty | 2025-07-24 19:34:59+00:00
Co I work for creates customer support software, so naturally we have some AI solution available to people.

A lot of our customers (aka businesses deploying our customer support software for their customers) are telling us people fucking hate dealing with AI in literally any capacity, even if some of the stuff we offer actually works quite good (FAQ bots, bots that redirect to the proper channels/teams and stuff like that). The C-suite at my company have had to go back on some of their OKRs of late, because after an initial huge bump of AI usage, clients are starting to kill off the AI tooling and our usage numbers are dwindling because their customers hate it.

I get to see some of the chats people have with the AI systems, and people will straight up say slurs in chats because they know it's the quickest way of escalating to an actual human lol. People really don't like this crap, but of course CEOs and their ilk are usually psychopaths so they don't really give a shit if it means they can save 5 cents per user.
by Glyptodon | 2025-07-24 19:35:30+00:00
Eh, I can't really agree. I'm totally capable of installing Arch, I've installed Arch and Gentoo and all kinds of random distros in the past, but the reason Manjaro is on my living room PC is because it's basically here to run a web browser and I wanted the lowest effort rolling release distro to install. Did I still have to do some annoying things at a low level to deal with some weird wifi and audio stuff? Yes. Was it easier and faster than ground up Arch? Yes.

Are there better options? I wouldn't be shocked. But it wasn't worth my time to do a big comparison. (Note that I would not necessarily install Manjaro today, but I do think wanting a more out of the box Arch is totally reasonable.)
by throw0101b | 2025-07-24 19:36:22+00:00
> Defense is starting to get a blank check with fairly bipartisan support for the first time in at least 30-40 years and it's centered on semiconductor supply chains.

Really? Because:

> During Donald Trump's 2025 speech to a joint session of Congress, the president asked House Speaker Mike Johnson to “get rid” of the subject act.[190]

* https://en.wikipedia.org/wiki/CHIPS_and_Science_Act#Subseque...
by imzadi | 2025-07-24 19:36:56+00:00
> Speaking of Ubuntu, it has atrophed. It used to be that it was popular enough that you could google your problem and someone would have solved it. Try doing that now, you get ancient posts from a decade ago that are no longer relevant. It's not like it's terrible, but I don't see anyone recommend it anymore. Though Mint has it's fans.

I think this is largely because most of Ubuntu support is through StackExchange and they tend to moderate the usefulness out of it. Every new issue is closed as being a duplicate, even when the linked "duplicate" is years old and not even resolved.
by bgirard | 2025-07-24 19:37:04+00:00
A combination of: 1) RUM, 2) Field tracing, 3) Local tracing with throttling (CPU, Network), 4) Focusing either on known problems, or if I'm on less certain territory I will do more vetting to make sure I'm chasing something real. I'll minimize the time spent on issues that I can only catch in one trace, but sometimes it's also all you get so I'll time box that work carefully. It's more of an art than a science.
by MBCook | 2025-07-24 19:37:12+00:00
That’s a big if.

“If Intel can just get this next node they’ll be sitting pretty” is what people have been saying for over a decade isn’t it?

Just getting the nodes working and producing enough chips has been a huge issue for them, let alone having good chip designs on top of that.

“No one got fired for choosing Intel” has stopped applying. They’re even losing server marketshare, which was their rock.
by supriyo-biswas | 2025-07-24 19:37:14+00:00
Is an incremental backup of the database not possible? Pgbackrest etc. can do this by creating a full backup followed by incremental backups from the WAL.

For Postgres specifically you may also want to look at using hot_standby_feedback, as described in this recent HN article: https://news.ycombinator.com/item?id=44633933
by duxup | 2025-07-24 19:37:24+00:00
I feel like this is the problem of, a lot of what I do, although not as cool as the author, and more due to human issues.

I'm always looking for / wondering about valid data representing the problem so that I can measure success.

A little of last and much of this week I've spent addressing a performance problem. At first I was told it was always happening in some specific situation, it very much is not. Then I was told it frequently happens ... nope, maybe 2 to 4 times a day at most.

I think I've managed to track the issue down. I think so, pretty sure? On the other hand this client has a couple performance related issues ongoing and listening to them talk on a conference call... I'm not really sure they differentiate between them. It's very possible my neighbor a few seats away from me is actually addressing "the problem" and I'm chasing ghosts. But the client is too busy to provide good data. Meanwhile this issue "too important" of an issue for us to do nothing and wait, granted ... we might be doing nothing anyway.
by somethingsome | 2025-07-24 19:37:55+00:00
I'm curious about what you think about something,

Supoose you make two simple types one for Kelvin K and the other for Fahrenheit F or degrees D.

And you implement the conversions between them in the types.

But then you have something like

d: D = 10;

For i=1...100000:

k=f_Take_D_Return_K(d) d=g_Take_K_Return_D(k)

end

Then you will implicitly have many many automatic conversions that are not useful. How to handle this? Is it easily catched by the compiler when the functions are way more complex?
by gruez | 2025-07-24 19:37:56+00:00
>JS is blocked by default on my browser.

The major browsers can still be differentiated via default headers and TLS fingerprints, none of which requires js. Moreover if they're inconsistent you'd get flagged with "spoofs user agent", which makes you more identifiable than something like "firefox on mac".

>Hm. How are they going to detect it is randomized? They would have to identify me first again as the same user and then conclude I randomize these values.

Because a given canvas/font metrics value should return the same result given the same graphics hardware/font set. If you randomize the results it basically guarantees that your fingerprint has never been seen before. This might seem like a good thing (because you're randomized every time), but any competent fingerprinting implementation is just going to flag you as "spoofs canvas/font information". The point isn't necessarily to identify you as any particular user, it's to use the fact you're spoofing canvas/font/user-agent to fingerprint you further.
by sliken | 2025-07-24 19:38:03+00:00
There do exist serial hybrids where the engine produces electricity while maintaining the ideal RPM, and then is connected to a battery+electric motors.

However in practice the vast majority of hybrids do not use this approach and have motors that vary RPM with road speed (depending of gearing of course).

The common case of maintaining ideal RPM is the CVT, which most folks dislike, so much so that some models have a switch to pick how many fake gears you have to break up the boring drone of a constant RPM engine.

BTW, the chevy bolt was advertised as a serial hybrid, right up to the day it shipped.

I believe the most common serial hybrid today is an EV with a range extender.
by GnarfGnarf | 2025-07-24 19:38:31+00:00
The WiX installer is a byzantine incomprehensible mess. Its only appeal was that it was free. If I have to pay, I'd rather have a commercial product that is supported and easier to use.

Rob Mensching was supposed to monetize WiX by offering $5,000/yr enterprise consulting & support services. I guess that's not enough.
by ameliaquining | 2025-07-24 19:38:48+00:00
I recall a type theorist once defined the terms as follows (can't find the source): "A strongly typed language is one whose type system the speaker likes. A weakly typed language is one whose type system the speaker dislikes."

Related Stack Overflow post: https://stackoverflow.com/questions/2690544/what-is-the-diff...

So yeah I think we should just give up these terms as a bad job. If people mean "static" or "dynamic" then they can say that, those terms have basically agreed-upon meanings, and if they mean things like "the type system prohibits [specific runtime behavior]" or "the type system allows [specific kind of coercion]" then it's best to say those things explicitly with the details filled in.
by eyelidlessness | 2025-07-24 19:39:20+00:00
Types are a kind of test. Specifically they’re a way to assert certain characteristics about the interactions between different parts of the code. They’re frequently assertions you’d want to make another way, if you didn’t have the benefit of a compiler to run that set of assertions for you. And like all tests, they’re a means to gain or reinforce confidence in claims you could make about the code’s behavior. (Which is their symmetry with documentation.)