MurphyA/hacker-news huggingface dataset:
Show HN: Smart Photo Finder – Semantic photo search, not filename(100% local AI)
by Pankaj4152 | 2025-12-12 06:46:56+00:00
I got frustrated scrolling through thousands of photos to find "person holding camera" or "sunset on beach." Filenames are useless, manual tagging never happens, and cloud solutions compromise privacy.

Built this using NexaAI's local VLM (Qwen3-VL) + semantic embeddings. How it works:

1. VLM generates natural language descriptions of each image (one-time processing) 2. Descriptions converted to 384D embeddings 3. Search by meaning using cosine similarity (<100ms for 1000 images)

Everything runs locally. Your photos never leave your device. Zero API costs.

Technical reality: CPU processing is slow (~20-30s per image initially), but searching is instant afterward. JSON database works fine for personal collections; you'd want FAISS for 10k+ images.

It's a prototype, but it works and solves a real problem I had. Open to feedback.

Built for NexaAI's Builder Bounty Program (on-device AI, privacy-first).

Demo video: https://youtu.be/YVkPa-aJpEo Medium writeup: https://medium.com/@pankajgoyal4152/building-smart-photo-fin...
Thoughts on Cursor
by grandimam | 2025-12-12 06:47:05+00:00
I believe Cursor just rolled out its two major features: Debug and Design.

I had an understanding of what I wanted from the IDEs, but I could not fully articulate it before the launch. Now that it’s here, it makes complete sense.

The way I see the future of programming, everything is going to be live: debugging, coding, designing, etc. Not that the idea is new, but the difference is that now it will be fully autonomous.

Recently, I worked on a feature that required redesigning part of our legacy flow built with Django templates and plain JavaScript for interactivity. In theory, this should not be a difficult task for current models. But they struggled to produce the right output, and I think there are two reasons for that:

Design is inherently hard to express purely in text.

Models are great at generating new code, but not so great at modifying large, existing codebases.

Honestly, the best workflow I found for updating the legacy UI was to operate directly off screenshots. I simply take the screenshots of the existing UI and the expected change, and ask the model to write code that matches that design, given the context of existing design. Models understand the context way faster this way.

With this new Design feature, I imagine this whole process become faster because I can make the edits directly on the browser, and model simply codes the expected outcome. Its what I always wanted - a custom headless Puppeteer running in the background, watching what I am doing, and helping with the design in real time.

And then there’s debugging. I have always preferred logs over a traditional debugger. What I have really wanted is something like an ELK parser at runtime something that just understands my logs as the system runs, and can point out when things drift off the expected path.
by groundzeros2015 | 2025-12-12 06:47:30+00:00
> The closure problem can be neatly described by as “how do I get extra data to use within this qsort call?”

_Thread_local struct { void *data; int (*compare)(const void *a, const void*, void*); } _qsort2_closure ; static int _qsort2_helper(const void *a, const void *b) { return _qsort2_closure.compare(a, b, _qsort2_closure.data); } void qsort2(void *base, size_t elements, size_t width, int (*compare)(const void *a, const void*, void*), void *userData) { _qsort2_closure.data = userData; _qsort2_closure.compare = compare; qsort(base, elements, width, _qsort2_helper); }
by vineyardmike | 2025-12-12 06:47:35+00:00
I never worked at MSFT, but I did work on a few extremely popular consumer-facing products across big tech that had a negative reputation. One product was super hated feature of a bigger and well-loved service (literally "why can't I turn this off") and the other was perceived to be super useful but poor-quality. I think I can understand the experience of those MSFT employees. They know the reputation, and they're sorry, but they need to work, and everyone fights with the product team.

At the former, I started right after school and was baffled no one I worked with ever used our product. I found it super demoralizing to build something so heavily used but unpopular, and eventually I quit out of frustration. I tried to change the product, and improve features, and frequently met with our product and UX people to no avail. We existed, of course, because sometimes popular free products need to serve business goals (thankfully not ads at least).

At the latter, we just had the challenge of building a complicated product, and with millions of users, you'll always get complaints. I had coworkers who would check reddit every morning and share all the complaints people had and really took it to heart. Of course, we could never properly debug or do anything for these random users, and "at scale" a 0.00001% error rate still meant a lot of disappointed people. It was still pretty demoralizing after a while but at least we could say people found us useful, even if it wasn't "fun".
by 1313ed01 | 2025-12-12 06:47:42+00:00
I installed some old Debian versions in virtual machines recently, and had a similar thought. Other than security upgrades really 99% of anything useful was already included ~25 years ago. Could probably go back quite a bit further. One annoying thing beyond ~20 years is going back to pre-UTF-8 and having to worry about 8-bit (sometimes 7-bit) character encodings, but that is the only obvious downside. Emacs versions around version 20 also were lacking things that I use today, but nothing that I could not learn to live without.

And you can install everything. As in, you can download (from their archive) the distribution ISOs from old Debian releases. For early version everything fits on a single DVD or single CD-ROM. That is thousands of libraries and applications. You don't have to think about disk space (or RAM) when installing things from there in 2025. Also everything runs very fast.

It's like hardware has finally caught up. The level of bloat from ~2000 is perfect for 2025, especially if you want to be able to set up and run virtual machines without worrying about resource use. For offline use running applications in virtual machines it is perfect.
by hn_throwaway_99 | 2025-12-12 06:48:23+00:00
It would be impossible to do without taking breaks, as explained in the article:

> Due to visa limits, Bushby has had to break up his walk. In Europe, he can stay for only 90 days before leaving for 90, so he flies to Mexico to rest and then returns to resume the route.

Given that he literally swam across the Caspian Sea in order to avoid Russia and Iran because of legal issues, nevermind bring imprisoned in Russia due to what sounded like bureaucratic BS, it's more impressive than I first thought.
by thomassmith65 | 2025-12-12 06:48:27+00:00
This is all very confusing for me.

I first tried instant mashed potatoes about five years ago.

Before then, I never even knew there was such a thing!

I don't think I can tell them apart from fresh mashed potatoes.

The ones that I have tried are plain (no onion flavoring, etc), mixed with salted butter and coffee cream.

How are people who hate the instant variety preparing them? I am curious if I simply have bad taste, or if it's some other factor.
by wvenable | 2025-12-12 06:48:28+00:00
> Are you sure claude didn't do exactly the same thing but the harness, claude code, just hid it from you?

What do you mean? Are you under the impression I'm not even reading the code? The code is actually the most important part because I already have working software but what I want is working software that I can understand and work with better (and so far, the results have been good).
by CorrectHorseBat | 2025-12-12 06:48:55+00:00
I think your issue is just that your grammar was wrong.

是的(Shide) is the closest thing to yes in Mandarin, but it's as universal. Answering 是的 on the question 你会中文吗 is like answering "yes I am" on the question "do you speak English?". 可以 isn't correct either, unless they asked 你可以说中文吗？, which is more like "Can you switch to English?" And not "are you able to speak English?" if I'm not mistaken.

Answering 我会 is perfectly fine, even if you don't speak perfectly Chinese. If you want to sound be more humble you can say（我会）一点点/丢丢. 还可以 doesn't fit the pattern either, but it is ok too I think.

Not a native speaker though.

More on topic: To me not bad/不错，no problem/没事 are just as positive in English, maybe even more in the case of no problem. But I'm not a native speaker of either.
by cyberrock | 2025-12-12 06:49:32+00:00
In the past I've heard that TripAdvisor has 60% market share for local reviews in the UK. Did Google Maps really climb that quickly? Are Instagram and TikTok not shaping tastes in London too? I feel like she might be assigning too much power to it just because that's what she used.

That's not to say I don't have gripes with how Google Maps works, but I just don't know why the other factors were not considered.
by pyuser583 | 2025-12-12 06:51:02+00:00
In the Altered Carbon world there are strict laws against “double sleeving”, but it happens whenever the plot benefits.

One character has an entire island of populated exclusively by herself.

