Twitter Archive: 2024

Twitter dot com was a microblogging and social networking service, where users could share short posts (commonly known as “tweets”) with text, images, and video.

This is an archive of all my tweets from 2008–2025 (my username was @dubroy).

These days, you can find me on Bluesky or Mastodon.

By year

…or see popular posts.

2024

Honestly a big unlock for me in the past few years was the realization that the squishy factors like this are often the most important.

What's fun? What are you excited about? What makes you feel good? etc. twitter.com/charliermarsh/…
Dec 29 · 45 · 5
"dimly-seen and poorly-documented code gremlins called cycle-eaters"
Tweet image
Dec 21 · 5
A big release for @WasmGroundUp today: a draft of the last chapter on the main track of the book.

The end is in sight… 😅 twitter.com/WasmGroundUp/s…
Dec 16 · 2
This is great advice and something I’ve been trying to do more recently.

Many of these things end up as a TIL post on github.com/pdubroy/til twitter.com/oznova_/status…
Dec 11 · 5

More wise advice in the full thread

twitter.com/oznova_/status…
Dec 11 · 1
Looking forward to release a draft of Chapter 10 very soon!

This one's a doozy…memory allocation, string representations, etc. twitter.com/WasmGroundUp/s…
Dec 11 · 2 · 1
Reminder that you cannot "hear someone's voice" on a telephone! A telephone is simply designed to vibrate a diaphragm — nothing more. It doesn't (and absolutely cannot) transmit voices over a long distance.
Dec 9 · 3
TIL that there's a bridge in Lisbon that's (a) painted the same colour as the Golden Gate bridge, and (b) has the same basic construction as the Bay Bridge.

en.wikipedia.org/wiki/25_de_Abr…
Tweet image
Dec 9 · 2

American Bridge Company is the GOAT
Tweet image Tweet image Tweet image Tweet image
Dec 9 · 3 · 1
It's always fascinating to read about how startup a *failed* to find product-market fit.

From @replayio: "A new direction"
blog.replay.io/a-new-direction

Kudos to @jasonlaster11 and team for publishing this!
Dec 8 · 10 · 1

@replayio @jasonlaster11 The Zaplib post-mortem from @stevekrouse and @JanPaul123 is another interesting one: twitter.com/stevekrouse/st…
Dec 8 · 6

@replayio @jasonlaster11 @stevekrouse @JanPaul123 Also ❤️ that this little note turned into @ValDotTown!
Tweet image
Dec 8 · 6 · 2

Dec 9 · 2
Really enjoyed this talk by Will Wilson (CEO of @AntithesisHQ) —

Testing a Single-Node, Single Threaded, Distributed System Written in 1985
youtube.com/watch?v=m3HwXl…

or, "How to beat Mario with a random number generator"
Dec 7 · 67 · 12
What a read.

"Tiger Style", the TigerBeetle style guide: github.com/tigerbeetle/ti…

"TigerBeetle's coding style is evolving. A collective give-and-take at the intersection of engineering and art. Numbers and human intuition. Reason and experience. First principles and knowledge."
Tweet image
Dec 4 · 38 · 10

The Safety section is super interesting: github.com/tigerbeetle/ti…

Also this is probably the most concise explanation of the "fail fast" principle that I've ever read.
Tweet image
Dec 4 · 8 · 2
In @WasmGroundUp I'd like to link to a good article on Unicode, string encodings, etc.

Is Joel's "The Absolute Minimum…" (joelonsoftware.com/2003/10/08/the…) still a reasonable choice? Or is there something better these days?
Dec 3 · 4 · 2
This is really interesting.

More on UserTalk (from ~1997) here: web.archive.org/web/2004081814… twitter.com/msimoni/status…
Nov 27 · 10 · 2
Hmmm, never thought about it this way before!

The whole post ("Fantastic Learning Resources") is worth a read: matklad.github.io/2023/08/06/fan… twitter.com/zack_overflow/…
Tweet image
Nov 24 · 32 · 1
Interesting, didn't know about the V8 Research Grant! v8.dev/grant

For "programming languages and software systems research based on V8, JavaScript, and WebAssembly"

Too bad that it's only for profs at accredited universities though…
Tweet image
Nov 23 · 5
PSA: Like many of you, I'm mostly over here these days: bsky.app/profile/dubroy…
Nov 20 · 2
First edition of the Munich Homebrew Systems Club is tomorrow at 2pm.

If you haven't signed up yet, what are you waiting for? lu.ma/je6q8qzq twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Nov 8
Just one more week until the first edition of Homebrew Systems Club!

Come join us next Sat for talks by @thorstenball, @tsenart, @warianoguerra, and myself.

Details here: lu.ma/je6q8qzq

We still have room for two short (5m) demos/⚡-talks! Lmk if you're interested. twitter.com/dubroy/status/…
34 · 7
Nov 15 · 5 · 1
Still love this feature from @TitzerBL's Virgil (github.com/titzer/virgil).

"The compiler contains an interpreter for the entire language and simply executes the code that you write to initialize variables and definitions before it generates a binary."
Tweet image
Nov 10 · 35 · 3
Made a little something for my talk next week at Homebrew Systems Club.

It's about running bytecode interpreters on the GPU. It'll be fun, come join us! twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Nov 8
Just one more week until the first edition of Homebrew Systems Club!

Come join us next Sat for talks by @thorstenball, @tsenart, @warianoguerra, and myself.

Details here: lu.ma/je6q8qzq

We still have room for two short (5m) demos/⚡-talks! Lmk if you're interested. twitter.com/dubroy/status/…
34 · 7
Nov 9 · 23 · 3
Same here 🙋‍♂️

You should join us, it really feels like there's a critical mass in a way that never happened for me w/ Mastodon. twitter.com/warianoguerra/…
Nov 9 · 5
Just one more week until the first edition of Homebrew Systems Club!

Come join us next Sat for talks by @thorstenball, @tsenart, @warianoguerra, and myself.

Details here: lu.ma/je6q8qzq

We still have room for two short (5m) demos/⚡-talks! Lmk if you're interested. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Oct 11
Hey! @warianoguerra & I are starting a meetup in Munich, tentatively called "Homebrew Systems Club".

~~Vibes~~

Programming languages, environments, systems
Databases
Operating systems
Virtual machines
{Handmade, local-first, lo-fi, home cooked} software
Tweet image
113 · 13
Nov 8 · 34 · 7
Love this!

I think there are so many ways we could make GUIs more powerful and enable the kind of abstraction you usually only see in programming languages. twitter.com/tophtucker/sta…
Nov 7 · 22 · 4
📝New blog post

One way to do applied research
dubroy.com/blog/one-way-t…
Tweet image
Nov 7 · 74 · 12
Saw this talk by Jonathan Ragan-Kelley: "The Future of Fast Code: Giving Hardware What it Wants"
youtube.com/live/66oKqvwoI…

Now I'd like to know: are there any books/articles that go deeper but are similarly accessible?

I'd love to learn more about the specifics of modern GPUs.
Nov 7 · 4
Hitting some interesting challenges with @WasmGroundUp

