MurphyA/hacker-news huggingface dataset:
by jt2190 | 2025-08-30 14:37:55+00:00
> The upgrade from Laravel 4 to 5 (released Oct 2013) is probably the biggest hurdle....

Can confirm. We started on Laravel 4 and it languished at that version until someone in leadership agreed to get it updated to version 8, which seemed to mostly be about some APIs changing. (The configuration system changed quite a bit for example.) Further upgrades from 8 to 10 then 11 have been very quick. (Note that we don't use Eloquent ORM so that wasn't part of these upgrades.)
by twiss | 2025-08-30 14:38:47+00:00
There are, in fact, some efforts going on to improve beyond the status quo on permission prompts in browsers, e.g. https://chromium.googlesource.com/chromium/src/+/refs/heads/...

Though, that document also states:

> Our research [1] finds that users often make rational decisions on the most used capabilities on the web today — notifications, geolocation, camera, and microphone. All of them have in common that there is little uncertainty about how these capabilities can be abused. In user interviews, we find that people have clear understanding of abuse potentials: notifications can be very annoying; geolocation can be used to track where one was and thus make more money off ads; and camera and microphone can be obviously used to spy on one’s life. Even though there might be even worse abuse scenarios, users aren't entirely clueless what could possibly go wrong.

[1]: https://dl.acm.org/doi/10.1145/3613904.3642252
by snvzz | 2025-08-30 14:38:54+00:00
No. They really, really wanted people to use the libraries instead.

What is known (which is a lot by today) had to be reverse engineered. The classic document everybody references for this is RandyAGA[0].

0. https://github.com/rkrajnc/minimig-mist/blob/master/doc/amig...
by Thorrez | 2025-08-30 14:39:10+00:00
Yes, the sorting is wrong. That's a good point.

I'm not sure why you're particularly picking on MM/DD/YYYY, saying things like "backwards places". DD/MM/YYYY doesn't sort any better. YYYY-MM-DD is the only one that sorts well. (Some people promote YYYYY-MM-DD though, which I guess is more future proof.)
by marginalia_nu | 2025-08-30 14:40:14+00:00
I honestly think that's pretty close to optimal for a lot of places. With business software it's often not desirable to have large sweeping changes. You may need some small change to a rule or condition, but usually you want things to stay exactly the way they are.

The model of having a circle of ancient greybeards in charge of carefully updating the sacred code to align with the business requirements, while it seems bizarre bordering on something out of WH40K, actually works pretty well and has worked pretty well everywhere I've encountered it.

Attempts to refactor or replace these systems with something more modern has universally been an expensive disaster.
by jacknews | 2025-08-30 14:40:30+00:00
You seem to be saying 15 years experience means you should have a network that will be good for jobs, so why bother applying to ads?

What if you recently changed specialization, or moved city or even country? What if it's been a few years since you were in actual employment, you were working on startups, or had a career break or whatever. What if you have way more than 15 years experience. And so many other situations, which might result in your network being limited or not that good for finding the kind of work you want.

The point is, if you apply to advertised jobs, it's a numbers game.
by variadix | 2025-08-30 14:40:40+00:00
The uncomputable real numbers always seemed strange to me. I can understand a convergent sequence of rationals, or the idea of a program that outputs a number to arbitrary precision, but something that cannot be computed at all is a very bizarre object. I think NJ Wildberger has some interesting ideas in this area, although I’m not sure I agree with his finititist interpretation in all circumstances. Specifically I don’t think comparisons to the number of atoms in the universe or information theoretic limits on storage based on the volume of the observable universe are interesting considerations here.

To me at least, if you can write down a finite procedure that can produce a number to arbitrary precision, I think it is fair to say the number at that limit exists.

This made me think of a possible numerical library where rather than storing numbers as arbitrary precision rationals, you could store them as the combination of inputs and functions that generate that number, and compute values to arbitrary precision.
by baobabKoodaa | 2025-08-30 14:41:00+00:00
When an article like this uses the term "smart people", I'm always a bit confused if they mean actually smart people, or not-that-smart-people-who-think-highly-of-themselves. Because there's a lot more people in the latter category, and in my view they are the ones building unnecessary complexity into codebases.

