Browse Source

update site from www-builder

main
Colin McMillen 3 years ago
parent
commit
846541b078
  1. BIN
      favicon-512.png
  2. BIN
      favicon.ico
  3. BIN
      favicon.png
  4. 1
      img/git.svg
  5. 2
      img/nintendoswitch.svg
  6. 2
      img/playstation.svg
  7. 2
      img/steam.svg
  8. 2
      img/twitch.svg
  9. 2
      img/twitter.svg
  10. 201
      index.html
  11. 19
      language_checklist.html
  12. BIN
      papers/Ketter-2004-AAMAS-workshop.pdf
  13. BIN
      papers/Ketter-2004-AAMAS.pdf
  14. 141
      publications.html
  15. 70
      pygments.css
  16. 60
      resume.html
  17. 128
      sigbovik/index.html
  18. 105
      sigbovik/splatters.html
  19. 1
      sitemap.txt
  20. 380
      style.css

BIN
favicon-512.png

After

Width: 512  |  Height: 512  |  Size: 210 KiB

BIN
favicon.ico

After

Width: 32  |  Height: 32  |  Size: 3.1 KiB

BIN
favicon.png

Before

Width: 1000  |  Height: 1000  |  Size: 670 KiB

After

Width: 1000  |  Height: 1000  |  Size: 648 KiB

1
img/git.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M23.546 10.93L13.067.452c-.604-.603-1.582-.603-2.188 0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884 0 2.604-.719.719-1.881.719-2.6 0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883 0 2.6-.719.721-1.889.721-2.609 0-.719-.719-.719-1.879 0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584 0 2.189l10.48 10.477c.604.604 1.582.604 2.186 0l10.43-10.43c.605-.603.605-1.582 0-2.187 "></path></svg>

2
img/nintendoswitch.svg

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M14.176 24h3.674c3.376 0 6.15-2.774 6.15-6.15V6.15C24 2.775 21.226 0 17.85 0H14.1c-.074 0-.15.074-.15.15v23.7c-.001.076.075.15.226.15zm4.574-13.199c1.351 0 2.399 1.125 2.399 2.398 0 1.352-1.125 2.4-2.399 2.4-1.35 0-2.4-1.049-2.4-2.4-.075-1.349 1.05-2.398 2.4-2.398zM11.4 0H6.15C2.775 0 0 2.775 0 6.15v11.7C0 21.226 2.775 24 6.15 24h5.25c.074 0 .15-.074.15-.149V.15c.001-.076-.075-.15-.15-.15zM9.676 22.051H6.15c-2.326 0-4.201-1.875-4.201-4.201V6.15c0-2.326 1.875-4.201 4.201-4.201H9.6l.076 20.102zM3.75 7.199c0 1.275.975 2.25 2.25 2.25s2.25-.975 2.25-2.25c0-1.273-.975-2.25-2.25-2.25s-2.25.977-2.25 2.25z "></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M14.176 24h3.674c3.376 0 6.15-2.774 6.15-6.15V6.15C24 2.775 21.226 0 17.85 0H14.1c-.074 0-.15.074-.15.15v23.7c-.001.076.075.15.226.15zm4.574-13.199c1.351 0 2.399 1.125 2.399 2.398 0 1.352-1.125 2.4-2.399 2.4-1.35 0-2.4-1.049-2.4-2.4-.075-1.349 1.05-2.398 2.4-2.398zM11.4 0H6.15C2.775 0 0 2.775 0 6.15v11.7C0 21.226 2.775 24 6.15 24h5.25c.074 0 .15-.074.15-.149V.15c.001-.076-.075-.15-.15-.15zM9.676 22.051H6.15c-2.326 0-4.201-1.875-4.201-4.201V6.15c0-2.326 1.875-4.201 4.201-4.201H9.6l.076 20.102zM3.75 7.199c0 1.275.975 2.25 2.25 2.25s2.25-.975 2.25-2.25c0-1.273-.975-2.25-2.25-2.25s-2.25.977-2.25 2.25z "></path></svg>

2
img/playstation.svg

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="#90489C" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M8.985 2.596v17.548l3.915 1.261V6.688c0-.69.304-1.151.794-.991.636.181.76.814.76 1.505v5.876c2.441 1.193 4.362-.002 4.362-3.153 0-3.237-1.126-4.675-4.438-5.827-1.307-.448-3.728-1.186-5.391-1.502h-.002zm4.656 16.242l6.296-2.275c.715-.258.826-.625.246-.818-.586-.192-1.637-.139-2.357.123l-4.205 1.499v-2.385l.24-.085s1.201-.42 2.913-.615c1.696-.18 3.785.029 5.437.661 1.848.601 2.041 1.472 1.576 2.072s-1.622 1.036-1.622 1.036l-8.544 3.107v-2.297l.02-.023zM1.808 18.6c-1.9-.545-2.214-1.668-1.352-2.321.801-.585 2.159-1.051 2.159-1.051l5.616-2.013v2.313L4.206 17c-.705.271-.825.632-.239.826.586.195 1.637.15 2.343-.12L8.248 17v2.074c-.121.029-.256.044-.391.073-1.938.331-3.995.196-6.037-.479l-.012-.068z "></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M8.985 2.596v17.548l3.915 1.261V6.688c0-.69.304-1.151.794-.991.636.181.76.814.76 1.505v5.876c2.441 1.193 4.362-.002 4.362-3.153 0-3.237-1.126-4.675-4.438-5.827-1.307-.448-3.728-1.186-5.391-1.502h-.002zm4.656 16.242l6.296-2.275c.715-.258.826-.625.246-.818-.586-.192-1.637-.139-2.357.123l-4.205 1.499v-2.385l.24-.085s1.201-.42 2.913-.615c1.696-.18 3.785.029 5.437.661 1.848.601 2.041 1.472 1.576 2.072s-1.622 1.036-1.622 1.036l-8.544 3.107v-2.297l.02-.023zM1.808 18.6c-1.9-.545-2.214-1.668-1.352-2.321.801-.585 2.159-1.051 2.159-1.051l5.616-2.013v2.313L4.206 17c-.705.271-.825.632-.239.826.586.195 1.637.15 2.343-.12L8.248 17v2.074c-.121.029-.256.044-.391.073-1.938.331-3.995.196-6.037-.479l-.012-.068z "></path></svg>

2
img/steam.svg

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="#90489C" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M11.979 0C5.678 0 .511 4.86.022 11.037l6.432 2.658c.545-.371 1.203-.59 1.912-.59.063 0 .125.004.188.006l2.861-4.142V8.91c0-2.495 2.028-4.524 4.524-4.524 2.494 0 4.524 2.031 4.524 4.527s-2.03 4.525-4.524 4.525h-.105l-4.076 2.911c0 .052.004.105.004.159 0 1.875-1.515 3.396-3.39 3.396-1.635 0-3.016-1.173-3.331-2.727L.436 15.27C1.862 20.307 6.486 24 11.979 24c6.627 0 11.999-5.373 11.999-12S18.605 0 11.979 0zM7.54 18.21l-1.473-.61c.262.543.714.999 1.314 1.25 1.297.539 2.793-.076 3.332-1.375.263-.63.264-1.319.005-1.949s-.75-1.121-1.377-1.383c-.624-.26-1.29-.249-1.878-.03l1.523.63c.956.4 1.409 1.5 1.009 2.455-.397.957-1.497 1.41-2.454 1.012H7.54zm11.415-9.303c0-1.662-1.353-3.015-3.015-3.015-1.665 0-3.015 1.353-3.015 3.015 0 1.665 1.35 3.015 3.015 3.015 1.663 0 3.015-1.35 3.015-3.015zm-5.273-.005c0-1.252 1.013-2.266 2.265-2.266 1.249 0 2.266 1.014 2.266 2.266 0 1.251-1.017 2.265-2.266 2.265-1.253 0-2.265-1.014-2.265-2.265z "></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M11.979 0C5.678 0 .511 4.86.022 11.037l6.432 2.658c.545-.371 1.203-.59 1.912-.59.063 0 .125.004.188.006l2.861-4.142V8.91c0-2.495 2.028-4.524 4.524-4.524 2.494 0 4.524 2.031 4.524 4.527s-2.03 4.525-4.524 4.525h-.105l-4.076 2.911c0 .052.004.105.004.159 0 1.875-1.515 3.396-3.39 3.396-1.635 0-3.016-1.173-3.331-2.727L.436 15.27C1.862 20.307 6.486 24 11.979 24c6.627 0 11.999-5.373 11.999-12S18.605 0 11.979 0zM7.54 18.21l-1.473-.61c.262.543.714.999 1.314 1.25 1.297.539 2.793-.076 3.332-1.375.263-.63.264-1.319.005-1.949s-.75-1.121-1.377-1.383c-.624-.26-1.29-.249-1.878-.03l1.523.63c.956.4 1.409 1.5 1.009 2.455-.397.957-1.497 1.41-2.454 1.012H7.54zm11.415-9.303c0-1.662-1.353-3.015-3.015-3.015-1.665 0-3.015 1.353-3.015 3.015 0 1.665 1.35 3.015 3.015 3.015 1.663 0 3.015-1.35 3.015-3.015zm-5.273-.005c0-1.252 1.013-2.266 2.265-2.266 1.249 0 2.266 1.014 2.266 2.266 0 1.251-1.017 2.265-2.266 2.265-1.253 0-2.265-1.014-2.265-2.265z "></path></svg>

2
img/twitch.svg

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="#90489C" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M2.089 0L.525 4.175v16.694h5.736V24h3.132l3.127-3.132h4.695l6.26-6.258V0H2.089zm2.086 2.085H21.39v11.479l-3.652 3.652H12l-3.127 3.127v-3.127H4.175V2.085zM9.915 12.522H12v-6.26H9.915v6.26zm5.735 0h2.086v-6.26H15.65v6.26z "></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M2.089 0L.525 4.175v16.694h5.736V24h3.132l3.127-3.132h4.695l6.26-6.258V0H2.089zm2.086 2.085H21.39v11.479l-3.652 3.652H12l-3.127 3.127v-3.127H4.175V2.085zM9.915 12.522H12v-6.26H9.915v6.26zm5.735 0h2.086v-6.26H15.65v6.26z "></path></svg>

2
img/twitter.svg

