MurphyA/hacker-news huggingface dataset:
by pbasp | 2025-12-13 23:06:56+00:00
Maybe it's just me, but I find it weird to ask for a movie with very detailed characteristics. What I care above all is watching a good movie rather than wasting my time on a bad movie. I have a long list of movies that I plan to watch because I expect them to be good. My mood decides in which order I watch them, that's all. That's why I prefer collaborative filtering: I want to find movies that I'll like, I don't care if the city is rainy or sunny.
by saghm | 2025-12-13 23:07:10+00:00
They got stuck for me as well. It reminds me a bit of the card game War, which has a similar zero-sum (and zero-choice) competition for a single resource that can take an extremely long time to complete, but without an equivalent for the mechanic for how to handle when the players play the same card. Maybe some sort of RNG is needed to break out of those stalemates, unless there's some sort of metaphorical lesson intended (like War Games, which despite the naming doesn't have much to do with the card game, but it does feature Tic Tac Toe prominently).
by Barrin92 | 2025-12-13 23:07:17+00:00
running political ads is in and of itself value neutral, tools for manipulation aren't. Just having them in the hands of fewer people is a straight up win in the same way having bioweapons in the hand of fewer people is. "I wish everyone had Sarin gas to level the playing field" isn't really a great idea.

I think a minimum pricing on accounts, even if it's just a buck or two on most social media sites would do very little to hinder genuine participation but probably eliminate or render transparent most political manipulation.

Arguably the primary reason nobody does it is because it would reveal how fake their stats are and how little value there actually is in it
by Scubabear68 | 2025-12-13 23:08:02+00:00
Please don’t fall into the Fowler-said-so trap.

Just because he says something does not mean Fowler “formalized the term”. Martin wrote about every topic under the sun, and he loved renaming and or redefining things to fit his world view, and incidentally drive people not just to his blog but also to his consultancy, Thoughtworks.

PS The “single application” line shows how dated Fowlers view were then and certainly are today.
by lizknope | 2025-12-13 23:08:03+00:00
Are you familiar with how you focus a rangefinder camera like a Leica?

You are NOT looking through the lens but a small viewfinder offset from the lens. The viewfinder is usually on the far left. Then there is another window a few inches away that are reflected at various angles by mirrors into the main viewfinder. When you focus the lens that angle of that mirror moves.

This is what it looks like in the camera.

https://licm.org.uk/livingImage/Rangefinder-Camera.html

Here are some internal diagrams showing how the light bounces around in the camera.

https://leicaphilia.com/how-a-rangefinder-works/

https://www.macfilos.com/2024/11/22/fokus-pokus-time-to-reas...

In an SLR or compact camera or iphone the camera sensor or viewfinder is seeing through the lens that is used for taking the picture. So you adjust the lens until you see with your eye that it is in focus and that's it.

With the rangefinder camera the viewfinder is ALWAYS in focus. So you use this secondary image (see the sheep in the first link) and when the 2 images overlap then you know the lens is now in focus.

This camera in the article does not seem to be an optical rangefinder that I described above. When you look through the viewinder everything will be in focus as it is not looking through the lens.

So how do you focus? Instead it uses LiDAR to measure the distance and display that within the viewfinder. It also displays the distance that the lens is currently focused at. Many lenses will have focus scales like this.

https://www.pointsinfocus.com/blog/2010/07/modern-distance-s...

Here is the description from the camera's web site.

"LiDAR" range-finding with high accuracy and distance up to 12m In-viewfinder display with

Light-meter with aperture range set by selected lens Lens focus distance display, and LiDAR rangefinder distance display Focus accuracy indicator

So I think you get 2 numbers, the lens focus distance, and the LiDAR distance and it is up to you to adjust the lens until the 2 numbers match. Or move closer or further away using your feet.
by jameshart | 2025-12-13 23:08:06+00:00
A library which patches a security vulnerability should do so by bumping a patch version, maintaining backward compatibility. Taking a patch update to a library should mean no changes to your code, just rerun your tests and redeploy.

If libraries bump minor or major versions, they are imposing work on all the consuming services to accept the version, make compatibility changes, test and deploy.
by anthk | 2025-12-13 23:10:44+00:00
Megahal/Hailo (cpanm -n hailo for Perl users) can still be fun too.

Usage:

hailo -t corpus.txt -b brain.brn

Where "corpus.txt" should be a file with one sentence per line. Easy to do under sed/awk/perl.

hailo -b brain.brn

This spawns the chatbot with your trained brain.

By default Hailo chooses the easy engine. If you want something more "realistic", pick the advanced one mentioned at 'perldoc hailo' with the -e flag.
by citizenpaul | 2025-12-13 23:10:55+00:00
I was watching a movie where they guy says something like just this one last gig I'm out. And the old director replies thats what I said 40 years ago. If you want to be with your family then just walk out of here get in your car and never come back. There is no such thing as the last one.

Its from a movie but its still true. Point being that going all in on something else than your family often ends up being more costly than you think and you can never get that time back.

My dog passed recently and I still find great regret about how many times I ignored him to do work. I can't imagine how much I'd regret it with a child. If you want a real world reference.
by skydhash | 2025-12-13 23:11:02+00:00
Not GP, but I do prefer the very direct control you get with rcctl (OpenBSD), openrc (Alpine),... Systemd often feels like autoconf. It's needed when you really want the capabilities, otherwise the opaqueness and complexity feels very much cumbersome when you're dealing with a simple service.

I do like the Unix way of having different components handling different tasks instead of having different things which are entangled with each other. It encourages transparency.
by charcircuit | 2025-12-13 23:11:38+00:00
I'm not saying there can't be an admin who can create roles, or do some extra authentication to gain that privilege. I am saying that it shouldn't require assuming an all powerful user to do it. You should be able to do it from your actual account. This is good for keeping accurate records too since all actions are done by the users themselves. Yes, technically sudo can be logged, but it's bypassable by starting a shell.
by GeneralMayhem | 2025-12-13 23:11:49+00:00
I worked on building this at $PREV_EMPLOYER. We used a single repo for many services, so that you could run tests on all affected binaries/downstream libraries when a library changed.

We used Bazel to maintain the dependency tree, and then triggered builds based on a custom Github Actions hook that would use `bazel query` to find the transitive closure of affected targets. Then, if anything in a directory was affected, we'd trigger the set of tests defined in a config file in that directory (defaulting to :...), each as its own workflow run that would block PR submission. That worked really well, with the only real limiting factor being the ultimate upper limit of a repo in Github, but of course took a fair amount (a few SWE-months) to build all the tooling.
by thfuran | 2025-12-13 23:12:05+00:00
>As a science major, I'm not sure what the point of relying on an AI is as it would leave you empty

Why do you think it wouldn't do the same for other fields? The purpose of writing essays in school is never to have the finished product; it's to learn and analyze the topic of the essay and/or to go through the process of writing and editing it.
by aryonoco | 2025-12-13 23:13:08+00:00
Not many people use elm directly but it has influenced the design of so many frameworks and libraries.

Right now I’m toying with the idea of building a GNOME application in rust, and the framework I’m using is relm4 which provides elm like abstractions over gtk-rs.

Previously I’ve built web applications with F# and elmish, which again provides elm like abstractions for building F# applications.
by shoo | 2025-12-13 23:13:26+00:00
Great writeup. Much of this is more about testing, how package dependencies are expressed and many-repo/singlerepo tradeoffs than "microservices"!

Maintaining and testing a codebase containing many external integrations ("Destinations") was one of the drivers behind the earlier decision to shatter into many repos, to isolate the impact of Destination-specific test suite failures caused because some tests were actually testing integration to external 3rd party services.

One way to think about that situation is in terms of packages, their dependency structure, how those dependencies are expressed (e.g. decoupled via versioned artefact releases, directly coupled via monorepo style source checkout), their rates of change, and the quality of their automated tests suites (high quality meaning the test suite runs really fast, tests only the thing it is meant to test, has low rates of false negatives and false positives, low quality meaning the opposite).

Their initial situation was one that rapidly becomes unworkable: a shared library package undergoing a high rate of change depended on by many Destination packages, each with low quality test suites, where the dependencies were expressed in a directly-coupled way by virtue of everything existing in a single repo.

There's a general principle here: multiple packages in a single repo with directly-coupled dependencies, where those packages have test suites with wildly varying levels of quality, quickly becomes a nightmare to maintain. The packages with low quality test suites that depend upon high quality rapidly changing shared packages generate spurious test failures that need to be triaged and slow down development. Maintainers of packages that depend upon rapidly changing shared package but do not have high quality test suites able to detect regressions may find their package frequently gets broken without anyone realising in time.

Their initial move solves this problem by shattering the single repo and trade directly-coupled dependencies with decoupled versioned dependencies, to decouple the rate of change of the shared package from the per Destination packages. That was an incremental improvement but added the complexity and overhead of maintaining multiple versions of the "shared" library and per-repo boilerplate, which grows over time as more Destinations are added or more changes are made to the shared library while deferring the work to upgrade and retest Destinations to use it.

