MurphyA/hacker-news huggingface dataset:
by Cthulhu_ | 2025-09-08 09:15:19+00:00
> auto-formatters messing with line lengths is a source of significant annoyance.

Unless they have been a thing since the start of a project; existing code should never be affected by formatters, that's unnecessary churn. If a formatter is introduced later on in a project (or a formatting rule changed), it should be applied to all code in one go and no new code accepted if it hasn't passed through the formatter.

I think nobody should have to think about code formatting, and no diff should contain "just" formatting changes unless there's also an updated formatting rule in there. But also, you should be able to escape the automatic formatting if there is a specific use case for it, like the data table mentioned earlier.
by komali2 | 2025-09-08 09:15:31+00:00
My main machine is an ultrawide, but I usually have multiple files open, and text reads best top-down so I stack files side-by-side. If someone has like, a 240 character long line, that is annoying. My editor will soft wrap and indicate this in the fringe of course but it's still a little obnoxious.

80 is probably too low these days but it's nice for git commit header length at least.
by hebejebelus | 2025-09-08 09:16:06+00:00
Yes, definitely some of it can be simplified or automated. I've been migrating various apps from a docker-compose to a kubernetes environment. Spending a day writing a solid prompt document and running some agent on the repos involved has drastically sped up my workflow.

The integration hell isn't much easier, but I spend _far_ less time actually writing configurations, yaml files, looking up docs, etc, which frees up my time so that I can deal with the workplace politics involved... actually, maybe I want to go back.
by gr__or | 2025-09-08 09:16:47+00:00
Text surely is a hill, but I believe it's a local one, we got stuck on due to our short-sighted inability to go into a valley for a few miles until we find the (projectional) mountain.

All of your examples work better for code with structural knowledge:

- grep: symbol search (I use it about 100x as often as a text grep) or https://github.com/ast-grep/ast-grep

- diff: https://semanticdiff.com (and others), i.e.: hide noisy syntax only changes, attempt to capture moved code. I say attempt, because with projectional programming we could have a more expressive notion of code being moved

- sed: https://npmjs.com/package/@codemod/cli

- version control: I'd look towards languages like Unison to see what funky things we could do here, especially for libraries. A general example: no conflicts due to non-semantic changes (re-orderings, irrelevant whitespaces, etc.)
by Mikhail_Edoshin | 2025-09-08 09:16:55+00:00
The accounting practice in Russia (and, I guess, in other countries) has a concept of a correcting transaction ("storno"): it is an entry in the books made specifically to undo a mistake. To stand out these entries are made in red ink. (Obviously, it is an old rule.) So yes, a data model needs a way to make an arbitrary change to correct a mistake, that is right. But that is about it. To expand it to "let's place no restrictions" is too far.

A type by definition is a set of restrictions, and normally we go by making these restrictions more and more elaborate. The "Parsing Techniques" book has a nice analogy about the expressive power of different grammars: more powerful ones do not describe larger sets of sequences, but carve out more and more specific subsets of valid sequences out of the pool of all possible sequences (which itself is trivial to define).

A type by definition is a set of possible states, if we "allow invalid states", then we've just defined a different type, a wider one. Whether it is what you need depends on the situation. E.g. we add entries to a database and place restrictions on them. But the user may take a long time to compose an entry. Fine; let's add a new type, "draft", that is similar to the primary entry type but does not have their restrictions. These drafts are stored separately so the user may keep editing them until they are ready. But they do not go into the part of the system that needs proper entries.
by tpm | 2025-09-08 09:16:56+00:00
> On the Jobs example - do you expect the US government to enforce Chinese law there? Does Jobs violating Chinese law affect what laws the USA can enforce decades later? This makes no sense.

China wanted high-tech manufacturing, Apple provided that, violating a few Chinese laws here and there.

