Sam Rose

Sam Rose

@samwho.dev

That guy who makes visual essays about software at https://samwho.dev. He/him.

10.3K followers955 following9.3K posts

Sam Rose reposted

Had a fun design challenge while making the barcode scanner. 🧵

Sam Rose@samwho.dev

I’ve taken to vibe coding little apps for my kids and hosting them at kids.samwho.dev. They love it. They’re all PWAs so they can look like apps on your home screen if you want. My eldest has loved self-scan at Tesco recently so I made a lil’ barcode scanner app for him 😁

View full thread

So you load this index when the page first loads (it’s about 100kb compressed), scan a barcode, and then binary search the index to find the chunk you’ll find it in. Then you load /chunks/<index>.json from the server.

No backend API, everything loads super fast, each chunk is only about 50-100kb. I could have gone a lot further and scanned all of the barcodes in the house that my kids might scan into the app and make a special preloaded chunk with those in but that was less fun 😁

Had a fun design challenge while making the barcode scanner. 🧵

Sam Rose@samwho.dev

I’ve taken to vibe coding little apps for my kids and hosting them at kids.samwho.dev. They love it. They’re all PWAs so they can look like apps on your home screen if you want. My eldest has loved self-scan at Tesco recently so I made a lil’ barcode scanner app for him 😁

View full thread

GTINs (barcode numbers) are 14 digits long and fit comfortably into JavaScript’s int53. So I broke the data out into roughly evenly sized chunks ordered by their GTIN and numbered them 0 to n.

Then I made an index that is literally just a list of ints, each int representing the maximum GTIN in the chunk associated with its position in the index array.

Had a fun design challenge while making the barcode scanner. 🧵

Sam Rose@samwho.dev

I’ve taken to vibe coding little apps for my kids and hosting them at kids.samwho.dev. They love it. They’re all PWAs so they can look like apps on your home screen if you want. My eldest has loved self-scan at Tesco recently so I made a lil’ barcode scanner app for him 😁

I found an openly licensed set of products (“nudger” if you wanna look it up) and it has like 100M+ products in it. Perfect. Problem is: I don’t want to make a backend for this project. It’s a moving part I don’t care for. I just want to serve this statically out of nginx.

The full dataset, even when stripped to the bare minimum fields, was a few hundred megabytes. A bit much to load over the wire.

Bought this course last year and it was a great whirlwind tour of all things web components. Recently migrated my personal site entirely to Lit, and this course helped a lot. Well worth the price!

Scott Jehl@scottjehl.com

Interested in setting aside the magical prompter and learning some web standards skills the old fashioned way? You can sign up for my online Web Components course for free until Oct 31 with the code markitzero. If you find it useful, please consider letting folks know! 🎃

Wait it’s fucking free? I admit I saw the image and saw Scott was promoting it again and insta-reposted. You are robbing this man if you watch this course for free 😱

I’ve taken to vibe coding little apps for my kids and hosting them at kids.samwho.dev. They love it. They’re all PWAs so they can look like apps on your home screen if you want. My eldest has loved self-scan at Tesco recently so I made a lil’ barcode scanner app for him 😁

It’s well established that Spidey and His Amazing Friends is the best theme song of a kids show but I’ll be damned if Supertayto isn’t a solid second.

I rely heavily on dictation and have used most of the dictation apps out there... Avette has been dope in my first hour of trying it. The realtime output is much nicer than what I've seen in Handy, SuperWhisper, VoiceInk or Hex. Fully local and free to try out. Not sponsored, just enamoured.

Amos Wenger@fasterthanli.me

Just got my first real sale for @avette.eu ✨ super super happy about it. It's a dictation app for macOS, the productized version of what I've been using for a year. It's really very good, I encourage you to download and try it out, should be fresh air after whisper/parakeet/apple stuff x)

Yesterday I pushed samwho.dev 2.0. - Every interactive/visual post revamped. - New content added to several old posts. - New consistent visual style throughout. - Dark mode(!) - New interactive heroes for all posts that didn't have them. - Updated dog animations.

