Twitter Archive: 2022

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

…or see popular posts.

2022

Hoo boy. Didn't think it would come to this.
Tweet image
December 16, 2022 · 8 · 1
Thanks for burying the lede, Wikipedia.

This would have been great to know before I spent hours discovering all the edge cases myself…
Tweet image
November 26, 2022 · 3

I feel like this is true for a lot “textbook” algorithms. Ten lines of pseudocode, 200 lines of actual code to cover all the edge cases and practical aspects (overflow, etc.)
November 26, 2022 · 3
An interesting side effect of using a code formatter: learning new syntax.

TIL about Swift's key-path expressions thanks to swiftformat (cc @nicklockwood)
Tweet image
November 25, 2022 · 2
The Python 3 PEG grammar has an interesting approach to error handling that I haven't seen in the literature before. Maybe something to consider for @_ohmjs
Tweet image
November 20, 2022 · 30 · 5
It’s fascinating how every field/area has these little bits of implicit knowledge that many practitioners know, but rarely talk about or explicit pass on. twitter.com/steveruizok/st…
November 17, 2022 · 4 · 1
I can't predict the future but if I ever stop using this site I'll probably just try to blog more:

dubroy.com/blog/rss.xml
buttondown.email/pdubroy
November 16, 2022 · 1
It's such a mindset shift to work on software that has exactly one user.

Sometimes I catch myself thinking things like, "What if the user passes a string containing a hyphen here?" Then I remember that the only user is _me_.
November 16, 2022 · 34

This particularly thing (static site generation script for my blog) is also >10 years old and I touch it once or twice a year.

That also entails a whole different set of tradeoffs than “normal” software.
November 16, 2022 · 3
It's a good feeling when a test you wrote six years ago reveals a bug in your new feature.
November 13, 2022 · 8
What programming language really got import statements right? (In terms of syntax or functionality)
November 9, 2022 · 14 · 5
"When constraints conflict there is no solution to the design problem. It is not unusual then for designers to 'relax' one or more of the constraints in order to identify some acceptable solution."
Tweet image
November 9, 2022 · 2
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/…
It's often said that programming languages should have "a small set of orthogonal primitives" but I wonder if there's any empirical basis for this?
Mar 6
November 7, 2022 · 43 · 6

Another possible explanation:

4️⃣ The process of adoption drives minimal languages to become less minimal.
November 7, 2022 · 16

An objective comparison is tricky, but looking at # of production rules in ANTLR grammars —

Lua: 62
Smalltalk: 81
VB6: 158 + 226 lexical
C: 232
Rust: 240 + 151 lexical
Swift5: 317 + 236 lexical

All from github.com/antlr/grammars…
November 7, 2022 · 7
An engineering lesson I seem to learn over, and over, and over —

Don't try to make it "clean", make it *simple*.
November 3, 2022 · 24 · 2

This is especially true of anything to do with build, test, and release tools. When I try to make it "clean", I usually end up with more dependencies and more configuration.

Months or years later, I'm trying to figure out what I could possibly have been thinking.
November 3, 2022 · 3
It's kinda shocking to think that no browser JavaScript engine even had a JIT until 2008.

fwiw, Google Maps was released in 2005
Tweet image
November 2, 2022 · 2
✍️ 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
November 1, 2022 · 114 · 28
If I imagine something that would replace my use of Twitter, it'd probably look a lot more like wiki.c2.com than Mastodon.
October 31, 2022 · 4
Hard to imagine a stronger first sentence in a PL paper than this.

"We have developed and implemented techniques that double the performance of dynamically-typed object oriented languages."

From "An Efficient Implementation of SELF" — dl.acm.org/doi/pdf/10.114…
Tweet image
October 24, 2022 · 25 · 1
Pull-down graphical menus. Seems obvious but why have I never seen this before?

Source: i3s.unice.fr/~rueher/Publis…
Tweet image
October 21, 2022 · 33 · 2

Ah, apparently it comes from Hypercard! TIL
twitter.com/modernserf/sta…
Tweet image
October 21, 2022 · 17 · 2
I'll show myself out
Tweet image
October 18, 2022 · 14
I don't know what I'd do without my Buttons!

From "User-Tailorable Systems: Pressing the Issues with Buttons" dl.acm.org/doi/pdf/10.114…
Tweet image
October 12, 2022 · 9 · 1
Just discovered sok-stories, a wonderful little app in the spirit of Etoys & KidSim for making simple hand-drawn games: sokpop.itch.io/sok-stories

