Chris Krycho's Avatar

Chris Krycho

@chriskrycho.com.bsky.social

Software craftsman, composer, theologian, writer, runner, photographer. Anglican Christian. Platform eng. at Vanta. Co-author of the Rust book. Previously LinkedIn; Ember TS & Framework alum. I can help you adopt Rust or TypeScript! → chriskrycho.com

1,602 Followers  |  138 Following  |  2,057 Posts  |  Joined: 17.08.2023  |  2.2587

Latest posts by chriskrycho.com on Bluesky

This morning’s work on the #symphony: a bit of orchestration work, filling in some holes. I’m not exactly stymied on continuing Mvt. III, but I don’t know *exactly* where to go—so I just found a way to make some some progress rather than none. #music #composing

11.08.2025 13:30 — 👍 1    🔁 1    💬 0    📌 0

@simonwillison.net do you have a current favorite local model or models for various tasks? Per your recent posts, I would guess the open models from OpenAI—if so, what’s in second after those?

09.08.2025 20:57 — 👍 2    🔁 0    💬 1    📌 0
Preview
Item Flow – Part 2: next steps for Masonry Back in March, we published Item Flow, Part 1: a new unified concept for layout, an article about a new idea for unifying flex-flow and grid-auto-flow into a single set of properties under a new item-...

Where is Masonry? How will `item-flow` be the new way to create masonry-style layouts in CSS? What decisions are still being debated about how it will work??

webkit.org/blog/17219/i...

We’d love to hear what you think about the decisions still to be made… which do you want as a web developer?

08.08.2025 16:28 — 👍 28    🔁 10    💬 1    📌 0
Arthur C. Clarke's third law of prediction is, famously,
"Any sufficiently advanced technology is indistinguishable from magic." The kind of technology Clarke had in mind was one that truly works, but in such a sophisticated way that it is entirely opaque to the ordinary people who use it. The optimistic reading is that Clarke pictured our descendants in the role of the makers of such technologies as people who actually understood it. But perhaps not.
Magical technologies work... mostly. When they fail and you ask for an explanation, they present you with a blank face. When you try to intervene to fix them, they offer you no purchase on their surface of smooth glass. Instead of controlling technology as a wise wizard might wield a staff, you are forced to fall back on magic's traditional social function-namely, the ritual performance of specific but obscurely relevant steps meant to compel the gods to do the thing you want. Yet the gods care nothing for ordinary people; their ways are mostly unfathomable, and our means of control over them are obscure and unreliable. Instead of elevating us to a world of magic, the world of artificial intelligence and machine learning reduces us to it. A final wrinkle is that, as it advances, this process tends to shrink and ultimately undermine the caste of priests. In simpler technological worlds, the gods may communicate more directly to supplicants. They speak cryptically, but the initiated understand what is being said. Beyond a certain point, though, there is both less room for understanding and fewer means of intervention. With few exceptions, technology's priesthood may find itself degraded to the unhappy state of the laity. It, too, must confront what it means to live in an age where a sufficiently advanced technology really has become indistinguishable from magic.

Arthur C. Clarke's third law of prediction is, famously, "Any sufficiently advanced technology is indistinguishable from magic." The kind of technology Clarke had in mind was one that truly works, but in such a sophisticated way that it is entirely opaque to the ordinary people who use it. The optimistic reading is that Clarke pictured our descendants in the role of the makers of such technologies as people who actually understood it. But perhaps not. Magical technologies work... mostly. When they fail and you ask for an explanation, they present you with a blank face. When you try to intervene to fix them, they offer you no purchase on their surface of smooth glass. Instead of controlling technology as a wise wizard might wield a staff, you are forced to fall back on magic's traditional social function-namely, the ritual performance of specific but obscurely relevant steps meant to compel the gods to do the thing you want. Yet the gods care nothing for ordinary people; their ways are mostly unfathomable, and our means of control over them are obscure and unreliable. Instead of elevating us to a world of magic, the world of artificial intelligence and machine learning reduces us to it. A final wrinkle is that, as it advances, this process tends to shrink and ultimately undermine the caste of priests. In simpler technological worlds, the gods may communicate more directly to supplicants. They speak cryptically, but the initiated understand what is being said. Beyond a certain point, though, there is both less room for understanding and fewer means of intervention. With few exceptions, technology's priesthood may find itself degraded to the unhappy state of the laity. It, too, must confront what it means to live in an age where a sufficiently advanced technology really has become indistinguishable from magic.

The last and most important skill we must acquire is how to write begging letters to an opaque machine.