The US now wants high-tech manufacturing, Hyundai wants to provide that, violating a few US laws here and there. Only the US can't decide what it really wants, so starts enforcing laws that are in conflict with Hyundai suppliers quickly flying their staff in to set up the factory. In the end the investment is too high so Hyundai most probably will finish this factory, but what message does this send to other potential investors?
by Cthulhu_ | 2025-09-08 09:17:54+00:00
And that's fine, as long as whatever ends up in version control is standardized. Locally you can tweak your settings to have / have not word wrapping, 2-8 space indentation, etc.

But that's the core of this article, too; since then it's normalized to store the plain text source code in git and share it, but it mentions a code and formatting agnostic storage format, where it's down to people's editors (and diff tools, etc) to render the code. It's not actually unusual, since things like images are also unreadable if you look at their source code, but tools like Github will render them in a human digestable format.
by Etherlord87 | 2025-09-08 09:18:01+00:00
It's as easy as having a single option:

> Do you want safeguards to be enabled by default, so you have to disable manually those you want to resign from?

OR

> Do you want safeguards to be disabled by default, so you have to enable manually those you want to be in place?

To then rebel against it and say "I lose seconds of my life reading this, I don't want to have to!" would be ridiculous.
by amonith | 2025-09-08 09:18:11+00:00
You do you. Most people don't care about software that much in general. The most important thing is that it does the job and it does it securely. C won't help you with bugs in any shape or form (in fact it's famously bug-friendly), so it often makes more sense to use a tech stack that either helps with those or lowers the cost on the developer side.
by sim7c00 | 2025-09-08 09:18:18+00:00
maybe its not 'slow' but more 'generalized for a wide range of use-cases'? - because is it really slow for what it does, or simply slower compared to a specialized implementation? (this is calling a regular person car slow compared to an F1 car... sure the thing is fast but good luck takin ur kids on holiday or doing weekly shopping runs?)
by ajuc | 2025-09-08 09:18:47+00:00
Quote from the article:

> Slavic peoples were considered to be people of an "inferior race" who were unable to assimilate into American society.[4] They were originally not considered to be "fully white" (and thus fully American), and Slavic peoples' "whiteness" continues to be a debate to this day, but most people consider them to be of Caucasian culture
by InMice | 2025-09-08 09:20:22+00:00
You could try using powerprofilesctl to change the mode from 'balanced' or 'power saver' to 'performance' since i think this may prevent the cpu from ever entering the throttled down low idle states that your freezing happens in. they are controlled with powerprofilesctl. You may also be able to add some flugs to grub config file. assuming you are using linux i guess.
by lukaslalinsky | 2025-09-08 09:20:32+00:00
I actually prefer the world with boilerplate connecting more important pieces of code together, over opinionated frameworks, because the boilerplate can evolve, charging the opinionated frameworks is much harder, and it's probably done by full rewrite. The thing is, the boilerplate needs to be kept to minimum, that's what I consider good API design. It allows you to do custom things, so you need some glue code, but not so much that you are writing a new framework each time you use it.
by anal_reactor | 2025-09-08 09:20:38+00:00
I have a theory based on absolutely nothing that cultures rarely ever fundamentally change. When Americans decided that racism is bad, they didn't reject the racial theory as a whole, they just concluded that some details of its application were wrong. Otherwise it's difficult to explain why a seemingly race-blind society keeps discussing race all the time, and dedicates so much effort into preserving information about who is what race. Similarly, despite democratic revolutions, both Russian and Chinese societies keep going back to some form of monarchy - this form of governance is just deeply ingrained in their culture, and you won't change it overnight.
by lazide | 2025-09-08 09:21:06+00:00
If the small steps keep people from making actual change because ‘i’m doing my part!’ while accomplishing nothing? I disagree.

Or do you think those straw bans actually helped, or just let people think they were helping by doing actually nothing?

And how do you think all those people feel who spent decades faithfully sorting recycling who finally figured out it was all a scam and 90% of it just went into the same hole in the ground shortly after?

I’m not saying I have some better master alternative - rather there is a reason the pendulum swings.
by netdevphoenix | 2025-09-08 09:21:14+00:00
Problem is that most technologies don't hit a visible "dead end". Look at NLP before transformers, cars, planes, steel tech, wood tech and even books. What you have is a steady slowdown in the number of revolutionary discoveries and just long list of marketing hyped small improvements.

There are fundamental limitations with transformers that will not go away for as long as AI equates transformers.

The first one is the lack of understanding/control by humans. Orgs want guarantees that these systems won't behave unexpectedly while also wanting innovative and useful behaviour from them. Ultimately, most if not all neural nets are black boxes so understanding the reasoning for a specific action at a given time, let alone their behaviour in general is just not feasible due to their sheer complexity. We just don't understand why the behave the way they do in a scientific way anyway than we understand why a specific rabbit did a specific action at that particular moment in a way that can be used to make accurate predictions about when it will do that action again. Due to our lack of understanding, we just cannot control these things accurately. We either block some of their useful abilities to reduces the changes of undesired behaviour or you are you exposed to it. This trade-off is just a fundamental limitation of the fact that transformers are used nowadays are neural nets and as such have all the limitations that they have.

The second one is our inability to completely stop the hallucinations. From what my understanding, this is inherently tied to the very nature of how transformers based LLMs produce output. There is no understanding of the notion of truth or real world. It's just emulating patterns seeing in its training data, it just so happens that some of those don't correlate with real world facts (truth) even if they correlate with human grammar. In so far as there is no understanding of the notion of truth as separate from patterns in data, however implicit, hallucinations will continue. And there is no reason to believe that we will come up with a revolutionary way to train these systems in a way that they understand truth and not just grammar.

The third one is learning, models can't learn or remember as such, context learning is a trick to emulate learning but it's extremely inefficient and not scalable and models don't really have the ability to manipulate it the way humans or other animals can do. This is probably the most damning of them all as you cannot possible have a human level General Artificial that is unable to learn new skills on its own.

I would bet money on there not being significant progress before 2030. By significant progress I mean, the ability to do something that they could not do before at all regardless of the amount of training thrown at them given the same computing resources we have now.
by Sprotch | 2025-09-08 09:21:18+00:00
They are well built, work very well, and provide metrics that motivate me to exercise more and monitor my progress. There is a touch screen but the buttons are simply a better and easier way to interact with it. It looks cool, and there definitely is a "garmin watch" tribe. Over time, you build an emotional relationship with it.

I got a Garmin Epix 2 watch 3 years ago as a replacement for the Apple Watch ULtra, which turned out to be a terrible sports watch. The Garmin still has two weeks battery life and gets all the functionality upgrades the newer watches are getting. More importantly, it looks great and does exactly what I want it to do simply, and reliably. At the time I also had a whoop. Now I only have the Garmin and it does all I need. It's one of those things you need to try to truly get.
by Tepix | 2025-09-08 09:21:40+00:00
If you buy Intel Arc cards for their competitive video encoding/decoding capabilities, it appears that all of them are still capped at 8 parallel streams. The "B" series have more headroom at high resolutions and bitrates, on the other hand some "A" series cards need only a single PCIe slot so you can stick more of them into a single server.
by Cthulhu_ | 2025-09-08 09:21:52+00:00
Caveat, my personal experience is mainly limited to JS/TS, Java, and associated languages. 120 is fine for most use cases; I've only seen 80 work in Go, but that one also has unwritten rules that prefer reducing indentation as much as possible; "line-of-sight programming", no object-oriented programming (which gives almost everything a layer of indentation already), but also it has no ternary statements, no try/catch blocks, etc. It's a very left-aligned language, which is great for not unnecessarily using up that 80 column "budget".
by gorbypark | 2025-09-08 09:22:04+00:00
This would be the way to go if on the flip side any part that was not iCloud locked could be paired without hassles. Phone stolen/lost/etc? Parts unusable. Phone iCloud unlocked? Parts free for use. Of course this depends on mitigating various ways thieves can iCloud unlock stolen phones..I think the current method is snatching the phone while it's in use and iCloud unlocking it? However that doesn't make much sense since I assume you need some sort of password to do so even if the phone is physically unlocked?
by jacquesm | 2025-09-08 09:22:36+00:00
The main reason why the Dutch do what they do is because:

- it takes less than 2 hours by car in any direction to be abroad where they speak a different language

- NL has been overrun historically by (not in any particular order) the Romans, the French, the Spanish, the Germans and has been in long and complicated wars with all of these, and in many cases more than once.

- In spite of being tiny what you know as 'the Dutch' is internally extremely fragmented, there are at least 10 different cultures, this isn't so much a country as it is a bunch of mini countries in a trenchcoat, with the dividing lines not being so much geographical as cultural.

- Trade. You can't really do much here other than think and grow potatoes and beets. Other than some natural gas in the North we have no natural resources worth mentioning, though at some point we had some coal mining in the Southernmost area. So trade it is and in the past trade meant shipbuilding.

- Theft. Slavery. Colonies. Exploitation. NL absolutely excelled at all of those at some point in the past.

Bangladeshi's not being able to emulate the Dutch in that sense should not come as a surprise: we were small but absolutely ruthless in war and in trade at a time when the cards in the world were being shuffled. We did not suffer from the resource curse and very early realized that religion is a personal thing and so limited the amount of influence that the various religions had here. And finally, science was adopted wholesale because it was good for business.

Those factors, as well as a culture steeped in work just to keep the country in existence (without all that work it would simply disappear and become a river delta again) are where the main differences with a place like Bangladesh lie, and I don't doubt that the potential for doing this is present in many places that are not doing well today.

At the same time: the current generation of Dutch people are losing sight of all of this, they take it all for granted and it's theirs to lose.

Abroad in those colonies the Dutch have been horrendous and the amount of wealth plundered (from places like Bangladesh) is off the scale, the only countries that can compete are England, Portugal and Spain, and Belgium to some degree as well and that's not a pretty story either.

This is a small country that is fabulously wealthy that has been built on a lake of blood. And because the blood wasn't spilled here we can pretend that we are the good guys but make no mistake, we pretty much invented genocide and have committed war crimes that we are proud enough of that the perpetrators have major streets named after themselves. We more or less invented externalization.

So so much for 'Societies get rich by creating the social and legal conditions that allow building things and running businesses, not by exploiting people.'

This is not the country you want as an example for that statement.
by Lio | 2025-09-08 09:23:07+00:00
Yeah you probably don't need it in slow moving urban traffic but I saw a video with some bike packers in Australia who used Varia. They were on rural roads shared with road trains.

Road trains a very big, move very fast and they don't stop for anyone on a bike. So knowing they are coming up on you from a distance gives you time to get off the road.

That's a very special usage case but I think any rural road with fast moving traffic would also benefit from the early warning even with just cars to contend with.
by ChrisMarshallNY | 2025-09-08 09:23:32+00:00
You’re probably right, when I think about it.

I know that OOP was just getting its feet under it, when he wrote that. It turned out to have a huge multiplying effect on productivity, but also introduced a whole new universe of footguns.

Maybe if OOP had been introduced, along with some of the disciplines that evolved, it might have been a big multiplier, but that took time.

I guess, upon reflection, each of our big “productivity boosts” were really evolutionary movements, that took time to evolve.

He really was quite prescient.
by mdp2021 | 2025-09-08 09:25:21+00:00
-- Select your best channels and RSS (or similar) on them.

-- Promote politically that the informational wealth the YT platform contains¹ should be treated like the rest of public knowledge and archived by the State for preservation.

¹(Picking a few example channels: "Manufacturing Intellect", "British Pathé", "Intelligence Squared"...)
Ask HN: What are the tech stack you use in 2025?
by sadeed08 | 2025-09-08 09:25:31+00:00
I'm writing a detailed article to mention all the tech stack to consider to start a new product or SAAS in 2025.

It would be beginner friendly.

Suggest what you find helpful and will add it.

The list so far - Frontend - Next.js, Astro Backend - Python, Go Database - Supabase, SQLite, Turso Auth - Clerk, Auth.js Analytics - Google Analytics Email - AWS SES Payment - Stripe CMS - Payload, Ghost Newsletter - Substack, Beehiv, Kit Document - Docusaurus, Fuma, Nextra Security/Storage - Cloudflare Version control - GitHub Deployment - Vercel, Netlify Self host - Digital ocean, Hetzner Code Editors - VS code, Cursor AI coding - Lovable, Bolt Search - Algolia

Let me know if I did miss any section.
by netdevphoenix | 2025-09-08 09:26:36+00:00
General AI to me includes the ability to learn any skills on your own with minimal examples and no support. Intelligence to me means the ability to learn and general to me implies any skills. The nature of the hallucinations do suggest that whatever these systems are doing is not learning. And due to the innate limitations they have as neural nets and transformers, their ability to learn is greatly limited by their own architecture
by small_scombrus | 2025-09-08 09:26:41+00:00
> I can just imagine the roundtable

That's the best part!

The devs probably never thought of it, the support people who were complained to were probably either unable to reach the devs, or time crunched enough to not be able to, and who as a project manager would want to say they told their Devs to fix an issue that will lose the company money!
by dcminter | 2025-09-08 09:27:32+00:00
> There was even a double-high, double-width mode for easier reading

I'd forgotten that; now that waa a fugly font. I don't think anyone ever used it (aside from the "Setup" banner on the settings screen)

I think the low pixel count was rather mitigated by the persistence of phospher though - there's reproductions of the fonts that had to take this into account; see the stuff about font stretching here: https://vt100.net/dec/vt220/glyphs
by rapnie | 2025-09-08 09:28:50+00:00
I can recommend "Domain Modeling Made Functional" by Scott Wlaschin presented at KanDDDinsky 2019, that offers a very appealing example for making making invalid states unrepresentable. The example code is in F# but that is a perfect language to demonstrate the general idea. Best-practice I guess boils down to finding the right balance throughout the application design.

https://www.youtube.com/watch?v=2JB1_e5wZmU
by Doxin | 2025-09-08 09:29:19+00:00
I've been learning to draw lately and I was having some serious "getting started" issues every time. For me the trick was to not go "I will now practice drawing" but to go "I will now hold a pencil and browse through my old drawings". It ends me up holding a pencil and looking at a blank page.

I know it ends up with me drawing anyways every time and yet lying to myself that I'm not intending to draw works wonders.
by YetAnotherNick | 2025-09-08 09:30:00+00:00
> I'd much prefer paying 3x cost for 3x VRAM

Why not just buy 3 card then? These cards doesn't require active cooling anyways and you can just fit 3 in decent sized case. You will get 3x VRAM speed and 3x compute. And if your usecase is llm inference, it will be a lot faster than 1x card with 3x VRAM.
by b_e_n_t_o_n | 2025-09-08 09:30:28+00:00
I think you generally make less assumptions about the shape of data in dynamic languages.

I find writing code in dynamic/statically typed languages very different from each other, and when I hear proponents of either complain about the other (types slow me down! / too many runtime errors!) I sort of assume they're writing code like they would in their preferred paradigm and running into walls.
by quibono | 2025-09-08 09:30:35+00:00
> Don't create a venv before installing TheAuditor

That's a strange ask in the Python ecosystem - what's the reason for this?

Also, what's the benefit of ESLint/Ruff/MyPy being utilised by this audit tool? I'm not sure I understand the benefit of having an LLM in between you and Ruff, for example.
by yes_man | 2025-09-08 09:31:08+00:00
The problem is when 2 people with same level of enthusiasm for linter rules but opposing views collide. If there’s nothing more impactful you could be solving and spending energy and time on than arguing those linter rules, then it’s time to question where the project is at and where is it going.

And if there is something more important, then instead of of micro-optimizing the rules when there is strong disagreement it’s probably best if one of the parties takes the high road and lives with it so you can all focus on what matters.