Hacker Newsnew | past | comments | ask | show | jobs | submit | mlunar's commentslogin

Mine is that: https://photofield.dev/ (but has fewer features)


I spent too long writing this so I might as well submit it here. It's about a weird Firefox? Fedora? AMD? performance regression, but actually not really as it's about Go image encoder file size & latency.


Not the author, but last time I checked (3y ago), the fonts CDN was surprisingly slow, like hundreds of milliseconds of latency.

As the website I was optimizing was selfhosted, also selfhosting the font had a noticeable effect on the page load time. See https://github.com/SmilyOrg/photofield/commit/12352667c01624...

I'm not sure what you mean with the rest of the comment though, it's a very small change and it gets cached by the browser like other static assets, so I'm not sure what is the overkill here.


Btw, there is a typo: renogiate should be renegotiate


It's a pretty deep rabbit hole. For semantic search CLIP and cosine similarity are just fine. SmolVLM(2) mentioned by spacecadet looks interesting though. I haven't integrated face recognition myself, but [deepface] seemed pretty complete.

I focused more on fast rendering in [photofield] (quick [explainer] if you're interested), but even the hacked up basic semantic search with CLIP works better than it has any right to. Vector DBs are cool, but what is cooler is writing float arrays to sqlite :)

[deepface]: https://github.com/serengil/deepface

[photofield]: https://github.com/SmilyOrg/photofield

[explainer]: https://lnar.dev/blog/photofield-origins/


Similar one I wrote a while ago using Pupetteer for the IoT low power display purposes. Neat trick is that it learns the refresh interval, so that it takes a snapshot just before it's requested :) https://github.com/SmilyOrg/website-image-proxy


You do not need a banner, you need informed consent. I'm sure there are other ways of getting consent other than a half screen pop-up with a big red accept button on first visit, but they probably won't get 70% "opt in" rate.


Law: The optimum behaviour is annoying banners.

Companies: Annoying banners.

Legislators: Mission Accomplished. A win for the good guys!

Situation persists for at least a decade.


A more accurate version:

Law: You have to get some form of affirmative consent if you want to do specific often-abused things.

Companies: We'll do it in the most obnoxious way possible ("here are our 853 technology partners... no, there's not a 'deselect all' option, have fun clicking") so people blame the law instead of the industry that didn't want to allow consent at all.


There's always a deselect all option (or rather, the equivalent "accept only the technically required ones"), because it's required by law. Sometimes the operator tries to hide the option. That, too, is illegal.


There is frequently not a "deselect all" option; there's a reason regulators keep having to warn about it.

https://ico.org.uk/about-the-ico/media-centre/news-and-blogs...


I so wish that "our 1234 trusted partners" was an exaggeration.


In Go you can do errorf("%w: %s", err, path) so that you get "file not found: foo/bar.json", while still being able to match on the wrapped error value with errors.Is(). The caller can do the same with this error and so on up the stack


I dislike this style in Go. It adds a lot of noise to the source and essentially builds a stack trace manually. In Go 1.23 there is errors.Wrap() that adds the error stack automatically so maybe at some point Go will consider again adding some sugar for automatic error propagation.


Go errors in standard library does not support stack traces. errors.Wrap() only exists in github.com/pkg/errors package


Check out https://github.com/zombiezen/go-sqlite if you're interested in trying out Sqlite in Go again. Nice interface, negligible compile time impact, fast, compiles without CGO. It's very comfortable.

I agree that going from text to sqlite is a bit of a hurdle, especially if you're not writing C :)


APIs sure, installing on desktop, no. A bit further down on the page linked via the second link:

"On desktop:

    Firefox and Safari do not support installing PWAs on any desktop operating systems."


Safari can absolutely install PWAs on desktop


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: