James Futhey

@jamesfuthey.com

🌈 Indie Hacker, Founder @Meetingroom365.com - Seattle / Taipei - jamesfuthey.com - Previously Analytics @Adobe, Design @HBO. @kidgdzilla on the other app.

Pokegatchi? Not sure what to call it, but I saw someone mock up a similar idea for esp32s3, wanted to try it as an Apple Watch app. Ended up building an iOS simulator and widget version. Might grab an older watch and put it in a keychain case.

Voice UI native metal iOS game, very loosely inspired by Seaman for the Dreamcast (1999). Bunch of dumb ideas I wanted to try. Took a stab at a gameplay loop using apple foundation models running on device and voice recognition.

Mobile iOS game featuring a sea creature in an egg which is about to hatch

Pikmin 1 source port. Runs on macOS, iPad, iPhone. Tested through Forest of Hope, Fixed a few compiler bugs that only affect late-game bosses, untested there. On-screen touch controls are... painful to use but controller plays great.

Fixing the last couple of TEV bugs for the decomp port of Gamecube Pikmin to macOS. My todo list on visuals are about 98%. Optimistic about jaudio after that, and then just a whole lot of testing!

Using Claude Opus 4.6 and Codex 5.3 simultaneously. I can definitely tell which one is a front-end developer and which is a backend dev. All the little bells are going off in my head, like "you can trust this guy to design your backend APIs but don't ask him to center a div"

Feed server effectively ran out of space. Probably need to migrate to a new server with ~1tb ssd, more time consuming than anything. The upside is, after 3 days of downtime you can just truncate the likes table to free up space 😅 Will probably start working in a day or so.

Ran out of disk space. Actually ran out of disk space every day for the last 2 weeks to be more accurate! Going to bite the bullet and rebuild the likes index. Feed will probably be offline for some period of time after the current cache expires. Could be an hours but my day is your night, right?

Not this week, but I want to use what I've learned to create an open-source / self-hosted discover feed that various #Indiesky projects can use to remove one more piece of "relies on Bluesky" from their stack. That makes sense, right? pg tables get large but it could probably fit on an 8gb vm

I finished a new round of clustering images today before my flight, it's technically live but I think the old labels are cached until the cache expires 😆 It'll be a surprise when it goes live... Maybe 30% label reuse, I had a substantially larger set this week vs last week. Must have missed some.

Ack, found my mistake from 9 days ago 🙈 rb_jaccard_dist is DISTANCE not SIMILARITY, so "most similar" would be least distant. And.... it looks like I flipped this to DESC by mistake. I bet I'll find more mistakes if I keep going 😅

SELECT uid AS uid,
                 rb_jaccard_dist(bitmap, ${targetBitmap}::roaringbitmap) AS similarity
          FROM ${sql.unsafe(userBitmapTable)}
          WHERE bitmap && ${targetBitmap}::roaringbitmap
          ORDER BY similarity ASC
          LIMIT ${limit}

Clustering pipeline on 6.6m Bluesky posts currently takes 1 hour 44 minutes on my Macbook Pro. Good news is that it now actually works without any errors or bugs, so I can probably productionalize it and run it on a GPU next week instead.

I think this method is not amazing yet but I'm testing it anyway: Semantic post recommendations (i.e. you like a lot of things in a semantic cluster, so we recommend it to you). In theory it could be great. You like dog photos? We can semantically find dog photos!

Hunted a "memory leak" that didn't make any sense. Turned out to be a SQL query that, when it actually got executed, never finished. Ever. Accidentally snuck a correlated subquery into a query I almost never ran and only invoked manually. Was fine at first. So it went unnoticed.