To clarify, when I say "not-that-smart-people", I don't mean "stupid people". You need to be beyond some basic level of intelligence in order to have the capability to overcomplicate a codebase. For lack of a better metric, consider IQ. If your IQ is below 80, you are not going to work day-to-day overcomplicating a codebase. You need to be slightly above average intelligence (not stupid, but also "not-that-smart") to find yourself in that position.
by noen | 2025-08-30 14:41:55+00:00
This article reminds me of my early days at Microsoft. I spent 8 years in the Developer Division (DevDiv).

Microsoft had three personas for software engineers that were eventually retired for a much more complex persona framework called people in context (the irony in relation to this article isn’t lost on me).

But those original personas still stick with me and have been incredibly valuable in my career to understand and work effectively with other engineers.

Mort - the pragmatic engineer who cares most about the business outcome. If a “pile of if statements” gets the job done quickly and meets the requirements - Mort became a pejorative term at Microsoft unfortunately. VB developers were often Morts, Access developers were often Morts.

Elvis - the rockstar engineer who cares most about doing something new and exciting. Being the first to use the latest framework or technology. Getting visibility and accolades for innovation. The code might be a little unstable - but move fast and break things right? Elvis also cares a lot about the perceived brilliance of their code - 4 layers of abstraction? That must take a genius to understand and Elvis understands it because they wrote it, now everyone will know they are a genius. For many engineers at Microsoft (especially early in career) the assumption was (and still is largely) that Elvis gets promoted because Elvis gets visibility and is always innovating.

Einstein - the engineer who cares about the algorithm. Einstein wants to write the most performant, the most elegant, the most technically correct code possible. Einstein cares more if they are writing “pythonic” code than if the output actually solves the business problem. Einstein will refactor 200 lines of code to add a single new conditional to keep the codebase consistent. Einsteins love love love functional languages.

None of these personas represent a real engineer - every engineer is a mix, and a human with complex motivations and perspectives - but I can usually pin one of these 3 as the primary within a few days of PRs and a single design review.
by medvezhenok | 2025-08-30 14:42:14+00:00
Well, take racism out of it. Do a thought experiment.

Take a genetically identical starting population with identical culture, customs, etc. Split them onto two islands, island A and island B. Island A has temperate weather, plentiful food, resources, and no natural predators. Island B has natural disasters, brutal seasons, intermittent food shortages, etc.

Check back in on both populations (assuming they lived exclusively on islands A & B) in 1000 years from the identical starting point. Do you think there would be any differences between them?
by bonoboTP | 2025-08-30 14:42:15+00:00
Right, the notation of derivatives is also totally confusing, especially for things like the chain rule. The sloppy way to write it seems very intuitive but isn't precise. To write that in a precise way, you have to use the vertical-bar-on-the-right (e.g. d/dx f(x) | x=0, but typeset properly), variable names etc. In high school I rewrote a lot of the textbook stuff in a super explicit version for myself like this and it got very verbose of course, but gave deeper understanding.

Same in college when learning the Fourier transform, a stumbling block was that the prof didn't properly explain that it takes a function as a whole and gives a whole new function as output. When you first learn this concept, it's a bit of time to wrap your head around, but when it clicks, everything makes more sense. But just writing F{sin(x)} = ... seems like F acts on a concrete value. A more explicit way would be F{x->sin(x)}={x->...}

Of course once you already know these fundamentals and they are baked into your brain and take them for granted, it's hard to see where beginners get confused, and writing in short hand is so much easier so you get sloppy while still unambiguous to experienced people.

This is why I always preferred to see coded-up demos and implementations as opposed to formulas on blackboards and slides. If you have to implement it, you can't handwave away things as pedantry. It forces precision by default.
by gus_massa | 2025-08-30 14:42:33+00:00
> Do we then need satellite internet for mobile broadband video for doctors and paramedics if information sharing by nonlocal photonic communication is real; despite the false limit and "loopholes"?