(via this: brokenpencil.com/sharpener-2/ho… interview with @v21)
October 7, 2022 · 8
Excited to be kicking off work on a new project with @inkandswitch!

Together with @szymon_k, @wolkenmachine, and @jameslindenbaum, I'll be working on the lab's latest experiment in *programmable ink*.
October 5, 2022 · 64 · 1

The general idea of programmable ink is something that I first started exploring back CDG/HARC: dubroy.com/blog/sketches-…. But the Ink & Switch crew has gone much further and deeper than we did back then.
October 5, 2022 · 16 · 1

For a good overview of the work they've done so far, check out the talk @szymon_k did at Strange Loop a couple weeks ago.
twitter.com/strangeloop_st…
October 5, 2022 · 6
There are few papers that I come back to as often as this one. Sometimes just to read the abstract.

hci.stanford.edu/dschool/resour…
Tweet image
September 22, 2022 · 12
Does anyone actually find this behavior useful?

Both the shape and the text are selected — I want both of them to shrink. Pretty much every app does it this way but it always drives me crazy.
September 21, 2022 · 6

Interestingly I think I *don't* want the stroke width to change, because in a given drawing I want everything to have the same stroke width. Guess that's also the argument for not changing the font size? twitter.com/nikitonsky/sta…
September 21, 2022

TIL about the scale tool in Figma twitter.com/imslavko/statu…
September 22, 2022

And @CuttleXYZ does what I'd like by default. twitter.com/mandy3284/stat…
September 22, 2022 · 3
I'm honestly blown away by what Ivan is doing with the FoC podcast.

Is it just my bubble, or is anyone else playing with podcasting as a *medium* like this? Worth listening to the first five minutes even if you don't care about programming. twitter.com/spiralganglion…
September 21, 2022 · 33 · 6

I should also add that — beyond the way that @spiralganglion is playing with the medium — I've really been enjoy the conversations between him and @jimmyhmiller about some classic software papers.
September 21, 2022 · 5
Love to see people push the boundaries of how expressive a GUI can be. twitter.com/goodboyninja/s…
September 17, 2022 · 17 · 3
It's neat to see how early GUI systems introduced users to the mouse — "just move it around while watching the screen".
Tweet image Tweet image
September 13, 2022 · 42 · 7

Sources —

1️⃣ Smalltalk 72 Instruction manual: bitsavers.org/pdf/xerox/smal…
2️⃣ Macintosh user manual: archive.org/details/1984ma…
September 13, 2022 · 3

January 23, 2023 · 7

"You control the pointer on Lisa's screen by moving the 'mouse' on your desktop."

Wait, which desktop??

(I'm assuming they didn't yet use the term "desktop" for the software thing.)
twitter.com/kosmik_app/sta…
January 10, 2024 · 2
"Captured by Narrative" would be a great title for a book I wish existed about the role of utopian visions at modern tech companies.

(Or maybe it exists? 🙏) twitter.com/aza/status/156…
September 13, 2022 · 5 · 1
It's quite striking to read what people were saying about the internet in the early 90s.

Esther Dyson: "The fundamental thing (the Net does) is to overcome the advantages of economies of scale…so the big guys don't rule."
Tweet image
September 12, 2022 · 44 · 11

Kevin Kelly: "computers…are not the beginning of authority but its end"

books.google.de/books?id=vvSVt…
Tweet image
September 12, 2022 · 10

(This passage has a real "hold my beer" quality which I love)
September 12, 2022 · 6

Fred Turner's "From Counterculture to Cyberculture" talks about how this group was very steeped in the ideas from cybernetics, scenario planning, etc.

Makes it even more surprising to me that they couldn't imagine how the internet would fail to live up to those early promises.
September 12, 2022 · 5
I can tell none of y'all have kids cause my dall-e prompts are all "anna and elsa riding horses, coloring page, super pretty, and hello kitty is there too"
September 5, 2022 · 16
In several subfields of CS (e.g. PL, HCI, graphics) there's a feeling that good systems research is too hard to publish.

In programming languages, SIGPLAN actually has an award for the most impactful systems. So I wondered — how "publishable" were papers on those systems?
August 28, 2022 · 50 · 8