Their later move was to reverse this, go back to directly-coupled dependencies, but instead improve the quality of their per-Destination test suites, particularly by introducing record/replay style testing of Destinations. Great move. This means that the test suite of each Destination is measuring "is the Destination package adhering to its contract in how it should integrate with the 3rd party API & integrate with the shared package?" without being conflated with testing stuff that's outside of the control of code in the repo (is the 3rd party service even up, etc).
by theelous3 | 2025-12-13 23:13:54+00:00
"we sell gift cards :)"

"and we ban you for buying or redeeming them"

is just top tier comedy honestly.

As soon as I heard the first one of these stories about a guy getting google broad-spectrum banned because a junkbot AI thought his completely normal youtube comment was a nazi rant or whatever else it hallucinated - I bailed on the whole shebang. Hosting your own stuff is, if you're a reader of this site, easy enough and cheap enough there's little reason not to.
by pxc | 2025-12-13 23:13:58+00:00
I wrote another comment here about a strategy for writing portable Bash scripts without compromising on features and freely using arbitrary external commands. I wanted to give an example from the article of how I'd likely write one of his examples of a "somewhat unreadable shell script" in this style.

His ugly sh example:

morning_greetings=('hi' 'hello' 'good morning') energetic_morning_greetings=() for s in "${morning_greetings[@]}"; do energetic_morning_greetings+=( "${s^^}!" ) done

and his more readable Python equivalent:

morning_greetings = ['hi', 'hello', 'good morning'] energetic_morning_greetings = \ [s.upper() + '!' for s in morning_greetings]

And I'd write the shell version in Bash something like this:

morning_greetings=(hi hello 'good morning') printf '%s!\n' "${morning_greetings[@]}" \ | tr '[:lower:]' '[:upper:]' \ | readarray -t energetic_morning_greetings

Does it still involve more syntax? Yeah. Printing arrays in Bash always involves some. But it's clearer at a glance what it does, and it doesn't involve mutating variables.