View full thread

The old site is preserved at old.samwho.dev if you ever want to go back or just want to compare how it was to how it is now. I personally think the difference is quite stark, I'd be interested to know if you agree.

Yesterday I pushed samwho.dev 2.0. - Every interactive/visual post revamped. - New content added to several old posts. - New consistent visual style throughout. - Dark mode(!) - New interactive heroes for all posts that didn't have them. - Updated dog animations.

I tried to catch every problem before shipping, reading every post several times on desktop and mobile but I've no doubt something slipped through the cracks. If you spot anything amiss, please let me know!

I went back and did weeks of work on my older posts because I'd stopped being proud of them. Lots of time has passed since the 2023 posts and I'm better at this than I used to be. The old posts no longer reflected my best work, and I couldn't have that.

Yessss follow @owenlacey.dev if you don’t already! He’s making super cool stuff.

The Pudding@pudding.cool

New project! Contributor @owenlacey.dev asks whether Kevin Bacon is the most-connected actor in Hollywood, per the popular game “Six Degrees of Kevin Bacon”. 🔗: pudding.cool/2026/10/kevi...

Today is the first day since August that I’ve woken up without a sore throat. I dunno what I’ve had but holy shit it’s been annoying. Still not 100% but hopefully this is me trending the right direction.

I can’t be the only one that tries to guess what the 6-digit 2FA code will be to see if I’d have been able to hack in.

My is starting now if you wanna come hang out and see my lovely slides that I put far too much time into 😅

ScyllaDB@scylladb.com

We kick off Day 1 of #P99CONF with Keynotes from @gunnarmorling.dev, @avikivity.bsky.social, @carllerche.com, and @fasterthanlime.hachyderm.io.ap.brid.gy, as well as 18 other technical sessions. Registration is free, and you get every session on demand. www.p99conf.io?latest_sfdc_... #ScyllaDB

Yeah come see me talk about quantization in about 2.5 hours!

Cynthia Dunlop@cynthiadunlop.bsky.social

And we're live in the P99 CONF studio! 🎬Join us...it's free + virtual, so no excuse not to pop in and see what the amazing speakers have to share p99conf.io

Real talk, any of you for-real using one of the 99999 tsc ports? Am I the last guy using vanilla tsc?

VoidZero@voidzero.dev

Introducing tsrs: a Rust port of the TypeScript compiler 🦀 We are not forking TypeScript! ◆ In close collab with the TypeScript team ◆ Up to 8x faster than TS 7.0 & ~70% less memory ◆ Runs in WASM (works in your browser & workers) ◆ Soon part of Oxc npx tsrs blog.cloudflare.com/typescript-r...

I’m speaking at this! My talk is “Fearless Quantization” and I’m very excited to hear what folks think of it 😁

Cynthia Dunlop@cynthiadunlop.bsky.social

P99 CONF is this week! If you care about performance and low-latency engineering, there's probably at least a handful of talks that you'll want to catch. Speakers will be live on chat, ready for your questions/comments. It's free + virtual as always p99conf.io Hope to see you there!

Added season colouring. Just ‘cause.

Sam Rose@samwho.dev

Having a lot of fun revisiting old posts and giving the ones that never had their own hero some love.

If I see a cookie banner on a personal website I just close the page. What are we doing, man.

You may not have noticed on my site that you can pet the dogs. In the redesign I’ve given that interaction a glow up.

Had a flexible nasendoscopy today (camera up the nose and into the throat) because I’ve had a sore throat since August. Lemme tell ya, you do not want a flexible nasendoscopy. When it was done he was like “you did that without anaesthesia, well done!” I could have had anaesthesia?!

In the process of making this new hero for my load balancing post I learned that Americans call this “Plinko.”

Recently installed a 4G backup SIM on my home network for when the actual broadband line is down and I can’t believe I didn’t do this years ago.

Anna Maxwell Martin is a national treasure. Everything she’s in, she’s killing it.