@ -1 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18" height="18" fill="#EB5757" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z "></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="#ffffff" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path fill-rule="nonzero" d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z "></path></svg>

201
index.html

@ -1,154 +1,73 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Colin McMillen</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- import the webpage's stylesheet -->
<link href="https://fonts.googleapis.com/css?family=Fira+Mono:500,700|Press+Start+2P" rel="stylesheet">
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="style.css">
<!-- to demonstrate syntax highlighting -->
<!-- <link rel="stylesheet" href="/pygments-monokai.css"> -->
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- import the webpage's javascript file -->
<script src="script.js" defer></script>
</head>
<body>
<title>Colin McMillen</title>
<!-- SVG images originally from (e.g.) https://microicon-clone.vercel.app/github/18/EB5757 -->
<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">
<link rel="icon" type="image/png" href="/favicon.ico">
<link rel="canonical" href="https://www.mcmillen.dev/">
<!-- TODO: add apple touch icon, maybe other favicon sizes -->
</head>
<header>
<h1>
<a href="/">Colin McMillen</a>
</h1>
</header>
<body>
<article class="box box-red box-layout-sidebar">
<h2 class="box-header">
ABOUT
</h2>
<div class="box-content">
<p>Lead developer at <a href="https://semicolin.games">SemiColin Games</a>, working on a stealth-based 2D platformer.</p>
<p>Previously @ Google, reCAPTCHA, Carnegie Mellon.</p>
<p><span><img src="/img/pin.svg"/></span> Boston</p>
</div>
<div class="box-footer">
<a href="https://twitter.com/mcmillen" class="btn">@mcmillen <span><img src="/img/twitter.svg"/></span></a>
<a href="https://github.com/mcmillen" class="btn">GitHub <span><img src="/img/github.svg"/></span></a>
<a href="https://tinyletter.com/mcmillen" class="btn">Newsletter <span><img src="/img/forum.svg"/></span></a>
<a href="mailto:me@famicol.in" class="btn">Email<span><img src="/img/email.svg"/></span></a>
</div>
</article>
<article class="box box-purple box-layout-sidebar">
<h2 class="box-header">
GAMING
</h2>
<div class="box-content">
<p>
I stream Splatoon, Monster Hunter, Total War, and retro games!
</p>
<p>
<span><img src="/img/nintendoswitch.svg" alt="Switch" title="Switch"/></span> SW-1906-3662-4308 <br>
</p>
</div>
<div class="box-footer">
<a href="https://twitch.tv/FamiColin" class="btn">FamiColin <span><img src="/img/twitch.svg"/></span></a>
<a href="https://steamcommunity.com/id/FamiColin/" class="btn">FamiColin <span><img src="/img/steam.svg"/></span></a>
<a href="https://psnprofiles.com/robomancer" class="btn">robomancer <span><img src="/img/playstation.svg"/></span></a>
</div>
</article>
<article class="box box-gray box-layout-fullwidth">
<h2 class="box-header">
AMUSEMENTS
</h2>
<div class="box-content">
<p>
Some silly things I've done.
</p>
</div>
<div class="box-footer">
<a href="sigbovik/" class="btn">93% of Paint Splatters are Valid Perl Programs <span class="arrow"></span></a>
<a href="language_checklist.html" class="btn">Programming Languages Checklist <span class="arrow"></span></a>
<a href="https://twitter.com/mcmillen/status/1095795492196364297" class="btn">ohnosay<span class="arrow"></span></a>
</div>
</article>
<article class="box box-gray box-layout-default">
<h2 class="box-header">
APRIL 2019 UPDATE
</h2>
<div class="box-content">
<p>
On my <a href="/sigbovik/index.html">SIGBOVIK paper</a>: &ldquo;93% of Paint Splatters are Valid Perl Programs&rdquo;, gardening, healthcare, and more.
</p>
<p><a href="https://tinyletter.com/mcmillen/letters/my-first-paper-in-10-years"><img src="https://gallery.tinyletterapp.com/76b879b0e95d11cda4d7d21283ce7d32a4f76e09/images/63d8cc7b-9d70-493c-9f64-1aa7da5b9426.png"></a></p>
</div>
<div class="box-footer">
<a href="https://tinyletter.com/mcmillen/letters/my-first-paper-in-10-years" class="btn">READ MORE <span class="arrow"></span></a>
<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="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span>
</div>
</article>
<article class="box box-gray box-layout-default">
<h2 class="box-header">
RESUME
</h2>
<div class="box-content">
<!-- TODO: add SemiColin Games -->
<h3>Google</h3>
<p>
Staff Software Engineer<br>
September 2009 &mdash; February 2019
</p>
<p>Projects:
<a href="https://canvas.apps.chrome">Chrome Canvas</a>,
<a href="https://www.androidauthority.com/google-handwriting-keyboard-android-wear-2-0-devices-764084/">Android Wear handwriting</a>,
<a href="https://digitalattackmap.com">Digital Attack Map</a>,
<a href="https://www.google.com/search?q=define+mortgage">Google Dictionary</a>,
<a href="https://translate.google.com">Google Translate</a>,
<a href="https://books.google.com">Google Books</a>, &amp;
<a href="https://www.google.com/recaptcha">reCAPTCHA.</a></p>
<!-- TODO: add Memegen, somehow. Google+? -->
</div>
<h3>reCAPTCHA</h3>
<p>
Co-Founder &amp; Software Engineer<br>
June 2007 &mdash; September 2009
</p>
<div class="content">
<h1 id="welcome">Welcome!</h1>
<p>I&rsquo;m the lead developer at <a href="https://www.semicolin.games">SemiColin Games</a> in Somerville, MA.<br>
Previously at Google, reCAPTCHA, &amp; Carnegie Mellon.</p>
<!-- SVG icons from https://microicon-clone.vercel.app/git/24/FFFFFF -->
<h3>Carnegie Mellon University</h3>
<p>
Ph.D. Computer Science<br>
September 2003 &mdash; May 2009
</p>
<p><a href="https://twitter.com/mcmillen"><img alt="@mcmillen" src="/img/twitter.svg"></a> <a href="https://twitter.com/mcmillen">@mcmillen</a></p>
<p><a href="https://git.mcmillen.dev/mcmillen?tab=activity"><img alt="Git" src="/img/git.svg"></a> <a href="https://git.mcmillen.dev/mcmillen?tab=activity">git.mcmillen.dev</a></p>
<p>For more details, check my <a href="resume.html">resumé</a> &amp; <a href="publications.html">publications</a>.</p>
<h2 id="recent-posts">Recent Posts</h2>
<p>You can sign up for occasional updates via my <a href="https://tinyletter.com/mcmillen">email newsletter</a>.</p>
<ul>
<li>
<p><a href="sigbovik/">93% of Paint Splatters are Valid Perl Programs</a><br>
In this paper, we aim to answer a long-standing open problem in the programming languages community: is it possible to smear paint on the wall without creating valid Perl?</p>
</li>
<li>
<p><a href="language_checklist.html">Programming Language Checklist</a><br>
You appear to be advocating a new programming language. Your language will not work. Here is why it will not work.</p>
</li>
<li>
<p><a href="https://twitter.com/mcmillen/status/1095795492196364297">ohnosay</a></p>
</li>
</ul>
<h2 id="videogames">Videogames</h2>
<p>Currently playing: <strong>Persona 5</strong>, <strong>Monster Hunter Rise</strong>, &amp; <strong>Slipways</strong>.<br>
Sometimes I stream on Twitch!</p>
<p><a href="https://twitch.tv/FamiColin"><img alt="Twitch" src="/img/twitch.svg"></a> <a href="https://twitch.tv/FamiColin">FamiColin</a></p>
<p><a href="https://steamcommunity.com/id/FamiColin/"><img alt="Steam" src="/img/steam.svg"></a> <a href="https://steamcommunity.com/id/FamiColin/">FamiColin</a></p>
<p><a href="https://psnprofiles.com/robomancer"><img alt="PlayStation" src="/img/playstation.svg"></a> <a href="https://psnprofiles.com/robomancer">robomancer</a></p>
<p><img alt="Nintendo Switch" src="/img/nintendoswitch.svg"> SW-1906-3662-4308</p>
</div>
</div>
<h3>University of Minnesota</h3>
<p>
B.S. Computer Science<br>
September 1999 &mdash; May 2003
</p>
</div>
<div class="box-footer">
<a href="publications.html" class="btn">PUBLICATIONS <span class="arrow"></span></a>
</div>
</article>
<div id="footer">
<div class="content">
&copy 2021 <a href="/" class="undecorated">Colin McMillen</a>.
</div>
</div>
</div>
<footer>
<div class="content">
<p>
(C) 2021 Colin McMillen<br>
[but if you want to use anything, just ask!]
</p>
<p>
Designed by <a href="https://melody.dev">Melody</a>!<br>
If you want a well-designed site of your own, I heartily recommend working with them!
</p>
</div>
</footer>
</body>
</body>
</html>

19
language_checklist.html

@ -1,21 +1,8 @@
<html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Programming Language Checklist
</title>
<title>Programming Language Checklist</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-25704949-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<tt>

BIN
papers/Ketter-2004-AAMAS-workshop.pdf

BIN
papers/Ketter-2004-AAMAS.pdf

141
publications.html