Of the 12 winners, only 3 — WebAssembly, Pin, and LLVM — had a canonical systems paper published in a SIGPLAN venue (conference or journal).
Tweet image
August 28, 2022 · 11 · 1

Another four — Racket, Z3, Jikes, and GHC — had a systems paper published in another major publication.

I'd count these as "misses" for SIGPLAN, as they were all published in venues that are ranked below the top SIGPLAN venues (PLDI, POPL, TOPLAS, etc.)
August 28, 2022 · 8

(Of course, my assumption here is that the authors would have preferred to publish in one of the top SIGPLAN venues if they could have. If that's wrong, I'm happy to be corrected here.)
August 28, 2022 · 3

Of the remaining 5 —

• The CompCert and Scala papers weren't published in major venues (not indexed by dblp)
• Coq doesn't have a canonical publication that I'm aware of
• Neither do V8 and GCC; they also don't come from academia, so maybe the authors didn't care to publish
August 28, 2022 · 2

So, ignoring V8 & GCC…

Of 10 projects that won a SIGPLAN award for "significant impact on PL research, implementations & tools"

only 3 had a systems paper in a SIGPLAN venue.

That seems low to me, and suggests that it is indeed too hard to publish systems work in those venues
August 28, 2022 · 14 · 1

Caveats and fine print —

The full list of papers is here: docs.google.com/spreadsheets/d…. I used citation counts and abstracts to judge what the "canonical systems paper" was for each project. If you think I got it wrong, let me know!
August 28, 2022 · 1

A correction —

a Jikes system paper (it was called Jalapeño then) was published at OOPSLA '99.

So, 4 of 10 had a systems paper in a SIGPLAN venue.

twitter.com/JAldrichPL/sta…
August 29, 2022 · 4
I wonder how much the "death of systems research" is related to the increased importance of paper counts.

Postman said "every technology has predisposition to being used in certain ways"

Maybe writing a great systems paper is just much harder? (vs. algorithms, techniques, etc.) twitter.com/dubroy/status/…
"Writing papers is a primary mechanism for doing research…not just for reporting it"

From "How to write a great research paper" by @simonpj0: microsoft.com/en-us/research…
Tweet image
Aug 26
August 26, 2022 · 4

Like it's just so much harder to achieve what SPJ describes here with systems work
Tweet image Tweet image
August 26, 2022 · 2
"Writing papers is a primary mechanism for doing research…not just for reporting it"

From "How to write a great research paper" by @simonpj0: microsoft.com/en-us/research…
Tweet image
August 26, 2022 · 10 · 1

@simonpj0 Reminds me of Amazon's "write the press release first"
August 26, 2022 · 3
Interesting…apparently PDF ("Camelot Project") was originally conceived as a stopgap solution for hardware that was not powerful enough for Postscript.

Source: pdfa.org/norm-refs/warn…
Tweet image
August 25, 2022 · 7 · 1
They say you can't judge a book by its cover but damn
Tweet image
August 25, 2022 · 39

Btw, in case it's not obvious, I like it (and the book seems pretty good too)
August 25, 2022 · 4
Ok so I ended up making a PDF playground: dubroy.com/pdf-playground/. Thanks to @pdfjs it was actually super easy.

Sharing here in case anyone else wants to experience the weird and wonderful world of the PDF stack language. twitter.com/dubroy/status/…
Tweet image
Thinking about a web-based REPL/playground for the PDF language. Does this exist somewhere??
Aug 16
August 17, 2022 · 94 · 26

@pdfjs Shoutout to @gendignoux for the cheat sheet on PDF Graphics Operators: github.com/gendx/pdf-chea…
Tweet image
August 17, 2022 · 10 · 2
Thinking about a web-based REPL/playground for the PDF language. Does this exist somewhere??
August 16, 2022 · 13 · 1

…or for Postscript?
August 16, 2022 · 4

let's goooo
August 17, 2022 · 18 · 1
Anyone have a good example of a programming language construct that *only* exists for perf reasons?

i.e. where you can achieve the same thing with a more general construct, but there is a more specific thing that's "equivalent to X, but much faster"
August 7, 2022 · 3 · 1

Context: I'm looking at low-hanging perf improvements in @_ohmjs. I could do them as optimizations you get "for free", but that can lead to opaque (and brittle) heuristics and non-obvious perf footguns.

Or, I could add more specialized constructs that are always optimizable.
August 7, 2022

