Ryan's Avatar

Ryan

@rschristian.dev.bsky.social

Implicit "It depends" | Open Sourced Shenanigans http://github.com/rschristian | @preactjs.com stuffs

1,013 Followers  |  97 Following  |  709 Posts  |  Joined: 06.09.2023  |  2.095

Latest posts by rschristian.dev on Bluesky

a common thing i've run into this week:

packages which exhaustively try to cover every possible edge case. but it turns out almost no consumer calls it in a way that would hit those cases

some are 1/4 of the size when you cut those out. sometimes its ok to just... not support things

04.08.2025 20:30 β€” πŸ‘ 44    πŸ” 10    πŸ’¬ 2    πŸ“Œ 1
Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian - JSJ 683
YouTube video by Top End Devs Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian - JSJ 683

Did you know that @preactjs.com is the third most use frontend framework? (According to Google CrUX by number of origins.) We spoke about what Preact is, and how it's different from React with @rschristian.dev‬, Preact core member, on the JavaScript Jabber podcast: www.youtube.com/watch?v=oR1T...

04.08.2025 15:11 β€” πŸ‘ 4    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Be popular enough so that there's plenty of canari... er, users, to let you know if/when problems pop up on their systems.

04.08.2025 07:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I still remember when the pronunciation of "epitome" dawned on me; it was a word I knew & used verbally, but hadn't guessed it was spelled like that. Thankfully I realized before I ever said "epi-tome" out loud.

I blame the English for nabbing stuff from other languages without a care in the world.

03.08.2025 17:00 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It's certainly giving my scroll wheel a good workout as I have to keep jumping around to large lists to find what I'm looking for.

For the love of god, call `.localeCompare` like everyone else and stop shipping this custom nonsense.

03.08.2025 13:31 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

To add to the pile of "No one at GitHub has ever used a file browser before", their files are now sorted with capital & lowercase letters as separate groups & not intermixed.

Correct: "bar.txt, Foo1.txt, foo2.txt, qux.txt"
GitHub: "Foo1.txt, bar.txt, foo2.txt, qux.txt"

I don't know this happens.

03.08.2025 13:31 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

Yeah, that’s my thought too. Whilst I can’t guarantee a particular translator will work correctly on my reply, at least I can ensure I’m giving a proper reply that another translator might do a better job with.

01.08.2025 19:46 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That being said, I always feel bad about replying to non-English posts in English, feels like I'm leaning into that stereotype of Americans & Brits who just speak English slower & louder at people who clearly don't understand the language.

01.08.2025 10:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I'd say so!

If someone replies in a language other than the original post language, I'd assume they can't read/write that language and are using a translator; at which point, it doesn't really matter which language replies come in as they're just hitting 'Translate' anyhow.

01.08.2025 10:05 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Next.js Web Component Used by some of the world's largest companies, <next-js> enables you to create high-quality web applications with the power of web components....

I'd forgotten, I turned this into a web component to expedite Time To First Error
codepen.io/dbushell/ful...

31.07.2025 19:24 β€” πŸ‘ 16    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

And once again I am globally disabling Git hooks

Don't block users from making commits or taking other actions, it's just a nuisance

31.07.2025 05:58 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

With GitHub finally treating us to use tab preferences cross-site, I wonder if we'll finally get properly sorted changed files in the PR diff view too.

It's the only place on the site in which files & directories are sorted alphabetically together, not as separate groups.

30.07.2025 01:33 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

AI isn't "increasing efficiency" if other people end up having to parse, fact check and correct your work.

28.07.2025 16:38 β€” πŸ‘ 76    πŸ” 15    πŸ’¬ 2    πŸ“Œ 0

Yeah mostly just about parity there for me, you'd probably want them to match (as much as they could) and ideally able to be set side-by-side.

28.07.2025 21:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Funnily enough, Luke and I were talking about that the other day (his idea).

It seems like that could be a bit awkward when you want to track both request & response progress though, as the latter would require a different API.