The piece this example is too simple to show (since it's focused only on data operations and not interacting with the filesystem or running external programs) is how much shorter the Bash usually ends up being than the Python equivalent.
by pbasp | 2025-12-13 23:14:24+00:00
I'm convinced that in the future (5 or 10 years from now) you'll ask the AI precisely what movie you want to watch and it'll generate it on the fly. If you don't like the direction the story takes, you'll ask it to rectify. It'll be the end of the cinema as we know it today. I'm not sure it's a future that excites me :(
by GeneralMayhem | 2025-12-13 23:14:34+00:00
Internal and external have wildly different requirements. Google internally can't update a library unless the update is either backward-compatible for all current users or part of the same change that updates all those users, and that's enforced by the build/test harness. That was an explicit choice, and I think an excellent one, for that scenario: it's more important to be certain that you're done when you move forward, so that it's obvious when a feature no longer needs support, than it is to enable moving faster in "isolation" when you all work for the same company anyway.

But also, you're conflating code and services. There's a huge difference between libraries that are deployed as part of various binaries and those that are used as remote APIs. If you want to update a utility library that's used by importing code, then you don't need simultaneous deployment, but you would like to update everywhere to get it done with - that's only really possible with a monorepo. If you want to update a remote API without downtime, then you need a multi-phase rollout where you introduce a backward-compatibility mode... but that's true whether you store the code in one place or two.
by AndroTux | 2025-12-13 23:15:00+00:00
China was just an example. Try to extrapolate on your own.

Take someone from Russia, Iran, wherever, trying to access information they aren't allowed to access, or sharing information they aren't allowed to share. They think they're connected to a neighboring country, but in reality are exiting from their own country. Therefore, the traffic gets analyzed and they fall out a window.

Imagine Snowden sharing information about the NSA while using a VPN that actually exited from the US. Things might have developed differently.

Yes, it won't matter for most services. But as soon as states or ISPs are involved, you're fucked if you get it wrong.
by 0xbadcafebee | 2025-12-13 23:16:02+00:00
These "we moved from X to Y" posts are like Dunning-Kruger humblebrags. Yes, we all lack information and make mistakes. But there's never an explanation in these posts of how they've determined their new decision is any less erroneous than their old decision. It's like they threw darts at a wall and said "cool, that's our new system design (and SDLC)". If you have not built it yourself before, and have not studied in depth an identical system, just assume you are doing the wrong thing. Otherwise you are running towards another Dunning-Kruger pit.

If you have a company that writes software, please ask a professional software/systems architect to review your plans before you build. The initial decisions here would be a huge red flag to any experienced architect, and the subsequent decisions are full of hidden traps, and are setting them up for more failure. If you don't already have a very skilled architect on staff (99% chance you don't) you need to find one and consult with them. Otherwise your business will suffer from being trapped in unnecessary time-consuming expensive rework, or worse, the whole thing collapsing.
by telman17 | 2025-12-13 23:17:16+00:00
I know some people get annoyed at this because of the unspoken obligation to keep it going, but more than once I've been in a drive thru line where the person in front of me paid for my food. Whenever it's happened, I've tried to do the same for the next person. Just little things like that where I realize some stranger who has never met me wants me to have a better day mean a lot.
by kvemkon | 2025-12-13 23:18:26+00:00
> Gnome

I can't imagine what I'd be doing without MATE (GNOME 2 fork ported to GTK+ 3).

Recently I've stumbled upon:

> I suspect that distro maintainers may feel we've lost too many team members so are going with an older known quantity. [1]

This sounds disturbing.

[1] https://github.com/mate-desktop/caja/issues/1863#issuecommen...
by araes | 2025-12-13 23:19:39+00:00
Calling this a water cult as the primary focus of the article seems a little extreme.

A much easier explanation for most of the features of the stones is that they're primarily functional for a herding / livestock based society.

- "deliberately placed [...] near melting snow streams, springs and the seasonal movement of herding groups" - herd animals need water. In snow covered mountains, its difficult to identify where the water is. Large stones help you guide your herd to water sources.

- "Each one is carved and polished on all faces" - They're visually distinctive and stand out from a large distance on wide open alpine fields. They're polished, and carved, so they look obviously different than some quasi-random rock in the surrounding area and shine in the sunshine.

- "heaviest monuments [were] dragged [...] high into the mountains" - Snow is heaviest at high elevations, thereby requiring large monuments to be able to identify them no matter the snow amount on the ground. Small monuments are only necessary at low elevations because of limited obscuring issues.

- Even the fish / cow thing may have had functional meaning. "There are fish here, go fishing." "This is a good place herd cattle."
by sulcan | 2025-12-13 23:19:47+00:00
If you work with event sequences (clickstreams, shopping baskets, logs, user journeys), you’ve probably noticed that most embeddings capture co-occurrence, but not how sequences evolve.

I built Event2Vec, a small Python library that learns additive, interpretable embeddings for discrete event sequences.

Core idea: - Each event has a vector - A sequence is the sum of its events - This makes transitions explicit and composable

So you can do vector arithmetic on sequences, not just similarity.

Example (shopping data):

Δ = E(water_seltzer_sparkling) − E(soft_drinks) E(?) ≈ Δ + E(chips_pretzels) → fresh_dips_tapenades, bread, packaged_cheese

Another:

Δ = E(coffee) − E(instant_foods) E(?) ≈ Δ + E(cereal) → water_seltzer_sparkling, juice_nectars

The model learns behavioral shifts (e.g. lighter choices, habitual consumption) and applies them across categories.

API is intentionally simple and scikit-style:

from event2vector import Event2Vec model = Event2Vec( num_event_types=len(vocab), embedding_dim=128, geometry="euclidean", # or "hyperbolic" pad_sequences=True ) model.fit(train_sequences) embeddings = model.transform(train_sequences)

Use cases: - Clickstream / funnel analysis - Basket & customer modeling - User lifecycle modeling - Log / trace sequences - Any ordered categorical data

It’s not meant to replace transformers or RNNs — it’s for cases where: - You want interpretability - You care about sequence geometry - You want something simple and debuggable

Code (MIT):

https://github.com/sulcantonin/event2vec_public

or

pip install event2vector

Example notebooks: - Shopping baskets: https://colab.research.google.com/drive/118CVDADXs0XWRbai4rs... - Movies: https://colab.research.google.com/drive/1BL5KFAnAJom9gIzwRiS...

Very interested in feedback, real-world use cases, and where this breaks down.
by devnavigator | 2025-12-13 23:19:59+00:00
As AI moves from copilots to true agents, research is one of the first domains to see meaningful transformation. Google’s Gemini Deep Research represents a clear shift from simple search augmentation toward fully autonomous, research-grade intelligence, now accessible directly to developers. Similar to GPT-5.2’s announcement earlier this week, it represents a major milestone of progress in the industry.
by janstice | 2025-12-13 23:20:59+00:00
Your system was configured by muppets if you don’t have a search box - it’s a massive beast that like all enterprise-grade software is a toolbox for you to bend to your will, but the downside is that if your configuration people don’t have empathy for the users (and looking at you especially, contract architects) you end up with a system that is optimised for whoever talks with the vendor, and not for anyone else.