MurphyA/hacker-news huggingface dataset:
by ADCXLAB | 2025-12-06 18:45:19+00:00
Thanks, this is exactly the kind of feedback I was hoping for.

You’re right — the moment AML requires behavioural or temporal patterns (e.g., multi-transfer structuring just below a threshold), true statelessness becomes a limitation. My approach so far has been: 1. Keep the core engine strictly deterministic and stateless — single-event checks only (sanctions, IBAN/SWIFT, address heuristics, ISO reconstruction, corridor rules, schema validation). 2. Defer pattern-based AML to external systems that already maintain historical context. The API exposes hooks for institutions to call those systems before/after my validator. 3. Avoid storing any identifiers on my side to completely remove PII liability — it keeps the surface area small but intentionally excludes behavioural AML.

So the design goal wasn’t to replace full AML stacks, but to provide a stateless compliance primitive that can sit at the edge without holding risk data.

If you have thoughts on minimal context retention that doesn’t compromise statelessness (e.g., cryptographic summaries, ephemeral windows, or client-side state patterns), I’d be interested to explore those ideas.

Happy to follow up whenever you get a chance to look at the docs.
by gruez | 2025-12-06 18:45:21+00:00
>Graphene has really caught my eye in the last several months, but unfortunately I couldn't find a good deal for Pixel phones (>128GB storage), used or new. [...] I just finally switched from an S10E to a S25Ultra (black friday deal brought down to $820),

There are plenty of deals for pixels under $820: https://slickdeals.net/search?q=pixel&searcharea=deals&searc...
by KaiserPro | 2025-12-06 18:45:44+00:00
A number of startups did this in 2017-2020 (Scape, Mapillary, Niantic, google, apple and a a few others who's names I've forgotten)

With consumer cameras and GPS you can make pretty good maps, vaguely automatically. Keeping them up to date was mostly down to making sure that you had enough overlap in the data at different times.

The big thing for that generation of companies was AR, and making AR games accurate. This also had a feedback loop of people uploading photos/points to update the map.

With this system, I'm not sure what the point is. I don't get free maps, and frankly they are commodity now anyway.

Personally if I was going to do this again (I'm not going to because meta/google would crush me in an instant, also there isn't a market for the end product) I would pay delivery companies and security people for the data, or operate a CCTV "inteliigence" platform and generate the map as a side effect.

If you want to make your own maps, its acutally not that hard: https://github.com/cvg/Hierarchical-Localization is the more advance and less user friendly version of colmap: https://github.com/colmap/colmap
by ndsipa_pomu | 2025-12-06 18:46:13+00:00
I wasn't complaining about the actual temperature (I tend to 80°C water for my Aeropress brews), but the use of freedom units.

I'm sure there's ways to make quality drip coffee, but all the drip coffee that I've had has been very poor. I've also lost count of the number of times that I see people using boiling water for making coffee.

To my mind, it's easy to get obsessive over making good coffee, but what I'd like to see is just more people knowing how to not make bad coffee. If you're thinking about water temperature and pyramiding the grounds, then you're likely making great coffee.
by lemonwaterlime | 2025-12-06 18:46:46+00:00
Rather than its "decline was", Perl's existence is cultural. All programming languages (or any thought tools) are reflections and projections of the cognitive values of the community who creates and maintains them. In short, the Perl language shares the structure of the typical Perl dev's mind.

A shift to Python or Ruby is fundamentally a shift to a different set of core cognitive patterns. This influences how problems are solved and how sense is made of the world, with the programming languages being tools to facilitate and, more often than not, shepherd thought processes.

The culture shift we have seen with corporations and socialized practices for collaboration, coding conventions, and more coincides with the decline of a language that does in fact have a culture that demands you RTFM. Now, the dominant culture in tech is one that either centralizes solutions to extract and rent seek or that pretends that complexity and nuance does not exist so as to move as quickly as possible, externalizing the consequences until later.