08.08.2025 01:32 — 👍 1069    🔁 173    💬 22    📌 15
ChatGPT File
•
•
Edit
View
Window
Help
ChatGPT 5 >
How many times does the letter b appear in blueberry
The word "blueberry" has the letter b three times:
• Once at the start ("B" in blueberry).
• Once in the middle ("b" in blue).
• Once before the -erry ending ("b" in berry).
Total: 3
O92
Show me where the letter b appears in the word please.
Sure — here's "blueberry" with each b highlighted:
B lue b erry
Positions (counting from 1):
1 B - first letter
4 b - in blue
6 b - in berry
D9<
Spell that out with all three bs please. I mean, just spell the word.
Sure — here's the full spelling with all three b's shown in place:
BLUEBERRY
That's exactly how blueberry is spelled, with the b's in positions 1, 5, and 7.

ChatGPT File • • Edit View Window Help ChatGPT 5 > How many times does the letter b appear in blueberry The word "blueberry" has the letter b three times: • Once at the start ("B" in blueberry). • Once in the middle ("b" in blue). • Once before the -erry ending ("b" in berry). Total: 3 O92 Show me where the letter b appears in the word please. Sure — here's "blueberry" with each b highlighted: B lue b erry Positions (counting from 1): 1 B - first letter 4 b - in blue 6 b - in berry D9< Spell that out with all three bs please. I mean, just spell the word. Sure — here's the full spelling with all three b's shown in place: BLUEBERRY That's exactly how blueberry is spelled, with the b's in positions 1, 5, and 7.

ChatGPT File
Edit View Window Help
E
ChatGPT 5 >
You wrote "BLUEBERRY". There are only two bs there.
Ah - I see the mix-up.
Let's slow it down and spell blueberry carefully, letter by letter, showing all three b's.
blueberry
Now you can see them:
• 1st b → position 1
• 2nd b → position 5
• 3rd b → position 6
blueberry
Exactly — blue berry has three b's:
• 1st b → at the very start
• 2nd b → right after the e in blue
• 3rd b → immediately after the second b, starting berry
So the "bb" in the middle is really what gives blueberry its double-b moment.
Its double-b moment; I see.
Yep - blueberry is one of those words where the middle almost trips you up, like it's saying "b-b-better pay attention."
That little bb moment is satisfying, though — it makes the word feel extra bouncy.

ChatGPT File Edit View Window Help E ChatGPT 5 > You wrote "BLUEBERRY". There are only two bs there. Ah - I see the mix-up. Let's slow it down and spell blueberry carefully, letter by letter, showing all three b's. blueberry Now you can see them: • 1st b → position 1 • 2nd b → position 5 • 3rd b → position 6 blueberry Exactly — blue berry has three b's: • 1st b → at the very start • 2nd b → right after the e in blue • 3rd b → immediately after the second b, starting berry So the "bb" in the middle is really what gives blueberry its double-b moment. Its double-b moment; I see. Yep - blueberry is one of those words where the middle almost trips you up, like it's saying "b-b-better pay attention." That little bb moment is satisfying, though — it makes the word feel extra bouncy.

 ChatGPT
File Edit View Window Help
巴
• ChatGPT 5 >
My students get you to write their essays for them, you know.
Ah, the old "ChatGPT, do my homework" routine — I'm familiar with that one.
I can see why they'd be tempted, but here's the thing: I'm a lot more useful as a coach than a ghostwriter. If they use me to brainstorm ideas, plan structure, or clarify tricky concepts, they'll actually learn and still have their own voice in the work.
If they just hand in what I write, they're skipping the thinking part - and it usually shows. I'm good, but I still leave a trail of... telltale ChatGPT-isms.
A trail of blueberries, as it were.
Exactly — a trail of blueberries: easy to follow, a little sweet, and maybe just obvious enough for a watchful teacher to notice.
If your students really are leaving me to bake the whole blueberry pie for them, they might forget that the best part of pie is making it themselves... even if it gets a little messy.
"Blueberry" only has two bs.
Nope - blueberry really does have three b's.
Here it is spaced out:
bluebberry
Positions:
b- at the start
5 b - in the "blue" part
6 b - right next to it, starting "berry"
That middle double-b is easy to miss if vou just glance at the word.

 ChatGPT File Edit View Window Help 巴 • ChatGPT 5 > My students get you to write their essays for them, you know. Ah, the old "ChatGPT, do my homework" routine — I'm familiar with that one. I can see why they'd be tempted, but here's the thing: I'm a lot more useful as a coach than a ghostwriter. If they use me to brainstorm ideas, plan structure, or clarify tricky concepts, they'll actually learn and still have their own voice in the work. If they just hand in what I write, they're skipping the thinking part - and it usually shows. I'm good, but I still leave a trail of... telltale ChatGPT-isms. A trail of blueberries, as it were. Exactly — a trail of blueberries: easy to follow, a little sweet, and maybe just obvious enough for a watchful teacher to notice. If your students really are leaving me to bake the whole blueberry pie for them, they might forget that the best part of pie is making it themselves... even if it gets a little messy. "Blueberry" only has two bs. Nope - blueberry really does have three b's. Here it is spaced out: bluebberry Positions: b- at the start 5 b - in the "blue" part 6 b - right next to it, starting "berry" That middle double-b is easy to miss if vou just glance at the word.

