www-home/blog/20190403-update.html

110 lines
9.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="/favicon.ico">
<link rel="canonical" href="https://www.mcmillen.dev/blog/20190403-update.html">
<link rel="alternate" type="application/atom+xml" href="https://www.mcmillen.dev/feed.atom" title="Colin McMillen's Blog - Atom">
<title>My first paper in 10 years?! | Colin McMillen</title>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@500;700&display=block" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Fira+Mono:500&display=block" rel="stylesheet">
<link rel="stylesheet" href="/pygments.css">
<link rel="stylesheet" href="/style.css">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@mcmillen">
<meta name="twitter:title" content="My first paper in 10 years?! | Colin McMillen">
<meta name="twitter:description" content="Its been nearly two months since my last day at Google, so I guess I should finally make use of this newsletter :) I wrote a paper which was published on April 1st as part of SIGBOVIK 2019: “93% of Paint Splatters are Valid Perl Programs”. In this paper, I answer a long-standing open problem in the programming languages community: is it possible to smear paint on the wall without creating valid Perl?">
</head>
<script>
function fixEmails() {
const mailtoArray = [
'm', 'a', 'i', 'l', 't', 'o', ':',
'c', 'o', 'l', 'i', 'n', '@',
'm', 'c', 'm', 'i', 'l', 'l', 'e', 'n',
'.', 'd', 'e', 'v'];
const mailtoLink = mailtoArray.join('');
const anchors = document.getElementsByTagName('a');
for (let i = 0; i < anchors.length; i++) {
const anchor = anchors[i];
if (anchor.href == 'mailto:email@example.com') {
anchor.href = mailtoLink;
if (anchor.innerText == 'colin at mcmillen dot dev') {
anchor.innerText = mailtoLink.substring(7);
}
}
}
}
</script>
<body onload="fixEmails()">
<div id="page-container">
<div id="content-wrap">
<div id="header">
<div class="content">
<a href="/" class="undecorated">Colin McMillen</a>
<span style="float: right;"><a href="/feed.atom"><img src="/img/rss.svg" alt="Atom feed" style="width: 17px; height: 17px; margin-bottom: 1px;"></a></span>
<span style="float: right;"><a href="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span>
</div>
</div>
<div class="content">
<h1 id="my-first-paper-in-10-years">My first paper in 10 years?!</h1>
<p><em>Posted 2019-04-03.</em></p>
<p>It&rsquo;s been nearly two months since my last day at Google, so I guess I should finally make use of this newsletter :)</p>
<p>I wrote <a href="https://docs.google.com/document/d/1ZGGNMfmfpWB-DzWS3Jr-YLcRNRjhp3FKS6v0KELxXK8/preview">a paper</a> which was published on April 1st as part of SIGBOVIK 2019: &ldquo;93% of Paint Splatters are Valid Perl Programs&rdquo;. In this paper, I answer a long-standing open problem in the programming languages community: <em>is it possible to smear paint on the wall without creating valid Perl?</em></p>
<p>(Long-standing since February 13, 2019, when a <a href="https://twitter.com/jaffathecake/status/1095706032448393217">Twitter conversation</a> between Adrienne Porter Felt &amp; Jake Archibald posed the question.)</p>
<p>To answer this question, I downloaded 100 images of paint splatters from Pinterest, ran the open-source Tesseract OCR engine to turn each into a text string, and then sent that text to the Perl interpreter to see whether that text successfully parsed as Perl. It turns out that 93 of the 100 paint splatters do parse as valid Perl, but since 7% do not, I conclude that it <strong>is possible</strong> to smear paint on a wall without creating valid Perl.</p>
<p>You might suspect there is some chicanery going on with this result. You&rsquo;d be correct, but&hellip; honestly there&rsquo;s not <em>that</em> much chicanery going on. You&rsquo;ll have to read the paper for details&hellip; and for my attempts at academic humor. :)</p>
<p>There&rsquo;s also some <a href="/sigbovik">supporting material</a> on this website, including a <a href="/sigbovik/splatters.html">gallery of all 100 images</a> and their associated valid Perl code. Here&rsquo;s a screenshot of some of them. (Did you know that the string <code>lerzfijglpFiji-j</code> evaluates to the number <code>0</code> in Perl?)</p>
<p><img alt="screenshot of 17 paint splatters, and the Perl programs they represent" src="/media/20190403-update-splatters.png"></p>
<p>As it turns out, the publication date of my paper was exactly 10-years-minus-a-day since my Ph.D. thesis defense. I&rsquo;d planned on travelling back to Carnegie Mellon to give this talk live at SIGBOVIK 2019, but unfortunately came down with a nasty cold-and-cough so I had to cancel my trip. :( Perhaps I can give a belated talk at next year&rsquo;s conference.</p>
<p>For more light-hearted and vaguely CS-shaped research papers, check out the rest of the <a href="http://sigbovik.org/2019/proceedings.pdf">SIGBOVIK 2019 proceedings</a>. I particularly enjoyed &ldquo;Elo World, a framework for benchmarking weak chess engines&rdquo; by tom7 (&ldquo;The computer players include some traditional chess engines, but also many algorithms chosen for their simplicity, as well as some designed to be competitively bad&rdquo;.)</p>
<p>Some other random things that I&rsquo;ve been up to in the last month-and-a-half:</p>
<ul>
<li>
<p><a href="https://twitter.com/mcmillen/status/1095795492196364297">ohnosay</a>, which is like &ldquo;cowsay&rdquo; but for comics in the style of webcomicname. [GitHub] This was a good excuse to get a Linux development environment set up on a persistent Google Cloud instance &amp; to learn how to GitHub. Since then, I also realized that the World Outside Google uses Python 3, so I&rsquo;ve started learning that :)</p>
<p><img alt='a three panel comic displayed on a linux terminal: "i will write a silly program" "hm, what did i do with my ssh credentials?" "oh no"' src="/media/20190403-update-ohno.png"></p>
</li>
<li>
<p>Gardening! Last August I randomly planted some peppermint in a railing container on my balcony, and it went gangbusters. This spring I&rsquo;ve actually planned out a whole porch-garden (like <a href="https://twitter.com/sevandyk/status/1109121188079427585">Stardew Valley but real life</a>). Last year&rsquo;s mint has started growing again, and I&rsquo;ve added spearmint and mojito mint. I&rsquo;ve also got two types of peas, two mixes of salad greens, and spinach planted. Later I&rsquo;ll be planting carrots, basil, and rosemary. The peas just started sprouting a couple days ago, which is exciting!</p>
<p><img alt='a container showing an assortment of "asian salad" greens' src="/media/20190403-update-garden.jpg"></p>
</li>
<li>
<p>Gloomhaven! This is a cooperative legacy-style board game &mdash; a fun dungeon-crawler that doesn&rsquo;t need a DM, so everyone gets to play. Our group is still only a few scenarios in, but we&rsquo;re enjoying it so far. SO MANY HEX TILES. I&rsquo;m also getting ready to paint our party&rsquo;s miniatures, which is another (potential) new hobby of mine; more to come in a future newsletter, I suspect :)</p>
</li>
<li>
<p>Video games: just started Sekiro: Shadows Die Twice on PS4. Recently completed (and really enjoyed) New Super Mario Bros. U Deluxe for Nintendo Switch (though Nintendo seems to be trying to give Google a run for their money on ridiculous product names). I&rsquo;ve also been playing Total War: Warhammer 2 regularly, and Splatoon 2 from time to time. I tried getting into XCOM 2 &amp; enjoyed it, but I&rsquo;m not sure I&rsquo;m interested enough to finish the campaign. I keep going back to Total War when I want something in the tactical / strategy genre.</p>
</li>
<li>
<p>Guitar: starting to learn fingerstyle, with the goal of eventually becoming good enough to play <a href="https://www.songsterr.com/a/wsa/chrono-cross-dream-of-the-shore-boardering-another-world-tab-s5033t2">Dream of the Shore Bordering Another World</a> from Chrono Cross.</p>
</li>
<li>
<p>Computer stuff: upgraded my PC&rsquo;s video card (it was many years old) and upgraded to an all-SSD setup. It turns out that 2TB SSDs aren&rsquo;t that expensive any more.</p>
</li>
<li>
<p>Getting healthcare without an employer is a disaster &mdash; even in Massachusetts, which reportedly has one of the best systems in the US. Still working on straightening out my paperwork. Apparently they refuse to believe in my proof of health-insurance termination, even though it&rsquo;s lettermarked by Google and everything.</p>
</li>
</ul>
<p>Thanks for reading! Hopefully the next update will come sooner than 2 months and thus be a bit shorter than this one ended up being :)</p>
<p>~ Colin</p>
</div>
</div>
<div id="footer">
<div class="content">
&copy; 2023 <a href="/" class="undecorated">Colin McMillen</a>. No cookies, no tracking.
</div>
</div>
</div>
</body>
</html>