Yes we still need satellite internet. The doctors and paramedics can generate some random numbers and the hospital can generate some random numbers, and once they meet again they can look at them and see a strange correlation.

But if the hospital wants to tell something to the doctors and paramedics or vice versa, they must use a classic communication channel.
by deknos | 2025-08-30 14:42:41+00:00
> But the reality is how can someone small protect their blog or content from AI training bots? E.g.: They just blindly trust someone is sending Agent vs Training bots and super duper respecting robots.txt? Get real...

baking in hashcash into http 1.0/1.1/1.2/2/3, smtp, imap, pop3, tls and ssh. then this will all to expensive for spammers and training bots. but IETF is infiltrated by government and corporate interests..
by nhod | 2025-08-30 14:42:43+00:00
A million years ago in AI time, AKA yesterday, there was a HN post from John Carmack talking about how Meta wasted a ton of time and money making XROS and how nowadays it doesn’t make any sense to write a new OS [1].

And then this post today which makes a very strong case for it. (Yes, a VM isn’t an entire OS, Yes, it would be lighter weight than a complete OS. Yes, it would be industry-wide. Yes, we’d likely use an existing OS or codebase to start. Yes, nuance.)

[1] https://news.ycombinator.com/item?id=45066395
Show HN: Filesql – SQL Driver for CSV, TSV, LTSV, Parquet, Excel
by mimixbox | 2025-08-30 14:42:48+00:00
Hi HN,

I built a Go SQL driver that lets you query CSV, TSV, LTSV, Parquet, and Excel files directly using SQLite3 SQL syntax. No database setup required – everything runs in-memory.

Key features: - Query multiple file formats simultaneously and JOIN across them - Handles compressed files (.gz, .bz2, .xz, .zst) automatically - Stream processing for large files with configurable chunk sizes - Support for file paths, directories, io.Reader, and embedded files - Auto-save functionality to persist changes back to files - Cross-platform (Linux, macOS, Windows)

This was extracted from my CLI tools sqly and sqluv to avoid code duplication. Instead of maintaining the same functionality in multiple projects, I made it a reusable library.

The library provides all essential functionality, though it hasn't undergone rigorous production-grade testing yet.

Thank you.
by Buttons840 | 2025-08-30 14:42:57+00:00
It's been said: "Document the why, not the what."

I have a hard time separating the why and the what so I document both.

The biggest offender of "documenting the what" is:

x = 4 // assign 4 to x

Yeah, don't do that. Don't mix a lot of comments into the code. It makes it ugly to read, and the context switching between code and comments is hard.

Instead do something like:

// I'm going to do // a thing. The code // does the thing. // We need to do the // thing, because the // business needs a // widget and stuff. setup(); t = setupThing(); t.useThing(42); t.theWidget(need=true); t.alsoOtherStuff(); etc(); etc();

Keep the code and comments separate, but stating the what is better than no comments at all, and it does help reduce cognitive load.
by meheleventyone | 2025-08-30 14:43:13+00:00
For context since success is slippery I’d take it as able to recoup development costs and provide a runway for the next project otherwise being a professional game developer could not be sustainable. This is also the worst place to be in as a developer where each project has to recoup it’s very precarious.

Both are rated Very Positive on Steam so clearly both are good games in the opinion of the gaming population at large.

The thesis that all you need to find success is a good game is clearly not sufficient.

FWIW I think Regions of Ruin was most definitely a commercial success and that estimated revenue figure is probably very low for the review count they have.
by api | 2025-08-30 14:43:59+00:00
A pile of if statements is a direct model of business deal making, which is literally a pile of if statements.

Sales contracts with weird conditions and odd packaging and contingencies? Pile of if statements.

The other great model for business logic is a spreadsheet, which is well modeled by SQL which is a superset of spreadsheet functionality.

So piles of if’s and SQL. Yeah.