If you've been on this forum for a while, what I am saying should seem familiar, because the foundations have already been laid out in "The Pervert's Guide to Computer Programming", which applies Lacanian psychoanalysis to cognitive patterns present in various languages[1][2]. This explains the so-called decline of Perl—many people still quietly use it in the background. It also explains the conflict between Rust and C culture.

As an aside, I created a tool that can use this analysis to help companies hire devs even if they use unorthodox languages like Zig or Nim. I also briefly explored exposing it as a SaaS to help HR make sense of this (since most HR generalists don't code and so have to go with their gut on interviews, which requires them to repeat what they have already seen). With that stated, I don't believe there is a large enough market for such a tool in this hiring economy. I could be wrong.

[1] [PDF] -- "The Pervert's Guide to Computer Programming" https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...

[2] [YouTube Vulc Coop]-- https://www.youtube.com/watch?v=mZyvIHYn2zk
by neom | 2025-12-06 18:47:05+00:00
Given we're long evolved, and also tribal based animals, and that culture is an evolutionary pressure feedback mechanism, and prediction is fundamentally useful to our reality, different "thinking styles" (ways to predict/understand outcomes) are useful, aannnd, tribally we used people for their usefulness, I often wonder if "faulty" is the correct lens. That is to say, If prediction variation was useful to tribes, having both 'trust the model' and 'trust the senses' type people, I suppose framing these as disorders rather than trade offs is probably the wrong lens entirely. Society/culture/reality is so narrow and predictable these days, faulty in what context, you know? If you breed 20 generations of "best night watchers", in the jungle at night looking down, quiet, still, dark... you'd probably be selecting for specific traits, and creating new traits, retinal rod density and sensitivity, faster dark adaptation/contrast etc, attention/vigilance traits, pattern detection, anxiety adjacent traits in hypervigilance, prob something about circadian rhythm tolerance etc etc. (https://www.researchgate.net/publication/40886135_Not_By_Gen...)
by brandall10 | 2025-12-06 18:47:27+00:00
The story about the photography students was conveyed almost verbatim in the book Atomic Habits fwiw.

But I think this type of principle has been relayed through many forms. Even Bruce Lee has the famous quote “I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.”
by diegof79 | 2025-12-06 18:47:37+00:00
There is no doubt that a product’s community culture and the maintainer’s attitude have a significant influence.

However, I used Perl and stopped using it without knowing anything about its internal politics or community. PHP, ASP, Java JSP and later Rails were much better than Perl for web development.

* I know that for some the mention of JSP will be rare, as it was ugly… However in the 2000s it was the state of the art
by zahlman | 2025-12-06 18:47:58+00:00
> By comparison, Python can barely go one version without both introducing new things and removing old things from the language

Overwhelmingly, what gets removed is from the standard library, and it's extremely old stuff. As recently as 3.11 you could use `distutils` (the predecessor to Setuptools). And in 3.12 you could still use `pipes` (a predecessor to `subprocess` that nobody ever talked about even when `subprocess` was new; `subprocess` was viewed as directly replacing DIY with `os.system` and the `os.exec` family). And `sunau`. And `telnetlib`.

Can you show me a real-world package that was held back because the code needed a feature or semantics from the interpreter* of a 3.x Python version that was going EOL?

> Python interpreter: if you can tell "print" is being used as a keyword rather than a function call, in order to scold the programmer for doing that, you can equally just perform the function call.

No, that doesn't work because the statement form has radically different semantics. You'd need to keep the entire grammar for it (and decide what to do if someone tries to embed a "print statement" in a larger expression). Plus the function calls can usually be parsed as the statement form with entirely permissible parentheses, so you have to decide whether a file that uses the statement should switch everything over to the legacy parsing. Plus the function call affords syntax that doesn't work with the original statement form, so you have to decide whether to accept those as well, or else how to report the error. Plus in 2.7, surrounding parentheses are not redundant, and change the meaning:

$ py2.7 Python 2.7.18 (default, Feb 20 2025, 09:47:11) [GCC 13.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print('foo', 'bar') ('foo', 'bar') >>> print 'foo', 'bar' foo bar

The incompatible bytes/string handling is also a fundamental shift. You would at least need a pragma.
by bigbadfeline | 2025-12-06 18:48:06+00:00
> Have we been lied to all along?

It's kind of late to ask that question now, it might even be late to ask the question "Is it possible to undo the mountains of lies?" because just telling the truth on the internet definitely can't do anything about it.

> Is trust worthy authority in our world an illusive lie that we allow ourselves to believe?

That's a rather misleading question because without a trustworthy authority we'd surely lose the comforts and conveniences afforded to us by modernity, preserving the lives of many might not be an option either. The real question is how to get there because we've lost the little we had before.

> To vigorously debate.

The bots farms are at the ready in case we tried.
by eduction | 2025-12-06 18:48:19+00:00
Perl heads are downvoting you but I agree as a longtime ex Perl user that the sigils were noisy nonsense.

The original intent was you could see var types with them - $scalar, @array, %hash.

They immediately broke this by deciding the sigil would apply to the value /extracted/ from the data structure. So you declared array @foo but accessed an element as $foo[1]. What? There’s a logic there but already you’re violating many people’s expectations so why even have them. The sigils are now confusing many people instead of clarifying anything.

The sigil idea then /completely/ failed when they introduced references and “complex data structures” (nesting arrays within arrays like every other language - in Perl this was a special thing because they had been flattening lists by default so no way to put one inside another).

So now to get at a hash in a hash you used not % but $ since a reference is a scalar. $hash1->$hash2->{“key”}. Versus $hash3{“key”} for a simple hash. Just awful noisy syntax. Due to poor language design up front.
by donallen | 2025-12-06 18:48:45+00:00
I've written a fair amount of code in Rust and D and a little less in Zig. In my opinion, Zig was not ready for prime time when I used it -- too many bugs -- and that may still be true. Rust is hard to learn and even after you do, it gets in the way a lot. D is very nice if you like C, but there are a lot of problems with the project and the tooling.

I'm about to say something that will likely surprise you; it surprised me: have you folks thought about Ada? I was around, working on (D)ARPA contracts at BBN, when Ada was designed. We didn't use it, so I had no opinion of it at the time. I thought it had dried up and blown away in the decades since, like PL1.

Well, it's now #17 on the Tiobe index and climbing. So I gave it a try for a small project. My reaction is very positive. The language is well-designed, obviously having learned a lot of lessons from the mistakes of C, among other things. The compiler, gnat, is built on gcc. Compilation times are very fast, execution times are fast, it works well with gdb, and it's well documented. It avoids many of the traps of C (no pointer arithmetic, no automatic type conversions) and it just feels carefully engineered. It's been used to build a lot of applications in areas like train control and aviation where you just can't screw up because people may die if you do.

Based on my experience with writing and debugging a little over a thousand lines of code (so not a lot), I'm very impressed -- it's surprisingly good. I'd suggest giving it consideration if/when the opportunity presents itself.
by hinkley | 2025-12-06 18:49:01+00:00
> if difficulty itself becomes a badge of honour, you've created a trap: anything that makes the system more approachable starts to feel like it's cheapening what you achieved. You become invested in preserving the barriers you overcame.

The mentality described here has always galled me. Half the reason I’m willing to scramble up these hills is to gain the perspective to look for an easier way up the next time. It’s my reward for slogging through, not for the gathering of sycophants.

I’m not sure you’ve mastered a thing until you’ve changed the recipe to make it a little bit better anyway. My favorite pumpkin pie recipe, isn’t. As written the order of operation creates clumps, which can only be cured with an electric mixer. You shouldn’t need an electric mixer to mix pumpkin pie filling. If you mix all the dry ingredients first, you get no clumps. And it’s too soupy. Needs jumbo eggs, not large. So that is my favorite recipe.

But maybe this is why I end up writing so many tools and so much documentation, instead of hoarding.
by hombre_fatal | 2025-12-06 18:49:16+00:00
A few thoughts.

> It's not simpler than a container option and creates a single point of issue. The container option is tested and supported by Immich, they recommend it. I don't want to be beholden to NixOS for everything.

I think there's a misunderstanding here. You aren't beholden to NixOS here. You don't have to use nixpkgs nor home-manager modules. You can make your own flakes and you can use containers, but the benefit is still that you set it up declaratively in config.

It's not incompatible with anything you've said, it's just cool that it has default configurations for things if you aren't opinionated.

> I don't want to manage configurations in multiple places.

I've accumulated one big Nix config that configures across all my machines. It's kind of insane that this is possible.

Of course, it would seem complicated looking at the end result, but I iterated there over time.

Example: https://github.com/johnae/world -- fully maintained by a clanker (https://github.com/johnae/world/pulls?q=is%3Apr+is%3Aclosed)
by threethirtytwo | 2025-12-06 18:49:17+00:00
I no longer write code. I’ve been a swe for over a decade. AI writes all my code following my instructions. My code output is now expected to be 5x what it was before because we are now augmented by AI. All my coworkers use AI. We don’t use ChatGPT we use anthropic. If I didn’t use AI I would be fired for being too slow.

What I work on is large and extremely technical.

And no we are not at an infrastructure limit. This statement is insane. We are literally only a couple years into LLMs becoming popular. Everything we see now is just the beginning. You can only make a good judgement call of whether we are at our limit in 10 years.

Because the transition hit so quickly a lot of devs and companies haven’t fully embraced AI yet. Culture is still lagging capability. What you’re saying about ChatGPT was true a year ago. And now one year later, everything you’re saying isn’t remotely true anymore. The pace is frightening. So I don’t blame you for not knowing. Yes AI needs to be managed but it’s at a point where the management no longer hinders you and it instead augments your capabilities.
by bbminner | 2025-12-06 18:49:34+00:00
While better, a person modifying PizzaDetails might or might not expect this change to affect the downstream pizza deduplication logic (wherever it got sprinkled throughout the code). They might not even know that it exists.

Ideally, imho, a struct is a dumb data holder - it is there to pass associated pieces of data together (or hold a complex unavoidable state change hidden from the user like Arc or Mutex).

All that is to say that adding a field to an existing struct and possibly populating it sparsely in some remote piece of code should not changed existing behavior.

I wonder whether there's a way to communicate to whoever makes changes to the pizza details struct that it might have unintended consequences down the line.

Should one wrap PizzaDetails with PizzaComparator? Or better even provide it as a field in PizzaOrder? Or we are running into Java-esq territory of PizzaComparatorBuilderDefaultsConstructorFactory?

Should we introduce a domain specific PizzaFlavor right under PizzaDetails that copies over relevant fields from PizzaDetails, and PizzaOrder compares two orders by constructing and comparing their flavours instead? A lot of boilerplate.. but what is being considered important to the pizza flavor is being explicitly marked.

In a prod codebase I'd annotate this code with "if change X chaange Y" pre submit hook - this constraint appears to be external to the language itself and live in the domain of "code changes over time". Protobufs successfully folded versioning into the language itself though. Protobufs also have field annotations, "{important_to_flavour=true}" field annotation would be useful here.
by pavel_lishin | 2025-12-06 18:49:46+00:00
I'm having to pick up some perl now, and while I don't interact with the community, it surely _feels_ like it was written by wizards, for wizards. Obscure, non-intuitive oneliners, syntax that feels like it was intentionally written to be complicated, and a few other things that feel impossible to understand without reading the docs. (Before everyone jumps on me - yes, as a developer, I should be able to read documentation. And I did. But until I did so, what the code was doing was completely opaque to me. That feels like bad language design.)

Some of it I recognize as being an artefact of the time, when conciseness really mattered. But it's still obnoxious in 2025.

The whole thing reminds me of D&D, which is full of classes & spells that only exist in modern D&D because of One Guy who happened to be at the table with Gygax, who really wanted to be a wuxia guy he saw in a movie, or because he really wanted a spell to be applicable for that one night at the table, and now it's hard-coded into the game.
by dimal | 2025-12-06 18:49:48+00:00
> Autism exists, to the extent that any psychiatric disorder exists.

Which is to say, not really. I say this as someone who has been diagnosed as autistic, and identifies as autistic. All of these diagnoses are presented as clear, well defined constructs that exist in the world, but in reality they’re fictions that that committees have drawn around a vast gradient of human traits.

No individual human truly fits any single diagnosis. For example, I have two family members that depending on how you frame their behaviors could be described as either autistic or narcissistic, yet these are supposedly completely different disorders. Prior to being diagnosed as autistic, I’d been diagnosed with some of the ones suggested in the article as well. Was I misdiagnosed? I don’t think so. None of those constructs are real either. So, they’d not even wrong. For a time, some were useful. Some were harmful. But seeing myself as autistic has been a lot more useful.

What matters to me about identifying as autistic is that it allowed me to find other people who experience the world similarly to me. Until I found other autistic people, I felt like I was a single alien stranded on Earth, alone. Finding other autistic people was like finding out that there were millions of other aliens like me hiding in plain sight.

I hope that someday we can move beyond the 1950s-style nosology of the DSM and have a more rigorous science of mental health, but right now, it’s what we’re stuck with.
by Lerc | 2025-12-06 18:50:52+00:00
I think Advertising is the issue where I have the most radical views. I don't think it is a terribly controversial view anymore.

In the past when taking to people about this I have asked them to come up with an example of something funded by advertising that has not been corrupted by it. In recent years nobody even wants to take up that challenge, it is far more common for them to concede I'm right on that point.

It's a definite shift 8n public opinion but I'm still a bit wary when people change their views to agree with me when much of their world view seems unfounded. I don't really accept the us vs them narrative. I don't think billionaires are necessarily evil, I certainly don't think the solution to hyper-capitalism is to abandon all elements of society (which seems to be a growing belief), or that socialism an capitalism are fundamentally incompatible. I'd like people to agree with me about the properties of a thing rather than by whether proponents of it are on you tr8be or an opposing tribe.

I'd like a free society where that freedom is limited only by the harm you can do to others. Prevention of harm should be through robust and evidence based regulation.

I think there is a good case to be made that all advertising is harmful to some extent. There are certainly examples that are clearly harmful evading any form of regulation. When people break the rules that currently exist, what motivation do the6 hav3 to mitigate their behaviour? This is a failure of government. I'm not sure if adding more rules that can be broken with impunity would help.

Regulators need the power to inflict punishment that rule breakers actually feel. Enough that it is logical for even an amoral entity to obey the rules. That doesn't seem like a complicated thing, but I feel like it would go a long way healing society.
by api | 2025-12-06 18:51:00+00:00
This also underscores my explanation for the “worse is better” phenomenon: worse is free.

Stuff that is better designed and implemented usually costs money and comes with more restrictive licenses. It’s written by serious professionals later in their careers working full time on the project, and these are people who need to earn a living. Their employers also have to win them in a competitive market for talent. So the result is not and cannot be free (as in beer).

But free stuff spreads faster. It’s low friction. People adopt it because of license concerns, cost, avoiding lock in, etc., and so it wins long term.

Yes I’m kinda dissing the whole free Unix thing here. Unix is actually a minimal lowest common denominator OS with a lot of serious warts that we barely even see anymore because it’s so ubiquitous. We’ve stopped even imagining anything else. There were whole directions in systems research that were abandoned, though aspects live on usually in languages and runtimes like Java, Go, WASM, and the CLR.

Also note that the inverse is not true. I’m not saying that paid is always better. What I’m saying is they worse is free, better was usually paid, but some crap was also paid. But very little better stuff was free.