MurphyA/hacker-news huggingface dataset:
by inglor_cz | 2025-08-17 07:40:54+00:00
Another commenter raised the ransom point for kings. One of the reasons why higher nobility and the king's household was so visible on the battlefields was that they shouldn't get killed by mistake.

As for the common folk, if you look at actual medieval cemeteries that were excavated and studied, the peasants didn't live long either. The age of death can be assessed by looking at the bones, and already the above 50 cohort is somewhat thin, while the above 60 is infrequent.

You underestimate the effects of hunger on mortality. Prior to introduction of potatoes (e.g., ~ 18th century in much of Europe), failed crops would be a common occurrence, happening ~5-6 times during life of a normal rural person. If two of them happened back-to-back, the resulting mortality was already serious, and older people would often be victims. It made sense to use whatever food was left for the younger, stronger generation which was still able to work.

Famine was basically never a concern for the royalty. We have a record of the English king going dinner-less once, but that is not a threat to your life.

BTW If you really want to find a relatively long-lived sector of the society, it would be the high clergy, which had all the upsides of noble life (food, warmth in winter) and almost none of the downsides (most wouldn't fight, murder was less common). This is the only "job" which saw some 70 y.o.s still alive and active, mostly as cardinals.
by jorangreef | 2025-08-17 07:42:09+00:00
Yes, exactly. That difference came in with '12 VSR's view change (deterministic, round-robin), which upgraded '88 VSR's view change.

'14 Raft missed this upgrade, unfortunately (despite citing the '12 paper), thus preserving Oki's '88 "pick the candidate with longest log".

I find the history of consensus fascinating, and was fortunate to interview both Brian Oki and James Cowling (so many anecdotes): https://www.youtube.com/watch?v=ps106zjmjhw
by thaumasiotes | 2025-08-17 07:42:31+00:00
> If you can agree with your communication target on a common DNS server under your or their control that doesn’t respect authoritative DNS servers, and both of you can securely connect to said server, then you already have a continued, trusted communication mechanism that you may as well use for your communication.

Why? It can easily be the case that that traffic is observable by outside parties. You'd still need to encrypt your communication.

Connecting to the DNS server "securely" doesn't really get you anything except some DOS resistance.
by Roark66 | 2025-08-17 07:42:33+00:00
In my country that has managed to free itself from communism just 35 years ago everyone I know opposes it.

Politicians from countries like Germany have tried to make EU decide things like this on the "majority principle" for ages (because they know they can bully smaller countries into submission), but we still have the consensus principle.

Every country has to agree. So it takes only one country to put a stop to it.
by Dylan16807 | 2025-08-17 07:43:00+00:00
Going "back to the inefficient way" is wasteful, and artificial limiting is also wasteful. Nothing weird about two things both being bad.

In a competitive market they wouldn't be able to get away with either of those. Multiple companies that know how to make their lower end models better for free would do it, because they want more market share.

So we need to figure out how to get as close to that state as possible.

Also the proposed law wouldn't make multiple prices illegal.
by qwertox | 2025-08-17 07:43:36+00:00
Again, again and again:

These things should first be tested for 5 years on every politician and every civil servant, including their families, including their children.

Security researches should be given the freedom to hack that system as much as they can, in order to find security problems, no prosecution guaranteed.

Every access to data should be logged on a public blockchain with pseudonymization of who accessed whose data.

After those 5 years, reports and statistical analysis about the usefulness should be published: how many crimes were prevented, who went to jail for what, who had to go to court for what, with references to the logged data in the blockchain.

Then the public gets to vote on if they want this or not.
by mh- | 2025-08-17 07:44:30+00:00
I prototyped this a couple months ago using OpenAI APIs with structured output.

I had it consume a "deep thought" style output (where it provides inline citations with claims), and then convert that to a series of assertions and a pointer to a link that supposedly supports the assertion. I also split out a global "context" (the original meaning) paragraph to provide anything that would help the next agents understand what they're verifying.

Then I fanned this out to separate (LLM) contexts and each agent verified only one assertion::source pair, with only those things + the global context and some instructions I tuned via testing. It returned a yes/no/it's complicated for each one.

