mceachen

Joined 16 years ago

Karma
3,505
Submissions
1,277
Member since
Mar 2
Founder of PhotoStructure, a new home for all your photos and videos.

https://photostructure.com/

Founded AdGrok (a YC startup), which was acquired by Twitter in 2011.

View on Hacker News

Recent submissions

Comment · 23 hours ago
gopher goes to 11

(archie and veronica are non-denumerable)

Comment · 5 days ago
An “image ladder” is the same image resampled at several widths. It’s not a standard term; MDN calls the technique “resolution switching”.

A srcset lists those versions, and the browser picks the one that fits the current viewport and screen density. https://responsiveimages.org/ has details.

For an example, view the source of https://photostructure.com/tags/. All the header art looks like this:

<picture><source type="image/webp" srcset="/img/2026/05/desk-2000w_hu_f9b8e901c6d3512c.webp 400w, /img/2026/05/desk-2000w_hu_4e2d65cccd03c969.webp 800w, /img/2026/05/desk-2000w_hu_11f3bf6c90dbf78d.webp 1200w, /img/2026/05/desk-2000w_hu_8c1a7d0a013e4ee2.webp 1600w, /img/2026/05/desk-2000w_hu_4cebe999e55b5486.webp 2000w" sizes="100vw"><source type="image/jpeg" srcset="/img/2026/05/desk-2000w_hu_cf5671a2e3bdd0cc.jpg 400w, /img/2026/05/desk-2000w_hu_2906e4ba7cda040.jpg 800w, /img/2026/05/desk-2000w_hu_f59ef0388799d4d2.jpg 1200w, /img/2026/05/desk-2000w_hu_e183d28df837e14a.jpg 1600w, /img/2026/05/desk-2000w_hu_ea9c422963c8e0e1.jpg 2000w" sizes="100vw"><img src="/img/2026/05/desk-2000w_hu_f59ef0388799d4d2.jpg" width="1200" height="600" alt="About" class="w-100 header-image" loading="eager"></picture>

That’s generated by https://gist.github.com/mceachen/d5915e46d1294489698e155eb11..., which uses Hugo’s resources.Get and .Resize.

Comment · 5 days ago
Comment · 6 days ago
Oh man that's rough.

Your experience would make for excellent feedback for me if you're willing, email hello@ my domain name if you want complementary PLUS!

Comment · 7 days ago
Just to clarify, I've open sourced a ton of PhotoStructure (exiftool-vendored, batch-cluster, fs-metadata, @photostructure/sqlite, sqlite-vec, and 10 more repos), but PhotoStructure's frontend and backend integrations are not open source. If PhotoStructure, Inc. ever closes, though, I will open source the repos powering the consumer product.

I've written open source for several decades, and certainly enjoyed the spoils of open source, but I've also seen a ton of bad behavior. Keeping it closed source certainly is not a guarantee that I avoid intellectual property theft or license violations, but at least I'm not just one agent prompt away from someone rebranding and reselling what I've worked full-time on for more than a decade.

Comment · 7 days ago
You can switch to tgz which supports 50gb splits.
Comment · 7 days ago
Don't rely on Google Takeouts for byte-perfect backups of your Google Photos library.

Depending on the device that uploaded the media and your country, they may have stripped GPS metadata from your media. I've also had captured-at times get changed randomly (!!) from your original media.

If possible, pull your media directly off your smartphone to make sure there are no shenanigans going on.

(These were painful discoveries made while trying to help support my PhotoStructure users)

Comment · 7 days ago
I wrote the open source library that Immich (and PhotoStructure and several thousand other projects) use for metadata reads and writes.

PhotoStructure runs everywhere (laptops, desktops, macOS, Windows and Linux), libraries are portable across machines and OSes, there's a generous, usable free tier, and setup takes about three minutes. If you have any questions hop into our discord, we're a friendly bunch.

Comment · 9 days ago
That's the combination to my HSM!
Comment · 9 days ago
In almost every interview I gave at the last several companies I worked for, I'd start with "This may feel a bit odd, but with this coding problem, I'd appreciate if you spoke through your problem solving. If it helps, pretend like I am your intern. Good ideas, bad ideas, pros and cons of whatever you're considering, it's all valuable information for me to learn a bit about how you approach problems."

I feel like being explicit like this put candidates at a bit more ease than having them try to suss out what the interviewer is expecting from them implicitly (and I know there are many interviewers that will auto-veto any candidate with the audacity to suggest a possibly imperfect approach).

Comment · 16 days ago
Yeah, took a look at your legacy codebase. Lots of deadwood, spaghetti, misalignments. I'd even say there was skeletal deformities in the architecture. If I was your uncle, I'd say it needed at least two full rewrites. Yeah, two, because the first rewrite will suffer from second system syndrome. You don't want that. Better to plan for both rewrites ahead of time.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton