MurphyA/hacker-news huggingface dataset:
by vlovich123 | 2025-12-14 00:40:49+00:00
The whole premise of microservices is loose coupling - external just makes it plainly obvious that it’s a non starter. If you’re not loosely coupling you can call it microservices but it’s not really.

Yes I understand it’s a shared library but if updating that shared library automatically updates everyone and isn’t backward compatible you’re doing it wrong - that library should be published as a v2 or dependents should pin to a specific version. But having a shared library that has backward incompatible changes that is automatically vendored into all downstream dependencies is insane. You literally wouldn’t be able to keep track of your BOM in version control as it obtains a time component based on when you built the service and the version that was published in the registry.
by mjr00 | 2025-12-14 00:41:11+00:00
> If you communicate with one another you are serializing and deserializing a shared type.

Yes, this is absolutely correct. The objects you send over the wire are part of an API which forms a contract the server implementing the API is expected to provide. If the API changes in a way which is backwards compatible, this will break things.

> That shared type will break at the communication channels if you do not simultaneously deploy the two services.

This is only true if you change the shared type in a way which is not backwards compatible. One of the major tenets of services is that you must not introduce backwards incompatible changes. If you want to make a fundamental change, the process isn't "change APIv1 to APIv2", it's "deploy APIv2 alongside APIv1, mark APIv1 as deprecated, migrate clients to APIv2, remove APIv1 when there's no usage."

This may seem arduous, but the reality is that most monoliths already deal with this limitation! Don't believe me? Think about a typical n-tier architecture with a backend that talks to a database; how do you do a naive, simple rename of a database column in e.g. MySQL in a zero-downtime manner? You can't. You need to have some strategy for dealing with the backwards incompatibility which exists when your code and your database do not match. The strategy might be a simple add new column->migrate code->remove old column, including some thought on how to deal with data added in the interim. It might be to use views. It might be some insane strategy of duplicating the full stack, using change data capture to catch changes and flipping a switch.[0] It doesn't really matter, the point is that even within a monolith, you have two separate services, a database and a backend server, and you cannot deploy them truly simultaneously, so you need to have some strategy for dealing with that; or more generally, you need to be conscious of breaking API changes, in exactly the same way you would with independent services.

> The logical outcome of this is virtually identical to a distributed monolith.

Having seen the logical outcome of this at AWS, Hootsuite, Splunk, among others: no this isn't true at all really. e.g. The RDS team operated services independently of the EC2 team, despite calling out to EC2 in the backend; in no way was it a distributed monolith.

[0] I have seen this done. It was as crazy as it sounds.
by godelski | 2025-12-14 00:41:51+00:00
I'd also like to know.

I'd also like to ask people not to block this way. It creates LOTS of false positives. There's much better ways to handle bots and this tactic seems particularly dumb for Reddit given they want users from places like China or elsewhere where a VPN might be required. Not to mention people using public WiFi. It's not like VPNs are uncommon these days.

If you must ban IPa then do so with a timeout and easing function. So that each hit results in a longer ban time. Bots want to move fast so even a few seconds ban time will make them switch IPs while not impacting most users (who will refresh)
by famouswaffles | 2025-12-14 00:42:01+00:00
Yes, technically you can frame an LLM as a Markov chain by defining the "state" as the entire sequence of previous tokens. But this is a vacuous observation under that definition, literally any deterministic or stochastic process becomes a Markov chain if you make the state space flexible enough. A chess game is a "Markov chain" if the state includes the full board position and move history. The weather is a "Markov chain" if the state includes all relevant atmospheric variables.

The problem is that this definition strips away what makes Markov models useful and interesting as a modeling framework. A “Markov text model” is a low-order Markov model (e.g., n-grams) with a fixed, tractable state and transitions based only on the last k tokens. LLMs aren’t that: they model using un-fixed long-range context (up to the window). For Markov chains, k is non-negotiable. It's a constant, not a variable. Once you make it a variable, near any process can be described as markovian, and the word is useless.
by vlovich123 | 2025-12-14 00:43:19+00:00
You’d be wrong. I recommend you reread the blog post and grok what’s happening in the example.