Thanks for the answers so far! I should add that I'm most interested in

1️⃣ examples from higher-level languages
2️⃣ cases that involve only a "syntactically-local" change (e.g., adding an annotation)
August 7, 2022
"One of the great advantages of print based debugging for the infrequent developer is that it requires essentially no extra knowledge. We almost always know how to print things in the language…"

utcc.utoronto.ca/~cks/space/blo…
August 4, 2022 · 3
From The Long Nose of Innovation by @wasbuxton:

"Innovation is not about invention. An idea may well start with an invention, but the bulk of the work and creativity is in that idea's augmentation and refinement"

lri.fr/~mbl/ENS/FONDI… twitter.com/pcwalton/statu…
August 3, 2022 · 4
“A fantasy console is like a regular console, but without the inconvenience of actual hardware. […] It is similar to a retro game emulator, but for a machine that never existed.” lexaloffle.com/pico-8.php?pag…
August 2, 2022 · 1

Whoa, the PICO-8 png-based cartridge format is pretty cool:

"Cart data is stored using a steganographic process. […] The image is 160 pixels wide and 205 pixels high, for a possible storage of 32,800 (0x8020) bytes."

pico-8.fandom.com/wiki/P8PNGFile…
Tweet image
August 12, 2022 · 1
I thought this idea (that science is primarily about falsification) had been pretty soundly rejected by now?
Tweet image
August 2, 2022 · 5

A couple examples from "The Meaning of Science" by Tim Lewens:
Tweet image
August 2, 2022 · 1

From "What Science Is And How It Really Works" by James C. Zimring:
Tweet image
August 2, 2022 · 2

Coryn Bailer-Jones (Max Planck Institute for Astronomy) on "Why science is not really about falsification" — www2.mpia-hd.mpg.de/homes/calj/fal…
August 2, 2022 · 1
One of my all-time favourites. I’d love to see a modern take on Lifestreams to see how the ideas hold up today. twitter.com/jackrusher/sta…
July 28, 2022 · 3
This is an amazing resource! All of technical video programs from CHI '83 to 2002 are now on YouTube thanks to @hcil_umd. youtube.com/c/acmsigchi/pl… twitter.com/jackrusher/sta…
July 26, 2022 · 6 · 1
The internet makes more sense when you accept that 99% of the things you read are content marketing.
July 25, 2022 · 5

This was a flippant tweet but I was struck by the fact that I use multiple workarounds to find “legitimate” information about certain topics.

The +reddit trick is a common one for product reviews. Another one I use for technical and popsci stuff is to search Google Scholar.
July 25, 2022 · 2
This is one of the most inspiring Cedar-related demos that I’ve run across. There is also good paper that covers some of the implementation details: dl.acm.org/doi/pdf/10.114… twitter.com/jackrusher/sta…
July 21, 2022 · 4
An insightful post. I had similar thoughts when “Simple Made Easy” first made the rounds, but this post argues the point much better than I ever could.

“Simple tools do not necessarily do better at helping users manage complexity than more complex tools” t.co/0iCZizuxmP
July 8, 2022 · 31 · 2

It is probably something that’s best discussed with concrete examples. Here’s one from lobste.rs/s/zgwr6f/super…
Tweet image
July 8, 2022 · 2

My take us actually the opposite; I think it’s a good thing that JavaScript now has proper classes, rather than many different slightly incompatible implementations of the same concept.
July 8, 2022 · 8

It's often said that programming languages should have "a small set of orthogonal primitives" but I wonder if there's any empirical basis for this?
Mar 6
July 8, 2022
Thinking about why no time-based organization system works as well as my phone’s photo stream.

It’s super easy to find screenshots of directions, confirmations, receipts, etc. Email inbox, Google Docs “Recent”, and similar are somehow inferior.
July 6, 2022 · 36

One reason is that I can easily orient myself in time when I see thumbnails of photos I took. Any other temporal list loses resolution beyond the last week or two.
July 6, 2022 · 11

But Google has access to my photos! They could put thumbnails in Gmail, Docs, etc.
July 6, 2022 · 1

Another reason is that my photo stream is totally in my control — it’s pretty much guaranteed to be relevant to me. That’s not true for other things (bulk mail, docs shared with me, etc.)
July 6, 2022 · 4

Things in the photo stream also stay put. GMail threads, “recent docs”, etc. are much more dynamic and you can’t rely on something being go in the same place today as it was yesterday.
July 6, 2022 · 4