Elegant functional or OOP models are usually too rigid unless they are scaffolding to make piles of conditions and relational queries easier to run.
by petre | 2025-08-30 14:44:17+00:00
Romania's current president is an international math olympic with two gold medals. We'll see how he turns out as a president. He's inherited quite some pressing issues and the President doesn't have all that much power. The parties made sure to neuter that institution. The alternative was a footbal hooligan with allegedly Russian funding behind him and a right wing discourse. Society is very polarised. Nearly half voted for the hooligan. Before, in the cancelled elections they voted for a nutcake Russian funded secret service puppet with a nicely sounding discourse void of any actual content and a very ballsy but quite dim witted woman, mayor in a small town. The Russians bet their money on multiple trojan horses, just in case one of them gets disqualified.

OTOH I am very impressed with how Volodymir Zelenski turned out. Who would have thought?
by emptysongglass | 2025-08-30 14:44:28+00:00
But it's not. I do not enjoy the benefits of a de minimis as a resident of Denmark. Every policy set in place is to discourage my enjoyment of a de jure de minimis.

If you import goods into this country at below the threshold, you are very likely to pay more than the original price of the good itself. That's the truth. There is de minimis in name only.
by bgwalter | 2025-08-30 14:45:07+00:00
I wonder what his colleague Knuth at Stanford says about commercially driven hype like:

"AI has made coding the easy part."

"Things that used to take six engineers three months to build, "my friends and I, we'll just build on a weekend," Ng said.

The man has a complete disdain for the field and for the thousands of open source developers whose code he is using in laundered form.
by whstl | 2025-08-30 14:45:48+00:00
I believe you can build great abstractions in this kind of software, but if you want them to survive you gotta keep them any of that away from anything involving the business logic itself. You can only do this on product-like things: authn/authz, audit logs, abstractions over the database (CQRS, event sourcing), content/translation management, messaging infrastructure, real infrastructure. As soon as you allow anything from the business itself to affect or dictate those abstractions, you get shit again.

You're right that the business logic is gonna be messy, and that's because nobody really cares, and they can offload the responsibility to developers, or anyone punching it in.

On the other hand, separating "good code" and "bad code" can have horrible outcomes too.

One "solution" I saw in a fintech I worked at, was putting the logic in the hands of business people itself, in the form of a decision engine.

Basically it forced the business itself to maintain its own ball of mud. It was impossible to test, impossible to understand and even impossible simulate. Eventually software operators were hired, basically junior-level developers using a graphical interface for writing the code.

It was rewritten a couple times, always with the same outcome of everything getting messy after two or three years.
by cosmic_cheese | 2025-08-30 14:46:23+00:00
I like Inter mainly because it’s one of the handful that renders in a way that looks “right” to my eye regardless of platform. It’s bland, but incredibly consistent.

Lucida Grande is very nice for example but clearly designed for the OS X and iOS text rendering systems of its era and looks odd under Linux. Similarly MS UI fonts look weird in the absence of ClearType.
by anon191928 | 2025-08-30 14:46:48+00:00
It's because they still print trillions for that. Now it does not cost them much but Printing is not scalable. World has limited resources and limited human capital. At some point European countries will become like Japan, with old native people. But it's not sustaniable in a competitive world economy. In Japan it barely work because they work in older ages and they have very low crime rate and immgration. No developed country is fully ready for this. They stared to increase retir. age but with not enough jobs that can't help at all. Some EU countries already have crazy debt/GDP ratio.Imagine in a decade? They know what is coming.
by dullcrisp | 2025-08-30 14:46:48+00:00
They’re a field by construction, and yes, the initial field of characteristic zero, but otherwise don’t arise in any natural way. They’ll be there if you’re studying fields, but exact division by arbitrary integers doesn’t seem to be a very natural property outside the reals. Again, imagine doing any practical computations with rationals and see how far you get before resorting to decimal approximation.

I think teachers lie to children and say that decimals are just another way of representing rationals, rather than the approximation of real numbers that they are (and introduce somewhat silly things like repeating decimals to do it), which makes rationals feel central and natural. That’s certainly how it was for me until I started wondering why no programming languages come with rational number packages.
by metalman | 2025-08-30 14:47:00+00:00
sales what? I regularly have people walking back there claim of proffesional membership now, "not that kind of doctor", "not that kind of lawyer", "not that kind of engineer", after short discussions , a bit awquard, but here in Canada some of these claimants get surprised when the folks wearing an iron ring take them to court and they come out with a conviction for fraud.The engineers tend to be teritorial after having spent more than a decade in post seconday education, before taking an entry level job.
by vjerancrnjak | 2025-08-30 14:47:05+00:00
There are many ways code can get simpler even with ifs.

If you find yourself sprinkling ifs everywhere, try to lift them up, they’ll congregate at the same place eventually, so all of your variability is implemented and documented at a single place, no need to abstract anything.

It’s very useful to model your inputs and outputs precisely. Postpone figuring out unified data types as long as possible and make your programming language nice to use with that decision.

Hierarchies of classes, patterns etc are a last resort for when you’re actually sure you know what’s going on.

I’d go further and say you don’t need functions or files as long as your programming is easy to manage. The only reason why you’d need separate files is if your vcs is crippled or if you’re very sure that these datetime handlers need to be reused everywhere consistently.

Modern fullstack programming is filled with models, middleware, Controllers , views , … as if anyone needs all of that separation up front.
by bonoboTP | 2025-08-30 14:47:58+00:00
As a non-native speaker, another tip I remember reading somewhere and then finding it very useful: when you read a packed sentence that doesn't seem super clear and the next sentence starts with "Indeed, ..." that means you should read further as it will be a kind of explanation or elaboration. I mostly filtered out such words as "filler" or generic "emphasis words", but they guide the understanding also.

Good mathematical writing has this kind of cadence and pattern to it, and that's not a problem. For good writers some personal charm and flavor can still shine through, but it helps the reader to use the familiar trope structures. Unfortunately, this kind of "meta" is not taught much, so many students don't quite understand how to read math books, get frustrated when they progress slow, expecting to read it at the same speed as a history book or a novel. In a math book it's normal to re-read sentences or jump back half a page, to flip the pages back and forth, to put down the book for a moment and think etc. and it may take an afternoon to just digest one or two pages.
by hibikir | 2025-08-30 14:48:31+00:00
I have seen subscription systems built following that rule of thumb. It collapses pretty well, as the data structure then becomes impossible to engage with unless you are an expert, and the callers are never experts.

Things make more sense when the data structure lives in a world where most, if not all illegal atates become unrepresentable. But given that we often end un building APIs in representations with really weak type systems, doing that becomes impossible.
by Atlas667 | 2025-08-30 14:48:38+00:00
Nearly all the countries that support cartels are capitalists.

Venezuela is a progressive reformist state with many many capitalists. The reason why its considered a rogue state in your capitalist media is that it wont play ball with the american capitalist block/cartel.

Drugs could be made a legal industry in order to end the drug crisis. But drug cartels preserve regulation-less profits. Its literally billions they save by avoiding legality and taxation.
Ask HN: Language Learning Tool combining ebooks, translations, audiobooks
by albert_e | 2025-08-30 14:49:14+00:00
Is there a tool that exists for this purpose?

I have an idea to vibe-code a tool but I know I will struggle and might give up midway -- so putting this idea out here in case there are tools that do this already:

Say you want to learn a new language in a fun way -- and you pick a book you like for that purpose.

If you have an epub copy of the same book in both English and the other language, you could have a UI that displays both side-by-side with synchronized scrolling and highlighting so you can read them together. (or even interweaves paragraphs in with a different color for either language)

If you also have the MP3s of audiobooks -- the tool can optionally let you playback select portions of the text in either language.

Additional features like integration into a dictionary on click for word definitions, individual word pronunciation guides, synonyms etc would make it even more feature rich.

Is there already a tool or say a Calibre plug-in that does something like this already? Thanks!

inspiration: Reading Harry Potter in French [https://www.youtube.com/watch?v=89z2kPYmYps]