Colin McMillen

mcmillen.dev · Personal blog · on HN since 2021

Colin McMillen, a software engineer, writes humorous and technical pieces including SIGBOVIK papers and programming language jokes.

What HN saysHN links his paper claiming 93% of paint splatters are valid Perl programs, often as a joke in threads about code and language models.
35HN people shared it
27linked it in comments
8stories submitted
1.0Kstory points
8 months agolast shared
2021people per year2026

Most-shared posts

  1. 1
    93% of paint splatters are valid Perl programs (2019)
    18 people · 947 points · first shared 2021 · 163 comments on HN
  2. 2
    Programming Language Checklist (2011)
    10 people · 51 points · first shared 2021 · 20 comments on HN
  3. 3
    2019.pdf
    3 people · first shared 2021
  4. 4
    20210721 downvotes considered harmful
    2 people · first shared 2021
  5. 5
    Goodbye Twitter, Hello Blog
    1 people · 4 points · first shared 2022 · 1 comments on HN
  6. 6
    Splatters
    1 people · first shared 2021
  7. 7
    646f93a2d62ad81932f2971a0d50e03e.jpg
    1 people · first shared 2021

What HN people wrote when they linked it

marcosdumay · 2024-11-01
That's only worth mentioning because the PHP stdlib is mostly written in C. The general proposition (for any language) is trivially true since 93% of ink blobs are valid Perl programs. https://www.mcmillen.dev/sigbovik/ (And wow! Search engines are getting even less useful with time. It's incredible!)
chrismorgan · 2021-12-08
The tooltips on the images and videos are excellent. Now I want a comparison between iOS’s text recognition and a pharmacist. And it made me think of how 93% of paint splatters are valid Perl programs (https://www.mcmillen.dev/sigbovik/2019.pdf, PDF, 7MB).
murderfs · 2024-02-28
Dmitry is right. The vast majority of Googlers lean somewhere between against and apathetic to the DEI nonsense that's infected the company, but no one's willing to be the nail that sticks out and complain about it visibly. Two anecdotes: 1. memegen had downvotes, and well-known instigators would continuously complain on plus about their shitty polarizing memes getting enormous numbers of downvotes, and get nothing but hugbox replies in the comments. The creator of memegen who was ideologically aligned ended up regretting adding downvotes at all, under the theory that people were conspiring to downvote instead of there being a silent majority of people that disagreed with the memes in question: https://www.mcmillen.dev/blog/20210721-downvotes-considered-harmful.ht… 2. Someone made an anonymous survey about whether people thought the Damore memo stated facts, had sound logic, was a good idea to post, deserved firing, etc. It was taken down shortly after because people didn't like the results and the implication that the majority of people that filled it out didn't think that the post was worthy of being immediately fired, etc.
bizzletk · 2026-02-25
Not sure all this AI-driven workflow is necessary. The dog could just create a muddy mess and it would be valid Perl: https://www.mcmillen.dev/sigbovik/
dmbche · 2025-08-10
No, asking an LLM to generate the inkblot is the same as asking the LLM to write a string and then obfuscating it in an inkblot. OCRing literal random inkblots will not produce valid C (or C# or python) code, but it will prodce valid Perl most of the time, because Perl is weird, and that is funny. It's not about obfuscating text in inkblot, it's about almost any string being a valid Perl program, which is not the case for most languages Edit0: here: https://www.mcmillen.dev/sigbovik/
akerl_ · 2025-08-10
Yes. That was the whole point of the original comment you were misunderstanding. Because of the flexibility of Perl and heavy amount of symbol usage, you can in fact run most random combinations of strings and they’ll be valid Perl. Copying from the original comment: https://www.mcmillen.dev/sigbovik/
jdfr · 2025-08-10
OP seems to have run a programming language detector on the generated texts, and made a graph of programming language frecuencies: https://pbs.twimg.com/media/Gx2kvNxXEAAkBO0.jpg?name=orig As a result, OP seems to think the model was trained on a lot of Perl: https://xcancel.com/jxmnop/status/1953899440315527273#m LOL! I think these results speak more to the flexibility of Perl than any actual insight on the training data! After all, 93% of inkblots are valid Perl scripts: https://www.mcmillen.dev/sigbovik/
sshine · 2025-08-01
I should have said my ($x, $y, $z) = @$_[0]; but I was making a joke. If $_[0] is an array reference, @$_[0] becomes a list. The joke was a reference to most wrong Perl programs being valid for something. Hence the meme: "93% of Paint Splatters are Valid Perl Programs" https://www.mcmillen.dev/sigbovik/
gsf_emergency · 2025-01-09
Of all the non-esolangs (=exolangs?) APL+kith seem to be almost designorismic/estuarine (formerly, Riverian) beasts.. In your informed opinion, how would it make sense to be thrilled thinking about (not just a semi-dynamic APL (=S-DAPL?) as above but) designing a APL-kith for widespread adoption by BOTH (demoscenic)gamecoders & Analysts (the academic variety)??? Specifically, which of the sneering checklist items[0] would be killer to cross off? [0] https://www.mcmillen.dev/language_checklist.html (Note in particular that the very APL inspired Wolfram has monopoly with physicists BUT does nothing for engineers https://www.stephenwolfram.com/media/physics-whiz-goes-into-biz/ 1988 >“But we tricked him, so to speak,” says Nobelist Murray Gell-Mann, who helped to bring Wolfram west. “We gave him a Ph.D.” )
homarp · 2024-09-08
and "93% of Paint Splatters are Valid Perl Programs" - https://www.mcmillen.dev/sigbovik/ (discussion: https://news.ycombinator.com/item?id=27929730 )
zX41ZdbW · 2024-08-13
It will be good to add "Programming Language Checklist" to the references: https://www.mcmillen.dev/language_checklist.html
kazinator · 2024-05-22
In Perl you have the dynamism, and the syntax. Evidently, 93% paint splatters, when OCRed, are valid Perl programs: https://www.mcmillen.dev/sigbovik/2019.pdf I doubt that a similar thing is true for Clojure. Here, the only problem is that you don't know what the symbols and some of the notations mean. You can look at the unfamiliar syntax and know what is a child of what. Most operators are words you can search for.
thih9 · 2024-04-29
update: actually we have perl, https://www.mcmillen.dev/sigbovik/
lifthrasiir · 2024-04-24
If you relax the "functionally" condition enough, it has been already shown that most paint splatters (including art pieces) are actually valid Perl [1]. [1] https://www.mcmillen.dev/sigbovik/
hitekker · 2024-01-24
I enjoyed the link to the language checklist https://www.mcmillen.dev/language_checklist.html
caditinpiscinam · 2024-01-17
Yeah it's kinda contradictory. It's part critique and part self reflection on an ideology that I have mixed feeling towards. In the same vein as the Programming Language Checklist for language designers. https://www.mcmillen.dev/language_checklist.html
vorticalbox · 2023-04-21
this reminded me of an article I read a while ago [0] "93% of Paint Splatters are Valid Perl Programs" [0] https://www.mcmillen.dev/sigbovik/
eliaspro · 2023-03-23
This reminds me of the experiment to run paint splatters through OCR and check, whether the result is valid Perl code (spoiler: 93% evaluated just fine). https://www.mcmillen.dev/sigbovik/
ajkachnic · 2022-06-05
Bad language is a pretty subjective. Perl often gets a bad wrap because it can be hard to read and terse, but that doesn’t necessarily make it bad. It could be good in a “writing a quick script” circumstance. Somewhat related to this, enjoy this article[0] titled “93% of Paint Splatters are Valid Perl Programs” [0] https://www.mcmillen.dev/sigbovik/
omoikane · 2021-12-22
See also: https://www.mcmillen.dev/language_checklist.html [ ] The name of your language makes it impossible to find on Google
messe · 2021-11-24
> Can you create a random string in Python and have it executed by Python? Reminds me of "93% of Paint Splatters are Valid Perl Programs": https://www.mcmillen.dev/sigbovik/
rgoulter · 2021-10-28
This makes me wish there were a translation of https://www.mcmillen.dev/language_checklist.html for configuration/markup/document languages. :)
tmearnest · 2021-10-14
Did you somehow figure out how to invert the transformation in https://www.mcmillen.dev/sigbovik/2019.pdf
HallowDance · 2021-07-29
An opposing opinion: https://www.mcmillen.dev/blog/20210721-downvotes-considered-harmful.ht… The TL;DR: "Any voting system where most posts mostly receive upvotes, but also allows downvotes, has a huge problem: No matter how you do the math, downvotes count more than upvotes do."
biztos · 2021-07-23
As a Perl programmer and painter I must point out that the programs show in this article are not smeared, and not on a wall. Nor on a Wall. Some of them are not even paint: https://www.mcmillen.dev/sigbovik/splatters/646f93a2d62ad81932f2971a0d…
lucideer · 2021-07-23
> Edit: Also, the programs in the article appear to be mostly special characters? I assume you mean the 4 listed in the "Errata" section? The full list is here: https://www.mcmillen.dev/sigbovik/splatters.html

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close