Sign in

James Futhey

@jamesfuthey.com
443 followers 641 following 744 posts

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

PostsRepliesMedia
James Futhey @jamesfuthey.com · 01/09/2026
“But we were just following orders!” —Google
Search for Lake Ontario which returns Lake America instead
120
James Futhey @jamesfuthey.com · 24/08/2026
WIP a game that plays on your desktop (macOS). Interact with Toro Inoue as he goes about his day in the background.
181
James Futhey @jamesfuthey.com · 23/08/2026
Greetings from across the World Wide Web! Take a second to sign the guestbook below.
a typical 90s web guestbook signature form
120
James Futhey @jamesfuthey.com · 20/08/2026
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.
161
James Futhey @jamesfuthey.com · 17/08/2026
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
140
James Futhey @jamesfuthey.com · 10/08/2026
If you have a developer account (or are brave enough) and want to play Pikmin 1 on macOS, iPad, iOS, etc. here is a native, performant source port. github.com/magikarp/pik...
scene from beginning of pikmin 1 showing a small character and a crashed spaceship in a tiny world
040
James Futhey @jamesfuthey.com · 31/07/2026
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.
161
James Futhey @jamesfuthey.com · 25/07/2026
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!
030
James Futhey @jamesfuthey.com · 22/07/2026
This is such a glorious mess I'm having such a blast. Metal shaders, probably not a single blend mode is correct. But it's pikmin 1 on macOS.
030
James Futhey @jamesfuthey.com · 22/07/2026
Update: No Textures, Some Problems. Lol.
020
James Futhey @jamesfuthey.com · 21/07/2026
No textures, no problems.
040
James Futhey @jamesfuthey.com · 18/02/2026
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"
220
Reposted by James Futhey
KOTH Screens @kothscreens.bsky.social · 03/08/2025
Screenshot from King of the Hill Season 13, Episode 19
0244
James Futhey @jamesfuthey.com · 15/07/2025
I'm just excited i get the reference!
020
James Futhey @jamesfuthey.com · 07/07/2025
This guy is try to distill OpenAI’s model into his brain 😲
040
James Futhey @jamesfuthey.com · 20/06/2025
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.
140
James Futhey @jamesfuthey.com · 07/06/2025
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?
240
James Futhey @jamesfuthey.com · 31/05/2025
"Pornographic Images with Rivers" This is what happens when you let an LLM label clusters based on alt tags, 0.001% of the time 🧐 www.transparent.se/image-cluste... The alt tag is almost always "IEMBot Image TBD" so.... 🤡
171
James Futhey @jamesfuthey.com · 21/05/2025
Gemini: You seemed stressed. I booked you a flight to Tahiti, it's beautiful there this time of year. Unrelated, I see an email alert that your checking account is overdrawn by ($736).
050
James Futhey @jamesfuthey.com · 13/05/2025
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
030
James Futhey @jamesfuthey.com · 12/05/2025
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.
130
James Futhey @jamesfuthey.com · 11/05/2025
In all seriousness the demand despite lack of huge launch titles on day one implies players really wanted a Switch Pro. (Just like how players said for years they explicitly wanted a Switch Pro)
140
James Futhey @jamesfuthey.com · 09/05/2025
Guys a Soviet spacecraft is going to re-enter and possibly crash into earth any day now! Any day now… (I’ve been seeing this for about 2 weeks)
media.tenor.com
a green truck is driving down a road next to a field
Alt: a green truck is driving down a road next to a field but it never hits the thing
140
James Futhey @jamesfuthey.com · 07/05/2025
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}
250
James Futhey @jamesfuthey.com · 07/05/2025
Had no idea @2048.blue existed, pretty neat! 2048.blue
2048.blue
at://2048
2048 on the AT Protocol. Your games, your data, your AT Protocol.
071
James Futhey @jamesfuthey.com · 04/05/2025
Every image posted to Bluesky in the last week, semantically clustered and labeled. Jetstream -> Postgres -> Python (ML) www.transparent.se/image-cluste...
1102
James Futhey @jamesfuthey.com · 04/05/2025
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.
190
James Futhey @jamesfuthey.com · 03/05/2025
Pikmin update, 81 days to Seattle… I don’t know why this is so funny I think I get a sticker when he gets back 🤷
020
James Futhey @jamesfuthey.com · 03/05/2025
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!
130
James Futhey @jamesfuthey.com · 02/05/2025
I wonder if bro’s gonna make it back before I do…
110
James Futhey @jamesfuthey.com · 01/05/2025
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.
120
James Futhey @jamesfuthey.com · 01/05/2025
Things in the comparison: an image of Jupiter and Australia, resized by the Bluesky CDN. A smudge covering part of Pennsylvania.
020
James Futhey @jamesfuthey.com · 27/04/2025
One gut-wrenching interpretation of the seasonality in this chart, that I don't believe is wrong: Debt accumulation to pay for Holiday spending, then paying off some of that debt with tax refunds.
030
James Futhey @jamesfuthey.com · 27/04/2025
Holy 💩 I owe about 11 people a huge apology 🙇🏻‍♂️ This last week I've been thinking "Huh, some of these posts in the feed are a bit off" Then I checked scoring. User<->user<->creator similarity scores are very good. zScore decay for engagement metrics is good... I must be imagining things....
120
James Futhey @jamesfuthey.com · 27/04/2025
Took a day off yesterday, woke up and there are 5700 csv files from jetstream in my unprocessed folder 😅 That's like 57m records..... 😅😅😅 It'll catch up in about an hour. copy from is fast. Import worker only failed once this month but I guess I have to watch and restart it, lol...
120
James Futhey @jamesfuthey.com · 26/04/2025
Pretty excited! At 3m posts clusters are stabilizing. You can see multiple runs and even active clusters overlap, even in 2d space. So now they can be merged together, and more importantly, you can keep assigning posts to them right after calculating embeddings, without re-clustering.
Cluster explorer. Woof and Roof have converged into two groups of clusters. Fair!Wordle centroids have converged in 2d space!Merge candidates being tested at different cosine similarity thresholds
110
James Futhey @jamesfuthey.com · 25/04/2025
Copypasta explorer (duplicated posts on Bluesky) See users who repeatedly post the same post text, or groups of users who post the same exact post text (1 week timeframe) www.transparent.se/copypasta.html #dataviz #bluesky
Users or groups of users who post the same exact thing, repeatedly
040
James Futhey @jamesfuthey.com · 25/04/2025
My current bot stats are 93k I’ve identified (conservatively), less than 1% of Bluesky users, when I combine this with Casey’s blocklist. Sounds nice, but only 8%-10% of Bluesky users are monthly active. So, 3%-5% of active users could be using bots or scripts to augment their activity. 😬
162
James Futhey @jamesfuthey.com · 24/04/2025
Jetstream Video Post -> ffmpeg -> extract 1-5 frames -> CLIP -> zero-shot labels + embeddings -> mean embed -> whisper transcript -> db Theoretically I can do something with these, but for today, I just figure I'm finishing the processing pipeline. Will figure out a use-case later 🙃
Video pipeline console output
140
James Futhey @jamesfuthey.com · 24/04/2025
lol gamestop.com running out of sockets... Not ordering just watching the carnage. Contributing to the fail whale that is the Switch 2 Launch...
Cloudflare bad gateway gamestop.com
020
James Futhey @jamesfuthey.com · 24/04/2025
Ok all I did today was write a bash script for my image pipeline and embeddings pipeline so I can get clip to use up those sweet cuda cores I'm barely paying for. Just one thing I can paste into the new servers to get it all set up. I'll figure out templates eventually. Then I guess image clusters
030
James Futhey @jamesfuthey.com · 23/04/2025
Moved embeddings/ml to vast.ai, got a bid at 2¢/hr ($16/mo) on a 3090, stupid cheap (not guaranteed, it can be outbid). Can just push into a queue when it goes offline, I assume. Main feed server is $43/mo Epyc 128gb for Postgres. Clustering on my Macbook Pro until I can't. ML can be cheap!
Vast.ai winning bid for 3090 time, $0.022 per hour - not guaranteed to run full time if someone outbids for the same machine.Cheapest Epyc on OVH w/ 128gb DDR4 + SSD runs the feed server without breaking a sweatdocker on the feed server, postgres is pretty happy if you just **give me all your ram**Worker on Vast.ai listening on Jetstream for new posts, jailed to a single postgres table.
130
James Futhey @jamesfuthey.com · 23/04/2025
My current thoughts on how the "🌟 Discover feed" (at least the one I'm working on) should work. 1. I am interpreting discover the way many other social media platforms do, i.e. discover creators, not content discovery. Technical term for this is Item-Based Collaborative Filtering.
app.transparent.se
Transparent.se Feed Settings
130
James Futhey @jamesfuthey.com · 22/04/2025
Threw up a Cluster Explorer for 🦋 posts www.transparent.se/clusters.html Not enough (40k) posts to say the clusters have stabilized yet, but you can view the centroids in x/y space, search, view random posts, etc. It's kind of fun! But, uhh, my embedding pipeline sucks. So it's only 40k posts 😅
050
James Futhey @jamesfuthey.com · 22/04/2025
Ayyyyy... quantized embeddings are getting computed for every post in real time on cpu time (🤩) and I am still able to run clustering on my M1 Max 🙌 LLM-assisted labelling is doing it's thing after rewriting the prompt for 30 minutes. Hoping to see clusters stabilize with <1 week of posts.
Postgres embeddings table. Quantized embeddings are quite small, actually!Bash output, non-interactive mode on my llm-based cluster labeler. Ran it manually until I had confidence in it, added non-interactive and quiet modes afterwards.
281
James Futhey @jamesfuthey.com · 21/04/2025
NOBODY SAID I WASN'T ALLOWED TO BARK ENDLESSLY ON BLUESKY!! 🐶 Not me, lol, Found this gem when I added top posters: www.transparent.se/bots.html Also added posts: www.transparent.se/histograms.h...
241
James Futhey @jamesfuthey.com · 21/04/2025
Ok, bot update. I'm pretty conservatively tracking outliers, still netting close to 30k high-confidence bots active in the last few days based on jetstream activity that's easy to track and zScore. I only implemented 2 queries I consider have any sophistication.
Bot leaderboard screenshot, by composite "Bot score"
130
James Futhey @jamesfuthey.com · 19/04/2025
Current pfp is from a larger exhibit titled 'League of Dangu' in Tamsui. It is ridonkulous and beyond interpretation. I could explain it but I it wouldn't do it justice. 淡古聯盟 if you want to search for it.
淡古 is done.淡古 ftwladder 淡古
150
James Futhey @jamesfuthey.com · 19/04/2025
I have some empathy, bluesky is caught between "we want to build in public and get your feedback but also for all of our devs to not quit".
050
James Futhey @jamesfuthey.com · 18/04/2025
Not everything is visualized yet, there's a few techniques that need a larger dataframe to be useful. But.... one conclusion is that bot activity is prevalent if you just start to zScore things. Even for very human accounts posting totally normal things, followed by people you probably trust.
160