How to explain things like memory allocation, pass-by-value, etc., when the audience might only know JavaScript?

Here's a bit from our latest draft. Would love some feedback — is it understandable? Does it seem useful?
Tweet image
Nov 5 · 5 · 1
A lot of academic writing can nearly impenetrable to people outside the field.

So it's always a joy to come across things that are as clearly written as this. (And Halide is very cool — halide-lang.org)
Tweet image
Nov 4 · 24 · 4

Original article is here: cacm.acm.org/research/halid…

And yes, it's CACM but still. (Also, the Halide papers themselves are similar.)
Nov 4 · 1
Author: “The book has over 200 5-star reviews on Amazon!”

The reviews:
Tweet image
Nov 2 · 6
Hmmm.

"we're unwittingly creating a kind of 'announcement economy' in which you can receive the same amount of funding, attention, and dopamine from announcing an intention to build something—or by building a shiny demo—as you can by actually delivering a great product." twitter.com/_TamaraWinter/…
Nov 1 · 11 · 2
oh hey i'm over here too: bsky.app/profile/dubroy…
Nov 1 · 2
A wonderful conversation between two of my favourite people.

Some gems in here if you're interested in programming, learning, growth, … twitter.com/thorstenball/s…
Tweet image
Oct 31 · 13 · 3
Graphics programming is the best, I love when my debug output is accidentally beautiful.
Tweet image
Oct 30 · 17
“std::string is responsible for almost half of all allocations in the Chrome browser…be careful how you use it” twitter.com/jakubtomsu_/st…
Oct 29 · 2
Now that's an inspiring CV. twitter.com/splashcon/stat…
Tweet image
Oct 21 · 134 · 6

Seriously. In case you thought you needed a PhD to do impactful compiler/VM work.
Tweet image
Oct 21 · 9 · 1
Still think about this every time I'm running benchmarks. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Mar 25
If, like me, you thought about this for a bit and then went, "Wait, how is that possible?"

sqlite.org/cpu.html#perfo…
Tweet image
9
Oct 20 · 5
I still think about this a lot. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · May 13
It’s interesting — lots of people talking about alternative models for research funding, but I don’t see anyone looking for new ways to get smart, ambitious people to work on something together.
46 · 1
Oct 19 · 20
Knuth on reusable code:

"re-editable code is much, much better"
Tweet image
Oct 18 · 74 · 4

Source: informit.com/articles/artic…

I feel like this idea is kinda gaining traction lately. E.g. shadcn/ui, also @bunjavascript seems to have quite a bit of code ported from other projects twitter.com/jarredsumner/s…
Oct 18 · 5
Internet Archive is down😭

Nothing like a service going down to remind you how much you rely on it. twitter.com/brewster_kahle…
Tweet image
Oct 12 · 17 · 1
Pascal vibes
Tweet image Tweet image Tweet image Tweet image
Oct 12 · 45 · 6

Ok so I'm making a Pascal: github.com/pdubroy/patscal

It's not done yet.
Oct 12 · 8
I love this! Why have I never seen a diagram like this before?
Tweet image
Oct 11 · 24 · 2

(It's "Box2D's architecture, concepts, and terminologies" from the LÖVE documentation: love2d.org/wiki/love.phys…)
Oct 11 · 8
Hey! @warianoguerra & I are starting a meetup in Munich, tentatively called "Homebrew Systems Club".

~~Vibes~~

Programming languages, environments, systems
Databases
Operating systems
Virtual machines
{Handmade, local-first, lo-fi, home cooked} software
Tweet image
Oct 11 · 113 · 13
This kind of messaging seems deeply disempowering to me.

"really, truly, the most horribly unsafe thing you can do"
"arbitrary chaos that can't really be predicted"

Like — it's my computer, I can SIGSEGV if I want to.
Tweet image
Oct 11 · 5 · 1
I guess "tamagotchi tooling" is the opposite of cold-blooded software.

chrisdone.com/posts/tamagotc… twitter.com/dubroy/status/…
Tweet image
Patrick Dubroy @dubroy · Dec 28
📝 New blog post —

Cold-blooded software: dubroy.com/blog/cold-bloo…
Tweet image
122 · 20
Oct 11 · 20 · 4
"Like other forms of art, programming teaches you new ways to pay attention to your surroundings."

From @maxbittker's "My Creative Research Process"

maxbittker.com/creative-resea…
Tweet image
Oct 11 · 74 · 5
2016 Feb 08

"The past few months I took a break from working on Genesis Digital Audio Workstation to work, instead, on creating a new programming language.

I am nothing if not ambitious…"
andrewkelley.me/post/intro-to-…
Tweet image
Oct 11 · 7
I have gotten confused by this UI sooo many times.

"Next" shows *older* commits.
"Previous" shows *newer*.

Would be better if they were labeled that way imo.
Tweet image
Oct 9 · 17 · 1
omg every open source project should have a page like this: vanjs.org/about#source-g…

@taoxin 👏
Tweet image
Oct 7 · 35 · 3
This is super interesting. A long time ago I noticed that a lot of inventions in computing came from a partnership — often one philosopher and one hacker.

Kay & Ingalls
Metcalfe & Boggs
McCarthy & Russell

etc twitter.com/ItaiYanai/stat…
Tweet image
Oct 6 · 160 · 23
Ok so I decided to do this 😅

pdubroy.github.io/200andchange/

Want to add a new example or help annotate an existing one? PRs welcome! twitter.com/dubroy/status/…
Tweet image Tweet image
Patrick Dubroy @dubroy · Oct 6
I kinda want to make a site that is just collects great examples like this — maybe annotate a la underscore underscorejs.org/docs/underscor…
14
Oct 6 · 63 · 7

Nice, woke up to a gem from @tekknolagi
Tweet image
Oct 7 · 3
I’ve been looking for a really minimal virtual DOM implementation — ideally a single file that I could inline into projects.

This week I discovered Superfine by Jorge Bucaran (creator of Hyperapp) which is just that: github.com/jorgebucaran/s…
Tweet image
Oct 6 · 69 · 7

There is something magical about ~250 lines in a single source file to illustrate a concept.

I almost did that for Pegboard but I'm tempted to refactor that so they're truly single-file, standalone examples.
twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Mar 26
New blog post: Two little interpreters
dubroy.com/blog/two-littl…

A little project where I wrote a PEG interpreter in TypeScript in two different styles: tree-walking vs bytecode.

It didn't turn out the way I expected!
Tweet image
63 · 3
Oct 6 · 9

I kinda want to make a site that is just collects great examples like this — maybe annotate a la underscore underscorejs.org/docs/underscor…
Oct 6 · 14
Academish friends —

Just booked my ticket to LA for @splashcon! Will be there roughly Wednesday to Sunday. Looking forward to catching up and nerding out with y'all!
Oct 5 · 14
I could not disagree with this more. This attitude is actively harmful imo

"Don't implement your own GUI library, even as a hobby project. It's extremely hard to get right…"
Tweet image
Oct 2 · 51 · 3

Remember folks, you don't have to justify your side projects to anyone! twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · May 3
One of the best decisions I've made in the past few years is to stop treating side projects like work projects.

E.g.
- "doesn't something like that already exist?"
- "you shouldn't implement that yourself"

Both make sense at work, but wrong attitude for side projects imo.
110 · 8
Oct 2 · 21 · 1

The full post is actually a joy though.

Someone asks, "What are the performance implications of using an immediate-mode GUI?"

doesn't get a good answer

…and then 2yrs later replies: "I ended up implementing an immediate-mode GUI as my master’s thesis, and have some numbers…"
Tweet image
Oct 2 · 17

Oct 2 · 4
This feature is so clutch.

Just ran into the following error. Took me ~5s with Zed to fix it, and then another 10s to digest the explanation of *why* that fixed it.

Would have taken me much, much longer to google for the answer. twitter.com/thorstenball/s…
Tweet image
Sep 27 · 1

Now that I know the answer, I can look at how useful the Google results would have been. What are the chances I would have found the needle in the haystack?
Tweet image Tweet image
Sep 27 · 1
My happy discovery of the day is that if you're doing cross-platform shader development, Rust+wgpu is pretty great: github.com/gfx-rs/wgpu

Great tooling, good validation, and you can still debug your shader code in the native tools (e.g. XCode).
Tweet image
Sep 25 · 3 · 1
Is it just me or are the search results on Google Scholar really terrible now?

E.g. here's a query with the exact paper title. But that PDF link — and the others under "All 9 versions" — lead to a random set of slides summarizing the paper, not to the paper itself.
Tweet image Tweet image
Sep 25 · 2

This is for a paper published a little over a year ago, with *1405 citations* (!!)

It's both recent and highly cited…hardly a dark corner of academia.
Sep 25 · 1
Love it! Looks like a great set of resources for learning graphics programming. twitter.com/kenpex/status/…
Tweet image
Sep 24 · 6
One of my discoveries on this odyssey was how wild Vulkan is.

>1000 lines of C++ for "hello triangle" 🫠

…here's the one from the official Vulkan samples: github.com/KhronosGroup/V… twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Sep 24
TIL: Debugging shaders
github.com/pdubroy/til/bl…

I finally figured out some decent workflows for debugging shaders!
Tweet image Tweet image Tweet image Tweet image
13
Sep 24 · 5 · 3

For comparison, some similar examples —

C++/OpenGL (~180 LoC): learnopengl.com/code_viewer_gh…
ObjC/Metal (~220 LoC): developer.apple.com/documentation/…
Swift/Metal (~160 LoC): github.com/javiersalcedop…

(And yes I know Vulkan is a lower-level API than OpenGL. But similar to Metal AFAIU?)
Sep 24 · 1
TIL: Debugging shaders
github.com/pdubroy/til/bl…

I finally figured out some decent workflows for debugging shaders!
Tweet image Tweet image Tweet image Tweet image
Sep 24 · 13
Graphics programming is just hours and hours of misery and then getting ridiculously excited when something like this appears on your screen
Tweet image
Sep 23 · 52

"Afterwards, we came to refer to certain types of accomplishments as 'black triangles'"

rampantgames.com/blog/?p=7745
Tweet image
Sep 23 · 7 · 2
Graphics friends…can you a recommend a tool for step debugging OpenGL shaders, on either macOS or Linux?

Many tools (NVIDIA Nsight, RenderDoc, etc.) only seem to support shader debugging with Vulkan.

glslDevil seemed promising but it didn't work w my app.
Sep 20 · 2 · 1
EU Coffee nerds —

If (like me) you've been been looking for a decent decaf, check out the El Carmen from @bonanzacoffee: shop.bonanzacoffee.de/products/el-ca…

Having my first cup right now and it's like wow, this is actually tastes damn good.
Awww yeah look what arrived today
Tweet image
Sep 18 · 29
Just me and my 847 closest, most trusted partners
Tweet image
Sep 18 · 8
I love little things like this — and the tools (like @ValDotTown, @scratch, etc.) that make them possible. twitter.com/stevekrouse/st…
Sep 17 · 9 · 1

@ValDotTown @scratch Here's something my daughter and I made in about 30 minutes in Scratch — a simulation of a digital water curtain that we saw at the airport.
Sep 17 · 4

Sep 17 · 3
TIL: Shader performance profiling on macOS
github.com/pdubroy/til/bl…
Tweet image
Sep 16 · 2

Man, programming shaders is a very different world…
Tweet image
Sep 16 · 7
There's so much good stuff in here.

I feel like 75% of it is "be high agency and take responsibility for outcomes" but it's pretty interesting how he communicates that.

For one thing, there's a ton of really specific examples. twitter.com/NickADobos/sta…
Tweet image
Sep 15 · 12
💯 agree. Personally this one's a big one for me. twitter.com/eatonphil/stat…
Tweet image
Sep 13 · 20 · 2

That's why I started my own TIL repo for example, inspired by @simonw.

I wrote more about that here. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · May 30
New blog post: Taking Learning Seriously
dubroy.com/blog/taking-le…
Tweet image
126 · 13
Sep 13 · 1
It's quite shocking when you try the "real" version of a food and realize that up to now, you've been eating a simulacrum.

(Yes I'm the guy at the party who won't shut up about traditional balsamic vinegar)
Sep 13 · 14
There's a phrase that's been stuck in my head ever since I heard @_adamwiggins_ say it on the Metamuse podcast:

"Software that says something unique about the world"
Sep 10 · 23 · 3

We're so used to thinking in features: "Can't XYZ do that already?"

But as an author/creator, that's not always what it's about. Sometimes, you're just driven by a feeling that there's a better way to do things.
Sep 10 · 5

Like I'm sure some people see @_ohmjs as "just another JS parsing toolkit".

Does it do anything that the other tools don't do? Not really.

But we happen to think we have a unique spin on that category.
Sep 10 · 1

So I love Adam's phrase for two reasons:

1️⃣ It's a reminder of what most of us really care about. If you're an Emacs-head or a vim-o-phile, an iOS fan or an Android die-hard, it's almost certainly not because of the feature list.
Sep 10 · 3

2️⃣ As an author, it pulls me in two directions. On one hand, it's freeing — my work doesn't have to be *novel*, it's enough to be *different*.

On the other hand, I also see it as a challenge: "Why am I doing this? Am I really saying something unique here?"

I like that tension.
Sep 10 · 4
Dang — can't believe I've never heard of this paper before!

clear.rice.edu/comp512/Lectur… twitter.com/marksaroufim/s…
Sep 9 · 19 · 1

Also why did papers look so much cooler back then
Tweet image
Sep 9 · 3
Interesting discussion here.

From a PL perspective, I'd also recommend "Kotlin Coroutines: Design and Implementation" from Onward '21 which is a good summary of some of the tradeoffs and differences:
researchgate.net/profile/Mikhai… twitter.com/fenil_jain_/st…
Sep 9 · 8
This is out of nowhere but I really appreciate what a positive influence @recursecenter has had on computing culture in the past 10+ years.

So many of the most thoughtful and interesting people I run across on the internet turn out to be connected to RC.
Sep 8 · 153 · 17

@recursecenter It totally wouldn't surprise me if — 20 or 30 years from now — people talk about RC the same way we talk about the Whole Earth Catalog, Homebrew Computer Club, etc. today.
Sep 8 · 31 · 4

The whole community is a powerful counterforce to the rampant cynicism (and other -isms 😁) you encounter nearly everywhere else.
Sep 8 · 11 · 1

Also, if you haven’t seen it before, it’s worth reading about RC’s social rules: recurse.com/social-rules
Tweet image
Sep 8 · 13 · 2
Really enjoyed "About the IMGUI paradigm" by @OCurnut on the Dear ImGui wiki: github.com/ocornut/imgui/…
Sep 8 · 7 · 1

It's a good summary of the history, and an attempt to defined and clarify what exactly immediate-mode GUI *is*.
Tweet image Tweet image
Sep 8 · 3
Niche subject but as an old gc head I find this pretty interesting.

Plus I can't help but think Niklaus Wirth would approve.

wingolog.org/archives/2024/…
Tweet image
Sep 7 · 7
Hoo boy this is going to be a treat!

If you aren't familiar with @rtfeldman's Software Unscripted podcast, I can definitely recommend it. The episode with Greg Wilson is one of my faves: shows.acast.com/software-unscr… twitter.com/debasishg/stat…
Sep 7 · 3
I've heard this many times (and in many forms) from Alan Kay, this description of what science is always makes me smile.
Tweet image
Sep 7 · 15

From "Etoys and SimStories" (1997): tinlizzie.org/VPRIPapers/hc_…
Sep 7 · 2
Looks like an absolutely incredible set of resources —
lectures (+exercises etc.) from Mario Wolczko's "Virtual Machines and Managed Runtimes" course at Berkeley: wolczko.com/CS294/index.ht…

Lecture guests
- Peter Deutsch & Allan Schiffman
- Dave Ungar
- Cliff Click
- Lars Bak

🔥
Sep 6 · 96 · 24
A good observation, and I ❤️ the description "very computer-minded" twitter.com/rsnous/status/…
Sep 6 · 3

E.g. another "very computer-minded" idea I've run across goes something like this:

"People sketch their ideas in <tool1>…and then create the final work in <tool2>. That's awkward and inefficient! We need a single tool that lets you do both."

twitter.com/rsnous/status/…
Sep 6 · 3
Ooh, love this term: "ghost knowledge".

I definitely know the concept but hadn't heard this term for it before.
Tweet image
Sep 5 · 124 · 12

Sep 5 · 11

@its_bvisness The first time I remember hearing about this idea, it was in reference to VMs and managed runtimes…so it's great to find this. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Sep 6
Looks like an absolutely incredible set of resources —
lectures (+exercises etc.) from Mario Wolczko's "Virtual Machines and Managed Runtimes" course at Berkeley: wolczko.com/CS294/index.ht…

Lecture guests
- Peter Deutsch & Allan Schiffman
- Dave Ungar
- Cliff Click
- Lars Bak

🔥
96 · 24
Sep 6 · 3
Redditspeedbot is an awesome example of malleable software in the wild.

"If you have ever stumbled upon a video that was too fast or too slow then this bot is for you. RedditSpeedBot will help you control the playback speed of any video or GIF."

reddit.com/user/redditspe…
Tweet image Tweet image
Sep 5 · 2
💯 agree.

The way I think about it is: if you're not making tradeoffs, you're not doing design.

But you see a lot of software like this — they just accrete features in a haphazard way. It's most noticeable in the UI, but it happens with libraries & frameworks too. twitter.com/FreyaHolmer/st…
Sep 5 · 8 · 2

Quite often I run across new tools (apps or libraries) and the main thing I notice is that it's "actually designed".

"It's like X…but *actually designed*."

(I may have picked this up from @warianoguerra)
Sep 5 · 3
I like this little piece of advice from matklad: "Push Ifs Up and Fors Down"

matklad.github.io/2023/11/15/pus…
Tweet image Tweet image
Aug 31 · 15 · 1

Interestingly, Ousterhout's "A Philosophy of Software Design" kind of argues for the opposite, although it's nuanced.

IMO the exact opposite is a better rule of thumb: "push complexity upwards".

See also Functional Core / Imperative Shell: destroyallsoftware.com/screencasts/ca…
Tweet image
Aug 31 · 7
Tweet image Tweet image
Aug 29 · 12 · 2
Love this vision. Years ago I hoped that the “card metaphor” might go in this direction but it turned out to just be a visual design trend. Big missed opportunity imo. twitter.com/genmon/status/…
Aug 23 · 8 · 1
I’ve seen this book before and finally decided I need a copy.

Any opinions on which version is the best? Original (1988)? The New Way Things Work (1998)? Or the most recent (2023)?
Tweet image Tweet image
Aug 22 · 36 · 2

Yay, my copy arrived today!

I decided to get a used copy of the original (1988)…and it turned out to be a signed by the author. 😄
Tweet image Tweet image
Sep 4 · 9
Interesting to think about this when teaching programming. Not much thought is given to exposing kids (people) to the process of creating “serious” stuff, or seeing an expert practitioner work.

(From “How Children Learn” by John Holt.)
Tweet image
Aug 21 · 97 · 13
Not a bad resume.
Tweet image
Aug 19 · 12 · 2
Compiler buds —

A startup I'm advising is hiring for a Staff Eng role, and interest and/or experience in PL implementation would be a huge plus.

They're tackling some super interesting problems at the intersection of AI and PL.

DMs are open if you'd like more details!
Tweet image Tweet image
Aug 9 · 33 · 8

More details on the company and role here: jobs.ashbyhq.com/luminai?utm_so…
Interesting. @cs50 , the intro to programming course at Harvard, starts by teaching C!

(And >50% of students have never taken CS before.)
Tweet image
Aug 4 · 5

@cs50 Here's the syllabus for the Fall 2024 course: cs50.harvard.edu/college/2024/f…
Aug 4 · 2
Wow. This is just an exceptionally clear conceptual explanation by @davidjmalan.

Timely since I'm in the middle of explaining the exact same concepts for @WasmGroundUp. twitter.com/7etsuo/status/…
Aug 4 · 14 · 3
Aug 4 · 2
If you're looking for a more conspicuous way to say "I'm a typography connoisseur", may I suggest the permille and per-ten-thousand glyphs?
Tweet image
Aug 4 · 7

wtf I just learned that the ✌️correct✌️ way to spell it is _connoisseur_, not like you would in modern French, but like the pre–1835 French spelling
Tweet image
Aug 4 · 3

Also props to the Wikipedia editor who chose this as the picture for en.wikipedia.org/wiki/Connoisse…
Tweet image
Aug 4 · 4
Fred Turner on techno-utopianism
Tweet image
Aug 4 · 6

From "Don’t Be Evil: Fred Turner on Utopias, Frontiers, and Brogrammers" (2017) worrydream.com/refs/Turner_F_…
Aug 4 · 1
I refer back to this post so often. They're some of my all-time favourite PL implementation papers. twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Nov 1
✍️ The influence of Self: dubroy.com/blog/self/

All about the Self programming language, the most influential language that most programmers have never heard of.
Tweet image
114 · 28
Aug 2 · 11 · 2
More bytecode VMs in surprising places… twitter.com/dubroy/status/…
Tweet image
Patrick Dubroy @dubroy · Apr 30
New blog post: Bytecode VMs in surprising places
dubroy.com/blog/bytecode-…

Most people probably associate bytecode VMs with general-purpose programming languages. But sometimes they appear in surprising places!
Tweet image
188 · 52
Aug 1 · 54 · 6

Tweet image
Aug 1 · 1 · 1
Tweet image
Aug 1 · 95 · 9
Oh man I'm tempted to go down the Oberon rabbit hole.

Such an impressive system. It's fun to think about what a modern take on this would look like.
Tweet image Tweet image
Aug 1 · 50 · 5

You can read the full book here: people.inf.ethz.ch/wirth/ProjectO…
Aug 1 · 5
✍️ Memories of some fantastic internships
dubroy.com/blog/memories-…

I wrote about some experiences I was lucky to have at the beginning of my career. It was great — every 8 months or so, I was thrown into the deep end and got to work on something I wasn't at all qualified for.
Tweet image
Jul 31 · 9 · 1
Amazing day:

1. Finish everything on your todo list by lunchtime.
2. Eat lunch.
3. Go biking. Go swimming. Read. Enjoy life.

Okay day:

1. Finish everything on your todo list by lunchtime.
2. Eat lunch.
3. Sit at your desk all afternoon, get a bit more done.

Choose wisely.
Tweet image
Jul 23 · 13 · 1
oh for gods sake
Tweet image
Jul 19 · 6

Here's the reasoning. I guess I buy it?
Tweet image
Jul 19 · 1
TIL: Installing Python type stubs
github.com/pdubroy/til/bl…
Tweet image Tweet image
TIL that REM in Basic is short for "remark"!

When I learned Basic (sometime in the 80s on the Atari 400 & 800) I'm pretty sure I was told it meant "remove", as in "remove this line from the program".
Tweet image
Jul 16 · 6 · 2

And yes, before you ask, I'm reading the Applesoft Basic Programmer's Reference Manual…why not?

ia601809.us.archive.org/13/items/apple…
Jul 16 · 2

Explaining multi-dimensional arrays using…eggs. And small change. 🤔
Tweet image
Jul 16 · 1
This is a lot of fun 😄 twitter.com/kotsoft/status…
Jul 14 · 3
Now that I've finally wrapped my head around NumPy, I decided to try making the visual explanation I wish I'd had.

Here's a first stab. WDYT? Is this useful? What's missing?
Tweet image
Jul 13 · 15 · 2
In a technical book, a small refactoring of the code can be a ton of work. Happy to get this one over with! twitter.com/WasmGroundUp/s…
Jul 12 · 1
My best advice for better technical communication is to *stop* doing two things:

- Introducing the topic with general facts
- "Tell 'em what you’re going to say, say it, then tell them what you said"
Tweet image
Jul 12 · 275 · 19

I've forever grateful to @timbray for coaching me out of the latter before my Google IO talk in 2011.

I still struggle to not do the "broad general statement" thing. When I need inspiration, I often look to @b0rk's writing.
Tweet image Tweet image
Jul 12 · 88 · 1

@timbray @b0rk @DanHollick is also great at this.
Tweet image
Jul 12 · 35

If you liked this, you might like my book at WebAssembly. No fluff — learn the low-level details by getting your hands dirty. wasmgroundup.com
Jul 13 · 10
When you think about it, isn't this viewpoint kinda funny?

We think it's important that `1 + 2 * 3` means `1 + (2 × 3)`, but otoh we're fine writing things like

2 / 3
radius**2
2 * x

rather than 2 ÷ 3, radius², 2x.
Tweet image
Jul 8 · 7 · 3

Related: it's fun reading the Python Matrix-SIG archives from 1995 (which eventually led to NumPy), and one of the first topics that came up was whether * should mean matrix multiplication, or element-wise multiplication: mail.python.org/pipermail/matr…
Tweet image
Jul 8 · 3
Just published a new chapter in @WasmGroundUp, a book about WebAssembly I'm writing with @warianoguerra.

This was a fun one. 😄 twitter.com/WasmGroundUp/s…
Jul 5 · 9 · 1
📝 New blog post —

Playing like a kid again: dubroy.com/blog/playing-l…
Tweet image Tweet image
Jul 1 · 26 · 2
TIL: PyScript
github.com/pdubroy/til/bl…
Tweet image
Jul 1 · 4
Wow. This is an incredible list of programming language implementation resources by @tekknolagi: bernsteinbear.com/pl-resources/

Compilers, runtimes, runtime optimization, "small JITs to help understand the basics", assembler libraries, small JIT IR libraries, …
Tweet image
Jul 1 · 346 · 52

@tekknolagi Even includes this very important category
Tweet image
Jul 1 · 8
TIL: Box blur
github.com/pdubroy/til/bl…
Tweet image Tweet image Tweet image
Jun 30 · 4
My superpower —

*listens to 5 seconds of podcast*

"oh the host is Canadian"
Jun 28 · 4
Oh man. I knew about Randy Smith (of Self fame)'s Alternate Reality Kit, but have never seen this video before. So much good stuff.

youtube.com/watch?v=w1HhPE…

via FoC Slack: history.futureofcoding.org/history/weekly…
Jun 24 · 12 · 2

Not to mention that it ends with this fabulous bit
Tweet image
Jun 24 · 1
This aesthetic.

patch-point.com
Tweet image Tweet image Tweet image Tweet image
Jun 13 · 13 · 1
Very glad to finally have Chapter 6 out the door! Getting closer and closer to being done. twitter.com/WasmGroundUp/s…
Jun 7 · 14
Kinda funny when you coin a term and then it acquires a totally different meaning after the fact
Tweet image
Jun 3 · 6

See also
Tweet image
Jun 3 · 1
New blog post: Taking Learning Seriously
dubroy.com/blog/taking-le…
Tweet image
May 30 · 126 · 13
TIL: Curvature combs
github.com/pdubroy/til/bl…
Tweet image Tweet image
May 23 · 11 · 1
Weeknotes: Weeks 19 & 20
github.com/pdubroy/weekno…
Tweet image
May 20 · 5
TIL(Python): Rye & Poetry
github.com/pdubroy/til/bl…
Tweet image Tweet image
May 16 · 5
Or: late binding is (currently) very underrated. twitter.com/jarredsumner/s…
May 12 · 7
TIL: Corner plot
github.com/pdubroy/til/bl…
Tweet image Tweet image
May 10 · 7 · 1
On my way to Amsterdam and then Delft for @Rust_NL!

Say hi if you want to chat about WebAssembly, parsers and compilers, CS education, useless side projects etc. etc.
May 6 · 6 · 1
Ok now I want this book. t.co/veICrnh1vK
Tweet image
May 6 · 2
Weeknotes: Week 18
github.com/pdubroy/weekno…
Tweet image Tweet image
May 6 · 7
Happy Sunday!
Tweet image Tweet image
May 5 · 13
Speaking of useless side projects…I made progress on my rasterizer.

After many hours of debugging my matrix / vector handling code, finally got my code for Chapter 7 ("Describing and rendering a scene") working!

gabrielgambetta.com/computer-graph…
Tweet image
May 4 · 38 · 2

Added a bit of camera control. Next up: clipping 😅
May 4 · 4
One of the best decisions I've made in the past few years is to stop treating side projects like work projects.

E.g.
- "doesn't something like that already exist?"
- "you shouldn't implement that yourself"

Both make sense at work, but wrong attitude for side projects imo.
May 3 · 110 · 8

Depends on your goals of course, but for me it's: have fun, learn stuff.

I get a lot more out thinking things like:
- "I wonder if I could make a toy version of that"
- "That shouldn't be too hard to build that from scratch"
May 3 · 12

(Galaxy brain is when you start applying this at work, too.)
May 3 · 7
I've been keeping an eye out for good introductory graphics and linear algebra material.

"3D Math Primer for Graphics and Game Development" looks absolutely fabulous, and it's all available online: gamemath.com/book/
Tweet image Tweet image
May 1 · 39 · 2

Thanks to @ZPostFacto and Ian Parberry for making this available!
twitter.com/ZPostFacto/sta…
May 1 · 1

@ZPostFacto Also, TIL that Americans pronounce it "primmer"
May 1 · 2
New blog post: Bytecode VMs in surprising places
dubroy.com/blog/bytecode-…

Most people probably associate bytecode VMs with general-purpose programming languages. But sometimes they appear in surprising places!
Tweet image
Apr 30 · 188 · 52
I read that "leaving Rust" post over the weekend, and today spent a few hours pairing on an egui-based Rust app.

I have to say — @zeddotdev with rust-analyzer and copilot makes for a pretty damn quick iteration cycle.
Apr 29 · 15

@zeddotdev Some things that stand out, as compared to TypeScript:

- dbg! is great (tho you could implement something like it in TS)
- ⭐ useful Debug representation of most objects
- If the code copilot generates compiles, higher chance that it works
Apr 29 · 4
Weeknotes: Week 17
github.com/pdubroy/weekno…
Tweet image Tweet image
Apr 28 · 3
Tweet image
Apr 28 · 1
Weeknotes: Week 16
github.com/pdubroy/weekno…

More progress on @WasmGroundUp, and learning geometry, graphics, and Rust with @gabrielgambetta's Computer Graphics from Scratch.
Tweet image Tweet image
Apr 21 · 12
This looks epic! Can't wait. twitter.com/cgingold/statu…
Apr 19 · 12
Today I'm working through "Computer Graphics from Scratch" in Rust: gabrielgambetta.com/computer-graph…

After 20 minutes debugging, refactoring, and then trying to get my code to compile

…you have no idea how happy I was to see this silly little triangle. 😊
Tweet image
Apr 15 · 135 · 8

Progress!
Apr 18 · 4
Weeknotes: Week 15
github.com/pdubroy/weekno…

More work on @WasmGroundUp, and jumping into 3D geometry and graphics.
Tweet image
Apr 14 · 8
Weeknotes: Week 13 (a bit late)
github.com/pdubroy/weekno…
Tweet image
Apr 14 · 3
Man I wish I had been shown this 👇 in high school instead of being taught SOHCAHTOA.
Tweet image
Apr 11 · 20 · 2
This makes me wonder — is a baseline JIT more complex than making a naive interpreter fast?

The answer's not obvious to me. Any papers or posts that tackle this question? twitter.com/awesomekling/s…
Apr 11 · 6 · 1

I mean, the implication here is that the answer is "yes, a baseline JIT is more complex" but I'd love to understand why.
Apr 11 · 1
For an upcoming project, I wanted to give myself a refresher / crash course on 3d graphics, geometry, etc.

Thanks to a reddit comment I discovered @cem_yuksel's lectures, which are an incredible resource: youtube.com/@cem_yuksel

Thanks Cem!
Apr 9 · 44 · 5
Why have I never seen a book with a "Debugging" section in the first chapter before? Honestly a great idea.

From "Fundamentals of Computer Graphics by @Peter_shirley et al.
Tweet image
Apr 7 · 67 · 10
Been looking at The Autodesk File today — so many fascinating details about the early days of Autodesk and the state of the software industry in the early 80s.

fourmilab.ch/autofile/
Tweet image
Apr 1 · 13 · 1

In 1982 it wasn't clear how a small, software-only company would be taxed. (!)
Tweet image
Apr 1 · 4

Autodesk was from the start a distributed company…which was a bit different back then:

"We will make cassette tapes of the meetings available…"
Tweet image Tweet image
Apr 1 · 1

AutoCAD was originally called MicroCAD, and they had a product called "Autodesk" that was basically…Notion?
Tweet image
Apr 1 · 4

John Walker did NOT like 8086.
Tweet image
Apr 1 · 1 · 1
Tweet image
Mar 31 · 22 · 2
Been working hard on this for the past few weeks, feels good to finally ship it! twitter.com/WasmGroundUp/s…
Mar 26 · 14 · 2
New blog post: Two little interpreters
dubroy.com/blog/two-littl…

A little project where I wrote a PEG interpreter in TypeScript in two different styles: tree-walking vs bytecode.

It didn't turn out the way I expected!
Tweet image
Mar 26 · 63 · 3
You know that feeling you read an article that does a wonderful job of articulating some vague thoughts that have been bouncing around in your head for a while?

You read it and go — YES! Exactly!

That feeling.

blog.nelhage.com/post/profilers…
Tweet image
Mar 25 · 10
Very old news (2014) but this is pretty cool — SQLite achieved an overall 50% speedup through hundreds of micro-optimizations.

mail-archive.com/sqlite-users@m…
Tweet image
Mar 25 · 34

If, like me, you thought about this for a bit and then went, "Wait, how is that possible?"

sqlite.org/cpu.html#perfo…
Tweet image
Mar 25 · 9
Weeknotes: Week 12
github.com/pdubroy/weekno…

Updates on @_ohmjs, @WasmGroundUp, and my little bytecode interpreter project.
Tweet image Tweet image Tweet image
Mar 22 · 6 · 1
Anyone using a WebAssembly subset for interesting things?

E.g. for something like eBPF (which disallows loops AFAIK), could you do minimal extra validation (no loop opcode allowed) but otherwise reuse existing Wasm toolchain?
Mar 22 · 6
I love programming.
Mar 22 · 30 · 4
Something we're trying to be careful of in @WasmGroundUp

Example code that uses poorly-chosen dummy values can be confusing.
Tweet image Tweet image
Mar 19 · 4 · 3
Unit tests as an art form

(See the whole thread) twitter.com/eigenbom/statu…
Mar 18 · 14 · 2
Worse is better strikes again twitter.com/GrantSlatton/s…
Mar 17 · 2
What are the earliest examples you've seen of the "cheat sheet" / "crib sheet" / "quick reference card" format of technical documentation?
Tweet image Tweet image
Mar 17 · 5 · 1

Reitman's "Streamlining your Documentation Using Quick References" (1988) suggests that they emerged in the 80s: dubroy.com/refs/Streamlin…
Mar 17 · 1
Trying something new — publishing my weeknotes publicly. Lmk if you find it useful/interesting!

2024, Week 11
github.com/pdubroy/weekno…
Tweet image Tweet image
Mar 15 · 18
New TIL: The symtable module in Python
github.com/pdubroy/til/bl…
Tweet image
Mar 15 · 2
Pascal was considered a big language back then (!) twitter.com/chrisshank23/s…
Tweet image
Mar 12 · 8

Here's (AFAIK) the complete syntactic grammar for Pascal, from the 1973 revised report.
Tweet image Tweet image Tweet image
Mar 12 · 1

(Whoops…the complete grammar, full stop. Lexical and syntactic.)
Compiler buds, need your opinion —

In @WasmGroundUp, we build a tiny compile-to-Wasm language. To keep the grammar simple, there's no arithmetic precedence.

Also, we match binary ops iteratively, not recursively (see `Expr` in img).

Q: Does the latter seem too non-standard?
Tweet image
Mar 11 · 4 · 1

@WasmGroundUp The problem is that doing it recursively in @_ohmjs requires at least a minimal discussion of left recursion.

(Below is a more typical way to handle binary operators in Ohm.)
Tweet image

@WasmGroundUp @_ohmjs Ok, turns out that @ziglang does it exactly this way. That makes me feel better.

(And TIL that the official Zig grammar is a PEG! github.com/ziglang/zig-sp…)
Tweet image
Mar 12 · 1
This doc is actually pretty interesting and well worth watching, even — or maybe *especially* — if you don't know much about eBPF.

Would love to see more documentaries like this! twitter.com/brendangregg/s…
Mar 11 · 2

You can watch it here: youtube.com/watch?v=Wb_vD3…
Mar 11 · 1
The complete syntax of Lua.
Tweet image
Mar 11 · 35 · 3
A wonderful book that teaches you to build a basic but complete web browser in a couple thousand lines of Python.

Feels spiritually similar to @WasmGroundUp. twitter.com/awesomekling/s…
Mar 8 · 12
After getting sick the first week of January, I'm now at 8+ weeks of:

• Serious exercise nearly every day
• Strength training 2x per week

…and I can't recommend it enough.

Seriously y'all, give it a try!!
Tweet image
Mar 7 · 24 · 1

Somewhat surprisingly (to me at least), it's the mental health benefits that stick out the most.
Mar 7 · 10
New TIL: esbuild dev server
github.com/pdubroy/til/bl…
Tweet image Tweet image
Mar 7 · 4
This is fun — Flexbox Froggy by @thomashpark is a game that helps you learn CSS flexbox concepts.

flexboxfroggy.com
Mar 5 · 1
Old TIL (from Nov 2023): Finding deoptimizations
github.com/pdubroy/til/bl…
Tweet image
Mar 2 · 7
I get nostalgic looking at the annotated, single-page Underscore.js source: underscorejs.org/docs/underscor…

Hard to think of another piece of code that I've consulted as often.

Haven't looked at it in years, but it was indispensable in the pre-ES6 days.
Tweet image
Mar 2 · 34 · 1
I'm happy to be on the the PC for Onward! Papers 2024.

Send us your grand visions, wild ideas, the unpolished gemstones of your cerebral mine: 2024.splashcon.org/track/splash-2… twitter.com/jonathoda/stat…
Tweet image
Feb 29 · 22 · 3
I'd love this.

Part of the long tail of ideas that were in Engelbart's 1968 demo, and yet…we still don't have today. twitter.com/thorstenball/s…
Tweet image
Feb 29 · 31 · 4

Tweet image
Feb 29 · 2
Feb 24 · 5
New TIL: Run-time code generation in WebAssembly
github.com/pdubroy/til/bl…
Tweet image Tweet image
Feb 22 · 42 · 8
Recent obsession: "genres" in technical writing.

Is there a better word for this?

What I mean is — books, blog posts, etc. that belong to a recognizable category/style, with shared characteristics and particular pedagogical POV.

A thread with some of my favourite examples…
Feb 20 · 13 · 5

"X in One Weekend" / "The Next Week" / "The Rest of Your Life"

twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · May 23
Every subject should have a series like this.
Tweet image
321 · 28
Feb 20 · 3

"Build Your Own X" — get a deeper understanding of a certain tool/library by building a toy implementation from scratch.

build-your-own.org/redis/
pomb.us/build-your-own…
Feb 20 · 1

"Gems" — small, bite-sized bits of practical knowledge.

The original (AFAIK) was the "Graphics Gems" series: glassner.com/portfolio/grap…, but it's inspired others:

GPU Gems, Game Programming Gems, etc.

Cheat sheets!

(Maybe more of a medium than a genre.)

simon.html5.org/dump/html5-can…
github.com/gendx/pdf-chea…
Tweet image Tweet image
Feb 20 · 1 · 1

Of course there many famous books series (dummies, 24 hours, etc.) but those are more of a marketing thing than a true genre imo.
Feb 20 · 1
Coming back to this again.

I'm curious what people mean when they talk about "a small set of orthogonal primitives".

Specifically:
1️⃣ What does "primitive" mean to you.
2️⃣ What does "orthogonal" mean to you.

(Polls in replies.) twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Nov 7
I keep thinking about this.

If "a small set of orthogonal primitives" is good, why does *no* popular language have this?

Possible explanations:
1️⃣ It's not good
2️⃣ It's good, but doesn't drive adoption
3️⃣ Number of primitives should be "just right" (not too big, not too small) twitter.com/dubroy/status/…
43 · 6
Feb 18 · 15 · 1

A "primitive" means…

1️⃣ Syntactic features of the language *only*
2️⃣ Features (e.g. functions/classes) in the core library
3️⃣ Both
4️⃣ Something else (reply with details)

Now the meaning of "orthogonal"…

Do you consider functions and variable declarations to be orthogonal features?

Do you consider classes and functions to be orthogonal?

Do you consider "if" statements and "while" loops to be orthogonal?

Do you consider dictionaries and arrays to be orthogonal?
Whoah…somehow I'd never seen a picture of this machine before. twitter.com/okpasquale/sta…
Feb 18 · 13 · 3

The bevel…the stipple…
Tweet image
Feb 18 · 2
Another new TIL: A precise definition of "data race"
github.com/pdubroy/til/bl…
Tweet image
Feb 17 · 6 · 1
New TIL: Authentication in Playwright scripts
github.com/pdubroy/til/bl…
Tweet image Tweet image
Feb 17 · 5
I'm curious about the history of 2D graphics APIs.

I'm assuming many (eg Canvas) can be traced back to PostScript, and ultimately to Warnock & Wyatt's "A Device Independent Graphics Imaging Model for Use with Raster Devices": dl.acm.org/doi/pdf/10.114…

Anyone know more about this?
Tweet image
Feb 14 · 23 · 3

An early Cairo whitepaper calls out the PostScript influence. (It was called Xr back then — chi-rho.)

cworth.org/cworth/papers/…
Tweet image

And Apple’s Quartz 2D is based on the PDF 1.4 imaging model, which of course is derived from PostScript.

web.archive.org/web/2004091707…
Tweet image
Feb 15 · 1

The Secret Origin of SVG has some interesting context: w3.org/Graphics/SVG/W…
Tweet image
Feb 15 · 5
Wow. It's been a while since I used @playwrightweb, and I just discovered UI mode: playwright.dev/docs/test-ui-m…

I keep being impressed by how much that team is doing right. So much useful stuff that seems to just work — and is well-documented.
Tweet image
Feb 14 · 4
Reminder for my friends on the west coast.
twitter.com/dubroy/status/…
Patrick Dubroy @dubroy · Feb 12
New blog post

Casual programming
dubroy.com/blog/casual-pr…
Tweet image
103 · 7
Feb 12 · 3
New blog post

Casual programming
dubroy.com/blog/casual-pr…
Tweet image
Feb 12 · 103 · 7

This definition of end-user programming, from @amyjko et al, is pretty close:

(From "The State of the Art in End-User Software Engineering": kilthub.cmu.edu/articles/journ…)
Tweet image
Feb 12 · 3 · 1
More progress on my Scratch-inspired JavaScript library.
Feb 8 · 5 · 1

Here's the code for this demo.
Tweet image
Feb 8 · 2
Finally
Tweet image
Feb 8 · 7
A weird, pernicious thing about software is that so many projects are started in the hopes of becoming huge.

"It'll be the next React" or "It'll be a $10B company some day"

It can lead to some weird choices.
Feb 7 · 7
New TIL: Pareto frontier
github.com/pdubroy/til/bl…
Tweet image
Feb 7 · 14 · 1
Dumb thought I had today — is there a sunk-cost-fallacy *fallacy*?

In a certain crowd people are quick to say "well, that's a sunk cost". And it's easy to make the mental leap that the existing investment — especially if it's just *time* — should be written off. twitter.com/devonzuegel/st…
Tweet image
Feb 4 · 4
New TIL: Bun dev server
github.com/pdubroy/til/bl…
Tweet image Tweet image
Feb 3 · 2
Oh man, Scratch's loop constructs are even weirder than I realized.

I thought there was always a 1-frame delay between iterations. Turns out that's not quite true?

Notice that without the "move" block inside the loop, the variable updates instantaneously.
Feb 2 · 1

Aha!

While executing scripts it "keeps a note of when one of them executed a block that can (potentially) change something on-screen"

"If it did NOT execute such a block, OR if it is in turbo mode, then Scratch will NOT (usually) wait for the next screen refresh"
Tweet image

Why do I care? Well, just for fun I'm trying to build a little JS library that implements Scratch's semantics as closely as possible.

(There are many like it, but this one is mine. 🤗)
Tweet image
Feb 2 · 3

The `yields` and `function *`s are a bit clunky.

If I'm going for a close mapping to Scratch, rather than something like looks like idiomatic JS, maybe a fluent API is nicer?
Tweet image
Feb 2 · 1

Progress!

Yields inside a `repeat` are actually working properly now: if you make any changes to the scene, the next iteration doesn't run until the following frame.

(Will release something soon!)
Tweet image
Feb 7 · 1

I also wrote up a TIL about Scratch's looping semantics
github.com/pdubroy/til/bl…
Feb 7 · 1
Oh man — I was trying to figure out why a basic Bun web server seemed super slow.

Realized that I turned on throttling in the dev tools like…weeks ago? Months maybe? And it's been like this every since. 🤦‍♂️
Tweet image
Feb 2 · 25
Copy-and-patch is a neat technique. This post gives a great overview: sillycross.github.io/2023/05/12/202…

The results are impressive too! twitter.com/tekknolagi/sta…
Tweet image
Jan 30 · 9 · 2
Ohhh, this looks interesting. Property-based testing is one of those things that I feel like I really *should* be doing more.

Also, I'm biased, but I love to see good qualitative research in software engineering & HCI. twitter.com/kc_srk/status/…
Jan 28 · 9
Been finding Ohm feature so useful every time I work on @WasmGroundUp. twitter.com/_ohmjs/status/…
Jan 26 · 7
I'm so used to the weird scrollbar behavior in the Chrome dev tools, how did I never realize it's a bug.

The thumb should stay under the cursor when you drag!
Jan 26 · 4

Here's a regular scroll bar in Chrome, which behaves correctly.

Don't even get me started on the user-hostile scrollbars in macOS that make it nearly impossible to grab the thumb when there's long content.
TIL: Chrome dev tools "Framework Ignore List" includes /node_modules/ by default.

If you're using Vite in dev mode, you won't be able to step into code from npm deps.

Wrote this up to hopefully prevent others from wasting as much time on this as I did:
github.com/pdubroy/til/bl…
Tweet image
Jan 25 · 6
Love this! Feedforward is still such an underused design technique. twitter.com/redblobgames/s…
Jan 23 · 15
New blog post:

Thoughts on Scratch
dubroy.com/blog/thoughts-…

Some reflections after spending 90 minutes teaching @scratch to a group of 8–10 year olds.
Tweet image
Jan 22 · 32 · 5

@scratch Ran my 3rd session today.

The most disappointing thing about Scratch is how much distraction there is on the web site. This is just way too tempting for some kids.
Tweet image
Jan 22 · 4

@scratch Compare this to @p5xjs, which has a curated showcase: showcase.p5js.org/#/2022-All

I'd rather see Scratch do something similar. The current Explore page feels like it's designed to maximise engagement, not learning objectives.
Jan 22 · 2
Really enjoyed @ryanjfleury's series of articles on immediate-mode UI: rfleury.com/p/ui-series-ta….

It gave me a much better understanding of the design space for immediate-mode GUIs and how to handle some more complex cases.
Jan 21 · 56 · 5
Still love this technique from Igarashi et al. There are few HCI or graphics papers that reference as often as this one.
youtube.com/watch?v=sdvAqY…
Jan 16 · 3

After all of these years, I'm finally learning @scratch.

Gotta say, I'm pretty proud that I managed to make this.

(And yes I know I have a bug in my scoring logic 😆)
Jan 15 · 10
Curious — how do y'all prefer to consume long-form, podcast-style interviews?

(Say for stuff that's about an hour in length.)
Jan 9 · 1

If you answered "it depends", would love a reply to get more details.
Tweet image
Patrick Dubroy @dubroy · Dec 28
So I signed up to run a programming project at my kids' school.

What are your favourite activities/resources for teaching programming to kids between 8 and 10?

(I'm re-reading Mindstorms right now.)
21 · 5
Jan 5 · 1
No tumblr lives rent-free in my head the way accidentallyquadratic.tumblr.com does
Jan 5 · 2