Ryan Atkinson

@ryanatkn.com

independent free software dev 🐢 https://github.com/ryanatkn 💤 https://www.ryanatkn.com/

I've had a take since Sonnet 3.5, ~Aug 2024, that editor autocomplete has done more to mislead dev perception of AI capability than any other application of the tech. 3.5 could produce style-faithful, correct-enough, maintainable, niche code. Later models learned Unix, & agents optimized the loop.

I started publishing open source projects to GitHub in 2013, and since 2019 I've been publishing my stuff full-time, building in public without the hash tag. LLMs were trained on my code and I'm cool with it, and now use agents daily. I design and engineer, agents do much (not all) of the coding.

intheweights.com for ryanatkn, top 10% open source developer
{🧪} +paoloricciuti.svelte@paolo.ricciuti.me · 2mo ago

This is hella cool...and I would've never thought I could be in the weights (and it knows I'm a svelte guy) 🤯 intheweights.com/p/paoloricci...

The jujutsu model has me curious but agentic coding has given me a newfound appreciation for the git staging area, as its friction pairs well with git-denied agents to resist vibe coding. jj could probably have superior tools for similar workflows, but no-staging isn't a selling point for me now.

Announcing tsv - a formatter, parser, and future linter + more for Svelte + TypeScript/JS/HTML/CSS in Rust. - tailored to Svelte, no irrelevant bloat - emphasis on performance, no JS bridging - non-configurable, so hidden dir-specific state never changes behavior github.com/fuzdev/tsv tsv.fuz.dev

GitHub - fuzdev/tsv: formatter, parser, and future linter + more for TypeScript, Svelte, and CSS, written in Rust

formatter, parser, and future linter + more for TypeScript, Svelte, and CSS, written in Rust - fuzdev/tsv

github.com

Svelte is among the best-stewarded projects I've experienced, as a very-online open source tech observer over 15+ years The always-improving design is a treat. Async integration and remote functions are elegant, and recently {let/const, vite.config.ts eating svelte.config.js, and much nicer env. !!

Even with powerful AI, tokens cost electricity/time/hardware/externalities and people will continue to care about how much money it costs to make things. Efficiencies=gains when automating. To coldly compare token counts with flawed data, from component-party.dev - gist.github.com/ryanatkn/1a2...

Terminal output comparing LLM token counts across 18 UI frameworks using component-party.dev code samples. 22 identical UI patterns tokenized with gpt-tokenizer (cl100k_base), baselined against Svelte 5 at 2,072 tokens. Marko is leanest at 1,611 tokens (-22%), followed by Aurelia 2 (-6%). Svelte 4 is nearly identical (+1%). Vue 3 sits at +19%, React at +33%, and Angular is the most verbose at 4,172 tokens (+101%). Four frameworks have missing sections filled via weighted median imputation. Results table shows token count, absolute delta, percentage difference, character count, median tokens per section, file count, and section coverage for each framework.
rich harris@rich-harris.dev · 5mo ago

maybe i'm biased but i think the precise opposite is true. what agents crave is structure. left to their own devices they will happily generate unmaintainable goop. libraries? pfft they don't bother with libraries half the time, they just write their own

Flight is one of my favorite LLM metaphors. When flying over terrain, you miss details, disconnected from whatever's going on below, but you move fast, skip obstacles like they're nothing, leveraging the 3rd dimension, gliding on air currents, fluid but detached, less inhibited but more distanced

Count me among those impatient users who learned Rust "too early". In 2015 the 1.0 DX was very rough, but the community has made amazing improvements to the language and tooling. Tried it again last year and now so fond of it, makes me less C-brained (had rejected C++). Likely still Zig for gamedev.

There are many "tricks" for tools like Claude Code because it's so new and raw. One of my favorites is telling it to leave `// TODO`s in the code when it can't fix something in the current pass -- for the Claude 4 models this avoids a lot of busted reward hacking. Same process I've used for years!

Claude Code today cannot be trusted with cd (doesn't follow its state) or sed (can do serious damage, lol amounts), and personally for my current workflows I have git denied too (sometimes this means it fails to search history tho, I need a better solution)

"bigger on the inside" feels helpful for LLM intuition, they're little finite information multiverses "next token predictor" acknowledges linear time but I don't think it's as profoundly limiting as it sounds, especially for machine-compressed time at many hz

My instinct would have made $state/$state.raw instead reversed like $state/$state.deep users wouldn't have to reason about "how does $state affect this particular value?" in the default case, with $state.deep opt-in for arrays/POJOs/etc but I can see how it's more "natively reactive" as is?

One of the roughest DX edges in Svelte right now IMO is reading the deps of $effects - overall it's ⚞incredible⚟ I've seen some ideas floated like listing them in an editor placeholder comment - here's another, but can it be done in vscode? and what would be the ideal styling that doesn't conflict?

image of 3 Svelte examples with the text:

"Svelte DX improvement idea:
for $effect deps that cause reruns,
style the identifers in the code
directly (better than pictured)
instead of e.g. ghost comments,
if it's possible in vscode?"

The three examples show the initial normal example, then two forms of highlighting identifiers that are deps to $effects - bolding and a subtle background color.

underappreciated that they didn't namesquat googol, it's a good word, that's what I'm thankful for this season also Bluesky getting the web folks I follow I'm v. thankful for that

I often see people lament the loss of HyperCard type tools for building non-linear experiences. But there are actually a bunch of HyperCard-esque tools and app knocking around.

In hindsight I think the Node-compat story with Deno and Bun threaded a needle to turn out great. we get to choose between mostly-compatible runtimes now, maybe some frictions to using/authoring, but lockin is opt-in - a good outcome for devs and the commons and they still get to innovate and push