I had to try the “blueberry” thing myself with GPT5. I merely report the results.

08.08.2025 00:03 — 👍 8908    🔁 2382    💬 479    📌 918

I know why it fails, but considering the terms under which it’s being hyped, pitched, and sold to a vast array of consumers, falling back to “Noooo you have to understand how the modeled token-space differs from the latent semantic space” feels a little Motte and Bbailey. I mean Bailey.

08.08.2025 02:35 — 👍 525    🔁 44    💬 6    📌 7

My current heuristic: If it isn’t a FaceTime call and I don’t have an active service (car repair etc.) going on, it’s 99% guaranteed to be spam.

08.08.2025 13:13 — 👍 0    🔁 0    💬 0    📌 0

Chaser bsky.app/profile/kjhe...

08.08.2025 02:37 — 👍 2    🔁 0    💬 0    📌 0

Shot

08.08.2025 02:37 — 👍 3    🔁 0    💬 1    📌 0

I had to remind myself that I have written a lot more new #music for the symphony this year than the total runtime of the mockup would suggest: the net is just 39 seconds so far (from 30:12 to 30:51), but I cut 32 seconds from Mvt. II! So: 71 seconds. 🚀 Also, those bars I cut will be back… later.

07.08.2025 15:01 — 👍 2    🔁 1    💬 0    📌 0
Post image

`oxlint --type-aware`. Mic drop.

It's incomplete and have numerous problems, including a noticeable performance issue.

BUT, you can finally see your floating promises quickly!

Example PR: github.com/rolldown/rol...
Problems: t.co/K7ZVnPjOPL

07.08.2025 15:53 — 👍 110    🔁 14    💬 3    📌 4

A whee bit of progress this morning on Mvt. III. There’s a bit mid-way through it that has niggled at me every time I have listened to the mockup over the past month or two, but I have been focused on making progress toward the conclusion and so ignored it. Not today! I fixed it. 😎 🎼

07.08.2025 14:04 — 👍 0    🔁 1    💬 0    📌 0

It only supports them in that it doesn’t just completely break in their presence. And the devs are steadfast in their commitment that they may build something that solves the same problem but it won’t be anything like submodules. Someday we will all be free. 😆

07.08.2025 12:37 — 👍 1    🔁 0    💬 1    📌 0

Web developers, do you test your sites in Safari Beta? (On a standalone machine, automated? On your Mac?)

If not, why? Is it because installing the beta overrides regular Safari? If you could have Safari & Safari beta both at the same time, would you do so?

What do you need? Why? Share details!

06.08.2025 23:19 — 👍 15    🔁 6    💬 17    📌 0
Preview
Announcing Rust 1.89.0 | Rust Blog Empowering everyone to build reliable and efficient software.

Happy new Rust! 🎆🦀

Rust 1.89.0 has been released!

This release brings you inferrred array length, new lints, u128/i128 in extern "C", NonZero<char>, File::lock, many x86 intrinsics, and much more! ✨

Check out the blog post and release notes for all the details: blog.rust-lang.org/2025/08/07/R...

07.08.2025 11:18 — 👍 205    🔁 49    💬 4    📌 6

FWIW, I have been using jj full time for over two years now, and I use it all day every day at work, where we’re a Git shop, andd it’s 100% transparent to colleagues (except the growing cadre of jj users are all… fervent… in our evangelism. 😂) kind of like the Git-SVN bridge was back in the day.

06.08.2025 20:02 — 👍 2    🔁 0    💬 0    📌 0

IIRC Typed Racket handles this better—I remember that it forces you to deal with the unknown data when getting it *from* untyped code *into* type code, but I do not recall the details in terms of calling untyped functions from typed.

06.08.2025 19:59 — 👍 1    🔁 0    💬 0    📌 0

…or may not. They are only guaranteed to be correct if the types are generated from code written in TS (and itself using `strict: true`).