Maybe it’s time for another run at the Lifestreams idea? cs.yale.edu/homes/freeman/…
July 6, 2022 · 6
On a month-long camping trip across Canada. It’s mind-boggling just how many custom reservation systems exist — most of them quirky, unusable, or just plain broken.

50+ years into interactive computing I feel like we should have this one nailed?
June 1, 2022 · 5
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.
May 13, 2022 · 46 · 1

Many people assume funding is the problem, but at least for software, the biggest gap I see is in structures for collaboration.

Lots of people willing to self-fund their research work, but it’s hard to have much impact if you go it alone.
May 13, 2022 · 28 · 2

I’m imagining a weird hybrid of @recursecenter and @inkandswitch
May 13, 2022 · 18 · 1
An interesting perspective on Logo and getting kids interested in programming.

Is there something in the spirit of Logo but for shader programming? That might show more of the “magic creative potential” twitter.com/presstube/stat…
May 5, 2022 · 11 · 3

Maybe the key is to show "amplification"…fractals and L-systems, game of life, etc. are some good examples. twitter.com/andy_matuschak…
May 6, 2022 · 1
You'll design a better system if you continuously evaluate it from at least two different viewpoints.

Something that looks "just right" from one perspective may be totally wrong from another.
Tweet image
May 4, 2022 · 15 · 4

I wonder how much of the benefit of formal methods, TDD, and testing in general can be explained by this.
May 4, 2022 · 5
Nice to see that people are still thinking about the low-level building blocks of UI toolkits. Some interesting design decisions in here too. twitter.com/nikitonsky/sta…
May 4, 2022 · 10

I mean this alone is "you had me at hello"
Tweet image
May 4, 2022 · 25 · 3
Really enjoyed @danieljacksoncs's new book "The Essence of Software". His way of formalizing the conceptual models behind user interfaces seems both radical and and obvious (in the best way!)

press.princeton.edu/books/hardcove…
May 3, 2022 · 10 · 1

@danieljacksoncs Beyond the content, a few things I loved about the book's form:

• Separate chapter of extended footnotes, which you could read on their own

• The interaction diagrams for concept composition 😘👌

• Separate indices for applications, names, topics, and concepts
Tweet image
May 3, 2022