They never go into why it’s illegal. I think it’s implied they know a copy isn’t the original, but they don’t want to think about it. Too unpleasant an idea.
by qingcharles | 2025-12-12 06:51:34+00:00
Sure. The problem with some frameworks is that they attached server events to things that should be handled on the front-end without a roundtrip.

For instance, I've seen pages with a server-linked HTML button that would open a details panel. That button should open the panel without resorting to sending the event and waiting for a response from the server, unless there is a very, very specific reason for it.
by jnordt | 2025-12-12 06:51:38+00:00
Can you share some examples of this where it gives better results?

For me both Gemini and ChatGPT (both paid versions Key in Gemini and ChatGPT Plus) give me similiar results in terms of "every day" research. Im sticking with ChatGPT at the moment, as the UI and scaffolding around the model is in my view better at ChatGpt (e.g. you can add more than one picture at once...)

For Software Development, I tested Gemini3 and I was pretty disappointed in comparison to Claude Opus CLI, which is my daily driver.
by groundzeros2015 | 2025-12-12 06:51:52+00:00
They absolutely do not. The problem is three-fold.

1. The rules for when an optimization works and doesn't is complex and implicit (as seen in this post).

2. The magnitude of performance between getting an optimization and not is significant.

3. When it does fail, you have almost no recourse because you can't express your intent.

Now do C. You have problem 1, but not to the same extent. In rare cases you can see problem 2. And you never have problem 3.
by bschwindHN | 2025-12-12 06:54:07+00:00
> i see it is before the word, i let go, and the cursor moves to the end of the word. if i wanted it at the end of the word i would have put it there before letting go.

Having never implemented something like this, I wonder if the algorithm could take into account how long the cursor lingered on each position before being let go. If it spent significantly longer in a position before the word, and your finger happens to move a little bit when you let go, that slight movement shouldn't affect the cursor position.

Apple is usually pretty good about this stuff but they've really been slipping on the keyboard.
by wvenable | 2025-12-12 06:54:53+00:00
As I'm getting better and better results with it, I'm having it do more and more things. I went through a complete agentic refactor of a project from Angular 17 to Angular 20 (RxJS to Signals) and I'd say it did it perfectly. A few times I'd get it summarize and start a new chat because it can start to get less effective when the history gets too long. I also had to iterate on what I wanted and do things a step a time. Although it was very clear that it also wanted to do things in pieces and test each major change before continuing on.

I think like any tool it's has it's pros and cons and the more you use it the more you figure out how to make the best use out of it and when to give up.
by ehsankia | 2025-12-12 06:55:45+00:00
Anything before L4 is "driver assist", which means at the end of the day, the buck stops at the driver. Anything beyond L4, the car itself drives without requiring supervision, which makes a big difference. It's your responsibility to use lane assist in a reasonable way, it's not your responsibility to control how an L4 drives anymore. That's the point of self-driving, the "self" is responsible.
by qingcharles | 2025-12-12 06:55:46+00:00
Yes! I was so excited he had that phone in the movie.

They even include an owner in-joke, which means someone in the production must have owned one of these phones. Everyone I lent the phone to would pick it up the "wrong" way -- they would put the external screen to their face, like every other phone. But the mic and speaker were on the back. I had to quickly find the scene in the movie here:

https://imgur.com/a/hojf5DZ
by jameslk | 2025-12-12 06:56:48+00:00
HN loves this library but I really don’t get the appeal. It extends HTML with a bunch of attributes with their own syntax:

hx-trigger="keyup changed delay:500ms"

hx-trigger="click[ctrlKey]"

It fires off weird events you’re supposed to hook into with JS:

document.body.addEventListener('htmx:beforeSwap', function(evt) { …

You lose static analysis and gain hard to track down bugs merely from typos

It reminds me of ColdFusion and Angular v1, with its extensions to HTML. HTML was meant for defining content structure, not behavior

Just use plain JS over this if you hate React so much. Or jQuery even. Keep the behavior out of the content layer.
by lossyalgo | 2025-12-12 06:58:12+00:00
Also every model update changes how you have to prompt them to get the answers you want. Setting up pre-prompts can help, but with each new version, you have to figure out through trial and error how to get it to respond to your type of queries.

I can't wait to see how bad my finally sort-of-working ChatGPT 5.1 pre-prompts work with 5.2.

Edit: How to talk to these models is actually documented, but you have to read through huge documents: https://cdn.openai.com/gpt-5-system-card.pdf
by sschueller | 2025-12-12 06:59:28+00:00
I find the BL-5J battery format and its siblings quite cool actually. They fit much better for some projects than a 18650 etc. I wish there where more standard sized batteries and PCB holder for batteries like the BL-5J. While I can get many 18650 battery holders for PCBs even surface mount I have not seen anything more compact.
by testfrequency | 2025-12-12 06:59:53+00:00
My favorite story to tell friends about District 9 is how the first two times I watched it at home, my version did not have subtitles at all - so I was always so confused by the alien monologue scenes.

It wasn’t until I was at a friends home who had it playing in the background, I glanced at the TV and jokingly said I wish we knew what the aliens were saying…lo and behold, there’s subtitles.
by wvenable | 2025-12-12 07:00:37+00:00
Programmers are the last people on earth who should complain about job loss due to automation. Our entire jobs since the beginning has been automating people out of jobs and we've done a wonderful job of that for decades. Entire classes of jobs no longer exist. Although I'm not personally responsible for anyone losing their job I'm certainly responsible for less people being hired.

AI is just the next step and not even a particularly large leap. We already needed less law secretaries due to advances of technology. We killed most journalism two decades ago. Art and Music had Photoshop and autotune. Now we've actually achieved something we've literally been striving for since the dawn of computing -- the ability to speak natural language to a computer and have it do what we ask. But it's just one more step.
by 9notorp | 2025-12-12 07:02:59+00:00
that was an enjoyable read! loved reading stuff about smartphones on forums, especially symbian ones where the die hard fanboys absoultely believed that this device was better than the iphones and htcs had to offer (including me). too bad maemo / meego died off, we may have seen more interesting devices. loved the "Contains no LLM-generated content" bit.
by ludamn | 2025-12-12 07:04:38+00:00
I know about that, but it's usually a good UX practice to ask users for confirmation when they try performing destructive actions.

An analogy would be pressing delete on a file in your OS of choice, you can see the deleted file in the trash bin, but before it's moved there you'll be prompted for confirmation anyways (or in more modern OSes a notification/toast shows to let you indo the action if performed by accident)
by pm90 | 2025-12-12 07:05:19+00:00
Its possible that they have tried that and the market isn’t giving them what they need at the price they want. I do mostly agree with you though; its the economics of the car thats gonna supercharge adoption.

EDIT: another commenter mentioned that their platform is used by other companies (VW perhaps?). With that information, it might make more sense to do this.
Show HN: Skyulf – Open-source, self-hosted MLOps platform
by flyingriverhrse | 2025-12-12 07:05:30+00:00
Skyulf is a local-first MLOps workspace. Visual canvas for feature engineering, model training with hyperparameter search, experiment tracking, and one-click testing.

It functions like a visual automation tool (like n8n) but for ML pipelines. You drag-and-drop nodes to handle data loading, preprocessing (25+ nodes), feature engineering, and model training. No code needed for common tasks.

What's next? I am working on integrating powerful models like XGBoost/LightGBM/CatBoost, adding SHAP/LIME explainability, and eventually building a visual LLM builder (LangChain nodes) and more EDA features.

It's in active alpha. It works, but expect bugs or incomplete features.

-- I'd love feedback. Does the visual MLOps tool solve a problem for you? What’s the first custom node or feature you'd look for? or What you would need in this app to be more useful for you.

Thanks for checking it out!
by eckesicle | 2025-12-12 07:05:49+00:00
We had this debate at my company and the end result was a ban on “random” service names.

So we ended up with “auth service” instead of something like “Galactus”. The problem of course is that “auth service” isn’t searchable in our monorepo and it was a nightmare to find or discuss any info or references to the service itself. Now imagine if docker was called “container manager”. Good luck googling that and disentangling it from all the search results.

The value of a name doesn’t come from it being self-explanatory but rather from it being a pseudo-unique identifier. The small cognitive tax of remembering it serves as a shared bookmark between people that you can refer to when discussing or speaking to others about it - whether we’re talking about docker, Linux, or another person.
by vineyardmike | 2025-12-12 07:05:51+00:00
> I'd very much love to see people who cause accidents have their insurance go through the roof.

Life is hard and people make mistakes. Let the actuaries do their job, but causing an accident is not a moral failure, except in cases like drunk driving, where we have actual criminal liability already.

> the insurance companies will force self-driving on everybody through massive insurance rate increases for manual driving.

Why would manual driving be more expensive to insure in the future? The same risks exist today, at today's rates, but with the benefit that over time the other cars will get harder to hit, reducing the rate of accidents even for humans (kinda like herd immunity).

> Given that we do not have protections against companies that can make you a Digital Non-Person with a click of a mouse, I have significant problems with that.

I absolutely think this is going to be one of the greater social issues of the next generation.
by ryandrake | 2025-12-12 07:05:56+00:00
It’s probably a mistake to read too much into it but I can’t help but notice the McDonald’s ad is kind of a mirror held up to all the things that American culture has been progressing into: cynical, mean, isolated, artificial... whatever the opposite of “wholesome” is. Totally off-key for what Christmas is supposed to stand for. Christmas (at least the secular holiday) is supposed to be about kindness, putting differences aside, enjoying people and family, and the commercial was pretty much the opposite of that.
by fiddlerwoaroof | 2025-12-12 07:06:13+00:00
I strongly disagree with this: calling your thing that serves webhooks “webhooks” or “webhook-service” sounds nice and neat when you’re looking in a repo list but you immediately impose a tax on everyone in the org: now everyone in a conversation has to distinguish between “webhooks” as the proper name of a particular service and “webhooks” as the name of a particular pattern. Multiply this by all the various components of a modern software ecosystem, and you turn your companies infrastructure into a private language piecemeal and, what’s worse, it’s a private languages outsiders and newcomers think they understand and so they often take much longer to discover what the actual services are.
by cyberax | 2025-12-12 07:06:51+00:00
Staples failed because they couldn't work alone. They were considered a replacement for completely self-signed certificates.

That's why the committee tried to mandate the stillborn pinning idea.

The option to use stapling in addition to a CA-signed certificate was not really considered. After all, if you paid for a CA-signed cert then why would you bother with stapling?
by zkitty | 2025-12-12 07:07:00+00:00
News: The Agentic AI Foundation (AAIF) is a directed fund under the Linux Foundation co-founded by Anthropic, Block and OpenAI, with support from Google, Microsoft, AWS, Cloudflare and Bloomberg. The AAIF aims to ensure agentic AI evolves transparently, collaboratively, and in the public interest through strategic investment, community building, and shared development of open standards.
by huksley | 2025-12-12 07:08:25+00:00
I have the same issue with DollarDeploy and Bing (and consequently with DuckDuckGo which uses bing)

Primary domain cannot be found via search - Bing knows about brand, LinkedIn, YouTube channel and but refuses to show search results about primary domain.

Bing search console does not give any clue, force reindexing does not help. Google search works fine.
by TacticalCoder | 2025-12-12 07:09:31+00:00
I like the ad (it's really cute) and I'm a big fan of the old Claude Francois song used (Le Mal aimé) but...

There's nothing cynic about it: he who spares the wolf sacrifices the sheep. My kid loves plushies: but when she's playing with a white tiger I'm reminding her that in real-life the tiger would shred her to tear and eat her without any afterthought.

Plushies of dangerous animals, just like that ad, are a way to cope with the brutality of nature, not a way to make nature not brutal.
by qingcharles | 2025-12-12 07:09:50+00:00
I had to look up which PC games had an option to use the x87:

- Vette! - Falcon 3.0 - Quake

And some others:

https://www.mobygames.com/attributes/attribute/115/

Apparently the 87/287/387 weren't that good as a gaming co-pro as the marshaling of the data to/fro from the CPU was too slow. It was a lot better on the 486DX onwards, I guess.