Then I collated all these back in and enriched the original report with challenges from the non-yes agent responses.

That's as far as I took it. It only took a couple hours to build and it seemed to work pretty well.
by Catbert59 | 2025-08-17 07:45:18+00:00
Still used nowadays: airplane reflections are being used by ham radio dudes. There's a software around that even calculates the optimal reflection parameters based on ADS-B aggregators.

Thanks too relatively modern digital modes this doesn't need too much transmission power.

On the upper GHz bands with dishes they even manage to do reliable FM chats. But that requires a lot of gain and active steering of the dish.
by dkiebd | 2025-08-17 07:45:59+00:00
October, 2018: "In Europe, Speech Is an Alienable Right: [the European Court of Human Rights] upheld an Austrian woman’s conviction for disparaging the Prophet Muhammad."

>On Thursday, the European Court of Human Rights (ECHR) upheld her 2011 conviction for “disparagement of religious precepts,” a crime in Austria. The facts of what E.S. did are not in dispute. She held “seminars” in which she presented her view that Muhammad was indeed a child molester. Dominant Islamic traditions hold that Muhammad’s third wife, Aisha, was 6 at the time of their marriage and 9 at its consummation. Muhammad was in his early 50s. The Austrian woman repeated these claims, and the Austrian court ruled that she had to pay 480 euros or spend 60 days in the slammer. The ECHR ruled that Austria had not violated her rights.

https://www.theatlantic.com/ideas/archive/2018/10/its-not-fr...
by 0points | 2025-08-17 07:46:14+00:00
> Does it fix the issue with the multiple buffers and minor annoyances?

The stuff you mentioned so far is all about you not configuring your setup:

- buffers: You configure your clipboard manager to use a single buffer.

- vim: configure to use global clipboard if that's your preference

- X11: dont use legacy software

> No. It just adds a different friction point.

You think using software that implements functionality you deem missing "adds friction", and yet you still want said missing functionality and complain about it is missing.

That's wild.
by citrin_ru | 2025-08-17 07:47:19+00:00
Hard to predict. In the areas I know well LLM don’t improve my productivity that much but they allow me to do something in areas I don’t know well e.g. write code in an unfamiliar language (likely bad code but sometimes that better than nothing). So maybe juniors + LLM will replace middle level developers.

Job market is better for seniors right now but that’s mostly because employers can sometimes hire a senior for money they would pay to a junior during late COVID boom.
by jillesvangurp | 2025-08-17 07:47:41+00:00
The laws necessitating cookie banners came into effect long before GDPR. That would be the 2002 EU ePrivacy Directive. The GDPR (2018) concerns the handling and storing of personal information, the mandatory disclosure of how this is done, and the mandatory right users to ask what data is being stored and deleting that data. There aren't any cookie banners in native apps. But they still need to comply with GDPR. And you can get into trouble for mishandling privacy sensitive information.

That law has been pretty successful to the point where there have been debates in the US about adopting similar laws.

The common US media company interpretation to declare their websites an abusive UX disaster zone and put their contempt and complete disregard for their main product (users) on full display is entirely on them and their sleazy lawyers trying to find ways where they can still do their sleazy business. This is made worse by incompetent web designers deciding that this is apparently "the way things should be done" without questioning that. Most cookie banners are just the result of their (mis)interpretation of the law, lazy copying of some shitty website they once saw, and the perceived need to provide lots of legal ass coverage for what under GDPR is flat out just not allowed at all.

Worse, the jury is actually still out on whether the highly misleading language, dark patterns, etc. are actually not illegal in themselves. They might very well be. Lots of companies got some really bad advice regarding GDPR. And some EU companies have actually been fined for doing it wrong.
by nikodotio | 2025-08-17 07:48:02+00:00
I love the Dokploy promise but I’ve come across some glaring bugs and inconsistencies that have made living with it difficult. I’ve had to consult its source code because if it’s lack of documentation in a few instances.

Support, even for paying customers, is lacking, too.

Definitely cheering its development on, though, because the promise is wonderful.
by PaulRobinson | 2025-08-17 07:48:05+00:00
Stealing cars is illegal in the UK, however you do it. Just having this "gameboy-like device", in your pocket is "going equipped", and you're going to get arrested on its discovery about your person outside of your abode. No ifs, no buts.