28.07.2025 20:53 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
TypeScript – Preact Guide Preact has built-in TypeScript support. Learn how to make use of it!

Likely to avoid conflicting with other JSX types? We do something similar for Preact: preactjs.com/guide/v10/ty...

IIRC, even React is moving to something along these lines.

28.07.2025 20:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub consistently maintains user-defined tab-width preferences - GitHub Changelog What’s changed? Historically, users on GitHub have been able to set their preferred tab width for viewing code, but this preference was not reliably respected throughout the site. Inconsistent tab…

Your feedback matters πŸ™Œ

GitHub now remembers your tab width preferences everywhere - more choice, more flexibility, all thanks to your suggestions!

Our accessibility team is always turning your feedback into real improvements. Keep sharing - we love hearing from you! πŸ’•

github.blog/changelog/20...

28.07.2025 14:46 β€” πŸ‘ 42    πŸ” 8    πŸ’¬ 2    πŸ“Œ 4

Potentially, or maybe you do a ProgressController sort of thing, similar to AbortController? Might be useful, but certainly far more work.

I don't work on web specs though, Luke does. I have only an inkling of what the historical context and complexity looks like πŸ˜…

28.07.2025 05:27 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Especially with component libraries and the like, is it really difficult to imagine a scenario in which the component library AND the user both want to listen to that?

Regardless, as soon as you ship with a restriction like that some user will open an issue asking for wider support.

28.07.2025 02:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Callbacks in the context of platform internals are a bit weird, yes. User JS is a totally separate thing.

As for why anyone would attach two listeners, perhaps to display a progress bar & report to an external API? Or indeed to have two separate status indicators (which is quite common actually).

28.07.2025 02:28 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Someone can correct me if I'm wrong but I don't believe the platform would consider that breaking.

Parser behavior is pretty well spec'd so if you were going against it, and relying on the parser to correct your markup, I think you're left to the mercy of future changes.

27.07.2025 06:45 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I don't think that counts as a breaking change? Output DOM structure has never been guaranteed to match the input HTML, there's plenty of cases that break.

That comment showcases unsound selectors & assumptions which this change highlights; the breakage is due to the author's assumptions.

27.07.2025 06:38 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

s/voto'd/veto'd/

27.07.2025 01:46 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

It matters as you need a strong & coherent vision to sell to the implementors that seems straightforward whilst also remaining consistent with the platform. If you don't, it'll be voto'd and the API shall continue to sit on the back burner.

I don't think it's unlikely to need multiple listeners.

27.07.2025 01:44 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

That's the way to go, IMO.

Some of these presets are stuffed so full of functionality that there's no way you can be aware of it all, making all the unused bits dead weight (or worse, they claim keybinds and begin to interfere with other functions).

24.07.2025 03:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

> Same OS

I'm sorry, but you do understand that Ubuntu 22.04 is one of the most widely used images to build on, right? It's powering millions of envs from CI to production servers at this very moment.

There's nothing particularly interesting or problematic w/ just the Ubuntu version of all things.

23.07.2025 06:25 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Screenshot of Firefox's 'Retaining Paths' graph in the memory debugger. It's a directed graph of Nodes showing JS object dependencies.

Screenshot of Firefox's 'Retaining Paths' graph in the memory debugger. It's a directed graph of Nodes showing JS object dependencies.

Was debugging some (potential) memory leaks and discovered Firefox has this really neat graph mode for displaying retaining paths:

22.07.2025 09:53 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Oops, that very well might be it. Didn't recognize the pattern there though I swear that didn't used to happen.

At least I'll be aware of it now, thanks!

22.07.2025 08:53 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Anyone else running into the GitHub bug where input fields just aren't being cleared after submitting?

About half of all comments I submit end up stuck so I sit there staring, waiting for it to clear so I know it submitted successfully, only to scroll up and see that no, it already has.

22.07.2025 02:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Top 100%, eh? Really overachieving there

21.07.2025 10:45 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@rschristian.dev is following 18 prominent accounts