MurphyA/hacker-news huggingface dataset:
by aapoalas | 2025-12-24 13:42:18+00:00
Guidance towards correct usage: eg. If you allow `a[10] = 2` and just make the Array dense, the user might not even realise the difference and will assume it's sparse. Next they perform `a[2636173747] = 3` and clog up the entire VM memory or just plain crash it from OOM. Since it's likely that the small indexes appear in testing and the large indexes appear in production, it is better to make the misunderstanding an explicit error and move it "leftwards" in time, so that it doesn't crash production at an inopportune moment.
by simonw | 2025-12-24 13:42:22+00:00
This was great. I enjoyed the alternative definition of "framework" as something that introduces new concepts (differing from the more common idea that it's code that calls YOUR code.)

This article reminded me of two classic pieces of writing.

The first is 20+ years old now: Joel Spolsky's law of leaky abstractions:

https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...

One of the reasons these mini-frameworks lead to problems is that they leak. They don't cover every case which means you inevitably have to fully understand what they are doing for you in order to debug them or work around their limitations. Your cognitive load goes up!

The second is Will Larson's "Migrations: the sole scalable fix to tech debt."

https://lethain.com/migrations/

The OP complains that they've never seen a technology migration at Google that finished. Will advocates for migrations to be driven by a team that both coaches other teams on the migration and then, crucially, finish the job themselves to make absolutely sure it gets done to 100% completion.
by zzless | 2025-12-24 13:43:06+00:00
>Also, possessive pronouns are exactly like in English, concording in gender with the owner, not the object.

This is only true in third person singular. For example, in first person singular: 'моя чашка' (my cup, 'cup' is feminine) vs. 'мой ключ' (my key, 'key' is masculine). Third person plural: 'ихнее дело' (their business, neuter) vs. 'ихняя забота' (their concern, feminine) although most educated Russian speakers would object to these pronouns as a bit too colloquial (although not as colloquial as 'евойная'). Same in second person singular: 'твой друг' (your friend, masculine) vs. 'твоя подруга' (your friend, feminine). In all of the examples above, the gender of the speaker/owner cannot even be determined (grammatically speaking).
by TimorousBestie | 2025-12-24 13:43:12+00:00
Yeah, I don’t see why one should wait until after the abuse occurs (“by clinical standards”, above commenter says) to begin defending oneself. As you say, politics isn’t divorced from the rest of their psyche.

It’s predictable that a person who e.g. yells slurs and threatens violence against (whoever they perceive as) gay people on TV is going to progress to actual violence against the gay people in their life, more often than not.
by anon5739483 | 2025-12-24 13:43:40+00:00
If you have a very specific product with limited scope, a micro-framework would work just fine. My experience in the real world™ is as such: people start with micro-frameworks and keep bolting on stuff to the point where it would have been better if they started with a macro-framework in the first place. At least there is better compatibility between framework components and a clear upgrade process. I agree with the "makeshift framework" terminology by the way. One way or another, my experience is that products that start with micro-frameworks, over time turn into a "makeshift framework" over time regardless. If the scope is clear and limited from the start, micro-frameworks are great. If unsure, micro-framework is a no go (for me).
by lifeisstillgood | 2025-12-24 13:43:45+00:00
Yes I had forgotten about that - if an exec had knowledge of this contract and got a bonus then … yeah …

My thinking is this is a moral hazard for all large orgs - that if you are an exec in this awkward position you need to know that even after twenty years they will still take your life savings and put you in jail if you don’t blow the whistle.
Would a private, dedicated GPU workstation (EU-based) be useful?
by noon_ai | 2025-12-24 13:44:04+00:00
Hi HN,

I’m exploring whether there is real demand for access to a private, single-tenant GPU workstation located in the EU.

The idea is a dedicated machine (not shared cloud) for people who need privacy, control, or who work with sensitive or proprietary data — rather than the cheapest possible compute.

Before building anything, I’d like to understand:
Would something like this be useful to you, and for what kind of workloads?

Thanks for any insight.
by bogwog | 2025-12-24 13:44:37+00:00
So basically wireguard, but you have to pay for it, and you have create an account through Google/Apple/Microsoft/whatever.

Wireguard is not that hard to set up manually. If you've added SSH keys to your Github account, it's pretty much the same thing. Find a youtube video or something, and you're good. You might not even need to install a wireguard server yourself, as some routers have that built in (like my Ubiquity EdgeRouter)
by layer8 | 2025-12-24 13:46:18+00:00
> much of the value of the thought and engineering and architectural work you’ve done is published with your APIs, developer tools, and so on.

I disagree. I work for a similar company, and what customers appreciate is how solid the software is, the dedicated, straightforward and competent customer support, the lack of enshittification and rent-seeking. You tend to not get that with large or high-growth companies. They may nominally provide the same API, but everything else is more likely to be a pain.
by exasperaited | 2025-12-24 13:46:36+00:00
> A library is something you call.
> A framework is some kind of application scaffolding that normally calls you.

I think I broadly agree with this. In essence, libraries don't impose an application-level life cycle. Frameworks, generally, do.

The rest of the article, I don't know….

The most successful, long-running app I maintain has a mini-framework that allowed me to assemble what I need piecemeal rather than relying on any off-the-shelf framework that would have been obsoleted several times over in the seventeen-year lifespan of this code.

I guess about one in three things I do in it require me to dip into my framework code to look at it, but this is mostly to remember how it works! About one in five things have required me to make a small progressive change.

Twice in its lifetime a core component has been swapped out (mailer and database library).

And twice in its lifetime, because it is beginning to converge on a general web framework, I have considered porting the code out of it and into a general framework, which might make it easier to hand over. One day, I suspect, something will break compatibility in a way that makes that the sensible route, but the code works, fast, has a pretty obvious set of abstractions, and there are implicit examples of everything it can do in everything it already does.

Almost all articles like this start out with "here is a thing I claim is a generalised problem that I am sure you should not do", that is a well-meaning but false generalisation, and is then caveated to the point where no new point is being made.

Underneath they are always: don't write bad code. If you do, learn from it.

If I'd followed the advice of this article when I started this project, I would by now have rewritten the entire thing more than once, for little gain.

Much more concise and much more sensible: consider whether your additional levels of abstraction have value.

But do mini frameworks have value? Sure they do, especially if there is setup and teardown that every function needs to do.
by ompogUe | 2025-12-24 13:46:53+00:00
I've been learning my way through this the last few years. Started small and cheap, have gotten to "good enough for me" and cheap. Bought about 5 <$200, and a ~$400 low-end epson.

Looking to do outdoor video graffiti and VJing.

You appear to be thinking in terms of resolution, where you'll get better details/sharper focus the higher you go.

For projectors, I've learned to move up in lumens. 6-7k minimum.

Keeping in mind: the higher the luminous flux, the more expensive.
by conartist6 | 2025-12-24 13:47:33+00:00
What!

Why is this, idunno a better way to say it, good?

So ok you don't get into the weeds and you're proud of that, but also nothing you can think of wanting to do turns out to be worth doing.

Those things are wholly related. Opportunity never comes exactly the time and the way you expect. You have to be open to it, you have to be seeking out new experiences and new ideas. You have to get into the weeds and try things without being entirely sure what the outcome might be, what insight you might gain, or when that insight might become useful.
by andsoitis | 2025-12-24 13:47:41+00:00
> Meanwhile the economy is tanking.

NYT: US GDP Grew 4.3%, surging in 3rd Quarter 2025 - https://www.nytimes.com/2025/12/23/business/us-economy-consu...

WSJ: Consumers Power Strongest US Economic Growth in 2 years - https://www.wsj.com/economy/us-gdp-q3-2025-2026-6cbd079e

The Guardian: US economy grew strongly in third quarter - https://www.theguardian.com/business/2025/dec/23/us-economy-...
by fc417fc802 | 2025-12-24 13:48:05+00:00
Because you're standing there watching him. Have you ever witnessed him record your name or anything else when you purchase alcohol? Given the (admittedly rather restrictive and unlikely) implementation I described this quickly approaches the level of paranoid conspiracy.

Yeah, it runs into the same socioeconomic problems. Not just voter ID but also tobacco, alcohol, most weapons, and in many places other than the US medical care just to name a few. So it's already a well established problem that people keep and eye out for and at least try to address.

Consider that the alternatives are the continued normalized unfettered access of brainrot by young children or else requiring an ID check in a manner that blatantly compromises privacy. On the whole the liquor store approach seems like a good solution to me.

To be fair there is another alternative that for some reason seems widely unpopular. Make headers indicating age restricted content a requirement and legally require the OEM configuration of devices to support parental controls based on such headers. That would be a slightly less efficacious solution but would involve noticeably less ID checking.
by fidotron | 2025-12-24 13:48:10+00:00
> So you're saying . . .

I'm using words to say what I mean, not what you are hallucinating, so I will clearly state for the final time:

VW was caught, by US authorities, violating EU laws, and it transpired that EU officials had been lobbying to enable VW and other EU champions to continue to do so.

The equivalent would be the EU catching US companies violating freedom of speech in the US, and clearly pointing this out. This is not what the EU have been doing.

My root reply in this thread was flagged, despite being stunningly milquetoast, in a transparent attempt to hide any inconvenient dissenting view, which is precisely what the EU are trying to do.
by aapoalas | 2025-12-24 13:48:35+00:00
As a fellow (but way junior) JavaScript engine developer I'm really happy to see the stricter mode, and especially Arrays being dense while Objects don't treat indexed properties specially at all: it is my opinion that this is where we should drive JavaScript towards, slow and careful though it may be.

In my engine Arrays are always dense from a memory perspective and Objects don't special case indexes, so we're on the same page in that sense. I haven't gotten around to creating the "no holes" version of Array semantics yet, and now that we have an existing version of it I believe I'll fully copy out Bellard's semantics: I personally mildly disagree with throwing errors on over-indexing since it doesn't align with TypedArrays, but I'd rather copy an existing semantic than make a nearly identical but slightly different semantic of my own.
by KempyKolibri | 2025-12-24 13:48:36+00:00
> A "very high evidence bar" that isn't described anywhere is one that doesn't actually exist

If your claim is: “if a standard isn’t explicitly written down somewhere such that one can utilise it to ascertain whether something meets it without ambiguity then it doesn’t exist” then the entailments are absurd. The world is full of standards that do not meet such a bar (“reasonable doubt”, for example) yet obviously this is a real standard.

> COVID was full of this stuff

Yet when I asked you for to give examples of “this stuff” you failed to do so. How come?

> when the universities get disestablished

Lmao. Not going to happen, I see we’re off in cloud cuckoo land now.
by Adverblessly | 2025-12-24 13:48:53+00:00
I couldn't find a source for how many Hebrew words have each origin, so I sampled 25 random words from the Hebrew Wiktionary and counted their sources. Where there wasn't a clear source (or a clear "way" to a source) or the word itself was spelled in English for some reason I just randomized another word.

The number one source was unsurprisingly Hebrew with 11 words. This includes biblical sources as well as medieval and more modern sources, typically Jewish scholars writing in Hebrew in exile.

The second most common source was Greek with 5 words and relatedly Latin had 1 word. A lot of them you'd probably recognize in many languages e.g. whatever way you say Democracy probably has the same origin (sounds like Demokratia in Hebrew).

The third most common source was ancient Hebrew-adjacent languages, 2 for Aramaic, 1 for Ugaritic, 1 for Akkadian. You could include the 2 for Arabic here as well.

The fourth would be modern loanwords with 1 for English and 1 for Italian ("Pizzeria").

It is also worth noting that some words with a foreign origin still have a Hebrew counterpart. For example דיאלוג==Dialog==Dialogue is not from Hebrew, but you can say דו-שיח instead.

Additionally, Wiktionary does slightly bias towards the words you'd want to look up and is not as comprehensive as a real dictionary, so not a perfect sampling.

My personal guess is that this isn't too far off of reality. A more comprehensive sampling will probably diversify the various European languages rather than just being Greek (i.e. probably a bit more German via Yiddish, a bit of French etc.) and maybe make Aramaic a bit more prominent, but overall it doesn't feel insanely off base.
by KalaINC | 2025-12-24 13:48:53+00:00
I built FlowStep out of frustration from working in L2 support.

My colleagues and I actually want to solve problems, not just close tickets.
But logs and short feature descriptions are often not enough.
To understand a failure, we need to know what happens when a module is called and how execution reaches its end.

Developers usually don’t have the time, or the approval, to write detailed documentation, especially documentation that includes visual explanations.
When documentation exists, it’s often text-based and written in developer language.

Existing code-to-diagram tools tend to visualize complexity, not the actual execution flow support teams need to understand.
They work well for developers, but not for explaining the essential execution path to support teams.

I felt there had to be a way for developers to take their code and, with some intelligent help in between, generate a flow that speaks the language of support instead of code.

That stubborn idea eventually turned into FlowStep.
by vladvasiliu | 2025-12-24 13:49:26+00:00
What do you mean by consumer-oriented stuff?

I'm typing this on my company azure ad integrated windows 11. The system info says it's windows 11 enterprise 25h2.

My start menu still has multiple random xbox crap in there, game bar (what even is that?!), "game mode", "solitaire and casual games". It shows random ads in the weather app. It invites me to do more with a microsoft account, even though the computer is fully azure ad joined and my windows session is an azure ad account with some expensive office365 licence attached.

Before reinstalling the other day for unrelated reasons, I had actually tried to add that account. Turns out it doesn't work with a "work or school" account, it requires the personal one, but it doesn't say it clearly, only that "something went wrong".

I honestly don't see any difference when compared to my personal windows install I use for the occasional game and Lightroom / Photoshop.
by themafia | 2025-12-24 13:49:32+00:00
Ah, and because this is C++, the standard map having typed template parameters, which could be a non pointer, they're forced to make operator[] have this semantic:

Returns a reference to the value that is mapped to a key equivalent to key or x respectively, performing an insertion if such key does not already exist.

Which is a bit of a surprise coming from mostly C and Go.
by jhart99 | 2025-12-24 13:49:34+00:00
I think this is likely a process problem. Having been a safety officer for a lab in the past, there are two types of injury reports. One for regular injuries, you have a week to report. Serious injuries need to be reported within 24 hours. These are death and amputation injuries (there might be more, it's been a few years).

Anyway I suspect they missed the deadline because it slipped through the cracks.
by exasperaited | 2025-12-24 13:50:14+00:00
A general atmosphere that we sometimes ban white nationalists and neo-nazis when they actively provoke violence or hatred or illegally interfere in our politics to destabilise the country?

Oh no, I'm sorry if this is upsetting or surprising to anyone!

Seriously: Vance will be persona non grata when this is over. The list of countries that should ban him is longer than the one I made (Germany should, for example). The list of countries he won't risk visiting is probably longer still. But then I think he won't risk leaving the USA at all after this is all over. And nor should he.

And as others have observed, Musk has actively attempted to foment violence in the UK; people get banned from other countries (including the USA) for that all the time.
by solatic | 2025-12-24 13:50:17+00:00
You have to remember that companies are kind of fungible in the sense that founders can close old companies and start new ones to walk away from bankruptcies in the old companies. When there's a bust and a lot of companies close up shop, because data centers were overbuilt, there's going to be a lot of GPUs being sold at firesale prices - imagine chips sold at $300k today being sold for $3k tomorrow to recoup a penny on the dollar. There's going to be a business model for someone buying those chips at $3k, then offering subscription prices at little more than the cost of electricity to keep the dumped GPUs running somewhere.
by buran77 | 2025-12-24 13:50:43+00:00
> I think the font looks lovely. Great touches.

Looks nice but nothing outstanding or particularly legible, compared to the many fonts developed for this purpose already. I think they wanted their own identity and there's nothing wrong with that. But the "designed for safety" part feels like a gimmick to tie into their branding.

Car manufacturers change their logo or font occasionally to send a message, solidify a brand identity, of course it won't be in any way related to any of the engineering of the car.

> Android Automotive. And I think touchscreens in cars are trash, and Android particularly so; the latency is horrendous

I don't own a Volvo but I've seen the infotainment system in action on their premium cars (XC60/XC90/EX90). If I were to be in the market for a new car in that category, the infotainment and "Volvo's close relationship with Google", to quote the article, would single handedly cross Volvo out from my list.
by Fiveplus | 2025-12-24 13:50:50+00:00
The worst part about these internal wrappers is that they destroy searchability. If I get an error from standard gRPC or react, I can paste it into google or stackoverflow and find a solution in 5 seconds. When I get an error from CompanyInternalWrapperService and it swallows the original stack trace to throw a custom WrapperException, I am pretty much blind. I cannot search for it online because it doesn't exist outside the intranet and the internal documentation is usually a readme last updated in 2021.
by dotancohen | 2025-12-24 13:50:54+00:00
> With AI agents, I can kickoff a task while I'm going to the park with my kids. Instead of scrolling HN, I look every now and then to what the agent is doing.

How does that work? Are you running the agents on a server? Are you using gnu screen and termux? Can you respond to prompts asking for permission to e.g. run ls or grep?
by PaulHoule | 2025-12-24 13:50:58+00:00
Mini-frameworks would be dangerous at a place like Google where smart people think they are smart. I think they're heaven sent for smart people who think they're stupid.

Distributed (multithreaded, concurrent, ...) systems are a counterexample that are highly vulnerable to snake oil. In normal software it makes sense to build up from a small set of intellectually coherent primitives. In those cases you inevitably end up with poor performance and usually reliability if you try that. Java started out with a snake oil approach to threading (synchronized!) and Doug Lea talked some sense into them and now we have java.util.concurrent which has a rich set of primitives which are pragmatic and meet the real requirements, not a vision of purity.

On the other hand, If it was a mini-framework to pound out numerous not-so-simple HTML form applications it could greatly enrich your life and your team's.
by em-bee | 2025-12-24 13:51:20+00:00
the whole django site is more than 500KB, the other one more than 300KB.

here is an idea: inline all the images and SVGs that will reduce the number of hits and make the page load faster. (the encoding of the images will make them a bit larger, but i hope compression can recover most of that)

i don't get how the first http request would have to be large. any SPA that doesn't include server side rendering couldn't possibly be any larger as all it does is link to a script that builds the page. and SPA is the modern way to build sites, isn't it? or are you disqualified if your site doesn't support SSR, and the main content is images?
by gaigalas | 2025-12-24 13:51:23+00:00
My experience in the real world is that the majority of people choose the largest "macro" framework available and go with that. It's what happens most often.

The "micro framework" phase happens when that "macro" framework fails to deliver something. It happens way less often than a team picking a big estabilished tool.

However, the sizes never mattered. That is likely what causes the confusion in the first place ("it's large so it must have lots of things I want", "it's small so it must be easy to understand").

The real red herring is focusing on the size (or LOC, or any vague metric) instead of other more relevant architectural properties.
by exasperaited | 2025-12-24 13:52:07+00:00
Bannon is a convicted criminal money-launderer and fraudster; we ban such people all the time (and so do other countries). But he's also agitating against UK interests (and interfered in our politics before).

Musk has literally called for violence on our streets; we ban people who do that too. We should consider banning foreigners who appear to be funding political activity here.

Vance is actively acting against the interests of the UK and EU (actively agitating against political union) in a way that benefits our adversaries, and he lionises neo-nazis.
by PunchyHamster | 2025-12-24 13:52:28+00:00
Maybe if the font wouldn't be so generic that could be true but it's... bland, and uninteresting. Could be replaced by 2 dozen other

> as Airbus designed B612 for readability within their glass cockpits.

weird it still has problem of O being similar to 0. I guess it's less of a problem in plane instruments but still