@ -1,126 +1,105 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>Colin McMillen</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- import the webpage's stylesheet -->
<link href="https://fonts.googleapis.com/css?family=Fira+Mono:500,700|Press+Start+2P" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- and favicon -->
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<title>Publications | Colin McMillen</title>
<!-- and Java the scripts. -->
<script src="script.js" defer></script>
</head>
<body>
<header>
<h1>
<a href="/">Colin McMillen</a>
</h1>
</header>
<article class="content">
<h2>
Publications
</h2>
<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">
<link rel="icon" type="image/png" href="/favicon.ico">
<link rel="canonical" href="https://www.mcmillen.dev/publications.html">
<!-- TODO: add apple touch icon, maybe other favicon sizes -->
</head>
<h3>Ph.D. Thesis</h3>
<p><span class="highlight-green"><a href="papers/mcmillen-thesis.pdf">Thresholded-Rewards Decision Problems: Acting Effectively in Timed Domains.</a></span><br>
Colin McMillen.<br>
Technical report CMU-CS-09-112, Carnegie Mellon University, April 2, 2009.</p>
<body>
<h3>Journal Articles</h3>
<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="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span>
</div>
</div>
<p><span class="highlight-green"><a href="http://www.sciencemag.org/cgi/content/abstract/321/5895/1465">reCAPTCHA: Human-Based Character Recognition via Web Security Measures.</a></span><br>
<div class="content">
<h1 id="publications">Publications</h1>
<h2 id="phd-thesis">Ph.D. Thesis</h2>
<p><a href="papers/mcmillen-thesis.pdf">Thresholded-Rewards Decision Problems: Acting Effectively in Timed Domains.</a><br>
Colin McMillen.<br>
Technical report CMU-CS-09-112, Carnegie Mellon University, April 2, 2009.</p>
<h2 id="journal-articles">Journal Articles</h2>
<p><a href="http://www.sciencemag.org/cgi/content/abstract/321/5895/1465">reCAPTCHA: Human-Based Character Recognition via Web Security Measures.</a><br>
Luis von Ahn, Benjamin Maurer, Colin McMillen, David Abraham, and Manuel Blum.<br>
Science, 12 September 2008: 1465-1468.</p>
<p><span class="highlight-green">A Team of Humanoid Game Commentators.</span><br>
<p><a href="https://www.cs.cmu.edu/~mmv/papers/08ijhr-cmcast.pdf">A Team of Humanoid Game Commentators.</a><br>
Manuela Veloso, Nicholas Armstrong-Crews, Sonia Chernova, Elisabeth Crawford, Colin McMillen, Maayan Roth, and Douglas Vail.<br>
International Journal of Humanoid Robotics, 2008.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2003-RAS-final.pdf">Resource Scheduling and Load Balancing in Distributed Robotic Control Systems.</a></span><br>
<p><a href="papers/McMillen-2003-RAS-final.pdf">Resource Scheduling and Load Balancing in Distributed Robotic Control Systems.</a><br>
Colin McMillen, Kristen Stubbs, Paul E. Rybski, Sascha A. Stoeter, Maria Gini, and Nikolaos Papanikolopoulos.<br>
Robotics and Autonomous Systems, 2003.</p>
<p><span class="highlight-green"><a href="papers/Stoeter-2002-RAS-final.pdf">A Robot Team for Surveillance Tasks: Design and Architecture.</a></span><br>
<p><a href="papers/Stoeter-2002-RAS-final.pdf">A Robot Team for Surveillance Tasks: Design and Architecture.</a><br>
Sascha A. Stoeter, Paul E. Rybski, Kristen N. Stubbs, Colin McMillen, Maria Gini, Dean F. Hougen, and Nikolaos Papanikolopoulos.<br>
Robotics and Autonomous Systems, August 2002.</p>
<h3>Refereed Conference Papers</h3>
<p><span class="highlight-green">Analysis of Multi-Robot Play Effectiveness and of Distributed Incidental Play Recognition.</span><br>
<h2 id="refereed-conference-papers">Refereed Conference Papers</h2>
<p><a href="http://www.cs.cmu.edu/~mmv/papers/08dars-colin.pdf">Analysis of Multi-Robot Play Effectiveness and of Distributed Incidental Play Recognition.</a><br>
Colin McMillen and Manuela Veloso.<br>
Proceedings of Distributed Autonomous Robotic Systems (DARS 2008), November 2008.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2008-AAAI-final.pdf">Unknown Rewards in Finite-Horizon Domains.</a></span><br>
<p><a href="papers/McMillen-2008-AAAI-final.pdf">Unknown Rewards in Finite-Horizon Domains.</a><br>
Colin McMillen and Manuela Veloso.<br>
Proceedings of the Twenty-Second Conference on Artificial Intelligence (AAAI-08), July 2008.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2007-AAAI-final.pdf">Thresholded Rewards: Acting Optimally in Timed, Zero-Sum Games.</a></span><br>
<p><a href="papers/McMillen-2007-AAAI-final.pdf">Thresholded Rewards: Acting Optimally in Timed, Zero-Sum Games.</a><br>
Colin McMillen and Manuela Veloso.<br>
Proceedings of the Twenty-Second Conference on Artificial Intelligence (AAAI-07), July 2007.<br>
<span class="highlight">AAAI-07 Outstanding Paper Award</span>
<p><span class="highlight-green"><a href="papers/Veloso-2006-Humanoids.pdf">A Team of Humanoid Game Commentators.</a></span><br>
<em>AAAI-07 Outstanding Paper Award</em></p>
<p><a href="papers/Veloso-2006-Humanoids.pdf">A Team of Humanoid Game Commentators.</a><br>
Manuela Veloso, Nicholas Armstrong-Crews, Sonia Chernova, Elisabeth Crawford, Colin McMillen, Maayan Roth, and Douglas Vail.<br>
Proceedings of the IEEE-RAS International Conference on Humanoid Robots (Humanoids'06), Genova, Italy, December 2006.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2006-DARS-final.pdf">Distributed, Play-Based Role Assignment for Robot Teams in Dynamic Environments.</a></span><br>
Proceedings of the IEEE-RAS International Conference on Humanoid Robots (Humanoids&lsquo;06), Genova, Italy, December 2006.</p>
<p><a href="papers/McMillen-2006-DARS-final.pdf">Distributed, Play-Based Role Assignment for Robot Teams in Dynamic Environments.</a><br>
Colin McMillen and Manuela Veloso.<br>
Proceedings of DARS 2006, Minneapolis, MN, July 2006.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2006-RoboCup-final.pdf">Distributed, Play-Based Coordination for Robot Teams in Dynamic Environments.</a></span><br>
<p><a href="papers/McMillen-2006-RoboCup-final.pdf">Distributed, Play-Based Coordination for Robot Teams in Dynamic Environments.</a><br>
Colin McMillen and Manuela Veloso.<br>
Proceedings of the RoboCup International Symposium, Bremen, Germany, June 2006.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2005-NRL-final.pdf">Levels of Multi-Robot Coordination for Dynamic Environments.</a></span><br>
<p><a href="papers/McMillen-2005-NRL-final.pdf">Levels of Multi-Robot Coordination for Dynamic Environments.</a><br>
Colin McMillen, Paul Rybski, and Manuela Veloso.<br>
Multi-Robot Systems: From Swarms to Intelligent Automata, Volume III, 2005.</p>
<p><span class="highlight-green">MinneTAC Sales Strategies for Supply Chain TAC.</span><br>
<p><a href="papers/Ketter-2004-AAMAS.pdf">MinneTAC Sales Strategies for Supply Chain TAC.</a><br>
Wolfgang Ketter, Elena Kryzhnyaya, Steven Damer, Colin McMillen, Amrudin Agovic, John Collins, and Maria Gini.<br>
Proceedings of the Third International Conference on Autonomous Agents and Multi-Agent Systems, New York, July 2004.</p>
<p><span class="highlight-green">Analysis and Design of Supply-Driven Strategies in TAC-SCM.</span><br>
<p><a href="papers/Ketter-2004-AAMAS-workshop.pdf">Analysis and Design of Supply-Driven Strategies in TAC SCM.</a><br>
Wolfgang Ketter, Elena Kryzhnyaya, Steven Damer, Colin McMillen, Amrudin Agovic, John Collins, and Maria Gini.<br>
AAMAS04: Workshop on Trading Agent Design and Analysis, New York, July 2004.</p>
<p><span class="highlight-green"><a href="papers/Stubbs-2003-ITSA-final.pdf">A Real-Time Collision Warning System for Intersections.</a></span><br>
<p><a href="papers/Stubbs-2003-ITSA-final.pdf">A Real-Time Collision Warning System for Intersections.</a><br>
Kristen Stubbs, Hemanth Arumugam, Osama Masoud, Colin McMillen, Harini Veeraraghavan, Ravi Janardan, and Nikos Papanikolopoulos.<br>
Proceedings of Intelligent Transportation Systems America, Minneapolis, MN, USA, May 2003.</p>
<p><span class="highlight-green"><a href="papers/Kratochvil-2003-ICRA-final.pdf">Heterogeneous Implementation of an Adaptive Robotic Sensing Team.</a></span><br>
<p><a href="papers/Kratochvil-2003-ICRA-final.pdf">Heterogeneous Implementation of an Adaptive Robotic Sensing Team.</a><br>
Bradley Kratochvil, Ian T. Burt, Andrew Drenner, Derek Goerke, Bennett Jackson, Colin McMillen, Christopher Olson, Nikolaos Papanikolopoulos, Adam Pfeifer, Sascha A. Stoeter, Kristen Stubbs, and David Waletzko.<br>
Proceedings of the IEEE International Conference on Robotics and Automation, Taipei, Taiwan, May 2003.</p>
<p><span class="highlight-green"><a href="papers/Drenner-2002-NRL-final.pdf">Design of the UMN Multi-Robot System.</a></span><br>
<p><a href="papers/Drenner-2002-NRL-final.pdf">Design of the UMN Multi-Robot System.</a><br>
Andrew Drenner, Ian Burt, Brian Chapeau, Tom Dahlin, Bradley Kratochvil, Colin McMillen, Brad Nelson, Nikolaos Papanikolopoulos, Paul E. Rybski, Kristen Stubbs, David Waletzko, and Kemal Berk Yesin.<br>
Multi-Robot Systems: From Swarms to Intelligent Automata, May 2002.</p>
<p><span class="highlight-green"><a href="papers/Drenner-2002-ICRA-final.pdf">Mobility Enhancements to the Scout Robot Platform.</a></span><br>
<p><a href="papers/Drenner-2002-ICRA-final.pdf">Mobility Enhancements to the Scout Robot Platform.</a><br>
Andrew Drenner, Ian Burt, Tom Dahlin, Bradley Kratochvil, Colin McMillen, Brad Nelson, Nikolaos Papanikolopoulos, Paul E. Rybski, Kristen Stubbs, David Waletzko, and Kemal Berk Yesin.<br>
Proceedings of the 2002 IEEE International Conference on Robotics and Automation, Washington D.C., USA, May 2002.</p>
<p><span class="highlight-green"><a href="papers/McMillen-2002-IAS-final.pdf">Resource Scheduling and Load Balancing in Distributed Robotic Control Systems</a>.</span><br>
<p><a href="papers/McMillen-2002-IAS-final.pdf">Resource Scheduling and Load Balancing in Distributed Robotic Control Systems.</a><br>
Colin McMillen, Kristen Stubbs, Paul E. Rybski, Sascha A. Stoeter, Maria Gini, and Nikolaos Papanikolopoulos.<br>
Proceedings of the International Conference on Intelligent Autonomous Systems, Marina del Rey, CA, U.S.A., March 2002.</p>
</article>
</div>
</div>
<footer>
<div class="content">
<p>
(c) 2020 Colin McMillen<br>
[but if you want to use anything, just ask!]
</p>
<p>
Designed by <a href="https://melody.dev">Melody</a>!<br>
If you want a well-designed site of your own, I heartily recommend working with them!
</p>
</div>
</footer>
</body>
<div id="footer">
<div class="content">
&copy 2021 <a href="/" class="undecorated">Colin McMillen</a>.
</div>
</div>
</div>
</body>
</html>

70
pygments.css

@ -0,0 +1,70 @@
.codehilite .hll { background-color: #49483e }
.codehilite { background: #272822; color: #f8f8f2 }
.codehilite .c { color: #75715e } /* Comment */
.codehilite .err { color: #960050; background-color: #1e0010 } /* Error */
.codehilite .k { color: #66d9ef } /* Keyword */
.codehilite .l { color: #ae81ff } /* Literal */
.codehilite .n { color: #f8f8f2 } /* Name */
.codehilite .o { color: #f92672 } /* Operator */
.codehilite .p { color: #f8f8f2 } /* Punctuation */
.codehilite .ch { color: #75715e } /* Comment.Hashbang */
.codehilite .cm { color: #75715e } /* Comment.Multiline */
.codehilite .cp { color: #75715e } /* Comment.Preproc */
.codehilite .cpf { color: #75715e } /* Comment.PreprocFile */
.codehilite .c1 { color: #75715e } /* Comment.Single */
.codehilite .cs { color: #75715e } /* Comment.Special */
.codehilite .gd { color: #f92672 } /* Generic.Deleted */
.codehilite .ge { font-style: italic } /* Generic.Emph */
.codehilite .gi { color: #a6e22e } /* Generic.Inserted */
.codehilite .gs { font-weight: bold } /* Generic.Strong */
.codehilite .gu { color: #75715e } /* Generic.Subheading */
.codehilite .kc { color: #66d9ef } /* Keyword.Constant */
.codehilite .kd { color: #66d9ef } /* Keyword.Declaration */
.codehilite .kn { color: #f92672 } /* Keyword.Namespace */
.codehilite .kp { color: #66d9ef } /* Keyword.Pseudo */
.codehilite .kr { color: #66d9ef } /* Keyword.Reserved */
.codehilite .kt { color: #66d9ef } /* Keyword.Type */
.codehilite .ld { color: #e6db74 } /* Literal.Date */
.codehilite .m { color: #ae81ff } /* Literal.Number */
.codehilite .s { color: #e6db74 } /* Literal.String */
.codehilite .na { color: #a6e22e } /* Name.Attribute */
.codehilite .nb { color: #f8f8f2 } /* Name.Builtin */
.codehilite .nc { color: #a6e22e } /* Name.Class */
.codehilite .no { color: #66d9ef } /* Name.Constant */
.codehilite .nd { color: #a6e22e } /* Name.Decorator */
.codehilite .ni { color: #f8f8f2 } /* Name.Entity */
.codehilite .ne { color: #a6e22e } /* Name.Exception */
.codehilite .nf { color: #a6e22e } /* Name.Function */
.codehilite .nl { color: #f8f8f2 } /* Name.Label */
.codehilite .nn { color: #f8f8f2 } /* Name.Namespace */
.codehilite .nx { color: #a6e22e } /* Name.Other */
.codehilite .py { color: #f8f8f2 } /* Name.Property */
.codehilite .nt { color: #f92672 } /* Name.Tag */
.codehilite .nv { color: #f8f8f2 } /* Name.Variable */
.codehilite .ow { color: #f92672 } /* Operator.Word */
.codehilite .w { color: #f8f8f2 } /* Text.Whitespace */
.codehilite .mb { color: #ae81ff } /* Literal.Number.Bin */
.codehilite .mf { color: #ae81ff } /* Literal.Number.Float */
.codehilite .mh { color: #ae81ff } /* Literal.Number.Hex */
.codehilite .mi { color: #ae81ff } /* Literal.Number.Integer */
.codehilite .mo { color: #ae81ff } /* Literal.Number.Oct */
.codehilite .sa { color: #e6db74 } /* Literal.String.Affix */
.codehilite .sb { color: #e6db74 } /* Literal.String.Backtick */
.codehilite .sc { color: #e6db74 } /* Literal.String.Char */
.codehilite .dl { color: #e6db74 } /* Literal.String.Delimiter */
.codehilite .sd { color: #e6db74 } /* Literal.String.Doc */
.codehilite .s2 { color: #e6db74 } /* Literal.String.Double */
.codehilite .se { color: #ae81ff } /* Literal.String.Escape */
.codehilite .sh { color: #e6db74 } /* Literal.String.Heredoc */
.codehilite .si { color: #e6db74 } /* Literal.String.Interpol */
.codehilite .sx { color: #e6db74 } /* Literal.String.Other */
.codehilite .sr { color: #e6db74 } /* Literal.String.Regex */
.codehilite .s1 { color: #e6db74 } /* Literal.String.Single */
.codehilite .ss { color: #e6db74 } /* Literal.String.Symbol */
.codehilite .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.codehilite .fm { color: #a6e22e } /* Name.Function.Magic */
.codehilite .vc { color: #f8f8f2 } /* Name.Variable.Class */
.codehilite .vg { color: #f8f8f2 } /* Name.Variable.Global */
.codehilite .vi { color: #f8f8f2 } /* Name.Variable.Instance */
.codehilite .vm { color: #f8f8f2 } /* Name.Variable.Magic */
.codehilite .il { color: #ae81ff } /* Literal.Number.Integer.Long */

60
resume.html

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Resumé | 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">
<link rel="icon" type="image/png" href="/favicon.ico">
<link rel="canonical" href="https://www.mcmillen.dev/resume.html">
<!-- TODO: add apple touch icon, maybe other favicon sizes -->
</head>
<body>
<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="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span>
</div>
</div>
<div class="content">
<h1 id="resume">Resumé</h1>
<h2 id="semicolin-games">SemiColin Games</h2>
<p>Lead Developer<br>
February 2019 &ndash; Present</p>
<h2 id="google">Google</h2>
<p>Staff Software Engineer<br>
September 2009 &ndash; February 2019</p>
<p>Projects: <a href="https://canvas.apps.chrome">Chrome Canvas</a>, <a href="https://www.androidauthority.com/google-handwriting-keyboard-android-wear-2-0-devices-764084/">Android Wear Handwriting</a>, <a href="https://digitalattackmap.com">Digital Attack Map</a>, <a href="https://www.google.com/search?q=define+mortgage">Google Dictionary</a>, <a href="https://translate.google.com">Google Translate</a>, <a href="https://books.google.com">Google Books</a>, &amp; <a href="https://www.google.com/recaptcha">reCAPTCHA</a>.</p>
<h2 id="recaptcha">reCAPTCHA</h2>
<p>Co-Founder &amp; Software Engineer<br>
June 2007 &ndash; September 2009</p>
<h2 id="carnegie-mellon-university">Carnegie Mellon University</h2>
<p>Ph.D. Computer Science<br>
September 2003 &ndash; May 2009</p>
<h2 id="university-of-minnesota">University of Minnesota</h2>
<p>B.S. Computer Science<br>
September 1999 &ndash; May 2003</p>
</div>
</div>
<div id="footer">
<div class="content">
&copy 2021 <a href="/" class="undecorated">Colin McMillen</a>.
</div>
</div>
</div>
</body>
</html>

128
sigbovik/index.html

@ -1,87 +1,67 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>SIGBOVIK: 93% of Paint Splatters are Valid Perl Programs &mdash; Colin McMillen</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- import the webpage's stylesheet -->
<link href="https://fonts.googleapis.com/css?family=Fira+Mono:500,700|Press+Start+2P" rel="stylesheet">
<link rel="stylesheet" href="../style.css">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- and favicon -->
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
<title>93% of Paint Splatters are Valid Perl Programs | Colin McMillen</title>
<!-- and Java the scripts. -->
<script src="../script.js" defer></script>
</head>
<body>
<header>
<h1>
<a href="/">Colin McMillen</a>
</h1>
</header>
<article class="content">
<h2>
93% of Paint Splatters are Valid Perl Programs
</h2>
<p>
Published April 1, 2019
</p>
<hr>
<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">
<link rel="icon" type="image/png" href="/favicon.ico">
<link rel="canonical" href="https://www.mcmillen.dev/sigbovik/">
<!-- TODO: add apple touch icon, maybe other favicon sizes -->
</head>
<p>TLDR: <a href="2019.pdf">read the paper</a> and <a href="splatters.html">view the gallery of pretty Perl programs</a>.</p>
<p>In this paper, we aim to answer a long-standing open problem in the programming languages community: <i>is it possible to smear paint on the wall without creating valid Perl?</i></p>
<body>
<p>We answer this question in the affirmative: it <b>is</b> possible to smear paint on the wall without creating a valid Perl program. We employ an empirical approach, using optical character recognition (OCR) software, which finds that merely 93% of paint splatters parse as valid Perl. We analyze the properties of paint-splatter Perl programs, and present seven examples of paint splatters which are not valid Perl programs.</p>
<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="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span>
</div>
</div>
<div class="content">
<h1 id="93-of-paint-splatters-are-valid-perl-programs">93% of Paint Splatters are Valid Perl Programs</h1>
<p>Published 2019-04-01.</p>
<p>TLDR: <a href="2019.pdf">read the paper</a> and <a href="splatters.html">view the gallery of pretty Perl programs</a>.</p>
<p>In this paper, we aim to 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>We answer this question in the affirmative: it <strong>is possible</strong> to smear paint on the wall without creating a valid Perl program. We employ an empirical approach, using optical character recognition (OCR) software, which finds that merely 93% of paint splatters parse as valid Perl. We analyze the properties of paint-splatter Perl programs, and present seven examples of paint splatters which are not valid Perl programs.</p>
<blockquote class="twitter-tweet" data-lang="en"><p lang="en" dir="ltr">but is it possible to smear paint on the wall without creating valid Perl?</p>&mdash; Jake Archibald (@jaffathecake) <a href="https://twitter.com/jaffathecake/status/1095706032448393217?ref_src=twsrc%5Etfw">February 13, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>Accepted for publication at SIGBOVIK 2019, held April 1st 2019 in Pittsburgh. Winner of a Unwitting Participation Ribbon, "an unwelcome brand we’ve affixed to each paper determined after careful scrutiny to have included a genuine artifact, thereby furthering the admirable causes of open science and fruitful procrastination."</p>
<p>Read it on <a href="https://docs.google.com/document/d/1ZGGNMfmfpWB-DzWS3Jr-YLcRNRjhp3FKS6v0KELxXK8/preview">Google Docs</a> or download a <a href="2019.pdf">PDF</a>. Or grab the <a href="http://sigbovik.org/2019/proceedings.pdf">entire SIGBOVIK 2019 proceedings</a>; I'm on page 174.</p>
<h3>Supplementary Materials</h3>
<p>Here's <a href="splatters.html">all the paint splatters</a> on a single page, along with the valid Perl source code corresponding to each. "Not valid" is written in red for those images which did not parse as valid Perl programs. If different OCR settings recognized multiple valid Perl programs, I chose the one that seemed the most "interesting", according to my own aesthetic sense.</p>
<p>Here's a <a href="splatters.tar.gz">tarball of 100 paint-splatter images</a> that were used as the main dataset for this paper.</p>
<p class="highlight">(source code not available yet because i am bad at GitHub)</p>
<h3>Errata</h3>
<p>There are a few paint splatter Perl programs that I didn't recognize as "interesting" until after the SIGBOVIK submission deadline. For example, this splatter is recognized by OCR as the string <code>lerzfijglpFiji-j</code>, which evaluates to the number <code>0</code> in Perl:</p>
<p><img src="splatters/6b78f8696b05f9322b2dda21b6932776.jpg" width="300"></p>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>Accepted for publication at SIGBOVIK 2019, held April 1st 2019 in Pittsburgh. Winner of a Unwitting Participation Ribbon, &ldquo;an unwelcome brand we’ve affixed to each paper determined after careful scrutiny to have included a genuine artifact, thereby furthering the admirable causes of open science and fruitful procrastination.&rdquo;</p>
<p>Read it on <a href="https://docs.google.com/document/d/1ZGGNMfmfpWB-DzWS3Jr-YLcRNRjhp3FKS6v0KELxXK8/preview">Google Docs</a> or download a <a href="2019.pdf">PDF</a>. Or grab the <a href="http://sigbovik.org/2019/proceedings.pdf">entire SIGBOVIK 2019 proceedings</a>; I&rsquo;m on page 174.</p>
<h2 id="supplementary-materials">Supplementary Materials</h2>
<p>Here&rsquo;s <a href="splatters.html">all the paint splatters</a> on a single page, along with the valid Perl source code corresponding to each. &ldquo;Not valid&rdquo; is written in red for those images which did not parse as valid Perl programs. If different OCR settings recognized multiple valid Perl programs, I chose the one that seemed the most &ldquo;interesting&rdquo;, according to my own aesthetic sense.</p>
<p>Here&rsquo;s a <a href="splatters.tar.gz">tarball of 100 paint-splatter images</a> that were used as the main dataset for this paper.</p>
<p><strong>(source code not available yet because i am bad at GitHub)</strong></p>
<h2 id="errata">Errata</h2>
<p>There are a few paint splatter Perl programs that I didn&rsquo;t recognize as &ldquo;interesting&rdquo; until after the SIGBOVIK submission deadline. For example, this splatter is recognized by OCR as the string <code>lerzfijglpFiji-j</code>, which evaluates to the number <code>0</code> in Perl:</p>
<p><img alt="paint splatter" src="splatters/6b78f8696b05f9322b2dda21b6932776.jpg"></p>
<p>The image below is recognized as the string <code>-*?</code>, which also evaluates to the number <code>0</code> in Perl:</p>
<p><img src="splatters/e47b8463b359906947c66ec4c852a2a3.jpg" width="300"></p>
<p>Another surprising program is shown below; OCR recognizes this image as the string <code>;i;c;;#\\?z{;?;;fn':.;</code>,
which evaluates to the string <code>c</code> in Perl:</p>
<p><img src="splatters/803dd5a54c42ed93462c78ad7da357b0.jpg" width="300"></p>
<p>Finally, this image is recognized as the string <code>;E,'__'</code>, which evaluates to the string </code>E__</code> in Perl:</p>
<p><img src="splatters/dc86c1c3553705b7b2f973d5be9e0389.jpg" width="300"></p>
<footer>
<div class="content">
<p>
(c) 2020 Colin McMillen<br>
[but if you want to use anything, just ask!]
</p>
<p>
Designed by <a href="https://melody.dev">Melody</a>!<br>
If you want a well-designed site of your own, I heartily recommend working with them!
</p>
</div>
</footer>
</body>
<p><img alt="paint splatter" src="splatters/e47b8463b359906947c66ec4c852a2a3.jpg"></p>
<p>Another surprising program is shown below; OCR recognizes this image as the string <code>;i;c;;#\\?z{;?;;fn':.;</code>, which evaluates to the string <code>c</code> in Perl:</p>
<p><img alt="paint splatter" src="splatters/803dd5a54c42ed93462c78ad7da357b0.jpg"></p>
<p>Finally, this image is recognized as the string <code>;E,'__'</code>, which evaluates to the string <code>E__</code> in Perl:</p>
<p><img alt="paint splatter" src="splatters/dc86c1c3553705b7b2f973d5be9e0389.jpg"></p>
</div>
</div>
<div id="footer">
<div class="content">
&copy 2021 <a href="/" class="undecorated">Colin McMillen</a>.
</div>
</div>
</div>
</body>
</html>

105
sigbovik/splatters.html

@ -1,5 +1,7 @@
<html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<style>
body {
background-color: #eeeeee;
@ -24,106 +26,207 @@ img {
</style>
</head>
<body>
<div>7<br><a href="http://famicol.in/sigbovik/splatters/021ffa282879eac1450add144f262de0.jpg"><img src="http://famicol.in/sigbovik/splatters/021ffa282879eac1450add144f262de0.jpg"></img></a></div>
<div>pg<br><a href="http://famicol.in/sigbovik/splatters/05a811a023380984552465557c624686.jpg"><img src="http://famicol.in/sigbovik/splatters/05a811a023380984552465557c624686.jpg"></img></a></div>
<div>35<br><a href="http://famicol.in/sigbovik/splatters/05ae4326a4be520dbd9237516535daa8.jpg"><img src="http://famicol.in/sigbovik/splatters/05ae4326a4be520dbd9237516535daa8.jpg"></img></a></div>
<div>figigigg<br><a href="http://famicol.in/sigbovik/splatters/0794dc32229bdd534ec2957200bb2298.jpg"><img src="http://famicol.in/sigbovik/splatters/0794dc32229bdd534ec2957200bb2298.jpg"></img></a></div>
<div>al<br><a href="http://famicol.in/sigbovik/splatters/09a846e599191f046ab08cc8b99f4c8f.jpg"><img src="http://famicol.in/sigbovik/splatters/09a846e599191f046ab08cc8b99f4c8f.jpg"></img></a></div>
<div>hd<br><a href="http://famicol.in/sigbovik/splatters/0dc187835240f26d024f81296656d208.jpg"><img src="http://famicol.in/sigbovik/splatters/0dc187835240f26d024f81296656d208.jpg"></img></a></div>
<div>Q<br><a href="http://famicol.in/sigbovik/splatters/0f0920ff2d0894ea2654a1f6d6282fad.jpg"><img src="http://famicol.in/sigbovik/splatters/0f0920ff2d0894ea2654a1f6d6282fad.jpg"></img></a></div>
<div>Nok<br><a href="http://famicol.in/sigbovik/splatters/0f8c4850b5d267050a7f4596d9f5b5c5.jpg"><img src="http://famicol.in/sigbovik/splatters/0f8c4850b5d267050a7f4596d9f5b5c5.jpg"></img></a></div>
<div>ME<br><a href="http://famicol.in/sigbovik/splatters/13d4b56697d79b873de7e1bb26310155.jpg"><img src="http://famicol.in/sigbovik/splatters/13d4b56697d79b873de7e1bb26310155.jpg"></img></a></div>
<div>twisg;<br><a href="http://famicol.in/sigbovik/splatters/1499f3f5d02e7d0f875937c95fcc86ff.jpg"><img src="http://famicol.in/sigbovik/splatters/1499f3f5d02e7d0f875937c95fcc86ff.jpg"></img></a></div>
<div>;L#s<br><a href="http://famicol.in/sigbovik/splatters/1d8aa75298a239bd9819a3f9c351f27a.jpg"><img src="http://famicol.in/sigbovik/splatters/1d8aa75298a239bd9819a3f9c351f27a.jpg"></img></a></div>
<div>3<br><a href="http://famicol.in/sigbovik/splatters/2186470222fd07109d8fe3b09ac03b54.jpg"><img src="http://famicol.in/sigbovik/splatters/2186470222fd07109d8fe3b09ac03b54.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/24bd1f97c6c8eee787e038f7554f90f7.jpg"><img src="http://famicol.in/sigbovik/splatters/24bd1f97c6c8eee787e038f7554f90f7.jpg"></img></a></div>
<div>ee<br><a href="http://famicol.in/sigbovik/splatters/2865f29b233ed75eff6a9d95ef0460df.jpg"><img src="http://famicol.in/sigbovik/splatters/2865f29b233ed75eff6a9d95ef0460df.jpg"></img></a></div>
<div>giissfigg;<br><a href="http://famicol.in/sigbovik/splatters/2e3495ff68e4c67d42ebae3220ec1c59.jpg"><img src="http://famicol.in/sigbovik/splatters/2e3495ff68e4c67d42ebae3220ec1c59.jpg"></img></a></div>
<div>dail<br><a href="http://famicol.in/sigbovik/splatters/32cac360cde2d9691238faae03d1de5f.jpg"><img src="http://famicol.in/sigbovik/splatters/32cac360cde2d9691238faae03d1de5f.jpg"></img></a></div>
<div>i<br><a href="http://famicol.in/sigbovik/splatters/3490a4faaed2e57fd6afd51163711d74.jpg"><img src="http://famicol.in/sigbovik/splatters/3490a4faaed2e57fd6afd51163711d74.jpg"></img></a></div>
<div>E'TLI<br><a href="http://famicol.in/sigbovik/splatters/365fee3c7c0dfe9f2c05f1fd732f72e3.jpg"><img src="http://famicol.in/sigbovik/splatters/365fee3c7c0dfe9f2c05f1fd732f72e3.jpg"></img></a></div>
<div>twig<br><a href="http://famicol.in/sigbovik/splatters/3769ecd067ce29c56b4e0e345af40e0a.jpg"><img src="http://famicol.in/sigbovik/splatters/3769ecd067ce29c56b4e0e345af40e0a.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/379d341f9160004cbe96b941f1eca1cd.jpg"><img src="http://famicol.in/sigbovik/splatters/379d341f9160004cbe96b941f1eca1cd.jpg"></img></a></div>
<div>Gi<br><a href="http://famicol.in/sigbovik/splatters/382f38f28631ba7731545c274716be23.jpg"><img src="http://famicol.in/sigbovik/splatters/382f38f28631ba7731545c274716be23.jpg"></img></a></div>
<div>giauullif<br><a href="http://famicol.in/sigbovik/splatters/392d58552950dab259f13ce49f80608b.jpg"><img src="http://famicol.in/sigbovik/splatters/392d58552950dab259f13ce49f80608b.jpg"></img></a></div>
<div>Lif'tf<br><a href="http://famicol.in/sigbovik/splatters/3c99e597990a199bd6fe38c03399bb3b.jpg"><img src="http://famicol.in/sigbovik/splatters/3c99e597990a199bd6fe38c03399bb3b.jpg"></img></a></div>
<div>fj<br><a href="http://famicol.in/sigbovik/splatters/3e9871db212213b4094351f923e2c2bc.jpg"><img src="http://famicol.in/sigbovik/splatters/3e9871db212213b4094351f923e2c2bc.jpg"></img></a></div>
<div>4<br><a href="http://famicol.in/sigbovik/splatters/457be46011f9caaa6663c226cac375f0.jpg"><img src="http://famicol.in/sigbovik/splatters/457be46011f9caaa6663c226cac375f0.jpg"></img></a></div>
<div>i<br><a href="http://famicol.in/sigbovik/splatters/47224719e97e6dafd44d061be58e31d5.jpg"><img src="http://famicol.in/sigbovik/splatters/47224719e97e6dafd44d061be58e31d5.jpg"></img></a></div>
<div>Fififz<br><a href="http://famicol.in/sigbovik/splatters/495f0f164fba775d39f73143bbf6272b.jpg"><img src="http://famicol.in/sigbovik/splatters/495f0f164fba775d39f73143bbf6272b.jpg"></img></a></div>
<div>-3<br><a href="http://famicol.in/sigbovik/splatters/49fc93c0cffe62b9acc25c2d7cf0e22d.jpg"><img src="http://famicol.in/sigbovik/splatters/49fc93c0cffe62b9acc25c2d7cf0e22d.jpg"></img></a></div>
<div>Hav<br><a href="http://famicol.in/sigbovik/splatters/4b5d7475af04aaba18419618a9ba27e1.jpg"><img src="http://famicol.in/sigbovik/splatters/4b5d7475af04aaba18419618a9ba27e1.jpg"></img></a></div>
<div>i<br><a href="http://famicol.in/sigbovik/splatters/532c187eca9199c2d52736a6c2b8b298.jpg"><img src="http://famicol.in/sigbovik/splatters/532c187eca9199c2d52736a6c2b8b298.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/53a0783aea07a27cd3eed9acbb777f36.jpg"><img src="http://famicol.in/sigbovik/splatters/53a0783aea07a27cd3eed9acbb777f36.jpg"></img></a></div>
<div>5<br><a href="http://famicol.in/sigbovik/splatters/55323f860a41fe19678d6e271ac7f113.jpg"><img src="http://famicol.in/sigbovik/splatters/55323f860a41fe19678d6e271ac7f113.jpg"></img></a></div>
<div>ai;;;!i<br><a href="http://famicol.in/sigbovik/splatters/57973497b34e77e720e7d9ca36a9d4a3.jpg"><img src="http://famicol.in/sigbovik/splatters/57973497b34e77e720e7d9ca36a9d4a3.jpg"></img></a></div>
<div>gggijgziifiiffif<br><a href="http://famicol.in/sigbovik/splatters/59e25e3c279abf07e2f025df5753434c.jpg"><img src="http://famicol.in/sigbovik/splatters/59e25e3c279abf07e2f025df5753434c.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/59f5c5c7c53a21a290007e9335549d0a.jpg"><img src="http://famicol.in/sigbovik/splatters/59f5c5c7c53a21a290007e9335549d0a.jpg"></img></a></div>
<div>4<br><a href="http://famicol.in/sigbovik/splatters/5ac1f0bf431de5e695b2b39901e0aae2.jpg"><img src="http://famicol.in/sigbovik/splatters/5ac1f0bf431de5e695b2b39901e0aae2.jpg"></img></a></div>
<div>fwzzzeJ<br><a href="http://famicol.in/sigbovik/splatters/5af7c8a08114efeff7ea8c9786cbd668.jpg"><img src="http://famicol.in/sigbovik/splatters/5af7c8a08114efeff7ea8c9786cbd668.jpg"></img></a></div>
<div>0<br><a href="http://famicol.in/sigbovik/splatters/6001f57f25d7d6f61273369d89a137f1.jpg"><img src="http://famicol.in/sigbovik/splatters/6001f57f25d7d6f61273369d89a137f1.jpg"></img></a></div>
<div>k ,<br><a href="http://famicol.in/sigbovik/splatters/620bf8f26db47e0388c7ef178405e2bc.jpg"><img src="http://famicol.in/sigbovik/splatters/620bf8f26db47e0388c7ef178405e2bc.jpg"></img></a></div>
<div>ha<br><a href="http://famicol.in/sigbovik/splatters/646f93a2d62ad81932f2971a0d50e03e.jpg"><img src="http://famicol.in/sigbovik/splatters/646f93a2d62ad81932f2971a0d50e03e.jpg"></img></a></div>
<div>rwwwvwrli<br><a href="http://famicol.in/sigbovik/splatters/67f8c95d6e4457b1d6273978a8271b44.jpg"><img src="http://famicol.in/sigbovik/splatters/67f8c95d6e4457b1d6273978a8271b44.jpg"></img></a></div>
<div>55<br><a href="http://famicol.in/sigbovik/splatters/69b50dfb9e37ccee58d6c479679fe997.jpg"><img src="http://famicol.in/sigbovik/splatters/69b50dfb9e37ccee58d6c479679fe997.jpg"></img></a></div>
<div>lerzfijglpFiji-j<br><a href="http://famicol.in/sigbovik/splatters/6b78f8696b05f9322b2dda21b6932776.jpg"><img src="http://famicol.in/sigbovik/splatters/6b78f8696b05f9322b2dda21b6932776.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/6c9cadb5dd3d99f8d6e7a47fb4187921.jpg"><img src="http://famicol.in/sigbovik/splatters/6c9cadb5dd3d99f8d6e7a47fb4187921.jpg"></img></a></div>
<div>ilvh;<br><a href="http://famicol.in/sigbovik/splatters/73101ac558e340d544c5328e212a70f7.jpg"><img src="http://famicol.in/sigbovik/splatters/73101ac558e340d544c5328e212a70f7.jpg"></img></a></div>
<div>Ln<br><a href="http://famicol.in/sigbovik/splatters/75aa4c3d97267ed00922862e55f22afa.jpg"><img src="http://famicol.in/sigbovik/splatters/75aa4c3d97267ed00922862e55f22afa.jpg"></img></a></div>
<div>gigggwgz<br><a href="http://famicol.in/sigbovik/splatters/7bbe7993fb7559260b2ee0fca051883d.jpg"><img src="http://famicol.in/sigbovik/splatters/7bbe7993fb7559260b2ee0fca051883d.jpg"></img></a></div>
<div>8<br><a href="http://famicol.in/sigbovik/splatters/7dbfbab4c0b2424e4ed33c5e43bd722e.jpg"><img src="http://famicol.in/sigbovik/splatters/7dbfbab4c0b2424e4ed33c5e43bd722e.jpg"></img></a></div>
<div>I<br><a href="http://famicol.in/sigbovik/splatters/8014928641a63ece60712184d6ab69a6.jpg"><img src="http://famicol.in/sigbovik/splatters/8014928641a63ece60712184d6ab69a6.jpg"></img></a></div>
<div>;i;c;;#\\?z{;?;;fn':.;<br><a href="http://famicol.in/sigbovik/splatters/803dd5a54c42ed93462c78ad7da357b0.jpg"><img src="http://famicol.in/sigbovik/splatters/803dd5a54c42ed93462c78ad7da357b0.jpg"></img></a></div>
<div>i235<br><a href="http://famicol.in/sigbovik/splatters/80722cc87eb141f3831276f4765667ba.jpg"><img src="http://famicol.in/sigbovik/splatters/80722cc87eb141f3831276f4765667ba.jpg"></img></a></div>
<div>girl'd<br><a href="http://famicol.in/sigbovik/splatters/84c5ba67ac74412411a293f715207ce0.jpg"><img src="http://famicol.in/sigbovik/splatters/84c5ba67ac74412411a293f715207ce0.jpg"></img></a></div>
<div>225252<br><a href="http://famicol.in/sigbovik/splatters/85d78f517ced5f54574c99633bad68e8.jpg"><img src="http://famicol.in/sigbovik/splatters/85d78f517ced5f54574c99633bad68e8.jpg"></img></a></div>
<div>3<br><a href="http://famicol.in/sigbovik/splatters/8e5bf0ce7a9b214560b97ffdd59d5f92.jpg"><img src="http://famicol.in/sigbovik/splatters/8e5bf0ce7a9b214560b97ffdd59d5f92.jpg"></img></a></div>
<div>x<br><a href="http://famicol.in/sigbovik/splatters/8ef1933287b5e988a20c43908c53bb05.jpg"><img src="http://famicol.in/sigbovik/splatters/8ef1933287b5e988a20c43908c53bb05.jpg"></img></a></div>
<div>4<br><a href="http://famicol.in/sigbovik/splatters/921a35d524c026ec515fea5c1f33d507.jpg"><img src="http://famicol.in/sigbovik/splatters/921a35d524c026ec515fea5c1f33d507.jpg"></img></a></div>
<div>S<br><a href="http://famicol.in/sigbovik/splatters/95aedaf3cdfd08392ab84cc9ded66b63.jpg"><img src="http://famicol.in/sigbovik/splatters/95aedaf3cdfd08392ab84cc9ded66b63.jpg"></img></a></div>
<div>ed<br><a href="http://famicol.in/sigbovik/splatters/966ab4485ad012d840abeffe8080462c.jpg"><img src="http://famicol.in/sigbovik/splatters/966ab4485ad012d840abeffe8080462c.jpg"></img></a></div>
<div>Tl<br><a href="http://famicol.in/sigbovik/splatters/96cf0da8b742069caed3312ac4a52b4e.jpg"><img src="http://famicol.in/sigbovik/splatters/96cf0da8b742069caed3312ac4a52b4e.jpg"></img></a></div>
<div>2<br><a href="http://famicol.in/sigbovik/splatters/9be5eaae5cf909ed3f0ea76f59178e74.jpg"><img src="http://famicol.in/sigbovik/splatters/9be5eaae5cf909ed3f0ea76f59178e74.jpg"></img></a></div>
<div>gggigg<br><a href="http://famicol.in/sigbovik/splatters/9f6c1f9d2289c8f96fef83e94e3d8f48.jpg"><img src="http://famicol.in/sigbovik/splatters/9f6c1f9d2289c8f96fef83e94e3d8f48.jpg"></img></a></div>
<div>aid<br><a href="http://famicol.in/sigbovik/splatters/a0686b092cfd934677f4f4737f037468.jpg"><img src="http://famicol.in/sigbovik/splatters/a0686b092cfd934677f4f4737f037468.jpg"></img></a></div>
<div>5<br><a href="http://famicol.in/sigbovik/splatters/a2b0c408840abaa75e3fe42fc6705359.jpg"><img src="http://famicol.in/sigbovik/splatters/a2b0c408840abaa75e3fe42fc6705359.jpg"></img></a></div>
<div>E<br><a href="http://famicol.in/sigbovik/splatters/aa188371ea5a2d87d1d5db63d69a1668.jpg"><img src="http://famicol.in/sigbovik/splatters/aa188371ea5a2d87d1d5db63d69a1668.jpg"></img></a></div>
<div>I'jit<br><a href="http://famicol.in/sigbovik/splatters/aa95b53bf224ee468af3a147c2d82f1a.jpg"><img src="http://famicol.in/sigbovik/splatters/aa95b53bf224ee468af3a147c2d82f1a.jpg"></img></a></div>
<div>TE<br><a href="http://famicol.in/sigbovik/splatters/ab4bed600483311bf36cf18e8512d61c.jpg"><img src="http://famicol.in/sigbovik/splatters/ab4bed600483311bf36cf18e8512d61c.jpg"></img></a></div>
<div>Zi<br><a href="http://famicol.in/sigbovik/splatters/b2934929eb9a83502d8a0ff9f1fe68fe.jpg"><img src="http://famicol.in/sigbovik/splatters/b2934929eb9a83502d8a0ff9f1fe68fe.jpg"></img></a></div>
<div>ame<br><a href="http://famicol.in/sigbovik/splatters/b4d8b6d70c369aecef13cf570b3f73c4.jpg"><img src="http://famicol.in/sigbovik/splatters/b4d8b6d70c369aecef13cf570b3f73c4.jpg"></img></a></div>
<div>ng<br><a href="http://famicol.in/sigbovik/splatters/b73128e851809e27e75434f47312730f.jpg"><img src="http://famicol.in/sigbovik/splatters/b73128e851809e27e75434f47312730f.jpg"></img></a></div>
<div>io<br><a href="http://famicol.in/sigbovik/splatters/b9424bac0810564f33c9a1425ed5aa9a.jpg"><img src="http://famicol.in/sigbovik/splatters/b9424bac0810564f33c9a1425ed5aa9a.jpg"></img></a></div>
<div>Hav<br><a href="http://famicol.in/sigbovik/splatters/bb863da0353bce891ceeebd2f736cfec.jpg"><img src="http://famicol.in/sigbovik/splatters/bb863da0353bce891ceeebd2f736cfec.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/c16a2db30827ad2237ad2d55f5332cd3.jpg"><img src="http://famicol.in/sigbovik/splatters/c16a2db30827ad2237ad2d55f5332cd3.jpg"></img></a></div>
<div>J<br><a href="http://famicol.in/sigbovik/splatters/c2d059bbdc8fb3aa5c954ad23708af7b.jpg"><img src="http://famicol.in/sigbovik/splatters/c2d059bbdc8fb3aa5c954ad23708af7b.jpg"></img></a></div>
<div>Izg;<br><a href="http://famicol.in/sigbovik/splatters/c407f0e9c2b2590088fbc83190726ae1.jpg"><img src="http://famicol.in/sigbovik/splatters/c407f0e9c2b2590088fbc83190726ae1.jpg"></img></a></div>
<div>Bk<br><a href="http://famicol.in/sigbovik/splatters/c61df2fe47d7765ead0563b204fdc466.jpg"><img src="http://famicol.in/sigbovik/splatters/c61df2fe47d7765ead0563b204fdc466.jpg"></img></a></div>
<div>7<br><a href="http://famicol.in/sigbovik/splatters/d12b89583ccab378cfc9b3ead293efee.jpg"><img src="http://famicol.in/sigbovik/splatters/d12b89583ccab378cfc9b3ead293efee.jpg"></img></a></div>
<div>hi<br><a href="http://famicol.in/sigbovik/splatters/d7822031046fd4a2c34644cbfce71f1a.jpg"><img src="http://famicol.in/sigbovik/splatters/d7822031046fd4a2c34644cbfce71f1a.jpg"></img></a></div>
<div>b<br><a href="http://famicol.in/sigbovik/splatters/d9c370fe43b29d44831afab251e9dd7a.jpg"><img src="http://famicol.in/sigbovik/splatters/d9c370fe43b29d44831afab251e9dd7a.jpg"></img></a></div>
<div><span class="invalid">Not valid</span><br><a href="http://famicol.in/sigbovik/splatters/dbf32f8b88f7963e396cc33711c48611.jpg"><img src="http://famicol.in/sigbovik/splatters/dbf32f8b88f7963e396cc33711c48611.jpg"></img></a></div>
<div>;E,'__'<br><a href="http://famicol.in/sigbovik/splatters/dc86c1c3553705b7b2f973d5be9e0389.jpg"><img src="http://famicol.in/sigbovik/splatters/dc86c1c3553705b7b2f973d5be9e0389.jpg"></img></a></div>
<div>3<br><a href="http://famicol.in/sigbovik/splatters/df49a6b8e840847df1c9556b0aa5a041.jpg"><img src="http://famicol.in/sigbovik/splatters/df49a6b8e840847df1c9556b0aa5a041.jpg"></img></a></div>
<div>ged<br><a href="http://famicol.in/sigbovik/splatters/e16fecd27a4cb83c2b250ec40dc566e5.jpg"><img src="http://famicol.in/sigbovik/splatters/e16fecd27a4cb83c2b250ec40dc566e5.jpg"></img></a></div>
<div>i<br><a href="http://famicol.in/sigbovik/splatters/e1a1f6d58199bbd9c6ad5ae78934c948.jpg"><img src="http://famicol.in/sigbovik/splatters/e1a1f6d58199bbd9c6ad5ae78934c948.jpg"></img></a></div>
<div>iigfififi<br><a href="http://famicol.in/sigbovik/splatters/e3e81f658b9918bcb86149e1c0da106a.jpg"><img src="http://famicol.in/sigbovik/splatters/e3e81f658b9918bcb86149e1c0da106a.jpg"></img></a></div>
<div>-*?<br><a href="http://famicol.in/sigbovik/splatters/e47b8463b359906947c66ec4c852a2a3.jpg"><img src="http://famicol.in/sigbovik/splatters/e47b8463b359906947c66ec4c852a2a3.jpg"></img></a></div>
<div>a<br><a href="http://famicol.in/sigbovik/splatters/e7c8c34e34c6fb9906cb53d532a8bee1.jpg"><img src="http://famicol.in/sigbovik/splatters/e7c8c34e34c6fb9906cb53d532a8bee1.jpg"></img></a></div>
<div>2<br><a href="http://famicol.in/sigbovik/splatters/eb599c13ad32f4e0d2ef9417fe2fd12b.jpg"><img src="http://famicol.in/sigbovik/splatters/eb599c13ad32f4e0d2ef9417fe2fd12b.jpg"></img></a></div>
<div>ihiltfjki;<br><a href="http://famicol.in/sigbovik/splatters/eb87fcbeed48d4a4beb432c6502a0438.jpg"><img src="http://famicol.in/sigbovik/splatters/eb87fcbeed48d4a4beb432c6502a0438.jpg"></img></a></div>
<div>ahja<br><a href="http://famicol.in/sigbovik/splatters/ebeec0a383f17789d69a136879a11516.jpg"><img src="http://famicol.in/sigbovik/splatters/ebeec0a383f17789d69a136879a11516.jpg"></img></a></div>
<div>;<br><a href="http://famicol.in/sigbovik/splatters/eec83fe574d40538c5c851fd6788bc69.jpg"><img src="http://famicol.in/sigbovik/splatters/eec83fe574d40538c5c851fd6788bc69.jpg"></img></a></div>
<div>$5;ng<br><a href="http://famicol.in/sigbovik/splatters/f1ae627b1186ae57981aab09669429df.jpg"><img src="http://famicol.in/sigbovik/splatters/f1ae627b1186ae57981aab09669429df.jpg"></img></a></div>
<div>iigg<br><a href="http://famicol.in/sigbovik/splatters/f272d787d0f0ce786d42c6e2a3229760.jpg"><img src="http://famicol.in/sigbovik/splatters/f272d787d0f0ce786d42c6e2a3229760.jpg"></img></a></div>
<div>v<br><a href="http://famicol.in/sigbovik/splatters/f669fa2466a5802e85f7cc1c1022365d.jpg"><img src="http://famicol.in/sigbovik/splatters/f669fa2466a5802e85f7cc1c1022365d.jpg"></img></a></div>
<div>Egg<br><a href="http://famicol.in/sigbovik/splatters/f69ad37fe2e551094fdb6094c32ab7cf.jpg"><img src="http://famicol.in/sigbovik/splatters/f69ad37fe2e551094fdb6094c32ab7cf.jpg"></img></a></div>
<div>gg;<br><a href="http://famicol.in/sigbovik/splatters/f8e33427ba88d551279cdec4576adad1.jpg"><img src="http://famicol.in/sigbovik/splatters/f8e33427ba88d551279cdec4576adad1.jpg"></img></a></div>
<div>Z;<br><a href="http://famicol.in/sigbovik/splatters/f91c7471d526635d50221ccc8f2b219a.jpg"><img src="http://famicol.in/sigbovik/splatters/f91c7471d526635d50221ccc8f2b219a.jpg"></img></a></div>
<div>po<br><a href="http://famicol.in/sigbovik/splatters/fbb628f5ad3bdeed5204a368ae0c61ec.jpg"><img src="http://famicol.in/sigbovik/splatters/fbb628f5ad3bdeed5204a368ae0c61ec.jpg"></img></a></div>
<div>:<br><a href="http://famicol.in/sigbovik/splatters/fc13943a4fb353e56dab7c758cbfc79f.jpg"><img src="http://famicol.in/sigbovik/splatters/fc13943a4fb353e56dab7c758cbfc79f.jpg"></img></a></div>
<div>irfxilegjffi<br><a href="http://famicol.in/sigbovik/splatters/fe930553a202df1183b1309cd4b81316.jpg"><img src="http://famicol.in/sigbovik/splatters/fe930553a202df1183b1309cd4b81316.jpg"></img></a></div>
<div>ggggiggQgig<br><a href="http://famicol.in/sigbovik/splatters/ffce9c97e777c1018ed0c7e8d0383b38.jpg"><img src="http://famicol.in/sigbovik/splatters/ffce9c97e777c1018ed0c7e8d0383b38.jpg"></img></a></div>
<div>tit<br><a href="http://famicol.in/sigbovik/splatters/splat.png"><img src="http://famicol.in/sigbovik/splatters/splat.png"></img></a></div>
</body>
</html>

1
sitemap.txt

@ -1,6 +1,7 @@
https://www.mcmillen.dev
https://www.mcmillen.dev/language_checklist.html
https://www.mcmillen.dev/publications.html
https://www.mcmillen.dev/resume.html
https://www.mcmillen.dev/sigbovik/
https://www.mcmillen.dev/sigbovik/2019.pdf
https://www.mcmillen.dev/sigbovik/splatters.html

380
style.css

@ -1,58 +1,13 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
/*
consider one of these?
https://meyerweb.com/eric/tools/css/reset/
https://ageek.dev/normalize-css
https://github.com/h5bp/html5-boilerplate
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* Styling Rules go here */
:root {
--border-radius: 4px;
--border-width: 8px;
--border-width-negative: -8px;
--content-width: 660px;
--content-width: 650px;
--footer-height: 22px;
/* Base colors */
--color-black: black;
@ -75,313 +30,90 @@ table {
}
body {
font-family: "Fira Mono", monaco, monospace;
font-family: 'Quicksand', sans-serif;
font-weight: 500;
font-size: 16px;
background: var(--color-navy);
color: var(--color-white);
font-weight: 500;
margin: 2em .5em;
font-size: 18px;
-webkit-font-smoothing: antialiased;
margin: 0;
}
code {
color: var(--color-light-green);
}
header {
text-align: center;
#page-container {
position: relative;
min-height: 100vh;
}
footer {
opacity: .5;
#content-wrap {
padding-bottom: var(--footer-height);
}
a {
color: inherit;
}
h1, h2, h3 {
-webkit-font-smoothing: none;
font-family: "Press Start 2P", "Helvetica Neue", helvetica, arial, sans-serif;
font-weight: normal;
}
h1 {
margin-bottom: .5em;
text-align: center;
font-size: 24px;
color: var(--color-light-orange);
text-shadow: 0 4px 0 rgba(0,0,0,.25);
font-weight: 700;
}
header h1 a {
a.undecorated {
color: inherit;
text-decoration: none;
font-weight: inherit;
}
header h1 a:hover {
text-decoration: underline
}
h2 {
font-size: 20px;
text-shadow: 0 4px 0 rgba(0,0,0,.25);
}
h3 {
font-size: 16px;
text-shadow: 0 4px 0 rgba(0,0,0,.25);
}
p, h1, h2, h3, pre {
padding: .8em .4em;
line-height: 1.25em;
text-shadow: 0 2px 0 rgba(0,0,0,.25);
}
pre {
font-size: .75em;
overflow: scroll;
}
hr {
border-style: solid;
border-width: calc(var(--border-width) / 2);
/* border-radius: var(--border-radius); */
max-width: var(--content-width);
margin: calc(var(--border-width) * 2);
opacity: .35;
}
blockquote, pre {
position: relative;
z-index: 1;
}
blockquote:before {
content: ' ';
position: absolute;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
background-color: var(--color-black);
opacity: .35;
}
pre {
background-color: rgba(0,0,0,.35);
}
.text-center {
text-align: center;
}
img, iframe {
img {
max-width: 100%;
margin-right: 8px;
vertical-align: middle;
}
.highlight {
color: var(--color-yellow);
}
.highlight-green {
code {
font-family: 'Fira Mono', monospace;
color: var(--color-light-green);
font-size: 13px;
}
/* Buttons */
.btn {
display: inline-block;
padding: .75em 1em;
font-family: "Press Start 2P", "Helvetica Neue", helvetica, arial, sans-serif;
font-size: 15px;
text-align: left;
text-decoration: none;
text-shadow: none;
border: none;
background: var(--color-white);
color: var(--color-black);
}
.btn:hover {
background: var(--color-yellow);
}
.btn span {
float: right;
padding-left: 1ch;
margin-top: -2px;
}
span.arrow {
margin-top: -4px;
font-size: 18px;
}
span.arrow:after {
content: '▶';
pre {
overflow: auto;
font-family: 'Fira Mono', monospace;
padding: .8em;
font-size: 13px;
}
/* Outside of the box layout */
.content {
max-width: var(--content-width);
margin: 0 auto calc(var(--border-width) * 4) auto;
padding: 0 var(--border-width);
strong {
color: var(--color-yellow);
}
/* Box layout */
.box {
position: relative;
display: flex;
max-width: var(--content-width);
flex-direction: column;
margin: 0 auto calc(var(--border-width) * 4) auto;
padding: 0;
background: transparent;
border: var(--border-width) solid var(--color-gray);
border-radius: var(--border-radius);
div.codehilite {
border-radius: 8px;
}
.box p, .box h1, .box h2, .box h3, .box pre {
padding: .8em .8em;
#header {
background: var(--color-red);
font-size: 24px;
font-weight: 700;
}
.box-layout-sidebar {
flex-direction: row;
#header img {
vertical-align: baseline;
width: 20px;
height: 20px;
}
.box-header {
display: inline-block;
#footer {
background: var(--color-purple);
position: absolute;
top: 0;
left: 0;
padding:
calc(1em - var(--border-width))
1em
1em
calc(1em - var(--border-width))!important;
background: var(--color-gray);
font-size: 15px;
}
.box-content {
margin-top: 2em;
}
.box-footer {
text-align: right;
}
.box-footer {
margin-right: var(--border-width-negative);
}
.box-layout-default .box-footer {
display: inline-flex;
align-self: flex-end;
}
.box-layout-sidebar .box-footer {
background: var(--color-gray);
color: var(--color-white);
min-width: 240px;
}
.box-layout-sidebar .box-footer .btn {
display: block;
}
.box-layout-sidebar .box-footer .btn:first-of-type {
border-top-width: 0px;
}
.box-layout-fullwidth .box-footer {
display: flex;
flex-wrap: wrap;
align-content: stretch;
margin-left: var(--border-width-negative);
text-align: right;
background: var(--color-gray);
}
.box-layout-fullwidth .box-footer .btn {
display: inline-flex;
flex-grow: 1;
}
.box-layout-fullwidth .box-footer .btn span {
padding-left: 1ch;
margin-left: auto;
bottom: 0;
width: 100%;
height: var(--footer-height);
}
.box .box-footer .btn {
border-top: var(--border-width) solid var(--color-gray);
border-left: var(--border-width) solid var(--color-gray);
div.content {
max-width: var(--content-width);
margin: auto;
padding-left: 2px;
padding-right: 2px;
}
/* Mobile box layout */
@media only screen and (max-width: 600px) {
.box-layout-sidebar {
flex-direction: column;
}
.box-layout-default .box-footer {
width: calc(100% + var(--border-width) * 2);
}
.box-layout-sidebar .box-footer .btn:first-of-type {
border-top-width: var(--border-width);
}
.box .box-footer {
display: block;
margin-left: var(--border-width-negative);
}
.box .box-footer .btn {
display: block;
position: relative;
padding-right: 2.5em;
@media (min-width: var(--content-width)) {
div.content {
width: var(--content-width);
}
.box .box-footer .btn span {
position: absolute;
top: 0;
padding: .75em 0;
right: 1em;
}
}
/* Box color variants */
.box-gray, .box-gray .box-footer .btn {
border-color: var(--color-gray);
}
.box-gray .box-header, .box-gray.box-layout-sidebar .box-footer,
.box-gray.box-layout-fullwidth .box-footer,
.box-gray blockquote:before {
background-color: var(--color-gray);
}
.box-gray .arrow {
color: var(--color-gray);
}
.box-red, .box-red .box-footer .btn {
border-color: var(--color-red);
}
.box-red .box-header, .box-red.box-layout-sidebar .box-footer,
.box-red.box-layout-fullwidth .box-footer,
.box-red blockquote:before {
background-color: var(--color-red);
}
.box-red .arrow {
color: var(--color-red);
}
.box-purple, .box-purple .box-footer .btn {
border-color: var(--color-purple);
}
.box-purple .box-header, .box-purple.box-layout-sidebar .box-footer,
.box-purple.box-layout-fullwidth .box-footer,
.box-purple blockquote:before {
background-color: var(--color-purple);
}
.box-purple .arrow {
color: var(--color-purple);
}
Loading…
Cancel
Save