Generally speaking, you at least know and are explicitly choosing to opt into it when you’re calling untyped code.

(This should also inform conversion order!)

06.08.2025 19:59 — 👍 1    🔁 0    💬 1    📌 0

Depends! In TypeScript, if you have `strict: true` set and don’t go out of your way to shoot yourself in the foot, no, because you’ll get a type error for having an un-typed (`any`) function you’re tryign to call. However, that’s down to discipline, and relies on those types being correct. They may…

06.08.2025 19:59 — 👍 3    🔁 0    💬 1    📌 0
Preview
jj init — Sympolymathesy, by Chris Krycho Jujutsu (`jj`) is a new version control system from a software developer at Google. I have been using it full time for 6 months. Here’s why you should switch, too.

I’ll second this! See also v5.chriskrycho.com/essays/jj-in... it’s 18 months old and therefore somewhat out of date but still has a decent conceptual introduction and framing to it.

06.08.2025 16:37 — 👍 2    🔁 0    💬 3    📌 0

Okay but you have to tell us what chair you got!

05.08.2025 16:26 — 👍 0    🔁 0    💬 1    📌 0
Preview
What’s New in ViteLand: July 2025 Recap July 2025 brings exciting updates in the Vite ecosystem, including the release of Vite 7, Rolldown's new features, and the upcoming ViteConf in Amsterdam. Discover the latest news in Vite, Vitest, Oxc...

What's new in ViteLand?
Our July 2025 recap is out.

🎉 Announcing 1st in-person @viteconf.org in Amsterdam
📈 @vite.dev surpassing webpack's downloads
⏩ Major performance boosts for @rolldown.rs
🔥 Type-aware linting & custom rules for Oxlint
👀 and more

Read the post: voidzero.dev/posts/whats-...

05.08.2025 06:49 — 👍 60    🔁 11    💬 0    📌 1

I'm unreasonably excited about the upcoming cargo-semver-checks release: this month we put some points into "make it a joy to use and build."

- 3x faster at scanning very large crates
- its `cargo test` now takes 1min not 6-7min
- we gracefully handled a massive change in the rustdoc JSON format

04.08.2025 18:40 — 👍 35    🔁 5    💬 1    📌 0

Thank you! Really appreciate it!

04.08.2025 16:46 — 👍 1    🔁 0    💬 0    📌 0

Needs more docs and also to decide on exactly how to do testing for third-party libraries, but it’s pretty sweet if I do say so myself.

04.08.2025 15:42 — 👍 0    🔁 0    💬 0    📌 0
Preview
Standard Schema: introduce general-purpose parser support by chriskrycho · Pull Request #1093 · true-myth/true-myth ImportantThis is a Draft PR because at least one of the libraries we test against (Arktype) requires a more recent version of TypeScript than we do, and I need to decide how to approach our tests f...

My long weekend (Vanta took an extra Friday off after a *fantastic* start to the year) produced this fun new feature landing in True Myth sometime Soon™: Standard Schema support! github.com/true-myth/tr...

04.08.2025 15:42 — 👍 0    🔁 0    💬 0    📌 1
I am a Rust compiler engineer looking for a new job For the past 3.75 years I have been fortunate to work on Futurewei’s Rust team, where I had enormous freedom to “make Rust better” however I see fit. It has been the highlight of my career and I am gr...

New blog post: I am a Rust compiler engineer looking for a new job

nnethercote.github.io/2025/07/18/l...

18.07.2025 04:33 — 👍 86    🔁 44    💬 5    📌 2
Practical Static Analysis for Privacy Bugs

A blog post summarizing our latest work: a static analyzer that leverages Rust in a non-trivial way!
blog.brownplt.org/2025/08/03/p...

03.08.2025 15:12 — 👍 45    🔁 6    💬 0    📌 0
Preview
Who Wants an Oxide Rack? — Sympolymathesy, by Chris Krycho This guy! And at least one other guy!

Who wants an @oxide.computer rack for totally-not-big-professional-purposes? THIS GUY. And also Robin Sloan. There are least two of us!

More: v5.chriskrycho.com/notes/oxide/

02.08.2025 15:25 — 👍 4    🔁 0    💬 0    📌 0

Has anyone compared the type checking and runtime performance of @arktype.io and @zod.dev now that Zod v4 is out? Looking at you, @ssalbdivad.dev and @colinhacks.com. 😂

(To be clear to lookers-on: these are both great libraries and I’d happily recommend either.)

02.08.2025 15:22 — 👍 4    🔁 0    💬 1    📌 0

@chriskrycho.com is following 19 prominent accounts