The UK has lots of new cars (plenty of cheap financing around for lease, PCP and HP deals), and there is a low-level epidemic of thefts of vehicles that end up in shipping containers and heading out of the country within hours. [0]

Car insurance is also so high in the UK at background levels that if you end up owning a highly desirable and very easy to steal car (the Range Rover a few years ago, for example), the costs being added to price in the risk of your car ending up in a container heading to the Middle East don't seem - as a percentage - particularly high.

The fact UK has great shipping throughput to the Middle East, Africa, and so on, is both a boon economically, but also it makes great cover for all sorts of shenanigans.

[0] https://www.containerlift.co.uk/cracking-the-code-uk-police-...
by mh- | 2025-08-17 07:48:52+00:00
As you identified, not paying for it is a big part of the issue.

Running these things is expensive, and they're just not serving the same experience to non-paying users.

One could argue this is a bad idea on their part, letting people get a bad taste of an inferior product. And I wouldn't disagree, but I don't know what a sustainable alternative approach is.
by nine_k | 2025-08-17 07:49:06+00:00
One of Typescript's design goals is that removing all type-related parts of the source text should yield a valid JavaScript file. A typescript compiler does not generate code (unlike, say, PureScript).

You can run a typechecker (such as tsc) that check various properties of your code statically, relying on the type information. It is then erased.

The same applies, say, to Python: type annotations are ignored at runtime. Somehow similarly, Java's type information is also partly erased in the bytecode; in particular, all the information about parametrized types. (This is to say nothing about actual machine code.)
by bitterblotter | 2025-08-17 07:50:28+00:00
Just to give context here, NodeJS doesnt support enums, namespaces and class parameter properties. All of these have been described as regrets by Anders Hejsberg, and none of them prevent advanced use of the type system at all.

Source: 49m 43s https://m.youtube.com/watch?v=NrEW7F2WCNA
by Mikhail_Edoshin | 2025-08-17 07:55:38+00:00
(1) A Russian author may choose how to present his/her name so you may in fact see abbreviations like "Вл." (Владимир) оr "Евг." (Евгений, Eugene) and such. (For instance one of Moscow theaters is officially called "Театр имени Евг. Вахтангова". Here "Евг." is an abbreviation of the founder's name and is rendered exactly in this form.) But this is a part of an artistic expression. (After all, the name may be a pseudonym, so also an artistic creation. There is, for example, "И. Грекова" where the form is chosen because together it sounds like "игрек", Greek I; this is a pseudonym a math professor chose for her non-math writings.)

But a foreign author does not do that, of course. As far as I understand the algorithm is something like that: 1) abbreviate according to the language of origin; 2) see how this abbreviation will sound in that language; 3) represent this sound in Russian. Usually this amounts to looking up a previous decision on that name.

I think this is a common issue in cross-script translation.

(2) "Перро" should be more like "Perrault"; "Pierrault" would be "Пьеро" or "Пьер", more French-sounding.

(3) This is a custom. The sound "w" does not exist in Russian, so there is a choice how to represent it. Most often it is "в", but there is a tradition in rendering it as "у" if it is the first character. And it seems the choice changed over time, so Churchill is traditionally "Уинстон", but the cigarette brand "Winston" из "Винстон". In the middle of word it is almost always "в", but there are exceptions, such as "Хемингуэй" (Hemingway).
by Joker_vD | 2025-08-17 07:56:32+00:00
// it doesn't seem to love piping or redirecting output without this, even // with the newlines above fflush(stdout);

Ah, the full buffering mode. I believe it can be fixed by calling

setvbuf(stdout, NULL, _IOLBF, BUFSIZ);

once at the start.

