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.
These days, you can find me on Bluesky or Mastodon.
By year
- 2025 33 posts
- 2024 203
- 2023 97
- 2022 91
- 2021 89
- 2020 26
- 2019 0
- 2018 6
- 2017 56
- 2016 108
- 2015 71
- 2014 197
- 2013 180
- 2012 160
- 2011 162
- 2010 171
- 2009 238
- 2008 101
…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/…
What's fun? What are you excited about? What makes you feel good? etc. twitter.com/charliermarsh/…
"dimly-seen and poorly-documented code gremlins called cycle-eaters"
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…
The end is in sight… 😅 twitter.com/WasmGroundUp/s…
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…
Many of these things end up as a TIL post on github.com/pdubroy/til twitter.com/oznova_/status…
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…
This one's a doozy…memory allocation, string representations, etc. twitter.com/WasmGroundUp/s…
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.
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…
en.wikipedia.org/wiki/25_de_Abr…
American Bridge Company is the GOAT
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!
From @replayio: "A new direction"
→ blog.replay.io/a-new-direction
Kudos to @jasonlaster11 and team for publishing this!
@replayio @jasonlaster11 The Zaplib post-mortem from @stevekrouse and @JanPaul123 is another interesting one: twitter.com/stevekrouse/st…
@replayio @jasonlaster11 @stevekrouse @JanPaul123 Also ❤️ that this little note turned into @ValDotTown!
@replayio @jasonlaster11 @stevekrouse @JanPaul123 Can't forget the Muse retrospective by @_adamwiggins_: adamwiggins.com/muse-retrospec….
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"
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"
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."
"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."
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.
Also this is probably the most concise explanation of the "fail fast" principle that I've ever read.
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?
Is Joel's "The Absolute Minimum…" (joelonsoftware.com/2003/10/08/the…) still a reasonable choice? Or is there something better these days?
This is really interesting.
More on UserTalk (from ~1997) here: web.archive.org/web/2004081814… twitter.com/msimoni/status…
More on UserTalk (from ~1997) here: web.archive.org/web/2004081814… twitter.com/msimoni/status…
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/…
The whole post ("Fantastic Learning Resources") is worth a read: matklad.github.io/2023/08/06/fan… twitter.com/zack_overflow/…
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…
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…
PSA: Like many of you, I'm mostly over here these days: bsky.app/profile/dubroy…
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/…
If you haven't signed up yet, what are you waiting for? lu.ma/je6q8qzq twitter.com/dubroy/status/…
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/…
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/…
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."
"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."
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/…
It's about running bytecode interpreters on the GPU. It'll be fun, come join us! twitter.com/dubroy/status/…
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/…
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/…
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/…
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/…
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/…
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/…
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
~~Vibes~~
Programming languages, environments, systems
Databases
Operating systems
Virtual machines
{Handmade, local-first, lo-fi, home cooked} software
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…
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…
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.
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.
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?
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?
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)
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)
Original article is here: cacm.acm.org/research/halid…
And yes, it's CACM but still. (Also, the Halide papers themselves are similar.)
And yes, it's CACM but still. (Also, the Halide papers themselves are similar.)
Author: “The book has over 200 5-star reviews on Amazon!”
The reviews:
The reviews:
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/…
"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/…
oh hey i'm over here too: bsky.app/profile/dubroy…
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…
Some gems in here if you're interested in programming, learning, growth, … twitter.com/thorstenball/s…
Graphics programming is the best, I love when my debug output is accidentally beautiful.
“std::string is responsible for almost half of all allocations in the Chrome browser…be careful how you use it” twitter.com/jakubtomsu_/st…
Now that's an inspiring CV. twitter.com/splashcon/stat…
Seriously. In case you thought you needed a PhD to do impactful compiler/VM work.
Still think about this every time I'm running benchmarks. twitter.com/dubroy/status/…
If, like me, you thought about this for a bit and then went, "Wait, how is that possible?"
sqlite.org/cpu.html#perfo…
sqlite.org/cpu.html#perfo…
I still think about this a lot. twitter.com/dubroy/status/…
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.
Knuth on reusable code:
"re-editable code is much, much better"
"re-editable code is much, much better"
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…
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…
Internet Archive is down😭
Nothing like a service going down to remind you how much you rely on it. twitter.com/brewster_kahle…
Nothing like a service going down to remind you how much you rely on it. twitter.com/brewster_kahle…
I love this! Why have I never seen a diagram like this before?
(It's "Box2D's architecture, concepts, and terminologies" from the LÖVE documentation: love2d.org/wiki/love.phys…)
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
~~Vibes~~
Programming languages, environments, systems
Databases
Operating systems
Virtual machines
{Handmade, local-first, lo-fi, home cooked} software
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.
"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.
I guess "tamagotchi tooling" is the opposite of cold-blooded software.
chrisdone.com/posts/tamagotc… twitter.com/dubroy/status/…
chrisdone.com/posts/tamagotc… twitter.com/dubroy/status/…
"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…
From @maxbittker's "My Creative Research Process"
maxbittker.com/creative-resea…
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-…
"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-…
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.
"Next" shows *older* commits.
"Previous" shows *newer*.
Would be better if they were labeled that way imo.
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…
Kay & Ingalls
Metcalfe & Boggs
McCarthy & Russell
etc twitter.com/ItaiYanai/stat…
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/…
pdubroy.github.io/200andchange/
Want to add a new example or help annotate an existing one? PRs welcome! twitter.com/dubroy/status/…
I kinda want to make a site that is just collects great examples like this — maybe annotate a la underscore underscorejs.org/docs/underscor…
Nice, woke up to a gem from @tekknolagi
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…
This week I discovered Superfine by Jorge Bucaran (creator of Hyperapp) which is just that: github.com/jorgebucaran/s…
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/…
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/…
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!
→ 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!
I kinda want to make a site that is just collects great examples like this — maybe annotate a la underscore underscorejs.org/docs/underscor…
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!
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!
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…"
"Don't implement your own GUI library, even as a hobby project. It's extremely hard to get right…"
Remember folks, you don't have to justify your side projects to anyone! twitter.com/dubroy/status/…
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.
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.
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…"
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…"
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…
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…
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?
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).
Great tooling, good validation, and you can still debug your shader code in the native tools (e.g. XCode).
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.
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.
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.
It's both recent and highly cited…hardly a dark corner of academia.
Love it! Looks like a great set of resources for learning graphics programming. twitter.com/kenpex/status/…
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/…
>1000 lines of C++ for "hello triangle" 🫠
…here's the one from the official Vulkan samples: github.com/KhronosGroup/V… twitter.com/dubroy/status/…
TIL: Debugging shaders
→ github.com/pdubroy/til/bl…
I finally figured out some decent workflows for debugging shaders!
→ github.com/pdubroy/til/bl…
I finally figured out some decent workflows for debugging shaders!
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?)
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?)
TIL: Debugging shaders
→ github.com/pdubroy/til/bl…
I finally figured out some decent workflows for debugging shaders!
→ github.com/pdubroy/til/bl…
I finally figured out some decent workflows for debugging shaders!
Graphics programming is just hours and hours of misery and then getting ridiculously excited when something like this appears on your screen
"Afterwards, we came to refer to certain types of accomplishments as 'black triangles'"
rampantgames.com/blog/?p=7745
rampantgames.com/blog/?p=7745
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.
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.
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.
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
Just me and my 847 closest, most trusted partners
I love little things like this — and the tools (like @ValDotTown, @scratch, etc.) that make them possible. twitter.com/stevekrouse/st…
@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.
TIL: Shader performance profiling on macOS
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
Man, programming shaders is a very different world…
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…
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…
💯 agree. Personally this one's a big one for me. twitter.com/eatonphil/stat…
That's why I started my own TIL repo for example, inspired by @simonw.
I wrote more about that here. twitter.com/dubroy/status/…
I wrote more about that here. twitter.com/dubroy/status/…
New blog post: Taking Learning Seriously
→ dubroy.com/blog/taking-le…
→ dubroy.com/blog/taking-le…
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)
(Yes I'm the guy at the party who won't shut up about traditional balsamic vinegar)
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"
"Software that says something unique about the world"
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.
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.
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.
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.
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.
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.
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.
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.
Dang — can't believe I've never heard of this paper before!
clear.rice.edu/comp512/Lectur… twitter.com/marksaroufim/s…
clear.rice.edu/comp512/Lectur… twitter.com/marksaroufim/s…
Also why did papers look so much cooler back then
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…
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…
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.
So many of the most thoughtful and interesting people I run across on the internet turn out to be connected to RC.
@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.
The whole community is a powerful counterforce to the rampant cynicism (and other -isms 😁) you encounter nearly everywhere else.
Also, if you haven’t seen it before, it’s worth reading about RC’s social rules: recurse.com/social-rules
Really enjoyed "About the IMGUI paradigm" by @OCurnut on the Dear ImGui wiki: github.com/ocornut/imgui/…
It's a good summary of the history, and an attempt to defined and clarify what exactly immediate-mode GUI *is*.
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/…
Plus I can't help but think Niklaus Wirth would approve.
wingolog.org/archives/2024/…
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…
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…
I've heard this many times (and in many forms) from Alan Kay, this description of what science is always makes me smile.
From "Etoys and SimStories" (1997): tinlizzie.org/VPRIPapers/hc_…
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
🔥
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
🔥
A good observation, and I ❤️ the description "very computer-minded" twitter.com/rsnous/status/…
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/…
"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/…
Ooh, love this term: "ghost knowledge".
I definitely know the concept but hadn't heard this term for it before.
I definitely know the concept but hadn't heard this term for it before.
From drossbucket.com/2021/06/30/hac…, via @its_bvisness
@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/…
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
🔥
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
🔥
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…
"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…
💯 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…
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…
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)
"It's like X…but *actually designed*."
(I may have picked this up from @warianoguerra)
I like this little piece of advice from matklad: "Push Ifs Up and Fors Down"
matklad.github.io/2023/11/15/pus…
matklad.github.io/2023/11/15/pus…
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…
IMO the exact opposite is a better rule of thumb: "push complexity upwards".
See also Functional Core / Imperative Shell: destroyallsoftware.com/screencasts/ca…
Great stuff. twitter.com/thorstenball/s…
Revolutionary! twitter.com/warianoguerra/…
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/…
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)?
Any opinions on which version is the best? Original (1988)? The New Way Things Work (1998)? Or the most recent (2023)?
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. 😄
I decided to get a used copy of the original (1988)…and it turned out to be a signed by the author. 😄
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.)
(From “How Children Learn” by John Holt.)
Not a bad resume.
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!
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!
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.)
(And >50% of students have never taken CS before.)
@cs50 Here's the syllabus for the Fall 2024 course: cs50.harvard.edu/college/2024/f…
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/…
Timely since I'm in the middle of explaining the exact same concepts for @WasmGroundUp. twitter.com/7etsuo/status/…
Sunday funday. twitter.com/WasmGroundUp/s…
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?
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
Also props to the Wikipedia editor who chose this as the picture for en.wikipedia.org/wiki/Connoisse…
Fred Turner on techno-utopianism
From "Don’t Be Evil: Fred Turner on Utopias, Frontiers, and Brogrammers" (2017) worrydream.com/refs/Turner_F_…
I refer back to this post so often. They're some of my all-time favourite PL implementation papers. twitter.com/dubroy/status/…
✍️ 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.
All about the Self programming language, the most influential language that most programmers have never heard of.
More bytecode VMs in surprising places… twitter.com/dubroy/status/…
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!
→ dubroy.com/blog/bytecode-…
Most people probably associate bytecode VMs with general-purpose programming languages. But sometimes they appear in surprising places!
Good stuff twitter.com/_feynon/status…
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.
Such an impressive system. It's fun to think about what a modern take on this would look like.
You can read the full book here: people.inf.ethz.ch/wirth/ProjectO…
✍️ 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.
→ 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.
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.
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.
oh for gods sake
Here's the reasoning. I guess I buy it?
TIL: Installing Python type stubs
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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".
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".
And yes, before you ask, I'm reading the Applesoft Basic Programmer's Reference Manual…why not?
ia601809.us.archive.org/13/items/apple…
ia601809.us.archive.org/13/items/apple…
Explaining multi-dimensional arrays using…eggs. And small change. 🤔
This is a lot of fun 😄 twitter.com/kotsoft/status…
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?
Here's a first stab. WDYT? Is this useful? What's missing?
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…
This too. twitter.com/thorstenball/s…
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"
- Introducing the topic with general facts
- "Tell 'em what you’re going to say, say it, then tell them what you said"
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.
I still struggle to not do the "broad general statement" thing. When I need inspiration, I often look to @b0rk's writing.
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
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.
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.
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…
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…
This was a fun one. 😄 twitter.com/WasmGroundUp/s…
TIL: PyScript
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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, …
Compilers, runtimes, runtime optimization, "small JITs to help understand the basics", assembler libraries, small JIT IR libraries, …
@tekknolagi Even includes this very important category
TIL: Box blur
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
My superpower —
*listens to 5 seconds of podcast*
"oh the host is Canadian"
*listens to 5 seconds of podcast*
"oh the host is Canadian"
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…
youtube.com/watch?v=w1HhPE…
via FoC Slack: history.futureofcoding.org/history/weekly…
Not to mention that it ends with this fabulous bit
Very glad to finally have Chapter 6 out the door! Getting closer and closer to being done. twitter.com/WasmGroundUp/s…
Kinda funny when you coin a term and then it acquires a totally different meaning after the fact
See also
New blog post: Taking Learning Seriously
→ dubroy.com/blog/taking-le…
→ dubroy.com/blog/taking-le…
TIL: Curvature combs
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
TIL: JAX
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
Weeknotes: Weeks 19 & 20
→ github.com/pdubroy/weekno…
→ github.com/pdubroy/weekno…
TIL(Python): Rye & Poetry
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
Or: late binding is (currently) very underrated. twitter.com/jarredsumner/s…
TIL: Corner plot
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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.
Say hi if you want to chat about WebAssembly, parsers and compilers, CS education, useless side projects etc. etc.
Ok now I want this book. t.co/veICrnh1vK
Weeknotes: Week 18
→ github.com/pdubroy/weekno…
→ github.com/pdubroy/weekno…
Happy Sunday!
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…
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…
Added a bit of camera control. Next up: clipping 😅
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.
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.
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"
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"
(Galaxy brain is when you start applying this at work, too.)
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/
"3D Math Primer for Graphics and Game Development" looks absolutely fabulous, and it's all available online: gamemath.com/book/
@ZPostFacto Also, TIL that Americans pronounce it "primmer"
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!
→ dubroy.com/blog/bytecode-…
Most people probably associate bytecode VMs with general-purpose programming languages. But sometimes they appear in surprising places!
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.
I have to say — @zeddotdev with rust-analyzer and copilot makes for a pretty damn quick iteration cycle.
@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
- 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
Weeknotes: Week 17
→ github.com/pdubroy/weekno…
→ github.com/pdubroy/weekno…
TIL: Simplex
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
Weeknotes: Week 16
→ github.com/pdubroy/weekno…
More progress on @WasmGroundUp, and learning geometry, graphics, and Rust with @gabrielgambetta's Computer Graphics from Scratch.
→ github.com/pdubroy/weekno…
More progress on @WasmGroundUp, and learning geometry, graphics, and Rust with @gabrielgambetta's Computer Graphics from Scratch.
This looks epic! Can't wait. twitter.com/cgingold/statu…
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. 😊
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. 😊
Progress!
Weeknotes: Week 15
→ github.com/pdubroy/weekno…
More work on @WasmGroundUp, and jumping into 3D geometry and graphics.
→ github.com/pdubroy/weekno…
More work on @WasmGroundUp, and jumping into 3D geometry and graphics.
Weeknotes: Week 13 (a bit late)
→ github.com/pdubroy/weekno…
→ github.com/pdubroy/weekno…
Man I wish I had been shown this 👇 in high school instead of being taught SOHCAHTOA.
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…
The answer's not obvious to me. Any papers or posts that tackle this question? twitter.com/awesomekling/s…
I mean, the implication here is that the answer is "yes, a baseline JIT is more complex" but I'd love to understand why.
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!
Thanks to a reddit comment I discovered @cem_yuksel's lectures, which are an incredible resource: youtube.com/@cem_yuksel
Thanks Cem!
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.
From "Fundamentals of Computer Graphics by @Peter_shirley et al.
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/
fourmilab.ch/autofile/
In 1982 it wasn't clear how a small, software-only company would be taxed. (!)
Autodesk was from the start a distributed company…which was a bit different back then:
"We will make cassette tapes of the meetings available…"
"We will make cassette tapes of the meetings available…"
AutoCAD was originally called MicroCAD, and they had a product called "Autodesk" that was basically…Notion?
John Walker did NOT like 8086.
Been working hard on this for the past few weeks, feels good to finally ship it! twitter.com/WasmGroundUp/s…
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!
→ 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!
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…
You read it and go — YES! Exactly!
That feeling.
blog.nelhage.com/post/profilers…
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…
mail-archive.com/sqlite-users@m…
If, like me, you thought about this for a bit and then went, "Wait, how is that possible?"
sqlite.org/cpu.html#perfo…
sqlite.org/cpu.html#perfo…
Weeknotes: Week 12
→ github.com/pdubroy/weekno…
Updates on @_ohmjs, @WasmGroundUp, and my little bytecode interpreter project.
→ github.com/pdubroy/weekno…
Updates on @_ohmjs, @WasmGroundUp, and my little bytecode interpreter project.
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?
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?
I love programming.
Something we're trying to be careful of in @WasmGroundUp —
Example code that uses poorly-chosen dummy values can be confusing.
Example code that uses poorly-chosen dummy values can be confusing.
Worse is better strikes again twitter.com/GrantSlatton/s…
What are the earliest examples you've seen of the "cheat sheet" / "crib sheet" / "quick reference card" format of technical documentation?
Reitman's "Streamlining your Documentation Using Quick References" (1988) suggests that they emerged in the 80s: dubroy.com/refs/Streamlin…
Trying something new — publishing my weeknotes publicly. Lmk if you find it useful/interesting!
2024, Week 11
→ github.com/pdubroy/weekno…
2024, Week 11
→ github.com/pdubroy/weekno…
New TIL: The symtable module in Python
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
Pascal was considered a big language back then (!) twitter.com/chrisshank23/s…
Here's (AFAIK) the complete syntactic grammar for Pascal, from the 1973 revised report.
(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?
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?
@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.)
(Below is a more typical way to handle binary operators in Ohm.)
@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…)
(And TIL that the official Zig grammar is a PEG! github.com/ziglang/zig-sp…)
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…
Would love to see more documentaries like this! twitter.com/brendangregg/s…
You can watch it here: youtube.com/watch?v=Wb_vD3…
The complete syntax of Lua.
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…
Feels spiritually similar to @WasmGroundUp. twitter.com/awesomekling/s…
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!!
• Serious exercise nearly every day
• Strength training 2x per week
…and I can't recommend it enough.
Seriously y'all, give it a try!!
Somewhat surprisingly (to me at least), it's the mental health benefits that stick out the most.
New TIL: esbuild dev server
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
This is fun — Flexbox Froggy by @thomashpark is a game that helps you learn CSS flexbox concepts.
→ flexboxfroggy.com
→ flexboxfroggy.com
Old TIL (from Nov 2023): Finding deoptimizations
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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.
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.
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…
Send us your grand visions, wild ideas, the unpolished gemstones of your cerebral mine: 2024.splashcon.org/track/splash-2… twitter.com/jonathoda/stat…
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…
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…
Oooh, love this. twitter.com/ryanjfleury/st…
New TIL: Run-time code generation in WebAssembly
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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…
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…
Every subject should have a series like this.
"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…
build-your-own.org/redis/
pomb.us/build-your-own…
"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.
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…
(Maybe more of a medium than a genre.)
simon.html5.org/dump/html5-can…
github.com/gendx/pdf-chea…
Of course there many famous books series (dummies, 24 hours, etc.) but those are more of a marketing thing than a true genre imo.
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/…
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/…
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/…
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/…
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)
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 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…
The bevel…the stipple…
Another new TIL: A precise definition of "data race"
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
New TIL: Authentication in Playwright scripts
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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?
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?
An early Cairo whitepaper calls out the PostScript influence. (It was called Xr back then — chi-rho.)
cworth.org/cworth/papers/…
cworth.org/cworth/papers/…
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…
web.archive.org/web/2004091707…
The Secret Origin of SVG has some interesting context: w3.org/Graphics/SVG/W…
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.
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.
Reminder for my friends on the west coast.
twitter.com/dubroy/status/…
twitter.com/dubroy/status/…
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…)
(From "The State of the Art in End-User Software Engineering": kilthub.cmu.edu/articles/journ…)
More progress on my Scratch-inspired JavaScript library.
Here's the code for this demo.
Finally
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.
"It'll be the next React" or "It'll be a $10B company some day"
It can lead to some weird choices.
New TIL: Pareto frontier
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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…
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…
New TIL: Bun dev server
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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.
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.
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"
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"
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. 🤗)
(There are many like it, but this one is mine. 🤗)
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?
If I'm going for a close mapping to Scratch, rather than something like looks like idiomatic JS, maybe a fluent API is nicer?
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!)
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!)
I also wrote up a TIL about Scratch's looping semantics
→ github.com/pdubroy/til/bl…
→ github.com/pdubroy/til/bl…
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. 🤦♂️
Realized that I turned on throttling in the dev tools like…weeks ago? Months maybe? And it's been like this every since. 🤦♂️
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…
The results are impressive too! twitter.com/tekknolagi/sta…
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/…
Also, I'm biased, but I love to see good qualitative research in software engineering & HCI. twitter.com/kc_srk/status/…
Been finding Ohm feature so useful every time I work on @WasmGroundUp. twitter.com/_ohmjs/status/…
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!
The thumb should stay under the cursor when you drag!
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…
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…
Love this! Feedforward is still such an underused design technique. twitter.com/redblobgames/s…
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.
Thoughts on Scratch
→ dubroy.com/blog/thoughts-…
Some reflections after spending 90 minutes teaching @scratch to a group of 8–10 year olds.
@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.
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.
@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.
I'd rather see Scratch do something similar. The current Explore page feels like it's designed to maximise engagement, not learning objectives.
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.
It gave me a much better understanding of the design space for immediate-mode GUIs and how to handle some more complex cases.
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…
youtube.com/watch?v=sdvAqY…
Original paper: graphics.stanford.edu/courses/cs468-…
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 😆)
Gotta say, I'm pretty proud that I managed to make this.
(And yes I know I have a bug in my scoring logic 😆)
Curious — how do y'all prefer to consume long-form, podcast-style interviews?
(Say for stuff that's about an hour in length.)
(Say for stuff that's about an hour in length.)
If you answered "it depends", would love a reply to get more details.
Excited. twitter.com/dubroy/status/…
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.)
What are your favourite activities/resources for teaching programming to kids between 8 and 10?
(I'm re-reading Mindstorms right now.)
No tumblr lives rent-free in my head the way accidentallyquadratic.tumblr.com does