Also, the Déjà Vu platform (a project from Daniel's research group), is built on Ohm 😊.
twitter.com/_ohmjs/status/…
May 3, 2022 · 1
Tweet image Tweet image Tweet image Tweet image
May 2, 2022 · 4

Tweet image Tweet image Tweet image Tweet image
May 2, 2022 · 1
I wish there were more really great mouse-oriented UIs. VisualAge Smalltalk was one of the best I ever used, for two reasons:

1️⃣ Ubiquitous context menus (speed and discoverability)
2️⃣ "Remove from list" to cull items that you're done with, or are irrelevant to your task
April 29, 2022 · 27

Examples of "Remove from list" —

- Reviewing diffs: you can remove method/class/module when you're done reviewing, and slowly prune down the list.
- Browsing senders/implementors: you can quickly remove items that are not relevant.
April 29, 2022 · 5

Oberon and Acme are some other examples of powerful mouse-oriented UIs. What are some others?
Tweet image Tweet image
April 29, 2022 · 6

I really like what @pketh is doing with @KinopioClub, with crossing selection and things like "Select all below" twitter.com/KinopioClub/st…
April 29, 2022 · 16 · 2

@jackrusher mentioned Cedar, and I managed to find a great demo video from @ComputerHistory: youtube.com/watch?v=z_dt7N…
twitter.com/jackrusher/sta…
April 30, 2022 · 3
✍️ Core dumps, feedback loops, and a game of telephone: dubroy.com/blog/core-dump…

A story about one of the most memorable debugging experiences of my career so far.
Tweet image
April 28, 2022 · 13 · 4
Tweet image
April 28, 2022 · 4
A personal update —

I left Sourcegraph last month, for the wholly unoriginal (but also true) reason that I want to take an extended break to focus on family.

(Btw: great company, great people, and they're hiring! boards.greenhouse.io/sourcegraph91?…)
April 27, 2022 · 16

Not sure what's next (or when)…the only immediate plan is a road trip across Canada in May/June.

If anyone wants to chat, I've got lots of time in the next few weeks…my DMs are open.
April 27, 2022 · 9
In 2022 I didn't expect APL to have an online REPL+tutorial that beats many modern languages. It's quite nice: tryapl.org
Tweet image
April 25, 2022 · 59 · 12

I love how the weird symbols (which APL is obviously known for) are such a key part of the design. Honestly if I was a kid I think I'd find this much cooler than Scratch or Code.org or whatever.
April 25, 2022 · 9

May 16, 2022 · 1

May 16, 2022 · 1
I love the use of animated "small multiples" to compare performance of different algorithms. Much more striking and memorable than a bar chart. twitter.com/keenanisalive/…
April 23, 2022 · 6
Academic papers are pretty great actually.

You know they'll tell you:
- what the problem is
- a high-level description of their solution
- how it compares to other solutions

…and usually in the first 2-3 pages.

95% of blog posts / landing pages can't manage to do this.
April 9, 2022 · 80 · 13

I got more out of these two paragraphs on the *first page* of the QuickCheck paper than I did from a dozen blog posts on property-based testing. cs.tufts.edu/~nr/cs257/arch…
Tweet image
April 9, 2022 · 10

May 6, 2022
I wish it would be easier to automate stuff like this!

Sometimes there's such a huge gap between the informal solution (drag the slider to make the line as spiky as possible) and the formal one.

(The whole thread is interesting but this part stuck out to me.) twitter.com/benmschmidt/st…
April 7, 2022 · 2
Something I've noticed —

Breakpoint debugging feels more cognitively demanding to me. I feel like I have to stop, make a plan, and then (carefully) execute it.

With print statements, it feels like I can proceed more incrementally and follow the "information scent". twitter.com/thorstenball/s…
April 6, 2022 · 19

Years ago @johnjbarton introduced me to the concept of "querypoint debugging". I'd love for this to become a thing. infoscience.epfl.ch/record/167390/…
Tweet image
April 6, 2022 · 8
My take: the growing complexity of software is continually moving the goalposts of what is considered Real Programming™️.

So the statement below will always ring true and yet more and more people will be doing things that used to require "programming". twitter.com/msimoni/status…
April 3, 2022 · 23 · 3
Snopes, but for studies from psychology / social science that are referenced in all the business books, TED talks, etc.

"Phillip Zimbardo and his colleagues from Stanford University conducted a novel experiment…" 🤨
April 3, 2022 · 7
I want to spend a month going deep on a programming language that I'm not very familiar with.

What language would you recommend and why?

(Not eligible: JS, TS, Python, Rust, C, C++, Java, Smalltalk)
March 30, 2022 · 10 · 2

Thanks for the suggestions! The most common answers so far:

- Prolog or Datalog
- Elixir and/or Erlang
- APL + variants (BQN, Q)
- Clojure
- Haskell
- Forth
April 1, 2022 · 4

Update: Forth is fun.
April 4, 2022 · 10
Lately I've been thinking a lot more about "casual programming" rather than "end-user programming".

I think it's much more about the task/context than it is about the person. The stuff in the post clearly isn't end-user programming but it is casual programming! twitter.com/b0rk/status/15…
March 26, 2022 · 18
Funny that there was a time where you had to explain why "display editors" (Emacs, vi, etc.) were easier to use than line editors.

From dl.acm.org/doi/abs/10.555…
Tweet image
March 22, 2022 · 20 · 5
March 22, 2022 · 5

Naked stack frames (as in "naked objects")
Tweet image
March 22, 2022 · 1
Thinking of doing a "ways of mutating state" blog post, similar to my posts on handling user input. Good idea or bad?
twitter.com/dubroy/status/…
📝 New blog post —

Three ways of handling user input: dubroy.com/blog/three-way…
Tweet image
Jan 5
March 20, 2022 · 4

Part of me is afraid that I'll end up having to write a monad tutorial.
March 20, 2022 · 3
There's this idea that programming needs large blocks of uninterrupted time — maker's schedule vs. manager's schedule, etc.

I wonder why more people don't realize that being productive with a busy schedule is a skill you can get better at.
March 18, 2022 · 30 · 1

✍️ Getting things done (in small increments): dubroy.com/blog/getting-t…

About some habits and tactics I've adopted to help me be productive when I only have small chunks of uninterrupted time.
Tweet image
March 21, 2022 · 13 · 3
It's really quite shocking when you realize how much of our culture is shaped around the ideals of competition.

Probably also no small part of the reason that we default to either/or thinking so much of the time. twitter.com/gnrosenberg/st…
March 10, 2022 · 4

No Contest by @alfiekohn opened my eyes to this: amazon.com/No-Contest-Cas…

He quotes Morton Deutsch on the competitive approach to (someone must "win") vs a cooperative approach to approach: "conflicting interests as a mutual problem to be solved by collaborative effort."
March 10, 2022 · 1
It's often said that programming languages should have "a small set of orthogonal primitives" but I wonder if there's any empirical basis for this?
March 6, 2022 · 23 · 3

Tweet image Tweet image Tweet image
March 6, 2022 · 8 · 1

A highly relevant thread (thx @missingfaktor): twitter.com/slava_pestov/s…
March 7, 2022 · 3
The creator of Céu (ceu-lang.org) on the relationship between structured concurrency libs like Trio, Effection, etc. and the Esterel-derived imperative synchronous languages. twitter.com/_fsantanna/sta…
March 2, 2022 · 6 · 1
"The amazing thing to me is that, once I have the photo, my instinct is to accept the photo as objective reality. If the photo and my drawing disagree, it must be that the drawing is wrong." aaronhertzmann.com/2022/02/28/how…
March 2, 2022 · 2
In my mind there is a genre called "weird computing" and ToonTalk is squarely in it.

Lots of stuff by @rsnous and @neilsardesai too

twitter.com/dubroy/status/…
Can't believe I forgot to mention ToonTalk! (thx @abecedarius)

• Drag numbers on top of each other to add them (and a mouse comes to smash them together!)
• Use a (literal) scale to compare numbers
• Store values in nests
etc.

toontalk.github.io/ToonTalk/
Feb 22
February 22, 2022 · 3
Most visual programming languages make limited use of the visual channel — the program structure is represented visually, but not much else. Usually the shapes and colors they use have an abstract (symbolic) meaning, not a concrete one.

What are some different approaches?
February 21, 2022 · 115 · 18

One approach is graphical rewrite rules, or "visual before-after rules". It's a more concrete notion of visual programming: the program actually looks like the output.

Examples —

👉 AgentSheets: researchgate.net/profile/Alexan…
👉 KidSim / Stagecast Creator: acypher.com/Publications/C…
Tweet image Tweet image
February 21, 2022 · 16 · 1

Mikael Kindborg's work on "comic strip programs" addresses some of the limitations of graphical rewrite rules.

This uses more symbolic representation, based on the visual language of comics.

📄 Comic Strip Programs: Beyond Graphical Rewrite Rules citeseerx.ist.psu.edu/viewdoc/downlo…
February 21, 2022 · 5

Squeak eToys has primitives for acting on visual conditions, e.g., "square overlaps line" or "car's 🟦 sees ⬜️".

This gives directness: the group of shapes isn't just a representation of the object, it *is* the object.

🎥 Squeak racetrack tutorial: youtube.com/watch?v=34cWCn…
Tweet image Tweet image
February 21, 2022 · 6

There are also some visually-oriented esolangs.

Piet is probably the most well-known: dangermouse.net/esoteric/piet/…

Orca by @hundredrabbits is a 2D language where spatial relationships are semantically meaningful: metasyn.github.io/learn-orca/
Tweet image Tweet image
February 21, 2022 · 12

What are some other approaches to visual programming? I'd love to see more examples of using visual channel in interesting ways…beyond what you usually see in blocks-based languages (e.g. Scratch) or flowcharts / nodes-and-wires (e.g. Quartz Composer).
February 21, 2022 · 4

I should also mention @mandy3284's work!

Recursive drawing: recursivedrawing.com
Shadershop: tobyschachman.com/Shadershop/
Apparatus: aprt.us

All domain-specific tools that are excellent examples of truly leveraging the visual aspects in a fundamental way.
February 21, 2022 · 9

Can't believe I forgot to mention ToonTalk! (thx @abecedarius)

• Drag numbers on top of each other to add them (and a mouse comes to smash them together!)
• Use a (literal) scale to compare numbers
• Store values in nests
etc.

toontalk.github.io/ToonTalk/
February 22, 2022 · 8 · 1

Spreadsheets for Images directly addresses the limitations of node-based VPLs:

"Flow charts spend their screen real estate on operators and their interconnections, which becomes uninteresting once the flow chart has been specified"

twitter.com/disconcision/s…
March 8, 2022 · 6 · 2
This seems like a great way to encourage open-ended exploration in a playground-style tool.

A problem with many so-called playgrounds is that a beginner has no idea what they can even do with it! twitter.com/Wattenberger/s…
February 16, 2022 · 3 · 1
In 2022, I want to start writing on my blog a lot more often — my goal is at least a post per month.

I post all new articles here, but you can also subscribe by email: buttondown.email/pdubroy
February 15, 2022 · 3
✍️ Handing user input with structured concurrency: dubroy.com/blog/handling-…

This is a follow-up to my previous blog post, "Three ways of handling user input": twitter.com/dubroy/status/…
Tweet image
📝 New blog post —

Three ways of handling user input: dubroy.com/blog/three-way…
Tweet image
Jan 5
February 15, 2022 · 13 · 4
Offensive-defensive citation
Tweet image
February 14, 2022 · 5
Software criticism
Tweet image
February 12, 2022 · 1
This has a strong "Kill Math" vibe to it. twitter.com/abakcus/status…
February 4, 2022 · 8

Still thinking about this…

One take is that this is a clever visual proof of a deep idea.

Another take is that it's a trivial idea that's totally obscured by the symbolic representation.

(I honestly can't decide.)
February 4, 2022
What's the best way to say it? (e.g. for a tool / library)
February 3, 2022
Today I discovered that there are online archives of the SIGGRAPH art show going back to the 80s (!)

1985 was 👌: digitalartarchive.siggraph.org/exhibition/sig…
Tweet image Tweet image Tweet image Tweet image
January 27, 2022 · 11 · 4

Tweet image Tweet image Tweet image Tweet image
January 27, 2022 · 4

Cybernetic Neckpiece (with on-board microcomputer)
digitalartarchive.siggraph.org/artwork/vernon…
Tweet image
January 27, 2022 · 2
Is there a general term for a function that is asymptotically more complex to solve, vs. verifying a solution?

It's related to P vs NP and one-way functions, but I'm taking about something like: O(n²) to solve and O(n) to check a solution.
January 26, 2022 · 4 · 1

Context —

I have a hunch that it's related to a useful definition of "declarative programming". The usual definition I've heard is "describe what you want to do, not how you want to do it" which imo is very vague.
January 26, 2022 · 2

Also related — "Defining syntactic sugar": loup-vaillant.fr/articles/synta…
January 26, 2022 · 1
There's such a huge difference between reading a paper about an algorithm/system/etc., and trying to implement it yourself.

I read the paper and think "I get it".

I try to implement it and realize I didn't get it *at all*.
January 23, 2022 · 145 · 8

(This tweet brought to you by Concurrent ML.)

Context: I'm still exploring models for concurrency as discussed in my last blog post. Got turned on to CML by @andywingo's excellent articles about it, e.g. wingolog.org/archives/2017/….
twitter.com/dubroy/status/…
📝 New blog post —

Three ways of handling user input: dubroy.com/blog/three-way…
Tweet image
Jan 5
January 23, 2022 · 9

@andywingo Related — @danluu on noticing "the feeling of glossing over something without really understanding it".

danluu.com/cocktail-ideas/
Tweet image
February 3, 2022 · 3
Always nice to discover projects that are using Ohm 😊

Here's one from @mcgillu twitter.com/_ohmjs/status/…
January 21, 2022 · 5
I love this notion of "teaspoon" languages from @guzdial and Tamara Schreiner.

"TSP languages are about making it easier to integrate computing to enhance learning in other subjects…"

web.eecs.umich.edu/~mjguz/uploads…
Tweet image
January 19, 2022 · 26 · 2

@guzdial In many ways this reminds me of Etoys (vpri.org/pdf/hc_etoys_s…), but it suggests a slightly different way of delimiting the conceptual space of the "task at hand" vs. the more general purpose system underneath.
Tweet image
January 19, 2022 · 4 · 1
It's probably common but this is actually how I do testing in the one "production" spreadsheet that I have (for personal finance stuff).

+ conditional formatting that turns the cell background read if the value isn't "ok" twitter.com/tophtucker/sta…
Tweet image
January 16, 2022 · 5 · 2
📝 New blog post —

Three ways of handling user input: dubroy.com/blog/three-way…
Tweet image
January 5, 2022 · 95 · 14