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
If you're interested in the process, each desktop has a stage and occlusion layer, and decor items to mimic how the original games add decor over time as you play. Need to do a tiny bit of light grading on those. Maybe a couple of outdoor items later.
demonstration of the stage and occlusion layer overlays that tell the game engine where the character can walkvarious objects created to decorate indoor spaces
010
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 · 21/06/2025
Ahhhhhh I should have bought this while I was in Taipei….. it’ll never come to the US. I’m so stupid (Amy) rose.
I’m so stupid rose (titanic)
010
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 · 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
Something has seemed a bit off for me too. Probably overdue to stir the linear algebra around and see what's happening. xkcd.com/1838
xkcd: machine learning

Cueball II: This is your machine learning system?

Cueball Prime: Yup! You pour the data into this big pile of linear algebra, then collect the answers on the other side.

Cueball II: What if the answers are wrong?

Cueball Prime: Just stir the pile until they start looking right.
020
James Futhey @jamesfuthey.com · 04/05/2025
Clustering just fell into place. Only issues I had were pipeline stuff, none of the core assumptions were too far off, MiniBatchKMeans just... worked! Took what I learned from autolabeling posts and applied that to alt tags. 4o-mini handled those.
110
James Futhey @jamesfuthey.com · 04/05/2025
Everything went better than expected, basically successful on the first try. MobileCLIP is WAY better than it deserves to be, given how performant it is. Never got Zero shot out of it but the embeddings are very good.
210
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
ahhhhhh I can't wait for image cluster labeling to finish, this is going to be such a cool little thing to share tomorrow. I think it'll take 3 hours, I never optimized the script to do any of this in parallel, I just go to dinner and come back and it's done.
120
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 · 02/05/2025
82 days82 days
010
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
Reminds me of the old loading screen:
The more you know
010
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 · 24/04/2025
Like, Wordle game results still haven't stabilized into a single cluster. And, there are a TON of Wordle game results being shared on Bluesky.
One Wordle game results cluster
110
James Futhey @jamesfuthey.com · 24/04/2025
Like, this cluster is literally just Guardian articles in every URL. That's the centroid. AI label was "US News Commentary". Decent enough for the cluster explorer tool. But, stick that in a list, someone clicks it, they aren't going to expect it will filter out shares of Guardian articles.
cluster explorer tool: label is US news commentary but each post is a single link to guardian.com/us-news/...
110
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 · 23/04/2025
Ah yeah, the Android install prompt. When I tested it seemed pretty usable if they fixed SafeAreaProvider in react native for App.web.tsx, Then there would be a bit more work for notifications and the install prompt. Safe areas are what absolutely break it for me 😅
110
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 · 22/04/2025
Good point. I'm hoping it's just labeling in the sense that they keep some kind of UI like this:
Labeling settings UI in bsky.app
130
James Futhey @jamesfuthey.com · 22/04/2025
My first and only question was, please tell me you did this in console and not photoshop. Thx for that.
check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check check
110
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
If anyone wants to see it in js or in their console: gist.github.com/kidGodzilla/...
starting a barkov chain
111
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
Haha, no, my queries are incredibly conservative and I looked at a distribution for each before I built a job for it, your activity didn't register anywhere or even come close. Added: www.transparent.se/histograms.h... The bots take... incredibly bold risks.
Histogram of the distribution of follow counts per user per 2-day period, showing 99% of users follow about 50 users per day or fewer (most less). The outliers are audacious.
020
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
But, does it have to go this hard?
淡古聯盟 goes hard
020
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 · 18/04/2025
I’m not here to judge but my brother you follow 10k new accounts per day 😅 I’ll let my seven sql queries be the judge…
060
James Futhey @jamesfuthey.com · 17/04/2025
If it's just internal testing with developers, you could use localhost and manually edit the URL after the PDS does the redirect, if you just wanted to patch it up ASAP for a couple of devs to test. Something to consider if you run out of better ideas.
000
James Futhey @jamesfuthey.com · 17/04/2025
[For Future Reference] Looks like I'm actually wrong about what's happening here: github.com/bluesky-soci... PDS can't read localhost/oauth/client-metadata.json so it has a default one w/ token_endpoint_auth_method: none.
000
James Futhey @jamesfuthey.com · 17/04/2025
110
James Futhey @jamesfuthey.com · 17/04/2025
It can, I'm doing it. There's probably something about your Vercel preview use-case I'm missing though, so I'll just share and hopefully it sparks an epiphany somewhere: github.com/kidGodzilla/...
210
James Futhey @jamesfuthey.com · 16/04/2025
Predictions for the speech today: Powell: Run, run like the wind! Take out all your money and stash it in your pillow. Spy is going to 0. A helicopter flies in and yanks him of stage. Y'all are on your own now! – (Adapted from @Complex-Sand8610, Reddit)
Federal Reserve Schedule for Apr 16 – speech @ 1:30pm EST
000
James Futhey @jamesfuthey.com · 14/04/2025
This post did not age well.
Post from a few days ago, "Wow the discover feed I'm working on is getting pretty good"
040