On the whole, it actually almost implements the minimally required amount of HTTP/1.1: I would suggest adding support for HEAD requests, it's just a single flag that you need to set in the try_parse_request_path(), and check in generate_response(). Also, probably check that the request path is followed by "HTTP/1." before sending the response? And I'd really recommend finishing reading out all of the request from the socket (that is, until you've seen "\r\n\r\n"), or you may run into the problem of your clients not being sent the complete response [0].

But other than that, yeah, it is an HTTP server. The HTTP protocol is decently well thought out so that you can be oblivious of most of the features you don't want to support.

[0] https://blog.netherlabs.nl/articles/2009/01/18/the-ultimate-... — the tl;dr is that if you do close() on a socket that still has the data from the client you haven't recv()d, the client will be sent an RST.
by MrJohz | 2025-08-17 07:56:38+00:00
In fairness, I've not used GL in a couple of years, but before that I used it a lot, and it all worked, but it never worked very well. Issue organisation was painful, and there was always some new trick that made it slightly easier but never enough (boards, nested workspaces, sprint tools, etc). CI had about a hundred different ways of doing the same thing, because every so often the GL devs would realise their current system wasn't quite general or powerful enough, and add a new way of defining DAGs, or a new way of sharing jobs, or a new way of managing environments. You didn't need to switch, but trying to figure out how all these different approaches interacted by reading the docs was a nightmare.

In general, the documentation and UI were painful, and trying to figure out how to do something usually took me to a GL issue that would describe my problem but either be closed (with little indication of whether the feature was added or what form it had taken in the end), or open with no discussion apart from a bunch of comments from a community manager saying "a bronze supporter said that this is a blocker for them". Trying to figure out where features or configuration lived in the UI was also like pulling teeth, especially with GL's love of icons to explain what everything is.

So it's not that the features are missing, it's that they're all half-baked, and it would take Gitlab another ten years to polish them off and round them out.
by wsc981 | 2025-08-17 07:56:48+00:00
I recently started replaying Syndicate again as well, but I do think the game has some issues.

- Gameplay is very simple, not much strategy involved.

- Missions are pretty much all the same, very little variety.

- Perhaps because I am older now, I know to quickly research to become powerful.

- Enemy AI seems non-existent.

I first bought chest armor for my cyborgs, which increases survivability a lot. Afterwards heart upgrades, which I think helps health recover quickly. Also got mini-guns by level 6 or so. Makes it very easy to deal with enemies.

With that said, still a fun game, but when I was younger I had a bit of rose tinted glasses about the game I think.
by MrDresden | 2025-08-17 07:57:47+00:00
Yes, heavily.

I use Firefox and so use an extension called Floccus[0] to sync my bookmarks via my own Nextcloud instance.

I also use a self hosted instance of Wallabag[1] to store pages that I bookmark for reading later (as opposed to bookmarking as a utility) so that I never have it happen that the article/blog/etc has disappeared when I finally get to reading it.

Can't say I know, or care, if bookmarking is fashionable. It works well for me, and with this setup I am in control of my links.

[0]: https://floccus.org/

[1]: https://wallabag.org/
by lnsru | 2025-08-17 07:57:49+00:00
I once ordered Kia EV6, but after a year I canceled the order. I am now glad I canceled it. Bi-yearly inspections and coolant change for 600€ are ridiculous ripoffs. ICCU failures are handled really badly in Germany. I really like the EV6 and EV3 cars, but the manufacturer isn’t that attractive anymore
by strogonoff | 2025-08-17 07:58:03+00:00
> if selling your software to professional businesses is the goal

If that was the goal, this wouldn’t be an OSS project, would it?

When we are talking about FOSS, the goal is to keep the project alive and sustainable without burning out or starving. There are various ways people do it (such as making it your side project in addition to the day job, charging for bug fixes and features, etc.), and this one doesn’t strike me as the worst—making it partly your self-expression creates that extra bit of motivation to keep going, and if it serves as an incentive for people who find it otherwise good (some of which may in fact not mind the default style personally but wouldn’t go for it at their place of employment) to become paid customers then all the better!
by IshKebab | 2025-08-17 07:58:47+00:00
This sounds really convincing but I'm not sure it's actually correct. The author is conflating the surprise of punchlines with their likelihood.

To put it another way, ask a professional comedian to complete a joke with a punchline. It's very likely that they'll give you a funny surprising answer.

I think the real explanation is that good jokes are actually extremely difficult. I have young children (4 and 6). Even 6 year olds don't understand humour at all. Very similar to LLMs they know the shape of a joke from hearing them before, but they aren't funny in the same way LLM jokes aren't funny.

My 4 year old's favourite joke, that she is very proud of creating is "Why did the sun climb a tree? To get to the sky!" (Still makes me laugh of course.)
by whazor | 2025-08-17 07:59:46+00:00
I think that the models 4o, o3, 4.1 , each have their own strengths and weaknesses. Like reasoning, performance, speed, tool usage, friendliness etc. And that for gpt 5 they put in a router that decides which model is best.

I think they increased the major version number because their router outperforms every individual model.

At work, I used a tool that could only call tasks. It would set up a plan, perform searches, read documents, then give advanced answers for my questions. But a problem I had is that it couldn’t give a simple answer, like a summary, it would always spin up new tasks. So I copied over the results to a different tool and continued there. GPT 5 should do this all out of the box.
by Dylan16807 | 2025-08-17 08:00:04+00:00
No. Humans age in a way that cars don't, so "that logic" would not attempt to apply the same curve to humans.

If you're done nitpicking, you're welcome to explain your number better. You forgot to say how to apply "4.5%". I'm sure an exponential fit has issues, but a linear fit would be much worse, and anything fancy needs more data points.
by unnah | 2025-08-17 08:00:25+00:00
How about a situation where the inner Optional<T> is acquired from another system or database, and the outer Optional<Optional<T>> is a local cache of the value. If the outer Optional is null, then you need to query the other system. If the outer Optional is filled and the inner Optional is null, then you know that the other system explicitly has no value for the data item, and can skip the query. Seems like using nested optionals would be natural here, although of course alternative representations are possible.
by blixtra | 2025-08-17 08:00:31+00:00
I’ve now had 2 IONIQ 5s stolen in Berlin, the last a couple months ago. Each seemingly using a keyless access hacking device. That’s enough for me to not see a Hyundai or Kia in my future anytime soon. And I very much liked the IONIQ 5. But if I can’t keep one more than 2 years, what’s the point? I’ve lost all trust in those companies, upgrade or not.
by JdeBP | 2025-08-17 08:00:33+00:00
Much has been said about Daniel J. Bernstein eschewing the Standard C library in publicfile and other softwares. But Bernstein's str_rchr() function was designed to expressly avoid this well-known gotcha of the Standard C string functions.

Here's str_rchr() which uses the offset of the terminating NUL as the returned sentinel value:

* https://github.com/jdebp/djbwares/blob/trunk/source/str_rchr...

And here's it being used (by publicfile's httpd and indeed other programs) to find the basename's extension in order to infer a content type:

* https://github.com/jdebp/djbwares/blob/trunk/source/filetype...

The extension is always a non-NULL string, that can always be passed to str_equal(). It is just sometimes a zero-length string.

It's possible, but a bit clunky, to achieve the same effect with two successive calls to Standard C/C++ strrchr(), or strchr(), the second being:

if (!result) result = std::strchr(s, '\0');

Here's me doing that in my own code:

* https://github.com/jdebp/nosh/blob/c8d635c284b41b483067d5f58...

One can get very lost in the weeds on the comparative merits on different instruction architectures of compiler intrinsics, explicit loop unrolling, whole program optimization, and whatnot. (-:
by procaryote | 2025-08-17 08:00:42+00:00
This might be one of those induced demand situations like building more lanes on a highway, which generally makes traffic worse.

The actual limiting factor for how horribly bloated frontend code becomes is that at some point, it becomes so bad that it noticably impacts your business negatively, and you need to improve it.

Increasing the TCP window so it managed at least the basic asset delivery makes sense, but if you need to cold start regularly and you have hundreds of kb of javascript, perhaps fix your stuff?
by hdgvhicv | 2025-08-17 08:01:12+00:00
American freedom is general is based on “might makes right”, whether that’s the well armed gunslinger in the old west, the lawyered up millionaire in the courts, or the billion dollar company using their freedom of speech to obliterate yours.

Everyone has the same freedom to use their resources to maximise that freedoms to help with where the fiat meets the nose.