> When that happens, we will run the Ptr version of get, which will dereference the Int’s val field as a pointer – and hence the program accesses address 42, and crashes.

If you don’t see an exploit gadget there based on a violation of memory safety I don’t know how to have a productive conversation.
by gambiting | 2025-12-14 00:43:35+00:00
>>It's print. With upper and lowercase letters.

So like.......not linking the letters together then? Doesn't that just actually take more effort than just writing cursive? And is slower?

>>But of course this is HN where most people are technical.

For sure, and as a professional programmer I keep a notebook with hand written notes - the fact that I have a keyboard and multiple monitors in front of me doesn't change the fact that hand writing is still the best(for me) way to save and recall information.
by Razengan | 2025-12-14 00:43:38+00:00
> Fidesz is basically a russian backdoor

I love (hate) this:

Western rich people are billionaires.

Russian rich people are oligarchs.

Western-backed leaders are democratic, progressive etc.

Others are backdoors.

China is tricky because they make our iPhones. For now

----

Meanwhile, there's almost nothing on the news or social spaces about how indigenous populations are still fighting for independence from Western colonizers, such as New Caledonia, an amazing place that I was planning to visit:

https://www.youtube.com/watch?v=H6S1AFh88PE

(I don't know where else to mention this, this conversation seemed close enough to be relevant)
by techblueberry | 2025-12-14 00:44:35+00:00
I’m curious - do you think you’re an independent thinker? Do you think it’s a competitive advantage? What does thinking differently mean? It seems like a thing people say because it sounds good without really interrogating it.

I objectively find myself to be an independent thinker, and I mostly find it distracting. I could be much more functional to society/work/relationships if I spent more time thinking about the kinds of things other people think about, in the way they think about them.

I observe most of the most successful people in society, are successful _because_ they have mainstream thought patterns, people look up to them because they understand them, and they develop solutions that are in line with what most people need/want/desire.
by lgas | 2025-12-14 00:44:56+00:00
I don't have much need of this personally, but I was playing around with an example from earlier in the thread and ended up with this:

#!/usr/bin/env -S uv run --with sh --script from sh import ifconfig print(ifconfig("en0"))

which is a pretty nice experience assuming you already have `uv` in the target environment.
by krick | 2025-12-14 00:45:58+00:00
I seriously don't quite understand the point of using a VPN that doesn't offer you clean residential IPs somehow (and I don't really know good VPN like that). Most services where I really want to use VPN are well aware of VPN IP blocks and just won't allow any of these famous VPNs (that I am aware of, at least). And services that don't care if it's my real IP or not… well, usually I don't really care about exposing them to my real IP either?

I mean, ok, there are use-cases. But commercial VPNs exist under specific premise, you know, and they just don't offer what they claim to be offering. Unfortunately.
by pizlonator | 2025-12-14 00:47:01+00:00
Posts like the one I made about how to do sandboxing are specifically to make the runtime transparent to folks so that meaningful auditing can happen.

> For example, Filip mentioned that some setuid programs can be compiled with it, but it also makes changes to ld.so. I pointed this out to the author on Twitter, as it could be problematic.

The changes to ld.so are tiny and don’t affect anything interesting to setuid. Basically it’s just one change: teaching the ld.so that the layout of libc is different.

More than a month ago, I fixed a setuid bug where the Fil-C runtime was calling getenv rather than secure_getenv. Now I’m just using secure_getenv.

> In other words, these are still teething problems with Fil-C, which will be reviewed and fixed over time. I just want to point out that using it for real-world "infrastructures" might be somewhat risky at this point. We need unix nerds to experiment with.

There’s some truth to what you’re saying and there’s also some FUD to what you’re saying. Like a perfectly ambiguous mix of truth and FUD. Good job I guess?
by wnevets | 2025-12-14 00:47:34+00:00
> Custom Proton: GE-Proton10-26

> (Flatpak), Set launch options

> gamescope -W 2560 -H 1440 -r 144 -f --force-grab-cursor --adaptive-> sync --expose-wayland -- > %command%

> Audio: Crackling

> Windowing: Size, Other

> Whiteborder at the top and left > of the screen without Gamescope

I don't know what this means but it sounds buggy?
by amitav1 | 2025-12-14 00:48:03+00:00
Saying this as a current high school student: there should be as few mandatory classes as possible. Your maths, sciences, and Englishes make sense. In Ontario, we also have to take French (bit more iffy, but I guess it's an official language), Civics (fluff), careers (more fluff), and technology and the skilled trades (I like technology, but still fluff). The more classes you stuff into school that don't relate to what a student wants to pursue, the more disengaged they become. Ironically, if this were a class, I, and most others would be on our phones for pretty much all of it.
by lurk2 | 2025-12-14 00:48:10+00:00
Another user deleted their comment:

> The purpose of English class was to provide a field for interdisciplinary subjects. We learned how to write the standard five paragraph essay. We learned how to detect dishonest and manipulative messaging in advertising. We learned to relate themes in literature to contemporary society.

This is how I remember my English classes. We did not spend much time at all on grammar after the 9th grade. We didn’t study any classic literature besides reading a Shakespeare play every year; you had to take a separate course for that. This is also how the classes are treated in most colleges these days; you’ll get English majors who spent 4 years reading critical theory and bad contemporary novels written by friends of the department head, rather than anything with serious cultural cachet.

This is the only serious criticism of the subject, in my opinion; the applications that grammar has in logical reasoning, composition, interpretation, and foreign language acquisition are too significant to shrug off, but it isn’t being taught particularly rigorously anymore.
by AgentK20 | 2025-12-14 00:48:20+00:00
Really that's the problem - Anticheat. Sure, at this point most games work on Linux. The problem is, most people don't play most games. Most people play a handful of games, and where the players go, the cheaters follow. In response, the game studios deploy more and more aggressive anticheat measures, ultimately breaking the tiny minority of people who would've otherwise been able to play the game on Linux/Proton.

Take a look at https://areweanticheatyet.com at some of the biggest games on the planet, and how most of them don't support Linux or Proton.
by sshine | 2025-12-14 00:49:01+00:00
> You get a big list of new features, but which ones are the most important to stakeholders?

I worked for one startup with one major customer who was really skeptic of investing further because of stability problems, feature delay problems, and lack of transparency. Along with a complete list of changes that gave them insight into how we prioritised between stability and feature development, I wrote a human summary of what this meant — experiments, summaries of statistics, summary of most important changes to business logic.

Writing personally to your stakeholders does not exclude being systematic, and vice versa.

> As a matter of personal taste, I think it looks lazy.

That’s funny, because I find the lack of automation to be the lazy choice. Forgetting to add to the changelog because the requirement is checked by humans, or because single commits fix things below some bar of noteworthiness that is entirely subjective and driven by lack of structure. Not writing commit messages worth putting in release notes (fix sht, asdasdasd, etc.)

> Changelogs are a unique opportunity to communicate something important, they're written once and read by many. with a list of commits, myself and all other readers must now put in the work to find out what's relevant - it's disrespectful of others' time.*

When I migrate software, I’m very interested in the complete picture. I’ll ask my AI agent to go over the links in the changelog and summaries for me what are the breaking changes and what manual steps do I need to take. Having them in human-readable form ahead of time would be nice.

Since git-cliff has different sections, I can skip changes to documentation. Because of SemVer, I know if there’s something breaking.
by lo_zamoyski | 2025-12-14 00:50:05+00:00
I would agree that it was different, but I also think this may be history viewed through rose-tinted glasses somewhat.

> There were also more low hanging fruit to develop software that makes people’s lives better.

In principle, maybe. In practice, you had to pay for everything. Open source or free software was not widely available. So, the profit motive was there. The conditions didn’t exist yet for the profit model we have today to really take off, or for the appreciation of it to exist. Still, if there’s a lot of low-hanging fruit, that means the maturity of software was generally lower, so it’s a bit like pining for the days when people lived on the farm.

> There was also less investor money floating around so it was more important to appeal to end users.

I’m not so sure this appeal was so important (and investors do care about appeal!). If you had market dominance like Microsoft did, you could rest on your laurels quite a bit (and that they did). The software ecosystem you needed to use also determined your choices for you.

> To me it seems tech has devolved into a big money making scheme with only the minimum necessary actual technology and innovation.

As I said earlier, the profit motive was always there. It was just expressed differently. But I will grant you that the image is different. In a way, the mask has been dropped. When facebook was new, no one thought of it as a vulgar engine for monetizing people either (I even recall offending a Facebook employee years ago when I mentioned this, what should frankly have been obvious), but it was just that. It was all just that, because the basic blueprint of the revenue model was there from day one.
by frompdx | 2025-12-14 00:50:21+00:00
When I was in high-school 20 plus years ago excerpt based reading assignments were fairly common in non-honors/advanced placement classes. Except there were whole textbooks full of excerpt based assignments instead of computer software for this purpose. Anecdotally I took honors and AP English and those classes destroyed my desire to read for years. I only read a few of the assigned books cover to cover because they were either dreadfully boring or the expectations for how quickly we should read them were more than I, a very average student, could manage. Usually some combination of both. Rather than relying on cliffnotes and sparknotes alone I would typically read the first chapter, the last chapter, and then some chapter in the middle so I was prepared for tests and discussions.

At the end of the day the AP exams didn't test you on your knowledge of The Scarlet Letter or The Great Gatsby. The exam tested you on your ability to read an excerpt and answer questions about it as well as your ability to write a multi-paragraph essay from a prompt while a proctor wearing the most hideous smelling blackberry perfume bathed you in an olfactory assault every time they walked by. In-classroom writing assignments were the most effective way to prepare and we did them frequently. As a reward for doing well you got to skip a couple of 100 level English credits in college.

Sure there are lots of brainrot distractions available to kids today, but it feels like the education system never takes a moment to look inward and acknowledge that The Scarlet Letter and My Antonia are dreadfully boring reads. It took me three tries to finish 1984 because the beginning is such a slog. It is strange to say kids aren't interested in reading (from the article) when a lot of the subject matter is objectively dull. Four of the six books in the article header are books I don't even want to think about let alone read.
by bgbntty2 | 2025-12-14 00:50:22+00:00
I think school ruined fiction books for me. I had to read long boring books about stories that didn't interest me, with useless sentences describing what the scene looked like or what someone had for dinner. Most of the stories and themes were outdated and didn't have enough context to make them understandable. Some books even used outdated words and phrases.

Maybe if I wasn't forced to read a book in an outdated language about some Christian farmer 300 years ago while I was not in school, and if I could access a succinct version 1/10th of the length of the book, I'd read it.

Maybe if I wasn't asked to describe minor details to prove I read the book, I'd actually focus on the story and not on every irrelevant detail.

Maybe if my teacher didn't force their religious holier-than-thou attitude and allowed us to form our own opinions, I'd be more engaged.

What school taught me was how to get away with not reading the books. I skimmed books by skipping tens of pages at a time or asked friends for the TL;DR or just got an F.

Now I have a feeling of uneasiness and dread when I try to read fiction for fun. So I don't.

Most 300 page fiction books I had to read could've easily been condensed to 30 pages without any loss of information.

Being forced to read and memorize poetry was the absolute shit. A lot of people won't care about poetry no matter how hard you try to force them to like it. And half of it was propaganda - how $nation survived $struggle, how $nation is so great or beautiful or how $hero did $ethical_thing.
by Aeolun | 2025-12-14 00:50:28+00:00
I think the problem is that this microservices vs monolith decision is a really hard one to convince people of. I made a passionate case for ECS instead of lambda for a long time, but only after the rest of the team and leadership see the problems the popular strategy generates do we get something approaching uptake (and the balance has already shifted to kubernetes instead, which is at least better)
by piskov | 2025-12-14 00:50:47+00:00
Chinese I’ve mentioned blew Ventra out of the water. I’ve been using humidifiers for the last 15 years and switched to smartme around 5 or something like that (liked the idea of auto speed and was tired of aged squickness after many years of its predecessor).

Haven’t used the first generation. Had a couple of the second (they notoriously had water level sensor issue that could be fixed just enabling “drying mode” that always ran for 8h after the sensor thought there were no water).

Third gen is the charm.

Cheap, effective (pump, double-bottom for rounded instead of flat tank — uses evry last drop), quiter, 5L tank, less creak after a few years.

tldr; I only wish it lasted whole 24 hours when it is -5C and lower outside, but I guess that requires 7-8L.

Also, having a few helps with the noise (I have total of three in my apartment).
by pornel | 2025-12-14 00:50:59+00:00
There's a need for some portable and composable way to do sandboxing.

Library authors you can't configure seccomp themselves, because the allowlist must be coordinated with everything else in the whole process, and there's no established convention for negotiating that.

Seccomp has its own pain points, like being sensitive to libc implementation details and kernel versions/architectures (it's hard to know what syscalls you really need). It can't filter by inputs behind pointers, most notably can't look at any file paths, which is very limiting and needs even more out-of-process setup.

This makes seccomp sandboxing something you add yourself to your application, for your specific deployment environment, not something that's a language built-in or an ecosystem-wide feature.
by sho_hn | 2025-12-14 00:52:12+00:00
FWIW, this just isn't true for KDE. We hit a rough patch with the KDE 4.x series - 17 years ago - that has been difficult to live down, but have done much in the way of making amends since, including learning from and avoiding the mistakes we made back then.

For example, we intentionally optimized Plasma 5 for low-powered devices (we used to have stacks of the Pinebook at dev sprints, essentially a RaspPi-class board in a laptop shell), shedding more than half the menory and compute requirements in just that generational advance.

We also have a good half-decade of QA focus behind us, including community-elected goals like a consistency campaign, much like what you asked for.

I'm confident Plasma 5 and 6 have iteratively gotten better on all four points.

It's certainly not perfect yet, and we have many areas to still improve about the product, some of them greatly. But we're certainly not enshittifying, and the momentum remains very high. Nearly all modern, popular new distros default to KDE (e.g. Bazzite, CachyOS, Asahi, Valve SteamOS) and our donation totals from low-paying individual donors - a decent proxy for user satisfaction - have multiplied. I've been around the commnunity for about 20 to 25 years and it's never been a more vibrant project than today.

Re the fantastic talk, thanks for the little KDE shout-out in the first two minutes!
by mekoka | 2025-12-14 00:52:23+00:00
You're both right, but talking past each other. You're right that shared dependencies create a problem, but it can be the problem without semantically redefining the services themselves as a shared monolith. Imagine someone came to you with a similar problem and you concluded "distributed monolith", which may lead them to believe that their services should be merged into a single monolith. What if they then told you that it's going to be tough because these were truly separate apps, but that used the same OS wide Python install, one ran on Django/Postgres, another on Flask/SQLite, and another was on Fastapi/Mongo, but they all relied on some of the same underlying libs that are frequently updated. The more accurate finger should point to bad dependency management and you'd tell them about virtualenv or docker.
by reactordev | 2025-12-14 00:52:26+00:00
Common code that’s part of your standard library, sure. Just parse the json. Do NOT introduce some shared class library that “abstracts” that away. Instead use versioning of schemas like another commenter said. Use protobuf. Use Avro. Use JSON. Use Swagger. Use something other than POCO/POJO shared library that you have to redeploy all your services because you added a Boolean to the newsletter object.