gatsbyjs_charlieharrington.com.rss.xml - sfeed_tests - sfeed tests and RSS and Atom files
 (HTM) git clone git://git.codemadness.org/sfeed_tests
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       gatsbyjs_charlieharrington.com.rss.xml (944142B)
       ---
            1 <?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Charlie Harrington]]></title><description><![CDATA[Blog of Charlie Harrington - writer and software engineer]]></description><link>https://www.charlieharrington.com</link><generator>GatsbyJS</generator><lastBuildDate>Mon, 26 Jul 2021 19:00:55 GMT</lastBuildDate><item><title><![CDATA[Smart Phone, Dumb Terminal]]></title><description><![CDATA[I'm typing this post on my iPhone in the Obsidian iOS app using a Logitech K380 Bluetooth keyboard and I feel like a 90s computer hacker…]]></description><link>https://www.charlieharrington.com/smart-phone-dumb-terminal</link><guid isPermaLink="false">https://www.charlieharrington.com/smart-phone-dumb-terminal</guid><pubDate>Sun, 25 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m typing this post on my iPhone in the &lt;a href=&quot;https://obsidian.md&quot;&gt;Obsidian iOS app&lt;/a&gt; using a &lt;a href=&quot;https://amzn.to/3rAZfjc&quot;&gt;Logitech K380 Bluetooth keyboard&lt;/a&gt; and I feel like a 90s computer hacker.&lt;/p&gt;
            2 &lt;p&gt;Not enough? How about this: I just SSH&apos;ed into a &lt;a href=&quot;https://amzn.to/3zE2AkE&quot;&gt;Raspberry Pi&lt;/a&gt; on my home network using &lt;a href=&quot;https://tailscale.com&quot;&gt;Tailscale&lt;/a&gt; via the &lt;a href=&quot;https://termius.com&quot;&gt;Termius&lt;/a&gt; iOS app to restart a &lt;a href=&quot;/flow-and-creative-computing&quot;&gt;YouTube-playlist-to-podcast-feed Docker container&lt;/a&gt;. &lt;/p&gt;
            3 &lt;p&gt;Don&apos;t get me wrong -- the other stuff is pretty magical, too, especially Tailscale. But this keyboard-to-phone takes the cake.&lt;/p&gt;
            4 &lt;p&gt;I mean, look at this:&lt;/p&gt;
            5 &lt;p&gt;&lt;span
            6       class=&quot;gatsby-resp-image-wrapper&quot;
            7       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
            8     &gt;
            9       &lt;a
           10     class=&quot;gatsby-resp-image-link&quot;
           11     href=&quot;/static/2930c3a3aa4bf3462b52044555a24d56/cd3e9/keyboard.jpg&quot;
           12     style=&quot;display: block&quot;
           13     target=&quot;_blank&quot;
           14     rel=&quot;noopener&quot;
           15   &gt;
           16     &lt;span
           17     class=&quot;gatsby-resp-image-background-image&quot;
           18     style=&quot;padding-bottom: 74.23312883435584%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEBf/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/aAAwDAQACEAMQAAABfFMjLvmGF//EABkQAAIDAQAAAAAAAAAAAAAAAAECABIiA//aAAgBAQABBQLEvlCGV3sbiL2ZB//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/Aar/xAAWEQEBAQAAAAAAAAAAAAAAAAAAERL/2gAIAQIBAT8BjL//xAAZEAACAwEAAAAAAAAAAAAAAAABEQAQEjH/2gAIAQEABj8CO1ymI6Qn/8QAGhABAQEBAQEBAAAAAAAAAAAAAREAMSFRcf/aAAgBAQABPyFgtHF+4PTERwpvHUH5d+jmHG3f/9oADAMBAAIAAwAAABC03//EABcRAQADAAAAAAAAAAAAAAAAAAARITH/2gAIAQMBAT8QriD/xAAXEQEAAwAAAAAAAAAAAAAAAAAAESEx/9oACAECAQE/EL6k/8QAHBABAAICAwEAAAAAAAAAAAAAAQARIUExUWGx/9oACAEBAAE/EEABL4oqokB21mWmg1EU+BxiJtFnhGgpqjq5/9k=&apos;); background-size: cover; display: block;&quot;
           19   &gt;&lt;/span&gt;
           20   &lt;img
           21         class=&quot;gatsby-resp-image-image&quot;
           22         alt=&quot;Dumb terminal smart phone&quot;
           23         title=&quot;Dumb terminal smart phone&quot;
           24         src=&quot;/static/2930c3a3aa4bf3462b52044555a24d56/6aca1/keyboard.jpg&quot;
           25         srcset=&quot;/static/2930c3a3aa4bf3462b52044555a24d56/d2f63/keyboard.jpg 163w,
           26 /static/2930c3a3aa4bf3462b52044555a24d56/c989d/keyboard.jpg 325w,
           27 /static/2930c3a3aa4bf3462b52044555a24d56/6aca1/keyboard.jpg 650w,
           28 /static/2930c3a3aa4bf3462b52044555a24d56/7c09c/keyboard.jpg 975w,
           29 /static/2930c3a3aa4bf3462b52044555a24d56/01ab0/keyboard.jpg 1300w,
           30 /static/2930c3a3aa4bf3462b52044555a24d56/cd3e9/keyboard.jpg 2820w&quot;
           31         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
           32         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
           33         loading=&quot;lazy&quot;
           34       /&gt;
           35   &lt;/a&gt;
           36     &lt;/span&gt;&lt;/p&gt;
           37 &lt;p&gt;It&apos;s downright cute, aside from the legs.&lt;/p&gt;
           38 &lt;p&gt;You kinda forget that your phone is a computer, personally-speaking. Instead, it&apos;s usually just a vehicle for social media nightmares. Given the choice between doing something semi-arduous, like checking in for a flight, on a phone app vs the website (on a desktop/laptop), I always choose the latter. Somethings always missing from the app, and if you really want to get all fiddly, which I usually do, they kick you out to a crappy webview anyway.&lt;/p&gt;
           39 &lt;p&gt;So, I&apos;m usually a laptop-bringer on any trip. Except, this time, I didn&apos;t want to. Firstly, my alu-min-i-um portable computer is just plain heavy and bulky, and I was adamant that we were going carry-on only on this voyage. Even more damning, I recently discovered that opening the laptop screen beyond 45 degrees results in the black screen of death. That&apos;s something for the Geniuses, if they&apos;re willing indulge an admittedly long in the tooth 2016 MBP (I&apos;m doubtful).&lt;/p&gt;
           40 &lt;p&gt;But I did want to be able to work on edits for my book on this trip. You never know when inspirations gonna strike (usually, for me, around midnight, when I&apos;ve already gone to bed), and while I&apos;m reasonably fast thumb-typist, I just don&apos;t feel the flow feels on the phone keyboard.&lt;/p&gt;
           41 &lt;p&gt;Luckily, we had this little Bluetooth cutie tucked away in a closet. I&apos;d purchased it as a gift for Carly, so that she could write stuff on the go (very much the same need I&apos;m talking about here). We&apos;d extensively discussed the need for a mobile keyboard writing thingie early in our courtship, and we even entertained the idea of building it ourselves (hint: I&apos;m still entertaining this idea). &lt;/p&gt;
           42 &lt;p&gt;We&apos;re not alone. See the &lt;a href=&quot;https://getfreewrite.com/products/freewrite-smart-typewriter&quot;&gt;FreeWrite&lt;/a&gt; products, which somehow don&apos;t quite fit the bill for me, despite almost exactly delivering on our dream product (full-sized keyboard, e-ink-like screen, and supreme battery life). Mostly it&apos;s the calculator-sized screen (and the perceived bulky size) that&apos;s scaring me away. We want something that you can keep in a purse or a pocket.&lt;/p&gt;
           43 &lt;p&gt;Now this Bluetooth keyboard doesn&apos;t fit in a pocket, but it&apos;s also pretty darn cheap, enough so that I&apos;m not going to be devastated if I lose it or spill a beer on it.&lt;/p&gt;
           44 &lt;p&gt;So, I thought I&apos;d give it a try this trip. And I&apos;m sold. It&apos;s legit fun to type on this thing and I think I&apos;m going to bring it with me more places. Along with things like Tailscale and Termius, I can treat my smart phone as a dumb terminal to my real computers.&lt;/p&gt;
           45 &lt;p&gt;Carly still hasn&apos;t given the keyboard a try, but I&apos;m holding out hope. She&apos;s watching me tap-tap away right now, and I think this is a gift that just takes a while to kick in.&lt;/p&gt;
           46 &lt;p&gt;And, meanwhile, I&apos;m going to keep thinking about keyboards-as-computers, whether that&apos;s scouring eBay for Commodore VIC-20s, ogling over the latest &lt;a href=&quot;https://amzn.to/3749iE0&quot;&gt;Raspberry Pi 400&lt;/a&gt; keyboard-computer, or sketching out our still-yet-to-be-realized &quot;Kindle for writing.&quot; &lt;/p&gt;
           47 &lt;p&gt;On the latter item, I&apos;m also ogling the &lt;a href=&quot;https://remarkable.com&quot;&gt;ReMarkable 2&lt;/a&gt; as an potential winning entrant, but the lack of keyboard and the lack of backlight are keeping me away... for now. If they&apos;re tracking dropped cart analytics at all, I&apos;m just going to apologize now for what I&apos;ve been doing. You can keep retargeting me if you&apos;d like. You&apos;ll get me one day.    &lt;/p&gt;</content:encoded></item><item><title><![CDATA[Writes With]]></title><description><![CDATA[Earlier today, I texted some friends that I regret using Gatsby for this blog. It came at a moment of frustration, when I was stuck in some…]]></description><link>https://www.charlieharrington.com/writes-with</link><guid isPermaLink="false">https://www.charlieharrington.com/writes-with</guid><pubDate>Thu, 24 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Earlier today, I texted some friends that I regret using &lt;a href=&quot;https://www.gatsbyjs.com/&quot;&gt;Gatsby&lt;/a&gt; for this blog. It came at a moment of frustration, when I was stuck in some weird Node dependencies hell and all I wanted was to write another blog post.&lt;/p&gt;
           48 &lt;p&gt;If your static site generator does nothing else, it should make it frictionless to write a new blog post. It&apos;s hard enough to make the time to write, your software shouldn&apos;t be making it harder. &lt;/p&gt;
           49 &lt;p&gt;Why did I use Gatsby in the first place? Well, it was new and shiny and uses GraphQL. That&apos;s enough, right? Really, at the time, I had these grand ambitions of interactive React components within my posts, which I knew would be possible, and possibly easy, with a React-based static site generator. To this date, I&apos;ve written exactly &lt;a href=&quot;/pseudoclassical-star-wars&quot;&gt;one&lt;/a&gt; of these interactive posts, and that was &lt;em&gt;before&lt;/em&gt; I made the Gatsby-switch and I still have never actually ported it from my original Pelicon static site. This post used to have all these Tie Fighters flying around and now it doesn&apos;t and I&apos;m still a little bummed about it. If any of that intrigues you, my little Star Wars game is still &lt;a href=&quot;https://whatrocks.github.io/aluminum-falcon/&quot;&gt;online&lt;/a&gt; - it&apos;s one of the first things I ever made when I learned how to program.&lt;/p&gt;
           50 &lt;p&gt;So, anyway, why not switch away from Gatsby? Am I using any of the advanced features of Gatsby? Yes, I am. There&apos;s an active plugin ecosystem and I use a bunch of them for things like generating my RSS feed or rendering images or displaying my library or my Instagram posts. But I&apos;ve realized that some of these, especially the ones that leverage external APIs like the Instagram one, are more trouble than they&apos;re worth.&lt;/p&gt;
           51 &lt;p&gt;With the Instagram plugin/API, all I want to do is &lt;a href=&quot;/walkingman&quot;&gt;display a neat little grid of all the &quot;walking man&quot; street signs I&apos;ve discovered&lt;/a&gt; and posted to Instagram. But, like all Web 2.0 API platforms, Instagram&apos;s API usefulness was continually walked back until it&apos;s virtually impossible to do basic things like display your photos (because they want to keep all these useful actions within their own platform/app), and I&apos;m now forced to create a &quot;test account&quot; on a Facebook &quot;app&quot; with a temporary token that expires like every 30 days or something. Now, every time I go to write a new post here, which is usually &gt; 30 days, I can&apos;t even build my blog locally because the Gatsby build process fails from the expired Instagram token. I want to blame Instagram here, or Gatsby, but instead, I blame myself. &lt;/p&gt;
           52 &lt;p&gt;Keep your friends close, and your blog&apos;s dependencies closer.&lt;/p&gt;
           53 &lt;h2&gt;A simpler static site generator&lt;/h2&gt;
           54 &lt;p&gt;Here&apos;s where I announce that I&apos;ve written a new, &lt;em&gt;better&lt;/em&gt;, static site generator, the fourth step in the hero&apos;s journey of software engineering.&lt;/p&gt;
           55 &lt;p&gt;But, nope. Instead, I&apos;m just gonna use the one that my pal &lt;a href=&quot;https://benreinhart.com&quot;&gt;Ben&lt;/a&gt; created. It&apos;s called &lt;a href=&quot;https://benreinhart.com/syte&quot;&gt;Syte&lt;/a&gt;. It&apos;s extremely lightweight, fast, and does exactly what I really want -- render Markdown files in an HTML template.&lt;/p&gt;
           56 &lt;p&gt;So, have I switched my blog over to Syte yet? Not yet. But I&apos;m gonna. The main thing that&apos;s missing (for me) in Syte is RSS feed generation. I&apos;d like to contribute that back to Ben&apos;s repo at some point. I can probably live without the rest of the junk I&apos;ve bolted onto this site. It may mean that I temporarily dismantle my cool, query-param powered &lt;a href=&quot;/library&quot;&gt;library searching page&lt;/a&gt;, but that&apos;s a worthy price to pay for being able to write a blog post exactly when I want to, no questions asked.&lt;/p&gt;
           57 &lt;p&gt;My inability to bear the blog switching costs at this moment isn&apos;t going to stop me from another time-waster of a side project: a new interview site, using Syte, that asks writers about the stuff they use to write, edit, and otherwise create their books!&lt;/p&gt;
           58 &lt;h2&gt;Writes With&lt;/h2&gt;
           59 &lt;p&gt;&lt;span
           60       class=&quot;gatsby-resp-image-wrapper&quot;
           61       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
           62     &gt;
           63       &lt;a
           64     class=&quot;gatsby-resp-image-link&quot;
           65     href=&quot;/static/30ee63ed397c74175268fd0d8f7dea20/136a2/writeswith.png&quot;
           66     style=&quot;display: block&quot;
           67     target=&quot;_blank&quot;
           68     rel=&quot;noopener&quot;
           69   &gt;
           70     &lt;span
           71     class=&quot;gatsby-resp-image-background-image&quot;
           72     style=&quot;padding-bottom: 15.950920245398773%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA40lEQVQI1xWOu0oDYRBG/1J8gfgOttbp8gRCQIi9jWUw+ARqIWpUQkSsRAi4guIahSgGLYTgJfGyaBQtBBXsrHZm9jgpBmbOd2C+kP4m6P0a2q2hN8vo4zry0UR7VfRuznkVedpEH2qkXx3kbc/Zqrsr7jjvLqC3i8h77FlMkM82bASoD2NRHraGsP0C1ixhJ5NkjVHssEi2M4IkEXZahKXg9xh2NOEzjh2XyLZzWGuKkP59oxcV9LqOPEe+z6Idb9kffGyhlzPo1Tx2Pk3603fuzlkZefE82fU5QF5jdwYt2/wDdUbEzGmfEq8AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
           73   &gt;&lt;/span&gt;
           74   &lt;img
           75         class=&quot;gatsby-resp-image-image&quot;
           76         alt=&quot;Writes With logo&quot;
           77         title=&quot;Writes With logo&quot;
           78         src=&quot;/static/30ee63ed397c74175268fd0d8f7dea20/a6d36/writeswith.png&quot;
           79         srcset=&quot;/static/30ee63ed397c74175268fd0d8f7dea20/222b7/writeswith.png 163w,
           80 /static/30ee63ed397c74175268fd0d8f7dea20/ff46a/writeswith.png 325w,
           81 /static/30ee63ed397c74175268fd0d8f7dea20/a6d36/writeswith.png 650w,
           82 /static/30ee63ed397c74175268fd0d8f7dea20/136a2/writeswith.png 884w&quot;
           83         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
           84         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
           85         loading=&quot;lazy&quot;
           86       /&gt;
           87   &lt;/a&gt;
           88     &lt;/span&gt;&lt;/p&gt;
           89 &lt;p&gt;The &lt;a href=&quot;https://writeswith&quot;&gt;Writes With&lt;/a&gt; syte is already live, with two interviews: &lt;a href=&quot;https://writeswith.com/interviews/brian-dear/&quot;&gt;Brian Dear&lt;/a&gt;, author of &lt;strong&gt;The Friendly Orange Glow: The Untold Story of the PLATO System and the Dawn of Cyberculture&lt;/strong&gt;, and &lt;a href=&quot;https://writeswith.com/interviews/pooja-reddy/&quot;&gt;Pooja Reddy&lt;/a&gt;, author of &lt;strong&gt;The Big Bold Blue&lt;/strong&gt;.&lt;/p&gt;
           90 &lt;p&gt;Making it was a joy with Syte and I&apos;m happy with it, even if my &quot;design&quot; is still pretty bare bones. I also deployed it with &lt;a href=&quot;https://pages.cloudflare.com/&quot;&gt;Cloudflare Pages&lt;/a&gt;, which mostly importantly comes with (at least for now) free bandwidth. This blog uses Netlify for hosting, which I do like, but occasionally suffer from bandwidth spikes near the end of the monthly billing cycles that trigger their bandwidth &quot;add-ons&quot; fees.&lt;/p&gt;
           91 &lt;p&gt;Writes With is directly, clearly, obviously, duh inspired by one of my favorite websites: &lt;a href=&quot;https://usesthis.com&quot;&gt;usesthis.com&lt;/a&gt;. In fact, I chatted with Daniel of usesthis.com before launching it, just to make sure he was okay with it, and he gave the thumbs up.&lt;/p&gt;
           92 &lt;p&gt;I like this little project, because I&apos;m going to get to talk with more people who&apos;ve published books. As a cub writer myself, I&apos;m happy for any tips and tricks I can get.&lt;/p&gt;
           93 &lt;p&gt;And I know, I know, the tools aren&apos;t the important thing about writing... but I think we all still want to know about them.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Computers by the Decade]]></title><description><![CDATA[I've been doing a lot of research into the history of computers1 for my forthcoming Middle Grade novel about robots (as of March 2021, I'm…]]></description><link>https://www.charlieharrington.com/computers-by-the-decade</link><guid isPermaLink="false">https://www.charlieharrington.com/computers-by-the-decade</guid><pubDate>Wed, 31 Mar 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve been doing a lot of research into the &lt;a href=&quot;/library?topic=Computer%20History&quot;&gt;history of computers&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt; for my &lt;a href=&quot;/books&quot;&gt;forthcoming Middle Grade novel about robots&lt;/a&gt; (as of March 2021, I&apos;m linking to a largely blank page here, which I assure you will one day be filled with the multitude of books I&apos;m going to write - end &lt;em&gt;Daily Affirmation&lt;/em&gt; now).&lt;/p&gt;
           94 &lt;p&gt;I&apos;d like to share my current, wait for it, mental model for how I&apos;m thinking about the evolution of computing over the decades. I&apos;ll also highlight some current companies that I find interesting because they seem to be fellow computer historians.&lt;/p&gt;
           95 &lt;p&gt;First, a caveat canem: 🐶 Since this website is my little corner of the dub-dub-dub, I reserve the right to update this framework as I learn more. And I will be learning more, because I can&apos;t stop reading about this stuff. I love it. So, there, take that, fellow computer historians! Even better, please let me know what I&apos;ve messed up or got wrong so I can learn. Woof!&lt;/p&gt;
           96 &lt;p&gt;So, here&apos;s how I see the evolution of computers over the decades (including some predictions): &lt;/p&gt;
           97 &lt;table&gt;
           98 &lt;thead&gt;
           99 &lt;tr&gt;
          100 &lt;th align=&quot;left&quot;&gt;Decade&lt;/th&gt;
          101 &lt;th align=&quot;left&quot;&gt;Computers&lt;/th&gt;
          102 &lt;/tr&gt;
          103 &lt;/thead&gt;
          104 &lt;tbody&gt;
          105 &lt;tr&gt;
          106 &lt;td align=&quot;left&quot;&gt;1940s&lt;/td&gt;
          107 &lt;td align=&quot;left&quot;&gt;Analog&lt;/td&gt;
          108 &lt;/tr&gt;
          109 &lt;tr&gt;
          110 &lt;td align=&quot;left&quot;&gt;1950s&lt;/td&gt;
          111 &lt;td align=&quot;left&quot;&gt;Digital&lt;/td&gt;
          112 &lt;/tr&gt;
          113 &lt;tr&gt;
          114 &lt;td align=&quot;left&quot;&gt;1960s&lt;/td&gt;
          115 &lt;td align=&quot;left&quot;&gt;Warehouse&lt;/td&gt;
          116 &lt;/tr&gt;
          117 &lt;tr&gt;
          118 &lt;td align=&quot;left&quot;&gt;1970s&lt;/td&gt;
          119 &lt;td align=&quot;left&quot;&gt;Mini&lt;/td&gt;
          120 &lt;/tr&gt;
          121 &lt;tr&gt;
          122 &lt;td align=&quot;left&quot;&gt;1980s&lt;/td&gt;
          123 &lt;td align=&quot;left&quot;&gt;8-Bit PC&lt;/td&gt;
          124 &lt;/tr&gt;
          125 &lt;tr&gt;
          126 &lt;td align=&quot;left&quot;&gt;1990s&lt;/td&gt;
          127 &lt;td align=&quot;left&quot;&gt;Pentium PC&lt;/td&gt;
          128 &lt;/tr&gt;
          129 &lt;tr&gt;
          130 &lt;td align=&quot;left&quot;&gt;2000s&lt;/td&gt;
          131 &lt;td align=&quot;left&quot;&gt;Laptop&lt;/td&gt;
          132 &lt;/tr&gt;
          133 &lt;tr&gt;
          134 &lt;td align=&quot;left&quot;&gt;2010s&lt;/td&gt;
          135 &lt;td align=&quot;left&quot;&gt;Smart Phones&lt;/td&gt;
          136 &lt;/tr&gt;
          137 &lt;tr&gt;
          138 &lt;td align=&quot;left&quot;&gt;2020s&lt;/td&gt;
          139 &lt;td align=&quot;left&quot;&gt;Wearables&lt;/td&gt;
          140 &lt;/tr&gt;
          141 &lt;tr&gt;
          142 &lt;td align=&quot;left&quot;&gt;2030s&lt;/td&gt;
          143 &lt;td align=&quot;left&quot;&gt;Embeddables&lt;/td&gt;
          144 &lt;/tr&gt;
          145 &lt;/tbody&gt;
          146 &lt;/table&gt;
          147 &lt;p&gt;Lemme recap these a bit (in a freewheeling manner). We see the first &quot;stored-program&quot; digital computers coming to life in the late 40s. These are your o.g. &quot;Von Neumann&quot; architecture machines, the real-world implementations of the universal Turing machine vision from 1936. Goodbye, Vannevar Bush&apos;s Differential Analyzer -- we&apos;ve now got computers that we can &quot;re-wire&quot; themselves with &quot;code&quot; instead of electromechanical widgets and whatnot that had to be manually reconfigured for different problems (usually military applications around this time, like calculating missile trajectories).&lt;/p&gt;
          148 &lt;p&gt;Then comes the era of the ominious Warehouse computer, dominated by Big Blue (IBM) and the angry BUNCH (Burroughs, UNIVAC, NCR, Control Data Corporation, and Honeywell) -- aka the FAANG of days of computer future past. Computers were huge, literally, during the 60s and 70s. Actual insects would get lodged inside them and wreak havoc -- &quot;bugs&quot;! This was also around the time that people thought there might only need to be a handful of computers in the whole wide world -- that computers would be a public utility like telephone service. &lt;/p&gt;
          149 &lt;p&gt;Along related lines, this is where folks started experimenting with &quot;computer networking.&quot; Let&apos;s layer that strand into our decades framework:&lt;/p&gt;
          150 &lt;table&gt;
          151 &lt;thead&gt;
          152 &lt;tr&gt;
          153 &lt;th align=&quot;left&quot;&gt;Decade&lt;/th&gt;
          154 &lt;th align=&quot;left&quot;&gt;Computers&lt;/th&gt;
          155 &lt;th align=&quot;left&quot;&gt;Networking&lt;/th&gt;
          156 &lt;/tr&gt;
          157 &lt;/thead&gt;
          158 &lt;tbody&gt;
          159 &lt;tr&gt;
          160 &lt;td align=&quot;left&quot;&gt;1940s&lt;/td&gt;
          161 &lt;td align=&quot;left&quot;&gt;Analog&lt;/td&gt;
          162 &lt;td align=&quot;left&quot;&gt;N/A&lt;/td&gt;
          163 &lt;/tr&gt;
          164 &lt;tr&gt;
          165 &lt;td align=&quot;left&quot;&gt;1950s&lt;/td&gt;
          166 &lt;td align=&quot;left&quot;&gt;Digital&lt;/td&gt;
          167 &lt;td align=&quot;left&quot;&gt;N/A&lt;/td&gt;
          168 &lt;/tr&gt;
          169 &lt;tr&gt;
          170 &lt;td align=&quot;left&quot;&gt;1960s&lt;/td&gt;
          171 &lt;td align=&quot;left&quot;&gt;Warehouse&lt;/td&gt;
          172 &lt;td align=&quot;left&quot;&gt;Timeshare&lt;/td&gt;
          173 &lt;/tr&gt;
          174 &lt;tr&gt;
          175 &lt;td align=&quot;left&quot;&gt;1970s&lt;/td&gt;
          176 &lt;td align=&quot;left&quot;&gt;Mini&lt;/td&gt;
          177 &lt;td align=&quot;left&quot;&gt;ARPANET&lt;/td&gt;
          178 &lt;/tr&gt;
          179 &lt;tr&gt;
          180 &lt;td align=&quot;left&quot;&gt;1980s&lt;/td&gt;
          181 &lt;td align=&quot;left&quot;&gt;8-Bit PC&lt;/td&gt;
          182 &lt;td align=&quot;left&quot;&gt;Internet&lt;/td&gt;
          183 &lt;/tr&gt;
          184 &lt;tr&gt;
          185 &lt;td align=&quot;left&quot;&gt;1990s&lt;/td&gt;
          186 &lt;td align=&quot;left&quot;&gt;Pentium PC&lt;/td&gt;
          187 &lt;td align=&quot;left&quot;&gt;WWW&lt;/td&gt;
          188 &lt;/tr&gt;
          189 &lt;tr&gt;
          190 &lt;td align=&quot;left&quot;&gt;2000s&lt;/td&gt;
          191 &lt;td align=&quot;left&quot;&gt;Laptop&lt;/td&gt;
          192 &lt;td align=&quot;left&quot;&gt;Web 2.0&lt;/td&gt;
          193 &lt;/tr&gt;
          194 &lt;tr&gt;
          195 &lt;td align=&quot;left&quot;&gt;2010s&lt;/td&gt;
          196 &lt;td align=&quot;left&quot;&gt;Smart Phones&lt;/td&gt;
          197 &lt;td align=&quot;left&quot;&gt;Apps&lt;/td&gt;
          198 &lt;/tr&gt;
          199 &lt;tr&gt;
          200 &lt;td align=&quot;left&quot;&gt;2020s&lt;/td&gt;
          201 &lt;td align=&quot;left&quot;&gt;Wearables&lt;/td&gt;
          202 &lt;td align=&quot;left&quot;&gt;TBD&lt;/td&gt;
          203 &lt;/tr&gt;
          204 &lt;tr&gt;
          205 &lt;td align=&quot;left&quot;&gt;2030s&lt;/td&gt;
          206 &lt;td align=&quot;left&quot;&gt;Embeddables&lt;/td&gt;
          207 &lt;td align=&quot;left&quot;&gt;TBD&lt;/td&gt;
          208 &lt;/tr&gt;
          209 &lt;/tbody&gt;
          210 &lt;/table&gt;
          211 &lt;p&gt;Timesharing. You&apos;ve probably heard of it before. Essentially, the few people lucky enough to have access to these machines would sit at &quot;dumb&quot; Teletype terminals and their commands would be executed in some mainframe somewhere else (usually their university). You didn&apos;t have to own a computer to use one, you just needed to pay for access (sounds a lot like &quot;cloud computing&quot; nowadays, right? Time is a flat circle). It wasn&apos;t just all university-work. Games were being created and shared, and projects like &lt;a href=&quot;https://en.wikipedia.org/wiki/PLATO_(computer_system)&quot;&gt;PLATO&lt;/a&gt; at University of Illinois were doing interactive things that seem impossible for their era:&lt;/p&gt;
          212 &lt;p&gt;&lt;span
          213       class=&quot;gatsby-resp-image-wrapper&quot;
          214       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 624px; &quot;
          215     &gt;
          216       &lt;span
          217     class=&quot;gatsby-resp-image-background-image&quot;
          218     style=&quot;padding-bottom: 76.68711656441718%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAEA/9oADAMBAAIQAxAAAAHHTUAn/8QAFhABAQEAAAAAAAAAAAAAAAAAARAh/9oACAEBAAEFAijk/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGBAAAgMAAAAAAAAAAAAAAAAAABABIUH/2gAIAQEABj8CMU0//8QAGhABAAIDAQAAAAAAAAAAAAAAAQARECFBUf/aAAgBAQABPyEFNzWABIb95Ndx/9oADAMBAAIAAwAAABDr7//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB0QAAIBBAMAAAAAAAAAAAAAAAERACExQWFxgZH/2gAIAQEAAT8QMIAQzHmPBhTx1DGIAiz4RmBU9Shtbc//2Q==&apos;); background-size: cover; display: block;&quot;
          219   &gt;&lt;/span&gt;
          220   &lt;img
          221         class=&quot;gatsby-resp-image-image&quot;
          222         alt=&quot;PLATO&quot;
          223         title=&quot;PLATO&quot;
          224         src=&quot;/static/097d01671bc699ec3e60eca532367731/a3695/plato.jpg&quot;
          225         srcset=&quot;/static/097d01671bc699ec3e60eca532367731/d2f63/plato.jpg 163w,
          226 /static/097d01671bc699ec3e60eca532367731/c989d/plato.jpg 325w,
          227 /static/097d01671bc699ec3e60eca532367731/a3695/plato.jpg 624w&quot;
          228         sizes=&quot;(max-width: 624px) 100vw, 624px&quot;
          229         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          230         loading=&quot;lazy&quot;
          231       /&gt;
          232     &lt;/span&gt;&lt;/p&gt;
          233 &lt;p&gt;Take a look at the rows for 80s and 90s - you&apos;re basically looking at Halt and Catch Fire season by season.&lt;sup&gt;2&lt;/sup&gt; Personal computers. The World Wide Web. AOL Instant Messager. This is where things start hitting hard on the nostalgia receptors for me. I&apos;ll never forget the early `90s Christmas where we got our SoundBlaster 16 sound card. Carmen Sandiego never sounded so good.&lt;/p&gt;
          234 &lt;p&gt;Let&apos;s fast-forward to the new millenium. Frankly, I&apos;m increasingly less interested in the more recent eras of apps and smart phones. Even my predictions are boring to me. I don&apos;t have an Apple Watch. I know &quot;AR&quot; is coming (see recent WWDC teaser). I know we&apos;re going to be able to read brainwaves of pigs soon (or already are). I should probably keep more of an open mind about these upcoming technologies, so I&apos;ll try. But the history major in me just wants to go back and play with &lt;a href=&quot;/my-new-old-apple-iie-computer&quot;&gt;my Apple IIe&lt;/a&gt;.&lt;/p&gt;
          235 &lt;p&gt;When I think about it, there&apos;s tons of additional &quot;strands&quot; that could and should be tracked in this framework. For example, the evolution of memory type and memory capacity over time is super fascinating, and probably is the number one driver of the changes in the &quot;computers&quot; column.&lt;/p&gt;
          236 &lt;p&gt;Or another idea, even closer to my heart, would be adding the &quot;definitive&quot; book that should be read for each era. Actually, let me try that one.&lt;/p&gt;
          237 &lt;table&gt;
          238 &lt;thead&gt;
          239 &lt;tr&gt;
          240 &lt;th align=&quot;left&quot;&gt;Decade&lt;/th&gt;
          241 &lt;th align=&quot;left&quot;&gt;Computers&lt;/th&gt;
          242 &lt;th align=&quot;left&quot;&gt;Networking&lt;/th&gt;
          243 &lt;th align=&quot;left&quot;&gt;Book&lt;/th&gt;
          244 &lt;/tr&gt;
          245 &lt;/thead&gt;
          246 &lt;tbody&gt;
          247 &lt;tr&gt;
          248 &lt;td align=&quot;left&quot;&gt;1940s&lt;/td&gt;
          249 &lt;td align=&quot;left&quot;&gt;Analog&lt;/td&gt;
          250 &lt;td align=&quot;left&quot;&gt;N/A&lt;/td&gt;
          251 &lt;td align=&quot;left&quot;&gt;&lt;/td&gt;
          252 &lt;/tr&gt;
          253 &lt;tr&gt;
          254 &lt;td align=&quot;left&quot;&gt;1950s&lt;/td&gt;
          255 &lt;td align=&quot;left&quot;&gt;Digital&lt;/td&gt;
          256 &lt;td align=&quot;left&quot;&gt;N/A&lt;/td&gt;
          257 &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;https://amzn.to/3eD3yq3&quot;&gt;Turing&apos;s Cathedral&lt;/a&gt;&lt;/td&gt;
          258 &lt;/tr&gt;
          259 &lt;tr&gt;
          260 &lt;td align=&quot;left&quot;&gt;1960s&lt;/td&gt;
          261 &lt;td align=&quot;left&quot;&gt;Warehouse&lt;/td&gt;
          262 &lt;td align=&quot;left&quot;&gt;Timeshare&lt;/td&gt;
          263 &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;https://amzn.to/3m8jiD3&quot;&gt;The Friendly Orange Glow&lt;/a&gt;&lt;/td&gt;
          264 &lt;/tr&gt;
          265 &lt;tr&gt;
          266 &lt;td align=&quot;left&quot;&gt;1970s&lt;/td&gt;
          267 &lt;td align=&quot;left&quot;&gt;Mini&lt;/td&gt;
          268 &lt;td align=&quot;left&quot;&gt;ARPANET&lt;/td&gt;
          269 &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;https://amzn.to/3e32kUB&quot;&gt;The Soul of a New Machine&lt;/a&gt;&lt;/td&gt;
          270 &lt;/tr&gt;
          271 &lt;tr&gt;
          272 &lt;td align=&quot;left&quot;&gt;1980s&lt;/td&gt;
          273 &lt;td align=&quot;left&quot;&gt;8-Bit PC&lt;/td&gt;
          274 &lt;td align=&quot;left&quot;&gt;Internet&lt;/td&gt;
          275 &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;https://amzn.to/3kEztas&quot;&gt;Return to the Little Kingdom&lt;/a&gt;&lt;/td&gt;
          276 &lt;/tr&gt;
          277 &lt;tr&gt;
          278 &lt;td align=&quot;left&quot;&gt;1990s&lt;/td&gt;
          279 &lt;td align=&quot;left&quot;&gt;Pentium PC&lt;/td&gt;
          280 &lt;td align=&quot;left&quot;&gt;WWW&lt;/td&gt;
          281 &lt;td align=&quot;left&quot;&gt;&lt;a href=&quot;https://amzn.to/3u5aTD4&quot;&gt;Hard Drive&lt;/a&gt;&lt;/td&gt;
          282 &lt;/tr&gt;
          283 &lt;tr&gt;
          284 &lt;td align=&quot;left&quot;&gt;2000s&lt;/td&gt;
          285 &lt;td align=&quot;left&quot;&gt;Laptop&lt;/td&gt;
          286 &lt;td align=&quot;left&quot;&gt;Web 2.0&lt;/td&gt;
          287 &lt;td align=&quot;left&quot;&gt;&lt;/td&gt;
          288 &lt;/tr&gt;
          289 &lt;tr&gt;
          290 &lt;td align=&quot;left&quot;&gt;2010s&lt;/td&gt;
          291 &lt;td align=&quot;left&quot;&gt;Smart Phones&lt;/td&gt;
          292 &lt;td align=&quot;left&quot;&gt;Apps&lt;/td&gt;
          293 &lt;td align=&quot;left&quot;&gt;&lt;/td&gt;
          294 &lt;/tr&gt;
          295 &lt;tr&gt;
          296 &lt;td align=&quot;left&quot;&gt;2020s&lt;/td&gt;
          297 &lt;td align=&quot;left&quot;&gt;Wearables&lt;/td&gt;
          298 &lt;td align=&quot;left&quot;&gt;TBD&lt;/td&gt;
          299 &lt;td align=&quot;left&quot;&gt;&lt;/td&gt;
          300 &lt;/tr&gt;
          301 &lt;tr&gt;
          302 &lt;td align=&quot;left&quot;&gt;2030s&lt;/td&gt;
          303 &lt;td align=&quot;left&quot;&gt;Embeddables&lt;/td&gt;
          304 &lt;td align=&quot;left&quot;&gt;TBD&lt;/td&gt;
          305 &lt;td align=&quot;left&quot;&gt;&lt;/td&gt;
          306 &lt;/tr&gt;
          307 &lt;/tbody&gt;
          308 &lt;/table&gt;
          309 &lt;p&gt;I need some suggestions for the more recent eras!&lt;/p&gt;
          310 &lt;h3&gt;Three Companies That Seem to Also Appreciate Computer History&lt;/h3&gt;
          311 &lt;p&gt;Okay, onto the best part...&lt;/p&gt;
          312 &lt;h4&gt;Replit&lt;/h4&gt;
          313 &lt;p&gt;&lt;a href=&quot;http://replit.com/&quot;&gt;Replit&lt;/a&gt; is a company that makes it easy to spin up an IDE in any language, right in your browser. Goodbye painful local dev environment setup. Students LOVE it. Teachers LOVE it. School administrators apparently DON&apos;T LOVE it (according to what I&apos;ve seen on Twitter).&lt;/p&gt;
          314 &lt;p&gt;So, what does Replit know about computer history?&lt;/p&gt;
          315 &lt;p&gt;They are the modern timesharing system - global, instant access to compute, with collaboration as first-class objective. It&apos;s a place to learn, play games, write your own games, build apps, ship stuff. They&apos;re even talking about building their own hardware &quot;dumb&quot; terminal that connects instantly to Replit. &lt;/p&gt;
          316 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;We&amp;#39;re prototyping a computer that boots to Replit and is hardwired with a VPN to make it impossible to block.&lt;br&gt;&lt;br&gt;If it works, it will be free for students. Devs will pay full price with each computer sold will sponsor a student. &lt;a href=&quot;https://t.co/8cQdhJqvFv&quot;&gt;https://t.co/8cQdhJqvFv&lt;/a&gt; &lt;a href=&quot;https://t.co/Qu1eTYYa1x&quot;&gt;pic.twitter.com/Qu1eTYYa1x&lt;/a&gt;&lt;/p&gt;&amp;mdash; Amjad Masad ⠕ (@amasad) &lt;a href=&quot;https://twitter.com/amasad/status/1373065904678789121?ref_src=twsrc%5Etfw&quot;&gt;March 20, 2021&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
          317 &lt;p&gt;Timesharing is back. And this time you don&apos;t have to share, unless you want to!&lt;/p&gt;
          318 &lt;h4&gt;Tailscale&lt;/h4&gt;
          319 &lt;p&gt;&lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt; is a company that makes it dead simple to set up a VPN for all your devices: phones, Raspberry Pis, laptops, desktops, you name it.&lt;/p&gt;
          320 &lt;p&gt;So, what does Tailscale know about computer history?&lt;/p&gt;
          321 &lt;p&gt;They are making the 90s-LAN party possible again. It was a beautiful thing when you could &quot;easily&quot; make your computers talk to each other, but then the Internet got scary and hard, and Tailscale makes it safe and easy again. &lt;/p&gt;
          322 &lt;p&gt;I recently used Tailscale to set up a little Raspberry Pi-powered robot car. I can SSH into my little robot and drive it around, and I&apos;m feeling like a kid again.&lt;/p&gt;
          323 &lt;p&gt;&lt;span
          324       class=&quot;gatsby-resp-image-wrapper&quot;
          325       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          326     &gt;
          327       &lt;span
          328     class=&quot;gatsby-resp-image-background-image&quot;
          329     style=&quot;padding-bottom: 151.53374233128832%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAgMF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgEA/9oADAMBAAIQAxAAAAHBpW0sjYjXSFwuYNi3/8QAHRAAAgICAwEAAAAAAAAAAAAAAQIAAxETEiEiMv/aAAgBAQABBQL2i1fGnq2xSErs4krEVUgy0arBxN+s7Wn/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAeEAABBAEFAAAAAAAAAAAAAAAAAQIRITEQEiKBkf/aAAgBAQAGPwLOR+nBoquXaU5vpQpmOiVIgpyn/8QAHRABAAMAAwADAAAAAAAAAAAAAQARIUFRYXGB0f/aAAgBAQABPyFN2PMZY/MLBUuvf2FBFE+5i8Ba7KiK4XSA53vmY/FS1FPphxgyqJvtxVul6E//2gAMAwEAAgADAAAAEBcTvf/EABgRAAIDAAAAAAAAAAAAAAAAAAABECFR/9oACAEDAQE/EIZWH//EABkRAQACAwAAAAAAAAAAAAAAAAABIRExUf/aAAgBAgEBPxDC0bX1/8QAHhABAQEBAQABBQAAAAAAAAAAAREAITFBcYGRofD/2gAIAQEAAT8QCwCKIbwdzBQf0XAlEFUTkn93VjyTeRLGWzjjrAA/p3uCeufZjRXqT4aTIBD2yfRPjI84K0IhkpV7EP4c2rOg5N//2Q==&apos;); background-size: cover; display: block;&quot;
          330   &gt;&lt;/span&gt;
          331   &lt;img
          332         class=&quot;gatsby-resp-image-image&quot;
          333         alt=&quot;car&quot;
          334         title=&quot;car&quot;
          335         src=&quot;/static/73bec978c3721efeb640ee7c9b4bae90/6aca1/car.jpg&quot;
          336         srcset=&quot;/static/73bec978c3721efeb640ee7c9b4bae90/d2f63/car.jpg 163w,
          337 /static/73bec978c3721efeb640ee7c9b4bae90/c989d/car.jpg 325w,
          338 /static/73bec978c3721efeb640ee7c9b4bae90/6aca1/car.jpg 650w,
          339 /static/73bec978c3721efeb640ee7c9b4bae90/7c09c/car.jpg 975w,
          340 /static/73bec978c3721efeb640ee7c9b4bae90/ec605/car.jpg 1125w&quot;
          341         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          342         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          343         loading=&quot;lazy&quot;
          344       /&gt;
          345     &lt;/span&gt;&lt;/p&gt;
          346 &lt;h4&gt;Oxide Computer Company&lt;/h4&gt;
          347 &lt;p&gt;&lt;a href=&quot;https://oxide.computer/&quot;&gt;Oxide Computer Company&lt;/a&gt; is a new computer company. Like hardware-hardware computer company! They&apos;re building servers for folks who don&apos;t want to (or can&apos;t) just use AWS, GCP, Azure, Digital Ocean, blah blah... the cloud.&lt;/p&gt;
          348 &lt;p&gt;So, what does Oxide know about computer history?&lt;/p&gt;
          349 &lt;p&gt;More than me! Just listen to their epic &lt;a href=&quot;https://oxide.computer/podcast/&quot;&gt;podcast On the Metal&lt;/a&gt; to hear for yourself. They even went through a fun design project of &lt;a href=&quot;https://oxide.computer/blog/retro-logos-project-60s/&quot;&gt;redesigning their logo to look like definitive computer companies of days past.&lt;/a&gt;.&lt;/p&gt;
          350 &lt;p&gt;But most importantly I think that Oxide harkens back to the `90s era of owning your compute infra end-to-end. We do not have to accept that everything will be in the cloud. Maybe your closet is a better choice. Tradeoffs, amiright? There are going to be even more cases in the future where local compute is needed (e.g. how about the Moon or Mars?!)&lt;/p&gt;
          351 &lt;h3&gt;Computer historian&lt;/h3&gt;
          352 &lt;p&gt;In conclusion:&lt;/p&gt;
          353 &lt;p&gt;By trade, I&apos;m a software engineer. By spirit, I&apos;m a computer historian. By George, I&apos;m trying to combine the two (just like these three companies).&lt;/p&gt;
          354 &lt;h4&gt;Footnotes&lt;/h4&gt;
          355 &lt;ol&gt;
          356 &lt;li&gt;I&apos;m kinda showing off something neat with this link -- linkable searching using query-params for my &lt;a href=&quot;/library&quot;&gt;Library book list&lt;/a&gt;. I&apos;m proud of this lil&apos; quality of life feature for my site. If you&apos;re one of those people who like to strip query params from links, by all means do so, but if you want to share a &lt;a href=&quot;/library?topic=Ancient%20Rome&quot;&gt;list of the books I&apos;ve read about Ancient Rome&lt;/a&gt; (why would you want to do this if you&apos;re not me?), keep &apos;em in the link.&lt;/li&gt;
          357 &lt;li&gt;Watch this show. If you love computers, watch this show. If you love great characters making terrible decisions, watch this show. And then watch it again using this &lt;a href=&quot;https://bits.ashleyblewer.com/halt-and-catch-fire-syllabus/&quot;&gt;college-course level syllabus by Ashley Blewer&lt;/a&gt;.&lt;/li&gt;
          358 &lt;/ol&gt;</content:encoded></item><item><title><![CDATA[Notes on My Chemotherapy]]></title><description><![CDATA[Nobody likes an addendum. Appendices are great (ask any Tolkien fan). P.S.'s are the best (especially if they're from a penpal). But…]]></description><link>https://www.charlieharrington.com/chemotherapy</link><guid isPermaLink="false">https://www.charlieharrington.com/chemotherapy</guid><pubDate>Thu, 04 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Nobody likes an addendum.&lt;/p&gt;
          359 &lt;p&gt;Appendices are great (ask any Tolkien fan). P.S.&apos;s are &lt;em&gt;the best&lt;/em&gt; (especially if they&apos;re from a penpal).&lt;/p&gt;
          360 &lt;p&gt;But addendums. Nope. They change the rules, after you&apos;ve started playing. After the game&apos;s over, even.&lt;/p&gt;
          361 &lt;p&gt;I recently got dropped with this whopper of an addendum:&lt;/p&gt;
          362 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Orcein stains performed on blocks A3 and A5 highlight elastic fibers
          363 wrapping around nests of tumor cells, consistent with vascular invasion&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          364 &lt;h2&gt;A lil&apos; background&lt;/h2&gt;
          365 &lt;p&gt;Previously, on &quot;Halt and Catch Cancer&quot;, I thought I was in the clear. Sure, I&apos;d been &lt;a href=&quot;/colon-cancer&quot;&gt;diagnosed with Stage II colon cancer at age 34&lt;/a&gt;. But the neato robotic surgery to remove my sigmoid colon (and my grisly barnacle of a tumor) was successful, with no signs of the cancer spreading to the nearby lymph nodes (which are essentially the Information Superhighway of your body&apos;s immune system).&lt;/p&gt;
          366 &lt;p&gt;Officially, we&apos;re talking a PT3N0 pathology, where N means the number of lymph nodes with tumor cells (zero, in my case, of the 21 that were removed and inspected) and T means the levels of colon wall that the tumor &quot;broke through.&quot; N0 is awesome and T3 is not-so-awesome. My tumor was pretty darn close to breaking through the colon wall. But the fact that I had no lymph nodes affected was a good sign -- a good enough sign that no chemotheraphy was being recommended by my USCF doctor crew.&lt;/p&gt;
          367 &lt;p&gt;Now, after my blog post on this whole &quot;cancer sitch,&quot; I&apos;d been in touch with friends and other wood-workers who were, unfortunately, familiar with this process. One, in particular, has been highly tuned into the research and literature around colon cancer, and he pushed me to make sure I fully understood my pathology. He also mentioned that he&apos;s seen folks with my PT3N0 pathology do chemotherapy on a preventative basis. Given that my big missive in my last post was about &quot;becoming your own health advocate,&quot; his advice hit hard, because I was already lapsing in my attentiveness. Frankly, I was exhausted from the surgery, relieved by the results, ready to move on, and the pathology report itself was confusing af.&lt;/p&gt;
          368 &lt;p&gt;Actually, you know what? I&apos;m just going to paste it here:&lt;/p&gt;
          369 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;FINAL PATHOLOGIC DIAGNOSIS
          370 Sigmoid colon, sigmoid colectomy:
          371 1. Adenocarcinoma, moderately-differentiated, invasive through
          372 muscularis propria into pericolic adipose tissue, negative margins; see
          373 comment.
          374 2. No tumor in twenty-one lymph nodes (0/21).
          375 COMMENT:
          376 COLON CARCINOMA SYNOPTIC COMMENT
          377 - Procedure: Sigmoid colectomy.
          378 Result Information
          379 All Reviewers List
          380 Pathology PDF Report
          381 Narrative &amp;amp; Impression
          382 Harrington, Charles
          383 - Location of tumor: Sigmoid colon.
          384 - Tumor size: 3.3 x 2.5 x 1 cm.
          385 - Macroscopic tumor perforation: Not identified.
          386 - Histologic Type: Adenocarcinoma.
          387 - Histologic Grade: Moderately-differentiated (low grade).
          388 - Microscopic depth of invasion: Tumor invades through the muscularis
          389 propria into pericolic soft tissue (pT3).
          390 - Margins: Negative.
          391  - Proximal margin: Negative (tumor is &amp;gt; 4 cm from margin).
          392  - Distal margin: Negative (tumor is &amp;gt; 4 cm from margin).
          393  - Circumferential (radial) margin: Negative (tumor is &amp;gt; 3 cm from
          394 margin).
          395 - Treatment effect (modified Ryan score, scale 0-3): No known
          396 presurgical therapy.
          397 - Lymphovascular invasion: Not identified on H&amp;amp;E (orcein stains will
          398 be performed on blocks A3 and A5, and the results will be reported as an
          399 addendum).
          400 - Perineural invasion: None.
          401 - Tumor Deposits: Not identified.
          402 - Lymph node status: Negative (number of lymph nodes examined: 21).
          403 - Other pathologic findings: None identified.
          404 - AJCC Pathologic Stage: pT3N0.
          405 - Ancillary studies: Immunohistochemistry for DNA mismatch repair
          406 proteins will be reported in an addendum.
          407 
          408 Addendum Comment
          409 Immunohistochemistry was performed to evaluate the status of DNA
          410 mismatch repair protein expression on block A3. The results in the tumor
          411 cell nuclei are:
          412 MLH1 expression: Present.
          413 PMS2 expression: Present.
          414 MSH2 expression: Present.
          415 MSH6 expression: Present.
          416 Expression for all four markers, in most cases, indicates that the DNA
          417 mismatch repair proteins are intact. This result should be correlated
          418 with the clinical presentation and family history to determine the need
          419 for further work up for Lynch syndrome&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          420 &lt;p&gt;Probably TMI, but this will actually be easier for me to find later, instead of spelunking through the oh-so-painful EPIC MyChart software. Am I allowed to share this? I DON&apos;T KNOW AND I DON&apos;T CARE.&lt;/p&gt;
          421 &lt;p&gt;As you can see, this plaintext nightmare is full of strange and wonderous medical terms. Yes, the doctors walk you through it but still... it&apos;s a lot. I did push them to explain the terms, like what negative margins mean and why they&apos;re a good thing, although I kind of forget already so I won&apos;t try to explain.&lt;/p&gt;
          422 &lt;p&gt;After this walk-through with the docs, I felt good about my plan. No chemo needed. Just ongoing tests and CT scans and blood work and colonoscopies over the next five years to make sure that the cancer wasn&apos;t back, led by the UCSF Cancer Survivorship Clinic. Sure, that wasn&apos;t nothing, but it also isn&apos;t that bad, considering how lucky I am to have caught this thing and gotten it removed ASAP. The idea was, after five years, I&apos;d be back in the general population for risk of colon cancer. &lt;em&gt;Cured&lt;/em&gt;.&lt;/p&gt;
          423 &lt;p&gt;But then, during my first Survivorship Clinic convo in November, I recalled that one line from the pathology... the one mentioning the addendum that I hadn&apos;t yet seen. I ask about it. We dig in, and we find this:&lt;/p&gt;
          424 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Addendum Comment
          425 Orcein stains performed on blocks A3 and A5 highlight elastic fibers
          426 wrapping around nests of tumor cells, consistent with vascular invasion&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          427 &lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;Consistent with vascular invasion&lt;/code&gt;. Welp, that can&apos;t be good.&lt;/p&gt;
          428 &lt;p&gt;At this point, I&apos;m immediately whisked off the UCSF Oncology Department.&lt;/p&gt;
          429 &lt;h2&gt;New faces and new tests and new plans&lt;/h2&gt;
          430 &lt;p&gt;A hospital is a series of interconnected rings, all slightly Venn Diagramming each other, kind of like the Olympics logo. As a patient, you tend to orbit one of the rings. But sometimes you&apos;ll Three Body Problem your way over to another ring.&lt;/p&gt;
          431 &lt;p&gt;In my entire diagnosis and surgery process, I&apos;d never made it over to the Oncology (aka cancer) ring -- I was stuck in Surgery World. But, after this addendum, I&apos;m now squarely in their circle.&lt;/p&gt;
          432 &lt;p&gt;So, what&apos;s our goal now? Well, now that we&apos;ve noticed that my cancer has slightly spread into the vascular system, we need to figure out what to do about it. First, let&apos;s remember the good stuff - the rest of the pathology is relatively awesome. Next, let&apos;s get some more data!&lt;/p&gt;
          433 &lt;p&gt;We do these tests:&lt;/p&gt;
          434 &lt;ul&gt;
          435 &lt;li&gt;Signatera - looks in your blood for tumor cells&lt;/li&gt;
          436 &lt;li&gt;Oncotype - looks at your tumor and rates the likelihood of recurrence&lt;/li&gt;
          437 &lt;/ul&gt;
          438 &lt;blockquote&gt;
          439 &lt;p&gt;Let me reiterate that my explanations of these tests (and anything medical-related) is entirely my random-dudeman-laymen&apos;s explanation. I hope to provide one person&apos;s context and interpretation of these confusing and scary things. I&apos;m open to feedback and information on what I can do better.&lt;/p&gt;
          440 &lt;/blockquote&gt;
          441 &lt;h3&gt;Insurance aside&lt;/h3&gt;
          442 &lt;p&gt;Insurance didn&apos;t want to cover the Oncotype test, because, of course. Insurance doesn&apos;t want to cover a lot of things, especially brand new &quot;cutting edge&quot; stuff, like the Oncotype test.&lt;/p&gt;
          443 &lt;p&gt;Instead, insurance wants to make sure that you really-super-duper-need whatever it is they&apos;re going to give you, to the point where there&apos;s basically no way they can say no. My doctors have been amazing advocates for me, helping make sure that insurance knows how important these tests and treatments are for my health. THANK YOU, UCSF.&lt;/p&gt;
          444 &lt;p&gt;Insurance is frustrating and scary. I do not understand it. I do not want to understand it. I wish it was simpler. I wish I didn&apos;t have to make sure that I was &quot;covered&quot; for things related to my health and my family&apos;s health. I also know that I&apos;m incredibly lucky to have good insurance. I took a screenshot from my insurance app back in December:&lt;/p&gt;
          445 &lt;p&gt;&lt;span
          446       class=&quot;gatsby-resp-image-wrapper&quot;
          447       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          448     &gt;
          449       &lt;a
          450     class=&quot;gatsby-resp-image-link&quot;
          451     href=&quot;/static/b7291d13e21492cbff924ada73137851/c27e7/bill.png&quot;
          452     style=&quot;display: block&quot;
          453     target=&quot;_blank&quot;
          454     rel=&quot;noopener&quot;
          455   &gt;
          456     &lt;span
          457     class=&quot;gatsby-resp-image-background-image&quot;
          458     style=&quot;padding-bottom: 46.62576687116564%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABYlAAAWJQFJUiTwAAABKklEQVQoz31Sa1PDIBDk//86P+gnZ3ScmqZNmkdJeEPWO7BMrNab2RwQ2OWWE957OOcyjDEIIWTwmHH7l1JCjLEipZKNi7CeQDmECJEX6aC1tpLymDOL3WLbtl+gVfyMDcITodrdhMmY6Jb3RwrJ/vheqMzF/aa/QpLQ4sPDm+6RCfONjIazBlrrWjbHm3K4uICDdmiMfyhaCfkB5LKgPQ9YFJdtM1kikZO2eGlazMMAOU94ajusZLxyxRImYJuUUvmBeCyyd1RON2kMV4NVFy85Dsrio7+gPzaYuzOeuxEr71cSUkpoQ49HxOM41s4Qnjb4kNBPJuO68mM4rgGR7H2l+YlK/SShd+X+9ToT8qf0VcrYvvuLFRN3AAkeV42W4MiGGEPt1Xsw1xcg+8FrtuDM8QAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
          459   &gt;&lt;/span&gt;
          460   &lt;img
          461         class=&quot;gatsby-resp-image-image&quot;
          462         alt=&quot;insurance bill&quot;
          463         title=&quot;insurance bill&quot;
          464         src=&quot;/static/b7291d13e21492cbff924ada73137851/a6d36/bill.png&quot;
          465         srcset=&quot;/static/b7291d13e21492cbff924ada73137851/222b7/bill.png 163w,
          466 /static/b7291d13e21492cbff924ada73137851/ff46a/bill.png 325w,
          467 /static/b7291d13e21492cbff924ada73137851/a6d36/bill.png 650w,
          468 /static/b7291d13e21492cbff924ada73137851/e548f/bill.png 975w,
          469 /static/b7291d13e21492cbff924ada73137851/3c492/bill.png 1300w,
          470 /static/b7291d13e21492cbff924ada73137851/c27e7/bill.png 2144w&quot;
          471         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          472         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          473         loading=&quot;lazy&quot;
          474       /&gt;
          475   &lt;/a&gt;
          476     &lt;/span&gt;&lt;/p&gt;
          477 &lt;p&gt;WTF. That&apos;s an insane amount of money. But my life was saved, sooo...? The insurance company even assigned me a nurse to &quot;check in on me&quot; as a resource back in November and December, which sadly was more of a nuisance than anything else. And, then, when my company switched insurance providers at the beginning of 2021, this nurse service stopped abruptly. The whole thing&apos;s odd. But I can say again that I am extremely grateful to have had good insurance during my cancer treatment.&lt;/p&gt;
          478 &lt;h3&gt;Make a new plan&lt;/h3&gt;
          479 &lt;p&gt;The Signatera is clear, which is great. No circulating tumor cells in my blood. I ask the question, &quot;Doesn&apos;t this mean I&apos;m, like, good for life now?&quot; And apparently no. They can&apos;t say that. They can only say, &quot;We don&apos;t see anything right now.&quot; It&apos;s the balance sheet of cancer. Just cause things look good right now doesn&apos;t mean that next year or next quarter&apos;s gonna be the same. Past performance is no indication of future something-something.&lt;/p&gt;
          480 &lt;p&gt;Oncotype&apos;s pretty good, too. From what the doc explains, this test suggests that my tumor has a 12% recurrence rate. This is a low number and I should be happy about it. And I am. But I want it to be zero, obviously. Also, recurrence isn&apos;t talking about new polyps growing in my butt and starting cancers -- that can still happen. Recurrence is about whether cells from my now-removed cancer tumor are going rear their awful heads again, somewhere else in my body.&lt;/p&gt;
          481 &lt;p&gt;It&apos;s at this point that we get into the discussion around chemo. There&apos;s evidence that chemo can help reduce the recurrence rate even further. My oncology team brings my data to this cool-sounding UCSF &quot;Tumor Board&quot; meeting, and they advise a chemo treatment. The evidence suggests that we can bring down my recurrance rate from 12% to 6%.&lt;/p&gt;
          482 &lt;p&gt;But they also reiterate that it&apos;s my choice. I can say no. As my aforementioned friend said, &quot;You don&apos;t do chemo recreationally.&quot; In fact, the doctors explain that if I were an old man, they might not advise treatment. But since I&apos;m young and restless, it makes more sense for me to do whatever I can to improve my chances.&lt;/p&gt;
          483 &lt;p&gt;Duh, let&apos;s do this thing.&lt;/p&gt;
          484 &lt;h2&gt;So, what&apos;s chemotherapy like?&lt;/h2&gt;
          485 &lt;p&gt;Well, first of all, there&apos;s all different kinds of chemo. I didn&apos;t know that. I&apos;m on a combo colloquially called &lt;a href=&quot;https://en.wikipedia.org/wiki/CAPOX&quot;&gt;CAPEOX&lt;/a&gt; (which I thought sounded a bit like a rival Star Fox gang). It stands for capecitabine (brand name is Xeloda) and  oxaliplatin. Cape comes in pills and ox is an IV drip. &lt;/p&gt;
          486 &lt;p&gt;But wait -- more decisions. Do we do six months or three months of treatment? We review the data from a Japanese study, and we conclude that there&apos;s no measurable difference, so we go with 3 months, due to risk of chemo &lt;em&gt;side effects&lt;/em&gt;.&lt;/p&gt;
          487 &lt;h3&gt;Chemo is not a pure function&lt;/h3&gt;
          488 &lt;p&gt;Chemo has side effects. Here are the things that I&apos;ve encountered so far:&lt;/p&gt;
          489 &lt;ul&gt;
          490 &lt;li&gt;super cold fingers and toes&lt;/li&gt;
          491 &lt;li&gt;lockjaw when I start eating&lt;/li&gt;
          492 &lt;li&gt;clenching claw hands&lt;/li&gt;
          493 &lt;li&gt;it hurts to cry (and I just finished the last season of Halt and Catch Fire, so yeah..)&lt;/li&gt;
          494 &lt;li&gt;no appetite, not even for pizza or beer&lt;/li&gt;
          495 &lt;li&gt;nausea&lt;/li&gt;
          496 &lt;li&gt;kinda a sad feeling&lt;/li&gt;
          497 &lt;li&gt;dead sperm(!)&lt;/li&gt;
          498 &lt;/ul&gt;
          499 &lt;p&gt;Shockingly, there&apos;s no hair loss expected. I&apos;m already in a thinning situation &quot;up there,&quot; but it&apos;s not supposed to get any worse. A small, dumb part of me thinks that once treatment&apos;s over that it might even get better! But this small part is very dumb.&lt;/p&gt;
          500 &lt;p&gt;Let&apos;s talk about the sperm stuff. As a result of doing chemo, there&apos;s a good chance that my swimmers are gonna be dead for good. There&apos;s also a chance that they can come back. But, if I want to ensure that Carly and I can have the family we want, I need to do sperm banking, quickly! Apparently, there&apos;s a ticking clock on starting chemo post-surgery (something like within 8 weeks). So, I&apos;ve got a week to do as much sperm banking as I can! Fun!&lt;/p&gt;
          501 &lt;p&gt;The sperm banking process is hilarious. You go to a building, then into a waiting room, then you are led to a tiny little room with a metal door in the wall. When you are done collecting your sample in a cup, you open the door in the wall and put the cup in there, and then press a button, and someone on the other side grabs it. In between that, there&apos;s literally a Roku porn subscription and a big TV. I went four times in a week. We got some good stuff collected.&lt;/p&gt;
          502 &lt;p&gt;Another note on the 3 months vs 6 months decision - there are other potential side effects to chemo that factor into the timing decision. The big one in my case is something called &lt;a href=&quot;https://en.wikipedia.org/wiki/Peripheral_neuropathy&quot;&gt;neuropathy&lt;/a&gt;. Essentially, chemo can potentially cause long-term, life-altering nerve damage. The signs of it often begin with numb feet and hands, which I will admit seem rather easy to confuse with the expected, but not serious symptoms of cold hands and feet. The docs explain that any signs of neuropathy need to be reported immediately and we will halt chemo immediately, because the long-term negative effect of neuropathy far outweighs the gains in any reduction of recurrence rates in my case.&lt;/p&gt;
          503 &lt;p&gt;Now, given of all that prep and preamble, it&apos;s finally time to start chemo!&lt;/p&gt;
          504 &lt;h2&gt;Charlie the Cyborg&lt;/h2&gt;
          505 &lt;p&gt;Wait. We need a way to get the chemo into your body. There&apos;s two options: a PICC line or a port. In either case, we need a tube that&apos;s threaded through your veins directly above your heart. If you go PICC, we gotta thread that in for every single treatment. If you go port, you only do that once, but you get this Tony Stark metal disk thing in your chest. You can guess which one I chose.&lt;/p&gt;
          506 &lt;p&gt;&lt;span
          507       class=&quot;gatsby-resp-image-wrapper&quot;
          508       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          509     &gt;
          510       &lt;a
          511     class=&quot;gatsby-resp-image-link&quot;
          512     href=&quot;/static/326bc664110706ab62928653874483fd/ec605/port.jpg&quot;
          513     style=&quot;display: block&quot;
          514     target=&quot;_blank&quot;
          515     rel=&quot;noopener&quot;
          516   &gt;
          517     &lt;span
          518     class=&quot;gatsby-resp-image-background-image&quot;
          519     style=&quot;padding-bottom: 216.5644171779141%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAArABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAIDBAUB/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABiOscKQaqNRIiuFxNmIxzeD//xAAeEAACAgEFAQAAAAAAAAAAAAABAgADBBESEyIxMv/aAAgBAQABBQLnM5zBfK0DK9KiXKEbEXrkN2yTq9VqpTa257foq02NDUxJ8U6mf//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BX//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BX//EACAQAAIBAwQDAAAAAAAAAAAAAAABAiExMhARYZEgcoH/2gAIAQEABj8Cui66KtCpfTbgT0j6kVwUPhjPoxmYS8P/xAAfEAEAAgICAgMAAAAAAAAAAAABABEhMRBBYYFxobH/2gAIAQEAAT8hLGqfh4lQbngY8tkWlzS/sJju0C6ZrExSeoIuhXaHfox4ZhNBUEd31S6Leo6aRKXj/9oADAMBAAIAAwAAABDwzA2QD//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8QX//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QX//EAB8QAQADAQACAgMAAAAAAAAAAAEAESExQVGx0WFx4f/aAAgBAQABPxCzavm75juFn7fcPRJvg+Y+Igj9dfqJFbEWrYyswoVN+WMGUIm+VDBZmnJefxXd3rKhoYaP7HPcw9R09UDt1rDGRC8vI3UZ8XN2EFWSmQQyHFE14dlHon//2Q==&apos;); background-size: cover; display: block;&quot;
          520   &gt;&lt;/span&gt;
          521   &lt;img
          522         class=&quot;gatsby-resp-image-image&quot;
          523         alt=&quot;Port&quot;
          524         title=&quot;Port&quot;
          525         src=&quot;/static/326bc664110706ab62928653874483fd/6aca1/port.jpg&quot;
          526         srcset=&quot;/static/326bc664110706ab62928653874483fd/d2f63/port.jpg 163w,
          527 /static/326bc664110706ab62928653874483fd/c989d/port.jpg 325w,
          528 /static/326bc664110706ab62928653874483fd/6aca1/port.jpg 650w,
          529 /static/326bc664110706ab62928653874483fd/7c09c/port.jpg 975w,
          530 /static/326bc664110706ab62928653874483fd/ec605/port.jpg 1125w&quot;
          531         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          532         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          533         loading=&quot;lazy&quot;
          534       /&gt;
          535   &lt;/a&gt;
          536     &lt;/span&gt;&lt;/p&gt;
          537 &lt;p&gt;Now I have an ID card that explains why metal detectors don&apos;t like me anymore.&lt;/p&gt;
          538 &lt;p&gt;&lt;span
          539       class=&quot;gatsby-resp-image-wrapper&quot;
          540       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          541     &gt;
          542       &lt;a
          543     class=&quot;gatsby-resp-image-link&quot;
          544     href=&quot;/static/b331d468b218ca7f228c91db9b47599d/fb7c9/portchest.jpg&quot;
          545     style=&quot;display: block&quot;
          546     target=&quot;_blank&quot;
          547     rel=&quot;noopener&quot;
          548   &gt;
          549     &lt;span
          550     class=&quot;gatsby-resp-image-background-image&quot;
          551     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAIDAQQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/9oADAMBAAIQAxAAAAFlrgfCObnpYlC4gV//xAAeEAACAgEFAQAAAAAAAAAAAAABAgARMQMEISIzQv/aAAgBAQABBQKap4oSo6dQBAwcZBq9p5/bZ//EABURAQEAAAAAAAAAAAAAAAAAAAIg/9oACAEDAQE/ATH/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAdEAACAgEFAAAAAAAAAAAAAAAAARAxAhEhIkFx/9oACAEBAAY/AhJ53NanKxtdG8Zez//EABwQAAMAAwADAAAAAAAAAAAAAAABESExQRBhcf/aAAgBAQABPyGEXyNzEQ0OJ36VLB+vtiyTXYW6yhWjoVnc8M9Def/aAAwDAQACAAMAAAAQC9oC/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAQIf/aAAgBAwEBPxAMsPM//8QAFxEBAQEBAAAAAAAAAAAAAAAAARARIf/aAAgBAgEBPxBSZ2f/xAAdEAEAAwACAwEAAAAAAAAAAAABABEhQVExYXHw/9oACAEBAAE/EDEQRAMio8e4iQDnSyixB3LKhOgKVxsShRFS6r1AQRw/GXc6wvy42Ba25NXflETXxcxV3P/Z&apos;); background-size: cover; display: block;&quot;
          552   &gt;&lt;/span&gt;
          553   &lt;img
          554         class=&quot;gatsby-resp-image-image&quot;
          555         alt=&quot;Port Chest&quot;
          556         title=&quot;Port Chest&quot;
          557         src=&quot;/static/b331d468b218ca7f228c91db9b47599d/6aca1/portchest.jpg&quot;
          558         srcset=&quot;/static/b331d468b218ca7f228c91db9b47599d/d2f63/portchest.jpg 163w,
          559 /static/b331d468b218ca7f228c91db9b47599d/c989d/portchest.jpg 325w,
          560 /static/b331d468b218ca7f228c91db9b47599d/6aca1/portchest.jpg 650w,
          561 /static/b331d468b218ca7f228c91db9b47599d/7c09c/portchest.jpg 975w,
          562 /static/b331d468b218ca7f228c91db9b47599d/01ab0/portchest.jpg 1300w,
          563 /static/b331d468b218ca7f228c91db9b47599d/fb7c9/portchest.jpg 2316w&quot;
          564         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          565         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          566         loading=&quot;lazy&quot;
          567       /&gt;
          568   &lt;/a&gt;
          569     &lt;/span&gt;&lt;/p&gt;
          570 &lt;p&gt;Gross and weird, but also cool and weird. With this port, it&apos;s a simple little pin prick to get me all connected to the IV stuff. Here I am plugged in.&lt;/p&gt;
          571 &lt;p&gt;&lt;span
          572       class=&quot;gatsby-resp-image-wrapper&quot;
          573       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          574     &gt;
          575       &lt;a
          576     class=&quot;gatsby-resp-image-link&quot;
          577     href=&quot;/static/a2b9526d8bba6f700a5e341eb34f2d35/fb7c9/plugged.jpg&quot;
          578     style=&quot;display: block&quot;
          579     target=&quot;_blank&quot;
          580     rel=&quot;noopener&quot;
          581   &gt;
          582     &lt;span
          583     class=&quot;gatsby-resp-image-background-image&quot;
          584     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAwH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQP/2gAMAwEAAhADEAAAAapHypYiBpS+XKQci//EABwQAQACAwADAAAAAAAAAAAAAAEAAgMREiEiMf/aAAgBAQABBQLNT1U5LYo5m8K7lsXnoGlWOmfIHRqf/8QAGBEAAgMAAAAAAAAAAAAAAAAAABEBAhD/2gAIAQMBAT8BiqFjP//EABcRAAMBAAAAAAAAAAAAAAAAAAAQERL/2gAIAQIBAT8B0VQ//8QAHhAAAQMFAQEAAAAAAAAAAAAAAAECERASMUGBMlH/2gAIAQEABj8CJceyyN5NUlqdQuc7hlTgs/af/8QAGxABAQEAAwEBAAAAAAAAAAAAAREAITFBcVH/2gAIAQEAAT8hO6blqR4cs8fc9zfjtoWqlS4kVBnmZtQuIyRTp0YNa/MHQ6wlmyDAOAm//9oADAMBAAIAAwAAABBbw8L/xAAZEQACAwEAAAAAAAAAAAAAAAAAAREhYTH/2gAIAQMBAT8QQ18Mi0kj/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERYVH/2gAIAQIBAT8QbtaaJwln/8QAHRABAAMBAQEAAwAAAAAAAAAAAQARITFBUXGBkf/aAAgBAQABPxAbZWU/GBPFTNazn4lo/RiVAl4uQHUjj5JMBdqoweQDIRoW0Ba9/s68QYknv2L2J4myoQc3avPJfA7HhB2gFoGp/9k=&apos;); background-size: cover; display: block;&quot;
          585   &gt;&lt;/span&gt;
          586   &lt;img
          587         class=&quot;gatsby-resp-image-image&quot;
          588         alt=&quot;plugged&quot;
          589         title=&quot;plugged&quot;
          590         src=&quot;/static/a2b9526d8bba6f700a5e341eb34f2d35/6aca1/plugged.jpg&quot;
          591         srcset=&quot;/static/a2b9526d8bba6f700a5e341eb34f2d35/d2f63/plugged.jpg 163w,
          592 /static/a2b9526d8bba6f700a5e341eb34f2d35/c989d/plugged.jpg 325w,
          593 /static/a2b9526d8bba6f700a5e341eb34f2d35/6aca1/plugged.jpg 650w,
          594 /static/a2b9526d8bba6f700a5e341eb34f2d35/7c09c/plugged.jpg 975w,
          595 /static/a2b9526d8bba6f700a5e341eb34f2d35/01ab0/plugged.jpg 1300w,
          596 /static/a2b9526d8bba6f700a5e341eb34f2d35/fb7c9/plugged.jpg 2316w&quot;
          597         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          598         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          599         loading=&quot;lazy&quot;
          600       /&gt;
          601   &lt;/a&gt;
          602     &lt;/span&gt;&lt;/p&gt;
          603 &lt;p&gt;My three week cycle consists of this:&lt;/p&gt;
          604 &lt;ul&gt;
          605 &lt;li&gt;Day One: Ox drip and start taking pills&lt;/li&gt;
          606 &lt;li&gt;Next 2 weeks: pills 2x a day&lt;/li&gt;
          607 &lt;li&gt;Third week: Nothing&lt;/li&gt;
          608 &lt;/ul&gt;
          609 &lt;p&gt;Then, start over, for 4 times total.&lt;/p&gt;
          610 &lt;p&gt;The point of the third week is to help your white blood cells recover. The chemo fries them, too. It basically kills anything fast growing in your body (my interpretation!), so your useful blood cells (and sperm and hair etc etc) are impacted. Not a super great thing to happen during a global pandemic, weakening your immune system and all.&lt;/p&gt;
          611 &lt;p&gt;The drip takes like 2 hours. I usually bring some books and a chicken parm sub and my Nintendo Switch. Here&apos;s me after a pee-break:&lt;/p&gt;
          612 &lt;p&gt;&lt;span
          613       class=&quot;gatsby-resp-image-wrapper&quot;
          614       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          615     &gt;
          616       &lt;a
          617     class=&quot;gatsby-resp-image-link&quot;
          618     href=&quot;/static/242e9d3629ee3ccb851bad34bbc33eb5/9568a/bathroom.jpg&quot;
          619     style=&quot;display: block&quot;
          620     target=&quot;_blank&quot;
          621     rel=&quot;noopener&quot;
          622   &gt;
          623     &lt;span
          624     class=&quot;gatsby-resp-image-background-image&quot;
          625     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMCBAUB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGw/Lu5tkgGU3RgIOB//8QAHRAAAgICAwEAAAAAAAAAAAAAAQIAAxExBBMhQf/aAAgBAQABBQLxYmCFltp7K3xBOQCz4sIQmJv6d//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/AYU//8QAHhAAAgEDBQAAAAAAAAAAAAAAAAEhAhAREiIxQnH/2gAIAQEABj8ClRZmnqYqH6bVKFA88lQ7f//EAB4QAQACAgIDAQAAAAAAAAAAAAEAESFBUWExcYHB/9oACAEBAAE/IVJUBuByUlwVTuZMhwrqIdrxHbIwIpomSMxuHKat+QfRnhvUyVz/2gAMAwEAAgADAAAAENTgjv/EABcRAQEBAQAAAAAAAAAAAAAAAAARASH/2gAIAQMBAT8QuNTqP//EABcRAQEBAQAAAAAAAAAAAAAAAAABEVH/2gAIAQIBAT8Q1EcNf//EACAQAQADAAEDBQAAAAAAAAAAAAEAESExQVFhgZGhwdH/2gAIAQEAAT8QVsFX23wRhNAbt0gAOBxJC+eRXl7zOw1nQUbM25+BizNjpQtks7pRuDcHywoeAfUAcNC3vkcYLVL6RX9bXxP/2Q==&apos;); background-size: cover; display: block;&quot;
          626   &gt;&lt;/span&gt;
          627   &lt;img
          628         class=&quot;gatsby-resp-image-image&quot;
          629         alt=&quot;bathroom selfie&quot;
          630         title=&quot;bathroom selfie&quot;
          631         src=&quot;/static/242e9d3629ee3ccb851bad34bbc33eb5/6aca1/bathroom.jpg&quot;
          632         srcset=&quot;/static/242e9d3629ee3ccb851bad34bbc33eb5/d2f63/bathroom.jpg 163w,
          633 /static/242e9d3629ee3ccb851bad34bbc33eb5/c989d/bathroom.jpg 325w,
          634 /static/242e9d3629ee3ccb851bad34bbc33eb5/6aca1/bathroom.jpg 650w,
          635 /static/242e9d3629ee3ccb851bad34bbc33eb5/7c09c/bathroom.jpg 975w,
          636 /static/242e9d3629ee3ccb851bad34bbc33eb5/01ab0/bathroom.jpg 1300w,
          637 /static/242e9d3629ee3ccb851bad34bbc33eb5/9568a/bathroom.jpg 3024w&quot;
          638         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          639         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          640         loading=&quot;lazy&quot;
          641       /&gt;
          642   &lt;/a&gt;
          643     &lt;/span&gt;&lt;/p&gt;
          644 &lt;p&gt;I buy this pill box on Amazon, cause why not:&lt;/p&gt;
          645 &lt;p&gt;&lt;span
          646       class=&quot;gatsby-resp-image-wrapper&quot;
          647       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          648     &gt;
          649       &lt;a
          650     class=&quot;gatsby-resp-image-link&quot;
          651     href=&quot;/static/8802dbebea79ef99ab779b12b4d2ce11/9568a/pillbox.jpg&quot;
          652     style=&quot;display: block&quot;
          653     target=&quot;_blank&quot;
          654     rel=&quot;noopener&quot;
          655   &gt;
          656     &lt;span
          657     class=&quot;gatsby-resp-image-background-image&quot;
          658     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAEDBAIF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAdmPOj1XIpuQWJWf/8QAHRAAAgIBBQAAAAAAAAAAAAAAAQIDEQAEEiAhMf/aAAgBAQABBQLzG1PaNazyEmCPebx0vAAorh//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAfEAACAQIHAAAAAAAAAAAAAAAAAQIRMRASICEiMlH/2gAIAQEABj8COK2E2qGWyKvqsPRRjbT/AP/EABwQAQADAAIDAAAAAAAAAAAAAAEAESEQUUGh8f/aAAgBAQABPyHBa0EpqL2Ym6NqJ6IeJ93HqKWAdKeyBRiUjwT/2gAMAwEAAgADAAAAEKQIc//EABYRAQEBAAAAAAAAAAAAAAAAABEAEP/aAAgBAwEBPxAxm//EABYRAQEBAAAAAAAAAAAAAAAAAAAREP/aAAgBAgEBPxDIj//EAB4QAQACAgIDAQAAAAAAAAAAAAEAESFBMWEQUaFx/9oACAEBAAE/ELYIFq8EsRPai99RMbNE3jUfD7ny9pLELcX5ZfYwZSB0i1+DqMwPe5Xax1HksE//2Q==&apos;); background-size: cover; display: block;&quot;
          659   &gt;&lt;/span&gt;
          660   &lt;img
          661         class=&quot;gatsby-resp-image-image&quot;
          662         alt=&quot;pill box&quot;
          663         title=&quot;pill box&quot;
          664         src=&quot;/static/8802dbebea79ef99ab779b12b4d2ce11/6aca1/pillbox.jpg&quot;
          665         srcset=&quot;/static/8802dbebea79ef99ab779b12b4d2ce11/d2f63/pillbox.jpg 163w,
          666 /static/8802dbebea79ef99ab779b12b4d2ce11/c989d/pillbox.jpg 325w,
          667 /static/8802dbebea79ef99ab779b12b4d2ce11/6aca1/pillbox.jpg 650w,
          668 /static/8802dbebea79ef99ab779b12b4d2ce11/7c09c/pillbox.jpg 975w,
          669 /static/8802dbebea79ef99ab779b12b4d2ce11/01ab0/pillbox.jpg 1300w,
          670 /static/8802dbebea79ef99ab779b12b4d2ce11/9568a/pillbox.jpg 3024w&quot;
          671         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          672         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          673         loading=&quot;lazy&quot;
          674       /&gt;
          675   &lt;/a&gt;
          676     &lt;/span&gt;&lt;/p&gt;
          677 &lt;p&gt;This sucker lives in our kitchen counter in plain sight so that I never forget to take my 2x a day sets, and so far, I haven&apos;t ever forgotten.&lt;/p&gt;
          678 &lt;h2&gt;What next?&lt;/h2&gt;
          679 &lt;p&gt;This has been a long, strange trip of a six-month period. I&apos;m currently in the second week of the third cycle. My third cycle had to be pushed back a week because my white blood cells were too low. I came back the next week, and they were still low, but we decided to proceed, and just dropped my cape dosage from 2000mg to 1500mg (3 pills 2x a day instead of 4 pills 2x a day). In another week, I get to have the glorious &quot;week off&quot; (when I again crave the taste of beer), and then we&apos;re back for the fourth and final round.&lt;/p&gt;
          680 &lt;p&gt;I can&apos;t wait for this to be over. I can&apos;t wait for this port to be out of my chest. I&apos;m happy that I&apos;m doing everything I can to ensure that I have a long and healthy life. I&apos;m eager to get back on the UCSF Survivorship Clinic plan, and start improving my diet to reduce inflammation (and all this other stuff that&apos;s supposed to help prevent cancer).&lt;/p&gt;
          681 &lt;p&gt;I have learned a lot about cancer and health. My heart breaks when I think about children who&apos;ve suffered from cancer. My infusion center is the adult center. I&apos;m not sure I could stomach seeing children and babies getting chemo. I&apos;m crying right now even thinking about it (which hurts, if you remember my side effects). Cancer is terrible and it can affect anyone. This is where I re-impart my advice about being your own health advocate. &lt;/p&gt;
          682 &lt;p&gt;Thanks to Carly and my family and friends and work peeps for your love and support.&lt;/p&gt;
          683 &lt;p&gt;Fuck cancer. &lt;a href=&quot;/create-wonderful-things-be-good-have-fun&quot;&gt;Create wonderful things, be good, and have fun.&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Flow and Creative Computing]]></title><description><![CDATA[I recently watched Pixar's SOUL and I loved its depiction of being in the zone:  This is a beautiful, astrally-projected depiction of Mihaly…]]></description><link>https://www.charlieharrington.com/flow-and-creative-computing</link><guid isPermaLink="false">https://www.charlieharrington.com/flow-and-creative-computing</guid><pubDate>Wed, 13 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently watched Pixar&apos;s SOUL and I loved its depiction of being &lt;em&gt;in the zone&lt;/em&gt;:&lt;/p&gt;
          684 &lt;p&gt;&lt;span
          685       class=&quot;gatsby-resp-image-wrapper&quot;
          686       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          687     &gt;
          688       &lt;span
          689     class=&quot;gatsby-resp-image-background-image&quot;
          690     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAABYlAAAWJQFJUiTwAAAECElEQVQ4yyWU6U9UVxyGL8td5t7ZmBlmY2CYGacOMApDlaFqS0nDNq0DFEVoEIJVxoWKFWVcqkRKrIJLba1AjFJRJK1LW60VSdUuadLYNDVNP/RL0z/l6ZF+OMnJTc5z3vf9vedKqtKBqrRgUhrEasVpHiHoOELcfYRq7wlqfMcJO3fhMXbhUoYwyW3oShpDafv/jNyALndQaB6k0ncFSVXb0NQWNK0Rq9ZJmfVDAZqgMTxHKjzP5ugXrPEeI2gdwasfxix3YVG7MKvvoGsCqjaj5acoMDLUhr56AUyjmzZiEitg7CbtuUlr9B49ZU/YHnvC8cRzOipuUVlyiZD5BHa5V1y8jQLTDqx6j4CmhcOU2G+jJnQPSdNasRqd2MydRGxHaA0t0ht/xkjyL/YnfuNc7T90r15iXeg2NbYJwvJObKYMbmMPLvMAZtMWVDUl7LcTcX+MpOubcJh78Vn7qHRO0rLyR7pivzPc9TepY39wcv2/dJQ/pS6yxAbrOFE5g900SJFlH0XWvSLzd4VKMQdh2yW+SRa9G58tQ7FtgGrHGVrCj2mI/UR/9TNa+5+TSf5Jc3SRisA1Vuv7KVG2CmUHCBaMECnIUmzfh83oQ5PbRba9SE5jO0H7kFh7lhXWF92ipnSBhvB93g4vkY4+Ilk6R9gxxmp1AI+8mULjfQE7TLlzlJjj6LJ1XenGlNeNFLAfJOo4xEpHlgrHWdZ6LlPtm6Y2eIPXQ7dIFn9OyPcRJZZhQnliunIaj3mImGuMhPsMSe85imzDOESuhtyPFHGepMp9mpfdk1S7LhJ1nSFceIqY9wKV/ileck/gsmcxi8nquSmhpF1kt5+E9zz1wXnS4dsCPo7feginNogU905RVzTLG0JJvX+OFc7T+ApGCQiLpc5xiuwfYLW8R76wlJv7JhZRlZB7bBnWXvqQ3fFfaArdJOQ8RcRyHOmVwgVaS26zMXKHxpK7xF0Xlm8rtGVxWrOiTkMoQl1O/iZycttwGDsp81+iKXKf7g0PyCSe0lf+hFUl16gSZ6UNHY9ZU/cr6eLvaCp9IHKZImwcxiUmqpr2Ims7yFF6kPI6ycvbIhpxgKrAdZor7tF2epGNHd/Tv2KJRHCBuH8Wad3AD5SmfyYVfERz+CExzwxxfRSfelA8o90CJoKWBTC/R1SjTwzgAKuKr7I++CW1DQ9o2fItW9fcJRa7gsdzEamx+g7dnXd4q/xrXgt8Q7FrhqR+Hr8yKkCD5IgiS/ILlRlkZReOF110TBILXCZYdp2j2Qk2b7+AtnaWAvenSLWeeV71Xifpv0G8cA6vbYoq7TPxZzmFpBwUoGGhbhhVVCtfz4p3m8ViPSGKfZZg5QyxumlCwU8wEtO4Ylf5Dy0KDrqIrtD+AAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
          691   &gt;&lt;/span&gt;
          692   &lt;img
          693         class=&quot;gatsby-resp-image-image&quot;
          694         alt=&quot;In the Zone&quot;
          695         title=&quot;In the Zone&quot;
          696         src=&quot;/static/0aee6e1c7f7c78355cb80e7835703fca/a6d36/zone.png&quot;
          697         srcset=&quot;/static/0aee6e1c7f7c78355cb80e7835703fca/222b7/zone.png 163w,
          698 /static/0aee6e1c7f7c78355cb80e7835703fca/ff46a/zone.png 325w,
          699 /static/0aee6e1c7f7c78355cb80e7835703fca/a6d36/zone.png 650w,
          700 /static/0aee6e1c7f7c78355cb80e7835703fca/e548f/zone.png 975w,
          701 /static/0aee6e1c7f7c78355cb80e7835703fca/3c492/zone.png 1300w,
          702 /static/0aee6e1c7f7c78355cb80e7835703fca/769f8/zone.png 1924w&quot;
          703         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          704         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          705         loading=&quot;lazy&quot;
          706       /&gt;
          707     &lt;/span&gt;&lt;/p&gt;
          708 &lt;p&gt;This is a beautiful, astrally-projected depiction of Mihaly Csikszentmihalyi&apos;s &lt;em&gt;flow&lt;/em&gt; concept. For the unfamiliar, here&apos;s how Csikszentmihalyi describes flow, or &lt;em&gt;the optimal experience&lt;/em&gt;:&lt;/p&gt;
          709 &lt;blockquote&gt;
          710 &lt;p&gt;It is what the sailor holding a tight course feels when the wind whips through her hair, when the boat lunges through the waves like a colt -- sails, hull, wind, and sea humming a harmony that vibrates in the sailor&apos;s veins. It is what a painter feels when the colors on the canvas begin to set up a magnetic tension with each other, and a new &lt;em&gt;thing&lt;/em&gt;, a living form, takes shape in front of the astonished creator.&lt;/p&gt;
          711 &lt;/blockquote&gt;
          712 &lt;p&gt;That sounds pretty good, right? Csikszentmihalyi contends that flow is how we humans can achieve happiness. And it&apos;s not something that&apos;s given; it&apos;s something we have to cultivate and grow and work towards. I cannot recommend his book enough.&lt;/p&gt;
          713 &lt;p&gt;Even better was SOUL&apos;s depiction of the non-flow state - the lost souls:&lt;/p&gt;
          714 &lt;p&gt;&lt;span
          715       class=&quot;gatsby-resp-image-wrapper&quot;
          716       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          717     &gt;
          718       &lt;span
          719     class=&quot;gatsby-resp-image-background-image&quot;
          720     style=&quot;padding-bottom: 41.104294478527606%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAIABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAE/9oADAMBAAIQAxAAAAHEG0yBf//EABUQAQEAAAAAAAAAAAAAAAAAABAh/9oACAEBAAEFAo//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwGn/8QAFBABAAAAAAAAAAAAAAAAAAAAEP/aAAgBAQAGPwJ//8QAFxAAAwEAAAAAAAAAAAAAAAAAABARUf/aAAgBAQABPyGaKv/aAAwDAQACAAMAAAAQiD//xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQMBAT8Q1X//xAAYEQACAwAAAAAAAAAAAAAAAAAAAREhMf/aAAgBAgEBPxC2KBo//8QAGhAAAwADAQAAAAAAAAAAAAAAAAERMXGB4f/aAAgBAQABPxCGF4iFI7sbd9P/2Q==&apos;); background-size: cover; display: block;&quot;
          721   &gt;&lt;/span&gt;
          722   &lt;img
          723         class=&quot;gatsby-resp-image-image&quot;
          724         alt=&quot;lost souls&quot;
          725         title=&quot;lost souls&quot;
          726         src=&quot;/static/c8e9d78346f3711671078cfd117b81b8/6aca1/lost-souls.jpg&quot;
          727         srcset=&quot;/static/c8e9d78346f3711671078cfd117b81b8/d2f63/lost-souls.jpg 163w,
          728 /static/c8e9d78346f3711671078cfd117b81b8/c989d/lost-souls.jpg 325w,
          729 /static/c8e9d78346f3711671078cfd117b81b8/6aca1/lost-souls.jpg 650w,
          730 /static/c8e9d78346f3711671078cfd117b81b8/7c09c/lost-souls.jpg 975w,
          731 /static/c8e9d78346f3711671078cfd117b81b8/a2510/lost-souls.jpg 1000w&quot;
          732         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          733         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          734         loading=&quot;lazy&quot;
          735       /&gt;
          736     &lt;/span&gt;&lt;/p&gt;
          737 &lt;p&gt;Definitely been there. Usually its whenever I hear, &quot;Can you see my screen?&quot; These poor creatures wander the astral plane, lost and unhappy and unsure why.&lt;/p&gt;
          738 &lt;p&gt;Luckily, the movie tells us it&apos;s never too late, and I believe them.&lt;/p&gt;
          739 &lt;p&gt;So, how do we achieve flow?&lt;/p&gt;
          740 &lt;p&gt;It&apos;s the deliberate combination of skill meeting challenge. More from Csikszentmihalyi:&lt;/p&gt;
          741 &lt;blockquote&gt;
          742 &lt;p&gt;The best moments usually occur when a person&apos;s body or mind is stretched to its limits in a voluntary effort accomplish something difficult and worthwhile.&lt;/p&gt;
          743 &lt;/blockquote&gt;
          744 &lt;p&gt;This post documents a legitimate flow experience I had last week that began with an observation about my podcast addiction.&lt;/p&gt;
          745 &lt;h2&gt;All My Best Friends are Podcasts&lt;/h2&gt;
          746 &lt;p&gt;Yes, that&apos;s a &lt;a href=&quot;https://www.youtube.com/watch?v=Z_63ZZRLylE&quot;&gt;Less Than Jake&lt;/a&gt; reference. You&apos;re welcome, 8th-Grade Charlie.&lt;/p&gt;
          747 &lt;p&gt;And, if you&apos;re at all like 28th-Grade Charlie, then you&apos;re also helplessly addicted to podcasts.&lt;/p&gt;
          748 &lt;p&gt;I listen all the time -- while I&apos;m washing dishes, folding laundry, performing my daily Amazon cardboard box cutting ritual, even taking showers. Carly doesn&apos;t understand it, and I certainly can&apos;t explain it.&lt;/p&gt;
          749 &lt;p&gt;Am I that afraid of silence? My own thoughts? Am I so lonely for friendship that I even found this evisceration quietly comforting?&lt;/p&gt;
          750 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Podcasts saying literally nothing for 20 minutes. &lt;a href=&quot;https://t.co/nmfka1Gjsp&quot;&gt;pic.twitter.com/nmfka1Gjsp&lt;/a&gt;&lt;/p&gt;&amp;mdash; Jonathan Ogden (@jogdenUK) &lt;a href=&quot;https://twitter.com/jogdenUK/status/1346442437376552962?ref_src=twsrc%5Etfw&quot;&gt;January 5, 2021&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
          751 &lt;p&gt;I know too much about ancient Rome to be able to answer these questions.&lt;/p&gt;
          752 &lt;p&gt;So, if I&apos;m just going to accept my Overcast overlords, can I turn the tides on this one-directional relationship?&lt;/p&gt;
          753 &lt;p&gt;Yes. We can. Enter: the spark of an idea.&lt;/p&gt;
          754 &lt;h2&gt;Create a podcast from the audio of YouTube videos&lt;/h2&gt;
          755 &lt;p&gt;If I can&apos;t control what my favorite podcast hosts are talking about in any given episode, can I instead choose &lt;em&gt;exactly&lt;/em&gt; what I want to listen to? What if there were a virtually unlimited source of content to consume? Surely, I could then be more deliberate in my listening habits.&lt;/p&gt;
          756 &lt;p&gt;YouTube is our answer. I&apos;ve been collecting computer science talks and lectures in playlists that I always mean to &quot;watch later&quot; and never do. Fact is, I don&apos;t want to watch a YouTube video. I rarely ever sit down and &quot;watch YouTube&quot; (other than The 8-Bit Guy cleaning old VIC-20s). It&apos;s not part of my routine. I&apos;m usually moving around too much.&lt;/p&gt;
          757 &lt;p&gt;YouTube also makes it really hard to consume something &quot;on the go.&quot; You need to pay for their PiP or minimized mode, I think.&lt;/p&gt;
          758 &lt;p&gt;Then I found this &lt;a href=&quot;https://benjamincongdon.me/blog/2020/03/02/Creating-a-Podcast-Feed-from-a-YouTube-Playlist/&quot;&gt;post by Benjamin Congdon&lt;/a&gt;: a simple way to create an audio podcast feed from a YouTube playlist using a &lt;a href=&quot;https://amzn.to/3qksZiq&quot;&gt;Raspberry Pi&lt;/a&gt; home server. His tutorial leverages an open source project called &lt;a href=&quot;https://github.com/mxpv/podsync/&quot;&gt;PodSync&lt;/a&gt;, which itself leverages &lt;code class=&quot;language-text&quot;&gt;ffmpeg&lt;/code&gt; and, everyone&apos;s favorite controversy, &lt;code class=&quot;language-text&quot;&gt;youtube-dl&lt;/code&gt;, behind the scenes to download audio from YouTube and generate a podcast RSS feed. This, this, is exactly what I was looking for!&lt;/p&gt;
          759 &lt;p&gt;Nothing to add here, other than bravo, Benjamin. I was able to follow his tutorial pretty much straight through.&lt;/p&gt;
          760 &lt;p&gt;Wait, I do have something to add. Benjamin suggests using &lt;code class=&quot;language-text&quot;&gt;rsync&lt;/code&gt; to upload your mp3s and xml RSS feed to s3 or the like. I did this initially, but I didn&apos;t like the idea of having to mark these files as &lt;code class=&quot;language-text&quot;&gt;public&lt;/code&gt; on s3 in case of some huge accidental traffic surge.&lt;/p&gt;
          761 &lt;p&gt;So I came up with another idea:&lt;/p&gt;
          762 &lt;ul&gt;
          763 &lt;li&gt;Create a public repo on GitHub and enable GitHub Pages (mine is &lt;a href=&quot;https://github.com/rockswhat/listener&quot;&gt;here&lt;/a&gt;)&lt;/li&gt;
          764 &lt;li&gt;Init the repo in your &lt;code class=&quot;language-text&quot;&gt;/data&lt;/code&gt; directory on the Raspberry Pi (this is the directory with the generated &lt;code class=&quot;language-text&quot;&gt;.xml&lt;/code&gt; RSS feed and &lt;code class=&quot;language-text&quot;&gt;mp3&lt;/code&gt; audio files)&lt;/li&gt;
          765 &lt;li&gt;Change your Podsync config&apos;s hostname to your GitHub Pages site: &lt;/li&gt;
          766 &lt;/ul&gt;
          767 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;hostname = &amp;quot;https://rockswhat.github.io/listener&amp;quot;`&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          768 &lt;ul&gt;
          769 &lt;li&gt;Change your cron command to push to your repo (instead of &lt;code class=&quot;language-text&quot;&gt;rsync&lt;/code&gt; to s3):&lt;/li&gt;
          770 &lt;/ul&gt;
          771 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;*/15 * * * * cd /home/pi/podsync/data &amp;amp;&amp;amp; git add . &amp;amp;&amp;amp; git commit -m &amp;quot;update feed&amp;quot; &amp;amp;&amp;amp; git push origin main&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          772 &lt;p&gt;Voila! My own podcast feed of YouTube videos, publicly available on the Internet. You can add my feed to Overcast (or your favorite podcast player) with its XML URL:&lt;/p&gt;
          773 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;https://rockswhat.github.io/listener/listen_laterz.xml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          774 &lt;h3&gt;C&apos;mon, you really achieved flow from &lt;em&gt;that&lt;/em&gt;?&lt;/h3&gt;
          775 &lt;p&gt;No, not really, but &lt;em&gt;almost&lt;/em&gt;. Tutorials, good ones, at least, are guided paths toward some goal, with micro-feedback and mini-frustrations along the way. And these things are well-suited to flow. They can lead you to flow.&lt;/p&gt;
          776 &lt;p&gt;In my case, this tutorial got my gears turning. Which now gets us into to the &lt;code class=&quot;language-text&quot;&gt;creative computing&lt;/code&gt; side of this article.&lt;/p&gt;
          777 &lt;p&gt;I think it&apos;s important to remind ourselves to have fun with our computers. To use them to make art, make music, create weird stuff, just because we can. There&apos;s so much on our computers and phones now thanks to the Internet that can warp our minds and render us into Lost Souls. We often forget the simple joys of computers of the past, back when they were bicycles for the mind, and used adorable floppy disks or CD-ROM drives for games and encyclopedias. I know there&apos;s so much &quot;more&quot; that we can do with computers, but we need to remember that they are here to work for us, and not the other way around.&lt;/p&gt;
          778 &lt;p&gt;As soon as I saw Overcast fill up with audio from my &lt;code class=&quot;language-text&quot;&gt;Listen Laterz&lt;/code&gt; YouTube playlist, I knew I needed to keep going, to see what else I could render from clay into podcast feeds.&lt;/p&gt;
          779 &lt;h2&gt;Creating a podcast audiobook from Project Gutenberg e-books&lt;/h2&gt;
          780 &lt;p&gt;Where else can we find a giant repository of open content on the Internet that also happens to be inconvenient to consume?&lt;/p&gt;
          781 &lt;p&gt;Hello, &lt;a href=&quot;https://www.gutenberg.org/&quot;&gt;Project Gutenberg&lt;/a&gt;! &lt;/p&gt;
          782 &lt;p&gt;Project Gutenberg is just about the coolest --- and one of the most important -- things on the internet. The fact that it was &lt;a href=&quot;https://en.wikipedia.org/wiki/Project_Gutenberg&quot;&gt;started on the ARPANET in 1971&lt;/a&gt; blows my mind. That is some creative, forward-thinking from its founder Michael S. Hart.&lt;/p&gt;
          783 &lt;p&gt;My idea here is simple: pick a public domain book, chop it up into chapters, convert the chapters to audio, and then generate an xml RSS feed.&lt;/p&gt;
          784 &lt;p&gt;I picked Mary Shelley&apos;s &lt;a href=&quot;https://www.gutenberg.org/files/84/84-h/84-h.htm&quot;&gt;Frankenstein&lt;/a&gt;, because, why not? I already read it a few years ago during my October &quot;Spooky Reads&quot; habit, but I figured it&apos;s the perfect candidate for re-animation.&lt;/p&gt;
          785 &lt;p&gt;If you&apos;ve clicked the link to the text on Project Gutenberg, you&apos;ll see it&apos;s a plaintext nightmare. I&apos;m not ashamed to admit here that I manually just chopped it up into separate text files, rather than writing a script to somehow do this for me. Whatever, ok?&lt;/p&gt;
          786 &lt;p&gt;First let&apos;s make some files.&lt;/p&gt;
          787 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; pieces
          788 &lt;span class=&quot;token function&quot;&gt;touch&lt;/span&gt; intro.txt
          789 &lt;span class=&quot;token function&quot;&gt;touch&lt;/span&gt; letter-&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;.txt
          790 &lt;span class=&quot;token function&quot;&gt;touch&lt;/span&gt; chapter-&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;.txt
          791 &lt;span class=&quot;token function&quot;&gt;touch&lt;/span&gt; license.txt&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          792 &lt;p&gt;And then we copy-pasta.&lt;/p&gt;
          793 &lt;p&gt;Now that I&apos;ve got my chapters (aka future podcast episodes) all set, we&apos;re ready to convert them to audio. What&apos;s the easiest way I can do that?&lt;/p&gt;
          794 &lt;p&gt;My &quot;in-the-zone&quot; brain suggests using the terminal&apos;s &lt;code class=&quot;language-text&quot;&gt;say&lt;/code&gt; command. I&apos;ve used this command a few years ago in one of my earliest creative computing projects: a &lt;a href=&quot;/terminal-man-live-in-nyc&quot;&gt;live musical performance from a telepresence robot&lt;/a&gt;).&lt;/p&gt;
          795 &lt;p&gt;Surely, I can write a neat little script to loop through my text files and &lt;code class=&quot;language-text&quot;&gt;say&lt;/code&gt; them into an &lt;code class=&quot;language-text&quot;&gt;mp3&lt;/code&gt;. Some Googling for &lt;a href=&quot;https://stackoverflow.com/questions/16501663/macs-say-command-to-mp3&quot;&gt;advice&lt;/a&gt;, and I&apos;ve soon got this Bash script going:&lt;/p&gt;
          796 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token for-or-select variable&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; *.txt&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
          797 &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
          798     &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;processing &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
          799     &lt;span class=&quot;token assign-left variable&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;cut&lt;/span&gt; -f &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; -d &lt;span class=&quot;token string&quot;&gt;&apos;.&apos;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
          800     say -v Vicki -f &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; -o aiff/&lt;span class=&quot;token variable&quot;&gt;$name&lt;/span&gt;.aiff
          801     lame -m m aiff/&lt;span class=&quot;token variable&quot;&gt;$name&lt;/span&gt;.aiff mp3/&lt;span class=&quot;token variable&quot;&gt;$name&lt;/span&gt;.mp3
          802     &lt;span class=&quot;token function&quot;&gt;rm&lt;/span&gt; aiff/&lt;span class=&quot;token variable&quot;&gt;$name&lt;/span&gt;.aiff
          803 &lt;span class=&quot;token keyword&quot;&gt;done&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          804 &lt;p&gt;And it works! Checkpoint reached! The &lt;code class=&quot;language-text&quot;&gt;mp3&lt;/code&gt; files are now sitting happily in their respective &lt;code class=&quot;language-text&quot;&gt;/mp3&lt;/code&gt; folder. I experience a fleeting moment of joy, and then immediately plunge into the next challenge: generating an XML feed.&lt;/p&gt;
          805 &lt;p&gt;My hack-y brain suggests another copy-pasta. Let&apos;s take the feed generated by the Podsync library in the section above, replace pieces of it with Bash variables, and then loop through my text files to jam in the values I want.&lt;/p&gt;
          806 &lt;p&gt;More googling ensures, including learning a bit more about &lt;a href=&quot;https://en.wikipedia.org/wiki/Here_document#:~:text=In%20computing%2C%20a%20here%20document,it%20were%20a%20separate%20file.&quot;&gt;heredocs&lt;/a&gt;, and I&apos;ve eventually got this script:&lt;/p&gt;
          807 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/bash&lt;/span&gt;
          808 
          809 &lt;span class=&quot;token comment&quot;&gt;# edit these to your liking&lt;/span&gt;
          810 &lt;span class=&quot;token assign-left variable&quot;&gt;PODCAST_TITLE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Castellan - Frankenstein&quot;&lt;/span&gt;
          811 &lt;span class=&quot;token assign-left variable&quot;&gt;PODCAST_AUTHOR&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Castellan&quot;&lt;/span&gt;
          812 &lt;span class=&quot;token assign-left variable&quot;&gt;CATEGORY&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Technology&quot;&lt;/span&gt;
          813 &lt;span class=&quot;token assign-left variable&quot;&gt;GENERATOR&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Castellan&quot;&lt;/span&gt;
          814 &lt;span class=&quot;token assign-left variable&quot;&gt;LINK&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;https://whatrocks.github.io/castellan/&quot;&lt;/span&gt;
          815 &lt;span class=&quot;token assign-left variable&quot;&gt;IMG&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;https://whatrocks.github.io/castellan/showart.jpg&quot;&lt;/span&gt;
          816 
          817 &lt;span class=&quot;token comment&quot;&gt;# automatic&lt;/span&gt;
          818 &lt;span class=&quot;token assign-left variable&quot;&gt;CURRENT_DATE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;date&lt;/span&gt; -R&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
          819 
          820 &lt;span class=&quot;token comment&quot;&gt;# order&lt;/span&gt;
          821 &lt;span class=&quot;token assign-left variable&quot;&gt;EPS&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
          822   intro
          823   letter-1
          824   letter-2
          825   letter-3
          826   letter-4
          827   chapter-1
          828   chapter-2
          829   chapter-4
          830   chapter-3
          831   chapter-5
          832   chapter-6
          833   chapter-7
          834   chapter-8
          835   chapter-9
          836   chapter-10
          837   chapter-11
          838   chapter-12
          839   chapter-13
          840   chapter-14
          841   chapter-15
          842   chapter-16
          843   chapter-17
          844   chapter-18
          845   chapter-19
          846   chapter-20
          847   chapter-21
          848   chapter-22
          849   chapter-23
          850   chapter-24
          851   license
          852 &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
          853 
          854 &lt;span class=&quot;token builtin class-name&quot;&gt;read&lt;/span&gt; -d &lt;span class=&quot;token string&quot;&gt;&apos;&apos;&lt;/span&gt; feed &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;EOF
          855 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
          856 &amp;lt;rss version=&quot;2.0&quot; xmlns:itunes=&quot;http://www.itunes.com/dtds/podcast-1.0.dtd&quot;&gt;
          857   &amp;lt;channel&gt;
          858     &amp;lt;title&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_TITLE&lt;/span&gt;&amp;lt;/title&gt;
          859     &amp;lt;link&gt;&lt;span class=&quot;token variable&quot;&gt;$LINK&lt;/span&gt;&amp;lt;/link&gt;
          860     &amp;lt;description&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_TITLE&lt;/span&gt; (&lt;span class=&quot;token variable&quot;&gt;$CURRENT_DATE&lt;/span&gt;)&amp;lt;/description&gt;
          861     &amp;lt;category&gt;&lt;span class=&quot;token variable&quot;&gt;$CATEGORY&lt;/span&gt;&amp;lt;/category&gt;
          862     &amp;lt;generator&gt;&lt;span class=&quot;token variable&quot;&gt;$GENERATOR&lt;/span&gt;&amp;lt;/generator&gt;
          863     &amp;lt;language&gt;en-us&amp;lt;/language&gt;
          864     &amp;lt;lastBuildDate&gt;&lt;span class=&quot;token variable&quot;&gt;$CURRENT_DATE&lt;/span&gt;&amp;lt;/lastBuildDate&gt;
          865     &amp;lt;pubDate&gt;&lt;span class=&quot;token variable&quot;&gt;$CURRENT_DATE&lt;/span&gt;&amp;lt;/pubDate&gt;
          866     &amp;lt;itunes:author&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_AUTHOR&lt;/span&gt;&amp;lt;/itunes:author&gt;
          867     &amp;lt;itunes:subtitle&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_TITLE&lt;/span&gt;&amp;lt;/itunes:subtitle&gt;
          868     &amp;lt;itunes:summary&gt;&amp;lt;![CDATA[&lt;span class=&quot;token variable&quot;&gt;$PODCAST_TITLE&lt;/span&gt; (&lt;span class=&quot;token variable&quot;&gt;$CURRENT_DATE&lt;/span&gt;)]]&gt;&amp;lt;/itunes:summary&gt;
          869     &amp;lt;itunes:image href=&quot;&lt;span class=&quot;token variable&quot;&gt;$IMG&lt;/span&gt;&quot;/&gt;
          870     &amp;lt;itunes:explicit&gt;no&amp;lt;/itunes:explicit&gt;
          871     &amp;lt;itunes:category text=&quot;&lt;span class=&quot;token variable&quot;&gt;$CATEGORY&lt;/span&gt;&quot;&gt;&amp;lt;/itunes:category&gt;
          872 EOF&lt;/span&gt;
          873 
          874 &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$feed&lt;/span&gt;
          875 
          876 &lt;span class=&quot;token assign-left variable&quot;&gt;COUNT&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
          877 &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token for-or-select variable&quot;&gt;episode&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;${EPS&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;@&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt;
          878   &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;processing &lt;span class=&quot;token variable&quot;&gt;$episode&lt;/span&gt;...&quot;&lt;/span&gt;
          879   &lt;span class=&quot;token assign-left variable&quot;&gt;MP3_FILE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;book/pieces/mp3/&lt;span class=&quot;token variable&quot;&gt;$episode&lt;/span&gt;.mp3&quot;&lt;/span&gt;
          880   &lt;span class=&quot;token assign-left variable&quot;&gt;MP3_SIZE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;wc&lt;/span&gt; -c &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$MP3_FILE&lt;/span&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&quot;&lt;/span&gt;
          881   &lt;span class=&quot;token assign-left variable&quot;&gt;UUID&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;uuidgen&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
          882   &lt;span class=&quot;token assign-left variable&quot;&gt;NEXT_DATE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;date&lt;/span&gt; -R&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
          883   &lt;span class=&quot;token assign-left variable&quot;&gt;DURATION&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;ffprobe -show_entries &lt;span class=&quot;token assign-left variable&quot;&gt;stream&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;duration -of &lt;span class=&quot;token assign-left variable&quot;&gt;compact&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;p&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;:nk&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; -v fatal $MP3_FILE&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&quot;&lt;/span&gt;
          884   &lt;span class=&quot;token builtin class-name&quot;&gt;read&lt;/span&gt; -d &lt;span class=&quot;token string&quot;&gt;&apos;&apos;&lt;/span&gt; next &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;EOF
          885   &amp;lt;item&gt;
          886       &amp;lt;guid&gt;&lt;span class=&quot;token variable&quot;&gt;$UUID&lt;/span&gt;&amp;lt;/guid&gt;
          887       &amp;lt;title&gt;&lt;span class=&quot;token variable&quot;&gt;$episode&lt;/span&gt;&amp;lt;/title&gt;
          888       &amp;lt;link&gt;&lt;span class=&quot;token variable&quot;&gt;$LINK&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$MP3_FILE&lt;/span&gt;&amp;lt;/link&gt;
          889       &amp;lt;description&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_TITLE&lt;/span&gt;: &lt;span class=&quot;token variable&quot;&gt;$episode&lt;/span&gt;&amp;lt;/description&gt;
          890       &amp;lt;pubDate&gt;&lt;span class=&quot;token variable&quot;&gt;$NEXT_DATE&lt;/span&gt;&amp;lt;/pubDate&gt;
          891       &amp;lt;enclosure url=&quot;&lt;span class=&quot;token variable&quot;&gt;$LINK&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$MP3_FILE&lt;/span&gt;&quot; length=&quot;&lt;span class=&quot;token variable&quot;&gt;$MP3_SIZE&lt;/span&gt;&quot; type=&quot;audio/mpeg&quot;&gt;&amp;lt;/enclosure&gt;
          892       &amp;lt;itunes:author&gt;&lt;span class=&quot;token variable&quot;&gt;$PODCAST_AUTHOR&lt;/span&gt;&amp;lt;/itunes:author&gt;
          893       &amp;lt;itunes:subtitle&gt;&lt;span class=&quot;token variable&quot;&gt;$episode&lt;/span&gt;&amp;lt;/itunes:subtitle&gt;
          894       &amp;lt;itunes:summary&gt;Audio generated from the text of this chapter&amp;lt;/itunes:summary&gt;
          895       &amp;lt;itunes:image href=&quot;&lt;span class=&quot;token variable&quot;&gt;$IMG&lt;/span&gt;&quot;&gt;&amp;lt;/itunes:image&gt;
          896       &amp;lt;itunes:duration&gt;&lt;span class=&quot;token variable&quot;&gt;$DURATION&lt;/span&gt;&amp;lt;/itunes:duration&gt;
          897       &amp;lt;itunes:explicit&gt;no&amp;lt;/itunes:explicit&gt;
          898       &amp;lt;itunes:order&gt;&lt;span class=&quot;token variable&quot;&gt;$COUNT&lt;/span&gt;&amp;lt;/itunes:order&gt;
          899     &amp;lt;/item&gt;
          900 EOF&lt;/span&gt;
          901   &lt;span class=&quot;token assign-left variable&quot;&gt;feed&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;${feed}&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;${next}&lt;/span&gt;&quot;&lt;/span&gt;
          902   &lt;span class=&quot;token assign-left variable&quot;&gt;COUNT&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$((&lt;/span&gt;COUNT&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
          903   &lt;span class=&quot;token function&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;
          904 &lt;span class=&quot;token keyword&quot;&gt;done&lt;/span&gt;
          905 
          906 
          907 &lt;span class=&quot;token assign-left variable&quot;&gt;END&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;/channel&gt;&amp;lt;/rss&gt;&quot;&lt;/span&gt;
          908 
          909 &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$feed&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$END&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;tee&lt;/span&gt; podcast.xml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          910 &lt;p&gt;Lots of minor bugs and typos later, and I&apos;ve got my RSS feed! Is this script hideous? Sure, but it works! I&apos;m having fun and that&apos;s all that matters right now. Speaking of fun, I also had to create cover-art, obviously:&lt;/p&gt;
          911 &lt;p&gt;&lt;span
          912       class=&quot;gatsby-resp-image-wrapper&quot;
          913       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
          914     &gt;
          915       &lt;span
          916     class=&quot;gatsby-resp-image-background-image&quot;
          917     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAEDBAL/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABcTZGEGwFIP/EABwQAQABBAMAAAAAAAAAAAAAAAEAAhIhMQMRQf/aAAgBAQABBQLcRI74rbagZ6PdJmJn/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGxAAAgEFAAAAAAAAAAAAAAAAAAEQICIxseH/2gAIAQEABj8Ct2dHRhT/AP/EAB0QAAMAAgIDAAAAAAAAAAAAAAABETFBIVFhcaH/2gAIAQEAAT8he+D6E3NyPqEi5Xto0LvofDLySG6ToeHZHqCKP//aAAwDAQACAAMAAAAQdCd+/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFREBAQAAAAAAAAAAAAAAAAAAICH/2gAIAQIBAT8Qo//EABoQAQADAQEBAAAAAAAAAAAAAAEAESFBMWH/2gAIAQEAAT8Q3bmhqjz5EUoVrOZ2Jweu3AXNGgu78+S3bhhYp+EK8JXhyZYFLNMenXQKITDs/9k=&apos;); background-size: cover; display: block;&quot;
          918   &gt;&lt;/span&gt;
          919   &lt;img
          920         class=&quot;gatsby-resp-image-image&quot;
          921         alt=&quot;Cover Art&quot;
          922         title=&quot;Cover Art&quot;
          923         src=&quot;/static/9c110a59d1146ed9fc3ad78daa442e0e/6aca1/coverart.jpg&quot;
          924         srcset=&quot;/static/9c110a59d1146ed9fc3ad78daa442e0e/d2f63/coverart.jpg 163w,
          925 /static/9c110a59d1146ed9fc3ad78daa442e0e/c989d/coverart.jpg 325w,
          926 /static/9c110a59d1146ed9fc3ad78daa442e0e/6aca1/coverart.jpg 650w,
          927 /static/9c110a59d1146ed9fc3ad78daa442e0e/7c09c/coverart.jpg 975w,
          928 /static/9c110a59d1146ed9fc3ad78daa442e0e/01ab0/coverart.jpg 1300w,
          929 /static/9c110a59d1146ed9fc3ad78daa442e0e/d165a/coverart.jpg 1400w&quot;
          930         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
          931         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          932         loading=&quot;lazy&quot;
          933       /&gt;
          934     &lt;/span&gt;&lt;/p&gt;
          935 &lt;p&gt;Finally, using the same GitHub Pages approach, I upload my stuff and import my Franken-pod into Overcast, like so:&lt;/p&gt;
          936 &lt;p&gt;&lt;span
          937       class=&quot;gatsby-resp-image-wrapper&quot;
          938       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 602px; &quot;
          939     &gt;
          940       &lt;span
          941     class=&quot;gatsby-resp-image-background-image&quot;
          942     style=&quot;padding-bottom: 216.5644171779141%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAArABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAgUD/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAdWiPONgUKrTViFhsqhHEaAP/8QAHxABAAEDBAMAAAAAAAAAAAAAAgEAAxEEEBIhExQz/9oACAEBAAEFAleBn2RQcMvKuuK0vxVpc/E6sCRbrO3KM8o2UdDtV//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BX//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BX//EAB4QAAIBBAMBAAAAAAAAAAAAAAABEQIQITEgMoHh/9oACAEBAAY/AocnwmnRVjBhHpU0tnUhrhF27//EAB4QAAICAgIDAAAAAAAAAAAAAAABESExcUFhEFHR/9oACAEBAAE/IWKxoXK2L9bEBsjjI1RJG2PXYfcLdEyfxYqxnLORSTp14a7LOwViFEU+xqHEaMH/2gAMAwEAAgADAAAAEKzDwHAP/8QAFxEAAwEAAAAAAAAAAAAAAAAAARARIP/aAAgBAwEBPxBQ4//EABcRAAMBAAAAAAAAAAAAAAAAABARICH/2gAIAQIBAT8QYyP/xAAdEAEAAwEBAAMBAAAAAAAAAAABABEhMUFRcYHR/9oACAEBAAE/EFZA10n5LNdeaIfaxQojkTtUZKPDz2XakNXR9+5Vmv8AWKsipeOBZtkpay/lX6LyaoCqx6zM1qdgJAtWnYVWRAjV03JemexUuFPL42KQqjlIAKCif//Z&apos;); background-size: cover; display: block;&quot;
          943   &gt;&lt;/span&gt;
          944   &lt;img
          945         class=&quot;gatsby-resp-image-image&quot;
          946         alt=&quot;Listen&quot;
          947         title=&quot;Listen&quot;
          948         src=&quot;/static/e6c3541f973f230827541a91d1128689/e49d1/listen.jpg&quot;
          949         srcset=&quot;/static/e6c3541f973f230827541a91d1128689/d2f63/listen.jpg 163w,
          950 /static/e6c3541f973f230827541a91d1128689/c989d/listen.jpg 325w,
          951 /static/e6c3541f973f230827541a91d1128689/e49d1/listen.jpg 602w&quot;
          952         sizes=&quot;(max-width: 602px) 100vw, 602px&quot;
          953         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
          954         loading=&quot;lazy&quot;
          955       /&gt;
          956     &lt;/span&gt;&lt;/p&gt;
          957 &lt;p&gt;I decide to call the project &lt;code class=&quot;language-text&quot;&gt;Castellan&lt;/code&gt; because it has the word &quot;cast&quot; in it and it means keeper of a castle or something, and that feels pretty Frankenstein-y to me.&lt;/p&gt;
          958 &lt;p&gt;Finally, I give it a listen...&lt;/p&gt;
          959 &lt;p&gt;And it&apos;s a horrible monster. Here, I dare you to listen:&lt;/p&gt;
          960 &lt;audio controls=&quot;controls&quot;&gt;
          961   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://whatrocks.github.io/castellan/book/pieces/mp3/chapter-1.mp3&quot;&gt;&lt;/source&gt;
          962 &lt;/audio&gt;
          963 &lt;p&gt;We&apos;ve gotta do something about this, cause this thing doesn&apos;t sound human at all.&lt;/p&gt;
          964 &lt;h3&gt;Machine learning to the rescue?&lt;/h3&gt;
          965 &lt;p&gt;For a brief moment, I escape my zen-like programming mindset, and I go to the orange website and encounter a post about a new text-to-speech deep learning project, and it&apos;s damn good. Unfortunately, it&apos;s not open source.&lt;/p&gt;
          966 &lt;p&gt;Surely, there&apos;s a good open source text-to-speech project out there. Some more googling, and there is! I find the &lt;code class=&quot;language-text&quot;&gt;tts&lt;/code&gt; project from Mozilla, which deliciously provides a few Google Colab notebooks (aka Jupyter Notebook / Jupyter Lab) with pretrained models ready to go!&lt;/p&gt;
          967 &lt;p&gt;This is great news. Instead of the &lt;code class=&quot;language-text&quot;&gt;say&lt;/code&gt; command, I&apos;m going to pump my chapters into this trained model and it&apos;s going to be awesome.&lt;/p&gt;
          968 &lt;p&gt;Except the models clip out after three sentences or so. I do some spelunking, and the model is meant to go sentence by sentence, rather than huge swaths of text at once. &lt;/p&gt;
          969 &lt;p&gt;But that&apos;s no problem for me. &lt;/p&gt;
          970 &lt;p&gt;I&apos;ll just split on the &lt;code class=&quot;language-text&quot;&gt;.&lt;/code&gt; period character, generate the audio once sentence at a time, and then concat them all together at the end.&lt;/p&gt;
          971 &lt;p&gt;Here&apos;s a &lt;a href=&quot;https://colab.research.google.com/drive/1XpoF6LEU1u9D1H8J4nsvtqNS3Ls58PFs#scrollTo=FuWxZ9Ey5Puj&quot;&gt;link to my Colab notebook&lt;/a&gt; that you can try yourself. The only things I changed in this notebook are the bottom four or so cells. &lt;/p&gt;
          972 &lt;p&gt;Here&apos;s how I make my machine learning powered audiobook podcast:&lt;/p&gt;
          973 &lt;ul&gt;
          974 &lt;li&gt;
          975 &lt;p&gt;Mount my Google Drive, where I&apos;ve dropped the text files (and I&apos;ll store the generated mp3s):&lt;/p&gt;
          976 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; google&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;colab &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; drive
          977 drive&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mount&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;/content/gdrive&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; force_remount&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token boolean&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          978 &lt;/li&gt;
          979 &lt;li&gt;
          980 &lt;p&gt;Install the &lt;code class=&quot;language-text&quot;&gt;pydub&lt;/code&gt; library to handle audio files&lt;/p&gt;
          981 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;!pip install pydub&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          982 &lt;/li&gt;
          983 &lt;li&gt;
          984 &lt;p&gt;Read my text files of the chapters from Google Drive into an array of tuples for processing&lt;/p&gt;
          985 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; os
          986 path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;/content/gdrive/My Drive/Castellan/&apos;&lt;/span&gt;
          987 chapter_path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;pieces&apos;&lt;/span&gt;&lt;/span&gt;
          988 chapters &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
          989 &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; os&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;listdir&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;chapter_path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          990 &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;.txt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          991 &lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;pieces/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token builtin&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;r&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; chapter&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          992   chapter_text &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; chapter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;read&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
          993   name &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;file&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
          994   chapters&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;append&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;chapter_text&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
          995 &lt;/li&gt;
          996 &lt;li&gt;Loop through the array, split each chapter into sentences, skip weird textual issues like newlines and other nonsense, run each sentence through the &lt;code class=&quot;language-text&quot;&gt;tts&lt;/code&gt; model, concat/reduce that sentence with a accumulating wav file of the entire chapter, and then save the accumulated wav file to an mp3 in Google Drive. Phew! That&apos;s a mouthful:&lt;/li&gt;
          997 &lt;/ul&gt;
          998 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;python&quot;&gt;&lt;pre class=&quot;language-python&quot;&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; scipy&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;io&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;wavfile
          999 &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; uuid
         1000 &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; pydub &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; AudioSegment&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;s
         1001 
         1002 silence &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; AudioSegment&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;silent&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;duration&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1003 &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; chapter &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; chapters&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
         1004   
         1005   &lt;span class=&quot;token keyword&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;processing chapter &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;chapter&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;...&apos;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1006   chapter_audio &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; silence
         1007   &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; sentence &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; chapter&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;split&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;.&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
         1008     
         1009     &lt;span class=&quot;token comment&quot;&gt;# skip these&lt;/span&gt;
         1010     &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; sentence &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;”\n&apos;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;or&lt;/span&gt; sentence &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;\n&apos;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;or&lt;/span&gt; sentence &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;\n\n&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
         1011       &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;
         1012 
         1013     sentence &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; sentence&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;strip&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1014 
         1015     &lt;span class=&quot;token comment&quot;&gt;# more skips&lt;/span&gt;
         1016     &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sentence&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;or&lt;/span&gt; sentence &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
         1017       &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;
         1018 
         1019     &lt;span class=&quot;token comment&quot;&gt;# generate wav&lt;/span&gt;
         1020     align&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; spec&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; stop_tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; wav &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; tts&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;model&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; sentence&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; TTS_CONFIG&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ap&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1021 
         1022     &lt;span class=&quot;token comment&quot;&gt;# save wav file&lt;/span&gt;
         1023     wav_unique &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;uuid&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;uuid4&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1024     wav_name &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;wav_unique&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;.wav&apos;&lt;/span&gt;&lt;/span&gt;
         1025     wav_path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;wav/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;wav_name&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&lt;/span&gt;&lt;/span&gt;
         1026     scipy&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;io&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;wavfile&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;write&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;wav_path&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; TTS_CONFIG&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;audio&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;sample_rate&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; wav&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1027 
         1028     &lt;span class=&quot;token comment&quot;&gt;# read wav file&lt;/span&gt;
         1029     sound &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; AudioSegment&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;from_file&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;wav_path&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;wav&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; 
         1030 
         1031     &lt;span class=&quot;token comment&quot;&gt;# combine it&lt;/span&gt;
         1032     chapter_audio &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; sound
         1033     chapter_audio &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; silence
         1034 
         1035   &lt;span class=&quot;token comment&quot;&gt;# save mp3 file&lt;/span&gt;
         1036   file_handle &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; chapter_audio&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;export&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&quot;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;mp3/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;chapter&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;.mp3&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;mp3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         1037   &lt;span class=&quot;token keyword&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-interpolation&quot;&gt;&lt;span class=&quot;token string&quot;&gt;f&apos;done with &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;chapter&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;!&apos;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1038 &lt;p&gt;As you might have guessed, the above cell is the end result of much experimentation. Jupyter Notebooks make this iterative development insanely easy, and I only was able to pull things together like this after I&apos;d figured out each individual piece. Jupyter Notebooks are like REPLs + documentation in one.&lt;/p&gt;
         1039 &lt;p&gt;Once I had this all set up, I hit &lt;code class=&quot;language-text&quot;&gt;run all cells&lt;/code&gt; and went to sleep. When I woke up, I discovered that about half of my chapters had successfully processed! The only reason it didn&apos;t chug through all of them was the Google can randomly preempt your machine at any time, or they have a 12 hour timeout for CPUs. This felt a bit like it must have felt when you feed all your punchcards into the IBM mainframe, and there was some bug halfway through your stack.&lt;/p&gt;
         1040 &lt;p&gt;No worries, I just removed the already processed chapters from my text files, and re-ran it. I can deal with this annoyance, because this is a toy project. And it&apos;s free. And my laptop fan is silent, almost like it&apos;s a brand new M1 Macbook, because I&apos;m running this on Google machines.&lt;/p&gt;
         1041 &lt;p&gt;Want to hear the result?&lt;/p&gt;
         1042 &lt;audio controls=&quot;controls&quot;&gt;
         1043   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://whatrocks.github.io/castellan/book/pieces/bettermp3/chapter-1.mp3&quot;&gt;&lt;/source&gt;
         1044 &lt;/audio&gt;
         1045 &lt;p&gt;Dang!! That&apos;s so much better. Sure, it&apos;s still a little weird. But it&apos;s actually listen-able now. Thank you, machine learning!&lt;/p&gt;
         1046 &lt;p&gt;I moved these files from Google Drive onto my local, and then I re-ran my XML generator script, changing the title to &quot;Frankenstein Jr&quot; and referencing the new better mp3s, and then pushed to Github Pages. &lt;/p&gt;
         1047 &lt;p&gt;Here&apos;s a &lt;a href=&quot;https://whatrocks.github.io/castellan/podcastjr.xml&quot;&gt;link to the podcast feed&lt;/a&gt; that you can add to your own player.&lt;/p&gt;
         1048 &lt;p&gt;Sure, there&apos;s still problems. I&apos;ve encountered these occasional weird sections where the &lt;code class=&quot;language-text&quot;&gt;tts&lt;/code&gt; voice just completely glitches out, perhaps due to the weird encoding of Project Gutenberg files (could be a &lt;code class=&quot;language-text&quot;&gt;\t&lt;/code&gt; character or something). I know that much of machine learning is about &quot;cleaning up your data,&quot; so I could probably spend more time doing that, but Frankenstein-ly, I&apos;ve already flowed onto my next idea.&lt;/p&gt;
         1049 &lt;h3&gt;Parse a screenplay and create voices for each character&lt;/h3&gt;
         1050 &lt;p&gt;Wouldn&apos;t it be amazing if you could recognize the characters and give them each a unique voice? That&apos;s gonna be hard with novels, but you know what&apos;s much easier: screenplays! They&apos;ve got the characters broken out into discrete, named sections, like this:&lt;/p&gt;
         1051 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;        PRINCESS
         1052     I love you.
         1053 
         1054         SMUGGLER
         1055     I know.
         1056 
         1057 The smuggler is lowered into the machine. HISSES and SQUEALS. Everyone, including THE BIG BOSS, turns away.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1058 &lt;p&gt;I just made this scene up ^, okay?&lt;/p&gt;
         1059 &lt;p&gt;I could parse a screenplay, then pass each character&apos;s lines into a model with a specific voice.&lt;/p&gt;
         1060 &lt;p&gt;Oh! I know there&apos;s sentiment analysis models. What if I first feed the sentences into a sentiment analysis model, and then feed that sentiment into the text-to-speech model.&lt;/p&gt;
         1061 &lt;p&gt;Now, we&apos;re talking...&lt;/p&gt;
         1062 &lt;p&gt;You can see where this is going. My brain is reeling with possibilities and new directions and new ideas.&lt;/p&gt;
         1063 &lt;p&gt;This is creative computing. This is why I love programming and its ability to get you into the flow state.&lt;/p&gt;
         1064 &lt;p&gt;I haven&apos;t tackled the screenplay parsing bit yet, but maybe I will. I&apos;m just grateful that I was able to have fun with this project. This is how I want to live my life, being creative, having fun. This is how Csikszentmihalyi describes a life with flow:&lt;/p&gt;
         1065 &lt;blockquote&gt;
         1066 &lt;p&gt;Such individuals lead vigorous lives, are open to a variety of experiences, keep on learning until the day they die, and have strong ties and commitments to other people and to the environment in which they live. They enjoy whatever they do, even if tedious or difficult; they are hardly ever bored, and they can take in stride anything that comes their way.&lt;/p&gt;
         1067 &lt;/blockquote&gt;
         1068 &lt;p&gt;I couldn&apos;t have put it better myself, obviously. John Cassidy of Klutz Press, &lt;a href=&quot;/create-wonderful-things-be-good-have-fun&quot;&gt;my favorite publisher&lt;/a&gt;, does a great job rephrasing this sentiment, though:&lt;/p&gt;
         1069 &lt;blockquote&gt;
         1070 &lt;p&gt;Create wonderful things, be good, and have fun.&lt;/p&gt;
         1071 &lt;/blockquote&gt;
         1072 &lt;h3&gt;P.S. Don&apos;t you know about LibriVox, dude?&lt;/h3&gt;
         1073 &lt;p&gt;Yeah, so there&apos;s already a project called &lt;a href=&quot;https://librivox.org/&quot;&gt;LibriVox&lt;/a&gt; that creates audiobooks from public domain texts using real human being voice volunteers. They even provide RSS feeds that you can use in your podcast player. Did I know about this before I went down this rabbit-hole. No! Would it have changed anything no! Maybe? It could have prevented me from exploring ML for this project, and that would have been a bummer. &lt;/p&gt;
         1074 &lt;p&gt;My takeaway is that your ideas are probably not unique, but that doesn&apos;t mean you should explore them and find your own path forward. That&apos;s the path to creativity and fun.&lt;/p&gt;
         1075 &lt;p&gt;Okay, enjoy the feeds!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[School Supplies]]></title><description><![CDATA[Somedays I remember that I have a loop pedal.  Those are the best sorts of days. Somedays that leads to a new song. A loop pedal is a stack…]]></description><link>https://www.charlieharrington.com/school-supplies</link><guid isPermaLink="false">https://www.charlieharrington.com/school-supplies</guid><pubDate>Mon, 16 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Somedays I remember that I have a &lt;a href=&quot;https://amzn.to/2H8SH8O&quot;&gt;loop pedal&lt;/a&gt;.&lt;/p&gt;
         1076 &lt;p&gt;&lt;span
         1077       class=&quot;gatsby-resp-image-wrapper&quot;
         1078       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1079     &gt;
         1080       &lt;a
         1081     class=&quot;gatsby-resp-image-link&quot;
         1082     href=&quot;/static/105cc972e126fcbe5ca46d520c2dcad7/8efc2/loop.png&quot;
         1083     style=&quot;display: block&quot;
         1084     target=&quot;_blank&quot;
         1085     rel=&quot;noopener&quot;
         1086   &gt;
         1087     &lt;span
         1088     class=&quot;gatsby-resp-image-background-image&quot;
         1089     style=&quot;padding-bottom: 123.31288343558282%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAABYlAAAWJQFJUiTwAAAGfUlEQVQ4yyWU20+b2RXF/We0UlulapKGXCAhQAw2EBtjjO/Y2P58xcY2NsYGfME22EAwYDB3EiAJGZjMTBLaTjRpm2k6oz6k6kjTt7bqTaMkM2mUahQ1fUgf+/TrSfqw9X06Olp7rbPX2rL5iSRXMnGW8sNsz4xyUCtwb3uGo60yP9mc5GhDlPjeqaW5vpxnfjrHhN/ISj7Mvb05Pru/w42rs8xMp3n4y4+QFRIhyqMRFrNDbJVT3FzMcXulwIeromoTHFTTHCxl2V8YZb1a5Gptmo1ihLmkl6VsiIf3Nnny50f89U+/YntrHlk+5qecDFIZD4uuca6WE+wsFri6UGS3WuBwc4791Rl25lIszabZXi6J/6Q4K7JTzbFxZYzHn3/Iv179ka+f/h5ZJh6klIkxNxFnYUKwXJphb22e3UqaW9UM1xezbFWyzBVGyKZCrC5OcW0+w95qmaP31/jFz/a4sTXLF4/vc/++kJyI+EjFfIwPeylNTVCdKzGXjXIlGyGfDJCJe8gPS5SyMaJhD2PJiGha5MbmFY5ub/Lb3xzx5e8ecHCjRjGfRhYLSSTCEtlM6v8V9zIe85IMOclFJCZjEvmwjdSQl0Q8TNDnIi/uFfJjTBXTTJdyLC6UyWeTOKx6ARh0kUmPMpoIMxK0MxZ2iQYuFkWT9dgA2ZGQYBzn1tIsG5M5yuEAOb+HaY/EgMNMNOQmNujH7/PSo+1GFgkHCQUk/E4DfoeR4aCDeNRDUd/FfHqEjx/+lIyQUsnnWV5dYHKrQK1W5WYkyoBJT7GYYWO9xsr6GqnxcWQeuwGvvYeQZMHnsmLUddF0/iwjTfWMiue4tl1DcrnI5iYolkrkJzNUlze5OTSMQ6ems0OBtrsLg74Xk9mCLOC2EPD2YzH20qm4RLfyIiadkoK2HVW7nOZzDZgNffjTA4yUxKSzaZLLY+wHQ1QmRqjMFqjOz7K2usL8Yg2ZRqOhubkZ5aVGelVyDBoF1i45uwKsYNBRDvhIeyWiLhvzk0U2VtdYXqmyH42QS4aYLYxRmS5QmRHumCkim6vO8Ojnt4QFFjjcnebaVp5bbjP/Vut5aXfzlU3i7z1G/qLo5GmfnX/4/HwbifFE8jExNEAyFiQ/lqAspu6wmZAlh0MsiwTkEi6WJ4dYnBzgjkXLC0eQr2Jpnpi9PLEN8Pz4RZ6Ks6+TeV6MF/nWEeK9KZGcrRlW5nLvLJOIDyLrbjqHTt6Apuks6vqT1J/4Ptunz/K6Q8/TJh3P6tQ8ae/j6WkVzxRGnjv8vAzGeekM8MlygU/vLpHwW7lSGuNvf/gcmdOkxmvpwmdW4zF0YOhV8Km8jTd6N8/1gplK4rncyjNrlG/sYV5EUrwKJ/imz0uoXUlP83m0CgXzJWGtqTFk/QYVDqMKp/EyLgFo1rbxuK2D184w/9T7eGUK8brVypvvNPOfM+28cQ/yX1+ElxoT00EJS1cnVQF2XWTbadIge8vObe7CIxhK5suEtAqWOjoI2ftJSS4KgQCVSIS1cJR9t5+jcIzPEkm+NDkZEVZzmo1imczgsXQTjYaR+QWgx6TCJxg6TJ2kBGBBAF426DFZTBitlnfVJ8xtF/HyDQ7iFCnZ9oUJKTsJuB0Mea1EBkMc3NxB5hbM3kp16hRY9ErSXa0UO1VohOstRhO9PTqMegM2qw2H3YHX48MXGOQgGMUjl6NRd4npRjm8vsG9g2vIfBYhtVeJ1NNKv0Gw626jqNKgNpkxGQRDoxmz2Yq1z4G9X8Lp8uLxhzgUpT11Akn48fbeCh9dX+Hue9vI+jRybN2tSNpWnAYlZSE5pe5GLdgZeg3odQYRPTM2i51+mxOnw43PO8AHgSE0jRfxuyXu7FZ5/9oid/fXBUOnBftbUFULDjGUpS6lANSiFcx0AlRlMtEh5Ldb+1D3O9A6Jcw+AegPY2lvfvcc++tzHG5V+GBXZNnvE/ssMoDfZsAqpFcULXxxsolfH2/k0bFGHvywiaM6JYcNKnaaNawLw6/29PPI6MCgqH/3hkvTedZmcuwtTyNTnj9Fd4ccyWFDctrpsxjp16ixiIVhPN2A41gdUw1KanVyVr57gv1jZ3jwgwZuXmpHefEkncoOseXDxF0mIqJk3S31qJrO0N5wEuX5OjpbLtDe2kxbawstLY2cq6/jVN2POP7jY9SdPcmFi6dpaTyFTnmB1lPfQ9GmwKS5jM3Yg7/fyv8A7LNW1pDPdMIAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1090   &gt;&lt;/span&gt;
         1091   &lt;img
         1092         class=&quot;gatsby-resp-image-image&quot;
         1093         alt=&quot;loop pedal&quot;
         1094         title=&quot;loop pedal&quot;
         1095         src=&quot;/static/105cc972e126fcbe5ca46d520c2dcad7/a6d36/loop.png&quot;
         1096         srcset=&quot;/static/105cc972e126fcbe5ca46d520c2dcad7/222b7/loop.png 163w,
         1097 /static/105cc972e126fcbe5ca46d520c2dcad7/ff46a/loop.png 325w,
         1098 /static/105cc972e126fcbe5ca46d520c2dcad7/a6d36/loop.png 650w,
         1099 /static/105cc972e126fcbe5ca46d520c2dcad7/8efc2/loop.png 828w&quot;
         1100         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1101         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1102         loading=&quot;lazy&quot;
         1103       /&gt;
         1104   &lt;/a&gt;
         1105     &lt;/span&gt;&lt;/p&gt;
         1106 &lt;p&gt;Those are the best sorts of days.&lt;/p&gt;
         1107 &lt;p&gt;Somedays that leads to a new song.&lt;/p&gt;
         1108 &lt;h3&gt;A loop pedal is a stack&lt;/h3&gt;
         1109 &lt;p&gt;A loop pedal is a magical device that lets you record in stacked layers. It&apos;s almost like editing something in Figma or Sketch, except each layer is the same &quot;shape&quot; as the first or root layer. And by &lt;em&gt;shape&lt;/em&gt; here what I actually mean is &lt;em&gt;length&lt;/em&gt;.&lt;/p&gt;
         1110 &lt;p&gt;Like other guitar pedals, a loop pedal lives somewhere between your guitar (the input) and your amp (the output). It receives the input from your instrument and &quot;does stuff&quot; with it, before sending it onwards. For example, maybe you want to add some &lt;strong&gt;distortion&lt;/strong&gt; or &lt;strong&gt;flange&lt;/strong&gt; -- OR BOTH. Your guitar pedals are like the world&apos;s simplest data flow pipeline. &lt;/p&gt;
         1111 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Guitar -&amp;gt; Distortion Pedal -&amp;gt; Flanger Pedal -&amp;gt; Chorus Pedal -&amp;gt; Amp&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1112 &lt;p&gt;No cycles or braching in this DAG. I mean, maybe there could branching. Or cycles. I bet some guitarists do that, somehow. But that&apos;s beyond my pay grade.&lt;/p&gt;
         1113 &lt;p&gt;Let&apos;s go back to our loop pedal and record something.&lt;/p&gt;
         1114 &lt;p&gt;Imagine that I tap the loop pedal with my foot, play the following, and tap the pedal again.&lt;/p&gt;
         1115 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1116 &lt;p&gt;Each X here might represent one &quot;measure&quot; or &quot;bar&quot; in music theory land, but that&apos;s mostly unfamiliar territory for me, too, so instead we can say that we&apos;ve played the X chord (I wish there was an X chord) 8 times of some fixed duration.&lt;/p&gt;
         1117 &lt;p&gt;This is now our root layer for our stack.&lt;/p&gt;
         1118 &lt;p&gt;By default, the pedal will keep &quot;looping&quot; this layer. You can double-tap it to &quot;stop the loop&quot; (maybe you&apos;d do this when you reach a new section of your song, like the chorus).&lt;/p&gt;
         1119 &lt;p&gt;Otherwise, now it&apos;s time to add some more layers. Tap the pedal again and you add the following layer:&lt;/p&gt;
         1120 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X
         1121   y   y     y y&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1122 &lt;p&gt;Maybe &lt;code class=&quot;language-text&quot;&gt;y&lt;/code&gt; is an awesome solo or something. Then you do it again.&lt;/p&gt;
         1123 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X
         1124   y   y     y y
         1125 z z z z z z z z&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1126 &lt;p&gt;Now, this pattern will keep repeating over and over, expanding to the right.&lt;/p&gt;
         1127 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X X X X X X X X X --&amp;gt;
         1128   y   y     y y   y   y     y y --&amp;gt;
         1129 z z z z z z z z z z z z z z z z --&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1130 &lt;p&gt;What happens if you are recording a layer that extends longer than the root layer? Good question. The recording simple wraps around to the beginning of the root layer and you can keep going. However you will notice that you are already hearing what you recorded for this layer, so that can sound strange. Let&apos;s show an example.&lt;/p&gt;
         1131 &lt;p&gt;I&apos;m going to add a layer that just plays ascending notes up the guitar neck (a really crappy solo) and have this layer wrap around.&lt;/p&gt;
         1132 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X
         1133   y   y     y y
         1134 z z z z z z z z
         1135 1 2 3 4 5 6 7 8&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1136 &lt;p&gt;So far, so good. Why not keep going...&lt;/p&gt;
         1137 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;X X X X X X X X
         1138   y   y     y y
         1139 z z z z z z z z
         1140 1 2 3 4 5 6 7 8
         1141 9 10&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1142 &lt;p&gt;As you can see, my latest layer wrapped around to the beginning, such that when I played the &lt;code class=&quot;language-text&quot;&gt;9&lt;/code&gt;, you would hear the &lt;code class=&quot;language-text&quot;&gt;1&lt;/code&gt; at the same time. This may or may not be what you want to do. I&apos;m guessing.. no. Especially if you&apos;re playing some epic Type II guitar solo.&lt;/p&gt;
         1143 &lt;p&gt;Thus, one of the more common use cases of the loop pedal is to lay down some repeatable groove that you can sing various verses or solo over. Instead of making the &quot;unique&quot; or &quot;changable&quot; a layer in your loop stack, you just keep that off to the side.&lt;/p&gt;
         1144 &lt;p&gt;Reader beware that my loop pedal is relatively simple. There are other, better, more-intense loop pedals where you can have multiple different loop stacks going at the same time. For example, maybe you&apos;ve got a loop going for the verses and another separate loop stack for the choruses in your song.&lt;/p&gt;
         1145 &lt;p&gt;But I appreciate the simplicity of my pedal. The one thing I still haven&apos;t figured out is whether or not you can do the &lt;code class=&quot;language-text&quot;&gt;pop&lt;/code&gt; stack operation on it. The &lt;a href=&quot;https://www.boss.info/us/products/rc-1/&quot;&gt;documentation&lt;/a&gt; suggests that you can erase the top layer of the stack, but I haven&apos;t figured it out yet. For now, I&apos;ve been living in a &lt;code class=&quot;language-text&quot;&gt;push&lt;/code&gt; only world, flubs included, which you&apos;ll hear in the next section.&lt;/p&gt;
         1146 &lt;h3&gt;School Supplies&lt;/h3&gt;
         1147 &lt;p&gt;Hello, world, this is your premiere of SCHOOL SUPPLIES, the third single off my forthcoming EP: &quot;Greetings From Buttzville, NJ&quot;:&lt;/p&gt;
         1148 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/o57rqh88CJY&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         1149 &lt;p&gt;The chords, for those interested (looking at you, The Grones) are:&lt;/p&gt;
         1150 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Verse
         1151 G Bm Em C
         1152 
         1153 Chorus
         1154 D G C
         1155 
         1156 Outro(key change!)
         1157 A C#m F#m D&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1158 &lt;p&gt;That&apos;s right! I pulled off my first key change. Thank you, Taylor Swift &quot;Love Song&quot; for the daily inspiration.&lt;/p&gt;
         1159 &lt;p&gt;I&apos;ll leave the lyrics as an exercise for the reader.&lt;/p&gt;
         1160 &lt;h4&gt;Uncle Mike&apos;s Tips for Running a Zoom-Based Open Mic Night&lt;/h4&gt;
         1161 &lt;p&gt;Big thanks to Uncle Mike for organizing our second Zoom family open mic night. He runs a tight ship, mostly trying to prevent me from launching into a &lt;a href=&quot;/bullet-train-to-merlins-grave&quot;&gt;Bullet Train to Merlin&apos;s Grave medley like at Popestock&lt;/a&gt;.&lt;/p&gt;
         1162 &lt;p&gt;To paraphrase his tips:&lt;/p&gt;
         1163 &lt;ul&gt;
         1164 &lt;li&gt;Each performer gets one song, of &quot;normal song length&quot; (so that means no Tubular Bells)&lt;/li&gt;
         1165 &lt;li&gt;Announce the order in advance&lt;/li&gt;
         1166 &lt;li&gt;Tune up your instrument when you&apos;re on deck or in the hole&lt;/li&gt;
         1167 &lt;li&gt;Don&apos;t worry about messing up, start over if you need to, this is fun. Music is the best!&lt;/li&gt;
         1168 &lt;li&gt;Change your zoom settings to &quot;Original Sound&quot;&lt;/li&gt;
         1169 &lt;/ul&gt;
         1170 &lt;p&gt;This last one is key. Zoom does some &quot;stuff&quot; to make things sound &quot;good&quot; during boring work meetings that are boring. It&apos;s not optimized for fun singalongs that are fun. So, it&apos;s pretty much essential to &lt;a href=&quot;https://support.zoom.us/hc/en-us/articles/115003279466-Enabling-option-to-preserve-original-sound&quot;&gt;follow these steps&lt;/a&gt; when you&apos;re singing and strumming over Zoom, unless you&apos;re trying to incorporate cosmic waves of hollow nothingness into your jam. Maybe you are?&lt;/p&gt;
         1171 &lt;p&gt;Oh, you should check out Uncle Mike&apos;s music podcast, &lt;a href=&quot;https://www.tellyouwhatpodcast.com/&quot;&gt;Tell You What! The Podcast&lt;/a&gt;. He interviews young musicians and bands on the run and it&apos;s fun and great and keeps you on your toes with new upcoming artists.&lt;/p&gt;
         1172 &lt;p&gt;As Uncle Mike says, music is the best!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Unexpected, Useless, and Urgent]]></title><description><![CDATA[Or, What RSS Gets Right Abraham Lincoln once said, "The medium is the message. And San Francisco summers are cold af." Putting that aside, I…]]></description><link>https://www.charlieharrington.com/unexpected-useless-and-urgent</link><guid isPermaLink="false">https://www.charlieharrington.com/unexpected-useless-and-urgent</guid><pubDate>Sun, 25 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h4&gt;Or, What RSS Gets Right&lt;/h4&gt;
         1173 &lt;p&gt;Abraham Lincoln once said, &quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/Marshall_McLuhan&quot;&gt;The medium is the message&lt;/a&gt;. And San Francisco summers are cold af.&quot;&lt;/p&gt;
         1174 &lt;p&gt;Putting that aside, I&apos;ve been thinking a lot (uh-oh) about why I like opening up my RSS reader app so much. And I&apos;m not &lt;em&gt;just&lt;/em&gt; talking about its looks, even though it&apos;s super cute (I&apos;m using the free, open-source, and all-around neato &lt;a href=&quot;https://ranchero.com/netnewswire/&quot;&gt;NetNewsWire&lt;/a&gt; for my RSS needs).&lt;/p&gt;
         1175 &lt;p&gt;No, I&apos;m talkin&apos; about them RSS &lt;em&gt;feels&lt;/em&gt;.&lt;/p&gt;
         1176 &lt;p&gt;Why does using opening my RSS inbox feel so much better than typing in gmail.com or tapping the iMessages icon or, heavens forbid, opening up Twitter?&lt;/p&gt;
         1177 &lt;p&gt;With my sweet-sweet RSS, there&apos;s no anxiety. There&apos;s no guilt. In our time-tracking Screen Time home screen widget era, there&apos;s almost a baccanalian decadance to sifting through an RSS inbox, like watching honey drip from one of those wooden combs in a cereal commercial. Or -- back when we were allowed -- going to the library and reading the newspaper from those weird wooden dowels.&lt;/p&gt;
         1178 &lt;p&gt;It should go without saying that this feeling does not extend to the other inboxen in my life. And I&apos;d like to understand why -- and see if I can do anything about it.&lt;/p&gt;
         1179 &lt;h2&gt;A framework for messages&lt;/h2&gt;
         1180 &lt;p&gt;Butchering some data pipeline terms, let&apos;s define an inbox (e.g. email, social media, text messages, RSS, phone calls) as a sink for messages from various data providers, where these messages wait for human-in-the-loop processing (in this case, you).&lt;/p&gt;
         1181 &lt;p&gt;O! Ye of little time! How are you meant to evaluate the &quot;importance&quot; of a given message? Let&apos;s explore that across two vectors: (1) prior awareness of the message&apos;s sender and (2) usefulessness of the message contents.&lt;/p&gt;
         1182 &lt;p&gt;&lt;span
         1183       class=&quot;gatsby-resp-image-wrapper&quot;
         1184       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1185     &gt;
         1186       &lt;a
         1187     class=&quot;gatsby-resp-image-link&quot;
         1188     href=&quot;/static/40108f71e98124d2ba54690789f9cb9e/a1792/msggrid.png&quot;
         1189     style=&quot;display: block&quot;
         1190     target=&quot;_blank&quot;
         1191     rel=&quot;noopener&quot;
         1192   &gt;
         1193     &lt;span
         1194     class=&quot;gatsby-resp-image-background-image&quot;
         1195     style=&quot;padding-bottom: 84.04907975460122%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAABYlAAAWJQFJUiTwAAADPklEQVQ4y31US2gbVxSdbdelm24M2bSLdpFNWrLqohQChjaLrLJIGgwt2bilLi3UFIppwUkWMUQLQxaBlOK6DvjTUihqilVZdm3XsiVL8kiaGc3oM5Lmp3+s7+m7N5FxjNw7PN578+6ce+eec5+EETYYDHiQdTodJBIJKIrCs2EY0HUd6XQa0WgUruuefEMmjQI7Pfd6PQYgoGQyiVwuh2w2y4CyLMOyLHS73ZMkpPMyJDs+PkY8HufsyuXySz6O43AgVVVRKpVO3kvnZVYoFDgrLaMhZ+SgqArSShoHBwccQE4l+Z2qaexDGVMC0lmw4ZoyQ1+suwMYZlb8uzgX+729PfT7ffapux7azRavTdNEo14/P0OqT7PRwGer07j8y0eYDTxAp91B5DDK57/+G8LbCzO4sjwHwynBsWxUqlVIBDCM6HkewuEwvGoFhqLjj+hfuDR/BVd/m8BF3/sI61GoSZWJuvb4Hi78/B1en5/CN38uom45sF1nNMv0yHEZMeMI1x99isebi/jc9xW0fAZHRzL7fbg0h3eX7mD8p7v4PrQGL19E2bYgNZtN1hcVlQpeqVT4A1rzr9sKfvx7Edlijvcxqq0wq1HFSjiE0PY/vM8LORHzEjG2vr6OYDAIv9+PSCTCDhsbG9AEg27JQrNSh2s7XPhQKMRBnzWaTEhN1K0q9pubm7BtG1KtVmPkhiCgLliiQUYOBKAXitjdC8MUwI7jYmtri2ttlMzn3aOkUCia2NnZYZGPFDbLJnaItuAq4JvE/tQbWL7/pZBND+lUms/9P8xje/xr+CdmUPMqKIjgnOGQZZpJzFQ7W0RKqaLdYtvYuvkK3G8vwP/xayju+6Hny8ibeTx9uID4+DR+f+82oqtPUbCEdAjwtPYIuN1ui7knukCFXcxj94s3cXhDQnhyDF5BhaZn0ThuITjtwzuvjmHqrQ9Q3o2j6NrwhNCls4IemiJYF82BshaH/GQWlhoBqTURj/F5VTfxya0JrC2v8J4ujepQ2KNaL5fLC5ZFRqKPU0YRclrFoeiSQCDAMkuJPqa6aZkMMmKQ7Fqt1v/fNjT3el30Om10aYhrigaVhS4CAqD14EWnkf0H3WHSUnyUkkQAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1196   &gt;&lt;/span&gt;
         1197   &lt;img
         1198         class=&quot;gatsby-resp-image-image&quot;
         1199         alt=&quot;grid&quot;
         1200         title=&quot;grid&quot;
         1201         src=&quot;/static/40108f71e98124d2ba54690789f9cb9e/a6d36/msggrid.png&quot;
         1202         srcset=&quot;/static/40108f71e98124d2ba54690789f9cb9e/222b7/msggrid.png 163w,
         1203 /static/40108f71e98124d2ba54690789f9cb9e/ff46a/msggrid.png 325w,
         1204 /static/40108f71e98124d2ba54690789f9cb9e/a6d36/msggrid.png 650w,
         1205 /static/40108f71e98124d2ba54690789f9cb9e/a1792/msggrid.png 780w&quot;
         1206         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1207         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1208         loading=&quot;lazy&quot;
         1209       /&gt;
         1210   &lt;/a&gt;
         1211     &lt;/span&gt;&lt;/p&gt;
         1212 &lt;p&gt;The sweet-spot is that upper row: useful messages from both &quot;people we know&quot; and &quot;people we don&apos;t know.&quot; Whereas if you&apos;re in the bottom row, you&apos;re gonna have a bad time: useless messages are never... useful.&lt;/p&gt;
         1213 &lt;h4&gt;Filtering on sender&lt;/h4&gt;
         1214 &lt;p&gt;The bottom right quadrant is easy to visualize: robo-calls about your non-existent car&apos;s expired warranty, social media ads, junk mailers in your meatspace mailbox. &lt;/p&gt;
         1215 &lt;p&gt;You might think, perhaps, that we can use the &quot;Expected Sender&quot; vs &quot;Unexpected Sender&quot; filter to avoid this quadrant. In fact, this is what Apple allows you to do with the new &lt;a href=&quot;https://support.apple.com/en-us/HT207099#:~:text=To%20turn%20on%20Silence%20Unknown,in%20your%20recent%20calls%20list.&quot;&gt;Silence Unknown Callers&lt;/a&gt; feature in iOS 14 (which doesn&apos;t actually prevent the calls, but immediately sends unknown calls to the dead-letter queue that is your voicemailbox).&lt;/p&gt;
         1216 &lt;p&gt;The problem with this blunt approach of dead-letter queueing the right column is that you&apos;re going to miss the serendipity of the upper right quadrant: calls from unexpected sources with useful information. Given &lt;a href=&quot;/colon-cancer&quot;&gt;my recent cancer diagnosis&lt;/a&gt;, I&apos;ve had tons of important, useful calls from unknown numbers every single day, from doctors and the like -- calls that I want to triage quickly. Sending all calls from unknown numbers straight to voicemail would just be yet another inbox to maintain. Worse, I might miss something important in the upper right quadrant.&lt;/p&gt;
         1217 &lt;p&gt;A lighter touch approach here is to auto-classify your messages into buckets based on sender. Gmail now does this with their &quot;Primary&quot;, &quot;Social&quot;, and &quot;Promotion&quot; tabs. Everything&apos;s still &quot;in your inbox&quot;, but now you can usually just &quot;Select all&quot; on that Promotion tab and safely send those messages straight to the netherworld.&lt;/p&gt;
         1218 &lt;p&gt;The bottom left quadrant is where your unique lifeforce is slowly chipped away, doomscrolling through your high school classmates&apos; life updates or, gasp, political views. Don&apos;t get me wrong -- I really enjoy Instagram and it makes me happy to see people I know doing cool, cute stuff. But I know it can get real bad in this quadrant real quick. Unfollowing and/or muting is key here.&lt;/p&gt;
         1219 &lt;h4&gt;Filtering on content&lt;/h4&gt;
         1220 &lt;p&gt;Okay, so, if filtering on sender alone doesn&apos;t work, can we use the message contents to figure out if a given message is going to be useful?&lt;/p&gt;
         1221 &lt;p&gt;We&apos;re now talking about &lt;em&gt;pre-processing&lt;/em&gt; the messages in our queues.&lt;/p&gt;
         1222 &lt;p&gt;In the days of future past, you might have employed a staffer to &quot;sort through your office mailbox&quot; to do this. How very Don Draper of you. But in today&apos;s era of secure password managers and 2FA, we ideally don&apos;t have &lt;em&gt;that many&lt;/em&gt; other people in our digital inboxes. The inbox providers are aware of this, and they&apos;re starting to provide some tools to help here -- as long as you&apos;re okay with them &quot;reading&quot; your messages.&lt;/p&gt;
         1223 &lt;p&gt;Gmail, for example, has gotten pretty darn good at spam detection. They&apos;re &quot;reading your emails&quot; and dropping the bad ones into your &quot;spam folder&quot; dead-letter queue. Maybe, once in a blue moon, they false-positive something that you have to go spelunking into that elephant graveyard to find. But I&apos;m never annoyed by this, because when I see absolute garbage that they&apos;ve blocked for me day-in and day-out, I&apos;m hashtag grateful again.&lt;/p&gt;
         1224 &lt;p&gt;This approach, however, isn&apos;t possible with all mediums. There&apos;s no way to pre-filter on content for an incoming phone-call, for example.&lt;/p&gt;
         1225 &lt;p&gt;And the tradeoff in pre-filtering on content is, of course, privacy. &lt;/p&gt;
         1226 &lt;p&gt;If you&apos;re down for your inbox provider to &quot;scan&quot; your messages, then they can potentially start to do some smart stuff, like &quot;bubbling up&quot; useful messages or getting rid of bottom row crud.&lt;/p&gt;
         1227 &lt;p&gt;But, more likely than not, they&apos;re also reading them for another purpose.&lt;/p&gt;
         1228 &lt;h4&gt;The cost of free&lt;/h4&gt;
         1229 &lt;p&gt;Many of these inbox platforms are free (e.g. social media, Gmail), and someone&apos;s gotta pay to keep that spam algorithm ticking. And that someone is you.&lt;/p&gt;
         1230 &lt;p&gt;Most ads are squarely in the bottom right quadrant. &quot;Good&quot; ads -- I&apos;m talking about those Instagram candles you keep converting on -- are upper right quadrant. The platforms do their darndest to make sure their ads are as upper-right as possible, but they can&apos;t guarantee that. YouTube keeps asking me my age because it&apos;s genuinely confused as to why my viewing habits fluctuate between watching someone clean old Apple II and VIC-20 computers and the latest Super Mario 3 speed-runs. &lt;/p&gt;
         1231 &lt;p&gt;And, c&apos;mon, I&apos;d rather just not ever see ads in the first place.&lt;/p&gt;
         1232 &lt;p&gt;Okay, tough guy. Are you willing to pay for an ad-free inbox then?&lt;/p&gt;
         1233 &lt;p&gt;Maybe? Ugh. Yes, there&apos;s a bunch of new players in the space who are emphasizing privacy and going ad-free. But am I going to willingly add yet another recurring subscription to my life? The Mandalorian is about to come back, and I&apos;m already bracing for the impending Disney+ subscription. &lt;/p&gt;
         1234 &lt;p&gt;I&apos;ll come back to this, because our analysis is still missing two important features.&lt;/p&gt;
         1235 &lt;h2&gt;A framework for inboxen&lt;/h2&gt;
         1236 &lt;p&gt;So, far we&apos;ve only explored the features of an individual message -- not the nature of an inbox itself.&lt;/p&gt;
         1237 &lt;p&gt;Regardless of an individual message&apos;s usefuless or your prior awareness of its sender, an inbox has two other important features that contribute to our mental well-being: (1) typical message volume and (2) expected urgency of triage.&lt;/p&gt;
         1238 &lt;p&gt;&lt;span
         1239       class=&quot;gatsby-resp-image-wrapper&quot;
         1240       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1241     &gt;
         1242       &lt;a
         1243     class=&quot;gatsby-resp-image-link&quot;
         1244     href=&quot;/static/ed577922c604b352cc74374b10cd9443/2e195/inboxgrid.png&quot;
         1245     style=&quot;display: block&quot;
         1246     target=&quot;_blank&quot;
         1247     rel=&quot;noopener&quot;
         1248   &gt;
         1249     &lt;span
         1250     class=&quot;gatsby-resp-image-background-image&quot;
         1251     style=&quot;padding-bottom: 85.88957055214723%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAABYlAAAWJQFJUiTwAAADOklEQVQ4y4VUS2gTURQNLgRdqUs3Iq5diDtLtyIobnSpKG4sKIILCwURFy4UQV34WfgBq2h10YXa4CJItLaVlqTt2MnPyWTSmclnkslMZjL5TZLjuy+mrT964fGYN2/uPfeecyaAf0Sv11vbaXW7Xbiui1qthmazyZfneajX67/dowhsloyi1Wphfn4e0WgUq6uriMfjWFlZgSzLf30b2AyhbdscHSHqdDprdwjtAKXjOPB9f3OEpmkiuhhFLB6DKIrQdR2NRgOWZSGRSECMxZD6kUIymUS1Wu0n3NjaYF4U+XweRsmA59bQsD1UyiY0XUMkEkFGycAwDNRtBx5bdtWGoii8WOBPZIPIZrN8N9wygvEQipbBn5OpJHq/ik6nRXzP9e9RNzSGwEZ0VLVYLPKWVDb8XDGPo69PY+/bIRx7fgqmbUKS0uixed0Nv8P28SvY83gUn1IC6lVCWl1PSJFKpTh7ZbMMXdEQ1QQcuncUVz/dwvDD45iTFpDL6vDqHoafXMf+iRvY93QMlz5PwK84KFXMfsuUlBijNShAgyZ2rwdv41HoGZ5+HIdTd/BDkgBG9s3lEI6/uYPLrx/ho/wddavKZl7qJyQCwuEwpqenOZMUxGrH76DVbCEiR+F6Lj+PMWZJl+j0IGVkFPQcP9dzOZQGCanNYDCI2dlZ3jbFwsIClpYWGaI01JwFSVYgCMv4MDXFBR5ncpF1FWnGuCAIHBBxwBOSOEkO5ACivo9E5LtjFhF//wBp4Rt/llhBnwk8GRWwNBHEXCgMr9lAuVTuI9xICqmd+5OdSWxWtZqLL9cOQzi7BZMXDsLRGSpFheVW8eryDUQOjODt0Dmkl0SmAGu95YGYC4UCQqEQe2FAzxdhKAksj+yAProbyfPboM9NIluoMGHLCD18gRdHRjA+dAaZ4FeYNQeWWVlnmaLdbnOBkmd15opGu4vEyzHEL+6CeOcEPMdGJqMwkntYvP8GO7dux7WT59jMfBhMajXmqv86RVPV/q/KZ57Oq/AabbT9LkRGII2l0fUxOzMDjYmfviQjrFnvX14ms2uahiIbQ7lisXHkOWpCqLJiVJC6KTDJqasqP6POfgJBp9X/o5uBvwAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         1252   &gt;&lt;/span&gt;
         1253   &lt;img
         1254         class=&quot;gatsby-resp-image-image&quot;
         1255         alt=&quot;inbox&quot;
         1256         title=&quot;inbox&quot;
         1257         src=&quot;/static/ed577922c604b352cc74374b10cd9443/a6d36/inboxgrid.png&quot;
         1258         srcset=&quot;/static/ed577922c604b352cc74374b10cd9443/222b7/inboxgrid.png 163w,
         1259 /static/ed577922c604b352cc74374b10cd9443/ff46a/inboxgrid.png 325w,
         1260 /static/ed577922c604b352cc74374b10cd9443/a6d36/inboxgrid.png 650w,
         1261 /static/ed577922c604b352cc74374b10cd9443/2e195/inboxgrid.png 782w&quot;
         1262         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1263         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1264         loading=&quot;lazy&quot;
         1265       /&gt;
         1266   &lt;/a&gt;
         1267     &lt;/span&gt;&lt;/p&gt;
         1268 &lt;p&gt;The message volume thing is straightforward. Some platforms have a never-ending feed of messages that you can &quot;enjoy,&quot; others not so much.&lt;/p&gt;
         1269 &lt;p&gt;At the same time, each inbox medium connotes a inherent sense of urgency. &lt;strong&gt;The medium is the madness&lt;/strong&gt;, if you will. No matter what the message says or who sends it, there&apos;s a differentiated inbox-level &quot;urgency punch&quot; to your lizard brain whenever any single message (spam or not) comes flying in.&lt;/p&gt;
         1270 &lt;p&gt;Let&apos;s be more specific with some typical inboxes in our lives:&lt;/p&gt;
         1271 &lt;p&gt;&lt;span
         1272       class=&quot;gatsby-resp-image-wrapper&quot;
         1273       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1274     &gt;
         1275       &lt;a
         1276     class=&quot;gatsby-resp-image-link&quot;
         1277     href=&quot;/static/f85539e1b1b5e52ca78c881a86f47601/f941f/inboxoverlay.png&quot;
         1278     style=&quot;display: block&quot;
         1279     target=&quot;_blank&quot;
         1280     rel=&quot;noopener&quot;
         1281   &gt;
         1282     &lt;span
         1283     class=&quot;gatsby-resp-image-background-image&quot;
         1284     style=&quot;padding-bottom: 89.57055214723925%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAABYlAAAWJQFJUiTwAAADlUlEQVQ4y31US28bVRj1GokdEhtY8gPYgIrYIMEGiQU7FpQNUsWCVqW0AiGhqKJFiiilqDyUPqTQRxTaOE2sFmM7tifxTGOb2NR24pmxPYmfcWqPZ4wfY8dOfLjfNW5wQfmkT3fmzr1nzne+c68N/xODweDJSNnr9dBqtdDpdLC7u8uz2+3y93+vo7AdBjaKfD4PQRAQi8WgaRoSiQTi8ThSqdR/9toOY0YsiB2NlKP5fr+PRqMBy7I4W2JP6w5lOGKWlJN81LRNdBgoBYFsbW3x+XK5jGw2y0E54NOsKNrtNpLJJNSUyjOTTkNRZCQ3NiCKAV5uYn0dsqogqSi89Ewmg1qtNmT4tG6maaK8U+bPLbMJcTWIZSkI37IEn3/5n1IAy6gD3WGp1KBSqXTAkDTY29sbAtZNWM02oloMb8+9j5+ct+B1BWG/70YkvsHXzEdFvDw/iXd+vQhZS/O5MUCiHAqFuB7F7RK6zQ4+XZjAS9dex7G7n+O6fRZufwCh8BqsjoV3r32NF++cxQtXzuDD2R+AvQFyhfwBIOlGAlPoNR1ts4XzS9/hlP1LXBVu4KPpU+h1d6Ftaqwrfbx27wJenf8Gb965gGPCbb6PA47YpZnwI6Pqug6jZqDb7+KSfwrT3hlU6jr/thaNotfuwB4RMfHbDG4u2hFNy6iz9WmGY1NYl1wuFzweDzcsaUndktl8q9lCy/iLgeuoGyY3tccXgC8QQjj0CA+FANweP5Z8IhzOJcTi67AVCgU4nU4Eg0HOcsRwndnCMAyUjQZKegM1sw6V/cQjSHjgFiA+YhaKrMG5IuHq9AzmFn+HksoMSyaWqqo+KblSqfCkUB2Xkbp5BptKApHYBmbv3mMAt/DV8c8wf/wcpj45C39ARPiPCGRZOWjK/v4+bwqdAr1awWPmP2XhItQPbJBPPA/7iSNYuO+CdyUEh3cFzi8uQTlyEstvnUTWHx42hTlkrMuSJHGdTFZqtWbC98sk7N+ehmPqPGa/n8Ci4wEEMQyHywvpxxlcfuMofn7lPfw5NUc+Rz6bG2dI2lHZNQaoV6tIyBkseoO4MeeER4xy49IZblhtrJy7gueeeRaTRz/GgFmsj30U8oXxozcK6jJpmM3l4F7yw+MVID0ModlsgppI0WcZXF3FTq3K3622xb+NXQ7EcnSbFItFruk2OzWPd3awzdgRQ/Is3TKFXJ5XtF0sIcd+THN04/wNCCAG4hCH/UQAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1285   &gt;&lt;/span&gt;
         1286   &lt;img
         1287         class=&quot;gatsby-resp-image-image&quot;
         1288         alt=&quot;inbox overlay&quot;
         1289         title=&quot;inbox overlay&quot;
         1290         src=&quot;/static/f85539e1b1b5e52ca78c881a86f47601/a6d36/inboxoverlay.png&quot;
         1291         srcset=&quot;/static/f85539e1b1b5e52ca78c881a86f47601/222b7/inboxoverlay.png 163w,
         1292 /static/f85539e1b1b5e52ca78c881a86f47601/ff46a/inboxoverlay.png 325w,
         1293 /static/f85539e1b1b5e52ca78c881a86f47601/a6d36/inboxoverlay.png 650w,
         1294 /static/f85539e1b1b5e52ca78c881a86f47601/f941f/inboxoverlay.png 736w&quot;
         1295         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1296         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1297         loading=&quot;lazy&quot;
         1298       /&gt;
         1299   &lt;/a&gt;
         1300     &lt;/span&gt;&lt;/p&gt;
         1301 &lt;p&gt;Phone calls are just about as &quot;urgent&quot; as it gets. Prior to iOS 14, phone calls used to interrupt whatever you were doing, taking up your iPhone&apos;s entire screen real estate. Doesn&apos;t get more urgent-y than that! Luckily, calls are relatively sparse compared to text messages, which you still need to respond to, but you can &quot;put them on ice&quot; for days at a time with a high-degree of cultural acceptance.&lt;/p&gt;
         1302 &lt;p&gt;Social media messages are legion in terms of volume. And, while they&apos;re not especially urgent from an innate message-level perspective, the platforms do their darndest to &quot;notify&quot; you of &quot;engagement opportunities&quot; to keep you locked-in, so these inboxes fall in the semi-urgent category in my book.&lt;/p&gt;
         1303 &lt;p&gt;Onto RSS -- my beautiful, dark, twisted RSS. There&apos;s truly zero urgency here and relatively few messages (writing blog posts is time-consuming!). Moreover, returning to our message evaluation framework, an RSS inbox only contains messages from known senders, since you&apos;ve explicitly had to add their RSS feeds to your feed-roll. And, since you&apos;ve likely done that because you expect to value the contents of their messages, you&apos;re likely living in the upper left quadrant in RSS-land, enjoying that drizzled honey and those weird-newspaper rolls.&lt;/p&gt;
         1304 &lt;p&gt;Email is the real challenge-tunity here.&lt;/p&gt;
         1305 &lt;h3&gt;Stuck in the Middle With You&lt;/h3&gt;
         1306 &lt;p&gt;Email is caught in the middle of all these features, both message-level and inbox-level. Anyone can email you at any time with any message, so there&apos;s a ton of it, and any message may be useful and/or urgent. That&apos;s mostly a good thing, and probably our RFC-writing forerunners wanted it that way.&lt;/p&gt;
         1307 &lt;p&gt;Thus, we check our email, prodigiously, every single day. All day long. While we&apos;re pooping, while we&apos;re Zooming, while we&apos;re doing any old thing.&lt;/p&gt;
         1308 &lt;p&gt;Perhaps this is a lens on why newsletters are making a comeback. Email readers are a &quot;captive audience,&quot; because we cannot avoid triaging our email inboxes. As long as publishers keep their newsletters top-row-level useful, we&apos;ll keep Substacking them. Certainly, the chances of me reading an email newsletter are greater than they would be if I had to visit individual blogs. However, I think my ideal for premium content would be paid RSS feeds, rather than email newsletters, because I want to keep my email inbox clean as possible to aid in my triaging. In fact, this is what many podcasts are now doing (since podcasts are just noisy RSS feeds).&lt;/p&gt;
         1309 &lt;p&gt;OK, enough about content-monetization (have I mentioned I have a free newsletter below?). How can we make our email inbox &lt;em&gt;feel&lt;/em&gt; better? Is it possible to make email feel as good as RSS?&lt;/p&gt;
         1310 &lt;p&gt;First, we should establish principles-slash-goals for each quadrant in our Conjoined Box of Message Success:&lt;/p&gt;
         1311 &lt;p&gt;&lt;span
         1312       class=&quot;gatsby-resp-image-wrapper&quot;
         1313       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1314     &gt;
         1315       &lt;a
         1316     class=&quot;gatsby-resp-image-link&quot;
         1317     href=&quot;/static/10539222c9e4e14ed7f74d968fa53c2a/a1792/messageactions.png&quot;
         1318     style=&quot;display: block&quot;
         1319     target=&quot;_blank&quot;
         1320     rel=&quot;noopener&quot;
         1321   &gt;
         1322     &lt;span
         1323     class=&quot;gatsby-resp-image-background-image&quot;
         1324     style=&quot;padding-bottom: 82.82208588957054%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAABYlAAAWJQFJUiTwAAACVklEQVQ4y31T2Y7iQAzM/38Sj4MEjDgWhLjv++oEQg5y16YcwpARu5as7nTa7nK5rOGDJUkiTouiCI/HA0EQwPd9hGEoe7rruvL9HqP9TpRbHMeyns9n1Go1tFotfH19YTqdol6vo91uy7nneYX72v/Q8bJt27jf77J/P9/tdjgcDrLyTh6rfUpGZ9B6vRY0RMdgx3Ek+Ha7YbPZYDabYbFY4HK5vB7U8lffkVmWhdFoJAHj8Rij8QiDwQCdTgelUgn9fh/D4RDjyQST1EkD7zFO+80dzTAMmKb5qV8S+MmImnHae5ksia+wEYZuwIs8HM0zLpaC5dmIwkjQ6c4dyr7DfDg4WzeYngt1Ubherz8cMuFqtRJuTqcTdF1HkISoLZtobNpwAxdJnGCUljo3TvizX2CmH/G9nmBlqjThRVBqbHfuuZFkOk3ZBvbmEWEcyaP9lMtPtt/vhSat2+2iXC6jUqmgWq2KUJVSgjKDXlQBm8E1Jk3U35P/V8Jmsym8MGGj0ZBSSW6v15NLorfjQR6gdChuymm5XGI+n0uX2SiKXLrMceKL+QjlJecIw3T0opQOOu/w8Xz0GEv9cc/kHICCsHnA+WSXldKzMsltFKTuyzcRZbXG2fosmZVIU3IN8hXyQ5Ee0lL16w1wFbxlFf76G/6mIfHT2RSB5UC1xzBnW9xXh2LCfwmbmsqmPih0hqOWnScZumcsKSoglM49pcOEbICfonZSChzHlRkm6Rw/rvy200HgMLA6InwJ+z0pjWRvt9tCN/N5pSoobu55xv9UA51xfwHF3BE4LXX2nQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         1325   &gt;&lt;/span&gt;
         1326   &lt;img
         1327         class=&quot;gatsby-resp-image-image&quot;
         1328         alt=&quot;message actions&quot;
         1329         title=&quot;message actions&quot;
         1330         src=&quot;/static/10539222c9e4e14ed7f74d968fa53c2a/a6d36/messageactions.png&quot;
         1331         srcset=&quot;/static/10539222c9e4e14ed7f74d968fa53c2a/222b7/messageactions.png 163w,
         1332 /static/10539222c9e4e14ed7f74d968fa53c2a/ff46a/messageactions.png 325w,
         1333 /static/10539222c9e4e14ed7f74d968fa53c2a/a6d36/messageactions.png 650w,
         1334 /static/10539222c9e4e14ed7f74d968fa53c2a/a1792/messageactions.png 780w&quot;
         1335         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1336         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1337         loading=&quot;lazy&quot;
         1338       /&gt;
         1339   &lt;/a&gt;
         1340     &lt;/span&gt;&lt;/p&gt;
         1341 &lt;p&gt;How might we think about upholding these principles in our email inboxes?&lt;/p&gt;
         1342 &lt;ul&gt;
         1343 &lt;li&gt;&lt;em&gt;Upper-left&lt;/em&gt;: We never want to miss useful emails from people we know. None of our remediation tactics for the bottom row should impact our ability to &quot;avoid missing&quot; these. Got it?&lt;/li&gt;
         1344 &lt;li&gt;&lt;em&gt;Upper-right&lt;/em&gt;: This quadrant is kind of a nice-to-have for email. We aren&apos;t necessarily &quot;looking&quot; for new emails on a daily basis, but we also don&apos;t want to miss that awesome job-opportunity email. We need some way of pre-processing the contents or other features of the email (sender email address, subject line, etc) to bubble these up somehow.&lt;/li&gt;
         1345 &lt;li&gt;&lt;em&gt;Bottom-right&lt;/em&gt;: Spam filtering takes the prize here, but that&apos;s just table-stakes now. I think that the pre-categorization work of Gmail into Promotions and Social is really helpful, as is the ability to easily unsubscribe from ad-like emails. But the in-line ads of Gmail increase visual thrash, so it&apos;s a bit all over the place.&lt;/li&gt;
         1346 &lt;li&gt;&lt;em&gt;Bottom-left&lt;/em&gt;: This is less-relevant for email, since we&apos;ve culturally moved these communications over to Facebook and the like.&lt;/li&gt;
         1347 &lt;/ul&gt;
         1348 &lt;p&gt;Hmm, after reviewing message characteristics, email actually seems semi-okay. Most people can easily tell whether an email is going to be useful or not, provided that they take a second to glance it. The problem, then, is volume. Are we going to ensure that we glance at the most useful emails within their respective windows of urgency? &lt;/p&gt;
         1349 &lt;h2&gt;The medium is the madness&lt;/h2&gt;
         1350 &lt;p&gt;Maybe we need a faster way to just chug through emails. Power gmail users can&apos;t live without their keyboard shortcuts, for example. Or maybe we need better filtering-out of spam-like emails from our favorite clothing providers. Or maybe we need a way to remind us to triage a high-likelihood, potentially-useful email later.&lt;/p&gt;
         1351 &lt;p&gt;Add up enough of these, and we&apos;re building a better imbox. I mean inbox. I do like the idea that companies like Superhuman and Basecamp are innovating in email to try to block and tackle against the useless and steer us towards the useful. I personally haven&apos;t made the jump yet. I&apos;m slightly stuck in my Gmail ways now, and I do think that, with a bit more fiddly-work, I can set up my Gmail to reproduce a lot of the most impactful features of Superhuman or hey.com.&lt;/p&gt;
         1352 &lt;p&gt;I&apos;ve certainly missed some features in this analysis. But I&apos;m trying to apply these frameworks not just to email, but to all forms on inboxes in my life that require my human-in-the-loop intervention. Something&apos;s gotta give, or this is just going to become our full-time job. Cue Slack-message sound.&lt;/p&gt;
         1353 &lt;p&gt;Email me if you have any other ideas for inbox sanity! Just kidding - send a Tweet, for the love of all things electronic.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[The Peep-Hole]]></title><description><![CDATA[Two weeks ago I woke up at 5 AM on the dot and had this entire creepy dream in my head. I went to the bathroom and scribbled it down while…]]></description><link>https://www.charlieharrington.com/the-peep-hole</link><guid isPermaLink="false">https://www.charlieharrington.com/the-peep-hole</guid><pubDate>Thu, 22 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Two weeks ago I woke up at 5 AM on the dot and had this entire creepy dream in my head. I went to the bathroom and scribbled it down while sitting on the toilet before I could forget it. &lt;/p&gt;
         1354 &lt;p&gt;It being October and all, I thought I&apos;d share this scary story...&lt;/p&gt;
         1355 &lt;p&gt;&lt;span
         1356       class=&quot;gatsby-resp-image-wrapper&quot;
         1357       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1358     &gt;
         1359       &lt;a
         1360     class=&quot;gatsby-resp-image-link&quot;
         1361     href=&quot;/static/6c61fe51fd42f8edbda8209466e9d038/d438d/yeasayer.png&quot;
         1362     style=&quot;display: block&quot;
         1363     target=&quot;_blank&quot;
         1364     rel=&quot;noopener&quot;
         1365   &gt;
         1366     &lt;span
         1367     class=&quot;gatsby-resp-image-background-image&quot;
         1368     style=&quot;padding-bottom: 52.760736196319016%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAACtklEQVQoz1WQaVtSURRG769QrJwApywTFVFEFHIkMUlUnEpNy0crUxs0xSmcRxAQUBKHUhvsJ6426Jc+rGefe+55197nKFWTQSre7lH2apPSvhWKu5co6phH1+amsHWGQudsYq1zLaLr8VDcv4b+9RaGt17KJwJUTIUxu6NYFmNYl09RLNOyMeHHOLqLQaT6uLTnK0WdInYt3Ii65Lt3mZKBW9kbL0aRVYqsWmTWpRg1q2fUb31HqZ0X+1QI8/j+rXQLvQRLXohYJMXPRdS3in5wg9LhbcpksorJAGYZxCLZGs8J9evn2HYvaPJdoTxZOaF27ug/aZkEDUPyBHHJ0AYGmapsZAfjmA/ThyDVX8I8XohSJ1nb5jl27wWO4BWtkV8oju1znizHqJs7xDp1kLi+6Z1c6c0u5SOCNDDKG1eO+zF/OsA6E6F28RuNqyfYJevYv8AZ+klH9DddsWuUDv8Pnm2dYl8+pkGkNdMhLB+DVE36ExNXSQPLxwBW2a9xR2hYimJfi+HYOaNNsp3hK3qjv+iP/WHw7C/Ky/Al3V75uXFMi+eQpvkwDTMH1E0FqP0cSNT66SA29wFPPUc4N2O49s7oDf5g4PCK17HfjJ7+Yez8molLEQ77jhnYPaZ3I4prJYJzMYRjXsLuIM2zfppnAjg9EVzSsNW9T9vsDj2efV54fAys+Hi17md0J8SYN8z7vRCK0WTFZLFhrm+lytaOSaq5sZ1qezeWludUNrRT19FHU9cQBrMNXYFeKKHwgQ6d8CjvEbqHJbIuovB+AYpWpUKTlIQmORltcpKQnCDrzj2y76aScy+NnNQM8jK05GuyeJCVQ742W6ogNS9TQ256ppAh59JR1CkpqFVCiopM1Q3qOHfuJtCIVJuaRlZaBtnpanIzteSqteSJPIGs43vZIo2f+Qca3NAT8wb3MgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         1369   &gt;&lt;/span&gt;
         1370   &lt;img
         1371         class=&quot;gatsby-resp-image-image&quot;
         1372         alt=&quot;yeasayer&quot;
         1373         title=&quot;yeasayer&quot;
         1374         src=&quot;/static/6c61fe51fd42f8edbda8209466e9d038/a6d36/yeasayer.png&quot;
         1375         srcset=&quot;/static/6c61fe51fd42f8edbda8209466e9d038/222b7/yeasayer.png 163w,
         1376 /static/6c61fe51fd42f8edbda8209466e9d038/ff46a/yeasayer.png 325w,
         1377 /static/6c61fe51fd42f8edbda8209466e9d038/a6d36/yeasayer.png 650w,
         1378 /static/6c61fe51fd42f8edbda8209466e9d038/e548f/yeasayer.png 975w,
         1379 /static/6c61fe51fd42f8edbda8209466e9d038/3c492/yeasayer.png 1300w,
         1380 /static/6c61fe51fd42f8edbda8209466e9d038/d438d/yeasayer.png 2290w&quot;
         1381         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1382         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1383         loading=&quot;lazy&quot;
         1384       /&gt;
         1385   &lt;/a&gt;
         1386     &lt;/span&gt;&lt;/p&gt;
         1387 &lt;p&gt;&lt;em&gt;Image source: the &lt;a href=&quot;https://www.youtube.com/watch?v=JyBl5ZgnEr4&quot;&gt;awesome Yeasayer music video&lt;/a&gt; for their song Ambling Alp&lt;/em&gt;&lt;/p&gt;
         1388 &lt;h2&gt;The Peep-Hole&lt;/h2&gt;
         1389 &lt;p&gt;There was peace in the village of Ghir, thanks to the Peep-Hole.&lt;/p&gt;
         1390 &lt;p&gt;It had been this way for as long as anyone could remember.&lt;/p&gt;
         1391 &lt;p&gt;&quot;It&apos;s better than a thousand kings,&quot; said one shop-keeper.&lt;/p&gt;
         1392 &lt;p&gt;&quot;We&apos;re blessed to have the wisdom of our elders at our finger-tips,&quot; said another.&lt;/p&gt;
         1393 &lt;p&gt;Any dispute, conflict, or argument could be brought to the Peep-Hole in the village center. No case or trial would be needed. The Peep-Hole had already seen and heard everything. A voice from the Peep-Hole would utter the Truth, and the matter resolved.&lt;/p&gt;
         1394 &lt;p&gt;Ori had prepared his whole life to become a Watcher. To be one of the Watchers of the Peep-Hole was Ghir&apos;s greatest honor. Only the purest-of-heart and strongest-of-mind were chosen, and only once ever six years.&lt;/p&gt;
         1395 &lt;p&gt;When Ori was six years old, his mother Cera was Chosen. It was the best day of Ori&apos;s life. The honor bestowed upon him was immense. He pledged that day to become a Watcher himself. He would join the Peep-Hole as the youngest Watcher ever, as soon as he came of age.&lt;/p&gt;
         1396 &lt;p&gt;Everyone in town believed in Ori and thought he would be Chosen.&lt;/p&gt;
         1397 &lt;p&gt;On the morning of the ritual, Ori woke up and asked the Peep-Hole in his hut for the weather.&lt;/p&gt;
         1398 &lt;p&gt;&quot;CLEAR AND CALM. LOW TO MID 70&apos;S,&quot; replied the Peep-Hole.&lt;/p&gt;
         1399 &lt;p&gt;Every hut in Ghir had access to the Peep-Hole. Its tubes stretched and tunneled from the village center into their homes. Any question, private or not, could be asked and would be answered by the Peep-Hole.&lt;/p&gt;
         1400 &lt;p&gt;&quot;Peep-Hole, what does it take to be Chosen as Watcher?&quot; asked Ori.&lt;/p&gt;
         1401 &lt;p&gt;&quot;ONE MUST BE PURE-OF-HEART, STRONG-OF-MIND, AND BE OF-AGE TO BE CHOSEN.&quot;&lt;/p&gt;
         1402 &lt;p&gt;Ori had heard these words thousands of times before.&lt;/p&gt;
         1403 &lt;p&gt;&quot;Peep-Hole, will I be Chosen as Watcher today?&quot;&lt;/p&gt;
         1404 &lt;p&gt;But the Peep-Hole was silent. Fear crept into Ori&apos;s heart. He tasted a cold sour in his teeth. Perhaps the ritual has already begun, he worried. Ori put on his finest clothes and raced to the village center.&lt;/p&gt;
         1405 &lt;p&gt;The entire village of Ghir had already assembled. Ori was late, and the villagers glared at him. Ori took his place in the circle around the Peep-Hole.&lt;/p&gt;
         1406 &lt;p&gt;The Peep-Hole gurgled and pulsed like liquid mercury. Its tubes flexed like the pulled off limbs of daddy-long-longs. Ori had seen the ritual twice before. He knew that the Peep-Hole would agigate and then announce a name.&lt;/p&gt;
         1407 &lt;p&gt;&quot;SREN&quot;&lt;/p&gt;
         1408 &lt;p&gt;The village gasped. Ori felt to the dirt. &lt;/p&gt;
         1409 &lt;p&gt;A forlorn, meek boy stepped forward. Sren was a farmer&apos;s son. He was quiet and unassuming, and, like Ori, had just turned eighteen.&lt;/p&gt;
         1410 &lt;p&gt;The village watched silently as Sren walked into the rippling quicksilver and disappeared. Before he was gone, he screamed.&lt;/p&gt;
         1411 &lt;p&gt;Everyone screamed when they entered the Peep-Hole. No one knew why.&lt;/p&gt;
         1412 &lt;p&gt;The villagers dispersed, but Ori remained. Fig, a younger girl of thirteen, came over to him.&lt;/p&gt;
         1413 &lt;p&gt;&quot;It&apos;s okay, Ori. There&apos;s always next ritual.&quot;&lt;/p&gt;
         1414 &lt;p&gt;Ori glanced at her. He heard no kindness in her words. He only saw her as a potential rival.&lt;/p&gt;
         1415 &lt;p&gt;When he returned home that night, Ori tried using the Peep-Hole again. But it refused to answer him.&lt;/p&gt;
         1416 &lt;p&gt;Am I being exiled, he wondered. Being cut off from the Peep-Hole was an unimaginable exile. Worse than death. &lt;/p&gt;
         1417 &lt;p&gt;And Ori wanted to die.&lt;/p&gt;
         1418 &lt;p&gt;He wandered the village late that night, watching and listening to his fellow villages consult with the Peep-Hole from their fire-lit huts. He went to the town center and spat at the Peep-Hole. His spit fizzled on the liquid metal and evaporated. Ori sat down. He watched the Peep-Hole, watched it shimmer and and pulse. He wondered then, for the first time, where the Peep-Hole had come from. He fell asleep.&lt;/p&gt;
         1419 &lt;p&gt;His sleep was dreamless, but Ori woke with a new clarity. Last night was the first night ever that he slept somewhere else, other than his hut. Somewhere far from his hut&apos;s Peep-Hole tube.&lt;/p&gt;
         1420 &lt;p&gt;Ori felt powerful and confident.&lt;/p&gt;
         1421 &lt;p&gt;Later that morning, he called the villagers back to the town center.&lt;/p&gt;
         1422 &lt;p&gt;&quot;Give it up, Ori,&quot; they grumbled.&lt;/p&gt;
         1423 &lt;p&gt;&quot;You weren&apos;t Chosen,&quot; they called.&lt;/p&gt;
         1424 &lt;p&gt;But then they saw what he had done.&lt;/p&gt;
         1425 &lt;p&gt;Pyres of wood had been stacked around the heptagonal Peep-Hole.&lt;/p&gt;
         1426 &lt;p&gt;&quot;People of Ghir,&quot; said Ori. &quot;For too long we have been under a spell. Today I break that spell. People over Peep-hole!&quot;&lt;/p&gt;
         1427 &lt;p&gt;All the while, the Peep-Hole was gurgling uncontrollably behind him.&lt;/p&gt;
         1428 &lt;p&gt;Ori lit a match and threw it into the pyre. Flames encircled the Peep-Hole. The quicksilver melted and slid to the ground, revealing a skeletal structure within.&lt;/p&gt;
         1429 &lt;p&gt;Screams erupted from the crowd. Everyone vomited. Ori turned his head from the crowd to the Peep-Hole and collapsed again to the dirt, throwing up everywhere.&lt;/p&gt;
         1430 &lt;p&gt;Inside the Peep-Hole were the Watchers. Or what was left of them. A pale, sickly blob pulsed and writhed from within the geodesic cage. Arms and legs and heads stuck out in all directions from the creature. &lt;/p&gt;
         1431 &lt;p&gt;Ori couldn&apos;t stand the sight -- or smell -- of it burning, so he doused the fires. As the temperature cooled, the mercury reformed around the structure.&lt;/p&gt;
         1432 &lt;p&gt;&quot;Go,&quot; said Ori to the Peep-Hole. &quot;Go and never return. We will lead ourselves.&quot;&lt;/p&gt;
         1433 &lt;p&gt;The Peep-Hole thrummed loudly. It began to move, slowly, snapping off its tube arms one by one. The Peep-Hole slid out of the village center, towards the mountains. Ori watched it disappear into the forests.&lt;/p&gt;
         1434 &lt;p&gt;The people of Ghir cheered Ori, naming him Hero. &lt;/p&gt;
         1435 &lt;p&gt;For a while, all was well in the village. But then the disputes resumed. Ori wanted the villagers to settle things themselves, rationally, but he saw that they could not. He tried making rules for them to follow, but the people always found ways to re-interpret his words.&lt;/p&gt;
         1436 &lt;p&gt;The Hero set up a trial system. The people came before him to argue their case, and Ori did his best to settle their disputes.&lt;/p&gt;
         1437 &lt;p&gt;But soon the people became clever. They spun their words. Truths became indistinguishable from lies. Lies, truths. It was harder and harder for the Hero to resolve the matters of the village.&lt;/p&gt;
         1438 &lt;p&gt;More than once as he stood in the town center, Ori caught a glimmer of silver in the corner of his eye, far away on the mountain-tops.&lt;/p&gt;
         1439 &lt;p&gt;It became too much for the Hero. That day, the people came to the town center and didn&apos;t find Ori.&lt;/p&gt;
         1440 &lt;p&gt;&quot;He&apos;s abandoned us, too.&quot;&lt;/p&gt;
         1441 &lt;p&gt;For many days, the villagers retreated to their huts and waited.&lt;/p&gt;
         1442 &lt;p&gt;Then, one morning, the tubes in their huts were lit. They walked to the town-center.&lt;/p&gt;
         1443 &lt;p&gt;The Peep-Hole had returned.&lt;/p&gt;
         1444 &lt;p&gt;Ori was never seen again.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Notes on My Colon Cancer]]></title><description><![CDATA[The giant robot looks like a WED Treadwell, my favorite robot of all the Star Wars droids. I admit, I was worried that it would look organic…]]></description><link>https://www.charlieharrington.com/colon-cancer</link><guid isPermaLink="false">https://www.charlieharrington.com/colon-cancer</guid><pubDate>Wed, 21 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The giant robot looks like a WED Treadwell, &lt;a href=&quot;/robots-i-love&quot;&gt;my favorite robot&lt;/a&gt; of all the Star Wars droids. I admit, I was worried that it would look organic, like a Sentinel from The Matrix, with wriggling Dr. Octopus arms and pinchy pincers that pinch. But I&apos;m calmed by the robot&apos;s EVE-like exterior.&lt;/p&gt;
         1445 &lt;p&gt;The room is sterile. A dozen masked, gloved attendants in blue buzz. I imagine I&apos;m an astronaut about to step into the rocketship capsule.&lt;/p&gt;
         1446 &lt;p&gt;Except I won&apos;t be going anywhere on this particular journey, unless something goes very, very wrong. In fact, I&apos;ve already been asked repeatedly by various staffers to describe what I&apos;m expecting to happen in this room over the next few hours:&lt;/p&gt;
         1447 &lt;blockquote&gt;
         1448 &lt;p&gt;&quot;I&apos;m here to remove my sigmoid colon via robotic surgery because of the cancerous tumor inside.&quot;&lt;/p&gt;
         1449 &lt;/blockquote&gt;
         1450 &lt;p&gt;I&apos;m 34 years old. It&apos;s October 12th, 2020. Five weeks ago I was diagnosed with colon cancer.&lt;/p&gt;
         1451 &lt;h2&gt;Stool, bloody stool&lt;/h2&gt;
         1452 &lt;p&gt;I&apos;ve always been a standing wiper. Not sure entirely why. I must have once, accidentally, touched a load of poo during a seated wipe. That sort of thing can change a person.&lt;/p&gt;
         1453 &lt;p&gt;This charming anecdote does factor into our story, because it means I&apos;ve always had a pretty good sense for my poo. Consistency, quality, and color, both in the bowl and on the TP. Did you know, there&apos;s even a seven-stage scientific classification system for your poo, called the &lt;a href=&quot;https://en.wikipedia.org/wiki/Bristol_stool_scale&quot;&gt;Bristol stool scale&lt;/a&gt;?!&lt;/p&gt;
         1454 &lt;p&gt;&lt;span
         1455       class=&quot;gatsby-resp-image-wrapper&quot;
         1456       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1457     &gt;
         1458       &lt;span
         1459     class=&quot;gatsby-resp-image-background-image&quot;
         1460     style=&quot;padding-bottom: 53.987730061349694%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAB9klEQVQoz0WSSW/TQBiG/ff4EZw5ceZQxIHlBGpVoAKVRYJWoqpaqUiAJeBQgkhiRIA43u3E9tger4lV29kXeG2L8h1G4xk9M+/3jBlLUz6fHp08fzIM/SiKi6Lwfd/zPNsmnkc3m82ff7VcLkVRlCRJUZRer8fzPBNR98v7M/b4MAmDIAzH47FXlVOWu16vgdVHLBYLWZZrWFVVjMwoDG5fv7Z988ZFOiLEybLMNC27KmyHUXQJT6dTkN1ut9VqNZtNBGQosQ4ePnizvxcH1A+COjYhyOxh9KmfJMNRVfP5HLENw8AEB6ELRuh837uz9ejuLcvQkDvPC+pTTdNAIncdwSFE1/XJZIJWsXVpgSGGyn18++3Dqdb7aRMnTVPXdYH1+31gqqbZhAwGJpKjZ47jcPl/2JJ/nz3bfvdyx+B/hFGcZ1mluixKKbrHJ0QARk5YQASsw2sJu4bEvt49P3kRe7bjenme2bal64Zpmq5bOkf+WhhgQRAgrN1uB0FQwo4hHj2+9+r+lqnweBuIsSwbDGBSBh7AkCTJMARPeCq0DdtJkpTw9IIaX5+Kn3ayxIvi4bgo4jgOq8LE9wOEhH+Qq9UKInAWjsBiCeeR0ty/wh1cBayoepqOoITncYEgy4pU/hVyp/MLbUNYo9E4r4pl2dls9hdOiz6ZIoG+hQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         1461   &gt;&lt;/span&gt;
         1462   &lt;img
         1463         class=&quot;gatsby-resp-image-image&quot;
         1464         alt=&quot;Bristol stool scale&quot;
         1465         title=&quot;Bristol stool scale&quot;
         1466         src=&quot;/static/aa89064dc77b216479fbe409ba4b8653/a6d36/bristol.png&quot;
         1467         srcset=&quot;/static/aa89064dc77b216479fbe409ba4b8653/222b7/bristol.png 163w,
         1468 /static/aa89064dc77b216479fbe409ba4b8653/ff46a/bristol.png 325w,
         1469 /static/aa89064dc77b216479fbe409ba4b8653/a6d36/bristol.png 650w,
         1470 /static/aa89064dc77b216479fbe409ba4b8653/be86f/bristol.png 662w&quot;
         1471         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1472         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1473         loading=&quot;lazy&quot;
         1474       /&gt;
         1475     &lt;/span&gt;&lt;/p&gt;
         1476 &lt;p&gt;I first noticed blood two or three years ago. On a monthly or so cadence, I&apos;d wipe and notice a reddish tinge. Not bright red, more like muddy-red. Poopy-red. Initially, I thought little of it. Just a minor curiousity. It certainly didn&apos;t happen every time. Still, I decided to check off the &lt;code class=&quot;language-text&quot;&gt;Blood in stool&lt;/code&gt; box on the forms at my annual physical with my primary care doctor that year.&lt;/p&gt;
         1477 &lt;p&gt;A brief aside on the phrase &quot;your primary care doctor.&quot; Like in &lt;em&gt;Forgetting Sarah Marshall&lt;/em&gt;, the last doctor I really thought of as &quot;my doctor&quot; was my pediatrician. Since &quot;becoming an adult&quot;, I&apos;ve lived in three cities in two countries, which means that I&apos;ve generally had no idea who my primary care doctor is or was, only that I&apos;d need to find one to give me a referral to get this wart on my foot removed.&lt;/p&gt;
         1478 &lt;p&gt;&lt;span
         1479       class=&quot;gatsby-resp-image-wrapper&quot;
         1480       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1481     &gt;
         1482       &lt;span
         1483     class=&quot;gatsby-resp-image-background-image&quot;
         1484     style=&quot;padding-bottom: 56.44171779141104%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACeElEQVQozw3QyXLSAACA4ZQdZKcVCxa6UKAIAYxlpyE7JITsCQmyFqh0irW0M9WLh1odx6sHT53x4nvaF/hnvh8oZLN0V5ovrxiMQCpVjmx3kFa1UKhBUPO0RMEISxBUq9VGcJagGZRQBWU4GI/H5/pgCrA99fbuy+O3H4YgCWS7+5yA8v02brC0SlM8jijU2VgmB6I01CYGR081bjVfra82Hy5vAI5XNFEeqarM9qSuUM/n64m42uNkTuxS7U61jIK59ypr8KIu6DLT1Hh4MhjNxrPRaApcf7p7/PFzubhgCLKUK4AHiUo6iddrfZ6nUaRLMaI4W1zc9HlF7ck8UZOZs3F/0CUoTTOAzfXtn6e/D99/9SU17Au4TDafzVlOp5a6PhsvadYQjfVssZEYgW8zDFrhyYYuKrqkyaICLOaX5/PV5vpuvVr7nW4bYHFtWTLR3T5N0mdNtNLoDz/29XMao2gEfV5K4hWOIBSWf0YBGIwZsvb56+Pvp38EgiWCgVgoHPEFoGQSzII7Hs8p1FSUCVpv4k24VQYpGOoSGNvrNXAEaFUb0xa8JPGH+/vJcBp2e2PBbbPJYTfZwdSx2+Eq5suioLdqzWapWC9mKxBIVd6V0ilPKAggMM1gHBaJYiEPubuT8XrNJrvfG7SZHZmjRDy2D0FlDCUqxWwhHc8d+REU5lAqGdndfhkC0m8pqNzpJo+JHT/id8NuR9DisJqd1i3Hq0DI43TvRfdTieRRdDubPjg5OSxUS/E3uXCxiAoSsPc6vh+JdmC0cXgIOqw5l91nsVlMNjNgDri9TrvLvGX1ul4EPZ5IyBcJeesoHs+A/lgcpoT/PvSexpIYz64AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1485   &gt;&lt;/span&gt;
         1486   &lt;img
         1487         class=&quot;gatsby-resp-image-image&quot;
         1488         alt=&quot;Firetruck&quot;
         1489         title=&quot;Firetruck&quot;
         1490         src=&quot;/static/77fe5d6a0fb7c7f56ef4920d22c1efa9/a6d36/firetruck.png&quot;
         1491         srcset=&quot;/static/77fe5d6a0fb7c7f56ef4920d22c1efa9/222b7/firetruck.png 163w,
         1492 /static/77fe5d6a0fb7c7f56ef4920d22c1efa9/ff46a/firetruck.png 325w,
         1493 /static/77fe5d6a0fb7c7f56ef4920d22c1efa9/a6d36/firetruck.png 650w,
         1494 /static/77fe5d6a0fb7c7f56ef4920d22c1efa9/e548f/firetruck.png 975w,
         1495 /static/77fe5d6a0fb7c7f56ef4920d22c1efa9/3c492/firetruck.png 1300w,
         1496 /static/77fe5d6a0fb7c7f56ef4920d22c1efa9/6c2de/firetruck.png 1334w&quot;
         1497         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1498         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1499         loading=&quot;lazy&quot;
         1500       /&gt;
         1501     &lt;/span&gt;&lt;/p&gt;
         1502 &lt;p&gt;Anyway, this season&apos;s Dr. Who told me not to worry about the blood. &quot;It&apos;s probably hemorrhoids.&quot;&lt;/p&gt;
         1503 &lt;p&gt;&lt;em&gt;WTF is a hemorrhoid?&lt;/em&gt; I wondered to myself as I said to him, &quot;Sounds good.&quot; Googled it after, and I learned that it&apos;s a vein that pokes out a little in your butt and doesn&apos;t really want to be poking out a little, so it bleeds. Seems like a thing that can happen, so I more or less returned to regularly scheduled programming and just dealt with the occasional poopy-red wipe. This doc also said I probably don&apos;t need to come for a physical for a few years, that annual physicals are a myth, dry land in a water world.&lt;/p&gt;
         1504 &lt;p&gt;Fast-forward to 2020. Everything sucks. And the bloody wipes are making a resurgence. Because, of course, they are. About four months ago I noticed that my first poop of the day (I usually go 2x) would have this purple-red streak embedded in it, like a racing stripe from hell. And it would happen almost without fail every single morning. That just didn&apos;t seem right, no matter what Doctors of Physicals Past told me. And then one morning I felt like I had actual blood dripping from my butt.&lt;/p&gt;
         1505 &lt;p&gt;Now I consider myself to be a mostly healthy person. I eat fairly well (even though I enjoy the occasional sourdough loaf and hazy IPA), I run and bike and hike regularly, I ran an IRONMAN in 2016 and a few ultramarathons since. I also don&apos;t like being sick (who does?). But, like with most things in my life, I want to be &quot;good&quot; at health. An ideal dental appointment for me would go something like this, &quot;Wow, Charlie, these are the straightest, whitest teeth we&apos;ve ever seen. We&apos;d like you to come in and be the model for our Instagram ads and also be our 3D teeth model for dentures. Congratulations. Here&apos;s &lt;em&gt;two&lt;/em&gt; free toothbrushes. You also never need to floss again.&quot;&lt;/p&gt;
         1506 &lt;p&gt;Anything that deviates from that ideal makes me squirm and I do think I can fix anything. For what it&apos;s worth I still believe that, if I ever encounter a blue flower on a mountain-top, I&apos;m only a few months of mystical training away from becoming Batman. I already have the cape (it&apos;s actually a Harry Potter robe, but, hey, I&apos;m scrappy).&lt;/p&gt;
         1507 &lt;p&gt;At the same time, I counterweight this with a mild touch of hypochondria. I&apos;ll see the poison oak in the mistletoe, so to speak. In this case it was a gift.  I googled again for &lt;em&gt;stool, bloody stool&lt;/em&gt; and the dreaded &lt;em&gt;colon cancer&lt;/em&gt; came back. Last time, I averted my eyes from these search results. But the bloody racing stripes weren&apos;t going away. I needed to get myself checked out.&lt;/p&gt;
         1508 &lt;p&gt;Then I remembered an email from work: I was eligible for a &lt;a href=&quot;http://members.onemedical.com/membership_referrals?code=cha0014&amp;#x26;source=sa&quot;&gt;OneMedical&lt;/a&gt; membership. I knew there was hype about OneMedical, certainly I&apos;ve seen the billboards, but I still wasn&apos;t exactly sure what they were all about. It had been a few years since my last physical, as you know, so I was primary-care-less, with a bloody problem on my hands. I downloaded the OneMedical app, uploaded a photo of my insurance card, beep-boop, and I&apos;ve got an appointment with a new doc in a few days in one of their nearby clinics. Already, I loved the experience - I could text my questions any time (see &lt;em&gt;foot wart&lt;/em&gt; above). I&apos;d describe OneMedical as a network of clinics with an app for scheduling appointments and texting with a doc. Sure, ZocDoc kinda does the scheduling thing, but Zocdoc feels like you&apos;re sifting through the classifieds. Gimme some non-user-generated-ratings-based curation, please. &lt;/p&gt;
         1509 &lt;p&gt;So, I met with the doc, liked him a lot, discussed my bloody poops, and sheepishly asked if he&apos;d be my new primary care. He agreed, and he also referred me to UCSF for a colonoscopy. Sure, I&apos;m young, and it&apos;s probably hemorrhoids, we agreed, but it&apos;s the only way to be sure.&lt;/p&gt;
         1510 &lt;p&gt;After some jiggling about with the referral documentation, we finally get the colonoscopy scheduled for a few weeks later on Sept 9th.&lt;/p&gt;
         1511 &lt;p&gt;Then, on August 28th, &lt;a href=&quot;https://en.wikipedia.org/wiki/Chadwick_Boseman&quot;&gt;Chadwick Boseman&lt;/a&gt; died of complications from colon cancer.&lt;/p&gt;
         1512 &lt;p&gt;I wasn&apos;t freaked out. Okay, yes, I was very freaked out.&lt;/p&gt;
         1513 &lt;h2&gt;Colonoscopies are not bad&lt;/h2&gt;
         1514 &lt;p&gt;What&apos;s a colonoscopy? It&apos;s a surgical procedure where the doctor goes all the way up your butt to see what&apos;s going on in there. You are completely knocked out, so you feel nothing. The only thing you need to do is what we in the business like to call &quot;bowel prep.&quot;&lt;/p&gt;
         1515 &lt;p&gt;Allow me to describe bowel prep: the day before the procedure, you will poop your ever-living guts out for a few hours until you are clean-as-a-whistle, stem to stern. They&apos;ll give you a prescription for a gigantic jug of clear laxatives that you&apos;ll drink every 15 minutes or so for a few hours. In today&apos;s toilet-paper hoarding economy, I&apos;d make sure that you are stocked up, because this gets messy.&lt;/p&gt;
         1516 &lt;p&gt;Other then the laxatives, you&apos;re allowed to drink clear liquids - which is confusing because you can enjoy such clear liquids as black coffee, Gatorade, broth, even green jello.&lt;/p&gt;
         1517 &lt;p&gt;But that&apos;s it. Easy. I watched Stranger Things season 3 again during my bowel prep day. Might not have been the best choice, as I intermittently had to pause Netflix to contribute my own liquified form of the Mind-Flayer, but it got the job done, and I cried my way thru Dustin and Suzie&apos;s hymn to childhood, again, as expected.&lt;/p&gt;
         1518 &lt;p&gt;Okay, next, I woke up on September 9th. My appointment is around 2 PM. Normal day, right?&lt;/p&gt;
         1519 &lt;p&gt;&lt;span
         1520       class=&quot;gatsby-resp-image-wrapper&quot;
         1521       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1522     &gt;
         1523       &lt;span
         1524     class=&quot;gatsby-resp-image-background-image&quot;
         1525     style=&quot;padding-bottom: 66.87116564417178%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUBAgT/xAAVAQEBAAAAAAAAAAAAAAAAAAACBP/aAAwDAQACEAMQAAABuJ4np3C8R//EABkQAAMBAQEAAAAAAAAAAAAAAAABAhETA//aAAgBAQABBQLojpJXrMvRMw//xAAXEQEAAwAAAAAAAAAAAAAAAAAAAhIT/9oACAEDAQE/AdFpP//EABcRAQADAAAAAAAAAAAAAAAAAAABEhP/2gAIAQIBAT8BzVh//8QAFxABAQEBAAAAAAAAAAAAAAAAEQAgMf/aAAgBAQAGPwK7A4//xAAZEAACAwEAAAAAAAAAAAAAAAAAAREhYUH/2gAIAQEAAT8h3Q2VAjBNtkxvB2P/2gAMAwEAAgADAAAAEAAv/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxCh0w//xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8Qhk3/xAAaEAEBAQEBAQEAAAAAAAAAAAABEQAhQTFx/9oACAEBAAE/EJcdGUl8uPyRWp/Lninx3NAB49xqqrv/2Q==&apos;); background-size: cover; display: block;&quot;
         1526   &gt;&lt;/span&gt;
         1527   &lt;img
         1528         class=&quot;gatsby-resp-image-image&quot;
         1529         alt=&quot;sf&quot;
         1530         title=&quot;sf&quot;
         1531         src=&quot;/static/dfe0aae59da7dc3715e8f289c1ae8f7b/6aca1/sf.jpg&quot;
         1532         srcset=&quot;/static/dfe0aae59da7dc3715e8f289c1ae8f7b/d2f63/sf.jpg 163w,
         1533 /static/dfe0aae59da7dc3715e8f289c1ae8f7b/c989d/sf.jpg 325w,
         1534 /static/dfe0aae59da7dc3715e8f289c1ae8f7b/6aca1/sf.jpg 650w,
         1535 /static/dfe0aae59da7dc3715e8f289c1ae8f7b/8e1fc/sf.jpg 900w&quot;
         1536         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1537         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1538         loading=&quot;lazy&quot;
         1539       /&gt;
         1540     &lt;/span&gt;&lt;/p&gt;
         1541 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;A strange, apocalyptic orange-red sky looms over the Bay Area. Here&amp;#39;s what you need to know.&lt;br&gt;Read more: &lt;a href=&quot;https://t.co/JxpYSnUPG9&quot;&gt;https://t.co/JxpYSnUPG9&lt;/a&gt; &lt;a href=&quot;https://t.co/ZPOj4X3jRg&quot;&gt;pic.twitter.com/ZPOj4X3jRg&lt;/a&gt;&lt;/p&gt;&amp;mdash; San Francisco Chronicle (@sfchronicle) &lt;a href=&quot;https://twitter.com/sfchronicle/status/1303799596515172352?ref_src=twsrc%5Etfw&quot;&gt;September 9, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
         1542 &lt;p&gt;Nope.&lt;/p&gt;
         1543 &lt;p&gt;I decide to walk over to the UCSF Parnassus building in the creepy Mars firelight, imagining I&apos;m the last man on Earth (and hoping I don&apos;t step on my reading glasses). Carly makes a plan to pick me up in a few hours in our car.&lt;/p&gt;
         1544 &lt;p&gt;As expected, the procedure was painless. My only bit of further colonoscopy advice here is to ALWAYS bring a book with you, to every single medical appointment you have, because there&apos;s always going to be some sort of delay or waiting room.&lt;/p&gt;
         1545 &lt;p&gt;An hour or so later, I woke up feeling the feels of that post-anesthesia giddiness. Except no one else was happy. Carly was in the room, a surprise to me. And my doctor looked quite serious.&lt;/p&gt;
         1546 &lt;p&gt;In addition to two small polyps (which she removed), my colonoscopy surgeon found a tumor in my sigmoid colon. At this point, I don&apos;t know a sigmoid colon from a semi-colon, but I knew it wasn&apos;t good news. Go 2020!&lt;/p&gt;
         1547 &lt;p&gt;Despite the odds (my youth, my health), I now had cancer. Well, I probably had it for awhile, but we just found out I had it.&lt;/p&gt;
         1548 &lt;p&gt;My doc said I&apos;d need to meet with &lt;a href=&quot;https://www.ucsfhealth.org/clinics/center-for-colorectal-surgery&quot;&gt;UCSF&apos;s colorectal surgery team&lt;/a&gt;, and I&apos;d also need to get CT scans (&quot;cat scans&quot;) to see if the cancer had spread anywhere else in my body.&lt;/p&gt;
         1549 &lt;p&gt;And so began one of the worst weeks of our lives.&lt;/p&gt;
         1550 &lt;h2&gt;A brief family history&lt;/h2&gt;
         1551 &lt;p&gt;Let&apos;s talk about the odds for a moment.&lt;/p&gt;
         1552 &lt;p&gt;&lt;span
         1553       class=&quot;gatsby-resp-image-wrapper&quot;
         1554       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1555     &gt;
         1556       &lt;span
         1557     class=&quot;gatsby-resp-image-background-image&quot;
         1558     style=&quot;padding-bottom: 57.05521472392638%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAADC0lEQVQozzWSf2iUdRzHv/fcPb/vnttzt9tzd7vrdrfbvLlz7Dan6FxbKdam27R24aR0XswmJf5gUFsoSytmGpaI6R9hEFHOkigbo8EImUSQtQwSCpZ/LHIzgooI6o9Xj6P+eP/14f3jw/st+teaPLDG5sq7r/PX3/+w9OvPzM7dYO7mFCO7O9jR3c3xF0/x2NbNtNVYvHNmhJOj7WzrcKhyNJKOgaEpeIQHVVUQrat0zr22j+npj7izuMT3P3zskjYy+niGugpBKig4daDE9YlJJo6Pcnp/Nz0dGeK2l3BAJWBq6K6gpmsoLsQzu1fx7dwUf/z5O4u/3ObGtRFOHEjTmvPjlVSeaCxjZuwIP329xJ1bixwb3E7cL3DKdCxTwbZUYk6AZDqOoqqIM8+vZOLNXczPf8nCwhdMXh4kGpAI6Ap+2Ut/g01xXROXXxrns/c+4a2T4xiqhB0K4TdNFxpBVzSXrSToNxBnhys5fSjGzIdHmf9xkukP9tGYqyfkl0gHvTzbFuVwc4Lze4rcvfUbU29fwdZkFFlZhin7UBWZWLICw3ATDmwKsrZa4rnBJr65PsznVwfYUMiTCkk0RFWebjIoJjwM3b+ehWvf8erRcYQQaIqCoRskMlmC5SEa1q/GilcgAqbqOkgUt9bz1ewYMxObaS+YWO7Lti7TXK6wyS3nhZ5t3J65yfaePlfQg+63XJ5KJFOLFrQI3ZfAvyKPiNgaqahCX2eWc8fWcGI4S10mjOTxoakaYUNnpSG4ePgQs+9/SiKVXU5oVrdgVDViFx7CrFqBGSuntqsT4YTU5Q11tSfJJjRkSSwT/kc+FeXJQoCDfb3kHj2I9ODQfzcFOZRCdaox6mrQHYuyRByhKT5kn4yp+hCGQ1PLOnb1F+ntepjW1jb2PrWXi6+MMbBzJ48cucDGHUP0bumiVCoRSeWQrBhaOo2aTiDfG7bsvdeSO0zXVS50E8lvINdZoqZ/hFjYJp9v4I1LV9n/8llaVjeTjISpydZSX5ejLFKJrzyDYgRQYw6yrvMvYkGDOFaZn64AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1559   &gt;&lt;/span&gt;
         1560   &lt;img
         1561         class=&quot;gatsby-resp-image-image&quot;
         1562         alt=&quot;odds&quot;
         1563         title=&quot;odds&quot;
         1564         src=&quot;/static/384a14f31566523d7bbc5cfb061fc8fe/a6d36/odds.png&quot;
         1565         srcset=&quot;/static/384a14f31566523d7bbc5cfb061fc8fe/222b7/odds.png 163w,
         1566 /static/384a14f31566523d7bbc5cfb061fc8fe/ff46a/odds.png 325w,
         1567 /static/384a14f31566523d7bbc5cfb061fc8fe/a6d36/odds.png 650w,
         1568 /static/384a14f31566523d7bbc5cfb061fc8fe/e548f/odds.png 975w,
         1569 /static/384a14f31566523d7bbc5cfb061fc8fe/91f10/odds.png 992w&quot;
         1570         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1571         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1572         loading=&quot;lazy&quot;
         1573       /&gt;
         1574     &lt;/span&gt;&lt;/p&gt;
         1575 &lt;p&gt;We&apos;ve already discussed my vigorous, proto-Batman level of health. And how I&apos;m a fresh-faced, occasionally-bearded, 34 year old with the heart of a child and the strength of a chimpanzee (no, that&apos;s a &lt;a href=&quot;https://en.wikipedia.org/wiki/Humanzee&quot;&gt;humanzee&lt;/a&gt;).&lt;/p&gt;
         1576 &lt;p&gt;Speaking of unfortunate genetics, it turns out that I have some family history of colon cancer. &lt;/p&gt;
         1577 &lt;p&gt;Here&apos;s the scoop: my pops (that&apos;s cool talk for Dad) has had benign (non-cancerous) polyps in his previous colonoscopies. What&apos;s a poylp? It&apos;s a little growth thingy in your colon that may evolve into a tumor. Just like how a Charmander becomes a Charmeleon, polyps can grow bigger and more serious with more destructive power. Polyps are usually just snipped out during your colonoscopy and sent off for pathology (aka to see if they have cancer in them). Most do not. This is the case with my dad&apos;s polyp experience. Even though none of his have been cancerous, he still needs to go in for colonoscopies more regularly than those who don&apos;t have polyps.&lt;/p&gt;
         1578 &lt;p&gt;My own tumor began as a lowly polyp, perhaps some ten years ago. We don&apos;t know exactly. But if I&apos;d had a colonoscopy ten years ago, or five years ago, they might have seen it and snipped it out and you wouldn&apos;t be reading this.&lt;/p&gt;
         1579 &lt;p&gt;If you go further up the Harrington tree, you&apos;ll learn that my dad&apos;s aunt (my father&apos;s mother&apos;s sister) died of colon cancer in her early 60s. And his other aunt (same side, same family) died of colon cancer in her 80s. Two factoids that I had no idea about until I asked my parents for their help filling out one of the many UCSF cancer history surveys. Also, on my mom&apos;s side, my grandfather&apos;s mother (my great-grandmother, who I never met) probably had colon cancer.&lt;/p&gt;
         1580 &lt;p&gt;So, colon cancer is bouncing around in my family tree. But neither of my parents have it, and none of my grandparents had it, which I suppose is good. That said, I learned that my grandparents did have &lt;em&gt;other&lt;/em&gt; sorts of cancers.&lt;/p&gt;
         1581 &lt;p&gt;Getting confusing, right? I cannot stress this enough: &lt;strong&gt;Learn your family&apos;s medical history and write it down in a note on your phone. You&apos;ll be asked for this info 10,000 times before every single appointment. But, more importantly, your family history can be a signal to you and your docs whether are &quot;higher-risk&quot; for certain conditions.&lt;/strong&gt;&lt;/p&gt;
         1582 &lt;p&gt;I just didn&apos;t know about any of this. I knew there were some heart attacks in there, but not really about any of the cancer stuff. Ideally, each person would be given some sort of family history report when they&apos;re born or when they turn 18 or when they get their first Nintendo.&lt;/p&gt;
         1583 &lt;p&gt;But that&apos;s just it. You don&apos;t get health info automatically. There&apos;s no one, other than you, to own your medical health story. &lt;strong&gt;You must become your own health advocate.&lt;/strong&gt; Spoiler alert, but this is the number one lesson I learned during this entire cancer experience. Health literacy is just as important as financial literary or literacy literacy.&lt;/p&gt;
         1584 &lt;p&gt;There are tools to help, and I&apos;m still digging into them now. I&apos;m much more excited now by the Apple Health stuff on iOS. I&apos;m hoping it can become some sort of private, secure repository for my health data that I carry with me. For example, how many of you, dear readers, know your blood type? There&apos;s all sorts of little info-nuggets that you can track down NOW to pay-it-forward for FUTURE you. Cause, ain&apos;t nobody else gonna. It&apos;s like a scavenger hunt. Okay, enough proselytizing, dude.&lt;/p&gt;
         1585 &lt;h2&gt;Stage-wise limbo&lt;/h2&gt;
         1586 &lt;p&gt;Back to our story, we&apos;ve just learned that I have a cancerous tumor up my butt and we&apos;ve also filled out a few frightening family history reports. This is where UCSF kicks it into high gear (and, my goodness, do I love UCSF? Yes, yes I do. They are absolutely, amazingly wonderful, competent, and life-changing!).&lt;/p&gt;
         1587 &lt;p&gt;I&apos;m now starting to get booked for all sorts of appointments, starting with the ones previously mentioned: (1) CT scans of my abdomen and chest and (2) then the consult with the colorectal surgeon.&lt;/p&gt;
         1588 &lt;p&gt;Because, as I later learned from my colorectal surgeon (who is the best!), when colon cancer spreads, it usually does the evolution thing from cancerous polyp (Stage 1) into tumor (Stage 2). After that, it can break through the wall of the colon into the nearby lymph nodes (Stage 3). Finally, it becomes (Stage 4) if it spreads to other organs, the first often being the liver and the lungs. At least, this is how I understand the various stages. I&apos;m sure I&apos;m missing some technical details and nuance. When &lt;a href=&quot;https://www.nytimes.com/2020/08/28/movies/chadwick-boseman-dead.html&quot;&gt;reading about Chadwick Boseman&lt;/a&gt;, you&apos;ll learn that he was initially diagnosed with Stage 3 colon cancer in 2016, which eventually became Stage 4. In sum, you want your stage to be as low as possible.&lt;/p&gt;
         1589 &lt;p&gt;At this point, pre-CT scan, Carly and I have no idea what stage I&apos;m at. Well, we do know that I&apos;m somewhere from 2 - 4. These appointments are going to help us understand where I&apos;m at. Specifically, the CT scans will tell us if I&apos;m Stage 4 or not.&lt;/p&gt;
         1590 &lt;p&gt;Carly and I are in a daze for most of the next week. And so are our parents and our siblings. I honestly can&apos;t remember how many friends we told at this point, I know a few, but not that many. I didn&apos;t know what to say or feel.&lt;/p&gt;
         1591 &lt;p&gt;Much like the South Park lament &quot;The Simpsons did it!&quot;, there&apos;s usually an &lt;a href=&quot;https://xkcd.com/1048/&quot;&gt;xkcd&lt;/a&gt; for whatever you&apos;re feeling or thinking:&lt;/p&gt;
         1592 &lt;p&gt;&lt;img src=&quot;https://imgs.xkcd.com/comics/emotion.png&quot; alt=&quot;emotions&quot;&gt;&lt;/p&gt;
         1593 &lt;p&gt;As a wannabe stoic, I allow my negative visualization to run rampant. I&apos;m thinking of the possibility that I&apos;ve got only a few years (months?) left to live.&lt;/p&gt;
         1594 &lt;p&gt;My CT scans are scheduled for Thursday afternoon and the meeting with the surgeon is Friday morning. Between then and now, we have the horrible Internet to do horrible searches and we have the two-page summary printout of my colonoscopy, replete with some terrifying photos of the tumor. The tumor looks like a cross between a tadpole and an eyeball (two things that I&apos;d normally love). I don&apos;t like looking at this picture, at all, but the two-page summary somehow keeps traveling around our house, and no matter where I look, I see the pink tadpole eye staring back at me, and I wonder, &quot;Are you my death sentence?&quot;&lt;/p&gt;
         1595 &lt;h3&gt;The sound of silence&lt;/h3&gt;
         1596 &lt;p&gt;On Thursday, Carly and I walk over to the UCSF CT scanning place. It&apos;s slightly less hostile to human life outside today, so that&apos;s nice. After checking in with the front desk, I quickly pass through the first waiting room into the second waiting room. There&apos;s always a second waiting room.&lt;/p&gt;
         1597 &lt;p&gt;It&apos;s here I realize that the &lt;em&gt;sound&lt;/em&gt; of a major health issue is rapidly opening and shutting hospital doors. I scribble this pithy witicism into the back cover of my paperback copy of &lt;a href=&quot;https://www.amazon.com/gp/product/0061339202/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0061339202&amp;#x26;linkId=b76eed264fa980c5471f8c0cc351b2a1&quot;&gt;Flow&lt;/a&gt; and wait my turn with the CT machine. I&apos;m given two bottles of &quot;contrast&quot; provided by reknowned-drink-maker General Electric to drink. These iodine cocktails will help the machine see my inside stuff. They taste like you&apos;re drinking printer ink. They&apos;re not that bad at all. Everyone else in here is at least fifty years old. I decide to do a five minute wall-sit to prove my vigor. Finally, I&apos;m called back to the machine.&lt;/p&gt;
         1598 &lt;p&gt;The CT machine looks like a coldsleep chamber crossed with a Weyland Corporation interdimensional portal. It&apos;s over in less than a minute.&lt;/p&gt;
         1599 &lt;h3&gt;Plan of attack&lt;/h3&gt;
         1600 &lt;p&gt;The scans are done and now it&apos;s up to the radiologist to read them. I&apos;m sure some neat TensorFlow or PyTorch deep learning computer vision model could help here, but I don&apos;t have access to the dataset.&lt;/p&gt;
         1601 &lt;p&gt;The next morning we drive over to the &lt;a href=&quot;https://www.ucsfhealth.org/clinics/center-for-colorectal-surgery&quot;&gt;UCSF Center for Colorectal Surgery&lt;/a&gt;. It&apos;s in the beautiful ghost town of the greater Chase Center-Mission Bay area. I look up at the sun before heading in, thinking, &quot;The next time I see you, ball of gas burning billions of miles away (quoth Pumbaa), we&apos;ll know the CT results and we&apos;ll know the plan.&quot;&lt;/p&gt;
         1602 &lt;p&gt;When I see the sun again, we do.&lt;/p&gt;
         1603 &lt;p&gt;The CT scans were clean. There&apos;s no sign that the cancer spread to other organs, ruling out Stage 4. This is the best news ever.&lt;/p&gt;
         1604 &lt;p&gt;The second best news we hear is that the tumor is in a relatively excellent spot for surgery. After an impromptu rectal exam that morning (hello!) to make sure there was no cancer in the rectum, my surgeon gives us an overview of the situation and a plan of attack.&lt;/p&gt;
         1605 &lt;p&gt;He&apos;s going to remove my entire &lt;a href=&quot;https://en.wikipedia.org/wiki/Sigmoid_colon&quot;&gt;sigmoid colon&lt;/a&gt; (which is about a foot long), and then simply reattach the rectum to the rest of the colon. And he&apos;s going to do this all via &quot;robotic surgery&quot; (using the WED Treadwell-like &lt;a href=&quot;https://en.wikipedia.org/wiki/Da_Vinci_Surgical_System&quot;&gt;da Vinci Surgical System&lt;/a&gt;), so the scars will be teeny and the recovery much easier.&lt;/p&gt;
         1606 &lt;p&gt;We&apos;ll only be able to tell if I&apos;m Stage 2 or Stage 3 post-surgery. He&apos;s planning to remove the nearby lymph nodes and a pathology report will tell us if they&apos;re cancerous. If they&apos;re positive, it&apos;s Stage 3.&lt;/p&gt;
         1607 &lt;p&gt;But, either way, we&apos;re getting this thing out of my butt, pronto.&lt;/p&gt;
         1608 &lt;p&gt;Carly and I have a plan. We&apos;re planners. We needed this. A bit of our haze is lifted as we head into our next agenda item.&lt;/p&gt;
         1609 &lt;h2&gt;Gettin&apos; hitched&lt;/h2&gt;
         1610 &lt;p&gt;We got married (eloped, both technically and social-distanced-ly) on Sept. 30th!&lt;/p&gt;
         1611 &lt;p&gt;&lt;span
         1612       class=&quot;gatsby-resp-image-wrapper&quot;
         1613       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1614     &gt;
         1615       &lt;span
         1616     class=&quot;gatsby-resp-image-background-image&quot;
         1617     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAedXdblxoI6ERcQD/8QAHBAAAgICAwAAAAAAAAAAAAAAAAIBAwRBERIh/9oACAEBAAEFApWYZfDkSGse5ei7pMhTf//EABYRAQEBAAAAAAAAAAAAAAAAABABMf/aAAgBAwEBPwEuH//EABURAQEAAAAAAAAAAAAAAAAAABAB/9oACAECAQE/ASH/xAAbEAABBQEBAAAAAAAAAAAAAAABAAIQESExcf/aAAgBAQAGPwITRvi9yHJjrOx//8QAGhABAAMBAQEAAAAAAAAAAAAAAQARITFBcf/aAAgBAQABPyFYR0lUEdMvIB0xBRspSuR60ho+SegL23PImp//2gAMAwEAAgADAAAAEFPoQv/EABYRAQEBAAAAAAAAAAAAAAAAAAEgIf/aAAgBAwEBPxAMWD//xAAYEQACAwAAAAAAAAAAAAAAAAAAEBExYf/aAAgBAgEBPxDCCy//xAAgEAEAAgICAQUAAAAAAAAAAAABABEhQTFxUWGBkaGx/9oACAEBAAE/EPCtaZOzWoml+22A93zASRFznGPuobgAV8N94ngmYDjQF+sMtoUYAHA1zLkt5f2f/9k=&apos;); background-size: cover; display: block;&quot;
         1618   &gt;&lt;/span&gt;
         1619   &lt;img
         1620         class=&quot;gatsby-resp-image-image&quot;
         1621         alt=&quot;wedding&quot;
         1622         title=&quot;wedding&quot;
         1623         src=&quot;/static/ee3c8142b9d95fa6818f729380100569/6aca1/wedding.jpg&quot;
         1624         srcset=&quot;/static/ee3c8142b9d95fa6818f729380100569/d2f63/wedding.jpg 163w,
         1625 /static/ee3c8142b9d95fa6818f729380100569/c989d/wedding.jpg 325w,
         1626 /static/ee3c8142b9d95fa6818f729380100569/6aca1/wedding.jpg 650w,
         1627 /static/ee3c8142b9d95fa6818f729380100569/bf093/wedding.jpg 888w&quot;
         1628         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1629         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1630         loading=&quot;lazy&quot;
         1631       /&gt;
         1632     &lt;/span&gt;&lt;/p&gt;
         1633 &lt;p&gt;Look at those oblivious smiles. Wait -- we aren&apos;t oblivious, I have cancer. We just love eachother.&lt;/p&gt;
         1634 &lt;p&gt;Originally slated for 2019, then after bouncing around in 2020, our cute elopement threaded a very small needle with a teeny ceremony and it was beautiful and wonderful and just what we hoped for.&lt;/p&gt;
         1635 &lt;p&gt;Now, onto our first act as a married couple: my surgery on Monday, Oct 12th (and another round of bowel prep the day before).&lt;/p&gt;
         1636 &lt;h2&gt;Surgery ain&apos;t no joke&lt;/h2&gt;
         1637 &lt;p&gt;I don&apos;t have much to add about the surgery itself.  I was there. But I don&apos;t remember anything. Thank goodness. I also haven&apos;t yet watched any YouTubes of how the da Vinci robot works. I didn&apos;t want to know before the surgery, and I&apos;m not quite ready now to see it.&lt;/p&gt;
         1638 &lt;p&gt;I did remember to bring a book, though:&lt;/p&gt;
         1639 &lt;p&gt;&lt;span
         1640       class=&quot;gatsby-resp-image-wrapper&quot;
         1641       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1642     &gt;
         1643       &lt;span
         1644     class=&quot;gatsby-resp-image-background-image&quot;
         1645     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMCBP/EABYBAQEBAAAAAAAAAAAAAAAAAAIBAP/aAAwDAQACEAMQAAAB0h0BZTTdMU1YCj//xAAcEAACAQUBAAAAAAAAAAAAAAABAgMAERIhIjL/2gAIAQEAAQUCkBao8hGDpz0W7ncBwtgYsjcNVtuTinn/xAAYEQACAwAAAAAAAAAAAAAAAAAAEQECEP/aAAgBAwEBPwEZNVn/xAAXEQADAQAAAAAAAAAAAAAAAAAAEBES/9oACAECAQE/ASGqv//EABwQAAICAgMAAAAAAAAAAAAAAAARARADITFBUf/aAAgBAQAGPwLXU+iRs4IuZaQ1WWv/xAAbEAADAQEBAQEAAAAAAAAAAAAAAREhMZFBcf/aAAgBAQABPyGGtU/Ru6l5pKE0Xw1NnkzpEvsFSXrLQ6FWuwknvolt8SEwf//aAAwDAQACAAMAAAAQuCFA/8QAFxEAAwEAAAAAAAAAAAAAAAAAARARIf/aAAgBAwEBPxCbUIFX/8QAGBEBAAMBAAAAAAAAAAAAAAAAARARIUH/2gAIAQIBAT8QBquRDgj/xAAeEAEBAAICAgMAAAAAAAAAAAABEQAhMVFBoWFx0f/aAAgBAQABPxCdrQigCSU+ZhtbcD2Fde8Egg0jaY2kJGVK96wtsI4LriYE8CqeclgrzyrjgDCvJiKCsNzRo9Yp1q9/3BocAfWFx5//2Q==&apos;); background-size: cover; display: block;&quot;
         1646   &gt;&lt;/span&gt;
         1647   &lt;img
         1648         class=&quot;gatsby-resp-image-image&quot;
         1649         alt=&quot;book&quot;
         1650         title=&quot;book&quot;
         1651         src=&quot;/static/a3ae521c3ee36a8aad866c867be69fb0/6aca1/musashi.jpg&quot;
         1652         srcset=&quot;/static/a3ae521c3ee36a8aad866c867be69fb0/d2f63/musashi.jpg 163w,
         1653 /static/a3ae521c3ee36a8aad866c867be69fb0/c989d/musashi.jpg 325w,
         1654 /static/a3ae521c3ee36a8aad866c867be69fb0/6aca1/musashi.jpg 650w,
         1655 /static/a3ae521c3ee36a8aad866c867be69fb0/7c09c/musashi.jpg 975w,
         1656 /static/a3ae521c3ee36a8aad866c867be69fb0/01ab0/musashi.jpg 1300w,
         1657 /static/a3ae521c3ee36a8aad866c867be69fb0/9568a/musashi.jpg 3024w&quot;
         1658         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1659         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1660         loading=&quot;lazy&quot;
         1661       /&gt;
         1662     &lt;/span&gt;&lt;/p&gt;
         1663 &lt;p&gt;And, then, after glimpsing my many-limbed robotic friend in the surgery room, it&apos;s lights out.&lt;/p&gt;
         1664 &lt;p&gt;The next thing I know it&apos;s five hours later and I&apos;m in a hospital bed and calling Carly to give her my room number. The nurses in the recovery area are amazing. I&apos;m hooked up to an IV and they&apos;re monitoring my &quot;ins&quot; and my &quot;outs&quot; (my foods and my pees and poops). They do this every four hours, so you&apos;re not exactly going to get a perfect night&apos;s sleep here, but it&apos;s great to know that they&apos;re paying good attention to you.&lt;/p&gt;
         1665 &lt;p&gt;The big goal for me for the next 24 hours is to walk around. Being the Big Hero 6 that I am, I try to walk at 9 PM on the day of my surgery (which concluded around 6 PM), and I stand up, but my heart starts racing, so I slowly plop back into bed. Then, at midnight, my nurse helps my try again, and I do it. I shuffle around the hallway like a zombie, wheeling along my IV stand. It&apos;s a huge win. I end up walking six more times that day, between many Breath of the Wild sessions and most of The Umbrella Academy Season 2.&lt;/p&gt;
         1666 &lt;p&gt;Sure, my guts feel like someone took a blender to them, but I&apos;m in great spirits, with incredible support from the UCSF team, Carly, and my mom.&lt;/p&gt;
         1667 &lt;p&gt;Side note that IVs are interesting. They&apos;re like open ports into your body, allowing the medical team to either remove or add fluids. I didn&apos;t expect that they&apos;d just keep these ports open during your hospital stay, but they do. I guess that makes sense.&lt;/p&gt;
         1668 &lt;p&gt;&lt;span
         1669       class=&quot;gatsby-resp-image-wrapper&quot;
         1670       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1671     &gt;
         1672       &lt;span
         1673     class=&quot;gatsby-resp-image-background-image&quot;
         1674     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAgME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAeFtlIVxeG//xAAaEAEBAAIDAAAAAAAAAAAAAAABAgASAyEi/9oACAEBAAEFApndYIzpyHQvk8tq/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQMBAT8Bi4//xAAWEQEBAQAAAAAAAAAAAAAAAAAAAhL/2gAIAQIBAT8BZp//xAAcEAACAQUBAAAAAAAAAAAAAAAAARECMTJBUWH/2gAIAQEABj8CUU7PDFMhHS5//8QAGhAAAwEBAQEAAAAAAAAAAAAAAAERIXExQf/aAAgBAQABPyHePFZmS/BNOiwVoq+CMPSL5D//2gAMAwEAAgADAAAAEGg//8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAwEBPxAQmkjxv//EABcRAQEBAQAAAAAAAAAAAAAAAAEAESH/2gAIAQIBAT8Q0RtOl//EAB4QAQACAgIDAQAAAAAAAAAAAAEAESFBMVFhcYGh/9oACAEBAAE/EKA1oKkru4AJps5Xef22O8G2T14g3mGTddfJRu17aoxqOsTjqf/Z&apos;); background-size: cover; display: block;&quot;
         1675   &gt;&lt;/span&gt;
         1676   &lt;img
         1677         class=&quot;gatsby-resp-image-image&quot;
         1678         alt=&quot;port&quot;
         1679         title=&quot;port&quot;
         1680         src=&quot;/static/571a4b7e6bbeb991a19b7f248c5f5e20/6aca1/port.jpg&quot;
         1681         srcset=&quot;/static/571a4b7e6bbeb991a19b7f248c5f5e20/d2f63/port.jpg 163w,
         1682 /static/571a4b7e6bbeb991a19b7f248c5f5e20/c989d/port.jpg 325w,
         1683 /static/571a4b7e6bbeb991a19b7f248c5f5e20/6aca1/port.jpg 650w,
         1684 /static/571a4b7e6bbeb991a19b7f248c5f5e20/7c09c/port.jpg 975w,
         1685 /static/571a4b7e6bbeb991a19b7f248c5f5e20/01ab0/port.jpg 1300w,
         1686 /static/571a4b7e6bbeb991a19b7f248c5f5e20/d2602/port.jpg 4032w&quot;
         1687         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1688         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1689         loading=&quot;lazy&quot;
         1690       /&gt;
         1691     &lt;/span&gt;&lt;/p&gt;
         1692 &lt;p&gt;Another secret weapon of mine that aided in my recovery: this cute avocado buddy that my sister and her boyfriend sent me:&lt;/p&gt;
         1693 &lt;p&gt;&lt;span
         1694       class=&quot;gatsby-resp-image-wrapper&quot;
         1695       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1696     &gt;
         1697       &lt;span
         1698     class=&quot;gatsby-resp-image-background-image&quot;
         1699     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAP/2gAMAwEAAhADEAAAAU9GueSfEx3/xAAZEAEBAQADAAAAAAAAAAAAAAABAhESEyL/2gAIAQEAAQUCDameoEoT1tcYRj//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARL/2gAIAQMBAT8BrD//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARL/2gAIAQIBAT8Btaf/xAAbEAACAwADAAAAAAAAAAAAAAAAAQIREiFBcf/aAAgBAQAGPwKW32Ln2yxktsTP/8QAGhABAQEAAwEAAAAAAAAAAAAAAREAITFR4f/aAAgBAQABPyF2NeFcyqSUDBPjFwdLvBDXRKdb/9oADAMBAAIAAwAAABD/AM//xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAEDAQE/EExQh7T/xAAWEQEBAQAAAAAAAAAAAAAAAAABAHH/2gAIAQIBAT8QUbF//8QAHBAAAgIDAQEAAAAAAAAAAAAAAREAITFBYXGB/9oACAEBAAE/EE50mG4DuYEfARiNgSxs0+RSUBuvHNNCaAa5UM8rwRqf/9k=&apos;); background-size: cover; display: block;&quot;
         1700   &gt;&lt;/span&gt;
         1701   &lt;img
         1702         class=&quot;gatsby-resp-image-image&quot;
         1703         alt=&quot;avo&quot;
         1704         title=&quot;avo&quot;
         1705         src=&quot;/static/3c80ba743e37eb45929e343c8fba4082/6aca1/avo.jpg&quot;
         1706         srcset=&quot;/static/3c80ba743e37eb45929e343c8fba4082/d2f63/avo.jpg 163w,
         1707 /static/3c80ba743e37eb45929e343c8fba4082/c989d/avo.jpg 325w,
         1708 /static/3c80ba743e37eb45929e343c8fba4082/6aca1/avo.jpg 650w,
         1709 /static/3c80ba743e37eb45929e343c8fba4082/7c09c/avo.jpg 975w,
         1710 /static/3c80ba743e37eb45929e343c8fba4082/01ab0/avo.jpg 1300w,
         1711 /static/3c80ba743e37eb45929e343c8fba4082/f1e22/avo.jpg 2576w&quot;
         1712         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1713         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1714         loading=&quot;lazy&quot;
         1715       /&gt;
         1716     &lt;/span&gt;&lt;/p&gt;
         1717 &lt;p&gt;I&apos;m squeezing this thing every time I&apos;m jabbed with a needle (many, many times), using it as a pillow, and just loving it, cause it&apos;s so cute.&lt;/p&gt;
         1718 &lt;p&gt;On Wednesday, after I&apos;ve started farting and pooping again (great signs!), I&apos;m sent home early.&lt;/p&gt;
         1719 &lt;h3&gt;The future&lt;/h3&gt;
         1720 &lt;p&gt;I&apos;m home and moving slow and still feel a bunch of surgical pain in my tummy, but overall feel so happy about my progress. I have some cool scars, which I&apos;m thinking about submitting to the &lt;a href=&quot;https://www.instagram.com/secret_buttholes/?hl=en&quot;&gt;@secret_buttholes Instagram&lt;/a&gt;:&lt;/p&gt;
         1721 &lt;p&gt;&lt;span
         1722       class=&quot;gatsby-resp-image-wrapper&quot;
         1723       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1724     &gt;
         1725       &lt;span
         1726     class=&quot;gatsby-resp-image-background-image&quot;
         1727     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBP/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAFXClyEg//EABsQAAEEAwAAAAAAAAAAAAAAAAEAAgMyESEi/9oACAEBAAEFAh0+W5OTDdx0v//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/ASf/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwFn/8QAGBABAAMBAAAAAAAAAAAAAAAAAQAQYXH/2gAIAQEABj8CiUdi7X//xAAaEAEAAwADAAAAAAAAAAAAAAABABEhUWFx/9oACAEBAAE/IdvsrYbRY+DRNd0cztMJ/9oADAMBAAIAAwAAABDcP//EABURAQEAAAAAAAAAAAAAAAAAABAx/9oACAEDAQE/ELP/xAAVEQEBAAAAAAAAAAAAAAAAAAAQMf/aAAgBAgEBPxCD/8QAHRABAAICAgMAAAAAAAAAAAAAAQARIUExYVGhsf/aAAgBAQABPxDFeae4GIKW9S3MWAJnHT9goMlum+I7Fvc//9k=&apos;); background-size: cover; display: block;&quot;
         1728   &gt;&lt;/span&gt;
         1729   &lt;img
         1730         class=&quot;gatsby-resp-image-image&quot;
         1731         alt=&quot;scars&quot;
         1732         title=&quot;scars&quot;
         1733         src=&quot;/static/c0d678a41a56e990c23598d139068017/6aca1/scars.jpg&quot;
         1734         srcset=&quot;/static/c0d678a41a56e990c23598d139068017/d2f63/scars.jpg 163w,
         1735 /static/c0d678a41a56e990c23598d139068017/c989d/scars.jpg 325w,
         1736 /static/c0d678a41a56e990c23598d139068017/6aca1/scars.jpg 650w,
         1737 /static/c0d678a41a56e990c23598d139068017/7c09c/scars.jpg 975w,
         1738 /static/c0d678a41a56e990c23598d139068017/01ab0/scars.jpg 1300w,
         1739 /static/c0d678a41a56e990c23598d139068017/f1e22/scars.jpg 2576w&quot;
         1740         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1741         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1742         loading=&quot;lazy&quot;
         1743       /&gt;
         1744     &lt;/span&gt;&lt;/p&gt;
         1745 &lt;p&gt;On Thursday, I get a call from my surgeon. The pathology is back early. There&apos;s no signs that the cancer spread past the colon walls. The lymph nodes don&apos;t show any signs of cancer in them. Which essentially means I had Stage 2 cancer. Per my doctors, there&apos;s no immediate need for chemotherapy.&lt;/p&gt;
         1746 &lt;p&gt;We did it.&lt;/p&gt;
         1747 &lt;p&gt;I still have some upcoming follow-up appointments, and meetings with cancer genetics to learn if I&apos;m genetically predisposed to cancers. And I&apos;m sure I&apos;ll be doing many more colonoscopies and other tests in the future. And I&apos;m still recovering from the surgery, too.&lt;/p&gt;
         1748 &lt;p&gt;But I (think) I&apos;m cancer-free now. Now, there&apos;s no way to know that little microscopic cancer cells didn&apos;t manage to break through somehow, or that I don&apos;t have cancer in some other random part of my body, so it&apos;s kinda arbitrary to say something like &quot;cancer-free.&quot; But we do know, for sure, that my colon cancer tumor was safely removed and that my doctors are extremely pleased with the results and the signs that it hasn&apos;t spread.&lt;/p&gt;
         1749 &lt;h3&gt;Hello, impostor&apos;s syndrome, my old friend&lt;/h3&gt;
         1750 &lt;p&gt;So, I guess that means I&apos;m a cancer survivor.&lt;/p&gt;
         1751 &lt;p&gt;Which is weird to say, because this whole thing happened &lt;em&gt;very&lt;/em&gt; quickly. All I did was &quot;bowel prep&quot; for two days and then fall asleep and wake up with a painful stomach.&lt;/p&gt;
         1752 &lt;p&gt;But I am a survivor.&lt;/p&gt;
         1753 &lt;p&gt;In fact, I&apos;m probably the luckiest cancer survivor ever, from my access to incredible people and resources at UCSF to the actual state of my tumor to my family and friends support network. I paid attention to my body (noticing the bloody poops) and got the support and encouragement needed to get checked.&lt;/p&gt;
         1754 &lt;p&gt;UCSF has me signed up for a 5+ year relationship with their cancer survivors unit (I&apos;ll learn more in a few weeks when I have my first session). I&apos;m excited about this, because I want to learn as much as I can about how to stay safe and healthy going forward. A few of my friends have told me that there&apos;s good research into fasting and Keto and their link with preventing colon cancers. I&apos;m queuing up some &lt;a href=&quot;https://tim.blog/2015/11/03/dominic-dagostino/&quot;&gt;Tim Ferriss episodes with Dom D&apos;Agostino&lt;/a&gt; about this topic.&lt;/p&gt;
         1755 &lt;p&gt;My wife and my family are depending on me to stay healthy, and I&apos;m going to do everything I can to do so. I&apos;m going to own my health and be my own health advocate.&lt;/p&gt;
         1756 &lt;h2&gt;Some thanks&lt;/h2&gt;
         1757 &lt;p&gt;It&apos;s now about a week and half out from my surgery. I&apos;m doing better on the Bristol scale, but not quite back to normal yet.&lt;/p&gt;
         1758 &lt;p&gt;&lt;span
         1759       class=&quot;gatsby-resp-image-wrapper&quot;
         1760       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1761     &gt;
         1762       &lt;span
         1763     class=&quot;gatsby-resp-image-background-image&quot;
         1764     style=&quot;padding-bottom: 177.91411042944785%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAkCAIAAAAGkY33AAAACXBIWXMAAAsTAAALEwEAmpwYAAAEN0lEQVRIx71WSW8jRRTuK7+AA4gDEuLICK78A5DgziI4ICEkTly4cYUbGjEwQxiJA4cRM4dILGKSDAlycByHeDJOMonHieOt23a77V6qunqtenzdHZuEUUTgQOm5ut6r+t5ai7XhAG14eNjodDq9Xl/Xjd3dPaVUmspGo9FqnShFUmYsBjqmdePk5MQaHnLmaaYjgjD2fX84HEHLeGwxxh3HBZnmeDKZuq43ndpgmcdsL7B5NGWhw8MoTrSGqcIoVVKVyxt37y6tra3V67ugUqm0WdlcWbm3sVFZXV39vVyubf/xaBjsGHRfV9t95YpUS5M0iuI0TeCqlDLJWXiIAVyN4+yTR5Fmo0yaUdG0OI49zzMMHT7DN98XRIjNgDyKotx5q9Vqua5bOD8ajUzTxACqAE5s28klY879IAig2LbtJMnAkCBmzEEpcgEWliABCzczy0hSnhiXSMEsnKTLNa3X69VqtaWlJcuaXAS7SK7BIOqJ3Ha7PRSsyM1lLSNI2PQ8Bi1wHpEX2boUuNhMWVmypoq+2FXz/iwLAizOm/a3eJQ6FRSf+WwxyFX8JdfmzJnBvwbTHPP/gh8v6X+OWZ0DS0kyvRCc+3yKKqbPlSrftGdLhQFORLa3/ylmovvLtPVz4f2lE5Zvhuz3/hV645kzYLp0tvH78EV699lTMJZZBo27Z8C4RnBdnGaVVJpkGZJpJlczMNLmjCQWfPQyvfmUyg+PNreg6CLLL9EHL6iDCr32hKz+pD55ld56egZOYrr9qfplQc0D3VhEkpRj0s495Y7pvSv0zvNqe5me09TKLfXxK/T6kxkKYInbZvGqXLsFDhcb0NGP12XpTtw5SG9/lvabSXmR1u/Eo266+LnUj6LKD+rX7+IoRu40XOYCBZydMlRP4JCClSrOMqSiPIoIN2me7QArZntJ4zzkLvccxljAmPA8wT0/IxZAzpngLGP9fFkm9ARzfcZCADXPCziPhEh8Py56znEZQ0vwODEv8HlG0AJWa7f1L6/dWPj65rUvvrpxfeHmN9/WHzz0eeTY3HX8OTkOfBENIygfhfu9sNYOx9NAw8RJd/DwuHfcH+03O13DMiduIEkkIJX3OYVpIGKbxfo0Htqx6cSOG2gCebAH1KmT0aDhEXkjmhrUOyCjSYNjau+R/oiMI/Ld0z00a74faiJS0jGl3pSjdjJoS0tXbCpHHTUdkKWT1aeJoSAUXM22UEYFOIrSnm5sVLf3G83a9ubeXn2rtnPc7a1XNmsPdhvHrXJ166B59FupVK1W8TxYllXsvyzbvo8KMbw4rmMv79mVxsS1J3iTsGhsmpO8dxxnOp02m812u433KswbgBo+QgiOxzHhb3+fXF1PiITHshcPDVPo8ZLgYsfTXalUitcvCEIMAI4wHwZi7Ih6XxwYgnGRgc434LvdLv5WFOpy29Gf/GPyuoEHqP8AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1765   &gt;&lt;/span&gt;
         1766   &lt;img
         1767         class=&quot;gatsby-resp-image-image&quot;
         1768         alt=&quot;walking&quot;
         1769         title=&quot;walking&quot;
         1770         src=&quot;/static/ca5f150240ad51c2af255f1a5fa14716/a6d36/recovery.png&quot;
         1771         srcset=&quot;/static/ca5f150240ad51c2af255f1a5fa14716/222b7/recovery.png 163w,
         1772 /static/ca5f150240ad51c2af255f1a5fa14716/ff46a/recovery.png 325w,
         1773 /static/ca5f150240ad51c2af255f1a5fa14716/a6d36/recovery.png 650w,
         1774 /static/ca5f150240ad51c2af255f1a5fa14716/1d69c/recovery.png 750w&quot;
         1775         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1776         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1777         loading=&quot;lazy&quot;
         1778       /&gt;
         1779     &lt;/span&gt;&lt;/p&gt;
         1780 &lt;p&gt;Monday was my surgery. Tuesday didn&apos;t capture my walks, because I didn&apos;t have my phone on me. But I&apos;m moving around again, and eager to get back to regularly-scheduled life.&lt;/p&gt;
         1781 &lt;p&gt;Thank you for reading this story. I hope it is informative and shocking and helps you think about your health and the health of those around you. For example, Molly - my sister - is definitely going to have to get a colonoscopy ASAP.&lt;/p&gt;
         1782 &lt;p&gt;Thank you to:&lt;/p&gt;
         1783 &lt;ul&gt;
         1784 &lt;li&gt;My incredible, magical, beautiful &lt;em&gt;wife&lt;/em&gt; Carly!&lt;/li&gt;
         1785 &lt;li&gt;My parents and my mother-in-law and our siblings!&lt;/li&gt;
         1786 &lt;li&gt;Our friends and family!&lt;/li&gt;
         1787 &lt;li&gt;UCSF!&lt;/li&gt;
         1788 &lt;li&gt;OneMedical!&lt;/li&gt;
         1789 &lt;/ul&gt;
         1790 &lt;p&gt;Also, if I got anything wrong in this missive from a medical perspective, let me know and I can attept to correct the errata. This is meant to be &lt;em&gt;my understanding&lt;/em&gt; of &lt;em&gt;my situation&lt;/em&gt;, YMMV.&lt;/p&gt;
         1791 &lt;blockquote&gt;
         1792 &lt;p&gt;&lt;strong&gt;2021 Update!&lt;/strong&gt; Read Part II of my cancer story: &lt;a href=&quot;/chemotherapy&quot;&gt;Notes on My Chemotherapy&lt;/a&gt;&lt;/p&gt;
         1793 &lt;/blockquote&gt;</content:encoded></item><item><title><![CDATA[Add Some Ghibli to Your Raspberry Pi]]></title><description><![CDATA[Maybe you caught this week's HN post that Studio Ghibli dropped 400 images into the public domain. The comments suggested that there's…]]></description><link>https://www.charlieharrington.com/add-some-ghibli-to-your-raspberry-pi</link><guid isPermaLink="false">https://www.charlieharrington.com/add-some-ghibli-to-your-raspberry-pi</guid><pubDate>Fri, 25 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Maybe you caught this week&apos;s &lt;a href=&quot;https://news.ycombinator.com/item?id=24564775&quot;&gt;HN post&lt;/a&gt; that &lt;a href=&quot;http://www.ghibli.jp/info/013344/&quot;&gt;Studio Ghibli&lt;/a&gt; dropped 400 images into the public domain. The comments suggested that there&apos;s something odd in Japanese copyright law about taking screenshots of films, and that Studio Ghibli might have furnished these to help keep people talking about their films in reviews and whatnot.&lt;/p&gt;
         1794 &lt;p&gt;&lt;span
         1795       class=&quot;gatsby-resp-image-wrapper&quot;
         1796       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1797     &gt;
         1798       &lt;a
         1799     class=&quot;gatsby-resp-image-link&quot;
         1800     href=&quot;/static/de45ce1eab470f024caad31db72d94e6/0f98f/marnie004.jpg&quot;
         1801     style=&quot;display: block&quot;
         1802     target=&quot;_blank&quot;
         1803     rel=&quot;noopener&quot;
         1804   &gt;
         1805     &lt;span
         1806     class=&quot;gatsby-resp-image-background-image&quot;
         1807     style=&quot;padding-bottom: 53.987730061349694%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAQP/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABTi+wSl4T/8QAGhABAQACAwAAAAAAAAAAAAAAAQADEgIRIf/aAAgBAQABBQIy5U52sB2e2pf/xAAWEQEBAQAAAAAAAAAAAAAAAAAAERL/2gAIAQMBAT8BjL//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8BrX//xAAYEAACAwAAAAAAAAAAAAAAAAABEAIhcf/aAAgBAQAGPwK5FnH/AP/EABkQAQEBAQEBAAAAAAAAAAAAAAERAEFRcf/aAAgBAQABPyGKgdSVv1xXFzjnGAimPDf/2gAMAwEAAgADAAAAEDwv/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxCEsLP/xAAXEQEAAwAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EJau/8QAHBABAAMAAgMAAAAAAAAAAAAAAQARITFhcaHR/9oACAEBAAE/EGDHInJb6mO2HWu4gvygjAwIF9QkJAoyU/tn/9k=&apos;); background-size: cover; display: block;&quot;
         1808   &gt;&lt;/span&gt;
         1809   &lt;img
         1810         class=&quot;gatsby-resp-image-image&quot;
         1811         alt=&quot;marnie&quot;
         1812         title=&quot;marnie&quot;
         1813         src=&quot;/static/de45ce1eab470f024caad31db72d94e6/6aca1/marnie004.jpg&quot;
         1814         srcset=&quot;/static/de45ce1eab470f024caad31db72d94e6/d2f63/marnie004.jpg 163w,
         1815 /static/de45ce1eab470f024caad31db72d94e6/c989d/marnie004.jpg 325w,
         1816 /static/de45ce1eab470f024caad31db72d94e6/6aca1/marnie004.jpg 650w,
         1817 /static/de45ce1eab470f024caad31db72d94e6/7c09c/marnie004.jpg 975w,
         1818 /static/de45ce1eab470f024caad31db72d94e6/01ab0/marnie004.jpg 1300w,
         1819 /static/de45ce1eab470f024caad31db72d94e6/0f98f/marnie004.jpg 1920w&quot;
         1820         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1821         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1822         loading=&quot;lazy&quot;
         1823       /&gt;
         1824   &lt;/a&gt;
         1825     &lt;/span&gt;        &lt;/p&gt;
         1826 &lt;p&gt;A more useful comment gave a nice tip for scraping the images in a single &lt;code class=&quot;language-text&quot;&gt;wget&lt;/code&gt; command:&lt;/p&gt;
         1827 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;wget&lt;/span&gt; --random-wait --timestamping http://www.ghibli.jp/gallery/&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;ged,chihiro,karigurashi,ponyo,kokurikozaka,marnie,kaguyahime,kazetachinu&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;001&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;050&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;.jpg&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1828 &lt;p&gt;This uses the nice shell trick of using curly braces &lt;code class=&quot;language-text&quot;&gt;{}&lt;/code&gt; to expand commands and &lt;code class=&quot;language-text&quot;&gt;..&lt;/code&gt; to expand in a numerical or alphabetical series. I first encountered this technique in the MIT course for &lt;a href=&quot;https://missing.csail.mit.edu/&quot;&gt;The Missing Semester of your CS Education&lt;/a&gt;, which I highly recommend checking out.&lt;/p&gt;
         1829 &lt;p&gt;For example, &lt;code class=&quot;language-text&quot;&gt;echo foo.{png,jpg}&lt;/code&gt; will expand to &lt;code class=&quot;language-text&quot;&gt;echo foo.png foo.jpg&lt;/code&gt;, and &lt;code class=&quot;language-text&quot;&gt;echo {1..10}&lt;/code&gt; will expand to &lt;code class=&quot;language-text&quot;&gt;echo 1 2 3 4 5 6 7 8 9 10&lt;/code&gt;. &lt;/p&gt;
         1830 &lt;p&gt;Perhaps this might prove useful in your terminal travels.&lt;/p&gt;
         1831 &lt;p&gt;Back to Ghibli. So, now that I&apos;ve got all these screenshots downloaded, what can I do with them?&lt;/p&gt;
         1832 &lt;h2&gt;My little Raspberry Pi server&lt;/h2&gt;
         1833 &lt;p&gt;I&apos;ve got a &lt;a href=&quot;https://www.amazon.com/gp/product/B08C4SK5C3/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B08C4SK5C3&amp;#x26;linkId=6371e9a8ce20a36236014adee9eaa56e&quot;&gt;Raspberry Pi 4 with 8GB RAM&lt;/a&gt; on my home network that I can connect to via &lt;a href=&quot;https://tailscale.com/&quot;&gt;Tailscale&lt;/a&gt;. Usually, I like to SSH in there and &lt;code class=&quot;language-text&quot;&gt;sudo apt-get update&lt;/code&gt; and &lt;code class=&quot;language-text&quot;&gt;sudo apt-get upgrade&lt;/code&gt; just to feel alive. But I also have a few other use-cases.&lt;/p&gt;
         1834 &lt;p&gt;I run a &lt;a href=&quot;https://www.plex.tv/&quot;&gt;Plex&lt;/a&gt; server on the Pi. For a while, I also experimented with running &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; on the Pi, but I just don&apos;t have that many internet of things devices (yet). I&apos;m also planning to set up Minecraft server on the Pi, but I haven&apos;t found a non-sketchy tutorial yet.&lt;/p&gt;
         1835 &lt;p&gt;Finally, I also occasionally VNC in using VNC Viewer to check out the latest magazines in the awesome Raspberry Pi magazine app, where they have free subscriptions all these awesome &quot;maker&quot; magazines. This alone is worth the price of a Pi, IMHO.&lt;/p&gt;
         1836 &lt;p&gt;But, I was getting pretty tired of looking at the same stock desktop background everytime I VNC&apos;ed in.&lt;/p&gt;
         1837 &lt;h3&gt;Using the Ghibli images as the Pi&apos;s desktop background&lt;/h3&gt;
         1838 &lt;p&gt;There&apos;s a neat command to change your Pi&apos;s desktop background from the terminal:&lt;/p&gt;
         1839 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;pcman --set-wallpaper /home/pi/Pictures/ghibli/ged009.jpg&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1840 &lt;p&gt;&lt;span
         1841       class=&quot;gatsby-resp-image-wrapper&quot;
         1842       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1843     &gt;
         1844       &lt;a
         1845     class=&quot;gatsby-resp-image-link&quot;
         1846     href=&quot;/static/555d1ff4e6dce7d4942dff1af03b1745/0f98f/ged009.jpg&quot;
         1847     style=&quot;display: block&quot;
         1848     target=&quot;_blank&quot;
         1849     rel=&quot;noopener&quot;
         1850   &gt;
         1851     &lt;span
         1852     class=&quot;gatsby-resp-image-background-image&quot;
         1853     style=&quot;padding-bottom: 53.987730061349694%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABls5zRkiP/8QAGRAAAwEBAQAAAAAAAAAAAAAAAQIhAANB/9oACAEBAAEFAucdnhuG9Y3/xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQMBAT8BlY//xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAgEBPwFX/8QAFhABAQEAAAAAAAAAAAAAAAAAMRAg/9oACAEBAAY/AmOP/8QAGRABAAMBAQAAAAAAAAAAAAAAAQARIUFh/9oACAEBAAE/ISK3QMuIsSshFbp8nccxF6n/2gAMAwEAAgADAAAAEAAf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAR/9oACAEDAQE/EELbJ//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxCVh//EABoQAQADAQEBAAAAAAAAAAAAAAEAESFRMUH/2gAIAQEAAT8QL1GXVrMGxAOjyCGUChQIAoAHtRX4KwyJa8fJ/9k=&apos;); background-size: cover; display: block;&quot;
         1854   &gt;&lt;/span&gt;
         1855   &lt;img
         1856         class=&quot;gatsby-resp-image-image&quot;
         1857         alt=&quot;marnie&quot;
         1858         title=&quot;marnie&quot;
         1859         src=&quot;/static/555d1ff4e6dce7d4942dff1af03b1745/6aca1/ged009.jpg&quot;
         1860         srcset=&quot;/static/555d1ff4e6dce7d4942dff1af03b1745/d2f63/ged009.jpg 163w,
         1861 /static/555d1ff4e6dce7d4942dff1af03b1745/c989d/ged009.jpg 325w,
         1862 /static/555d1ff4e6dce7d4942dff1af03b1745/6aca1/ged009.jpg 650w,
         1863 /static/555d1ff4e6dce7d4942dff1af03b1745/7c09c/ged009.jpg 975w,
         1864 /static/555d1ff4e6dce7d4942dff1af03b1745/01ab0/ged009.jpg 1300w,
         1865 /static/555d1ff4e6dce7d4942dff1af03b1745/0f98f/ged009.jpg 1920w&quot;
         1866         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1867         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1868         loading=&quot;lazy&quot;
         1869       /&gt;
         1870   &lt;/a&gt;
         1871     &lt;/span&gt;&lt;/p&gt;
         1872 &lt;p&gt;Make sure that you&apos;ve given the proper directory location for your Ghibli images, which, of course, you can get with the &lt;code class=&quot;language-text&quot;&gt;pwd&lt;/code&gt; print working directory command.&lt;/p&gt;
         1873 &lt;p&gt;Now, I&apos;ve already admit that I enjoy manually running apt-get updates, but I definitely don&apos;t want to be manually changing the background, so how about some automation?&lt;/p&gt;
         1874 &lt;h3&gt;Automating a rotating background with a cron job&lt;/h3&gt;
         1875 &lt;p&gt;We can use a simple cron job for this! First, let&apos;s write a one-liner command to randomly set the background from an image in our folder:&lt;/p&gt;
         1876 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;ls&lt;/span&gt; /home/pi/Pictures/ghibli &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;shuf&lt;/span&gt; -n &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;xargs&lt;/span&gt; -I&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; pcmanfm --set-wallpaper /home/pi/Pictures/ghibli/&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1877 &lt;p&gt;It looks kinda hairy, but it&apos;s pretty simple. First, we list the contents of our directory, then we used &lt;code class=&quot;language-text&quot;&gt;shuf&lt;/code&gt; to randomly select one of the files. In fact, if you just stopped there, your output would look like this:&lt;/p&gt;
         1878 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;ls&lt;/span&gt; /home/pi/Pictures/ghibli &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;shuf&lt;/span&gt; -n &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;
         1879 karigurashi024.jpg&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1880 &lt;p&gt;But we want to pipe this randomly selected file to the &lt;code class=&quot;language-text&quot;&gt;pcmanfm&lt;/code&gt; command! I&apos;m using &lt;code class=&quot;language-text&quot;&gt;xargs&lt;/code&gt; to do that in the next part of the command. There&apos;s probably an easier way, but this works for me.&lt;/p&gt;
         1881 &lt;p&gt;So, now that we have our command to randomly select a background, we just need to write a cron job to run this command every... let&apos;s say, ten minutes. First, open up your computer&apos;s crontab file:&lt;/p&gt;
         1882 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;crontab&lt;/span&gt; -e&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1883 &lt;p&gt;And add this to the bottom:&lt;/p&gt;
         1884 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;*/10 * * * * ls /home/pi/Pictures/ghibli | shuf -n 1 | xargs -I{} pcmanfm --set-wallpaper /home/pi/Pictures/ghibli/{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1885 &lt;p&gt;Save the file, and you&apos;re done. Right? No. That didn&apos;t work for me. Let&apos;s look at the cron logs with this command: &lt;code class=&quot;language-text&quot;&gt;grep CRON /var/log/syslog&lt;/code&gt;&lt;/p&gt;
         1886 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;raspberrypi CRON[3870]: (pi) CMD (DISPLAY=:0.0 &amp;amp;&amp;amp; ls /home/pi/Pictures/ghibli | shuf -n 1 | xargs -I{} pcmanfm --set-wallpaper /home/pi/Pictures/ghibli/{})
         1887 raspberrypi CRON[3866]: (CRON) info (No MTA installed, discarding output)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1888 &lt;p&gt;Not super helful. It does confirm that job ran, which is good, though. That rules out cron syntax errors. This &lt;code class=&quot;language-text&quot;&gt;info&lt;/code&gt; log is interesting. Discarding output. I don&apos;t like the sound of that. Googling reveals that we need to install a local mail server, so here we go.&lt;/p&gt;
         1889 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;apt-get&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; postfix&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1890 &lt;p&gt;&lt;span
         1891       class=&quot;gatsby-resp-image-wrapper&quot;
         1892       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1893     &gt;
         1894       &lt;a
         1895     class=&quot;gatsby-resp-image-link&quot;
         1896     href=&quot;/static/5af659ddcc5a54584ababc4499e3448d/bff4e/postfix.png&quot;
         1897     style=&quot;display: block&quot;
         1898     target=&quot;_blank&quot;
         1899     rel=&quot;noopener&quot;
         1900   &gt;
         1901     &lt;span
         1902     class=&quot;gatsby-resp-image-background-image&quot;
         1903     style=&quot;padding-bottom: 60.122699386503065%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAADLklEQVQozy2T60+bZRjG3wmygwiiEUM8Rrc/wCxxE2Nx9KBQWdaVrmxsw8kOnGXQ0g1YEcYGRbCFgtATfd8eGC2UrnUY/TDjCU2IyTKdCfph8T/5eVP34cr1PE/uXNf13M/9KEuT/dwavsroUAfR2T78k93MT/cx5GxluL8ZR7uVgZ4mhj6z0nXRQrOtngtNJpydFmbcTcw7rIx3WZl0nWdmsBVl2dODZ6QLV/85ArMukskvWVwcY8Y7jNd3g6mpa/hmb+D1DjLlGWDsphOPx8W83004MMp65CZfzY3g6r3EaYsB5dulEa6L2+TgWa582o298XtOWX/gtO1nWW9x6uQWNssWduuvsv+twLtnu7A3/oLd9pPw77RdXsDacARl68fvJNk4WXUUw/vnUZQ1QVaQ4ZmnMlTsy1Besk55cVqQouzpNdmvFXi35n/k+fCYj662epQ7iRCP/npELjnNsaM29u/JUlqUF7EcLodKOBIgFFJRIxrRUJSIsKYlCAU1Xn4hxoE9eYqUTU58vEDnFTOKwaDj4R9/svPgvjTXTYk47ldygjzXBpYJhecIBoOoWpSoukwsrpFOrxKPJ6h6PspeqVOUe5wwL+K8akeprj7C9vY2O/88lJec4IBcd19BMMf1AU2EgpIwQiQcQVMlZVQlnogTDkdFUH0iuEnDRz4mnM0oen0N/z5+zN87Dzhj65OCTCHdXuUuYyNpcvkMK7EVouO3Sd6aYC2WYH0jS0xboapCFfOvCwmbLGEi826UesNRFsTNt+SnztBCWXFOiu4W8Lk7xkZ2mUQiTFxdFOEAiXiQVFqVpAFJGBHzXcENeeVNMfGhmEw16D9xYmhpw6i/LFfOUyxFJcKvVoY49LqPg6/NCfs59Iaft2R9UNZvvjInYinBPRHM0dtxn/WUCOpMdVh6b9PQ7kBn7KTquSSV5SleqpDxeDIypTIipSUblMroPFu0KiOzKucpXixLU1mRkvZo9PZ8Q/qOF6XOfo7j7cOYLzownjzDhZZGOhxt2C51U21upVZ6/F6tmXctPbxTU0+t7jAm0wfodW9jtJ3F2Cyf4fhhDA02Jr6Y5j9M8x3dfcgtkAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         1904   &gt;&lt;/span&gt;
         1905   &lt;img
         1906         class=&quot;gatsby-resp-image-image&quot;
         1907         alt=&quot;postfix&quot;
         1908         title=&quot;postfix&quot;
         1909         src=&quot;/static/5af659ddcc5a54584ababc4499e3448d/a6d36/postfix.png&quot;
         1910         srcset=&quot;/static/5af659ddcc5a54584ababc4499e3448d/222b7/postfix.png 163w,
         1911 /static/5af659ddcc5a54584ababc4499e3448d/ff46a/postfix.png 325w,
         1912 /static/5af659ddcc5a54584ababc4499e3448d/a6d36/postfix.png 650w,
         1913 /static/5af659ddcc5a54584ababc4499e3448d/e548f/postfix.png 975w,
         1914 /static/5af659ddcc5a54584ababc4499e3448d/3c492/postfix.png 1300w,
         1915 /static/5af659ddcc5a54584ababc4499e3448d/bff4e/postfix.png 2660w&quot;
         1916         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1917         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1918         loading=&quot;lazy&quot;
         1919       /&gt;
         1920   &lt;/a&gt;
         1921     &lt;/span&gt;&lt;/p&gt;
         1922 &lt;p&gt;You should choose a &quot;Local&quot; installation. Once we have a mail server, we can now inspect the cron job &quot;mail&quot; logs:&lt;/p&gt;
         1923 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;sudo tail -f /var/mail/pi&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1924 &lt;p&gt;After a bunch of email header jargon, we finally see the error:&lt;/p&gt;
         1925 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Cannot open display: 
         1926 
         1927 --1332E5E8FA.1601069882/raspberrypi--&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1928 &lt;p&gt;Awesome! I mean, the cron job still doesn&apos;t work, but at least we have some more info. That&apos;s a win. So, what have we learned? It seems like our cron job can&apos;t &quot;open&quot; the display. Some more Googling suggests that I need to add an env var for the display, so I add this &lt;code class=&quot;language-text&quot;&gt;export DISPLAY=:0.0&lt;/code&gt; to the beginning on my cron job right after the cron syntax.&lt;/p&gt;
         1929 &lt;p&gt;Did that fix it? No. But we get a new error message:&lt;/p&gt;
         1930 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;Message: x-terminal-emulator has very limited support, consider choose another terminal&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1931 &lt;p&gt;Cool. Okay, so, what does this one mean? This &lt;a href=&quot;https://stackoverflow.com/questions/45873124/pcmanfm-set-wallpaper-fails-on-raspbian-stretch-in-cron&quot;&gt;stack overflow answer&lt;/a&gt; suggests that I may need to add another env var to my command. Here goes:&lt;/p&gt;
         1932 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;*/10 * * * * export DISPLAY=&amp;quot;:0.0&amp;quot; XDG_RUNTIME_DIR=/run/usr/1000  ls /home/pi/Pictures/ghibli | shuf -n 1 | xargs -I{} pcmanfm --set-wallpaper /home/pi/Pictures/ghibli/{}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         1933 &lt;p&gt;Yes! Our cron job works!&lt;/p&gt;
         1934 &lt;p&gt;&lt;span
         1935       class=&quot;gatsby-resp-image-wrapper&quot;
         1936       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1937     &gt;
         1938       &lt;a
         1939     class=&quot;gatsby-resp-image-link&quot;
         1940     href=&quot;/static/7088062c77a79c116dd28f9e93926586/0f98f/karigurashi024.jpg&quot;
         1941     style=&quot;display: block&quot;
         1942     target=&quot;_blank&quot;
         1943     rel=&quot;noopener&quot;
         1944   &gt;
         1945     &lt;span
         1946     class=&quot;gatsby-resp-image-background-image&quot;
         1947     style=&quot;padding-bottom: 53.987730061349694%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBAgT/xAAVAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABrIuB0iwj/8QAGxAAAgEFAAAAAAAAAAAAAAAAAAECAxEhMTL/2gAIAQEAAQUCRfCZLqns/8QAFhEAAwAAAAAAAAAAAAAAAAAAAhAx/9oACAEDAQE/ARq//8QAFhEAAwAAAAAAAAAAAAAAAAAAEBEh/9oACAECAQE/AVR//8QAFRABAQAAAAAAAAAAAAAAAAAAEAH/2gAIAQEABj8Ca//EABsQAQACAgMAAAAAAAAAAAAAAAEAEBExIVFx/9oACAEBAAE/IVxDIJvqKGK2rxr/2gAMAwEAAgADAAAAEHT/AP/EABcRAAMBAAAAAAAAAAAAAAAAAAEQMXH/2gAIAQMBAT8QCNX/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREx/9oACAECAQE/ENEVn//EABwQAQADAAIDAAAAAAAAAAAAAAEAESExQVGh8P/aAAgBAQABPxArZwTLgnXzXmUo9w0J9kS37R+mM//Z&apos;); background-size: cover; display: block;&quot;
         1948   &gt;&lt;/span&gt;
         1949   &lt;img
         1950         class=&quot;gatsby-resp-image-image&quot;
         1951         alt=&quot;marnie&quot;
         1952         title=&quot;marnie&quot;
         1953         src=&quot;/static/7088062c77a79c116dd28f9e93926586/6aca1/karigurashi024.jpg&quot;
         1954         srcset=&quot;/static/7088062c77a79c116dd28f9e93926586/d2f63/karigurashi024.jpg 163w,
         1955 /static/7088062c77a79c116dd28f9e93926586/c989d/karigurashi024.jpg 325w,
         1956 /static/7088062c77a79c116dd28f9e93926586/6aca1/karigurashi024.jpg 650w,
         1957 /static/7088062c77a79c116dd28f9e93926586/7c09c/karigurashi024.jpg 975w,
         1958 /static/7088062c77a79c116dd28f9e93926586/01ab0/karigurashi024.jpg 1300w,
         1959 /static/7088062c77a79c116dd28f9e93926586/0f98f/karigurashi024.jpg 1920w&quot;
         1960         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         1961         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         1962         loading=&quot;lazy&quot;
         1963       /&gt;
         1964   &lt;/a&gt;
         1965     &lt;/span&gt;&lt;/p&gt;
         1966 &lt;p&gt;What are these &lt;code class=&quot;language-text&quot;&gt;DISPLAY&lt;/code&gt; and &lt;code class=&quot;language-text&quot;&gt;XDG_RUNTIME_DIR&lt;/code&gt;? According to &lt;a href=&quot;https://askubuntu.com/questions/872792/what-is-xdg-runtime-dir&quot;&gt;this other Stack Overflow answer&lt;/a&gt;, &lt;code class=&quot;language-text&quot;&gt;DISPLAY&lt;/code&gt; is an address for your display and &lt;code class=&quot;language-text&quot;&gt;XDG_RUNTIME_DIR&lt;/code&gt; is a place to store temporary files for your user. Probably some more to dig into here, but for now, I&apos;m just going to stare at my VNC Viewer and watch the background change.&lt;/p&gt;
         1967 &lt;p&gt;After all this Googling and debugging, we&apos;ve now got all these cute images keeping our computer happy, even when we&apos;re not there.&lt;/p&gt;
         1968 &lt;p&gt;Automating stuff like this is part of the magic of computers. And that&apos;s why I think it goes so well with these magical Studio Ghibli images.&lt;/p&gt;
         1969 &lt;h2&gt;Watching the Studio Ghibli films&lt;/h2&gt;
         1970 &lt;p&gt;But, now I&apos;ve got a ticking clock... &lt;/p&gt;
         1971 &lt;p&gt;I hate spoilers, and I&apos;m sad to say that I&apos;ve only seen Howl&apos;s Moving Castle (after reading the book earlier this year). I loved it, much more so than book. Which means I need to watch all the Ghibli films &lt;em&gt;fast&lt;/em&gt;, before I spoil my way through them with my desktop backgrounds.&lt;/p&gt;
         1972 &lt;p&gt;In our first episode of the &lt;a href=&quot;/escaping-web-season-one-retrospective&quot;&gt;Escaping Web podcast&lt;/a&gt;, Oz and I chatted with Felix Tripier who brought up &lt;a href=&quot;https://en.wikipedia.org/wiki/Grave_of_the_Fireflies&quot;&gt;Grave of the Fireflies&lt;/a&gt;. I didn&apos;t know about the film during our conversation, but I&apos;ve just discovered that it&apos;s available on Hulu. I&apos;ll be watching it very soon. As for the rest of films, I&apos;ve heard they&apos;re on HBO GOMAXPROPLUS in the US and Netflix everywhere else in the world.&lt;/p&gt;
         1973 &lt;p&gt;For now, I&apos;m just glad to have these images on my little server whenever I log in. It&apos;s a nice happy thing in my life, and I thank the orange website for the tiny dose of inspiration.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Robots I Love]]></title><description><![CDATA[Beware of scissors The other day I lopped off a sizeable chunk of my thumbprint while making a robot. The cut? It was one of those bright…]]></description><link>https://www.charlieharrington.com/robots-i-love</link><guid isPermaLink="false">https://www.charlieharrington.com/robots-i-love</guid><pubDate>Mon, 24 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h3&gt;Beware of scissors&lt;/h3&gt;
         1974 &lt;p&gt;The other day I lopped off a sizeable chunk of my thumbprint while making a robot. The cut? It was one of those bright-red, swiftly-flowing ones, where you&apos;re pretty sure you&apos;re seeing bone or muscle or some other gross-thing-that-should-probably-stay-inside-your-body. The robot? It was made of cardboard and beer cans:&lt;/p&gt;
         1975 &lt;p&gt;&lt;span
         1976       class=&quot;gatsby-resp-image-wrapper&quot;
         1977       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         1978     &gt;
         1979       &lt;a
         1980     class=&quot;gatsby-resp-image-link&quot;
         1981     href=&quot;/static/9d940d0f21aec7abb6525a0c3097ef1c/5c744/cardboard.png&quot;
         1982     style=&quot;display: block&quot;
         1983     target=&quot;_blank&quot;
         1984     rel=&quot;noopener&quot;
         1985   &gt;
         1986     &lt;span
         1987     class=&quot;gatsby-resp-image-background-image&quot;
         1988     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAbCAYAAAB836/YAAAACXBIWXMAABYlAAAWJQFJUiTwAAAG3UlEQVRIx0WUeVCU9xnH9w9xgT3YC9ZddsFlYTkFAiyggHIsN8i5IKhccqmIgOKBCh4IRhNB1HgxSVFjaqJWR50x6aTTJKOTmcyk02ozbWc67Uzzh21ipuO0STS1nz67pu07853f+5v3936e73O8r+LZt//kv9c3T54wNzNDZnoasY5wPNkJFGYmUJHnpqZgBdX5WVStyqSxNI/GEp9yaSx+ee8V1RWtQPHdP576Yf9+8eJ/4K+/+ppNfT1kJjlYmRFPcU4GlfnZlOWmU56XTn1xLvUCqC/J9avBB5QgdR4BPvnbYz/kh3/9IHrO98++f7l//nfK8jNxJzkpWpFOWV4mnuUplOakUVuc8yNQID6gwLxlq/yBFI8+f/Cjr2ciX/pP+e7pX7h2+Q3cyS5eiReXmSl4ctIpzE6hRIB18mJj+Soay/6v5op8Aa9E8fHdd7h9dZ73Fk5x4cQkh8YG6WurF3duvFX5dLdW0VJTTFNVoSifZllbazy0rvbQUu2RfRHNlUX+e295Por35o/T1lhGtWc5W7oamZ8Z5/69t/nsw6t8cO0cNy/NMb13kP2jPewb7mBoQxN9a2voaqqkvaGctbUlrJWAbXWlAi5E8c65o5w4PMrl05P88bP3ef7XR7z45g98+/ghj39/n4cPbnPmtX3MTG7n9QNDAu1iW+8aNrc30NtaQ6f3JbjLW+F3qTgnh986eYh7V8/y1e8e8OVvP+LLL17qzw9/wZ9+8yHXFmY5dXTMH3hqbBP7hjoZ7VvLYGeTQGvZ0FxNb0u1OC1BsXuwk1uXZpmf3c/Dj2/yxad3efTpbdEdfn3/Fr/65GdcuzjLdYFemJng2MRWpnb7oF1+6EB7IxvX1bFJtL6+DMXY1i7uXDnBG6/t4eblOT7/6DoPPrjCg5//lPuiT6SeC2en5dlpbl0+yakju/zAg9t72D3QJjVtZqCjkUFRe2MFioM7+rhydpK3Th3k6IFhfnnnJ7x/4zz3blwQzXP32nnOHB/nktT6xsU5FqTWx8YHGR/ewK7N6xnqbhaYl6EuLx0+4PhIN6ePjPL2uSn2bO/m4tnDXJcSvLtwnKsLM7LOMjO1kzOvT8iZV3lzbr+43MHEtg2MSHMGu5ok7Qa2dvocSso7BzoY29rG7NQIFTL5W/rWcPn8NPMn93NBXn7z9GGOTAwzc3iXzOgW9m7vZW5qG9Nj/Yz2t9C/rpaN6+vY0lH/EvjuhVfZJPQ8+aza1lSwtqmU6X2bxdGYdHYX52QuJ3Zu5IBo7+gm5o7tkxr2Mb2nn/3isrulUjq8mi3isqOxHEWrdKZzTaUMdwl7R9oZ6Jb56qjj0O5+hja20NW6mvGRDoYlvTMnpzgxtZ1dA63sHepgckePzKRXxqbSPzbrZMgVGU4bvW21tNYWMNBZQ015HjEOK+31+RweaWZPl4djW6s4us3L2SNDTPSUsrOtgD0dRayvzJI/UQqJrkhWZSVRU7QcRZzVjNNhw53ooDArnih7GNEWA9mJSynNjKM2J4663Hia8xNZV5RE7+pMNtf65MYu5wwGHQZdELnuOKrk+1do1cFELtGTlRhJ3rJIUqLDMevU2I0anGEhWPVqIk0hLBXFWoxEmQ1YTHqWLbWgDdFgNusxG0NIjwnH7bKjSLAaKUyLpjY3iRK3i4LUKAGqsBjUhApYFaREowryy2rU4rKaiLWFkSJApTKAJWESIFRPjHBirQYUOa5wqjJjqc4Wy1lxFCbZSLOocNvUZISrSAgNIlKnxKJZjCE4AE1gACGqQHSaYAICFhGoVKIOVGIL1UkwI4rajGgasl20rkryqyrdQVGcmYokM+XxJjzRIeRGqsmLUJEdHkyKOZh4UyCOECVm1WKMwYsJUwdhk4wckr6iTOrmzY6htziVgYp0WZPpyE+geYWLitRIypdZyXEaWRmlI9+hJTdCQ45dTbZV3BuDcEpDogwqYkK1xPqANo2kpAlkmUVPQVw49W4n/SXJDFel0eNJprsggTXZDqqSLRS5TGRF6KQUGlItauJMwcQYgnGFagQWgsusQxFjX0KEXoslOBBz4CJskkJUSDCpUuA8l4UGd5QAo6lJixColQJXKMuX6uW5NMikxmkUmTREi0OnSJGaGEOczYZZ7+uWyBBCuHQ3XMA+uF0dSJR0PVGiv2IzkBFhIM2uJyVcR7xZS4zAnCYtUTJmDpkCRXJcFMvsAtQZMIZZMViXoJdhVwUuRu9zLR2N0EpZ1EoiRJFSIt8+QrJYqleJ1H6YD+qTAJ0k2O2EhhjQ6MzoQ00YzUaUMn+LAgJYtFiJTqslzGjCLGuE1NsuXfWVyBosqwS0yt6qUWHTqvkP2dowvoW1Jg8AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         1989   &gt;&lt;/span&gt;
         1990   &lt;img
         1991         class=&quot;gatsby-resp-image-image&quot;
         1992         alt=&quot;cardboard robot&quot;
         1993         title=&quot;cardboard robot&quot;
         1994         src=&quot;/static/9d940d0f21aec7abb6525a0c3097ef1c/a6d36/cardboard.png&quot;
         1995         srcset=&quot;/static/9d940d0f21aec7abb6525a0c3097ef1c/222b7/cardboard.png 163w,
         1996 /static/9d940d0f21aec7abb6525a0c3097ef1c/ff46a/cardboard.png 325w,
         1997 /static/9d940d0f21aec7abb6525a0c3097ef1c/a6d36/cardboard.png 650w,
         1998 /static/9d940d0f21aec7abb6525a0c3097ef1c/e548f/cardboard.png 975w,
         1999 /static/9d940d0f21aec7abb6525a0c3097ef1c/5c744/cardboard.png 1206w&quot;
         2000         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2001         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2002         loading=&quot;lazy&quot;
         2003       /&gt;
         2004   &lt;/a&gt;
         2005     &lt;/span&gt;&lt;/p&gt;
         2006 &lt;p&gt;This little guy is one of many cardboard robots that I&apos;ve made over the years. During summers, my sister and I would go to Vineland, New Jersey to stay with my aunt and cousins for a glorious week of catching frogs, playing Sega Genesis, eating spoonfuls of iced tea mix, and arts &apos;n&apos; crafts.&lt;/p&gt;
         2007 &lt;p&gt;For some reason, we&apos;d always center on a unique theme each year for our arts &apos;n&apos; crafts. One summer, it was &lt;a href=&quot;https://www.charlieharrington.com/create-wonderful-things-be-good-have-fun&quot;&gt;Klutz Press friendship bracelets&lt;/a&gt;. Another was god&apos;s eyes - we made hundreds. Our proudest summer craft of them all? A &quot;working&quot; cardboard R2-D2. If not for a late &apos;90s winter basement flood, Cardboard Artoo would still be with us today.&lt;/p&gt;
         2008 &lt;p&gt;I decided to try my hand at making another cardboard robot because I&apos;ve been thinking a lot about them. Mostly because I&apos;m writing a children&apos;s novel about robots, but also cause it&apos;s summer and that&apos;s the sort of thing you do during summer.&lt;/p&gt;
         2009 &lt;p&gt;There are all kinds of robots, cardboard and not. But there&apos;s a certain sort of robot that makes my gears turn. The rest of this post will review my favorite robots (and the kid who loves them).&lt;/p&gt;
         2010 &lt;h2&gt;Robots I Love&lt;/h2&gt;
         2011 &lt;h3&gt;R.O.B. (Robotic Operating Buddy)&lt;/h3&gt;
         2012 &lt;p&gt;It&apos;s a robot... for your original Nintendo. I&apos;m embarassed to admit it, but I&apos;ve never seen a R.O.B. in real-life, despite scouring every local garage sale in New Jersey for years.&lt;/p&gt;
         2013 &lt;p&gt;&lt;span
         2014       class=&quot;gatsby-resp-image-wrapper&quot;
         2015       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; &quot;
         2016     &gt;
         2017       &lt;a
         2018     class=&quot;gatsby-resp-image-link&quot;
         2019     href=&quot;/static/e2bd304c9728a8ea5a8c8a3e6c78b650/0a47e/rob.png&quot;
         2020     style=&quot;display: block&quot;
         2021     target=&quot;_blank&quot;
         2022     rel=&quot;noopener&quot;
         2023   &gt;
         2024     &lt;span
         2025     class=&quot;gatsby-resp-image-background-image&quot;
         2026     style=&quot;padding-bottom: 126.38036809815951%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAACTpAAAk6QFQJOf4AAAHFUlEQVQ4y22UeUzb5xnHH0OzNa22aSpr0hxaUtKgJtwIyGEICXEgCeW+jxASSGAkpFAwYA4bfGFsMBh8YAMGgwFzQwIOV4Bw3yFk6tapU6Wq3aKqU6Yqixrbv2evyR9Ttr3So/d9f++rz+/7HO8DQEZ5Qa51glNn6FDEKrT58ukqNOs696ytLIg215d/3tpYefFkY+Xp5tpix9b60p3tzZUz337zl73L89Ngta62Jvi/g8/j2nyRkw1/frZx9o9P13d2tlZwcXoMV+ancXXpMW6szOPa0iw+GruPYyMD8pnJEVicHaeNDPX8Lyw46KrN5YBLEBYSTP8s6Apm3E7Fqkr+67YmFTVpHLI82VgyLz6eNI+PDLzsamtEXZPSWFHOApmYS+vU/ZfCjJspcNT+mO1xBwc45e0tP3bsE9z/0YGXBw8eopycnZHBYFC1VSKcGB0wGdqbUSOv+VdDXbWTXFoJjcpaG3ZxydtAf18f2Lf/gK3d7/bBkSNHKuh0Onp4eKCTkxOeO+dnOXLUHvOy75oNRFmLWv59b5fOt6mhbhfGLWaCWlH3NvA8/Sy4OLvQTp44CZ9+euJDR0enphMnTn5JzOzp6YWHDh02sYuY2N7c8Fjf3vpbaxKISltBaQEws9Khq137NrCzXQdenl4E6rq73/OLvRAaFv7uwUOHHRPi4rZup6VhCasA62ul2QqZFFqbNe/NTk/ZDPS0w+hwL4wZ78PK0vwbGLuIBYi4uw646E/78Yfn8MPfvweVsn73m4Bb/rBSKEQBl4uNDUpmS3MjbK6vwdTEQ9h+skWbm5mizc1OwdLCY3j+3TcAbeSCFZhxK802PCQYnj194jE9NakYfzi6ODoyvCMRVbzkcjjIKyvDRrXyq/4+g2RizJj7aHLswubGBizMzYAVujg/C7PTEwCDPV3AKS22YRUwQSTgBRk69Tj6YBiHBvtQ06AkrhYil1NGFRcWWMQVfLw/1I/jxhGceDiCM48mC3588Yq2trK4C16cm/5PHDPTb2fdunnjxZ0/pGOnvu1VR7vOTGJmllVLqOrKCpSKRdjZ3mqZGBs1TU0YTcuLc6b11SUkrqpWlxeAGG1pYRZAyCsHVn7eu1wO+x+5OdnI8L+A1eJKbFDUWzRKuUmrabA0EaV6XQs1PNCHU+OjlKGzDXu7uyy9hg40Phh4PthneP/+YC88GOoFqKiqsQqkccvYU2XsUgxgMGRSSeWOoq4WNSoFSYQCCdjyZq2i5LIaKufeXczLyTb7+fqgTqveITmwsULQ/PKNu4kJ8ZB1JzOfV8YhZ7inSa34VV1NtZ9GqUiVSatXVfJ6K9wsrhDiF5/fw/y8POrzrCxMiI1GZm7Ooyufhf3S3cMDfHzoNhAXG/vBBf+LeZkZ6X9LT0t9HRUdfSwxIQGEfB6QMEBhXq6Wlc9EEmNTVEQEdTXwMhVwkYFhwcE/kfMzH9jZZbq6us76+19w8Pb2AvCl069Zn9mpU6fRx8cX6T4+y4lJSf7FrMLoQmbuanxMNHq4uVsuMRh443oyxS5mUfK6GpTLqv6pkFV3d+u1YQ4Ox2+5uDgvRoSH2cFpT8/fODk6Btl/bM9xd3efuHI5EL0JnLxh9Pb2Rlc3N+paYiIpHxaSR0ASJsJqSSVVQ5qFolaMHa2NP5MwvXP8uMOot5dnKpwhMmm0d+DG9WswYRw8r9NqSFyyzVGR4aaAwEDzdaJKJq1CUqtUKVFH4kwVFTCxkl9GNTfUmfu69abAAMa2g4PDxKWL/vYQExVBS0qI2/Ps620wdLfp9HIZalnFr/msfKzilVH10ipKIhIiv4yNIn458thFKOAUYa1EQHV3tFr6DO3IJlVPcrt3N8PtWjVo1XJoVtW9r2/RfEuaJSprxJYKdjElYOZhUXoG8osKsVYsQKmIh/XVIlTJJFRro4LqN+isnRufbW96KuUykFaJbaGtSUlrUdeDViXbR7rzT6QtUVVCrklSwTV36JooXbMK1XXVVKOihrQvFaWsFVsUNWLzgEH3uq9Di/2GtlfdnR37v/7qTzDcb6BBeQmLxszOgvzsLLvy0iJKWF6KbBYTK8isb1abWzUKM2mq5h59i2mwW29R10tRJhGgrlGJMpIYEa/MiPimoDlFxPMA/4u7G2vHCb56NZnUV1dMRLgwKyN9TizgYaNCRgBCrJdKUCLkYmkh87t7mRkzGbdSxZGhocn2Rz/5dVx0NKSlpNCMQ10AfnRfOHeWDl5uHsAg8JCgIEgmL8f6g6jw8Fpy8a9J8XHjCTExd/39zp92Puny4aSxH0oKmRAeEgK/P/wxpKakwJ2MdBgfHQSIjYyEuChikREQHRFhkxgXa5uWkmxrBYaHhsIBu4/eE/E5kBQfD34+58DVyQ3GHvTQeJwS25RrSbY3k5NpVoXXk5KgOC8X/g0JzsMMDT4kIQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         2027   &gt;&lt;/span&gt;
         2028   &lt;img
         2029         class=&quot;gatsby-resp-image-image&quot;
         2030         alt=&quot;rob1&quot;
         2031         title=&quot;rob1&quot;
         2032         src=&quot;/static/e2bd304c9728a8ea5a8c8a3e6c78b650/0a47e/rob.png&quot;
         2033         srcset=&quot;/static/e2bd304c9728a8ea5a8c8a3e6c78b650/222b7/rob.png 163w,
         2034 /static/e2bd304c9728a8ea5a8c8a3e6c78b650/ff46a/rob.png 325w,
         2035 /static/e2bd304c9728a8ea5a8c8a3e6c78b650/0a47e/rob.png 600w&quot;
         2036         sizes=&quot;(max-width: 600px) 100vw, 600px&quot;
         2037         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2038         loading=&quot;lazy&quot;
         2039       /&gt;
         2040   &lt;/a&gt;
         2041     &lt;/span&gt;&lt;/p&gt;
         2042 &lt;blockquote&gt;
         2043 &lt;p&gt;Source: &lt;a href=&quot;https://en.wikipedia.org/wiki/R.O.B.&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
         2044 &lt;/blockquote&gt;
         2045 &lt;p&gt;These Nintendo ads are just perfection. I&apos;m still more excited for the promise of this system than any game console out today.&lt;/p&gt;
         2046 &lt;p&gt;&lt;span
         2047       class=&quot;gatsby-resp-image-wrapper&quot;
         2048       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2049     &gt;
         2050       &lt;a
         2051     class=&quot;gatsby-resp-image-link&quot;
         2052     href=&quot;/static/249e6e5d55d9532ba82345dee293de3a/9c538/rob-1.jpg&quot;
         2053     style=&quot;display: block&quot;
         2054     target=&quot;_blank&quot;
         2055     rel=&quot;noopener&quot;
         2056   &gt;
         2057     &lt;span
         2058     class=&quot;gatsby-resp-image-background-image&quot;
         2059     style=&quot;padding-bottom: 129.4478527607362%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAaABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBBAUG/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAAB2luUPJCpkdFQL5If/8QAHhAAAQQCAwEAAAAAAAAAAAAAAQACAwQQExIhIjL/2gAIAQEAAQUCcCvSHQc5rFvixYh2iKtzOK/0v//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EACAQAAEDAgcAAAAAAAAAAAAAAAEAEBECIRIiM0FxkaH/2gAIAQEABj8CsVu2YgLUp7YXiERj8c8N/8QAHBABAQEAAgMBAAAAAAAAAAAAAREAITEQIGFx/9oACAEBAAE/IS8p+YpMPAtxlN+uEYeBwWzvV0Rg7dCE9E//2gAMAwEAAgADAAAAEDDGQP/EABYRAQEBAAAAAAAAAAAAAAAAABABEf/aAAgBAwEBPxA2n//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QH//EAB0QAQEAAgMAAwAAAAAAAAAAAAERACEQMVFBobH/2gAIAQEAAT8QQXa9MZCmu6OsWhfrgloYJFwciugjh9/4WTSe4bwEdj56N5ApYSuPWfVfvH//2Q==&apos;); background-size: cover; display: block;&quot;
         2060   &gt;&lt;/span&gt;
         2061   &lt;img
         2062         class=&quot;gatsby-resp-image-image&quot;
         2063         alt=&quot;rob2&quot;
         2064         title=&quot;rob2&quot;
         2065         src=&quot;/static/249e6e5d55d9532ba82345dee293de3a/6aca1/rob-1.jpg&quot;
         2066         srcset=&quot;/static/249e6e5d55d9532ba82345dee293de3a/d2f63/rob-1.jpg 163w,
         2067 /static/249e6e5d55d9532ba82345dee293de3a/c989d/rob-1.jpg 325w,
         2068 /static/249e6e5d55d9532ba82345dee293de3a/6aca1/rob-1.jpg 650w,
         2069 /static/249e6e5d55d9532ba82345dee293de3a/7c09c/rob-1.jpg 975w,
         2070 /static/249e6e5d55d9532ba82345dee293de3a/01ab0/rob-1.jpg 1300w,
         2071 /static/249e6e5d55d9532ba82345dee293de3a/9c538/rob-1.jpg 2550w&quot;
         2072         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2073         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2074         loading=&quot;lazy&quot;
         2075       /&gt;
         2076   &lt;/a&gt;
         2077     &lt;/span&gt;&lt;/p&gt;
         2078 &lt;p&gt;&lt;span
         2079       class=&quot;gatsby-resp-image-wrapper&quot;
         2080       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2081     &gt;
         2082       &lt;a
         2083     class=&quot;gatsby-resp-image-link&quot;
         2084     href=&quot;/static/1f2df2dc5f2c9d2e7931bd92c78eef19/a0850/rob-2.jpg&quot;
         2085     style=&quot;display: block&quot;
         2086     target=&quot;_blank&quot;
         2087     rel=&quot;noopener&quot;
         2088   &gt;
         2089     &lt;span
         2090     class=&quot;gatsby-resp-image-background-image&quot;
         2091     style=&quot;padding-bottom: 64.41717791411043%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdiNnGAP/8QAGhABAQEAAwEAAAAAAAAAAAAAAQIDABESMf/aAAgBAQABBQK0K30M+T8rMaqfQHR//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAwADAAAAAAAAAAAAAAAAAAEREBKB/9oACAEBAAY/AkK3mNiMh//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExQVH/2gAIAQEAAT8hQ0O9vD34gkLZI2oRwCLTEf/aAAwDAQACAAMAAAAQUM//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAcEAEBAAICAwAAAAAAAAAAAAABEQAhMUFRYXH/2gAIAQEAAT8QQD7rFp5gYknLSKsnV95zo0tcCK8UFB+neaksXWkcPQeAz//Z&apos;); background-size: cover; display: block;&quot;
         2092   &gt;&lt;/span&gt;
         2093   &lt;img
         2094         class=&quot;gatsby-resp-image-image&quot;
         2095         alt=&quot;rob3&quot;
         2096         title=&quot;rob3&quot;
         2097         src=&quot;/static/1f2df2dc5f2c9d2e7931bd92c78eef19/6aca1/rob-2.jpg&quot;
         2098         srcset=&quot;/static/1f2df2dc5f2c9d2e7931bd92c78eef19/d2f63/rob-2.jpg 163w,
         2099 /static/1f2df2dc5f2c9d2e7931bd92c78eef19/c989d/rob-2.jpg 325w,
         2100 /static/1f2df2dc5f2c9d2e7931bd92c78eef19/6aca1/rob-2.jpg 650w,
         2101 /static/1f2df2dc5f2c9d2e7931bd92c78eef19/7c09c/rob-2.jpg 975w,
         2102 /static/1f2df2dc5f2c9d2e7931bd92c78eef19/01ab0/rob-2.jpg 1300w,
         2103 /static/1f2df2dc5f2c9d2e7931bd92c78eef19/a0850/rob-2.jpg 4096w&quot;
         2104         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2105         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2106         loading=&quot;lazy&quot;
         2107       /&gt;
         2108   &lt;/a&gt;
         2109     &lt;/span&gt;&lt;/p&gt;
         2110 &lt;p&gt;&lt;span
         2111       class=&quot;gatsby-resp-image-wrapper&quot;
         2112       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2113     &gt;
         2114       &lt;a
         2115     class=&quot;gatsby-resp-image-link&quot;
         2116     href=&quot;/static/919afde0ddef82184e8b12c4f32a0574/9c538/rob-3.jpg&quot;
         2117     style=&quot;display: block&quot;
         2118     target=&quot;_blank&quot;
         2119     rel=&quot;noopener&quot;
         2120   &gt;
         2121     &lt;span
         2122     class=&quot;gatsby-resp-image-background-image&quot;
         2123     style=&quot;padding-bottom: 129.4478527607362%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAaABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMFAgH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABrcalHjBZ6auYDZX/xAAcEAACAgIDAAAAAAAAAAAAAAABAgADERIQEzH/2gAIAQEAAQUCJOctF8sfRFuJeNW2vUFVDlYABx//xAAVEQEBAAAAAAAAAAAAAAAAAAARIP/aAAgBAwEBPwFj/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAQMEAwAAAAAAAAAAAAAAAAECERASIjEhQWH/2gAIAQEABj8COzkV0SI1W79ouM3bLspEWmqf/8QAHhABAAIBBAMAAAAAAAAAAAAAAQARECExQWFRcZH/2gAIAQEAAT8hKgX5iN3m5xYcQvBq1LYQKLrXXghx00q524RmwA9GP//aAAwDAQACAAMAAAAQ58/M/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/EEDk2f/EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EIQ//8QAHhAAAgMAAgMBAAAAAAAAAAAAAREAITEQUUFhgaH/2gAIAQEAAT8QXLujBc3boZCgJHsIrWKmTZA37Bg+olEHiHBzrY0tIb8CEwgAEmkB1QbvtwyY0aF+S2xpddA4/9k=&apos;); background-size: cover; display: block;&quot;
         2124   &gt;&lt;/span&gt;
         2125   &lt;img
         2126         class=&quot;gatsby-resp-image-image&quot;
         2127         alt=&quot;rob4&quot;
         2128         title=&quot;rob4&quot;
         2129         src=&quot;/static/919afde0ddef82184e8b12c4f32a0574/6aca1/rob-3.jpg&quot;
         2130         srcset=&quot;/static/919afde0ddef82184e8b12c4f32a0574/d2f63/rob-3.jpg 163w,
         2131 /static/919afde0ddef82184e8b12c4f32a0574/c989d/rob-3.jpg 325w,
         2132 /static/919afde0ddef82184e8b12c4f32a0574/6aca1/rob-3.jpg 650w,
         2133 /static/919afde0ddef82184e8b12c4f32a0574/7c09c/rob-3.jpg 975w,
         2134 /static/919afde0ddef82184e8b12c4f32a0574/01ab0/rob-3.jpg 1300w,
         2135 /static/919afde0ddef82184e8b12c4f32a0574/9c538/rob-3.jpg 2550w&quot;
         2136         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2137         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2138         loading=&quot;lazy&quot;
         2139       /&gt;
         2140   &lt;/a&gt;
         2141     &lt;/span&gt;&lt;/p&gt;
         2142 &lt;blockquote&gt;
         2143 &lt;p&gt;Source: &lt;a href=&quot;https://twitter.com/heyphilsummers/status/1199532600911683585&quot;&gt;Twitter&lt;/a&gt;&lt;/p&gt;
         2144 &lt;/blockquote&gt;
         2145 &lt;p&gt;R.O.B. only ever worked with two Nintendo games. From what I&apos;ve read, neither is very fun. But I&apos;m sure there are some great ROM-hacks out there with more robotic operating buddy interactions.&lt;/p&gt;
         2146 &lt;h3&gt;Johnny 5&lt;/h3&gt;
         2147 &lt;p&gt;Duh.&lt;/p&gt;
         2148 &lt;p&gt;Johnny 5 looks a lot like R.O.B., except with more nuclear-weapons. He loves reading, loves input, loves New York City. A loyal friend, and perhaps a bit too gullible for his own good.&lt;/p&gt;
         2149 &lt;p&gt;&lt;span
         2150       class=&quot;gatsby-resp-image-wrapper&quot;
         2151       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 564px; &quot;
         2152     &gt;
         2153       &lt;a
         2154     class=&quot;gatsby-resp-image-link&quot;
         2155     href=&quot;/static/def1bd3463f03cf94b8a53217bafb621/7723c/johnny5.jpg&quot;
         2156     style=&quot;display: block&quot;
         2157     target=&quot;_blank&quot;
         2158     rel=&quot;noopener&quot;
         2159   &gt;
         2160     &lt;span
         2161     class=&quot;gatsby-resp-image-background-image&quot;
         2162     style=&quot;padding-bottom: 123.92638036809815%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAZABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAUBAwQC/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAWlF+BGxIq/GzktOQ//EAB0QAAICAQUAAAAAAAAAAAAAAAIDAAExEhMUICL/2gAIAQEAAQUCxSz9QsCquRG6rBYHu9P/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAcEAABBAMBAAAAAAAAAAAAAAACAAEQESAhMUH/2gAIAQEABj8C7SojYpffsUKHH//EABwQAQEBAAIDAQAAAAAAAAAAAAERABAxIVFhgf/aAAgBAQABPyFRVH06flRl60xs+9GFQMT9c4s7HBsSPZrwcf/aAAwDAQACAAMAAAAQnwGC/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFREBAQAAAAAAAAAAAAAAAAAAASD/2gAIAQIBAT8QI//EAB8QAQACAQMFAAAAAAAAAAAAAAEAESExUWEQQXGBof/aAAgBAQABPxA9QHAMrUrAUCi796Ri2N2ws7ZMspNBuW8mxf2LMB28LmsRwvkt9IbrPLprjP/Z&apos;); background-size: cover; display: block;&quot;
         2163   &gt;&lt;/span&gt;
         2164   &lt;img
         2165         class=&quot;gatsby-resp-image-image&quot;
         2166         alt=&quot;johnny-5&quot;
         2167         title=&quot;johnny-5&quot;
         2168         src=&quot;/static/def1bd3463f03cf94b8a53217bafb621/7723c/johnny5.jpg&quot;
         2169         srcset=&quot;/static/def1bd3463f03cf94b8a53217bafb621/d2f63/johnny5.jpg 163w,
         2170 /static/def1bd3463f03cf94b8a53217bafb621/c989d/johnny5.jpg 325w,
         2171 /static/def1bd3463f03cf94b8a53217bafb621/7723c/johnny5.jpg 564w&quot;
         2172         sizes=&quot;(max-width: 564px) 100vw, 564px&quot;
         2173         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2174         loading=&quot;lazy&quot;
         2175       /&gt;
         2176   &lt;/a&gt;
         2177     &lt;/span&gt;&lt;/p&gt;
         2178 &lt;blockquote&gt;
         2179 &lt;p&gt;Source: &lt;a href=&quot;https://synthiam.com/Community/Questions/Original-Movie-Rc-Johnny-5-For-Sale-6415&quot;&gt;Synthiam&lt;/a&gt;&lt;/p&gt;
         2180 &lt;/blockquote&gt;
         2181 &lt;p&gt;Major spoiler-alert for Short Circuit 2, but this action sequence gets me every time:&lt;/p&gt;
         2182 &lt;iframe width=&quot;720&quot; height=&quot;415&quot; src=&quot;https://www.youtube.com/embed/POxMp61Ksbk&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         2183 &lt;h3&gt;Wall-E&lt;/h3&gt;
         2184 &lt;p&gt;What do you get when you cross R.O.B., Johnny 5, and a Tonka truck? This lil&apos; garbage-collecting cutie!&lt;/p&gt;
         2185 &lt;p&gt;&lt;span
         2186       class=&quot;gatsby-resp-image-wrapper&quot;
         2187       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2188     &gt;
         2189       &lt;a
         2190     class=&quot;gatsby-resp-image-link&quot;
         2191     href=&quot;/static/a0029b6a0a4cd8dce5007aece8b5c0e9/eea4a/walle.jpg&quot;
         2192     style=&quot;display: block&quot;
         2193     target=&quot;_blank&quot;
         2194     rel=&quot;noopener&quot;
         2195   &gt;
         2196     &lt;span
         2197     class=&quot;gatsby-resp-image-background-image&quot;
         2198     style=&quot;padding-bottom: 79.75460122699387%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMF/8QAFAEBAAAAAAAAAAAAAAAAAAAAA//aAAwDAQACEAMQAAAB0IYxCuiU/wD/xAAaEAEAAgMBAAAAAAAAAAAAAAABAAIDESIz/9oACAEBAAEFAlN06tl9LXQcqRdz/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/AQE2f//EABYRAAMAAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPwF1FP/EABoQAAIDAQEAAAAAAAAAAAAAAAARAQIxcSH/2gAIAQEABj8CjEbWeFjSF5wbP//EABsQAAICAwEAAAAAAAAAAAAAAAABESExUWFB/9oACAEBAAE/IWIJP7OB01VXWwjSunRxTVs8iTKZ/9oADAMBAAIAAwAAABCb3//EABYRAQEBAAAAAAAAAAAAAAAAAAAhUf/aAAgBAwEBPxDXEf/EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQIBAT8QSYcif//EABwQAQADAQEAAwAAAAAAAAAAAAEAESFBMWFxgf/aAAgBAQABPxBQuFPZyK4WnDTfP2KgpH79yhFhVnIrNrtWPiDoL1bn/9k=&apos;); background-size: cover; display: block;&quot;
         2199   &gt;&lt;/span&gt;
         2200   &lt;img
         2201         class=&quot;gatsby-resp-image-image&quot;
         2202         alt=&quot;wall-e&quot;
         2203         title=&quot;wall-e&quot;
         2204         src=&quot;/static/a0029b6a0a4cd8dce5007aece8b5c0e9/6aca1/walle.jpg&quot;
         2205         srcset=&quot;/static/a0029b6a0a4cd8dce5007aece8b5c0e9/d2f63/walle.jpg 163w,
         2206 /static/a0029b6a0a4cd8dce5007aece8b5c0e9/c989d/walle.jpg 325w,
         2207 /static/a0029b6a0a4cd8dce5007aece8b5c0e9/6aca1/walle.jpg 650w,
         2208 /static/a0029b6a0a4cd8dce5007aece8b5c0e9/7c09c/walle.jpg 975w,
         2209 /static/a0029b6a0a4cd8dce5007aece8b5c0e9/eea4a/walle.jpg 1280w&quot;
         2210         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2211         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2212         loading=&quot;lazy&quot;
         2213       /&gt;
         2214   &lt;/a&gt;
         2215     &lt;/span&gt;&lt;/p&gt;
         2216 &lt;blockquote&gt;
         2217 &lt;p&gt;Source: &lt;a href=&quot;https://gsouto-digitalteacher.blogspot.com/2012/04/wall-e-as-green-resource-for-earth-day.html&quot;&gt;Blogspot&lt;/a&gt;&lt;/p&gt;
         2218 &lt;/blockquote&gt;
         2219 &lt;p&gt;It&apos;s probably becoming quite clear that I&apos;m drawn to a rectangular face on a telescopic neck with tread-like wheels. That&apos;s just my type.&lt;/p&gt;
         2220 &lt;p&gt;I also just discovered this video of someone&apos;s real-life Wall-E, and it&apos;s frightenly real-looking. Maybe this means I&apos;ll get to meet a Wall-E one day, hopefully not on a post-apocalyptic wasteland Earth.&lt;/p&gt;
         2221 &lt;iframe width=&quot;720&quot; height=&quot;415&quot; src=&quot;https://www.youtube.com/embed/7oVSaUWeKt0&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         2222 &lt;h3&gt;The flying robots from *Batteries Not Included&lt;/h3&gt;
         2223 &lt;p&gt;I don&apos;t remember much about this movie, other than that my sister and I watched the recorded-from-TV VHS tape all the time, and there were these super cute baby flying robots who lived with a bunch of old people in an apartment building in New York City.&lt;/p&gt;
         2224 &lt;p&gt;&lt;span
         2225       class=&quot;gatsby-resp-image-wrapper&quot;
         2226       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2227     &gt;
         2228       &lt;a
         2229     class=&quot;gatsby-resp-image-link&quot;
         2230     href=&quot;/static/b82a9f26dcde56c27d022b62cf3e394d/7de01/batteries.png&quot;
         2231     style=&quot;display: block&quot;
         2232     target=&quot;_blank&quot;
         2233     rel=&quot;noopener&quot;
         2234   &gt;
         2235     &lt;span
         2236     class=&quot;gatsby-resp-image-background-image&quot;
         2237     style=&quot;padding-bottom: 149.07975460122697%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAACXBIWXMAABYlAAAWJQFJUiTwAAAFqklEQVRIx62UeUxUVxTG3z9N2qRpUm20tTWNUWnUumuF4lLFRomNW4vbICiISzUV2QRFrBGFuhS1IAguoFVRwCioICoqEZlBWcQiiwszwDjMwjIzsswCvz4WAYmapvHm3dyc5X73fOedcwTe8xLeP2Brq/h177bV2kvX2qnraevt16lA6BLa5JaWjm21duyecufZ5dvD3hO8i7LVavlPlMx6PRaT6TXdaxFampp45ONFoZ83L04cQ19WhvpaKupz8ShEWZWYiPZOBrXX0tDduc3j8ENUJMRTe/MGtbcyUEuzu9m1toiURaFcdH60LZBcZ2fub/Lk3rIl3F+8mAdrV5O32oOsRb+QuXIFuZs2URoWxr2ZDtxZ5U5OgD+569djaaPdGaXQVKGg8ekTdDkySo8fRR57jJLoaMpv3qRG1NdVVFD3vBx1YQG6x0U01tdTI5ejKylGVZCP7smTLurNOi1C+a5gsuc4UuDqQpGXJ4WSZSjOnKY8OoryiL9Qx59BnXKJ6rSrlPn6UJ16BU3yRSoPHaBMZKU8FUd1UkKXLGjy8pBnZFCRfp1nycmoZDKUWXcp8vEhW6Qp8/Agx82dpxcSkUkkyFa6Il26FKmYHpmbG1nLl5MdtI0HzhIKxfOthW3UaDDqdDSIf9VYXY1epP6yro56hXjW1qKvrGy3G6vVNBqNGJQvMKhU4k95VWu99v/ulLY+aO8EuruibbW8Am/TveXR1jf4vJFyz9ZqaWnlXe351uHQfaFdoqG5uxtMFutbH+wNKvQ2WKwd+UvPKeLYhQxMZgtV+iYeq/SoNTWYXxreCSr0zturFbQ3isHD7Vm9K46YrGecz1dSKlfx0mTF2tm3ba3WG1Sgy9ihqDc2cCj1EUMW+PPpYFv8Q/Yhe15NtbaWZ4oqMu/mUCKvem1C9YxY6Jm3iqoqzt54wJHUfKR5WZzNzOW+XEtaXinh4UeICI8mPjWT/X9FEht7EkNdzWug3QO2na8VnVbDK5Om2UJRrYVMuYHEhwrC484TuGU76+LS2H8+jYA1q7hxMaEjVT0qoGvAtlhMWA0amsoe8FRVQ1qZhgJlPUXaRtQNVkrrrWRUGDglLSFdjFhlMNFsqKFBWyUCtnRO9c4cNpnNKJ/+w3NpGrL4SFISz5NZrECpb+4ocHH4GsTcag0i+Eszt4oruV6q4mrUbrKjAtAXXsNUq+ig3CCiPpTepSA2lGhvCe6uEjZ7baRSpcZsttLQ0IjeYESt1ohlo21/oEnMi0apYM0cO7wWOXApZC0lKREYtUoEdXMrxelJ7HB2ZMLQgUz8+jMS4qIxNpooKa/gbNJFdofuYefuUCJPnuFKuji96+rbo7l+wJ/tTlPZMPd7InxdqK8qQ7iTcJzcc4eZbzeMVcuXIMu8yQtxgkSdTmBj4A6mzHVi1EQ7pvy0kKVrfmOJ+1p2hoQStncffqtX4LvEAf+fbTkR7Mn96xcQNkic2OA8n0C3BWilyZjrVKRcTcPV73eGjrdj4NDhjJ5ky7DRY/nKZjgj7Kcz0X4Kk+0n8+247xgwdBjzpo/jeJAbsx1mIthOnsFMe1txgEZSl3yQlCAX1nm4M26qA/0G2TBv1gySg9eQfXgLkd6ujB0/rh3EdpId3sudCHRZgGT2NMYMt8FOxBJmOPxIzA5vkvf5kh8XQsiGZUwUL33cpx+Dh43Af8V8FKd3UnzmD7Ijt7LNbSEf9u3PyFFjiA/2pfhUKIc2ujDexoZpP4iACx1nUZh0hPyYHdz+049YvxWMHTUS4aNPsB0/VoxiAZf3evH3Vg8OeLpyzMeFvl98yaAh35AXdwD52YMkBbiT5OlETMBGhIS92yhIPILqUjjXwgJI2CxhmeM0PujTnznT7Ij1X8nl4HXki9FJDweRvHM9fT8fwIQxY0jf48VR319xnT2FmFWO5J0I41+xFtNJHdHuVgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         2238   &gt;&lt;/span&gt;
         2239   &lt;img
         2240         class=&quot;gatsby-resp-image-image&quot;
         2241         alt=&quot;batteries robots&quot;
         2242         title=&quot;batteries robots&quot;
         2243         src=&quot;/static/b82a9f26dcde56c27d022b62cf3e394d/a6d36/batteries.png&quot;
         2244         srcset=&quot;/static/b82a9f26dcde56c27d022b62cf3e394d/222b7/batteries.png 163w,
         2245 /static/b82a9f26dcde56c27d022b62cf3e394d/ff46a/batteries.png 325w,
         2246 /static/b82a9f26dcde56c27d022b62cf3e394d/a6d36/batteries.png 650w,
         2247 /static/b82a9f26dcde56c27d022b62cf3e394d/7de01/batteries.png 794w&quot;
         2248         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2249         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2250         loading=&quot;lazy&quot;
         2251       /&gt;
         2252   &lt;/a&gt;
         2253     &lt;/span&gt;&lt;/p&gt;
         2254 &lt;blockquote&gt;
         2255 &lt;p&gt;Source: &lt;a href=&quot;https://play.google.com/store/movies/details?id=lfDVLChs2jI&amp;#x26;gl=US&amp;#x26;utm_source=na_Med&amp;#x26;utm_medium=hasem&amp;#x26;utm_campaign=MoviesPLA&amp;#x26;pcampaignid=MKT-DR-na-us-all-Med-pla-mo-Evergreen-Dec1115-1-movieslibrary&amp;#x26;gclid=CjwKCAjwyo36BRAXEiwA24CwGWL_psFBrrF21EnfNQPDkkWrr37zjejRvlynYt1oSgr2cXgp5DmPyhoCppwQAvD_BwE&amp;#x26;gclsrc=aw.ds&quot;&gt;Google Play Store&lt;/a&gt;&lt;/p&gt;
         2256 &lt;/blockquote&gt;
         2257 &lt;p&gt;I think these robots might actually be aliens, but I&apos;m not sure, so let&apos;s keep &apos;em around.&lt;/p&gt;
         2258 &lt;h3&gt;2-XL&lt;/h3&gt;
         2259 &lt;p&gt;I&apos;m all about using robots for learning (see my post on &lt;a href=&quot;/mindstorms&quot;&gt;Mindstorms, Seymour Papert, and his cute LOGO Turtle robots for teaching kids how to program computers&lt;/a&gt;), and 2-XL was my first introduction to robot-powered-learning.&lt;/p&gt;
         2260 &lt;p&gt;&lt;span
         2261       class=&quot;gatsby-resp-image-wrapper&quot;
         2262       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2263     &gt;
         2264       &lt;a
         2265     class=&quot;gatsby-resp-image-link&quot;
         2266     href=&quot;/static/e427b0ab3f3772309062f6c535faf3a6/eea4a/2-xl.jpg&quot;
         2267     style=&quot;display: block&quot;
         2268     target=&quot;_blank&quot;
         2269     rel=&quot;noopener&quot;
         2270   &gt;
         2271     &lt;span
         2272     class=&quot;gatsby-resp-image-background-image&quot;
         2273     style=&quot;padding-bottom: 132.51533742331287%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAwUG/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAczRU3wuZGhElyC6Rws//8QAHRAAAgIBBQAAAAAAAAAAAAAAAQIAESEDBBATM//aAAgBAQABBQJVsjaXCuU9O/Thy1UwWoowQDK4/8QAFhEBAQEAAAAAAAAAAAAAAAAAEAER/9oACAEDAQE/AYaf/8QAFxEBAAMAAAAAAAAAAAAAAAAAAQAQEf/aAAgBAgEBPwFZt//EABsQAAICAwEAAAAAAAAAAAAAAAERABAgMXHh/9oACAEBAAY/Ap5aBfIa2sf/xAAaEAEBAQADAQAAAAAAAAAAAAABEQAhMVFB/9oACAEBAAE/IZxNciycL00UeYQN6c05XzDR6ua+O8woK59d9BhCmAdGAhv/2gAMAwEAAgADAAAAEFs5Dv/EABgRAQEBAQEAAAAAAAAAAAAAAAEAETEh/9oACAEDAQE/EA8CyEcn12//xAAYEQADAQEAAAAAAAAAAAAAAAAAARExUf/aAAgBAgEBPxDSuCE6JH//xAAdEAEAAgIDAQEAAAAAAAAAAAABABEhMUFRYXGB/9oACAEBAAE/ELUwsN1l1LB7qDyPWr+kRnaR/IaNKLOqqbE7ovP1xDLEFU8ZmZqrI96gjgkOzwinOVcmYCkgWTFAHQVHMnE//9k=&apos;); background-size: cover; display: block;&quot;
         2274   &gt;&lt;/span&gt;
         2275   &lt;img
         2276         class=&quot;gatsby-resp-image-image&quot;
         2277         alt=&quot;2xl&quot;
         2278         title=&quot;2xl&quot;
         2279         src=&quot;/static/e427b0ab3f3772309062f6c535faf3a6/6aca1/2-xl.jpg&quot;
         2280         srcset=&quot;/static/e427b0ab3f3772309062f6c535faf3a6/d2f63/2-xl.jpg 163w,
         2281 /static/e427b0ab3f3772309062f6c535faf3a6/c989d/2-xl.jpg 325w,
         2282 /static/e427b0ab3f3772309062f6c535faf3a6/6aca1/2-xl.jpg 650w,
         2283 /static/e427b0ab3f3772309062f6c535faf3a6/7c09c/2-xl.jpg 975w,
         2284 /static/e427b0ab3f3772309062f6c535faf3a6/eea4a/2-xl.jpg 1280w&quot;
         2285         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2286         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2287         loading=&quot;lazy&quot;
         2288       /&gt;
         2289   &lt;/a&gt;
         2290     &lt;/span&gt;&lt;/p&gt;
         2291 &lt;blockquote&gt;
         2292 &lt;p&gt;Source: &lt;a href=&quot;https://en.wikipedia.org/wiki/2-XL&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
         2293 &lt;/blockquote&gt;
         2294 &lt;p&gt;We got our 2-XL at a garage sale (garage sales were things of wonder to me as a child). Yes, we had the original 2-XL, the eight-track one. In fact, 2-XL was my first and only interaction with an eight-track system. In the early `90s, Tiger Electronics must have bought 2-XL, and they came out with a cassette-version. &lt;/p&gt;
         2295 &lt;p&gt;&lt;span
         2296       class=&quot;gatsby-resp-image-wrapper&quot;
         2297       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; &quot;
         2298     &gt;
         2299       &lt;a
         2300     class=&quot;gatsby-resp-image-link&quot;
         2301     href=&quot;/static/b4f82ab27f934ed502846b4686fb90e3/41099/2-xl-cassette.jpg&quot;
         2302     style=&quot;display: block&quot;
         2303     target=&quot;_blank&quot;
         2304     rel=&quot;noopener&quot;
         2305   &gt;
         2306     &lt;span
         2307     class=&quot;gatsby-resp-image-background-image&quot;
         2308     style=&quot;padding-bottom: 78.52760736196319%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABlpasNmRX/8QAGBABAQEBAQAAAAAAAAAAAAAAAQIDABH/2gAIAQEAAQUC0U6X2evNrinKTQT/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAaEAABBQEAAAAAAAAAAAAAAAAAARAREiEx/9oACAEBAAY/AsfCsHFP/8QAHBAAAgICAwAAAAAAAAAAAAAAAAERQRAhMXGh/9oACAEBAAE/IVXOeyId3hW0Erc1b0iWeB//2gAMAwEAAgADAAAAEIsP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8QJ//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQVFxkf/aAAgBAQABPxBLVAKCh6xnkaBTV8xcxiN0mcPYwE3rfoYedw0zXdXPs//Z&apos;); background-size: cover; display: block;&quot;
         2309   &gt;&lt;/span&gt;
         2310   &lt;img
         2311         class=&quot;gatsby-resp-image-image&quot;
         2312         alt=&quot;2xl cassette version&quot;
         2313         title=&quot;2xl cassette version&quot;
         2314         src=&quot;/static/b4f82ab27f934ed502846b4686fb90e3/41099/2-xl-cassette.jpg&quot;
         2315         srcset=&quot;/static/b4f82ab27f934ed502846b4686fb90e3/d2f63/2-xl-cassette.jpg 163w,
         2316 /static/b4f82ab27f934ed502846b4686fb90e3/c989d/2-xl-cassette.jpg 325w,
         2317 /static/b4f82ab27f934ed502846b4686fb90e3/41099/2-xl-cassette.jpg 500w&quot;
         2318         sizes=&quot;(max-width: 500px) 100vw, 500px&quot;
         2319         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2320         loading=&quot;lazy&quot;
         2321       /&gt;
         2322   &lt;/a&gt;
         2323     &lt;/span&gt;&lt;/p&gt;
         2324 &lt;blockquote&gt;
         2325 &lt;p&gt;Source: &lt;a href=&quot;https://en.wikipedia.org/wiki/2-XL&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
         2326 &lt;/blockquote&gt;
         2327 &lt;p&gt;But I&apos;ll always prefer our smart-alecky 8-track 2-XL, and my fond memories of jamming catridges into his belly, wishing that he was a Nintendo Entertainment System instead.&lt;/p&gt;
         2328 &lt;h3&gt;Mega Man X&lt;/h3&gt;
         2329 &lt;p&gt;When I was a kid, I was pretty sure that one day I was going to become Mega Man X. Buried alive in a weird time capsule, awokened years later to avenge my creator, upgrading my body with strange new powers.&lt;/p&gt;
         2330 &lt;p&gt;&lt;span
         2331       class=&quot;gatsby-resp-image-wrapper&quot;
         2332       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; &quot;
         2333     &gt;
         2334       &lt;a
         2335     class=&quot;gatsby-resp-image-link&quot;
         2336     href=&quot;/static/39d29464655aae0ce2f0e13229322f16/41099/mmx.jpg&quot;
         2337     style=&quot;display: block&quot;
         2338     target=&quot;_blank&quot;
         2339     rel=&quot;noopener&quot;
         2340   &gt;
         2341     &lt;span
         2342     class=&quot;gatsby-resp-image-background-image&quot;
         2343     style=&quot;padding-bottom: 73.61963190184049%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAIE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAYZjmRQL/8QAGxABAAICAwAAAAAAAAAAAAAAAQACAxESEyH/2gAIAQEAAQUCrxYgK+uYq9jNk//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPwHFn//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEv/aAAgBAgEBPwESv//EABoQAAIDAQEAAAAAAAAAAAAAAAABESExkTL/2gAIAQEABj8CxcLwdLhEFo8o/8QAGxAAAgMAAwAAAAAAAAAAAAAAAAERITFBUWH/2gAIAQEAAT8h51XgiKIRqxY2K0t7Zg1OCSw//9oADAMBAAIAAwAAABA8D//EABcRAQEBAQAAAAAAAAAAAAAAAAEAMRH/2gAIAQMBAT8Q50Izb//EABYRAQEBAAAAAAAAAAAAAAAAAAExAP/aAAgBAgEBPxBBGZs3/8QAHBABAAMAAwEBAAAAAAAAAAAAAQARMSFBUZHR/9oACAEBAAE/EFakNJR1KLVqHhXziKBUgcPY2G6TY2LmeSw0ePf2KUBbff7P/9k=&apos;); background-size: cover; display: block;&quot;
         2344   &gt;&lt;/span&gt;
         2345   &lt;img
         2346         class=&quot;gatsby-resp-image-image&quot;
         2347         alt=&quot;Mega Man X&quot;
         2348         title=&quot;Mega Man X&quot;
         2349         src=&quot;/static/39d29464655aae0ce2f0e13229322f16/41099/mmx.jpg&quot;
         2350         srcset=&quot;/static/39d29464655aae0ce2f0e13229322f16/d2f63/mmx.jpg 163w,
         2351 /static/39d29464655aae0ce2f0e13229322f16/c989d/mmx.jpg 325w,
         2352 /static/39d29464655aae0ce2f0e13229322f16/41099/mmx.jpg 500w&quot;
         2353         sizes=&quot;(max-width: 500px) 100vw, 500px&quot;
         2354         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2355         loading=&quot;lazy&quot;
         2356       /&gt;
         2357   &lt;/a&gt;
         2358     &lt;/span&gt;&lt;/p&gt;
         2359 &lt;blockquote&gt;
         2360 &lt;p&gt;Source: &lt;a href=&quot;https://www.amazon.co.uk/Mega-Man-Megaman-X/dp/B00004TMBD&quot;&gt;Amazon&lt;/a&gt;&lt;/p&gt;
         2361 &lt;/blockquote&gt;
         2362 &lt;p&gt;I&apos;m still waiting for that to happen, but the the mean time, I recently started playing Mega Max X2, and it&apos;s hard! I&apos;m four bosses in, haven&apos;t found a single upgrade, and only snagged one heart container so far. Wish me luck.&lt;/p&gt;
         2363 &lt;h3&gt;DUM-E and U&lt;/h3&gt;
         2364 &lt;p&gt;Robot arms with quirky personalities, built by someone named Tony Stark.&lt;/p&gt;
         2365 &lt;p&gt;&lt;span
         2366       class=&quot;gatsby-resp-image-wrapper&quot;
         2367       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; &quot;
         2368     &gt;
         2369       &lt;a
         2370     class=&quot;gatsby-resp-image-link&quot;
         2371     href=&quot;/static/653244aa1db702282adae95d91fb4138/41099/starm.jpg&quot;
         2372     style=&quot;display: block&quot;
         2373     target=&quot;_blank&quot;
         2374     rel=&quot;noopener&quot;
         2375   &gt;
         2376     &lt;span
         2377     class=&quot;gatsby-resp-image-background-image&quot;
         2378     style=&quot;padding-bottom: 80.3680981595092%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAQX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABnbWlnOgH/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAIBAxESEyL/2gAIAQEAAQUCW41qaPCjQ2KVlTmf/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHhAAAgIABwAAAAAAAAAAAAAAABEBIQIiMTJhgZH/2gAIAQEABj8CmtCFEuRX6ZVyLEujaf/EABsQAQACAwEBAAAAAAAAAAAAAAEAESExQXGh/9oACAEBAAE/IU0Kr5MkralIiAQWeuw1uK4tKcn/2gAMAwEAAgADAAAAEEjv/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxABAAMBAQEBAAAAAAAAAAAAAQARITFRcWH/2gAIAQEAAT8Qom8BY77+3BK8lKgu3TccAc6r5Kx51JHWfT8m5kOwfIBwL1uuz//Z&apos;); background-size: cover; display: block;&quot;
         2379   &gt;&lt;/span&gt;
         2380   &lt;img
         2381         class=&quot;gatsby-resp-image-image&quot;
         2382         alt=&quot;Stark&quot;
         2383         title=&quot;Stark&quot;
         2384         src=&quot;/static/653244aa1db702282adae95d91fb4138/41099/starm.jpg&quot;
         2385         srcset=&quot;/static/653244aa1db702282adae95d91fb4138/d2f63/starm.jpg 163w,
         2386 /static/653244aa1db702282adae95d91fb4138/c989d/starm.jpg 325w,
         2387 /static/653244aa1db702282adae95d91fb4138/41099/starm.jpg 500w&quot;
         2388         sizes=&quot;(max-width: 500px) 100vw, 500px&quot;
         2389         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2390         loading=&quot;lazy&quot;
         2391       /&gt;
         2392   &lt;/a&gt;
         2393     &lt;/span&gt;&lt;/p&gt;
         2394 &lt;blockquote&gt;
         2395 &lt;p&gt;Source: &lt;a href=&quot;https://ironman.fandom.com/wiki/Dum-E_and_U&quot;&gt;Fandom&lt;/a&gt;&lt;/p&gt;
         2396 &lt;/blockquote&gt;
         2397 &lt;p&gt;PSA - check out &lt;a href=&quot;https://www.amazon.com/gp/product/1250192757/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1250192757&amp;#x26;linkId=041dcc62a5770e833dc59991bf57e5ee&quot;&gt;Sourdough by Robin Sloan&lt;/a&gt; for a great little novel on robot arms, bread-making, and San Francisco.&lt;/p&gt;
         2398 &lt;h3&gt;Metal Head&lt;/h3&gt;
         2399 &lt;p&gt;Two of my favorite things in one terrifying package - turtles and robots:&lt;/p&gt;
         2400 &lt;p&gt;&lt;span
         2401       class=&quot;gatsby-resp-image-wrapper&quot;
         2402       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2403     &gt;
         2404       &lt;a
         2405     class=&quot;gatsby-resp-image-link&quot;
         2406     href=&quot;/static/77ae95136bf95ec6a8828bce2a0b9f3f/b8284/metalhead.jpg&quot;
         2407     style=&quot;display: block&quot;
         2408     target=&quot;_blank&quot;
         2409     rel=&quot;noopener&quot;
         2410   &gt;
         2411     &lt;span
         2412     class=&quot;gatsby-resp-image-background-image&quot;
         2413     style=&quot;padding-bottom: 91.41104294478527%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAASABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAEEAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAfUz9Sa3MzZo1Qf/xAAbEAACAgMBAAAAAAAAAAAAAAABAgMRABASE//aAAgBAQABBQKZl5sBUcOrX6SqQEhHOjn/xAAVEQEBAAAAAAAAAAAAAAAAAAABIP/aAAgBAwEBPwEWP//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EAB4QAAIBBAMBAAAAAAAAAAAAAAABEQIhQWEgIjFx/9oACAEBAAY/At6KXNU/SUPrZ5XpKWLihvh//8QAHBAAAgIDAQEAAAAAAAAAAAAAAAERITFBUWGB/9oACAEBAAE/IWIS7UmHYAcwFPdrgzQQ8r0LbTWSbfBWrtTYmSZ/D//aAAwDAQACAAMAAAAQIO8A/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREg/9oACAEDAQE/EBEMf//EABgRAAIDAAAAAAAAAAAAAAAAAAABECFB/9oACAECAQE/EGtLn//EAB4QAQADAQACAwEAAAAAAAAAAAEAETEhQVFhgcHR/9oACAEBAAE/ELXcUo2/mvGy7NWboeXmf2KHzS1emWvAQLA9t/aipd19BVl+8qPwTARZZEUtYqjrkSClxP/Z&apos;); background-size: cover; display: block;&quot;
         2414   &gt;&lt;/span&gt;
         2415   &lt;img
         2416         class=&quot;gatsby-resp-image-image&quot;
         2417         alt=&quot;Metal Head&quot;
         2418         title=&quot;Metal Head&quot;
         2419         src=&quot;/static/77ae95136bf95ec6a8828bce2a0b9f3f/6aca1/metalhead.jpg&quot;
         2420         srcset=&quot;/static/77ae95136bf95ec6a8828bce2a0b9f3f/d2f63/metalhead.jpg 163w,
         2421 /static/77ae95136bf95ec6a8828bce2a0b9f3f/c989d/metalhead.jpg 325w,
         2422 /static/77ae95136bf95ec6a8828bce2a0b9f3f/6aca1/metalhead.jpg 650w,
         2423 /static/77ae95136bf95ec6a8828bce2a0b9f3f/7c09c/metalhead.jpg 975w,
         2424 /static/77ae95136bf95ec6a8828bce2a0b9f3f/b8284/metalhead.jpg 985w&quot;
         2425         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2426         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2427         loading=&quot;lazy&quot;
         2428       /&gt;
         2429   &lt;/a&gt;
         2430     &lt;/span&gt;&lt;/p&gt;
         2431 &lt;blockquote&gt;
         2432 &lt;p&gt;Source: &lt;a href=&quot;https://turtlepedia.fandom.com/wiki/Metalhead_(IDW)&quot;&gt;Fandom&lt;/a&gt;&lt;/p&gt;
         2433 &lt;/blockquote&gt;
         2434 &lt;p&gt;Not to be confused with the always-evil Mechaturtles from the impossible original Nintendo TMNT game:&lt;/p&gt;
         2435 &lt;p&gt;&lt;span
         2436       class=&quot;gatsby-resp-image-wrapper&quot;
         2437       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 78px; &quot;
         2438     &gt;
         2439       &lt;a
         2440     class=&quot;gatsby-resp-image-link&quot;
         2441     href=&quot;/static/dfd0388a52796c6aa0b6271fa404d8f9/16745/Mechaturtle1.png&quot;
         2442     style=&quot;display: block&quot;
         2443     target=&quot;_blank&quot;
         2444     rel=&quot;noopener&quot;
         2445   &gt;
         2446     &lt;span
         2447     class=&quot;gatsby-resp-image-background-image&quot;
         2448     style=&quot;padding-bottom: 237.17948717948718%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAvCAYAAADjNOpjAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAI00lEQVRIx5VXCVSU1xV+yqIY44osRsVI0lgVbWIIQYKIAoZlBmaYGYZ9RwQ0RgSpoKDhHFkEFRSDJkAKLljNsbVxC9rYkjTWVu1ps1hzkpNEjyCiIyAZmOXrfe9nWBI16Tvn8r//5/+/d9+93/3uG2Y2m8FHZw/w1y+BS1+R3QA+pevH10343YfNaLvXho4Hndh/shYvqq1xoCEdutv/Av/SbDbBgsEHM4mnXTh/tR1Bxe2Ql7YjpKQNyvL7UJZ8DebOcKSlEYdaDoO9xFC83g6bEhkOvi0TACaTYSQg/3PyUCrK3xyLklxnOIY5gAU4YqFmMnZmW6HsDYYXtXbwiJ6I7esYbH0Z2G8YVIVyAWAwPgLw7HuBSIxgcA2hl70ZXg1lWLXm11hdcgzZO96Hi/YVWC9j8I6dhLrTdWg6fxit//lE8vDHW770NVBbtwvhWXLYx0ZhelwUkrNl+G3pHqhqgPgDwJykeLAlDOPkUzB8DAeyzJlihx7qKiCGPk56G0jYB0TuBSKqgajdOrJuzIoNBfNhcNY8hy+++y9+6OtDv9FI8TMPAJmHANPeAVLJi5T9QHIteUSASWQpNI+q+gETwuaCeTHMiJEhbm8f2AqGP7Q2DfhlEKCmATAOyiYol0OYYjkmKleQNwo4RSvhFKPCzBg5GCVhUVYRvPOaMDs+Ap4bjyG38RaqTgM15/otG4bRNOChqjAY3DRbZZDn+wmAmYEMs4MpQUslW5i1BfPS14uEeec1IrTsDpSVFKY9wOlrJugeYiBBZinLlmGkuDiFOyIxiSEp1Ya2NwZ2wQ6wCrCD1cqnYBfyjNi+R3Y1gfUiYudtBG7X4+Q/7qOv/wF5SR5yHhkM/YL1Ol0bKvKmwE1BnhFNRvtbIaz0BrS7uoSFlX5Fz2wwyt+aFhkL28DJIvbTo8MQVRwgbZkHkpcPHz3dHWgqmoZ5MqJIuCdWFrWIxMRS1rnxuX/RBUxUzMMkpRuW5Z+gmIdhfkYxIisvo/rMALEtgLquDqSvcYS9P2U1Phqr3uUgekRX9wuLqtYjowF4JjoIM4hKnBWcTj6bjiCZmBJa3isBmgYAO3QdGB/qIEjsEh+OuBoJMGaPkQANiNzdQ/e9mKbxom0GIYae8a0vyW1AInE4dg/RiqfbYJQA2+91wEHpKAL/bGIUUomj0dV9wjg/+dUu2Elke3ZClPCas8A776B4l4dkIMsS4MPeDtgr7MU2xoU4Y05iHNSVd8TqK7acxTS1J3wL/kgxnC885IsEFf8dL6RmYNGabeKeXfzchI8+M6L1OqnO5TuYIJ8qMsyNZ1Oz8y6SKFb+hecxk0ifRnGdQYR3jgpAYi1f6Izw2jHCBykHeC1XGKDY0Y9wImpIyR2igj1sXp9A10kYE2QP+fZ/i9jFUZa5p5FU2w4R3nCO9EP4ju/pnWm0sBVck5KIl/fBEvYZKZh6+sBID9qEZ6/lHaLMHROx5JXjW3BSeCavuI9xMhfxjNtTNFeWfyMo5bWxgRJkBRZG3vEHXCC4BzxGqopbUFXehU9ePVWMLZ7TLoB7qgJvFQRgNInDgswiuGXmY5SfNcW4XVDJK++4EF5WfxHQlJ3F/MwKeGxoQMKAhMWRpe0zoyZvGpTRDF7hDOpYSYADtn2MlVv/IpQnkiRuRWEr/DZtRUpFgpTl9Mp42BKZZ2ldEFpyjVa9hXDyUlN2DdlZk1BK0q9OsKZwjIE11bVP/nF45rwjAONrjHha4YPwQt+BJkWMeajXQ9/fj2/bbmJ88FQpdlxpXqMeQnGxDRgttjo2aCrF20QyFin+N5ayy2t5vCIYK3OXDtXykNoYcO7yGZxofR8XrrTg9KUPYLOSCV6y5RKVOAe9NjYS77YK0KdDFyG/bju++PazoSbFQS3lZxmdXZ2o/dO7cH8jj6jhRFxzJAJnCg6+/OZOvLqhlu7TSJxl+PDKVfFNv8EwBGi56vv0Yl535gDYIh70B3iWysw1MV5QJ70OxMOlmKJaLHrQarr/5zeWdoCRAmvps3wcvXhUZHSUH+dlkxAK7e4uUbMu8SohIA7hM3Czo23QGfOPFXs4YPNHzWCeTCTIa+N7oqw0lR2kNJ54JbsK81bnY6LMFvcoNMMV67GAR/58WATdNTFaCAAv/IhdOrjEqankvoNPwTnKPiPJuzei4T8W8PCFJsquNZWkgbg2pItJtdJ8Sc4euCX9ijzU/VIPOaAVYqu7pX69F0IkeGKmaGQILXh9xPuDjf5xgAcvHAHzYJii9cM4pQfc1paLrLomRlCyRkG1VTHYKX9yWBrZSiXAlk+aMZ8OT+4qhpfo8PRy7AIsXFclyo0f8TRvRYw4fT3WQ37e4+P61WaUZjDs2mCD2lxrpCRTWyXJcpDZiMyrtqn/P8AvCbA4naFywxg6OzKy0ShbPwY1uTaYTl7KCsOkHZl+ZsuWGJ5qPQonosVs2vYcuWSzguhK98tyquG3pQGBOe7QdT/4ZUlpbKEsLyYepq7F6EBnWAXNgGtajqie51NXY9Ha3ZibmkI13z14rnkiD0/+7QSma1yxikrthZRVguDaXXep87kLwjtHhSD3CHC/p190Te7gIwGlAIvooLO7D5l10pmRqwvvI/z0MDNWBgdtgPhfn2Ho5PXILQ9nva6nB5OVC+G7uVVUy/LNH4hKsVd7wFHri9X1tNCa5Th/5dxggh7jobRaV283Nu7PxLLcHAJtQTKpM1cdD/J2Xno2Fq8rA3NjqD9TNxiuR3poAeYr8qHc7EsHdg8BqKW+zMvPZ9Nx0Sac1dNx6tNTg1XzSA8lPpqoz0hiqyqSY6omVIgrPyfyduuxoR7jg0bhdmf7k/XQEgvLCMrzhV2g1NidtMuoSZlFHMPKbtIvrYsUFuOTecg9E6X3/ecoqCvA85wyyVmYm5Yl5m4Z+eJ4wg8HGeTxg17Lzwo8mYeHLvyeYuQktsfVWiSEQHjrXLqpWSQntbaXPDQ/2UPLz4NLN8xQ7zSSqOqFoFqMiyy3yCoDVh0w/gTwfzFagPe3ozoLAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         2449   &gt;&lt;/span&gt;
         2450   &lt;img
         2451         class=&quot;gatsby-resp-image-image&quot;
         2452         alt=&quot;Mechaturtles&quot;
         2453         title=&quot;Mechaturtles&quot;
         2454         src=&quot;/static/dfd0388a52796c6aa0b6271fa404d8f9/16745/Mechaturtle1.png&quot;
         2455         srcset=&quot;/static/dfd0388a52796c6aa0b6271fa404d8f9/16745/Mechaturtle1.png 78w&quot;
         2456         sizes=&quot;(max-width: 78px) 100vw, 78px&quot;
         2457         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2458         loading=&quot;lazy&quot;
         2459       /&gt;
         2460   &lt;/a&gt;
         2461     &lt;/span&gt;&lt;/p&gt;
         2462 &lt;blockquote&gt;
         2463 &lt;p&gt;Source: &lt;a href=&quot;https://turtlepedia.fandom.com/wiki/Mechaturtle&quot;&gt;Fandom&lt;/a&gt;&lt;/p&gt;
         2464 &lt;/blockquote&gt;
         2465 &lt;h3&gt;Sonic Sam&lt;/h3&gt;
         2466 &lt;p&gt;I had one of these (it&apos;s still in my parent&apos;s attic). This guy rolled around our kitchen, flashing its eyes and emitting weird smoke from its mouth.&lt;/p&gt;
         2467 &lt;p&gt;&lt;span
         2468       class=&quot;gatsby-resp-image-wrapper&quot;
         2469       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 640px; &quot;
         2470     &gt;
         2471       &lt;a
         2472     class=&quot;gatsby-resp-image-link&quot;
         2473     href=&quot;/static/de0408c04849f7c44e84532c3e696f1a/c08c5/robottoy.jpg&quot;
         2474     style=&quot;display: block&quot;
         2475     target=&quot;_blank&quot;
         2476     rel=&quot;noopener&quot;
         2477   &gt;
         2478     &lt;span
         2479     class=&quot;gatsby-resp-image-background-image&quot;
         2480     style=&quot;padding-bottom: 56.44171779141104%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQBAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAc2khS44Wf/EABkQAAIDAQAAAAAAAAAAAAAAAAABAhAhEf/aAAgBAQABBQKOEmYKuI//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAZEAACAwEAAAAAAAAAAAAAAAAAAQIQETH/2gAIAQEABj8Clg7Zw//EABoQAAMBAAMAAAAAAAAAAAAAAAABIRExQXH/2gAIAQEAAT8hboaIai4eh8UFWzJKOD//2gAMAwEAAgADAAAAECM//8QAFREBAQAAAAAAAAAAAAAAAAAAEEH/2gAIAQMBAT8Qh//EABYRAQEBAAAAAAAAAAAAAAAAAAARQf/aAAgBAgEBPxDVf//EAB8QAQACAgAHAAAAAAAAAAAAAAEAESExQVFhcYGR8P/aAAgBAQABPxDD9AmQPmJiK0xzsiB29RGMfEAQFs32lqZEcJ//2Q==&apos;); background-size: cover; display: block;&quot;
         2481   &gt;&lt;/span&gt;
         2482   &lt;img
         2483         class=&quot;gatsby-resp-image-image&quot;
         2484         alt=&quot;Sonic Sam&quot;
         2485         title=&quot;Sonic Sam&quot;
         2486         src=&quot;/static/de0408c04849f7c44e84532c3e696f1a/c08c5/robottoy.jpg&quot;
         2487         srcset=&quot;/static/de0408c04849f7c44e84532c3e696f1a/d2f63/robottoy.jpg 163w,
         2488 /static/de0408c04849f7c44e84532c3e696f1a/c989d/robottoy.jpg 325w,
         2489 /static/de0408c04849f7c44e84532c3e696f1a/c08c5/robottoy.jpg 640w&quot;
         2490         sizes=&quot;(max-width: 640px) 100vw, 640px&quot;
         2491         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2492         loading=&quot;lazy&quot;
         2493       /&gt;
         2494   &lt;/a&gt;
         2495     &lt;/span&gt;&lt;/p&gt;
         2496 &lt;blockquote&gt;
         2497 &lt;p&gt;Source: &lt;a href=&quot;https://www.spotern.com/en/spot/tv/stranger-things/188454/the-robot-magic-mike-ii-from-dustin-henderson-gaten-matarazzo-in-stranger-things-season-3&quot;&gt;Spotern&lt;/a&gt;&lt;/p&gt;
         2498 &lt;/blockquote&gt;
         2499 &lt;p&gt;And it&apos;s now memorialized in one of my favorite TV shows.&lt;/p&gt;
         2500 &lt;h3&gt;Robo from Chrono Trigger&lt;/h3&gt;
         2501 &lt;p&gt;The best JRPG of all time? I think so. I loved Chrono and his gang. I used to draw them all the time. Frog and Robo were my favs.&lt;/p&gt;
         2502 &lt;p&gt;&lt;span
         2503       class=&quot;gatsby-resp-image-wrapper&quot;
         2504       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 200px; &quot;
         2505     &gt;
         2506       &lt;a
         2507     class=&quot;gatsby-resp-image-link&quot;
         2508     href=&quot;/static/6c22080c421e67c0bac7aee47f76f0de/772e8/robo.png&quot;
         2509     style=&quot;display: block&quot;
         2510     target=&quot;_blank&quot;
         2511     rel=&quot;noopener&quot;
         2512   &gt;
         2513     &lt;span
         2514     class=&quot;gatsby-resp-image-background-image&quot;
         2515     style=&quot;padding-bottom: 167.48466257668713%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAhCAYAAADZPosTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAJW0lEQVRIx51WeVRTZxa/MTrDqe3U1g1EwWUEUXEDS8XRiICCILKvCYYAAZQESEIWlgAmhMhOICEIgRCiyCKLsqOAYVHROigVph5Pp7WdnjmOZ5yZTuso5N1J6Ol2zvw13znfe/e8d7/f+917f999H8D/MWQCIeSlcUiFIhHIhUKHjNjEpgejnWD89zzpfy5gMSOgXlMAIzeHQKdtgMt6JamxsZqkqasCOpUJEo4AinicZeUZprtIKBHFMF9573az9N/v+WsgkSgbCnPp8Mm0FqbGG2C4r5w0PlpJvnz5Ceh015Z8MjM2gjy1G8SsJLJCKIDc8+wGSRILI4/4bacfD/xFGAUyKCotgTypDDj8XNLoyNXlquJQGB2+CN3d37x75UqnjdkvJ3czpPHOkq18V0JyWBCIk5KreVExGH48aAPNzf8XYaYKQCqVQqZISGKd58LdyU6g7AGLKYOaNdArflYo83uRmuzxIOXcyf15F5ggz48VCwWU+Ci34OiQYz6GAnEBICIsXbisSDiXVgISiYQkEopBkpNteUldWjE/Nzz36cwV/PxpJ34214Vi0WEUZ+6cjD/Ho2saav6Wm5d1X6lSS8W50o4Ubq59ZLA3wMhI7xJoeHQ6jN8bJYdJn4BYVtFXpsrDT+7p8XqvYkGriTJOjwUb69VOC4mMTciMD8Ku6704MXkXZ2dn8HJzOzKTcjCcmrwbFkxgiK+huVlBGh4egW3WH63JkcheJ3PpRICXwyItkYa+AR8RvifXEgFujkhz9TGGeuxbSDwXTMjzOcbs7JzFdH7R4nlWAcYlpQctsRsdriE9+2wEvvnma88CScST9ma+8Y6hkhgc0BBtVyWETsNHEf8gRpzajoKYQFSW+hCXm7KJr78cIC7m+xNUaqoxjVOCMfEsD7hxXUWavHMXxqfurBsekP1TmnMMHz2sNT6encSZmQm8bWjFzhYmFsh4KM+PwJFBOuqbJDj/ZBS/+3YaW3SHTCmIxFjmhdfRMSHroVAW8lOlqaG/b3HcaYMqhd/CwwctODnZT7S3cFEmtsYmjRvW1VbgcE80FstOELQoT8LLfSu6u1l/m3Tu/Lf02BxJNP2SGeY2rFllufyDd23g/ZV2kpUWq1B2YdPbx/c5xI0uCd4aKsO52Vace1SF+fnlKBXvxZrKXYT9tg+JFbDW6LDTCeMSePQ4ZgY4O59aBqGB4bDZai3ZctVG2OvgVJXI2IXVCoe3bc3pxGC/GqcM5fjq5TROjWaYwE5htsABB64fxpioXQvvv2OF1tYbupb0ZxqRNDoJjrl6wthQBWnK0ANRIdQrI8MF2NHKWejvb0bD2FXsaKZhb/txvG84g0NdFBzrO4FDPa5EZKjN25XLbUxI76VZWKyH1au3rKCeZQKsemfLTzl02Ob4IJefiOOGjsVxQysxaWjB7qsBqFE7oaaSgk1qd9QqPZCTuIMQ8wIXUln+GBVmLzvj+zuICLUlJyeY6tF7o5b0/Ks/wdz81LbGOuHLZKoXXtWLjP29Mnw0M4StuhNIC92OzGB/jPQ6hsf37sHj2/dhoZC9MNTHNhXsQNv9cTuYve9ESk+hAFxt4pE72vLgWktORKsuAnPTzizWlacTSjkP+zprCB4tFNPjKZjPoaOEE4Tng44g1c2VyOTELYoEcSjgUkf0TQ3w/eIEpCX7mvfyd2RzUl+8+LRseoyPeYKIBb2qjEgPj0FxfAJxIYmDioIAVF3gYj4/mog+cQQ5DBZRo7lOlJVqCXGmAOmRbD9aGBMSGDzy0k4xz2dPR24PdgUhP/XI6+oCPlZmZhDlmRnGfBZ/MY/rYrxUTDWKOe6ENPMAUSQvIyoVCkJVwXgjl3AxLaWsMIVVDpyUguVwd/oZDA1PWT+d73qhqXbBLOGOkbNB/iPipAQsE/IwIYyCVcUHUFF8FFv1cTh4IxRT2d4ok17AvDwVikR1RHys4GgiMxOSEvOWQX9/O7S2ao+O3cwmRBx7TIizb7Sx2qG3s7HHKD/XPi7b9p6iZM+/RFyHvxz7eN/ilo3rjB5u++s1dRXPS4p4yEt1H1aryuGPMy8hOdHUg8dG66Gnp8Glo41t3LNzk0lXlo52NntK3lu5yqxWX7OcfD3ttjKo3rusVm/77h2LD43r19vsF4tCbgp5H+MZn9V6WhgAlw2k097OADpNFNSrz7qXXaRgSMCGL3UN4gP0qJDZ5eR30cJilQnwfTh94iBs3+xsu/6DTW8sfrP0IXeZRD4bFhxutod/1PGa1VYADyfC4NGdyE0Bpx1x7RqL5329dV0To/nIiLZFZuzOiIS4tSbXs+C497BjhvD8W0lOmBkkTqe98jwyLNJsj5rBzIW1XGf9g2EeNhvtqgBWsLs75GNDPQmorXFCSc7u5soSgKmJPhjorXCbMNRjnfoEBp2xKVKriv/q6uJqXjz+I8N1aywBPnuKUKsOJNGoNHj16qutoyNX3n79xQ1ji/4QyiR2txWluKTTJ7P9yqnJTtTUnERpnkNbbiZjPDzYEylHd2STfguw1X4rKdDP+QeGA4O3yPfuz0NjfW7d2C2VqRGEv2nWeWGWwOXR48dzSz5//vzh8/m5KezrCjW1ty03JZLGUxflFY8XUQw2a52BlcSHbZttAbq6b5C7u5uhvrbQXqlUvVZWqrCnw49o0bkusBN9kJVc1jk8oFT9/eUMTt9tMT13JipLnYhqRSg/X/7AynnflhUAuyGGUQJbbEyAOn07XKrV2LZ3jH6hb76NGRna/6Sxghcz+bbo7fkHU3sv+rS7jfOPm4OVqFLVG9XK+AV11R4UcfdenzCkmti7kDwpHwEnrRp4KccBPDwPr9A3DzxRVpv+u+J6TEstfbVj67GDpzxcKHt3UtzN4fLYRykKhfL7uoZbKBQWGxMYXkgN93P1O3kQaOGmLg37ISE+64fKFJdc2lBcrK9MSS6Uss8VMjmphQctPzwMnpR9prfvgbbxJpQrWiuudY2jpqH/TTqvCr092IkM+inIyWaSPnaqAx8vt5+PIIqqeqjX9pkoV5imEtJSCuGQk/uywNP7yPFx6b/R6rpBfrEmpUnfjzJZEyYl5F8zsSYxYpogjiEn7bIrhmD/Qz8DlpbXQkNjHzkrq4YsFNSQU9lFJjAPoEfHQQo7C/x8faBn8DnIZLVpIpEiprPzGcgLtaZGkEuKj80C35Nnf3WC+y98Zb/rNQFP1wAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         2516   &gt;&lt;/span&gt;
         2517   &lt;img
         2518         class=&quot;gatsby-resp-image-image&quot;
         2519         alt=&quot;Robo&quot;
         2520         title=&quot;Robo&quot;
         2521         src=&quot;/static/6c22080c421e67c0bac7aee47f76f0de/772e8/robo.png&quot;
         2522         srcset=&quot;/static/6c22080c421e67c0bac7aee47f76f0de/222b7/robo.png 163w,
         2523 /static/6c22080c421e67c0bac7aee47f76f0de/772e8/robo.png 200w&quot;
         2524         sizes=&quot;(max-width: 200px) 100vw, 200px&quot;
         2525         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2526         loading=&quot;lazy&quot;
         2527       /&gt;
         2528   &lt;/a&gt;
         2529     &lt;/span&gt;&lt;/p&gt;
         2530 &lt;blockquote&gt;
         2531 &lt;p&gt;Source: &lt;a href=&quot;https://chrono.fandom.com/wiki/Robo&quot;&gt;Fandom&lt;/a&gt;&lt;/p&gt;
         2532 &lt;/blockquote&gt;
         2533 &lt;h3&gt;The Iron Giant&lt;/h3&gt;
         2534 &lt;p&gt;Sometimes giant robots are gentle and curious. They just want to love and learn. The Iron Giant is one of those robots.&lt;/p&gt;
         2535 &lt;p&gt;&lt;span
         2536       class=&quot;gatsby-resp-image-wrapper&quot;
         2537       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 269px; &quot;
         2538     &gt;
         2539       &lt;a
         2540     class=&quot;gatsby-resp-image-link&quot;
         2541     href=&quot;/static/2a5c15093914ba94c385d4a49fd0f063/23db2/irongiant.jpg&quot;
         2542     style=&quot;display: block&quot;
         2543     target=&quot;_blank&quot;
         2544     rel=&quot;noopener&quot;
         2545   &gt;
         2546     &lt;span
         2547     class=&quot;gatsby-resp-image-background-image&quot;
         2548     style=&quot;padding-bottom: 137.42331288343559%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAMBAgUE/8QAFwEBAQEBAAAAAAAAAAAAAAAAAwQCBf/aAAwDAQACEAMQAAABSlrhZZok64vRn26EklRcf//EABwQAAICAgMAAAAAAAAAAAAAAAECAAMREhATQf/aAAgBAQABBQIrge9cQyupWVSpWpn2s3A2YQHBLHj/xAAZEQEAAgMAAAAAAAAAAAAAAAARAAEQEhP/2gAIAQMBAT8B3QnSo4//xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIREhMx/9oACAECAQE/AW8emyQ4W7Qj/8QAHRAAAgEFAQEAAAAAAAAAAAAAAAERAhASITFBUf/aAAgBAQAGPwKVeNwOtd8E/pCqiTLNnTR23//EAB0QAAMAAgIDAAAAAAAAAAAAAAABESExQVFhcZH/2gAIAQEAAT8hVFQq8Mq8DR7Qq4di2UEmwYPqLBRG/EJhh62TxPBzG0aQzti+vh//2gAMAwEAAgADAAAAEGv9v//EABkRAQEBAAMAAAAAAAAAAAAAAAEAIRExYf/aAAgBAwEBPxB1YvMgBxPeX//EABgRAQADAQAAAAAAAAAAAAAAAAEAESFh/9oACAECAQE/EKbFOUxMYDkAmk//xAAfEAEAAgICAgMAAAAAAAAAAAABABEhMVFhQYGR8PH/2gAIAQEAAT8QekBmlQO4TJToh0d8+orYr2RA6QwDz3Lc7BMVTZfPiMhrbHU5Jdpf3EzTqWdr/YAFDQOIuHAI6goKKGll+Pgn/9k=&apos;); background-size: cover; display: block;&quot;
         2549   &gt;&lt;/span&gt;
         2550   &lt;img
         2551         class=&quot;gatsby-resp-image-image&quot;
         2552         alt=&quot;Iron Giant&quot;
         2553         title=&quot;Iron Giant&quot;
         2554         src=&quot;/static/2a5c15093914ba94c385d4a49fd0f063/23db2/irongiant.jpg&quot;
         2555         srcset=&quot;/static/2a5c15093914ba94c385d4a49fd0f063/d2f63/irongiant.jpg 163w,
         2556 /static/2a5c15093914ba94c385d4a49fd0f063/23db2/irongiant.jpg 269w&quot;
         2557         sizes=&quot;(max-width: 269px) 100vw, 269px&quot;
         2558         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2559         loading=&quot;lazy&quot;
         2560       /&gt;
         2561   &lt;/a&gt;
         2562     &lt;/span&gt;&lt;/p&gt;
         2563 &lt;blockquote&gt;
         2564 &lt;p&gt;Source: &lt;a href=&quot;https://upload.wikimedia.org/wikipedia/en/d/d3/The_Iron_Giant_poster.JPG&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
         2565 &lt;/blockquote&gt;
         2566 &lt;p&gt;Kids and robots just go together, like kids and E.T.&lt;/p&gt;
         2567 &lt;h3&gt;Cozmo&lt;/h3&gt;
         2568 &lt;p&gt;A programmable robot!&lt;/p&gt;
         2569 &lt;p&gt;&lt;span
         2570       class=&quot;gatsby-resp-image-wrapper&quot;
         2571       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2572     &gt;
         2573       &lt;a
         2574     class=&quot;gatsby-resp-image-link&quot;
         2575     href=&quot;/static/0aa53da4daf21c62993620a41767c0a2/1cfc2/cozmo.png&quot;
         2576     style=&quot;display: block&quot;
         2577     target=&quot;_blank&quot;
         2578     rel=&quot;noopener&quot;
         2579   &gt;
         2580     &lt;span
         2581     class=&quot;gatsby-resp-image-background-image&quot;
         2582     style=&quot;padding-bottom: 73.00613496932516%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAABYlAAAWJQFJUiTwAAADN0lEQVQ4y3WTXUyTZxTH32VXyyLJ4sWuTbbsYln0woXN6ebdzJapbMvm3NagkDBwBt1GZoQoA8agYy2kSOjEQuuWTRMnKCUtVVEosk2hCKWVoVgKUuykYx/9oG/b3563QK1VT3LenOc55/2f//l4JJYlkUgkVZFYLJayM/3pcZkxikiZF/FEPGVPT03iv3Ob6GL4oeAPA5WSzmVHPL4EZr/cz0cF+by08UX2frKLqZvj+GanmF8IEBMJlfiVWAUvHVRaOawE/LuwwJYPd5C1/W2ynnuG3Xkq/NZOhgo/ZqBJw6C1A9l/ZwksHk/nnVSJDHaWbitr169jzbNreDLrCX483srfP7dxu8eG8+Bn2Pfuol9dhud3ewr0AYZxoeFgENc1B7l5uax+ejWrnlrFtpytzExOMPZbPx7/LLOOK7i62+m2nuHqJZsAi2X0NHFvKPNzPgJ+PxZrF3n5KlSqnXhu/IF7dJiOA/v5pSgXfXEBLfp6mnVazpz6iblZT1rpy4BKqX32XkaHBnE6BqmsKqdADKKt9Sj9vT24Rob5x3uLma7TuDtO0id6aBfl33AOM+2ZWGZ4r2zpr0CAYy16LvdepP2EkaJCFSVf7MNkNDA6PMTVgT4qDpegqa9BW/8tppZGdNoaLlg6+XNu5r6BKqDS/Pxd5EgI+6WLHCj5FGu7gQnXCHLwP2wWM2/mvEVbbRU9zY0U7ytky+uv8sLa53lt8wbOn7M8sJeST/TOceVXvq78ig2bsjnaVI3pmI4ZzyT7Py9m27s5BAN3CYlVGRuyY9JXom8o48RxPX3ms9yaGE+xTDHsFv1p0mnYU5RPnboCw/f1eMUy79j5Pq9kr8c36iAw7mbM1kH7SR2nfqhjZOACEfHv9ORN0t9KcijnbWaMhiZqqg9RK7RBU41eJHg5ex2PPybRXHGIKecIDd+Ukr/7HT547w2qyr/Ebuli3OVMAsmyvMQwKPYvIAbjdrsxmoxoNN+h1WooLz9MWWkppUJr1LWYTG2o69TCr6HxyBEMrQbM5k7c16/j9Xrx+XwsLi4iKR9FlQyPEjkqEwyFiEajwo4mY2NyLHkOiftwOEwkEkn28X9pK+6r85CNaAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         2583   &gt;&lt;/span&gt;
         2584   &lt;img
         2585         class=&quot;gatsby-resp-image-image&quot;
         2586         alt=&quot;Cozmo&quot;
         2587         title=&quot;Cozmo&quot;
         2588         src=&quot;/static/0aa53da4daf21c62993620a41767c0a2/a6d36/cozmo.png&quot;
         2589         srcset=&quot;/static/0aa53da4daf21c62993620a41767c0a2/222b7/cozmo.png 163w,
         2590 /static/0aa53da4daf21c62993620a41767c0a2/ff46a/cozmo.png 325w,
         2591 /static/0aa53da4daf21c62993620a41767c0a2/a6d36/cozmo.png 650w,
         2592 /static/0aa53da4daf21c62993620a41767c0a2/1cfc2/cozmo.png 900w&quot;
         2593         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2594         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2595         loading=&quot;lazy&quot;
         2596       /&gt;
         2597   &lt;/a&gt;
         2598     &lt;/span&gt;&lt;/p&gt;
         2599 &lt;blockquote&gt;
         2600 &lt;p&gt;Source: &lt;a href=&quot;https://www.digitaldreamlabs.com/pages/cozmo&quot;&gt;Digital Dream Labs&lt;/a&gt;&lt;/p&gt;
         2601 &lt;/blockquote&gt;
         2602 &lt;p&gt;Cozmo&apos;s fatal flaw is how nearly impossible it is to connect your phone to the robot&apos;s local wifi service, which is how you are forced to control and interact with Cozmo. The connection process is random, non-deterministic, and saps up most of the time you&apos;ve allocated to play with Cozmo. Also, Cozmo&apos;s parent company recently went out of business, which is a huge bummer for the robot-toy industry.&lt;/p&gt;
         2603 &lt;p&gt;That said, I&apos;ve had a lot fun with Cozmo, including &lt;a href=&quot;https://www.charlieharrington.com/teaching-my-robot-with-tensorflow&quot;&gt;teaching him how to find my toothpaste with a TensorFlow computer vision model&lt;/a&gt;.&lt;/p&gt;
         2604 &lt;h3&gt;Droids&lt;/h3&gt;
         2605 &lt;p&gt;Okay, the main event. Droids.&lt;/p&gt;
         2606 &lt;p&gt;The Star Wars folks who put together the droids for A New Hope are complete geniuses. They&apos;re dirty, they&apos;re resilient, they&apos;re loyal, they&apos;re funny, they&apos;re everywhere. I could go through a whole list of them, cause I really do love them all (GNKs, Artoo, Threepio, IG-88, BB-8, those little mouse-like black boxes in the Death Star), but in a rare dose of restraint, here&apos;s my favorite Star Wars droid!&lt;/p&gt;
         2607 &lt;h4&gt;WED-15-1016&lt;/h4&gt;
         2608 &lt;p&gt;It&apos;s R.O.B. with a longer neck, a blue face, and way more creepy claw arms. You may remember this robot critter from its role in repairing the Millenium Falcon at Hoth Base in Empire Strikes Back. Or at least attempting to repair.&lt;/p&gt;
         2609 &lt;p&gt;&lt;span
         2610       class=&quot;gatsby-resp-image-wrapper&quot;
         2611       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 320px; &quot;
         2612     &gt;
         2613       &lt;a
         2614     class=&quot;gatsby-resp-image-link&quot;
         2615     href=&quot;/static/da34ef15c6d3d7825f5cff64051e89b3/cb69c/wed-techie.jpg&quot;
         2616     style=&quot;display: block&quot;
         2617     target=&quot;_blank&quot;
         2618     rel=&quot;noopener&quot;
         2619   &gt;
         2620     &lt;span
         2621     class=&quot;gatsby-resp-image-background-image&quot;
         2622     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAVz289jYk2//xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIRAxMEEiH/2gAIAQEAAQUCfH8o1Nl9iWa3ukf/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8BZX//xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8Bq4//xAAcEAACAQUBAAAAAAAAAAAAAAAAASEQERIxQZH/2gAIAQEABj8C56LUlxOMaQz/xAAaEAEAAwEBAQAAAAAAAAAAAAABABEhMVFh/9oACAEBAAE/IULi4OdB1vkWIqnmywpA+RFaPATkb9Kn/9oADAMBAAIAAwAAABAIL//EABcRAQADAAAAAAAAAAAAAAAAAAEQITH/2gAIAQMBAT8QC8g//8QAFxEBAAMAAAAAAAAAAAAAAAAAARARMf/aAAgBAgEBPxC6bF//xAAdEAEBAAICAwEAAAAAAAAAAAABEQAhQWExkbHB/9oACAEBAAE/ENigDOzgy0FKbwOtxxybrRPuPPyE20/mIt/NRF4wnskz/9k=&apos;); background-size: cover; display: block;&quot;
         2623   &gt;&lt;/span&gt;
         2624   &lt;img
         2625         class=&quot;gatsby-resp-image-image&quot;
         2626         alt=&quot;wed-technie&quot;
         2627         title=&quot;wed-technie&quot;
         2628         src=&quot;/static/da34ef15c6d3d7825f5cff64051e89b3/cb69c/wed-techie.jpg&quot;
         2629         srcset=&quot;/static/da34ef15c6d3d7825f5cff64051e89b3/d2f63/wed-techie.jpg 163w,
         2630 /static/da34ef15c6d3d7825f5cff64051e89b3/cb69c/wed-techie.jpg 320w&quot;
         2631         sizes=&quot;(max-width: 320px) 100vw, 320px&quot;
         2632         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2633         loading=&quot;lazy&quot;
         2634       /&gt;
         2635   &lt;/a&gt;
         2636     &lt;/span&gt;&lt;/p&gt;
         2637 &lt;blockquote&gt;
         2638 &lt;p&gt;Source: &lt;a href=&quot;https://starwarsataglance.wordpress.com/2014/06/30/wed-1016-teche/&quot;&gt;Star Wars At a Glance&lt;/a&gt;&lt;/p&gt;
         2639 &lt;/blockquote&gt;
         2640 &lt;p&gt;I treasuring my WED-15-1016 card from the Star Wars collectible card game, and I&apos;d play it every single one of our daily games in latchkey, no matter what. (Side note: listen to this &lt;a href=&quot;http://www.zachtronics.com/podcast/&quot;&gt;great Zachtronics podcast&lt;/a&gt; episode with one of the designers of the Star Wars and Star Trek collectible card games)&lt;/p&gt;
         2641 &lt;p&gt;&lt;span
         2642       class=&quot;gatsby-resp-image-wrapper&quot;
         2643       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 206px; &quot;
         2644     &gt;
         2645       &lt;a
         2646     class=&quot;gatsby-resp-image-link&quot;
         2647     href=&quot;/static/42d3d89633a83af49f7eb084c0aa25cc/a414c/wed-card.png&quot;
         2648     style=&quot;display: block&quot;
         2649     target=&quot;_blank&quot;
         2650     rel=&quot;noopener&quot;
         2651   &gt;
         2652     &lt;span
         2653     class=&quot;gatsby-resp-image-background-image&quot;
         2654     style=&quot;padding-bottom: 140.4907975460123%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAcCAIAAADuuAg3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGVElEQVQ4y0WS6Vda1xrGz4d7V6MxJoIyOlUT58QBNaIUxSiJyniYRBAcIqg44QTeJJLGOKRdbW1rNOltcq2pVWMbh6igEUHCPCrgUJv0rvuf3I390LV+513P2fs87/vstQ+0vrYq5POEAp6Ax+PBMBdm8zkwl83ispl8mAUz6Sx6DYdJAwJm0liMajaDJuByavnc5zPTUF+nIiUhLif1KvlGZiMXlkslEh7vrkjYIq5rEnCbavndsrsdTVK5uE4mBou1crGwHmaU5Wc3C/nQYHc7q7KcVlrMLspZej6z8svPXzzSzE5PzT2f+WZs/Jcf/33mcZ15PYDfPe5Tj/t/x0cb8z/11vOnRzVQq6I/N4tAKioj5FaQCEU1FTVSUbdCrrorkbNuU1lVDAGnnkq6eYdcXEkqon5GrKaQKDcJxBvpEh4balOOKRV9PV0aKvs+Dh/Pb1CPT+2MTL6VdU8Ti5mxcdcyC+ArUYiLYZ+EffKP8Av/vBh+IfJSRGTExYJ8AjQyPsti97d2PK2obsq8kTv5H/0Xz9Yff7/Y82C2itmdlJR+PedWLD42BnEpBnEZg0JiUDGA6KhIUjERuqeZIlepaPyHsbEJNZxO5eNVtvQRXzqgHPuV0/B5WjqRUvPweoHwahoZh8UBMyoGiQXPlUtlFCrU1qnKIzVdSyWkZRU1df/YopprVr6Utj6ZWXN3P5q6WcLgNXxbQlVfLxTG4eIwMUgASIHHp9RKR6C29l5cLLisRKZwRCx/Km6faVA87VRP71qPvv3uGV3QJu14UUhuw+PiUIjL6GgEChGJQaPjk/NZfCUkqReB8xdTWu4w7tWw7jMEY1LZpGb8ldl7NvJ4XNCsbh2YzyFUY1HRIWd0VHRURHIaiVCqrLwNQ2JRLRKJL6nooVR2UasGaMzh1q6pmR/mjWanpKG5pfdJx9Dz5MQkPAaDRl5GISOxaFRWLi2PrICF/ZBUIo0MDysrq+Xz+qqqB2Hu50rV9Nj4d08mX+Xml/AkKnIZIw6Lw6KQwHz1Wu7VlHwCSVxYrmDAjSB2fUT4hczUDJitoLOGaaxhtnCiTqymw91pqXnZ2SXx+FgcBo2KigDXRiikF5EaCEW8hMSsilsVUL1YGBEehkZGlVFFLT3TdN698lIuhXibSWbmp2QmoBF4DAodjUy6RiwoaSz+rIlEUWRkkaMvh1VQSiF5ex8Gg42PxcUnJEllmnrJECHjemF2QUF6VgoeHYdFY1Dgn4jOuFFVUt5RUt6WRxTiMVgU4sqtcgqk+dewXCRqEQpwiEuUUmqLbLiUzEn7NDkRi/4Uj0+Mi4+PTUiMT8nJLi8kcvLyqvJzK1OTMxJxmJo7VOjZ5FfqNvlXw/dH1QOj6r5HAz0jg31jIT0wMTQ4cU89NjQ4quofVSk1vR0PezsnBnqGlV1DCvn3E4+hDycnp17vh0DgY/DoYyAYEoHAB7//7PDAuW/0Wqx/BAL/PQZb/j+DgT+DwY+gHgXOfN4PQT90cnjoMZmMW1v7Op11d9e+t2fb07vfmxxGo/bNm+21dbfJ5DLtg2o37DmMBqAPbJaA03bs80KngYDXbF5ZWHg9N7fx62+7GxtvXy/vrK2Dur60BF63V1f1G5tei9kW6rtnNxhA6yOX48Tng079fmDe39626vU2vd6y+870bmdvc+vd27dGndao0xm2tNZdkOU9GOgxmz3m9wGHLeiwnx4cnJst5u21Ne3Kqm41hHZlxaAN2fY2N/e2tkzb2wAgjFqtAVSd1vPeFHQ6Tg/A5MNDn8UMwjgMBtf+PpgATntos4HtgMMRcDqO3M6gyxmqTsex23XscQddDjD5BJj/CB4dezynPm/AYfc77EdOJ/giZDvH73AEnSFb4BwgTrzu87620GSPxbyxuKBfWz20Wn0Wy4HV6rfb/sZhP+9i94MsrpDTZzYdgTguENsLabo6hgWC9ju3Xk5+fXZweOz2nHg8J17vX/zu8576fMehFc+hzfpm9uVgu2zl1axlZydk7m9seMBiwdnpzTzm5tLi2vyrjYX5rdeL2uUl3fKSdmlRtwxY0q/89sOXEw+UXZ3SujFV35OhweXZF9DC3Fwdky7hwDx6NYdWVcukNQq4MlFtSx3/bi1PxGY08tiAZj4sEwnapeJmAQcgZNJePJv5P+eYEpnb13VkAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         2655   &gt;&lt;/span&gt;
         2656   &lt;img
         2657         class=&quot;gatsby-resp-image-image&quot;
         2658         alt=&quot;wed-card&quot;
         2659         title=&quot;wed-card&quot;
         2660         src=&quot;/static/42d3d89633a83af49f7eb084c0aa25cc/a414c/wed-card.png&quot;
         2661         srcset=&quot;/static/42d3d89633a83af49f7eb084c0aa25cc/222b7/wed-card.png 163w,
         2662 /static/42d3d89633a83af49f7eb084c0aa25cc/a414c/wed-card.png 206w&quot;
         2663         sizes=&quot;(max-width: 206px) 100vw, 206px&quot;
         2664         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2665         loading=&quot;lazy&quot;
         2666       /&gt;
         2667   &lt;/a&gt;
         2668     &lt;/span&gt;&lt;/p&gt;
         2669 &lt;blockquote&gt;
         2670 &lt;p&gt;Source: &lt;a href=&quot;http://www.cardgamedb.com/index.php/starwars/star-wars-card-spoilers/_/the-hoth-cycle/assault-on-echo-base/wed-15-1016-assault-on-echo-base-55-2&quot;&gt;Card Game DB&lt;/a&gt;&lt;/p&gt;
         2671 &lt;/blockquote&gt;
         2672 &lt;p&gt;Here is one of WED-15-1016&apos;s cousins, a fully tricked-out WED Treadwell with all sorts of terrifying arms and claws:&lt;/p&gt;
         2673 &lt;p&gt;&lt;span
         2674       class=&quot;gatsby-resp-image-wrapper&quot;
         2675       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2676     &gt;
         2677       &lt;a
         2678     class=&quot;gatsby-resp-image-link&quot;
         2679     href=&quot;/static/6afe934f96e3f13bbf2ce81b82c3f2c6/0d333/WED-treadwell.jpg&quot;
         2680     style=&quot;display: block&quot;
         2681     target=&quot;_blank&quot;
         2682     rel=&quot;noopener&quot;
         2683   &gt;
         2684     &lt;span
         2685     class=&quot;gatsby-resp-image-background-image&quot;
         2686     style=&quot;padding-bottom: 98.15950920245399%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAMEBQEC/8QAFAEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB24PVYdJwkVcG8E//xAAbEAADAAIDAAAAAAAAAAAAAAABAgMAEQQQIf/aAAgBAQABBQIuNzcBcp4nF0yDGmCUkrdf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGxAAAQQDAAAAAAAAAAAAAAAAAQAQESExYYH/2gAIAQEABj8ChDNsT1aabRlv/8QAHBABAQACAgMAAAAAAAAAAAAAAREAIRAxQWFx/9oACAEBAAE/IQdtzxU2tvBtoIxlJtDDNCZuUPpxCHT84//aAAwDAQACAAMAAAAQE8c8/8QAFxEAAwEAAAAAAAAAAAAAAAAAARARIf/aAAgBAwEBPxCYqYv/xAAXEQADAQAAAAAAAAAAAAAAAAABEBEh/9oACAECAQE/ELqgq//EACAQAQABAwMFAAAAAAAAAAAAAAERACFBYZGhEFFxgbH/2gAIAQEAAT8QZosqYnQqVCApKLMRx0vmmVxFz7UgEIBhk7780UVi3rFNGSaGzTUzEWbvMUWK/9k=&apos;); background-size: cover; display: block;&quot;
         2687   &gt;&lt;/span&gt;
         2688   &lt;img
         2689         class=&quot;gatsby-resp-image-image&quot;
         2690         alt=&quot;wed-tread&quot;
         2691         title=&quot;wed-tread&quot;
         2692         src=&quot;/static/6afe934f96e3f13bbf2ce81b82c3f2c6/6aca1/WED-treadwell.jpg&quot;
         2693         srcset=&quot;/static/6afe934f96e3f13bbf2ce81b82c3f2c6/d2f63/WED-treadwell.jpg 163w,
         2694 /static/6afe934f96e3f13bbf2ce81b82c3f2c6/c989d/WED-treadwell.jpg 325w,
         2695 /static/6afe934f96e3f13bbf2ce81b82c3f2c6/6aca1/WED-treadwell.jpg 650w,
         2696 /static/6afe934f96e3f13bbf2ce81b82c3f2c6/7c09c/WED-treadwell.jpg 975w,
         2697 /static/6afe934f96e3f13bbf2ce81b82c3f2c6/0d333/WED-treadwell.jpg 1175w&quot;
         2698         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2699         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2700         loading=&quot;lazy&quot;
         2701       /&gt;
         2702   &lt;/a&gt;
         2703     &lt;/span&gt;&lt;/p&gt;
         2704 &lt;blockquote&gt;
         2705 &lt;p&gt;Source: &lt;a href=&quot;https://starwars.fandom.com/wiki/WED_Treadwell_repair_droid/Legends&quot;&gt;Fandom&lt;/a&gt;&lt;/p&gt;
         2706 &lt;/blockquote&gt;
         2707 &lt;p&gt;I even found this questionably-real deleted scene from A New Hope showing an impatient Luke Skywalker interacting with a Treadwell on Tattoine:&lt;/p&gt;
         2708 &lt;iframe width=&quot;720&quot; height=&quot;415&quot; src=&quot;https://www.youtube.com/embed/nDPZfPe5F-w&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         2709 &lt;h2&gt;More robots&lt;/h2&gt;
         2710 &lt;p&gt;So, who did I miss in my list? Data? He&apos;s an android, so not exactly a robot. But possibly Mega Man X is an android, so maybe I&apos;m already mixing things up.&lt;/p&gt;
         2711 &lt;p&gt;Speaking of lists, I also found this gigantic &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_fictional_robots_and_androids&quot;&gt;list of fictional robots and androids&lt;/a&gt; on Wikipedia.&lt;/p&gt;
         2712 &lt;p&gt;I&apos;m not-so-secretly hoping that, one day, the robots in my book will be added to this Wikipedia list. Yes, I could edit the Wikipedia page myself, but c&apos;mon, that&apos;s not the goal here.&lt;/p&gt;
         2713 &lt;h2&gt;From cardboard to ciruit boards&lt;/h2&gt;
         2714 &lt;p&gt;Also, it&apos;s high time to upgrade my hobby. I&apos;ve begun looking into basic robotics kits, and I&apos;ll hopefully be constructing some new robotic best friends very soon. Maybe not Maker-Faire worthy, but ya gotta start somewhere.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Create wonderful things, be good, have fun]]></title><description><![CDATA[Create wonderful things, be good, have fun This is the credo of Klutz Press, the most important book publisher of my childhood. It being…]]></description><link>https://www.charlieharrington.com/create-wonderful-things-be-good-have-fun</link><guid isPermaLink="false">https://www.charlieharrington.com/create-wonderful-things-be-good-have-fun</guid><pubDate>Wed, 24 Jun 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
         2715 &lt;p&gt;Create wonderful things, be good, have fun&lt;/p&gt;
         2716 &lt;/blockquote&gt;
         2717 &lt;p&gt;This is the credo of Klutz Press, the most important book publisher of my childhood. It being summer and all, Hobbes, ol&apos; buddy... let&apos;s going exploring!&lt;/p&gt;
         2718 &lt;h2&gt;What makes a Klutz Press book so good for learning stuff?&lt;/h2&gt;
         2719 &lt;p&gt;If you&apos;ve heard of Klutz, then you&apos;ve likely seen their debut: &lt;a href=&quot;https://www.amazon.com/gp/product/0932592007/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0932592007&amp;#x26;linkId=adaa512e8af09feab7c571ec8f2863cc&quot;&gt;Juggling For the Complete Klutz&lt;/a&gt;. &lt;/p&gt;
         2720 &lt;p&gt;&lt;span
         2721       class=&quot;gatsby-resp-image-wrapper&quot;
         2722       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2723     &gt;
         2724       &lt;a
         2725     class=&quot;gatsby-resp-image-link&quot;
         2726     href=&quot;/static/c28fcf440265c6bea76d51f90e51b462/1cfc2/juggling.png&quot;
         2727     style=&quot;display: block&quot;
         2728     target=&quot;_blank&quot;
         2729     rel=&quot;noopener&quot;
         2730   &gt;
         2731     &lt;span
         2732     class=&quot;gatsby-resp-image-background-image&quot;
         2733     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADFUlEQVQ4y42Ue0hTURzHLxkIFlEU5VDyjyAyguoPMwn6QwqUpIiiSKwowR4kFqIIQv2hUoQm9vKRRpboKJ2lzsfW3JzuuruXe3j3dNvd3NS73Xnd3dz0zrvlI5ezGX3/OJzfj/M553t+/M4BQusKBoPLIw7JMT60ElJUcKNCUQT8gSlqeXSPwfKcAp/BHM6EtRyQW8Hh1bMjImlds9ZqV4xrJXJYJFWMCEUDfCHY0wu2tlinZsI2gU1OXChG+BchFud9TWPZq8byqvqK6oaK6vqnNR8VRQ+QgpsmE/IXvBoQegOf0a3rarNcu0f/0Pr5ay8kVWm0ep3eqNSZ4J/sjtoGHWKLDi/g+EzfgOzcFVF+qdFiNesnuH08Vj8bEozyWTypTGOedhKEZ335xoItrVx4pp05fDhdUVknGBpprm/pZzBBJkvYz2YzuV+a6GaTYWPdgY2ko5crPpKuSUhR7DnGuFM8Ne+f0+lRLgdlMb0OO6qBMauFXKKiw2PZ+RBAg3enNR641FVS5xN+Rxlv0c43jvaXjvbnNpnYjtgCgUAkvGplkQoOXrwtiDlZlVJRfSpv4EaRC2Q6BumYsM9lVLlgCFWP2w3mQICMgNdK518kv52/zo9N5uxK4wPxYPpV3Kl2OdFZDznnxFANMgkr3biJJKPBC0tLrIyc4e1J0p2HhoB9srxC66TWZtR4fCFskOkdeejGBLhNQm6yvQ4HwMxbFiARi0nqjEsZuFtS3g3RykGBIi/kPEpMv5vF8Lk5Irpt78Ii9+zlrtgTlafvlyVng7mlSgTtlxp1ajqKsHA3tUxaJxHC445okrWZx+v7kZrRsCPt08FMPrBflvvEgaGztkmNclqptFksExq1XCwZxnFXFNg77+tNzZID8TPbaKNAfM+j0iGQN8zniCGeRMQdBQchIU8mExAEHtmeq7MAGeCmZg0BNPbe468TLnQVv1CqxLBKZjJq7TYEc6JuN+7z+yhqiyaRFD6rBuIeJ2bV0M5Y6IxwfitFPAw/QYhrm+C2DsJgCP0+IfyRBP/1k4S3+H/9AqWS8XTUu4ovAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         2734   &gt;&lt;/span&gt;
         2735   &lt;img
         2736         class=&quot;gatsby-resp-image-image&quot;
         2737         alt=&quot;juggling&quot;
         2738         title=&quot;juggling&quot;
         2739         src=&quot;/static/c28fcf440265c6bea76d51f90e51b462/a6d36/juggling.png&quot;
         2740         srcset=&quot;/static/c28fcf440265c6bea76d51f90e51b462/222b7/juggling.png 163w,
         2741 /static/c28fcf440265c6bea76d51f90e51b462/ff46a/juggling.png 325w,
         2742 /static/c28fcf440265c6bea76d51f90e51b462/a6d36/juggling.png 650w,
         2743 /static/c28fcf440265c6bea76d51f90e51b462/1cfc2/juggling.png 900w&quot;
         2744         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2745         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2746         loading=&quot;lazy&quot;
         2747       /&gt;
         2748   &lt;/a&gt;
         2749     &lt;/span&gt;&lt;/p&gt;
         2750 &lt;p&gt;If not, I highly suggest seeking out a copy. Keep in mind, it&apos;s more than just a &lt;em&gt;book&lt;/em&gt; -- &lt;em&gt;Juggling for the Complete Klutz&lt;/em&gt; has these amazing attributes:&lt;/p&gt;
         2751 &lt;ul&gt;
         2752 &lt;li&gt;It&apos;s spiral-bound&lt;/li&gt;
         2753 &lt;li&gt;It has hilarious drawings&lt;/li&gt;
         2754 &lt;li&gt;It comes attached with three real-life bean bags!&lt;/li&gt;
         2755 &lt;/ul&gt;
         2756 &lt;p&gt;These are book super-powers, in my book (a Klutz-worthy pun?). In our day, my sister and I owned, devoured, and treasured these Klutz titles:&lt;/p&gt;
         2757 &lt;ul&gt;
         2758 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0932592082/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0932592082&amp;#x26;linkId=5bb878d785a02edc2b01eeffd63f9a76&quot;&gt;Country and Blues Harmonica for the Musically Hopeless&lt;/a&gt; (comes with instructional cassette and a gen-u-ine Hohner harmonica)&lt;/li&gt;
         2759 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1591747007/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1591747007&amp;#x26;linkId=bf0dda95c016b59824316ebe42f872ec&quot;&gt;Friendship Bracelets Craft Kit&lt;/a&gt; (comes with string and supplies for making friendship bracelets)&lt;/li&gt;
         2760 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1878257501/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1878257501&amp;#x26;linkId=7315967f85fba1c812b20b480b0bd966&quot;&gt;Table Top Football: A Guide to the Classic Lunchroom Sport&lt;/a&gt; (comes with an amazing leather-ish table top football)&lt;/li&gt;
         2761 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1878257536/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1878257536&amp;#x26;linkId=58c3235cd298baf5ec29fb13ee806ced&quot;&gt;Cats Cradle&lt;/a&gt; (comes with a tie-die cat&apos;s cradle string)&lt;/li&gt;
         2762 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1591745047/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1591745047&amp;#x26;linkId=905fbe99f4844c375f00baa92f1beee0&quot;&gt;Bead Loom Bracelets: Learn to Make Beautiful Beaded Bracelets&lt;/a&gt; (comes with beads and string)&lt;/li&gt;
         2763 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1878257412/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1878257412&amp;#x26;linkId=d283508248a4016cd908bd8e37fcea68&quot;&gt;Kids Shenanigans&lt;/a&gt; (comes with a Whoopie cushion!)&lt;/li&gt;
         2764 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1878257749/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1878257749&amp;#x26;linkId=99f448476dd4b6ce6baae76dbf048446&quot;&gt;Earthsearch: A Kid&apos;s Geography Museum in a Book&lt;/a&gt; (comes with interactive spinners, a sand-powered clock, and a real-life penny)&lt;/li&gt;
         2765 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1878257145/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1878257145&amp;#x26;linkId=6b93493aa3d2cd5660e5e24c404ad5e6&quot;&gt;Explorabook: A Kid&apos;s Science Museum in a Book&lt;/a&gt; (comes with a bunch more interactive projects and whatnots inside the book, like mirrors, spinners, and a packet of algae that you can grow)&lt;/li&gt;
         2766 &lt;/ul&gt;
         2767 &lt;p&gt;As a kid, there was nothing better than getting a new Klutz book (ok, maybe a Super Nintendo game). But unlike a replay of &lt;em&gt;Super Mario RPG&lt;/em&gt;, these Klutz books require no nostaglia goggles. Here&apos;s why I think they&apos;re magic:&lt;/p&gt;
         2768 &lt;h3&gt;Klutz books are spiral-bound&lt;/h3&gt;
         2769 &lt;p&gt;Books for learning stuff should be able to open up and stay flat. The old 1980s computer manuals for computers like the Commodore VIC-20, the Commodore 64, and &lt;a href=&quot;/my-new-old-apple-iie-computer&quot;&gt;my new old Apple IIe&lt;/a&gt; knew this much -- their manuals were spiral-bound and spell-binding.&lt;/p&gt;
         2770 &lt;p&gt;So, why don&apos;t we see more spiral-bound books? Without knowing that much about printing costs, I imagine they&apos;re more expensive. Also, they do look slightly worse on a bookshelf, especially if you&apos;re going for that &apos;grammable color pattern look (so, just don&apos;t do this).&lt;/p&gt;
         2771 &lt;h3&gt;Klutz books come with the required materials&lt;/h3&gt;
         2772 &lt;p&gt;The little &quot;paper&quot; football that came with the &lt;em&gt;Table Top Football: A Guide to the Classic Lunchroom Sport&lt;/em&gt; was a revered grail of mine. I remember that my dad took a sheetrock knife and made a small incision in its plastic case attached to the book so that the football could be slid in and out, with the explicit rule that the football must either be &lt;em&gt;in the case&lt;/em&gt; or &lt;em&gt;being used in a game&lt;/em&gt;. This is much like the inexorable &lt;a href=&quot;https://hypercritical.co&quot;&gt;Jon Siracusan&lt;/a&gt; rule for Airpods. Obey, or the Airpods will be instantly lost forever.&lt;/p&gt;
         2773 &lt;p&gt;&lt;span
         2774       class=&quot;gatsby-resp-image-wrapper&quot;
         2775       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 334px; &quot;
         2776     &gt;
         2777       &lt;a
         2778     class=&quot;gatsby-resp-image-link&quot;
         2779     href=&quot;/static/e4a351feccb1c6d3e7524fa014860c7c/20f07/football.jpg&quot;
         2780     style=&quot;display: block&quot;
         2781     target=&quot;_blank&quot;
         2782     rel=&quot;noopener&quot;
         2783   &gt;
         2784     &lt;span
         2785     class=&quot;gatsby-resp-image-background-image&quot;
         2786     style=&quot;padding-bottom: 149.69325153374234%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAeABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAEEAgP/xAAXAQADAQAAAAAAAAAAAAAAAAAAAgMB/9oADAMBAAIQAxAAAAFvlpbUjNlJxvnF2IF//8QAHhAAAgICAgMAAAAAAAAAAAAAAQIAAwQSESExMkL/2gAIAQEAAQUC+4vYs9+4vhidg41qblTUTLcTeLjkT//EABkRAQADAQEAAAAAAAAAAAAAAAEAAhESIf/aAAgBAwEBPwFtUxYoukN3pns//8QAFhEBAQEAAAAAAAAAAAAAAAAAEBFB/9oACAECAQE/AbhD/8QAHBAAAgEFAQAAAAAAAAAAAAAAAAEREBIhMWEy/9oACAEBAAY/Atm6Yq1A5jmSTaFa44ej/8QAHxAAAgEDBQEAAAAAAAAAAAAAAAERITFREEFhgaFx/9oACAEBAAE/IXdNH0pt60s+YTwWTMoPdkk4oBLInfctKKiGaGunQhijhI//2gAMAwEAAgADAAAAEMgac//EABkRAAMBAQEAAAAAAAAAAAAAAAERMQBRYf/aAAgBAwEBPxB6SJFjqJxi5J5kRfd//8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAhEf/aAAgBAgEBPxAO8QZIcgA5f//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExQVH/2gAIAQEAAT8QOCFLqxOFsfl5YHep2OopSsOwNGiW8yPYjHSMIaUDyIP2miL+adu5nhc+uEGVBtaKhC5o1mB6+jdqIaReYA5P/9k=&apos;); background-size: cover; display: block;&quot;
         2787   &gt;&lt;/span&gt;
         2788   &lt;img
         2789         class=&quot;gatsby-resp-image-image&quot;
         2790         alt=&quot;football&quot;
         2791         title=&quot;football&quot;
         2792         src=&quot;/static/e4a351feccb1c6d3e7524fa014860c7c/20f07/football.jpg&quot;
         2793         srcset=&quot;/static/e4a351feccb1c6d3e7524fa014860c7c/d2f63/football.jpg 163w,
         2794 /static/e4a351feccb1c6d3e7524fa014860c7c/c989d/football.jpg 325w,
         2795 /static/e4a351feccb1c6d3e7524fa014860c7c/20f07/football.jpg 334w&quot;
         2796         sizes=&quot;(max-width: 334px) 100vw, 334px&quot;
         2797         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2798         loading=&quot;lazy&quot;
         2799       /&gt;
         2800   &lt;/a&gt;
         2801     &lt;/span&gt;&lt;/p&gt;
         2802 &lt;p&gt;Side note that there are some people who just love making small cuts into the plastic cases for things, so that you easily return them to their &quot;pristine&quot; condition. I, myself, don&apos;t understand these people. I like wripping these cases to shreds instantly.&lt;/p&gt;
         2803 &lt;p&gt;Anyway, back to these Klutz books. By including juggling bean bags, yarn for friendship bracelets, or a real harmonica, Klutz Press books gave you everything you needed to get your hands dirty. &quot;Active learning&quot;, or something like that. Playing = learning. Etcetera.&lt;/p&gt;
         2804 &lt;h3&gt;Klutz books have hilarious art&lt;/h3&gt;
         2805 &lt;p&gt;&lt;span
         2806       class=&quot;gatsby-resp-image-wrapper&quot;
         2807       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 450px; &quot;
         2808     &gt;
         2809       &lt;a
         2810     class=&quot;gatsby-resp-image-link&quot;
         2811     href=&quot;/static/6c99ba6e2419ae976e32b7e293532a7a/20e5d/shenanigan.jpg&quot;
         2812     style=&quot;display: block&quot;
         2813     target=&quot;_blank&quot;
         2814     rel=&quot;noopener&quot;
         2815   &gt;
         2816     &lt;span
         2817     class=&quot;gatsby-resp-image-background-image&quot;
         2818     style=&quot;padding-bottom: 105.52147239263803%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAVABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMFAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAdbnrMHXTOaxLVhH/8QAHBAAAgICAwAAAAAAAAAAAAAAAQIDEgARISIz/9oACAEBAAEFApN2LODG11PJdu8HjUY8KvirVf/EABgRAQEAAwAAAAAAAAAAAAAAAAEQAhEh/9oACAEDAQE/Acl4E3P/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAbEAACAwADAAAAAAAAAAAAAAAAEQIhQQFRYf/aAAgBAQAGPwKKwdIY/UckSq06Ef/EABwQAQACAwADAAAAAAAAAAAAAAEAESExQVFhof/aAAgBAQABPyHfmlkI6WLkpZRQkhvzZPgjVXSPcPIQgOif/9oADAMBAAIAAwAAABD40Dz/xAAYEQADAQEAAAAAAAAAAAAAAAAAAREh0f/aAAgBAwEBPxDAt3onVUVbRKH/xAAYEQACAwAAAAAAAAAAAAAAAAAAARARIf/aAAgBAgEBPxBYIqP/xAAeEAEBAAMAAQUAAAAAAAAAAAABEQAhMUFRYZHB4f/aAAgBAQABPxApxWslvL8YioBbdp66M2IbXl+8SKLKTxPGbV2tv3wQefrIIQcjra44KFKwLjarpL3P/9k=&apos;); background-size: cover; display: block;&quot;
         2819   &gt;&lt;/span&gt;
         2820   &lt;img
         2821         class=&quot;gatsby-resp-image-image&quot;
         2822         alt=&quot;shenanigan&quot;
         2823         title=&quot;shenanigan&quot;
         2824         src=&quot;/static/6c99ba6e2419ae976e32b7e293532a7a/20e5d/shenanigan.jpg&quot;
         2825         srcset=&quot;/static/6c99ba6e2419ae976e32b7e293532a7a/d2f63/shenanigan.jpg 163w,
         2826 /static/6c99ba6e2419ae976e32b7e293532a7a/c989d/shenanigan.jpg 325w,
         2827 /static/6c99ba6e2419ae976e32b7e293532a7a/20e5d/shenanigan.jpg 450w&quot;
         2828         sizes=&quot;(max-width: 450px) 100vw, 450px&quot;
         2829         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2830         loading=&quot;lazy&quot;
         2831       /&gt;
         2832   &lt;/a&gt;
         2833     &lt;/span&gt;&lt;/p&gt;
         2834 &lt;p&gt;Just look at that paper airplane stuck in the teacher&apos;s hair!&lt;/p&gt;
         2835 &lt;p&gt;Klutz had a particular art direction that spoke to me as a child. The goofy people in their guides made me feel like it was &lt;em&gt;okay to be a klutz&lt;/em&gt;. &lt;/p&gt;
         2836 &lt;p&gt;Which brings me to the most important reason that Klutz books are special.&lt;/p&gt;
         2837 &lt;h3&gt;Klutz books embrace the Beginner&apos;s Mindset&lt;/h3&gt;
         2838 &lt;blockquote&gt;
         2839 &lt;p&gt;In the beginner&apos;s mind there are many possibilities. In the experts mind there are few - Shunryū Suzuki&lt;/p&gt;
         2840 &lt;/blockquote&gt;
         2841 &lt;p&gt;Everyone starts out as a klutz. No matter what. That means it&apos;s okay to make mistakes. It can even be funny - in fact, it should be funny! Because it&apos;s fun to learn new things.&lt;/p&gt;
         2842 &lt;p&gt;Being a klutz, making mistakes, having fun, this is the path to wonderful things.&lt;/p&gt;
         2843 &lt;h2&gt;Who&apos;s behind Klutz Press?&lt;/h2&gt;
         2844 &lt;p&gt;According to &lt;a href=&quot;https://en.wikipedia.org/wiki/Klutz_Press&quot;&gt;Wikipedia&lt;/a&gt;, Klutz Press was founded in 1977 by three friends in Palo Alto.&lt;/p&gt;
         2845 &lt;p&gt;The apocryphal story is that &lt;a href=&quot;https://en.wikipedia.org/wiki/John_Cassidy_(author)&quot;&gt;John Cassidy&lt;/a&gt;, a recent Stanford grad working as a high school teacher, brought a bucket of tennis balls and some hand-written instructions for juggling to his remedial reading class. The laughs and learning and genuine reading and genuine juggling that ensued inspired Cassidy and his buddies from Stanford to publish &lt;em&gt;Juggling For the Complete Klutz&lt;/em&gt; under their new company: Klutz Press.&lt;/p&gt;
         2846 &lt;p&gt;&lt;em&gt;Juggling For the Complete Klutz&lt;/em&gt; has sold over 2.5 million copies. But Googling for Klutz Press is somewhat challenging these days. In 2000, Klutz was acquired by a company called Nelvana for $74 million, and in 2002 Klutz became a subsidiary of Scholastic, Inc. This latter merger is a good match in my book, as the Scholastic Book Fair also ranks heavily in my childhood memories of learning to love reading. The only other company I&apos;d feel comfortable with owning Klutz Press is Pizza Hut - thanks to their delicious &lt;a href=&quot;https://www.bookitprogram.com/&quot;&gt;BOOK-IT!&lt;/a&gt; reading program, which brought me dozens of delicious cheese Personal Pan Pizzas during the 1990s. My parents couldn&apos;t decide if they hated or loved Pizza Hut for this.&lt;/p&gt;
         2847 &lt;p&gt;Nowadays, Klutz.com redirects to the Scholastic website, and it&apos;s unclear what&apos;s out-of-print or available from the voluminous Klutz catalog. So if you do find a genuine Klutz book and kit, I&apos;d snag them quickly!&lt;/p&gt;
         2848 &lt;p&gt;Luckily, I was able to find a good interview with Cassidy from 1995 on the &lt;a href=&quot;https://web.archive.org/web/20110616182712/http://findarticles.com/p/articles/mi_m1154/is_n5_v83/ai_16857996/&quot;&gt;Wayback Machine&lt;/a&gt;. In 1995, Klutz was at the height of their power and influence in kid&apos;s minds. Here are some choice quotes from Cassidy:&lt;/p&gt;
         2849 &lt;p&gt;On their company culture at Klutz Press:&lt;/p&gt;
         2850 &lt;blockquote&gt;
         2851 &lt;p&gt;&quot;In terms of being laid back, we take a back seat to nobody.&quot;&lt;/p&gt;
         2852 &lt;/blockquote&gt;
         2853 &lt;p&gt;On their &quot;teaching&quot; style:&lt;/p&gt;
         2854 &lt;blockquote&gt;
         2855 &lt;p&gt;&quot;Talk to a kid about fun and math, and it&apos;s like you&apos;re talking about two different sides of the universe. If we can climb this mountain, there&apos;s nothing we can&apos;t tackle.&quot;&lt;/p&gt;
         2856 &lt;/blockquote&gt;
         2857 &lt;blockquote&gt;
         2858 &lt;p&gt;&quot;Kids don&apos;t learn all that much by listening or reading. They need to get elbow-deep in a subject and touch it, feel it, and smell it.&quot;&lt;/p&gt;
         2859 &lt;/blockquote&gt;
         2860 &lt;p&gt;This reminds me of Seymour Paypert&apos;s &lt;a href=&quot;https://www.amazon.com/gp/product/0465046746/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0465046746&amp;#x26;linkId=2949aefc36d4bd9d9f632170d2ac23de&quot;&gt;Mindstorms book&lt;/a&gt; about his work with LOGO and the Turtle machine (you can check out &lt;a href=&quot;/mindstorms&quot;&gt;my notes&lt;/a&gt; on the book)&lt;/p&gt;
         2861 &lt;p&gt;The article explains a bit about their business:&lt;/p&gt;
         2862 &lt;ul&gt;
         2863 &lt;li&gt;All of Klutz&apos; books sell for less than $20&lt;/li&gt;
         2864 &lt;li&gt;They can have low prices because: (1) the books (with their accompanying &quot;stuff&quot;) are viewed as more than books - but &quot;toys/novelties&quot;, so more retailers than booksellers are interesting in carring them, and (2) they do large printing runs (150k copies vs the usual 10k for children&apos;s books)&lt;/li&gt;
         2865 &lt;/ul&gt;
         2866 &lt;p&gt;And, importantly, the final word from Cassidy:&lt;/p&gt;
         2867 &lt;blockquote&gt;
         2868 &lt;p&gt;&quot;I can hang a spoon off my nose,&quot; Cassidy boasts, &quot;and I take a lot of pride in that&quot;.&lt;/p&gt;
         2869 &lt;/blockquote&gt;
         2870 &lt;h2&gt;Create wonderful things, be good, have fun&lt;/h2&gt;
         2871 &lt;p&gt;I just wanted to write that out again. I&apos;ve decided to adopt their credo as my own life motto.&lt;/p&gt;
         2872 &lt;p&gt;I learned so much from Klutz Press as a kid. I&apos;m still learning now. Thank you, John Cassidy and team, for making these wonderful books. My juggling is finally starting to get pretty good, but I&apos;ll always be a klutz.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[The Six Levels of Interaction with a System]]></title><description><![CDATA[We recently borrowed our friends' car, because they're awesome. Along with the keys, they gave us a few, uh, provisos, a, a couple of quid…]]></description><link>https://www.charlieharrington.com/the-six-levels-of-interaction-with-a-system</link><guid isPermaLink="false">https://www.charlieharrington.com/the-six-levels-of-interaction-with-a-system</guid><pubDate>Tue, 26 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We recently borrowed our friends&apos; car, because they&apos;re awesome. Along with the keys, they gave us &lt;em&gt;a few, uh, provisos, a, a couple of quid pro quos:&lt;/em&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/p&gt;
         2873 &lt;ul&gt;
         2874 &lt;li&gt;The car takes the expensive kind of gas&lt;/li&gt;
         2875 &lt;li&gt;The trunk doesn&apos;t always open up from the outside&lt;/li&gt;
         2876 &lt;li&gt;The dash says the tail-light is out, but it&apos;s not&lt;/li&gt;
         2877 &lt;li&gt;You&apos;ll need to add more oil every 100 miles or so, and it might need an oil change&lt;/li&gt;
         2878 &lt;/ul&gt;
         2879 &lt;p&gt;I nodded throughout. Yup, needs prem-o gas. Trunk&apos;s weird, okay. Tail-light-light&apos;s-not-alright, good to know. Oil, yes, oil&apos;s a thing that cars need.&lt;/p&gt;
         2880 &lt;p&gt;Meanwhile, I caught myself thinking, &quot;Wow, they really know a lot about cars.&quot;&lt;/p&gt;
         2881 &lt;p&gt;I, for one, don&apos;t. My dad knows how to take a car apart and put it back together. I know how to get 120 stars in Super Mario 64. Sure, I learned &lt;em&gt;some stuff&lt;/em&gt; about cars growing up. I&apos;ve changed flat tires in a pinch, once helped my dad replace brake pads on our monstrous Suburban, and sorta payed attention while I helped him change the oil in Old Blue (his beloved sky blue &apos;85 Blazer).&lt;/p&gt;
         2882 &lt;p&gt;Fact is, I&apos;ve never owned a car in my adult life (hello, city-living). For those intermittent and unavoidable road trips, I&apos;ve been a semi-content customer of Zipcar. I never been forced to face the reality of &lt;strong&gt;learning cars&lt;/strong&gt;.&lt;/p&gt;
         2883 &lt;p&gt;But, sure, I&apos;d like to!&lt;/p&gt;
         2884 &lt;p&gt;Even now, I&apos;m starting to fantasize about acquiring the rusted hulk of a old Volkswagon Beetle, depositing it via crane into my garage workshop lair, tearing it apart and rebuilding it anew from first principles, as I both rediscover the invention of internal combustion and manufacture one pretty-sweet ride.&lt;/p&gt;
         2885 &lt;p&gt;Where does this fantasy come from? Well, I&apos;ve been told that Beetles have a relatively straight-forward engine for beginners (though I&apos;m not quite sure what exactly that means). But that&apos;s not quite it. Frankly, this is an all-to-familiar headspace for me. Intimidated by the mention of changing oil, my brain races ahead rebuilding a car from scratch in order to understand ... why I needed to change the oil in an entirely different car.&lt;/p&gt;
         2886 &lt;p&gt;Why do I jump all the way to wanting to understand things from first principles?&lt;/p&gt;
         2887 &lt;p&gt;Maybe because this has been a mostly-successful ideal for me to aspire to when I learned programming as an adult, and I&apos;m now pattern-matching into other complex systems. But, certainly, I should be able to productive with a system far in advance of knowing how to build it from scratch. Isn&apos;t that what interfaces are all about?&lt;/p&gt;
         2888 &lt;p&gt;Which brings me to the following shower thought:&lt;/p&gt;
         2889 &lt;h2&gt;The Six Levels of Interaction with Systems&lt;/h2&gt;
         2890 &lt;p&gt;The six levels of interaction with a system are:&lt;/p&gt;
         2891 &lt;ol start=&quot;0&quot;&gt;
         2892 &lt;li&gt;Non-use&lt;/li&gt;
         2893 &lt;li&gt;Use&lt;/li&gt;
         2894 &lt;li&gt;Monitor&lt;/li&gt;
         2895 &lt;li&gt;Maintain&lt;/li&gt;
         2896 &lt;li&gt;Repair&lt;/li&gt;
         2897 &lt;li&gt;(Re)build&lt;/li&gt;
         2898 &lt;/ol&gt;
         2899 &lt;p&gt;Yes, this is zero-indexed, obviously. Want to see it as a Ben Thompson &lt;a href=&quot;https://stratechery.com/&quot;&gt;Stratechery-style&lt;/a&gt; diagram?&lt;/p&gt;
         2900 &lt;p&gt;&lt;span
         2901       class=&quot;gatsby-resp-image-wrapper&quot;
         2902       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2903     &gt;
         2904       &lt;a
         2905     class=&quot;gatsby-resp-image-link&quot;
         2906     href=&quot;/static/019fd88c90423bca8237edf07f8b24fe/07d37/stages.png&quot;
         2907     style=&quot;display: block&quot;
         2908     target=&quot;_blank&quot;
         2909     rel=&quot;noopener&quot;
         2910   &gt;
         2911     &lt;span
         2912     class=&quot;gatsby-resp-image-background-image&quot;
         2913     style=&quot;padding-bottom: 18.404907975460123%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAABYlAAAWJQFJUiTwAAABOElEQVQY0w2PyyvDcQDAv8q/wU20tIeDPFKIcvHMTUqirM3awsEzq7UxDuTRXNmG2ZiGUstSa2GnpbHRZg42a/LcktPH7/Dpc/vUR1ivJ1gIGdiPOsmnfHwF2ymE+8gG+sm5h/nyDEkeID43QlKj51mn5mbUxJ7ei0fnxjnuZdgXZ/AiTbcvieg5U9F1KmM+PMt3xAzHAs4F77uCz2nBz6SgMCeIt5SQkleTVMkIqHpZrrKxrlzFUmNDWCOItTvEkkSHR0GbvYyZ4DR/sSV+3YKPQ0HeXURWCiYMglfJsdZSwhVKovJy/IpOTIoVFivNmGttFFuupWgIYQxKXGoxBtQ4bh3kEy5yZzLe/PW8nDSR2Woms9FAerOOhylpWzfGo17Dld7EvrR8oHWxYziiaTtCo/cJpf2efzWZ0sRof74lAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         2914   &gt;&lt;/span&gt;
         2915   &lt;img
         2916         class=&quot;gatsby-resp-image-image&quot;
         2917         alt=&quot;levels&quot;
         2918         title=&quot;levels&quot;
         2919         src=&quot;/static/019fd88c90423bca8237edf07f8b24fe/a6d36/stages.png&quot;
         2920         srcset=&quot;/static/019fd88c90423bca8237edf07f8b24fe/222b7/stages.png 163w,
         2921 /static/019fd88c90423bca8237edf07f8b24fe/ff46a/stages.png 325w,
         2922 /static/019fd88c90423bca8237edf07f8b24fe/a6d36/stages.png 650w,
         2923 /static/019fd88c90423bca8237edf07f8b24fe/e548f/stages.png 975w,
         2924 /static/019fd88c90423bca8237edf07f8b24fe/3c492/stages.png 1300w,
         2925 /static/019fd88c90423bca8237edf07f8b24fe/07d37/stages.png 1790w&quot;
         2926         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2927         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2928         loading=&quot;lazy&quot;
         2929       /&gt;
         2930   &lt;/a&gt;
         2931     &lt;/span&gt;&lt;/p&gt;
         2932 &lt;p&gt;My thanks to the &lt;a href=&quot;https://excalidraw.com&quot;&gt;Excalidraw web app&lt;/a&gt; for their excellent box drawing tool. While I&apos;m at it, should I add some &lt;a href=&quot;https://www.waitbutwhy.com&quot;&gt;Wait But Why-style&lt;/a&gt; little stick figures?&lt;/p&gt;
         2933 &lt;p&gt;&lt;span
         2934       class=&quot;gatsby-resp-image-wrapper&quot;
         2935       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2936     &gt;
         2937       &lt;a
         2938     class=&quot;gatsby-resp-image-link&quot;
         2939     href=&quot;/static/05ed9375769929e7791a124d47eac88b/80cfc/people.png&quot;
         2940     style=&quot;display: block&quot;
         2941     target=&quot;_blank&quot;
         2942     rel=&quot;noopener&quot;
         2943   &gt;
         2944     &lt;span
         2945     class=&quot;gatsby-resp-image-background-image&quot;
         2946     style=&quot;padding-bottom: 34.96932515337423%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAB4klEQVQoz02P72tScRTGv1Gv61/oXaFSbWVvg3pdbFAv2wZLiCB60S+QGP2iXkVrEXuxKBpFW0orXdaCwSaRbCyFkaXX203dvJtX77yCylWvfrpaUedwOM85nPM85wjLsmi1WjSbTTrWwZ1eo9HANE3yeQ2r1aZer5NTVQzD+N3XNDQ7OvPFok4ymUTXdUStVkNKJdEKedq2t6wmmbTCll6wF2tkFIlM6iuWLZiWJNKKQsOsk5ZlYktRKkYVo2pzyD+6wqJzVUkr879taBUarX/1mlro5ma7jWr8nbXsCzf/4DZmtdJFoljJM/d9hsWfIWK5L9RLCfTEM6pZP4YUoBIPkV+ZphAJkg/Mkns1RTY4T3Q2zopvmeWwREApMZXYYjFTQkTVz5x656bvrYurny5QWb1FY0ZgfRBsju+g5N1G+aZAHthJyuVG6XWwcKCfO73jTLjuM3TiOWJCRox+48ibDCKmRjgZdHPc5+By+DxW4jZVv8AMCcqPt6NeFGxcE2QHdxFzHmJ1/x4Wevq40TPGQ+ddhvunEWMxxPUwx17bxJIWxzt/hivvT/No6QE1+Yn92m4Kc/tYe3GY9XsHWR91Io8cJTl8jpRniIjHy1OPD//gJCOXAjheJtg7meTsR4Vf/GbF9AWAKbcAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         2947   &gt;&lt;/span&gt;
         2948   &lt;img
         2949         class=&quot;gatsby-resp-image-image&quot;
         2950         alt=&quot;people&quot;
         2951         title=&quot;people&quot;
         2952         src=&quot;/static/05ed9375769929e7791a124d47eac88b/a6d36/people.png&quot;
         2953         srcset=&quot;/static/05ed9375769929e7791a124d47eac88b/222b7/people.png 163w,
         2954 /static/05ed9375769929e7791a124d47eac88b/ff46a/people.png 325w,
         2955 /static/05ed9375769929e7791a124d47eac88b/a6d36/people.png 650w,
         2956 /static/05ed9375769929e7791a124d47eac88b/e548f/people.png 975w,
         2957 /static/05ed9375769929e7791a124d47eac88b/3c492/people.png 1300w,
         2958 /static/05ed9375769929e7791a124d47eac88b/80cfc/people.png 1844w&quot;
         2959         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2960         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2961         loading=&quot;lazy&quot;
         2962       /&gt;
         2963   &lt;/a&gt;
         2964     &lt;/span&gt;&lt;/p&gt;
         2965 &lt;p&gt;Not funny enough? How about a concentric-circle approach? That probably makes more sense, anyway.&lt;/p&gt;
         2966 &lt;p&gt;&lt;span
         2967       class=&quot;gatsby-resp-image-wrapper&quot;
         2968       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         2969     &gt;
         2970       &lt;a
         2971     class=&quot;gatsby-resp-image-link&quot;
         2972     href=&quot;/static/aac83040f2c998858cc7a4acce92d28c/b12f7/onion.png&quot;
         2973     style=&quot;display: block&quot;
         2974     target=&quot;_blank&quot;
         2975     rel=&quot;noopener&quot;
         2976   &gt;
         2977     &lt;span
         2978     class=&quot;gatsby-resp-image-background-image&quot;
         2979     style=&quot;padding-bottom: 107.97546012269939%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAYAAADAQbwGAAAACXBIWXMAABYlAAAWJQFJUiTwAAAFj0lEQVQ4y0WUeVBVdRTHfxcyLa2ZtCl10PYcK9PkbYAKImabUcryeCiL45ILaKIBiSLiilSGuAQIaaOYBg8eILI89D00zW1cpslCcM0kXNPG0vLTeffZ+Md37r1zz/3cc37nnK/acnw9aw8vpuDIcr7StYz1R5ay7rBHS7w6skSPWXMomzUHs8k/sEjXao9+yBIt4vN989hydD1q2q5wPqgbQFS9kYh6fyJ1GfRrtCiqdjAR1W8QWTOY6Dp51t/dV4NX0Q0mwuteY05zLGqOO5bYxiASnaEkOIfrmuAMIa4pFKvrTd4tC+GtkkBGiUbbQxjnDpPY4aIQ4uUar9+PIKYhgIy9k1Cz3Vb9Ic4T0DhMQMFECDyxOoBc+8tsd/ixtfRpSrf3prjiWVLKBxFZF4K1yfPzYYyXb+Ll2+gGM5/umfAAmNAYjE2CbDuGUrStL+3VnaBaQa3iQqHityK536G4XaM4UP44c8teJ6IxVGAPgOnNiV6grcEisFCm1pg5WtYN6hR/bVX8sUbj5HyFK1nDPVPAyxVXCzTuVSr+EfBq+4tECjTRGYxVgGnuBFSKy0q0M5CJtUG02B+BnYqOfF+uZQkgqSvHx/Zkf1gf9o/qzUnbU7TP6czFxYrrmzU9NreiH9FNYZKUmVRXvKcpVj5sCKKuoqce8HuewDI0forwo83kj3uAhe0DwvjutVAODjTSNnQg5yd1p32h4lapxs0dPsyoMhHpDCBtdxwqSVqdVDWAO7UaHRt8uJap+GlsX868YaHJEkOBZQVfDlzM54Oy+cqUzlHTKE4ZTLQmdufyCk0/55qynoyuCyTdJcCp7nFsrOilv+iQgHPTH6PNYMBlHsNqSxGfWdYS/l4eMW/lsdpUJD/I4WfjME4FD+Ryeiduf61or+lMnMzpXM8ZTnHa2O94lLulistybm0Rz9LiH8BGSxYrgwrpO3836ptLqE0XCZ5WRb6hAIdlAueNRi5M6sGNPGmQJJNS1Z9ZLhmbGXXRnKh6mJsbFFcWSobv9OOYIYwS/xzGW79DFZ7Ed8X3qBzRqsOkjfyGUkOKAE2csfbhao7iXoUio/wFkncLcLoAjwvwlgCvC/Ds2/05YRjOJv/lxMWUo4p+EeA+1BeH8Mk7RsbIzWwzJOvAX6L8uCLAf+wCtN8HTnHG0lzZlXtS8o1sRcuY5zjjb2KTaQ65gSX0S3eiSs5Kpq28P8EuJRdSbx7LOb0xUvIqxZ0qjZTqV7wle5pSXC4jI2l3LNO4mPQYp41mDpqGs9aUyyrLBma8XUz6yBLyjcUUG2dxxmThRxmf9tSHuL5OmlLbhbgdg/nE05Qkt3ds7u7UuJTvw02Zr9boZzg3OJBjlhF8a/mYEsMSvjYupNIcxymBtRoCuDDlCTqyNf7drqh19GJ0fRCf/j/YH9QPwWH3js6lZb7cytQ4be0rg22U8s20GofKKAVxVo7iVJCB8xOf5MoCjauFGpcdvkypMBPVJIPtAXpWzyqrN756CCfKu+qlX1jqyw3JtH1mN87a/Gh5/3lawp+jbXwvrn7SmY4sjfb1mr7Pi8r6y+qNkNUzyepJybNdXnMYt0uW3GHhoP1xPdM/xGGurZQslsrZSvd/lx9c8dx/pnFXjOO2OE9uZT9ZOa856G7jTvRkGCPAQBIbxTzFcWLF6wpkBH6t7sIdcRXPwLNZ8fcmrwP9WeXD95U9mO0wECXG6oElCNQqSc3bMxE10xUhFuSPTcq2NVqIkSUPbxwivmiU2XqJDXLg2xw9KLU/ySq7H9PsrxK+M0BMOFCc3oxVvrE1BjKmfhBpe+UMc1xpzK2PZ55zkq6Mpslk7prMfNdHpDbPIMWdRMou0e5kUvfOYsG+ZBbtmU5W8zQy3VNZIHGZrqmkOhNYs38x/wHuOjAwBDroCQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         2980   &gt;&lt;/span&gt;
         2981   &lt;img
         2982         class=&quot;gatsby-resp-image-image&quot;
         2983         alt=&quot;onion&quot;
         2984         title=&quot;onion&quot;
         2985         src=&quot;/static/aac83040f2c998858cc7a4acce92d28c/a6d36/onion.png&quot;
         2986         srcset=&quot;/static/aac83040f2c998858cc7a4acce92d28c/222b7/onion.png 163w,
         2987 /static/aac83040f2c998858cc7a4acce92d28c/ff46a/onion.png 325w,
         2988 /static/aac83040f2c998858cc7a4acce92d28c/a6d36/onion.png 650w,
         2989 /static/aac83040f2c998858cc7a4acce92d28c/e548f/onion.png 975w,
         2990 /static/aac83040f2c998858cc7a4acce92d28c/b12f7/onion.png 1020w&quot;
         2991         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         2992         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         2993         loading=&quot;lazy&quot;
         2994       /&gt;
         2995   &lt;/a&gt;
         2996     &lt;/span&gt;&lt;/p&gt;
         2997 &lt;p&gt;Yes, those are the vintage Apple logo colors, because I literally cannot help myself (it was hard enough not to write another post about &lt;a href=&quot;/my-new-old-apple-iie-computer&quot;&gt;my Apple IIe&lt;/a&gt;).&lt;/p&gt;
         2998 &lt;p&gt;Let&apos;s go through the levels one-by-one, continuing our use of a car as the example.&lt;/p&gt;
         2999 &lt;h3&gt;Level 0: Non-use&lt;/h3&gt;
         3000 &lt;p&gt;You can&apos;t use the system. You don&apos;t know how to drive the car.&lt;/p&gt;
         3001 &lt;h3&gt;Level 1: Use&lt;/h3&gt;
         3002 &lt;p&gt;You can use the primary purpose of the system. You know how to drive a car safely. You can go in reverse. You can pass a driver&apos;s test.&lt;/p&gt;
         3003 &lt;h3&gt;Level 2: Monitor&lt;/h3&gt;
         3004 &lt;p&gt;You know how to observe secondary signals from the system. In our car, you know to occasionally review the dashboard for things like the engine light. You don&apos;t necessarily know what to do about these signals, but you know they are &lt;em&gt;a thing&lt;/em&gt;, and will probably &lt;em&gt;mention&lt;/em&gt; them to someone like a mechanic (but, hey, no guarantee).&lt;/p&gt;
         3005 &lt;h3&gt;Level 3: Maintain&lt;/h3&gt;
         3006 &lt;p&gt;You are comfortable enough with the previous monitoring signals and your own &quot;handy-ness&quot; (is that a word?) to do routine maintence on the system. You add more washer fluid when it gets low. You replace the dead battery. You add air to your tires at the gas station.&lt;/p&gt;
         3007 &lt;h3&gt;Level 4: Repair&lt;/h3&gt;
         3008 &lt;p&gt;You know how to fix sub-systems in the overall system. Not necessary all of them, but the most important ones (probably the ones that break most often). You can change a tire. You can replace brake pads. You can fix a broken headlight.&lt;/p&gt;
         3009 &lt;h3&gt;Level 5: (Re)build&lt;/h3&gt;
         3010 &lt;p&gt;You know how to tear apart the system completely and re-build it from scratch. You understand each sub-system, why it&apos;s there, and how to make them all work together. You can take apart the Volkswagon Beetle and put it back together. You can levitate.&lt;/p&gt;
         3011 &lt;h2&gt;Other examples&lt;/h2&gt;
         3012 &lt;blockquote&gt;
         3013 &lt;p&gt;Sure, Charlie, that worked conveniently for your car example. But what about... other stuff?&lt;/p&gt;
         3014 &lt;/blockquote&gt;
         3015 &lt;p&gt;Great question!&lt;/p&gt;
         3016 &lt;p&gt;How about investing?&lt;/p&gt;
         3017 &lt;ol start=&quot;0&quot;&gt;
         3018 &lt;li&gt;&lt;strong&gt;Non-use&lt;/strong&gt;: Don&apos;t invest anything&lt;/li&gt;
         3019 &lt;li&gt;&lt;strong&gt;Use&lt;/strong&gt;: Invest some money and be able to check-in your returns&lt;/li&gt;
         3020 &lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt;: Compare your returns with alternative investments&lt;/li&gt;
         3021 &lt;li&gt;&lt;strong&gt;Maintain&lt;/strong&gt;: Make slight adjustments based on these alternatives&lt;/li&gt;
         3022 &lt;li&gt;&lt;strong&gt;Repair&lt;/strong&gt;: Fix gaping holes or major problems in your investing strategy&lt;/li&gt;
         3023 &lt;li&gt;&lt;strong&gt;Re(build)&lt;/strong&gt;: Design a custom investment strategy for you (or anyone else)&lt;/li&gt;
         3024 &lt;/ol&gt;
         3025 &lt;p&gt;Okay, admittedly &lt;strong&gt;Repair&lt;/strong&gt; and &lt;strong&gt;Rebuild&lt;/strong&gt; blended a bit there. But I think that&apos;s fine. &lt;/p&gt;
         3026 &lt;p&gt;&lt;strong&gt;In fact, the lines between these levels are meant to be porous&lt;/strong&gt;. A Level 3 could probably do some serious Level 4 stuff. Even a Level 0 non-user &lt;em&gt;probably&lt;/em&gt; knows enough from pop-culture and context clues to be a Level 1 user, with the proper motivation.&lt;/p&gt;
         3027 &lt;p&gt;Let&apos;s try another example: using a desktop computer!&lt;/p&gt;
         3028 &lt;ol start=&quot;0&quot;&gt;
         3029 &lt;li&gt;&lt;strong&gt;Non-use&lt;/strong&gt;: Don&apos;t know how to use a computer. They&apos;re evil!&lt;/li&gt;
         3030 &lt;li&gt;&lt;strong&gt;Use&lt;/strong&gt;: Can use a computer to do stuff (go online, write a document, print it out, use a spreadsheet, play Minecraft)&lt;/li&gt;
         3031 &lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt;: Notice that your browser is slower than normal or that you are running out of hard drive space&lt;/li&gt;
         3032 &lt;li&gt;&lt;strong&gt;Maintain&lt;/strong&gt;: Empty your &quot;trash bin&quot;, delete old unused apps&lt;/li&gt;
         3033 &lt;li&gt;&lt;strong&gt;Repair&lt;/strong&gt;: Remove that sketchy ad company browser extension from your parent&apos;s computer. Restore your computer&apos;s data from a backup drive.&lt;/li&gt;
         3034 &lt;li&gt;&lt;strong&gt;Re(build)&lt;/strong&gt;: Take apart a computer, install new hard drive, re-install operating system.&lt;/li&gt;
         3035 &lt;/ol&gt;
         3036 &lt;p&gt;I suppose with that example we transitioned from a non-computer-user all the way to computer technician. It&apos;s patently obvious that there are levels of understanding even beyond our Level 5 skill of being able to &quot;take apart a computer and install something new in it.&quot; Like, how does a hard drive even work? How does memory work? What is physics? What is truth? &lt;/p&gt;
         3037 &lt;p&gt;The onion is infinite. But these outer levels may prove useful as you encounter unknown systems. &lt;/p&gt;
         3038 &lt;p&gt;There&apos;s often money to be made for more advanced &quot;Levels&quot; to sell their skills to lower level-ers. I&apos;m not going to fix a cavity myself - I&apos;m going to pay an expert, a Level 5 dentist to do it. In a pinch, a desert-island pinch, I&apos;m sure I could figure out how do some Castaway-style dentistry. But I&apos;m not (yet) on a desert island, and I don&apos;t want to take the time to go beyond a Level 3 in the kinda-gross system that is my own teeth situation. I&apos;ll floss, mostly every day, which puts me squarely in Level 3. The bet I&apos;m making is that my time doing Level 3 work will be worth it, given the effort, compared to my toothless friends in the preceeding levels.&lt;/p&gt;
         3039 &lt;h2&gt;So, what&apos;s the right way to learn a new system?&lt;/h2&gt;
         3040 &lt;p&gt;I don&apos;t know! &lt;/p&gt;
         3041 &lt;p&gt;On one hand, knowledge stacks on previous or prerequiste knowledge. It&apos;s probably helpful to know about arithmetic before tackling algebra.&lt;/p&gt;
         3042 &lt;p&gt;On the other hand, if all you ever want to do is &quot;use&quot; something, use the system for its primary intended purpose, maybe it&apos;s not worth digging deeper -- at least not initially. When we learn how to drive, we don&apos;t start with a box of car parts and the skeleton frame of a burned out Cheverolt (as much as I wish we did). No, we got behind the wheel (after watching countless VHS tapes of instructional material) and learned how to drive. We straight-up Level 1&apos;ed that car.&lt;/p&gt;
         3043 &lt;p&gt;The question to consider is: what&apos;s your goal? &lt;/p&gt;
         3044 &lt;p&gt;Your answer should guide where you should set your North Star in the onion-level-spectrum-chart-thing.&lt;/p&gt;
         3045 &lt;h3&gt;A note on instructional design&lt;/h3&gt;
         3046 &lt;p&gt;Great courses and great teachers take a strong viewpoint towards this question.&lt;/p&gt;
         3047 &lt;p&gt;Sal Khan of &lt;a href=&quot;https://www.khanacademy.org/&quot;&gt;Khan Academy&lt;/a&gt; seems to take the former approach, stacking layers of prerequisite knowledge nuggets in a knowledge graph that goes from counting to category theory, and everywhere in-between. Their approach makes learning math trackable and digestible, relying on momentum, quick wins, and gameification to keep students motivated.&lt;/p&gt;
         3048 &lt;p&gt;Whereas, &lt;a href=&quot;https://www.fast.ai/about/#jeremy&quot;&gt;Jeremy Howard&lt;/a&gt; and &lt;a href=&quot;https://www.fast.ai/about/#rachel&quot;&gt;Rachel Thomas&lt;/a&gt; of the &lt;a href=&quot;https://course.fast.ai/&quot;&gt;Fast.ai deep learning course&lt;/a&gt; go straight for Level 1, making students feel comfortable &quot;using deep learning to do cool things first&quot;, and then and only then start peeling back the layers (good word choice here, I think, given the context) to the complexities beneath the surface.&lt;/p&gt;
         3049 &lt;p&gt;In both cases, it&apos;s about finding the right way to motivate your students. There&apos;s no right answer. In fact, I adore both of these courses and projects, even if I think I failed as a student in both of them. In the case of Khan Academy, I lost motivation because there&apos;s too much to learn and not enough time to completely do my math-life over (as much as I want to). In the case of fast.ai, I became too self-conscious about linear algebra (a skill that&apos;s well past Level 1 stuff).&lt;/p&gt;
         3050 &lt;h3&gt;&quot;What&apos;s next?&quot; asked the life-long learner&lt;/h3&gt;
         3051 &lt;p&gt;Is this six-levels thing a brilliant and new grand unified theorem of learning systems? No, of course not. I&apos;m probably butchering some existing theorem from an oversized coffee-table-sized book about mental models. But isn&apos;t that the point of mental models, so you can re-use them?&lt;/p&gt;
         3052 &lt;p&gt;For me, this &quot;thereom&quot; (I&apos;m still going to call it that) helps me think about priorities. Which systems do I want to become Level 5 in over the next few years?&lt;/p&gt;
         3053 &lt;p&gt;Is it this car? Probably not. But I&apos;ll still watch some YouTubes so that I can figure how to put more oil in it.&lt;/p&gt;
         3054 &lt;h4&gt;Footnotes&lt;/h4&gt;
         3055 &lt;ol&gt;
         3056 &lt;li&gt;No actual quid pro quos were exchanged. I merely wanted to quote the Genie.&lt;/li&gt;
         3057 &lt;/ol&gt;</content:encoded></item><item><title><![CDATA[My New Old Apple IIe Computer]]></title><description><![CDATA[That Monday morning in February began like any other Monday: I opened my phone immediately upon waking up, browsed Twitter, checked…]]></description><link>https://www.charlieharrington.com/my-new-old-apple-iie-computer</link><guid isPermaLink="false">https://www.charlieharrington.com/my-new-old-apple-iie-computer</guid><pubDate>Tue, 12 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;That Monday morning in February began like any other Monday: I opened my phone immediately upon waking up, browsed Twitter, checked Instagram, and ignored my email, all from bed, making no pretense of daily gratitude journaling. I got up to make the coffee, and then opened eBay to look at old computers.&lt;/p&gt;
         3058 &lt;p&gt;eBay thrills in me in an early Internet kind-of-way. It&apos;s dirty. You can&apos;t believe it works. And you can still find a deal.&lt;/p&gt;
         3059 &lt;p&gt;My greatest feat of all was the 2006 purchase of a Fender American Stratocaster for roughly $300 bucks which had been mislisted into an &quot;Fender - Other&quot; category. Its description warned that the guitar was &quot;missing a few strings.&quot;&lt;/p&gt;
         3060 &lt;p&gt;Jackpot.&lt;/p&gt;
         3061 &lt;p&gt;I&apos;d been waffling between a &lt;a href=&quot;https://en.wikipedia.org/wiki/Commodore_VIC-20&quot;&gt;Commodore VIC-20&lt;/a&gt; and some kind of Apple II in my vintage computer fantasies. As an undying fan of YouTube&apos;s &lt;a href=&quot;https://www.youtube.com/channel/UC8uT9cgJorJPWu7ITLGo9Ww&quot;&gt;The 8-Bit Guy&lt;/a&gt;&lt;sup&gt;1&lt;/sup&gt;, I longed for a computer of my own that I could clean with hydrogen peroxide and baking soda, as I wondered what sad fate the brave, worthy computer had faced before meeting me, its benevolent new master. We&apos;d write infinite loops in BASIC together. We&apos;d travel the Oregon Trail. We&apos;d poke each other&apos;s memory.&lt;/p&gt;
         3062 &lt;p&gt;I set a few auctions to my watch-list, and then laced on my sneakers for our morning run. Not one block away from our house did I spot something: a yellowed plastic box amid a pile of trash. No. It couldn&apos;t be. I stopped, and went back to the trash.&lt;/p&gt;
         3063 &lt;p&gt;It was an Apple IIe. With its CRT monitor. And a dual floppy drive.&lt;/p&gt;
         3064 &lt;p&gt;Just. SITTING. THERE.&lt;/p&gt;
         3065 &lt;p&gt;I explained the situation to Carly. She suggested, wisely, that we continue our run, of which we were less than 30 seconds into, and that if the computer was still outside when we got back, that I should knock on the door of the house, to confirm it was truly being thrown out.&lt;/p&gt;
         3066 &lt;p&gt;The next 30 minutes were agony. I&apos;ve never ran so fast in my life.&lt;/p&gt;
         3067 &lt;p&gt;But it was still there.&lt;/p&gt;
         3068 &lt;p&gt;I knocked on the door. They were remodeling, I could hear saws or something inside. No one answered. I knocked again. I considered, you know, for a second, just taking it. Finally, the door opened. I introduced myself, likely sounding as insane as felt, and asked if the computer in the trash was.. trash. She nodded, and mentioned that, &quot;It still works.&quot;&lt;/p&gt;
         3069 &lt;blockquote&gt;
         3070 &lt;p&gt;It still works.&lt;/p&gt;
         3071 &lt;/blockquote&gt;
         3072 &lt;p&gt;No better sounds could have been uttered.&lt;/p&gt;
         3073 &lt;h3&gt;Plugging it in&lt;/h3&gt;
         3074 &lt;p&gt;I carried my Precious back home and hurried to plug it in.&lt;/p&gt;
         3075 &lt;p&gt;Except the monitor cable was missing. I was certain that I&apos;d grabbed everything of computer-ish value from the trash pile. From the looks of the port, I&apos;d need one of those old mono RCA cables, of which I know I have dozens in my parent&apos;s attic across the country in New Jersey. &lt;/p&gt;
         3076 &lt;p&gt;I still turned on the computer and the monitor anyway, and was relieved to hear it chirp happily, even if I couldn&apos;t see anything.&lt;/p&gt;
         3077 &lt;p&gt;By this point, it was high time to get on my bike and head into work (back when we still things like that). But I still made a quick pit-stop at a hardware store along the way, and somehow a physical store in the physical world still carried this little guy:&lt;/p&gt;
         3078 &lt;p&gt;&lt;span
         3079       class=&quot;gatsby-resp-image-wrapper&quot;
         3080       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3081     &gt;
         3082       &lt;span
         3083     class=&quot;gatsby-resp-image-background-image&quot;
         3084     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBP/EABYBAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABpmdOd7yeEtppUwoif//EABsQAQADAQADAAAAAAAAAAAAAAEAAgMREBMz/9oACAEBAAEFAvNtqk9rDS0tXpkJC3JnD6gE/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8BiT//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAcEAACAgIDAAAAAAAAAAAAAAAAAREhAhAgUZH/2gAIAQEABj8C4VqEQy591iuykf/EAB0QAAMAAgMBAQAAAAAAAAAAAAABETFBIVFhcYH/2gAIAQEAAT8hq0XwVmjsNZ4LrgvpPm/jY5tW+hDJJzhZEJ2c6GF9GuhkJIhI/9oADAMBAAIAAwAAABAE7M//xAAXEQEBAQEAAAAAAAAAAAAAAAABABEQ/9oACAEDAQE/EOGGll//xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8QiLqv/8QAHhABAAICAwADAAAAAAAAAAAAAQARIUExYXGBobH/2gAIAQEAAT8QdS/CW6es1H7S7Mq2GDwxKamLpRb29RBfkPwRF25puLDG6Fm9BpnIi1FyHhxE8mVWxk11DF04zD5JoJ//2Q==&apos;); background-size: cover; display: block;&quot;
         3085   &gt;&lt;/span&gt;
         3086   &lt;img
         3087         class=&quot;gatsby-resp-image-image&quot;
         3088         alt=&quot;Monitor cable&quot;
         3089         title=&quot;Monitor cable&quot;
         3090         src=&quot;/static/3cc071bf6fe0055d7adf30d554753558/6aca1/monitorplug.jpg&quot;
         3091         srcset=&quot;/static/3cc071bf6fe0055d7adf30d554753558/d2f63/monitorplug.jpg 163w,
         3092 /static/3cc071bf6fe0055d7adf30d554753558/c989d/monitorplug.jpg 325w,
         3093 /static/3cc071bf6fe0055d7adf30d554753558/6aca1/monitorplug.jpg 650w,
         3094 /static/3cc071bf6fe0055d7adf30d554753558/7c09c/monitorplug.jpg 975w,
         3095 /static/3cc071bf6fe0055d7adf30d554753558/01ab0/monitorplug.jpg 1300w,
         3096 /static/3cc071bf6fe0055d7adf30d554753558/ac99c/monitorplug.jpg 1536w&quot;
         3097         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3098         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3099         loading=&quot;lazy&quot;
         3100       /&gt;
         3101     &lt;/span&gt;&lt;/p&gt;
         3102 &lt;p&gt;That night, after work, I turned it on. One beep and then:&lt;/p&gt;
         3103 &lt;p&gt;&lt;span
         3104       class=&quot;gatsby-resp-image-wrapper&quot;
         3105       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3106     &gt;
         3107       &lt;span
         3108     class=&quot;gatsby-resp-image-background-image&quot;
         3109     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDBAH/xAAXAQADAQAAAAAAAAAAAAAAAAAAAgMB/9oADAMBAAIQAxAAAAHI1WVdx0laU9bvkzoH/8QAHRAAAgIDAAMAAAAAAAAAAAAAAQIAAxESEyIjQf/aAAgBAQABBQJGIHyoBUNTCcXmhw++fbEfx41zhXDWgn//xAAZEQABBQAAAAAAAAAAAAAAAAAAARAREiH/2gAIAQMBAT8BW8mP/8QAGBEBAQADAAAAAAAAAAAAAAAAABECIVH/2gAIAQIBAT8B0uXER//EABwQAAICAgMAAAAAAAAAAAAAAAABMTIRIRASIv/aAAgBAQAGPwJdcQaSMIRBJ442ypUqj//EABwQAQACAgMBAAAAAAAAAAAAAAEAESExQWGhkf/aAAgBAQABPyFxAvNqNiwXeJoQdQDlxZU02vIUNI8AQriLXbEAAPbBN+mdOOUfOf/aAAwDAQACAAMAAAAQgAow/8QAGBEAAwEBAAAAAAAAAAAAAAAAABExAVH/2gAIAQMBAT8QxGC6GM//xAAaEQACAgMAAAAAAAAAAAAAAAAAAREhMVGh/9oACAECAQE/EE43kctdCEtn/8QAHxABAQACAgEFAAAAAAAAAAAAAREAMSFBcWGBsdHw/9oACAEBAAE/EJMONl6fjEYgQHGlwwJazS5XEkQAN+2CMMH83j0Bw5JZgyJ9BMIBf14MLkdgXFLTz92EN/lXC4hLrn//2Q==&apos;); background-size: cover; display: block;&quot;
         3110   &gt;&lt;/span&gt;
         3111   &lt;img
         3112         class=&quot;gatsby-resp-image-image&quot;
         3113         alt=&quot;boot&quot;
         3114         title=&quot;boot&quot;
         3115         src=&quot;/static/cc15f0f4663c4383e24711a1db5cba9d/6aca1/boot.jpg&quot;
         3116         srcset=&quot;/static/cc15f0f4663c4383e24711a1db5cba9d/d2f63/boot.jpg 163w,
         3117 /static/cc15f0f4663c4383e24711a1db5cba9d/c989d/boot.jpg 325w,
         3118 /static/cc15f0f4663c4383e24711a1db5cba9d/6aca1/boot.jpg 650w,
         3119 /static/cc15f0f4663c4383e24711a1db5cba9d/7c09c/boot.jpg 975w,
         3120 /static/cc15f0f4663c4383e24711a1db5cba9d/01ab0/boot.jpg 1300w,
         3121 /static/cc15f0f4663c4383e24711a1db5cba9d/ac99c/boot.jpg 1536w&quot;
         3122         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3123         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3124         loading=&quot;lazy&quot;
         3125       /&gt;
         3126     &lt;/span&gt;&lt;/p&gt;
         3127 &lt;p&gt;&quot;Isn&apos;t it beautiful?&quot; I said to Carly. &quot;And don&apos;t you just love how the &lt;code class=&quot;language-text&quot;&gt;II&lt;/code&gt; is shown as &lt;code class=&quot;language-text&quot;&gt;//&lt;/code&gt; slashes. The green, too, it&apos;s like something out of the Rebel Alliance.&quot;&lt;/p&gt;
         3128 &lt;p&gt;&quot;Yes, and what do you do with it?&quot;&lt;/p&gt;
         3129 &lt;p&gt;&quot;Well... you just...&quot;&lt;/p&gt;
         3130 &lt;p&gt;Truth was I didn&apos;t know how to advance past this welcome screen. My benefactors neglected to include the computer manual for the Apple IIe in their trash. This is a major bummer on multiple fronts, because what I&apos;ve learned about computer manuals from the 1980s is that they were AWESOME. I recently picked up both the Commodore VIC-20 manual and the Commodore 64 manuals on eBay, even though I have neither machine, because I wanted to enjoy their spiral-bound goodness.&lt;/p&gt;
         3131 &lt;p&gt;But I&apos;m a software engineer. I know how to Google. Soon, a &lt;code class=&quot;language-text&quot;&gt;Ctrl-Reset&lt;/code&gt; had me at the BASIC prompt.&lt;/p&gt;
         3132 &lt;p&gt;I was ready for this.&lt;/p&gt;
         3133 &lt;p&gt;&lt;span
         3134       class=&quot;gatsby-resp-image-wrapper&quot;
         3135       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3136     &gt;
         3137       &lt;span
         3138     class=&quot;gatsby-resp-image-background-image&quot;
         3139     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAYnYbMsOhpQmjQzCAv8A/8QAHBABAQACAwEBAAAAAAAAAAAAAgEAAxESEyEi/9oACAEBAAEFAtPWZOhzc3WNVhgdqQCpOger49hcV/R+ziWf/8QAGREBAAIDAAAAAAAAAAAAAAAAAQARAhAS/9oACAEDAQE/AVyug3zP/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAgICAgMAAAAAAAAAAAAAAAECIRExAxAiI2H/2gAIAQEABj8CUnnYrdPOjxk0irXwVUY5NmIdeyF9WJs//8QAHRAAAgICAwEAAAAAAAAAAAAAAAERITFBUWGBcf/aAAgBAQABPyF70eiFY9OVkTmDYTJGym2EA3sPSn5EFU3vZ0PEPEGtXwMl94LwihLg/9oADAMBAAIAAwAAABAP1D//xAAZEQACAwEAAAAAAAAAAAAAAAAAAREhMVH/2gAIAQMBAT8QQWgQYJOH/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPxDI22UlZT//xAAfEAEBAAICAgMBAAAAAAAAAAABEQAhMUFhsVFx0eH/2gAIAQEAAT8QccVECcf3Hfsk8LXPjKbAyDHb9dp1PzCwILp4zbJ7rSdT5whqdk1fa49QnXDOshBDDpeR7cJxMUoZhC7EkNesQCfZfuZ//9k=&apos;); background-size: cover; display: block;&quot;
         3140   &gt;&lt;/span&gt;
         3141   &lt;img
         3142         class=&quot;gatsby-resp-image-image&quot;
         3143         alt=&quot;yup&quot;
         3144         title=&quot;yup&quot;
         3145         src=&quot;/static/80419632c0d27acc4c946f5991b0587d/6aca1/yup.jpg&quot;
         3146         srcset=&quot;/static/80419632c0d27acc4c946f5991b0587d/d2f63/yup.jpg 163w,
         3147 /static/80419632c0d27acc4c946f5991b0587d/c989d/yup.jpg 325w,
         3148 /static/80419632c0d27acc4c946f5991b0587d/6aca1/yup.jpg 650w,
         3149 /static/80419632c0d27acc4c946f5991b0587d/7c09c/yup.jpg 975w,
         3150 /static/80419632c0d27acc4c946f5991b0587d/01ab0/yup.jpg 1300w,
         3151 /static/80419632c0d27acc4c946f5991b0587d/ac99c/yup.jpg 1536w&quot;
         3152         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3153         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3154         loading=&quot;lazy&quot;
         3155       /&gt;
         3156     &lt;/span&gt;&lt;/p&gt;
         3157 &lt;p&gt;&lt;span
         3158       class=&quot;gatsby-resp-image-wrapper&quot;
         3159       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3160     &gt;
         3161       &lt;span
         3162     class=&quot;gatsby-resp-image-background-image&quot;
         3163     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAwADAAAAAAAAAAAAAAAAAAMEAQIF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAIDAf/aAAwDAQACEAMQAAABhet2LkcLRiqqA5RoLT//xAAbEAADAAMBAQAAAAAAAAAAAAABAgMAERITQv/aAAgBAQABBQKOhkuVetK+iTKqqMX9lnhAkvVNMBU/fC6z/8QAGREAAgMBAAAAAAAAAAAAAAAAERIAAQIQ/9oACAEDAQE/ATpgOrU//8QAFhEBAQEAAAAAAAAAAAAAAAAAABEQ/9oACAECAQE/Aciv/8QAHRAAAgIDAAMAAAAAAAAAAAAAAAERMQIQEiFB4f/aAAgBAQAGPwKTCXQ+W4JsXg5d+xY4I+HWSU1qtf/EABwQAAIDAQADAAAAAAAAAAAAAAERACFBMVFhcf/aAAgBAQABPyHukssICBqM9EpHyoNAQBOXC069wNNU4mzLbc7IW0G0NkLU0M/Nwb9U/9oADAMBAAIAAwAAABCnFk//xAAYEQADAQEAAAAAAAAAAAAAAAAAAREhUf/aAAgBAwEBPxBwJjpCiarD/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPxByW6UpjZYf/8QAHhABAAIDAAIDAAAAAAAAAAAAAQARITFBUXGRscH/2gAIAQEAAT8QVTmyHK/YhjSkUVaqviIpA0DgiwGNvwqMgCiITkYLYUdGHkdMLLasxqNHQBFgCyqWncPipk7k4pFKDobP2jUs6Q9DRP/Z&apos;); background-size: cover; display: block;&quot;
         3164   &gt;&lt;/span&gt;
         3165   &lt;img
         3166         class=&quot;gatsby-resp-image-image&quot;
         3167         alt=&quot;loop&quot;
         3168         title=&quot;loop&quot;
         3169         src=&quot;/static/fb7fccae78325c62788e78bcdb8af7f3/6aca1/loop.jpg&quot;
         3170         srcset=&quot;/static/fb7fccae78325c62788e78bcdb8af7f3/d2f63/loop.jpg 163w,
         3171 /static/fb7fccae78325c62788e78bcdb8af7f3/c989d/loop.jpg 325w,
         3172 /static/fb7fccae78325c62788e78bcdb8af7f3/6aca1/loop.jpg 650w,
         3173 /static/fb7fccae78325c62788e78bcdb8af7f3/7c09c/loop.jpg 975w,
         3174 /static/fb7fccae78325c62788e78bcdb8af7f3/01ab0/loop.jpg 1300w,
         3175 /static/fb7fccae78325c62788e78bcdb8af7f3/ac99c/loop.jpg 1536w&quot;
         3176         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3177         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3178         loading=&quot;lazy&quot;
         3179       /&gt;
         3180     &lt;/span&gt;&lt;/p&gt;
         3181 &lt;p&gt;I didn&apos;t grow up coding in BASIC, but I&apos;m a student of history. I certainly knew that it&apos;s a rite of passage to code up a little infinite loop whenever you see a BASIC prompt.&lt;/p&gt;
         3182 &lt;p&gt;Carly nodded. &quot;Cool. Why does it smell like a campfire?&quot;&lt;/p&gt;
         3183 &lt;h3&gt;Capacitor problems&lt;/h3&gt;
         3184 &lt;p&gt;Uh-oh. That pop that I&apos;d heard seconds before, and willfully ignored, might not have been a good pop. The smell grew worse.&lt;/p&gt;
         3185 &lt;blockquote&gt;
         3186 &lt;p&gt;Burnt marshmallows on blacktop.&lt;/p&gt;
         3187 &lt;/blockquote&gt;
         3188 &lt;p&gt;I flipped off the power. I forgot to mention I already had the fire extinguisher at the ready, but it didn&apos;t look like that&apos;d be necessary. Unfortunately, the smell didn&apos;t disappear after turning off the power.&lt;/p&gt;
         3189 &lt;p&gt;Some more Googling revealed the likely problem: a capacitor popped in the power supply. I unscrewed the power supply from the computer (held on by just four small screws), and put it somewhere far away. Days later, weeks later, the power supply still smelled.&lt;/p&gt;
         3190 &lt;p&gt;At this point, if I had been a more experienced solder-er, I would have considered buying a capacitor for like ten cents and replacing it myself. But as I&apos;m still learning the ropes of soldering, and hacking with power supplies felt a little ahead of me, I thought about getting some more experienced help. (Also, I was kinda terrified that I would accidentally short circuit something and fry the motherboard, before I ever got to really play with the computer).&lt;/p&gt;
         3191 &lt;p&gt;I spent some time looking for an Apple repair store that would service Apple II&apos;s. Even in the Bay Area, this felt like a lost cause. Then someone suggested this site: &lt;a href=&quot;https://www.reactivemicro.com/&quot;&gt;ReActiveMicro&lt;/a&gt;. Its tagline: &lt;code class=&quot;language-text&quot;&gt;Reactivate Your Vintage Apple Computer&lt;/code&gt;. For $95, I could order a &lt;a href=&quot;https://www.reactivemicro.com/product/ultimate-universal-power-supply/&quot;&gt;new power supply&lt;/a&gt; for my Apple IIe.&lt;/p&gt;
         3192 &lt;p&gt;So I did. It arrived in the mail about a week later, and I installed it in roughly a minute and half. With the extinguisher again at the ready, I turned on the computer again.&lt;/p&gt;
         3193 &lt;p&gt;And it worked! I looked up an old program in an old Apple magazine online, and coded up this little sine wave program:&lt;/p&gt;
         3194 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Back in business &lt;a href=&quot;https://twitter.com/hashtag/appleiie?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#appleiie&lt;/a&gt; &lt;a href=&quot;https://t.co/AHi9EBdbVm&quot;&gt;pic.twitter.com/AHi9EBdbVm&lt;/a&gt;&lt;/p&gt;&amp;mdash; Charlie Harrington (@whatrocks) &lt;a href=&quot;https://twitter.com/whatrocks/status/1231624493040193537?ref_src=twsrc%5Etfw&quot;&gt;February 23, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
         3195 &lt;h3&gt;Expansion slots&lt;/h3&gt;
         3196 &lt;p&gt;Now that I&apos;ve got a working, adorable Apple IIe, the first thing I decide to do is take it apart. Say what you will about the &lt;a href=&quot;https://www.apple.com/mac-pro/&quot;&gt;new Mac Pro case design&lt;/a&gt;, but it&apos;s got nothing on this little hatch.&lt;/p&gt;
         3197 &lt;p&gt;&lt;span
         3198       class=&quot;gatsby-resp-image-wrapper&quot;
         3199       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3200     &gt;
         3201       &lt;span
         3202     class=&quot;gatsby-resp-image-background-image&quot;
         3203     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAgX/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAGjK9ZXcLKOeh8iOwSEv//EAB4QAAIBAwUAAAAAAAAAAAAAAAECEgADMRETISIy/9oACAEBAAEFAhFRFSbYAXBpPN/q+7WVPLKxkCdP/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAS/9oACAEDAQE/AXJ//8QAFhEBAQEAAAAAAAAAAAAAAAAAABEQ/9oACAECAQE/AVyv/8QAHBABAAIBBQAAAAAAAAAAAAAAABExAQIQIVFx/9oACAEBAAY/AoiXSkb0pp8cs4W//8QAHRAAAwACAgMAAAAAAAAAAAAAAAERITFBkVFhcf/aAAgBAQABPyFV/ovI73REZD9jaseijtB8yR3JXj2Siy8BabGfMWaOYYP/2gAMAwEAAgADAAAAEIfFD//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QALLrYb//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8QVYGWYWr/xAAcEAEAAwEBAAMAAAAAAAAAAAABABEhMUFhwdH/2gAIAQEAAT8QP2ha2t9fyKeb8ASk6D67FoRxS7E1CvdbnPLor7A/sUGDkNJrbhLFrrdyZM8VOTMwVBfCf//Z&apos;); background-size: cover; display: block;&quot;
         3204   &gt;&lt;/span&gt;
         3205   &lt;img
         3206         class=&quot;gatsby-resp-image-image&quot;
         3207         alt=&quot;Apple IIe top down&quot;
         3208         title=&quot;Apple IIe top down&quot;
         3209         src=&quot;/static/a8324ff3bbaccb5768157d73a8ac790e/6aca1/topclosed.jpg&quot;
         3210         srcset=&quot;/static/a8324ff3bbaccb5768157d73a8ac790e/d2f63/topclosed.jpg 163w,
         3211 /static/a8324ff3bbaccb5768157d73a8ac790e/c989d/topclosed.jpg 325w,
         3212 /static/a8324ff3bbaccb5768157d73a8ac790e/6aca1/topclosed.jpg 650w,
         3213 /static/a8324ff3bbaccb5768157d73a8ac790e/7c09c/topclosed.jpg 975w,
         3214 /static/a8324ff3bbaccb5768157d73a8ac790e/01ab0/topclosed.jpg 1300w,
         3215 /static/a8324ff3bbaccb5768157d73a8ac790e/ac99c/topclosed.jpg 1536w&quot;
         3216         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3217         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3218         loading=&quot;lazy&quot;
         3219       /&gt;
         3220     &lt;/span&gt;&lt;/p&gt;
         3221 &lt;p&gt;&lt;span
         3222       class=&quot;gatsby-resp-image-wrapper&quot;
         3223       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3224     &gt;
         3225       &lt;span
         3226     class=&quot;gatsby-resp-image-background-image&quot;
         3227     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAMCBAH/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAG2K+Z3hzKSCKKuBS//xAAdEAACAgIDAQAAAAAAAAAAAAABAgADBBIQERMj/9oACAEBAAEFAjWWjq6wUgz0CsbNo2SVZhN9Z6p3kH6W8f/EABYRAAMAAAAAAAAAAAAAAAAAAAAQEv/aAAgBAwEBPwEp/wD/xAAWEQEBAQAAAAAAAAAAAAAAAAAAERD/2gAIAQIBAT8BRM//xAAfEAACAQMFAQAAAAAAAAAAAAAAASEREmECAxAiMUH/2gAIAQEABj8Clz8qXo7SxplENWeZEYJ2jQLj/8QAHBABAAICAwEAAAAAAAAAAAAAAQARITFBUWGR/9oACAEBAAE/IVrvEMqg1TTxBrv2TKjyIqNsSOSqKS3UzXofWLpzLe4gd4m58uLP/9oADAMBAAIAAwAAABCEz4z/xAAYEQADAQEAAAAAAAAAAAAAAAAAAVERIf/aAAgBAwEBPxBDSmnIf//EABcRAQEBAQAAAAAAAAAAAAAAAAABESH/2gAIAQIBAT8Qtrbqsf/EAB8QAQADAAIBBQAAAAAAAAAAAAEAESFBYTFRccHh8P/aAAgBAQABPxA4xJYaBwp3FEHtt8JZZutkgy1d50QX7gQwAG6wUlhfhFC0alnCEGdV1dnvNNuVFNgwR5UetxVwFU7uINDk/9k=&apos;); background-size: cover; display: block;&quot;
         3228   &gt;&lt;/span&gt;
         3229   &lt;img
         3230         class=&quot;gatsby-resp-image-image&quot;
         3231         alt=&quot;lift&quot;
         3232         title=&quot;lift&quot;
         3233         src=&quot;/static/327df739a0121ee18eeac70a49ca184c/6aca1/lift.jpg&quot;
         3234         srcset=&quot;/static/327df739a0121ee18eeac70a49ca184c/d2f63/lift.jpg 163w,
         3235 /static/327df739a0121ee18eeac70a49ca184c/c989d/lift.jpg 325w,
         3236 /static/327df739a0121ee18eeac70a49ca184c/6aca1/lift.jpg 650w,
         3237 /static/327df739a0121ee18eeac70a49ca184c/7c09c/lift.jpg 975w,
         3238 /static/327df739a0121ee18eeac70a49ca184c/01ab0/lift.jpg 1300w,
         3239 /static/327df739a0121ee18eeac70a49ca184c/ac99c/lift.jpg 1536w&quot;
         3240         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3241         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3242         loading=&quot;lazy&quot;
         3243       /&gt;
         3244     &lt;/span&gt;&lt;/p&gt;
         3245 &lt;p&gt;&lt;span
         3246       class=&quot;gatsby-resp-image-wrapper&quot;
         3247       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3248     &gt;
         3249       &lt;span
         3250     class=&quot;gatsby-resp-image-background-image&quot;
         3251     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABUBAQEAAAAAAAAAAAAAAAAAAAIB/9oADAMBAAIQAxAAAAGfOlggYN//xAAZEAEAAwEBAAAAAAAAAAAAAAABAAIDESL/2gAIAQEAAQUC18w6w2ajm2hXgUn/xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAwEBPwGq/8QAFxEBAAMAAAAAAAAAAAAAAAAAAAERIf/aAAgBAgEBPwHFQ//EABwQAAICAgMAAAAAAAAAAAAAAAABAhEhMRAiYf/aAAgBAQAGPwLOy0dnFP0uW+MpM//EABsQAQACAwEBAAAAAAAAAAAAAAEAESFBUWEx/9oACAEBAAE/IWPZ+xtc0+wyclLtxnqYwi1VZ8Xk/9oADAMBAAIAAwAAABDTP//EABcRAAMBAAAAAAAAAAAAAAAAAAEQITH/2gAIAQMBAT8QNYn/xAAXEQEAAwAAAAAAAAAAAAAAAAAAASFh/9oACAECAQE/EIo0f//EAB4QAQEAAQQDAQAAAAAAAAAAAAERACExQVFhcYHx/9oACAEBAAE/EKmlixanrjbLIe5kkPmpkjgsqh4evzHCyp4IGhOMtMiGmyTIewCC9DP/2Q==&apos;); background-size: cover; display: block;&quot;
         3252   &gt;&lt;/span&gt;
         3253   &lt;img
         3254         class=&quot;gatsby-resp-image-image&quot;
         3255         alt=&quot;loaded&quot;
         3256         title=&quot;loaded&quot;
         3257         src=&quot;/static/f7fe5f5008054dc957530ffb0ca92ad9/6aca1/loaded.jpg&quot;
         3258         srcset=&quot;/static/f7fe5f5008054dc957530ffb0ca92ad9/d2f63/loaded.jpg 163w,
         3259 /static/f7fe5f5008054dc957530ffb0ca92ad9/c989d/loaded.jpg 325w,
         3260 /static/f7fe5f5008054dc957530ffb0ca92ad9/6aca1/loaded.jpg 650w,
         3261 /static/f7fe5f5008054dc957530ffb0ca92ad9/7c09c/loaded.jpg 975w,
         3262 /static/f7fe5f5008054dc957530ffb0ca92ad9/01ab0/loaded.jpg 1300w,
         3263 /static/f7fe5f5008054dc957530ffb0ca92ad9/e1596/loaded.jpg 2048w&quot;
         3264         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3265         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3266         loading=&quot;lazy&quot;
         3267       /&gt;
         3268     &lt;/span&gt;&lt;/p&gt;
         3269 &lt;p&gt;As you can see, I&apos;ve hit a pretty big jackpot on the expansion card front. I&apos;ll walk through each card individually in a bit.&lt;/p&gt;
         3270 &lt;p&gt;Here&apos;s a bare-bones look at the motherboard after removing all the expansion cards.&lt;/p&gt;
         3271 &lt;p&gt;&lt;span
         3272       class=&quot;gatsby-resp-image-wrapper&quot;
         3273       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3274     &gt;
         3275       &lt;span
         3276     class=&quot;gatsby-resp-image-background-image&quot;
         3277     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQFAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/2gAMAwEAAhADEAAAAfEGlFDuDMnEQ6SZNf/EAB4QAAEEAgMBAAAAAAAAAAAAAAEAAgMSERMEITEz/9oACAEBAAEFApbFCR9oe2SDCb7xvm+0h0IhZIW6S8j3B3//xAAXEQADAQAAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/AXcP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPwFXT//EAB8QAAEDBAMBAAAAAAAAAAAAAAABAhEQEiExUWFxgf/aAAgBAQAGPwJzkcqdG1Mj+afTRNufTCRSLjZ//8QAGxABAAIDAQEAAAAAAAAAAAAAAQARMUFRIZH/2gAIAQEAAT8hHVyKg39mfZbys+0hXmJz6hunnGYbsm4MopVgZc8YP7avkEBpP//aAAwDAQACAAMAAAAQU8oA/8QAGBEBAQEBAQAAAAAAAAAAAAAAAQAhEUH/2gAIAQMBAT8QfI0sgnl//8QAGBEAAgMAAAAAAAAAAAAAAAAAAAEQESH/2gAIAQIBAT8QSNLn/8QAGxABAAMBAQEBAAAAAAAAAAAAAQARITFRgdH/2gAIAQEAAT8QtInF+ThWjF1ACdhoViJ64V7DZ4u2XKHar8yJTW4AZKzjWwRPjFaE6NEURgFhhcKqfkfGFXhP/9k=&apos;); background-size: cover; display: block;&quot;
         3278   &gt;&lt;/span&gt;
         3279   &lt;img
         3280         class=&quot;gatsby-resp-image-image&quot;
         3281         alt=&quot;Apple IIe top open&quot;
         3282         title=&quot;Apple IIe top open&quot;
         3283         src=&quot;/static/5ca83fb901310e0d92734cefb8154e25/6aca1/topdown.jpg&quot;
         3284         srcset=&quot;/static/5ca83fb901310e0d92734cefb8154e25/d2f63/topdown.jpg 163w,
         3285 /static/5ca83fb901310e0d92734cefb8154e25/c989d/topdown.jpg 325w,
         3286 /static/5ca83fb901310e0d92734cefb8154e25/6aca1/topdown.jpg 650w,
         3287 /static/5ca83fb901310e0d92734cefb8154e25/7c09c/topdown.jpg 975w,
         3288 /static/5ca83fb901310e0d92734cefb8154e25/01ab0/topdown.jpg 1300w,
         3289 /static/5ca83fb901310e0d92734cefb8154e25/ac99c/topdown.jpg 1536w&quot;
         3290         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3291         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3292         loading=&quot;lazy&quot;
         3293       /&gt;
         3294     &lt;/span&gt;&lt;/p&gt;
         3295 &lt;p&gt;And a close-up of the seven (7!) expansion slots, not including the extra one for adding more memory or 80-column mode.&lt;/p&gt;
         3296 &lt;p&gt;&lt;span
         3297       class=&quot;gatsby-resp-image-wrapper&quot;
         3298       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3299     &gt;
         3300       &lt;span
         3301     class=&quot;gatsby-resp-image-background-image&quot;
         3302     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDAQT/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAAB5Js0ulwf/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAECEhH/2gAIAQEAAQUC1A6kVVxQYIl5/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8Bqv/EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABoQAAICAwAAAAAAAAAAAAAAAAAxARAiMmH/2gAIAQEABj8ChnDFXsf/xAAcEAACAgMBAQAAAAAAAAAAAAAAAREhMUFxUWH/2gAIAQEAAT8hjdIbo0FwIolfwnMEnMWWTwJKqR4j/9oADAMBAAIAAwAAABB87//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QD//EABURAQEAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/EIf/xAAfEAACAgIBBQAAAAAAAAAAAAABEQAxIUFRYXGR4fD/2gAIAQEAAT8QI2SIuzYuENh0MLSvzAmIjCLo+5igKKBGydkwjuGAHqvcfpQsGJ//2Q==&apos;); background-size: cover; display: block;&quot;
         3303   &gt;&lt;/span&gt;
         3304   &lt;img
         3305         class=&quot;gatsby-resp-image-image&quot;
         3306         alt=&quot;Apple IIe slots&quot;
         3307         title=&quot;Apple IIe slots&quot;
         3308         src=&quot;/static/15c5b681c6a5e6c235d5c3a7708a1dfd/6aca1/slots.jpg&quot;
         3309         srcset=&quot;/static/15c5b681c6a5e6c235d5c3a7708a1dfd/d2f63/slots.jpg 163w,
         3310 /static/15c5b681c6a5e6c235d5c3a7708a1dfd/c989d/slots.jpg 325w,
         3311 /static/15c5b681c6a5e6c235d5c3a7708a1dfd/6aca1/slots.jpg 650w,
         3312 /static/15c5b681c6a5e6c235d5c3a7708a1dfd/7c09c/slots.jpg 975w,
         3313 /static/15c5b681c6a5e6c235d5c3a7708a1dfd/01ab0/slots.jpg 1300w,
         3314 /static/15c5b681c6a5e6c235d5c3a7708a1dfd/e1596/slots.jpg 2048w&quot;
         3315         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3316         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3317         loading=&quot;lazy&quot;
         3318       /&gt;
         3319     &lt;/span&gt;&lt;/p&gt;
         3320 &lt;p&gt;This again reminds of the recent discussions on &lt;a href=&quot;https://atp.fm&quot;&gt;Accidental Tech Podcast&lt;/a&gt; and other podcasts about the new Mac Pro and its expansion slots. There was a lot of fun discussion about what John Siracusa was going to put into his long-awaited Mac Pro&apos;s expansion slots.&lt;/p&gt;
         3321 &lt;p&gt;But, in modern computers, I haven&apos;t seen much that&apos;s really that interesting as far as expansion slots go. Mostly, I&apos;ve heard about video cards and more storage. Otherwise, your computer mostly has everything it needs for the majority of use-cases.&lt;/p&gt;
         3322 &lt;p&gt;Which is completely the opposite for the Apple II. &lt;/p&gt;
         3323 &lt;p&gt;These expansion slots in Apple II computers CHANGED your computer. Transmogrified it into something altogether new and exciting. Want to print something? Get a card for it. Go on the.. ARPANet? Get a modem card. Need to save a program on something other than tape cassette recorder (which itself is crazy and I want to try)? Better get a floppy driver card!&lt;/p&gt;
         3324 &lt;p&gt;Even the back of the Apple IIe shows the potential of this machine to be utterly transformed by each owner. These slots are yours for the shaping, dear computer user.&lt;/p&gt;
         3325 &lt;p&gt;&lt;span
         3326       class=&quot;gatsby-resp-image-wrapper&quot;
         3327       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3328     &gt;
         3329       &lt;span
         3330     class=&quot;gatsby-resp-image-background-image&quot;
         3331     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAQP/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAFblW3O0CoI/8QAGhAAAwADAQAAAAAAAAAAAAAAAAECAxESIf/aAAgBAQABBQJ5q10yFVLiJF4K9H//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFH/8QAGRAAAgMBAAAAAAAAAAAAAAAAAAEDITEQ/9oACAEBAAY/AsXKKjRiMP/EABsQAAMAAwEBAAAAAAAAAAAAAAABESFhoTFR/9oACAEBAAE/IWI5jdmK6LXJX0+G7yJd5iEh/9oADAMBAAIAAwAAABAjz//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAEDAQE/EKf/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQIBAT8QyKf/xAAdEAEAAgEFAQAAAAAAAAAAAAABABEhMUFRYZGh/9oACAEBAAE/EEmDeKXusSUaxdh+MdsFQF06SpkdVj3aEmY7BKOCVMA4HE//2Q==&apos;); background-size: cover; display: block;&quot;
         3332   &gt;&lt;/span&gt;
         3333   &lt;img
         3334         class=&quot;gatsby-resp-image-image&quot;
         3335         alt=&quot;Back of Apple IIe&quot;
         3336         title=&quot;Back of Apple IIe&quot;
         3337         src=&quot;/static/7e6125158b6d97901b7241bed755f2bd/6aca1/back.jpg&quot;
         3338         srcset=&quot;/static/7e6125158b6d97901b7241bed755f2bd/d2f63/back.jpg 163w,
         3339 /static/7e6125158b6d97901b7241bed755f2bd/c989d/back.jpg 325w,
         3340 /static/7e6125158b6d97901b7241bed755f2bd/6aca1/back.jpg 650w,
         3341 /static/7e6125158b6d97901b7241bed755f2bd/7c09c/back.jpg 975w,
         3342 /static/7e6125158b6d97901b7241bed755f2bd/01ab0/back.jpg 1300w,
         3343 /static/7e6125158b6d97901b7241bed755f2bd/e1596/back.jpg 2048w&quot;
         3344         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3345         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3346         loading=&quot;lazy&quot;
         3347       /&gt;
         3348     &lt;/span&gt;&lt;/p&gt;
         3349 &lt;p&gt;So, anyway, what the heck did I find inside my Apple IIe? Let&apos;s go through them one-by-one.&lt;/p&gt;
         3350 &lt;h4&gt;Extended 80-Column Text Card&lt;/h4&gt;
         3351 &lt;p&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_80-Column_Text_Card&quot;&gt;Extended 80-Column Text Card&lt;/a&gt; is quite literal: it gives you 80 columns of text instead of 40! Mine also provides extra RAM, bringing my Apple IIe&apos;s total RAM up to a whopping 128kB.&lt;/p&gt;
         3352 &lt;p&gt;&lt;span
         3353       class=&quot;gatsby-resp-image-wrapper&quot;
         3354       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3355     &gt;
         3356       &lt;span
         3357     class=&quot;gatsby-resp-image-background-image&quot;
         3358     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAQBA//EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGFVsvJOK//xAAaEAABBQEAAAAAAAAAAAAAAAABAAIDERIi/9oACAEBAAEFAqxGHuW5AmjmqRBB/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/AUf/xAAbEAABBAMAAAAAAAAAAAAAAAABABARIRIiMf/aAAgBAQAGPwLLpLammtRK/8QAGhAAAwEBAQEAAAAAAAAAAAAAAAERIUExcf/aAAgBAQABPyFPNGdqo47k7gqbVuujGs+IWnHjQ1cD/9oADAMBAAIAAwAAABCjz//EABYRAQEBAAAAAAAAAAAAAAAAAAARAf/aAAgBAwEBPxC6t//EABYRAQEBAAAAAAAAAAAAAAAAAAARIf/aAAgBAgEBPxDEP//EABsQAQEAAgMBAAAAAAAAAAAAAAERACExQVGR/9oACAEBAAE/EDyobGA4l93l+ByhDO5MmBNAMfc34V0iExUHEUb068wzIqa7z//Z&apos;); background-size: cover; display: block;&quot;
         3359   &gt;&lt;/span&gt;
         3360   &lt;img
         3361         class=&quot;gatsby-resp-image-image&quot;
         3362         alt=&quot;80 Column card&quot;
         3363         title=&quot;80 Column card&quot;
         3364         src=&quot;/static/81fc4256ab04da82e776a4916fb04021/6aca1/80col.jpg&quot;
         3365         srcset=&quot;/static/81fc4256ab04da82e776a4916fb04021/d2f63/80col.jpg 163w,
         3366 /static/81fc4256ab04da82e776a4916fb04021/c989d/80col.jpg 325w,
         3367 /static/81fc4256ab04da82e776a4916fb04021/6aca1/80col.jpg 650w,
         3368 /static/81fc4256ab04da82e776a4916fb04021/7c09c/80col.jpg 975w,
         3369 /static/81fc4256ab04da82e776a4916fb04021/01ab0/80col.jpg 1300w,
         3370 /static/81fc4256ab04da82e776a4916fb04021/e1596/80col.jpg 2048w&quot;
         3371         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3372         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3373         loading=&quot;lazy&quot;
         3374       /&gt;
         3375     &lt;/span&gt;&lt;/p&gt;
         3376 &lt;p&gt;&lt;span
         3377       class=&quot;gatsby-resp-image-wrapper&quot;
         3378       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3379     &gt;
         3380       &lt;span
         3381     class=&quot;gatsby-resp-image-background-image&quot;
         3382     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAEDBQIE/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAC/9oADAMBAAIQAxAAAAHt56sO0kayKN1EoT//xAAdEAABBAMBAQAAAAAAAAAAAAAAAQIDBBESMyMy/9oACAEBAAEFArErmOjlduXOka+hc6RfZhFNUyf/xAAWEQEBAQAAAAAAAAAAAAAAAAAQEUH/2gAIAQMBAT8B0h//xAAVEQEBAAAAAAAAAAAAAAAAAAAQEf/aAAgBAgEBPwEp/8QAGxABAAMBAAMAAAAAAAAAAAAAAQAQEXECIUH/2gAIAQEABj8CAfkBd2jk8e0ch2vZNwr/xAAdEAACAgEFAAAAAAAAAAAAAAABEQAQUSExQXGB/9oACAEBAAE/IVMnBIfQcCkb0D0jXnNOAHsRKBHKr//aAAwDAQACAAMAAAAQ+8yN/8QAFxEBAAMAAAAAAAAAAAAAAAAAEAERMf/aAAgBAwEBPxCRqz//xAAXEQADAQAAAAAAAAAAAAAAAAABEDER/9oACAECAQE/EBFGL//EAB0QAQACAgMBAQAAAAAAAAAAAAEAESExEEFhcZH/2gAIAQEAAT8QfgLEDu9wrgba6xdfYiu4FV6OK9fJeHQ38ccOvisN+M1YoE/Y7YoMHqhqFciUACHH/9k=&apos;); background-size: cover; display: block;&quot;
         3383   &gt;&lt;/span&gt;
         3384   &lt;img
         3385         class=&quot;gatsby-resp-image-image&quot;
         3386         alt=&quot;col card&quot;
         3387         title=&quot;col card&quot;
         3388         src=&quot;/static/35ac506f826bef780af538d3732c4f25/6aca1/eightycol.jpg&quot;
         3389         srcset=&quot;/static/35ac506f826bef780af538d3732c4f25/d2f63/eightycol.jpg 163w,
         3390 /static/35ac506f826bef780af538d3732c4f25/c989d/eightycol.jpg 325w,
         3391 /static/35ac506f826bef780af538d3732c4f25/6aca1/eightycol.jpg 650w,
         3392 /static/35ac506f826bef780af538d3732c4f25/7c09c/eightycol.jpg 975w,
         3393 /static/35ac506f826bef780af538d3732c4f25/01ab0/eightycol.jpg 1300w,
         3394 /static/35ac506f826bef780af538d3732c4f25/ac99c/eightycol.jpg 1536w&quot;
         3395         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3396         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3397         loading=&quot;lazy&quot;
         3398       /&gt;
         3399     &lt;/span&gt;&lt;/p&gt;
         3400 &lt;p&gt;How do you get into 80-column mode? Type &lt;code class=&quot;language-text&quot;&gt;PR#3&lt;/code&gt; into the BASIC prompt. It kinda looks worse on this monitor, but I can already see the value for more complex programs.&lt;/p&gt;
         3401 &lt;h4&gt;Super Serial Card II&lt;/h4&gt;
         3402 &lt;p&gt;I am probably most excited about this card. The &lt;a href=&quot;https://en.wikipedia.org/wiki/Apple_II_serial_cards&quot;&gt;Super Serial Card II&lt;/a&gt; can be used as a modem, a printer connection, and I have a pretty good suspicion that I&apos;ll be able to connect to it an Arduino or a Raspberry Pi for some fun.&lt;/p&gt;
         3403 &lt;p&gt;&lt;span
         3404       class=&quot;gatsby-resp-image-wrapper&quot;
         3405       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3406     &gt;
         3407       &lt;span
         3408     class=&quot;gatsby-resp-image-background-image&quot;
         3409     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAQP/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAW5byA105Eak6wpS4YRf/8QAHhAAAQQCAwEAAAAAAAAAAAAAAgABAwQREhATITP/2gAIAQEAAQUCsG4xhIW26sexjjiw+Io/oiFibrFiX//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/AWJP/8QAFREBAQAAAAAAAAAAAAAAAAAAEAH/2gAIAQIBAT8BIf/EABsQAAICAwEAAAAAAAAAAAAAAAEQAAIRITFR/9oACAEBAAY/AtanS618dVgwYC//xAAbEAEAAwADAQAAAAAAAAAAAAABABEhEEFRof/aAAgBAQABPyFwtVmkKN97YRdK9jTkPY74aw9n0RdlCbIv6N94/9oADAMBAAIAAwAAABA0GwH/xAAYEQADAQEAAAAAAAAAAAAAAAAAAREQIf/aAAgBAwEBPxCL0g5u5//EABgRAAIDAAAAAAAAAAAAAAAAAAEQESEx/9oACAECAQE/EBiKoX//xAAdEAEAAwEAAgMAAAAAAAAAAAABABExIUFRccHR/9oACAEBAAE/ECIgrKalA6PVzItHIAhan7jvEq3upvwSw565ECU18X4ZUJr1YlolHvTLuYvr9js//9k=&apos;); background-size: cover; display: block;&quot;
         3410   &gt;&lt;/span&gt;
         3411   &lt;img
         3412         class=&quot;gatsby-resp-image-image&quot;
         3413         alt=&quot;Super Serial Card II&quot;
         3414         title=&quot;Super Serial Card II&quot;
         3415         src=&quot;/static/a4ba5625407f5479b5ae494069b786a8/6aca1/serial.jpg&quot;
         3416         srcset=&quot;/static/a4ba5625407f5479b5ae494069b786a8/d2f63/serial.jpg 163w,
         3417 /static/a4ba5625407f5479b5ae494069b786a8/c989d/serial.jpg 325w,
         3418 /static/a4ba5625407f5479b5ae494069b786a8/6aca1/serial.jpg 650w,
         3419 /static/a4ba5625407f5479b5ae494069b786a8/7c09c/serial.jpg 975w,
         3420 /static/a4ba5625407f5479b5ae494069b786a8/01ab0/serial.jpg 1300w,
         3421 /static/a4ba5625407f5479b5ae494069b786a8/ac99c/serial.jpg 1536w&quot;
         3422         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3423         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3424         loading=&quot;lazy&quot;
         3425       /&gt;
         3426     &lt;/span&gt;&lt;/p&gt;
         3427 &lt;p&gt;&lt;span
         3428       class=&quot;gatsby-resp-image-wrapper&quot;
         3429       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3430     &gt;
         3431       &lt;span
         3432     class=&quot;gatsby-resp-image-background-image&quot;
         3433     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMFBAL/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAFTuk51pNAnBZVKmYUQP//EABsQAQEAAgMBAAAAAAAAAAAAAAECAxIAEBEi/9oACAEBAAEFAo9yTPolTzLm0IthDHRre30k1Yd//8QAFhEBAQEAAAAAAAAAAAAAAAAAABEQ/9oACAEDAQE/AciP/8QAFhEBAQEAAAAAAAAAAAAAAAAAEQAQ/9oACAECAQE/ASJz/8QAHRAAAgICAwEAAAAAAAAAAAAAAAECERIxICFBgf/aAAgBAQAGPwKFdNFPR4Yw2W7aLxiWyn84/wD/xAAcEAEAAwEAAwEAAAAAAAAAAAABABExIRBBkXH/2gAIAQEAAT8huNNZfqFypZe5GG/UcwB84ZA1gaRyVx8YbJndbRFRbPyGef/aAAwDAQACAAMAAAAQZN9M/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERcf/aAAgBAwEBPxCpMrNmz//EABcRAQEBAQAAAAAAAAAAAAAAAAEAERD/2gAIAQIBAT8QUljjb//EAB8QAQACAgICAwAAAAAAAAAAAAEAESExQVFhcYGRwf/aAAgBAQABPxBqKSJSwiamVcTha8b9xArZ2Hr3GjXkUr0vvVHZ88+IIoHxfyVluaUuoqXYaBoZqBPJmGMY70fU/9k=&apos;); background-size: cover; display: block;&quot;
         3434   &gt;&lt;/span&gt;
         3435   &lt;img
         3436         class=&quot;gatsby-resp-image-image&quot;
         3437         alt=&quot;Super Serial Card II closeup&quot;
         3438         title=&quot;Super Serial Card II closeup&quot;
         3439         src=&quot;/static/68c8a050c8e970e5f90bd2aef0ff1473/6aca1/serial2.jpg&quot;
         3440         srcset=&quot;/static/68c8a050c8e970e5f90bd2aef0ff1473/d2f63/serial2.jpg 163w,
         3441 /static/68c8a050c8e970e5f90bd2aef0ff1473/c989d/serial2.jpg 325w,
         3442 /static/68c8a050c8e970e5f90bd2aef0ff1473/6aca1/serial2.jpg 650w,
         3443 /static/68c8a050c8e970e5f90bd2aef0ff1473/7c09c/serial2.jpg 975w,
         3444 /static/68c8a050c8e970e5f90bd2aef0ff1473/01ab0/serial2.jpg 1300w,
         3445 /static/68c8a050c8e970e5f90bd2aef0ff1473/ac99c/serial2.jpg 1536w&quot;
         3446         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3447         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3448         loading=&quot;lazy&quot;
         3449       /&gt;
         3450     &lt;/span&gt;&lt;/p&gt;
         3451 &lt;h4&gt;MicroModem IIe&lt;/h4&gt;
         3452 &lt;p&gt;It&apos;s a modem! With an external port that looks like a telephone jack. Some wizards at work told me that I probably cannot just plug this into a modern phone line and expect it to work, though. They said that phone lines don&apos;t really work the same way anymore. This is something I&apos;m not quite clear on yet, but I did manage to find the &lt;a href=&quot;https://apple2online.com/web_documents/hayes_micromodem_ii_owner__s_guide.pdf&quot;&gt;Micromodel II Owner&apos;s Manual&lt;/a&gt;, so there could be some fun to be had here.&lt;/p&gt;
         3453 &lt;p&gt;&lt;span
         3454       class=&quot;gatsby-resp-image-wrapper&quot;
         3455       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3456     &gt;
         3457       &lt;span
         3458     class=&quot;gatsby-resp-image-background-image&quot;
         3459     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAIDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABkeo8OgID/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQIAAxQEEf/aAAgBAQABBQLUno6FiMHGQzKZVWUX/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRABAQADAQAAAAAAAAAAAAAAABEBITJB/9oACAEBAAY/Apt6uHTpK//EABsQAAMAAwEBAAAAAAAAAAAAAAABESExUUGR/9oACAEBAAE/IcuOdDbaS+TwLYWdm3goYU3MzT//2gAMAwEAAgADAAAAEBcf/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARMf/aAAgBAwEBPxAXeRf/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREh/9oACAECAQE/EGlMIf/EABoQAQEBAQEBAQAAAAAAAAAAAAERACFBgZH/2gAIAQEAAT8QRRQWol/dyxRexQ+67mEr45U7yYqaJTPQTuYsNdBN/9k=&apos;); background-size: cover; display: block;&quot;
         3460   &gt;&lt;/span&gt;
         3461   &lt;img
         3462         class=&quot;gatsby-resp-image-image&quot;
         3463         alt=&quot;modem card&quot;
         3464         title=&quot;modem card&quot;
         3465         src=&quot;/static/0e5d74e10b2a0f9b0c074343be45c824/6aca1/modem.jpg&quot;
         3466         srcset=&quot;/static/0e5d74e10b2a0f9b0c074343be45c824/d2f63/modem.jpg 163w,
         3467 /static/0e5d74e10b2a0f9b0c074343be45c824/c989d/modem.jpg 325w,
         3468 /static/0e5d74e10b2a0f9b0c074343be45c824/6aca1/modem.jpg 650w,
         3469 /static/0e5d74e10b2a0f9b0c074343be45c824/7c09c/modem.jpg 975w,
         3470 /static/0e5d74e10b2a0f9b0c074343be45c824/01ab0/modem.jpg 1300w,
         3471 /static/0e5d74e10b2a0f9b0c074343be45c824/e1596/modem.jpg 2048w&quot;
         3472         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3473         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3474         loading=&quot;lazy&quot;
         3475       /&gt;
         3476     &lt;/span&gt;&lt;/p&gt;
         3477 &lt;p&gt;&lt;span
         3478       class=&quot;gatsby-resp-image-wrapper&quot;
         3479       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3480     &gt;
         3481       &lt;span
         3482     class=&quot;gatsby-resp-image-background-image&quot;
         3483     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABYBAQEBAAAAAAAAAAAAAAAAAAEAA//aAAwDAQACEAMQAAABlsZc3YjG/8QAGhAAAgMBAQAAAAAAAAAAAAAAAgMAARQSIv/aAAgBAQABBQKuVnpGotyiHzctQzNP/8QAFREBAQAAAAAAAAAAAAAAAAAAACH/2gAIAQMBAT8BV//EABURAQEAAAAAAAAAAAAAAAAAAAAh/9oACAECAQE/AUf/xAAbEAACAgMBAAAAAAAAAAAAAAAAAREhAgMxEv/aAAgBAQAGPwKGvZD1nFiWkVR0/8QAHBAAAgICAwAAAAAAAAAAAAAAAREAITFRYXGB/9oACAEBAAE/IWR60S0IQEFriNhsYUAyLyEAuWqETdOp/9oADAMBAAIAAwAAABCs7//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxAEsn//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8QXYn/xAAdEAEAAgICAwAAAAAAAAAAAAABABEhUTFBcYGR/9oACAEBAAE/EExJ6O1vMShJ737YihSIuPpE1de3KAFAV4eZR2isGJP/2Q==&apos;); background-size: cover; display: block;&quot;
         3484   &gt;&lt;/span&gt;
         3485   &lt;img
         3486         class=&quot;gatsby-resp-image-image&quot;
         3487         alt=&quot;modem card closeup&quot;
         3488         title=&quot;modem card closeup&quot;
         3489         src=&quot;/static/a01edf5e481b4174a9680dd837984dea/6aca1/modem2.jpg&quot;
         3490         srcset=&quot;/static/a01edf5e481b4174a9680dd837984dea/d2f63/modem2.jpg 163w,
         3491 /static/a01edf5e481b4174a9680dd837984dea/c989d/modem2.jpg 325w,
         3492 /static/a01edf5e481b4174a9680dd837984dea/6aca1/modem2.jpg 650w,
         3493 /static/a01edf5e481b4174a9680dd837984dea/7c09c/modem2.jpg 975w,
         3494 /static/a01edf5e481b4174a9680dd837984dea/01ab0/modem2.jpg 1300w,
         3495 /static/a01edf5e481b4174a9680dd837984dea/e1596/modem2.jpg 2048w&quot;
         3496         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3497         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3498         loading=&quot;lazy&quot;
         3499       /&gt;
         3500     &lt;/span&gt;&lt;/p&gt;
         3501 &lt;h4&gt;DuoDisk and Disk II Card&lt;/h4&gt;
         3502 &lt;p&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/Disk_II#DuoDisk&quot;&gt;DuoDisk&lt;/a&gt; is a combination drive with two 5 1/4-inch floppy drive bays next to each other. It looks nice when you sandwich it between your Apple II and its monitor.&lt;/p&gt;
         3503 &lt;p&gt;&lt;span
         3504       class=&quot;gatsby-resp-image-wrapper&quot;
         3505       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3506     &gt;
         3507       &lt;span
         3508     class=&quot;gatsby-resp-image-background-image&quot;
         3509     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAQP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAYOy1TLmBp0VqB0QZ//EABwQAQEAAgIDAAAAAAAAAAAAAAECAxEAEgQjQf/aAAgBAQABBQLHSnaxryLhxYXqYa2ht9ZvLwRPswPLCX//xAAYEQACAwAAAAAAAAAAAAAAAAAAEQIQEv/aAAgBAwEBPwFS1bP/xAAXEQADAQAAAAAAAAAAAAAAAAAAAREQ/9oACAECAQE/AashGf/EACAQAAIBAwQDAAAAAAAAAAAAAAABEQISIQMiMZFBYbH/2gAIAQEABj8C5MVEJJkr6TBvcMt0keRX0qfZy+zM9mEj/8QAHBABAAICAwEAAAAAAAAAAAAAAQAhETFBUYGh/9oACAEBAAE/IQd9wBH3NSttgXgb3ASoO8fUyogC6le35E5QMReZ9E5o9Q6AMdT/2gAMAwEAAgADAAAAECs7j//EABgRAQEBAQEAAAAAAAAAAAAAAAEAESEx/9oACAEDAQE/EFwjyy2SPl//xAAYEQEBAQEBAAAAAAAAAAAAAAABABFBUf/aAAgBAgEBPxBATttqPa//xAAcEAEAAgIDAQAAAAAAAAAAAAABABEhMVFxwdH/2gAIAQEAAT8QpAUQu3RW4XKIHBBxgC22rKC1wARfNy60WN3Cmz4WmuZiayqWva7Y0BRyD5MyNglhGgABcH0gojtT2OHFmw5t5n//2Q==&apos;); background-size: cover; display: block;&quot;
         3510   &gt;&lt;/span&gt;
         3511   &lt;img
         3512         class=&quot;gatsby-resp-image-image&quot;
         3513         alt=&quot;Apple IIe with floppy&quot;
         3514         title=&quot;Apple IIe with floppy&quot;
         3515         src=&quot;/static/5cc77f4287f8c875722285ff9d719c92/6aca1/floppymodule.jpg&quot;
         3516         srcset=&quot;/static/5cc77f4287f8c875722285ff9d719c92/d2f63/floppymodule.jpg 163w,
         3517 /static/5cc77f4287f8c875722285ff9d719c92/c989d/floppymodule.jpg 325w,
         3518 /static/5cc77f4287f8c875722285ff9d719c92/6aca1/floppymodule.jpg 650w,
         3519 /static/5cc77f4287f8c875722285ff9d719c92/7c09c/floppymodule.jpg 975w,
         3520 /static/5cc77f4287f8c875722285ff9d719c92/01ab0/floppymodule.jpg 1300w,
         3521 /static/5cc77f4287f8c875722285ff9d719c92/ac99c/floppymodule.jpg 1536w&quot;
         3522         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3523         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3524         loading=&quot;lazy&quot;
         3525       /&gt;
         3526     &lt;/span&gt;&lt;/p&gt;
         3527 &lt;p&gt;The card uses the same Disk II system famously designed by Woz. The &lt;a href=&quot;https://en.wikipedia.org/wiki/Disk_II&quot;&gt;Wikipedia&lt;/a&gt; entry on the Disk II is fascinating and well-worth the quick read. Apparently, the Apple II was getting a lot of flak for not including a disk drive, instead relying on external cassette tape storage. Woz&apos;s solution was the Disk II system, a simpler design than the industry standards, proved incredibly successful, both financially and functionally. Per Wikipedia:&lt;/p&gt;
         3528 &lt;blockquote&gt;
         3529 &lt;p&gt;Wozniak called the resultant Disk II system &quot;my most incredible experience at Apple and the finest job I did&quot;, and credited it and VisiCalc with the Apple II&apos;s success.&lt;/p&gt;
         3530 &lt;/blockquote&gt;
         3531 &lt;p&gt;&lt;span
         3532       class=&quot;gatsby-resp-image-wrapper&quot;
         3533       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3534     &gt;
         3535       &lt;span
         3536     class=&quot;gatsby-resp-image-background-image&quot;
         3537     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAf/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAHGJfDYRhX/xAAbEAEAAgIDAAAAAAAAAAAAAAABAgQAAxESFP/aAAgBAQABBQKVgiwsxw2wRrcvl6hpz//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAEDAQE/Aaf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAZEAADAAMAAAAAAAAAAAAAAAAAETEBEiH/2gAIAQEABj8CSIUexzLKf//EABsQAAMAAgMAAAAAAAAAAAAAAAABIRFRcYGR/9oACAEBAAE/Ia19NgmZ9PIqzlvQmnZbRGp0j//aAAwDAQACAAMAAAAQxM//xAAXEQEAAwAAAAAAAAAAAAAAAAAAASFR/9oACAEDAQE/EI0p/8QAFREBAQAAAAAAAAAAAAAAAAAAACH/2gAIAQIBAT8Qiv/EABsQAQADAQADAAAAAAAAAAAAAAEAETEhQVFx/9oACAEBAAE/EECVFGqR3awEx2CNvgIxm+grMR2ALoz5LDSfSVP/2Q==&apos;); background-size: cover; display: block;&quot;
         3538   &gt;&lt;/span&gt;
         3539   &lt;img
         3540         class=&quot;gatsby-resp-image-image&quot;
         3541         alt=&quot;floppy card&quot;
         3542         title=&quot;floppy card&quot;
         3543         src=&quot;/static/36838def124428fea150870f5a9dbde3/6aca1/floppycard.jpg&quot;
         3544         srcset=&quot;/static/36838def124428fea150870f5a9dbde3/d2f63/floppycard.jpg 163w,
         3545 /static/36838def124428fea150870f5a9dbde3/c989d/floppycard.jpg 325w,
         3546 /static/36838def124428fea150870f5a9dbde3/6aca1/floppycard.jpg 650w,
         3547 /static/36838def124428fea150870f5a9dbde3/7c09c/floppycard.jpg 975w,
         3548 /static/36838def124428fea150870f5a9dbde3/01ab0/floppycard.jpg 1300w,
         3549 /static/36838def124428fea150870f5a9dbde3/e1596/floppycard.jpg 2048w&quot;
         3550         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3551         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3552         loading=&quot;lazy&quot;
         3553       /&gt;
         3554     &lt;/span&gt;&lt;/p&gt;
         3555 &lt;p&gt;If anyone&apos;s got any spare 5 1⁄4-inch floppies, let me know, because now I&apos;ve got two whole slots for them (this is actually a serious inquiry, please &lt;a href=&quot;https://twitter.com/whatrocks&quot;&gt;tweet&lt;/a&gt; at me!).&lt;/p&gt;
         3556 &lt;h3&gt;So, what are you going to do with your new old computer, Charlie?&lt;/h3&gt;
         3557 &lt;p&gt;I&apos;m not sure. Here are some of my thoughts.&lt;/p&gt;
         3558 &lt;h4&gt;Serial port&lt;/h4&gt;
         3559 &lt;p&gt;As mentioned, I suspect that I&apos;ll be able to figure out how to use the Super Serial II card with an Arduino or Raspberry Pi.&lt;/p&gt;
         3560 &lt;p&gt;I recently found a project that uses Raspberry Pi in such a way that it accepts keyboard input from the Apple II and displays its output on the Apple monitor. Definitely want to try that.&lt;/p&gt;
         3561 &lt;p&gt;But I&apos;m also eager to see if I can rig it up such that I can effectively SSH/remote into the Apple IIe from a laptop, using a Raspberry Pi as a bridge of some kind via the Super Serial II card. &lt;/p&gt;
         3562 &lt;p&gt;This project is definitely my top priority, because it seems odd and useful. I&apos;d really like to be able to write programs for the Apple IIe and easily save them to GitHub. Being able to write them on my laptop and simply transfer them to the Apple for processing seems like a hilariously fun and distracting project to work on next.&lt;/p&gt;
         3563 &lt;h4&gt;Repairs&lt;/h4&gt;
         3564 &lt;p&gt;These are smaller efforts, which means they&apos;ll likely linger for a while.&lt;/p&gt;
         3565 &lt;p&gt;&lt;span
         3566       class=&quot;gatsby-resp-image-wrapper&quot;
         3567       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3568     &gt;
         3569       &lt;span
         3570     class=&quot;gatsby-resp-image-background-image&quot;
         3571     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAwADAAAAAAAAAAAAAAAAAAMEAQIF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAFNO68ayUBOmSuXok5H/8QAGhAAAwEBAQEAAAAAAAAAAAAAAQIDEQASIv/aAAgBAQABBQIScGAKTnEEU3PvNPVHpgo5NC+2BQllk5M//8QAFhEBAQEAAAAAAAAAAAAAAAAAEAEh/9oACAEDAQE/ASaf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAERITFBUYH/2gAIAQEABj8Cb6mR0bfSFJdelGjOCCmWKWf/xAAbEAEBAQEAAwEAAAAAAAAAAAABEQAhMUFRof/aAAgBAQABPyFkHoTL2Iry6jPcmBgOIe8eFFdbjyQNPW8YxPuhYfrmAkLN0lHKV20/M2Ud/9oADAMBAAIAAwAAABBk+87/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQMBAT8QzERqK//EABgRAAMBAQAAAAAAAAAAAAAAAAABERAh/9oACAECAQE/EKVD4s//xAAeEAEBAQEAAgIDAAAAAAAAAAABEQAhMVFBYXGRsf/aAAgBAQABPxAbqQHUtC5k0wGRSHNKApAZAh/RyBMCgsHhb4xTWcgBf3pCkFVS/OoiIkT36mRFcnZT1oOBx4c/Fwj7QHufG0i/J1uEYlQ9b//Z&apos;); background-size: cover; display: block;&quot;
         3572   &gt;&lt;/span&gt;
         3573   &lt;img
         3574         class=&quot;gatsby-resp-image-image&quot;
         3575         alt=&quot;keyboard&quot;
         3576         title=&quot;keyboard&quot;
         3577         src=&quot;/static/474d8f4a0061a7b5b03adc4a8b5e1b51/6aca1/keyboard.jpg&quot;
         3578         srcset=&quot;/static/474d8f4a0061a7b5b03adc4a8b5e1b51/d2f63/keyboard.jpg 163w,
         3579 /static/474d8f4a0061a7b5b03adc4a8b5e1b51/c989d/keyboard.jpg 325w,
         3580 /static/474d8f4a0061a7b5b03adc4a8b5e1b51/6aca1/keyboard.jpg 650w,
         3581 /static/474d8f4a0061a7b5b03adc4a8b5e1b51/7c09c/keyboard.jpg 975w,
         3582 /static/474d8f4a0061a7b5b03adc4a8b5e1b51/01ab0/keyboard.jpg 1300w,
         3583 /static/474d8f4a0061a7b5b03adc4a8b5e1b51/ac99c/keyboard.jpg 1536w&quot;
         3584         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3585         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3586         loading=&quot;lazy&quot;
         3587       /&gt;
         3588     &lt;/span&gt;&lt;/p&gt;
         3589 &lt;ul&gt;
         3590 &lt;li&gt;Find replacement keys for my missing keys. I hope this doesn&apos;t mean buying an entire &lt;em&gt;other&lt;/em&gt; Apple IIe. Or do I?&lt;/li&gt;
         3591 &lt;li&gt;&quot;Retro-brite&quot; and deep clean - a la 8 Bit Guy - to make the case look brand new&lt;/li&gt;
         3592 &lt;/ul&gt;
         3593 &lt;h4&gt;Games&lt;/h4&gt;
         3594 &lt;p&gt;I currently have zero software for the Apple IIe. None. Zilch. Which means I have no games. I know that, back in the 1980s, magazines used to print out source code for games, and kids would spend hours plugging them into their Apple IIs or Commodores, praying that they hadn&apos;t made a syntax error. Once their games were up and running, this proved a great chance for the curious ones to start messing around with the source code, tweaking it, and eventually making their own games. I&apos;m sure that many of these games and magazines are now scanned and available online. I&apos;ll definitely be checking those out.&lt;/p&gt;
         3595 &lt;p&gt;I&apos;d also be very open to buying some classic Apple II games on eBay. I&apos;d love to hear of favorites or any suggestions.&lt;/p&gt;
         3596 &lt;h4&gt;Storage&lt;/h4&gt;
         3597 &lt;p&gt;Given that I immediately lose everything anytime the power goes out (or I simply turn off the computer), these two projects seem important:&lt;/p&gt;
         3598 &lt;ul&gt;
         3599 &lt;li&gt;Get a tape recorder and figure out how to save a program to tape, and then rewind / reload it&lt;/li&gt;
         3600 &lt;li&gt;Find some blank floppies and do the same&lt;/li&gt;
         3601 &lt;/ul&gt;
         3602 &lt;h4&gt;Programming&lt;/h4&gt;
         3603 &lt;p&gt;Other than AppleSoft BASIC (which was written by Microsoft! For Apple!!), which is burned into a ROM chip on the Apple II, there&apos;s also some sort of built-in assembler that you can access by typing this into the BASIC prompt:&lt;/p&gt;
         3604 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;CALL-151&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         3605 &lt;p&gt;I believe this is where I&apos;ll be able to do some of the more Commodore 64-like peeking and poking directly at memory. I have a feeling there&apos;s a lot of exploring (and fun) to be done here. I need to read up more on this.&lt;/p&gt;
         3606 &lt;h3&gt;One more thing&lt;/h3&gt;
         3607 &lt;p&gt;This computer represents to me the lost era of computer as appliance. I&apos;m talking about &quot;bicycle for the mind&quot; type-of-stuff. When you still sat down and said, &quot;I&apos;m going to computer now.&quot; Or, as in my childhood, &quot;May I please go on the computer now, Mom, PLEASE?&quot;&lt;/p&gt;
         3608 &lt;p&gt;We&apos;re much closer to cyborgs now, with our phones and watches and speakers and other do-dads. Computers are part of us. They&apos;re attached to us, they&apos;re in our pockets, they&apos;re in our bags, they&apos;re next to us when we go to sleep. You can&apos;t escape them, and as a result, you&apos;re no longer able to make an active choice about whether or not to use them. The best we&apos;ve got is Screen Time warnings, a penal code to make us use them less.&lt;/p&gt;
         3609 &lt;p&gt;That&apos;s why this Apple IIe is such an important machine to me. It&apos;s something I can actively choose to dive into and explore. It&apos;s the same thing I feel when I really get into a novel. I&apos;m in another world.&lt;/p&gt;
         3610 &lt;p&gt;And here a few more close-ups of the computer as a reward for making it this far.&lt;/p&gt;
         3611 &lt;p&gt;&lt;span
         3612       class=&quot;gatsby-resp-image-wrapper&quot;
         3613       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3614     &gt;
         3615       &lt;span
         3616     class=&quot;gatsby-resp-image-background-image&quot;
         3617     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAdlqhi3nJh8dcY4wP//EABwQAAIBBQEAAAAAAAAAAAAAAAECMgADESIxQf/aAAgBAQABBQI8tplrow5itPIxWnl4o2fv/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFREBAQAAAAAAAAAAAAAAAAAAASD/2gAIAQIBAT8BI//EABkQAAIDAQAAAAAAAAAAAAAAAAEQAAMhAv/aAAgBAQAGPwIzjUZWdRlbC//EAB4QAAICAgIDAAAAAAAAAAAAAAABESFBsVFxMZGh/9oACAEBAAE/IcLgawnt3OBkR8hJQOzuzUP6BqThmofl0K62az//2gAMAwEAAgADAAAAENAijv/EABURAQEAAAAAAAAAAAAAAAAAAAEg/9oACAEDAQE/EGP/xAAVEQEBAAAAAAAAAAAAAAAAAAAQAf/aAAgBAgEBPxAQ/8QAHRABAAMAAgMBAAAAAAAAAAAAAQARITGxcYGRof/aAAgBAQABPxC/Mu9V4iCblTDht0GkSKY36nIA4rb+xrpXE+j6gNYu1fc6EIg8KIAS6wLcnSn/2Q==&apos;); background-size: cover; display: block;&quot;
         3618   &gt;&lt;/span&gt;
         3619   &lt;img
         3620         class=&quot;gatsby-resp-image-image&quot;
         3621         alt=&quot;Apple IIe Logo&quot;
         3622         title=&quot;Apple IIe Logo&quot;
         3623         src=&quot;/static/ddeeecfdae735533db7571d7e8342705/6aca1/apple.jpg&quot;
         3624         srcset=&quot;/static/ddeeecfdae735533db7571d7e8342705/d2f63/apple.jpg 163w,
         3625 /static/ddeeecfdae735533db7571d7e8342705/c989d/apple.jpg 325w,
         3626 /static/ddeeecfdae735533db7571d7e8342705/6aca1/apple.jpg 650w,
         3627 /static/ddeeecfdae735533db7571d7e8342705/7c09c/apple.jpg 975w,
         3628 /static/ddeeecfdae735533db7571d7e8342705/01ab0/apple.jpg 1300w,
         3629 /static/ddeeecfdae735533db7571d7e8342705/ac99c/apple.jpg 1536w&quot;
         3630         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3631         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3632         loading=&quot;lazy&quot;
         3633       /&gt;
         3634     &lt;/span&gt;&lt;/p&gt;
         3635 &lt;p&gt;&lt;span
         3636       class=&quot;gatsby-resp-image-wrapper&quot;
         3637       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3638     &gt;
         3639       &lt;span
         3640     class=&quot;gatsby-resp-image-background-image&quot;
         3641     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIDBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAHCxWKzEwdILU1JB//EABsQAAICAwEAAAAAAAAAAAAAAAACAQMREyIg/9oACAEBAAEFAkvcmx3O5K6JG5JZoNrKbGM+P//EABURAQEAAAAAAAAAAAAAAAAAABEg/9oACAEDAQE/AWP/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAdEAACAQQDAAAAAAAAAAAAAAAAASEQETFBEiBh/9oACAEBAAY/Apk0ZSNFuOPaQyX1/8QAHBAAAwADAAMAAAAAAAAAAAAAAAERITFhcZHh/9oACAEBAAE/Idpky02fLieZ8EIbfYq6PiKNMUSWvHmGuteRu3aPTE8iP//aAAwDAQACAAMAAAAQgydM/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERIVH/2gAIAQMBAT8QWNZV0pEf/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERECH/2gAIAQIBAT8QaV4Qmf/EAB0QAQACAQUBAAAAAAAAAAAAAAEAESExQVFhcYH/2gAIAQEAAT8QMW2MSzkmFWg2FGn7AziPDAVMNOrP2sS/YgGoWc9eRaWGuaYZtLucBt7LbKG1ViXol7qEeqI2XaJz7P/Z&apos;); background-size: cover; display: block;&quot;
         3642   &gt;&lt;/span&gt;
         3643   &lt;img
         3644         class=&quot;gatsby-resp-image-image&quot;
         3645         alt=&quot;Motherboard&quot;
         3646         title=&quot;Motherboard&quot;
         3647         src=&quot;/static/1ac4332a25a559be39a6d6ee535c423c/6aca1/chips.jpg&quot;
         3648         srcset=&quot;/static/1ac4332a25a559be39a6d6ee535c423c/d2f63/chips.jpg 163w,
         3649 /static/1ac4332a25a559be39a6d6ee535c423c/c989d/chips.jpg 325w,
         3650 /static/1ac4332a25a559be39a6d6ee535c423c/6aca1/chips.jpg 650w,
         3651 /static/1ac4332a25a559be39a6d6ee535c423c/7c09c/chips.jpg 975w,
         3652 /static/1ac4332a25a559be39a6d6ee535c423c/01ab0/chips.jpg 1300w,
         3653 /static/1ac4332a25a559be39a6d6ee535c423c/ac99c/chips.jpg 1536w&quot;
         3654         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3655         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3656         loading=&quot;lazy&quot;
         3657       /&gt;
         3658     &lt;/span&gt;&lt;/p&gt;
         3659 &lt;p&gt;&lt;span
         3660       class=&quot;gatsby-resp-image-wrapper&quot;
         3661       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3662     &gt;
         3663       &lt;span
         3664     class=&quot;gatsby-resp-image-background-image&quot;
         3665     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAUypOd3jOE//xAAbEAEAAgIDAAAAAAAAAAAAAAABAAIDIRESE//aAAgBAQABBQLnfWpPTFHYrWGUn//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEDAQE/Aar/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFH/8QAGRAAAwADAAAAAAAAAAAAAAAAAAEhETGh/9oACAEBAAY/At8M1lZSFR//xAAbEAEAAwADAQAAAAAAAAAAAAABABEhMVFhgf/aAAgBAQABPyEDqvjJYt8LlGMJmErzEg+7O+og5H0uf//aAAwDAQACAAMAAAAQiP8A/8QAFxEAAwEAAAAAAAAAAAAAAAAAARARMf/aAAgBAwEBPxAxq//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxANj//EAB0QAQACAgIDAAAAAAAAAAAAAAEAESExQXFRkbH/2gAIAQEAAT8QYhECnZ76hi4XAHy4KXbQvKNR31tbydRaA9otxZS8gL3P/9k=&apos;); background-size: cover; display: block;&quot;
         3666   &gt;&lt;/span&gt;
         3667   &lt;img
         3668         class=&quot;gatsby-resp-image-image&quot;
         3669         alt=&quot;chips&quot;
         3670         title=&quot;chips&quot;
         3671         src=&quot;/static/3e75ae11d6e3bed6e0110e893614c605/6aca1/chips2.jpg&quot;
         3672         srcset=&quot;/static/3e75ae11d6e3bed6e0110e893614c605/d2f63/chips2.jpg 163w,
         3673 /static/3e75ae11d6e3bed6e0110e893614c605/c989d/chips2.jpg 325w,
         3674 /static/3e75ae11d6e3bed6e0110e893614c605/6aca1/chips2.jpg 650w,
         3675 /static/3e75ae11d6e3bed6e0110e893614c605/7c09c/chips2.jpg 975w,
         3676 /static/3e75ae11d6e3bed6e0110e893614c605/01ab0/chips2.jpg 1300w,
         3677 /static/3e75ae11d6e3bed6e0110e893614c605/e1596/chips2.jpg 2048w&quot;
         3678         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3679         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3680         loading=&quot;lazy&quot;
         3681       /&gt;
         3682     &lt;/span&gt;&lt;/p&gt;
         3683 &lt;p&gt;&lt;span
         3684       class=&quot;gatsby-resp-image-wrapper&quot;
         3685       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3686     &gt;
         3687       &lt;span
         3688     class=&quot;gatsby-resp-image-background-image&quot;
         3689     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEAf/EABYBAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABlp2nK2ED/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAECAxESIjH/2gAIAQEAAQUC6Km00Kqeyjg9P//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABsQAAIBBQAAAAAAAAAAAAAAAAABMRAhMkKR/9oACAEBAAY/ApfDZkmVq//EABwQAAMAAgMBAAAAAAAAAAAAAAABETFRIXGxwf/aAAgBAQABPyGv8y5t4dGPMdiFtHehVzwWVR//2gAMAwEAAgADAAAAEO8//8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQMBAT8QJ//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EEf/xAAcEAEBAAICAwAAAAAAAAAAAAABEQAhkbExUXH/2gAIAQEAAT8Qu7DAtZjZJv7hFtCrHs4wBVDIs4wGBv0DrLohuec//9k=&apos;); background-size: cover; display: block;&quot;
         3690   &gt;&lt;/span&gt;
         3691   &lt;img
         3692         class=&quot;gatsby-resp-image-image&quot;
         3693         alt=&quot;Double Apple Logo&quot;
         3694         title=&quot;Double Apple Logo&quot;
         3695         src=&quot;/static/897f92f522ae024f5885a11e7d7cf7c4/6aca1/doubleapple.jpg&quot;
         3696         srcset=&quot;/static/897f92f522ae024f5885a11e7d7cf7c4/d2f63/doubleapple.jpg 163w,
         3697 /static/897f92f522ae024f5885a11e7d7cf7c4/c989d/doubleapple.jpg 325w,
         3698 /static/897f92f522ae024f5885a11e7d7cf7c4/6aca1/doubleapple.jpg 650w,
         3699 /static/897f92f522ae024f5885a11e7d7cf7c4/7c09c/doubleapple.jpg 975w,
         3700 /static/897f92f522ae024f5885a11e7d7cf7c4/01ab0/doubleapple.jpg 1300w,
         3701 /static/897f92f522ae024f5885a11e7d7cf7c4/e1596/doubleapple.jpg 2048w&quot;
         3702         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3703         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3704         loading=&quot;lazy&quot;
         3705       /&gt;
         3706     &lt;/span&gt;&lt;/p&gt;
         3707 &lt;p&gt;&lt;span
         3708       class=&quot;gatsby-resp-image-wrapper&quot;
         3709       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3710     &gt;
         3711       &lt;span
         3712     class=&quot;gatsby-resp-image-background-image&quot;
         3713     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAQBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABgomth5Th4zVR4Bf/xAAfEAACAgIBBQAAAAAAAAAAAAAAAgEDERMSFCEiMUH/2gAIAQEAAQUCos4NZK2N1SwVp3wayW1kv45k9nyT/8QAFhEBAQEAAAAAAAAAAAAAAAAAABEQ/9oACAEDAQE/Acqv/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHhAAAwABBAMAAAAAAAAAAAAAAAERMRIgITJCUXH/2gAIAQEABj8C9or1JIis+HORdTxMVss2/wD/xAAcEAEAAgMBAQEAAAAAAAAAAAABABEhMUFRYYH/2gAIAQEAAT8harbyfMQVKYtBRCGbDkVXXTEK4MRZQLWKi7ep4H5H1mLpyYM//9oADAMBAAIAAwAAABCv/Mz/xAAYEQADAQEAAAAAAAAAAAAAAAAAAREQIf/aAAgBAwEBPxBPkZXmj//EABgRAAMBAQAAAAAAAAAAAAAAAAABERAh/9oACAECAQE/EHx1ERM//8QAHxABAAIBBAMBAAAAAAAAAAAAAQAhETFBUYFhcaGR/9oACAEBAAE/EHmSBV1ez7h9iChcY78ymetR9YTwvQi3QLNDj0c9xmXZ0Fr6QbQju/HUGmQX6mW8A3lt4gBXtGbaWE0BpP/Z&apos;); background-size: cover; display: block;&quot;
         3714   &gt;&lt;/span&gt;
         3715   &lt;img
         3716         class=&quot;gatsby-resp-image-image&quot;
         3717         alt=&quot;memory&quot;
         3718         title=&quot;memory&quot;
         3719         src=&quot;/static/eb0b872444e58dcdd1b61ac711cac061/6aca1/memory.jpg&quot;
         3720         srcset=&quot;/static/eb0b872444e58dcdd1b61ac711cac061/d2f63/memory.jpg 163w,
         3721 /static/eb0b872444e58dcdd1b61ac711cac061/c989d/memory.jpg 325w,
         3722 /static/eb0b872444e58dcdd1b61ac711cac061/6aca1/memory.jpg 650w,
         3723 /static/eb0b872444e58dcdd1b61ac711cac061/7c09c/memory.jpg 975w,
         3724 /static/eb0b872444e58dcdd1b61ac711cac061/01ab0/memory.jpg 1300w,
         3725 /static/eb0b872444e58dcdd1b61ac711cac061/ac99c/memory.jpg 1536w&quot;
         3726         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3727         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3728         loading=&quot;lazy&quot;
         3729       /&gt;
         3730     &lt;/span&gt;&lt;/p&gt;
         3731 &lt;h4&gt;Footnotes&lt;/h4&gt;
         3732 &lt;ol&gt;
         3733 &lt;li&gt;For the uninitiated, I suggest starting with Part 1 of The 8-Bit Guy&apos;s masterful two series: &lt;a href=&quot;https://www.youtube.com/watch?v=A_vpfBJZ7JI&quot;&gt;Restoration - The Worst VIC-20 I&apos;ve ever seen - Part 1&lt;/a&gt;. I don&apos;t know why I like watching this man clean and restore old computers so much, but there it is - I just do.&lt;/li&gt;
         3734 &lt;/ol&gt;</content:encoded></item><item><title><![CDATA[Mindstorms]]></title><description><![CDATA[Mindstorms by Seymour Papert is a book written in 1980 about how children can learn with computers - and learn to fall in love with learning…]]></description><link>https://www.charlieharrington.com/mindstorms</link><guid isPermaLink="false">https://www.charlieharrington.com/mindstorms</guid><pubDate>Sun, 03 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0465046746/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0465046746&amp;#x26;linkId=2949aefc36d4bd9d9f632170d2ac23de&quot;&gt;Mindstorms&lt;/a&gt; by Seymour Papert is a book written in 1980 about how children can learn with computers - and learn to fall in love with learning along the way.&lt;/p&gt;
         3735 &lt;p&gt;I read &lt;a href=&quot;https://www.amazon.com/gp/product/0465046746/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0465046746&amp;#x26;linkId=2949aefc36d4bd9d9f632170d2ac23de&quot;&gt;Mindstorms&lt;/a&gt;, and fell in love with the book. My own mind was besieged, stormed, and ultimately broken - only to be reforged anew like Andúril from the shards of Narsil (sorry, I&apos;m re-reading Lord of the Rings right now). This post, after this short-I-promise expository intro, contains my book notes.&lt;/p&gt;
         3736 &lt;p&gt;You may have heard of Papert&apos;s LOGO programming language before, which issues commands to an adorable round robot called a Turtle. Papert designed LOGO and the Turtle in the late 1960s to help children learn how to learn with computers. Here&apos;s a photo of Papert and his robotic operating buddy:&lt;/p&gt;
         3737 &lt;p&gt;&lt;span
         3738       class=&quot;gatsby-resp-image-wrapper&quot;
         3739       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; &quot;
         3740     &gt;
         3741       &lt;a
         3742     class=&quot;gatsby-resp-image-link&quot;
         3743     href=&quot;/static/6abfec0f92eaf2f9ebb7ef9d2fd262e4/b4294/papert.jpg&quot;
         3744     style=&quot;display: block&quot;
         3745     target=&quot;_blank&quot;
         3746     rel=&quot;noopener&quot;
         3747   &gt;
         3748     &lt;span
         3749     class=&quot;gatsby-resp-image-background-image&quot;
         3750     style=&quot;padding-bottom: 138.03680981595093%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAcABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMFBAL/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIQAxAAAAGmt2M0DwXLt8AND//EABwQAAICAwEBAAAAAAAAAAAAAAECAAMREiIQIf/aAAgBAQABBQK3iDqAS9dq6dg0duBZ2v1Sozjz/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAHBAAAQQDAQAAAAAAAAAAAAAAEQABECESQVGh/9oACAEBAAY/AjqXZPkLi2viPiKIn//EABsQAQEBAQEAAwAAAAAAAAAAAAEAEUFRITFx/9oACAEBAAE/IVhppUl9vm7HjflJhZMdbhvoDXxPLGPknosbF//aAAwDAQACAAMAAAAQwwkA/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAf/8QAHRABAAMBAAIDAAAAAAAAAAAAAQARITFRcUFhkf/aAAgBAQABPxDQAHb+NiFAGVWj9wZ7+JXBqtOCMDjVArmbcBUb1JW2gL/WceBoVVfXmXckNtxiFhrVyu4bABk//9k=&apos;); background-size: cover; display: block;&quot;
         3751   &gt;&lt;/span&gt;
         3752   &lt;img
         3753         class=&quot;gatsby-resp-image-image&quot;
         3754         alt=&quot;Papert&quot;
         3755         title=&quot;Papert&quot;
         3756         src=&quot;/static/6abfec0f92eaf2f9ebb7ef9d2fd262e4/b4294/papert.jpg&quot;
         3757         srcset=&quot;/static/6abfec0f92eaf2f9ebb7ef9d2fd262e4/d2f63/papert.jpg 163w,
         3758 /static/6abfec0f92eaf2f9ebb7ef9d2fd262e4/c989d/papert.jpg 325w,
         3759 /static/6abfec0f92eaf2f9ebb7ef9d2fd262e4/b4294/papert.jpg 600w&quot;
         3760         sizes=&quot;(max-width: 600px) 100vw, 600px&quot;
         3761         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3762         loading=&quot;lazy&quot;
         3763       /&gt;
         3764   &lt;/a&gt;
         3765     &lt;/span&gt;&lt;/p&gt;
         3766 &lt;p&gt;The popular Lego Mindstorms products are inspired by Papert and this book, along with many other cute robot learning toys for children, like &lt;a href=&quot;/teaching-my-robot-with-tensorflow&quot;&gt;my good friend Cozmo the Robot&lt;/a&gt; or the insanely cute Cubetto from &lt;a href=&quot;https://www.primotoys.com&quot;&gt;Primo Toys&lt;/a&gt;:&lt;/p&gt;
         3767 &lt;p&gt;&lt;span
         3768       class=&quot;gatsby-resp-image-wrapper&quot;
         3769       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         3770     &gt;
         3771       &lt;a
         3772     class=&quot;gatsby-resp-image-link&quot;
         3773     href=&quot;/static/7baf9184b196f541a1ed9b85dbe992bf/f3a19/cubetto.png&quot;
         3774     style=&quot;display: block&quot;
         3775     target=&quot;_blank&quot;
         3776     rel=&quot;noopener&quot;
         3777   &gt;
         3778     &lt;span
         3779     class=&quot;gatsby-resp-image-background-image&quot;
         3780     style=&quot;padding-bottom: 57.668711656441715%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAAC5UlEQVQoz02T2U8TURTG+w/46IvPxkdfJcYYDA/GB43GGJVEXOqCEexiWzUalxBjopGIOxY0ajQii0rAog1la5iZTmmrVltQFjFoChVBYyoC8/PMAMaHLzdz597fnPOdb2xGxIMROWKJqBPiToz4aXIfGhjv18kkmsiqfn7pl5mJn+ePdpScdoKcfo4feoW8qwCL4cXQvdgM3XzwQI+Xn6ESeluuMpKKMJbsYlyrpT9QzYDSTObLV94k3zHR285kb6tI3sfrSEVqyEXLBOqyoDYj6mFWE2DiKEO1B3AVbMCTv47bZZdQ3g6SiCXIDKepqbpBe/AluYEwY+87yCY7SMWeUdl0kyntmsAcCxV6BSjtxtx8fbYX56p89i9bzu6CXbTUP6Hn6T3Kz5yjeOUS7ly5xM8BVWCtZN62kn3fSbDqMrFQNQjHtM1mCMxQxTvdwffGPTjyVrB9yVIK89fSUe0h5Xfj2rKN0rxFePYWMZpWGU0EGEl3km14QFv9LaKpFmn5rACdCx6aUBfT4cN8vr+NgG8D108VozZVoDw6ySHHJo6vWUy5fTWvw0GmP4YYS3fzsTsE74IMJ6P0hW6AWmJ6aE7Hx6wMJtTmY0YXc9VTZNSHDHc+pC9wgfCVjfReK2DIv5bHd/10BZsJN1TSfP8iz/0nqbvqYLDhoDUYGz3iX4/LmnROcVmVjjYe5NOTUj49spO6tZXvdUXQZoeuQ6RriwlUbCVevZm+mkKGGncy3b5PYE6LYcsqZURbK8VDAZvD0VxMBuwk7+wgXL5JtJ5MfSEoJXJGZBYQl1S89pGNnSAk3RCd69AaylTkGBPdsjmfRyuTcvh3ZwnfXtiZ6pBWtFL+KB60V1X8VuSy5mZGFd9ltTT/Y1hAE4Tu/pd0QzI51Vwqez6p5Jh8fS4OM5qXkfYyAcl5E6KasCNz+h9oQUyYWZ1cnu128+N6kazipz5fhVzGlHZYVvFKkZiZfi9Idf/TX7NY6afiyboeAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         3781   &gt;&lt;/span&gt;
         3782   &lt;img
         3783         class=&quot;gatsby-resp-image-image&quot;
         3784         alt=&quot;Cubetto&quot;
         3785         title=&quot;Cubetto&quot;
         3786         src=&quot;/static/7baf9184b196f541a1ed9b85dbe992bf/a6d36/cubetto.png&quot;
         3787         srcset=&quot;/static/7baf9184b196f541a1ed9b85dbe992bf/222b7/cubetto.png 163w,
         3788 /static/7baf9184b196f541a1ed9b85dbe992bf/ff46a/cubetto.png 325w,
         3789 /static/7baf9184b196f541a1ed9b85dbe992bf/a6d36/cubetto.png 650w,
         3790 /static/7baf9184b196f541a1ed9b85dbe992bf/e548f/cubetto.png 975w,
         3791 /static/7baf9184b196f541a1ed9b85dbe992bf/f3a19/cubetto.png 1086w&quot;
         3792         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         3793         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         3794         loading=&quot;lazy&quot;
         3795       /&gt;
         3796   &lt;/a&gt;
         3797     &lt;/span&gt;&lt;/p&gt;
         3798 &lt;p&gt;When you conjure up an image of &quot;learning with computers&quot;, you might think of a rote &quot;quiz app&quot; or &quot;flashcard app&quot; - but Papert suggests that it can be more -- more creative, more exploratory, more fun, and longer-lasting. I think about how I took Calc AB and Calc BC in high school, and I was pretty good at them, too, but I had no idea what I was really doing. I knew the mechanics, not the meaning. When Papert connects teaching the Turtle to move in a cirle and the principals of differential calculus -- measuring growth by movement at the growing tip -- all I can say is 🤯.&lt;/p&gt;
         3799 &lt;p&gt;There&apos;s obviously also a reference to George Polya in here, too - always a good sign! &lt;/p&gt;
         3800 &lt;p&gt;And now, onto the notes!&lt;/p&gt;
         3801 &lt;h3&gt;Learning with computers&lt;/h3&gt;
         3802 &lt;ul&gt;
         3803 &lt;li&gt;&lt;strong&gt;Bricolage&lt;/strong&gt;: creation from diverse range of things&lt;/li&gt;
         3804 &lt;li&gt;
         3805 &lt;p&gt;Computers have the power to &lt;strong&gt;simulate&lt;/strong&gt;. They can take 1000 forms and serve 1000 functions&lt;/p&gt;
         3806 &lt;ul&gt;
         3807 &lt;li&gt;Flexible enough so children can each create with them&lt;/li&gt;
         3808 &lt;li&gt;Flexible enough to model the world&lt;/li&gt;
         3809 &lt;/ul&gt;
         3810 &lt;/li&gt;
         3811 &lt;li&gt;Remember: people seldom get things right on the first try&lt;/li&gt;
         3812 &lt;li&gt;
         3813 &lt;p&gt;He is not recommending &quot;computer-aided instruction&quot; - like a quiz app&lt;/p&gt;
         3814 &lt;ul&gt;
         3815 &lt;li&gt;Instead, he envisions the child programming the computer!&lt;/li&gt;
         3816 &lt;/ul&gt;
         3817 &lt;/li&gt;
         3818 &lt;li&gt;Learning to program can be a natural process like language acquisition&lt;/li&gt;
         3819 &lt;li&gt;Learning to communicate with a computer can change the ways we learn other things&lt;/li&gt;
         3820 &lt;li&gt;
         3821 &lt;p&gt;&lt;strong&gt;Jean Piaget&lt;/strong&gt;&lt;/p&gt;
         3822 &lt;ul&gt;
         3823 &lt;li&gt;Papert&apos;s mentor / teacher&lt;/li&gt;
         3824 &lt;li&gt;&quot;Learning without being taught&quot; is perhaps Piaget&apos;s main idea&lt;/li&gt;
         3825 &lt;li&gt;Piaget says that children build their own intellectual structures, models, and then evolve them over time when proven false&lt;/li&gt;
         3826 &lt;li&gt;Children do thise all without being &lt;em&gt;taught&lt;/em&gt;&lt;/li&gt;
         3827 &lt;li&gt;&quot;Child as builder&quot;&lt;/li&gt;
         3828 &lt;/ul&gt;
         3829 &lt;/li&gt;
         3830 &lt;/ul&gt;
         3831 &lt;h3&gt;Mathophobia&lt;/h3&gt;
         3832 &lt;ul&gt;
         3833 &lt;li&gt;Mathophobia is endemic. To this day, if we see math, we avoid it.&lt;/li&gt;
         3834 &lt;li&gt;But we often have no trouble with math knowledge if we don&apos;t perceive it as &quot;math&quot;&lt;/li&gt;
         3835 &lt;li&gt;
         3836 &lt;p&gt;People&apos;s images of themselves as learners is contaminated by mathophobia&lt;/p&gt;
         3837 &lt;ul&gt;
         3838 &lt;li&gt;&quot;I&apos;m not a math person&quot;&lt;/li&gt;
         3839 &lt;li&gt;&quot;I&apos;m not artistic&quot;&lt;/li&gt;
         3840 &lt;li&gt;&quot;I&apos;m not musical&quot;&lt;/li&gt;
         3841 &lt;li&gt;As you can see, it dangerously spreads to other disciplines... &quot;not an X person&quot;&lt;/li&gt;
         3842 &lt;/ul&gt;
         3843 &lt;/li&gt;
         3844 &lt;li&gt;Mathophobia leads to insecurity and self-imposed restrictions, rather than a child&apos;s instinctive free exploration of the world&lt;/li&gt;
         3845 &lt;li&gt;However, the computer can be a carrier of cultural germs and seeds whos intellectual products won&apos;t need a computer once they can take root in actively growing mind&lt;/li&gt;
         3846 &lt;/ul&gt;
         3847 &lt;h3&gt;The Turtle&lt;/h3&gt;
         3848 &lt;ul&gt;
         3849 &lt;li&gt;&quot;Body knowledge&quot; - useful to think about things in relation to your body. Children do this instinctively&lt;/li&gt;
         3850 &lt;li&gt;
         3851 &lt;p&gt;Children need an &quot;object to think with&quot;&lt;/p&gt;
         3852 &lt;ul&gt;
         3853 &lt;li&gt;This object is &quot;the Turtle&quot;&lt;/li&gt;
         3854 &lt;/ul&gt;
         3855 &lt;/li&gt;
         3856 &lt;li&gt;The Turtle is not a panacea, just a model for other objects not yet invented by the child&lt;/li&gt;
         3857 &lt;li&gt;LOGO programming language is how children communicate with the Turtle&lt;/li&gt;
         3858 &lt;li&gt;The Turtle serves no purpose other than being good to program and good to think with&lt;/li&gt;
         3859 &lt;li&gt;
         3860 &lt;p&gt;Example LOGO commands&lt;/p&gt;
         3861 &lt;ul&gt;
         3862 &lt;li&gt;FORWARD 100&lt;/li&gt;
         3863 &lt;li&gt;PENDOWN&lt;/li&gt;
         3864 &lt;li&gt;RIGHT 90&lt;/li&gt;
         3865 &lt;li&gt;PENUP&lt;/li&gt;
         3866 &lt;/ul&gt;
         3867 &lt;/li&gt;
         3868 &lt;li&gt;The idea of programming is done through the metaphor of teaching the Turtle a new word, like SQUARE or TRIANGLE&lt;/li&gt;
         3869 &lt;li&gt;This is obviously fun, but also powerful learning is happening&lt;/li&gt;
         3870 &lt;li&gt;Like other builders, children appropriate to their own use materials they find around them, mostly importantly the models and metaphors suggested by surrounding culture&lt;/li&gt;
         3871 &lt;li&gt;Active, self-directed, recognizable personal purpose, source of power, doing something with knowledge --&gt; all reasons to prefer using LOGO over watching educational programming on TV&lt;/li&gt;
         3872 &lt;li&gt;Importance of learning systematic procedures and debugging them&lt;/li&gt;
         3873 &lt;li&gt;Learning to be a master programmer is learning to become highly skilled at isolating and fixing bugs&lt;/li&gt;
         3874 &lt;li&gt;Programs are not WRONG or RIGHT -&gt; but they are fixable&lt;/li&gt;
         3875 &lt;li&gt;Deliberately thinking like a computer is extremely valuable (step by step, literal, mechanical). Thinking like a computer is just one &quot;style of thinking&quot;, and helps students understand that there are different ways of thinking.&lt;/li&gt;
         3876 &lt;li&gt;Computers are not something that &quot;rots our brains&quot;&lt;/li&gt;
         3877 &lt;/ul&gt;
         3878 &lt;h3&gt;Teaching without curriculum&lt;/h3&gt;
         3879 &lt;ul&gt;
         3880 &lt;li&gt;Doesn&apos;t mean free-form, spontaneous classrooms or simply &quot;leaving the child alone&quot;&lt;/li&gt;
         3881 &lt;li&gt;
         3882 &lt;p&gt;Teaching without curriculum means supporting children as they build their own intellectual structures&lt;/p&gt;
         3883 &lt;ul&gt;
         3884 &lt;li&gt;Planting new constructive elements&lt;/li&gt;
         3885 &lt;li&gt;Eliminating noxious ones&lt;/li&gt;
         3886 &lt;/ul&gt;
         3887 &lt;/li&gt;
         3888 &lt;li&gt;This is an ambitious task, and harder that a mere curriculum change&lt;/li&gt;
         3889 &lt;li&gt;Educators should be anthropologists and work with the cultural materials of the time&lt;/li&gt;
         3890 &lt;li&gt;He doesn&apos;t recommend BASIC as a learning language&lt;/li&gt;
         3891 &lt;li&gt;
         3892 &lt;p&gt;BASIC is to computation what QWERTY is to typing&lt;/p&gt;
         3893 &lt;ul&gt;
         3894 &lt;li&gt;People say BASIC is easy to learn because of its small vocabulary, but that just gets extremely clunky when working on something more than just a toy problem&lt;/li&gt;
         3895 &lt;/ul&gt;
         3896 &lt;/li&gt;
         3897 &lt;/ul&gt;
         3898 &lt;h3&gt;Why is it hard to change education&lt;/h3&gt;
         3899 &lt;ul&gt;
         3900 &lt;li&gt;
         3901 &lt;p&gt;Radical change is possible, directly tied to the impact of the computer&lt;/p&gt;
         3902 &lt;ul&gt;
         3903 &lt;li&gt;Unfortunately, conservatism in the world of education is a self-perpetuating social phenomenon&lt;/li&gt;
         3904 &lt;li&gt;But as individuals get computers, education can become a private act, an open marketplace, a Renaissance of thinking about education&lt;/li&gt;
         3905 &lt;/ul&gt;
         3906 &lt;/li&gt;
         3907 &lt;li&gt;
         3908 &lt;p&gt;Our culture has unneeded split between &quot;humanities&quot; and &quot;science&quot;&lt;/p&gt;
         3909 &lt;ul&gt;
         3910 &lt;li&gt;But Plato was both&lt;/li&gt;
         3911 &lt;/ul&gt;
         3912 &lt;/li&gt;
         3913 &lt;li&gt;Computer can break down this line&lt;/li&gt;
         3914 &lt;li&gt;
         3915 &lt;p&gt;&quot;Math&quot; just means &quot;learning&quot; in Greek&lt;/p&gt;
         3916 &lt;ul&gt;
         3917 &lt;li&gt;e.g. &quot;polymath&quot; is a person of many learnings&lt;/li&gt;
         3918 &lt;li&gt;&quot;Mathetic&quot; means &quot;having to do with &quot;learning&quot;&lt;/li&gt;
         3919 &lt;/ul&gt;
         3920 &lt;/li&gt;
         3921 &lt;li&gt;Children begin their lives as eager and competant learners. They have to learn to have trouble with learning in general and mathematics in particular&lt;/li&gt;
         3922 &lt;li&gt;
         3923 &lt;p&gt;Conservation of liquids example from Piaget&lt;/p&gt;
         3924 &lt;ul&gt;
         3925 &lt;li&gt;Children take a while to learn this principle&lt;/li&gt;
         3926 &lt;li&gt;They have their own coherent world view (taller glass must have more liquid)&lt;/li&gt;
         3927 &lt;li&gt;This model was spontaneously developed by them&lt;/li&gt;
         3928 &lt;/ul&gt;
         3929 &lt;/li&gt;
         3930 &lt;li&gt;Mathophobia limit&apos;s people&apos;s lives. Deficiency becomes part of their identity. It is a self-reinforcing taboo&lt;/li&gt;
         3931 &lt;li&gt;&quot;Cchool math&quot; is not the same as &quot;mathematics&quot;&lt;/li&gt;
         3932 &lt;/ul&gt;
         3933 &lt;h3&gt;Turtle geometry&lt;/h3&gt;
         3934 &lt;ul&gt;
         3935 &lt;li&gt;
         3936 &lt;p&gt;There are multiple types of geometry&lt;/p&gt;
         3937 &lt;ul&gt;
         3938 &lt;li&gt;Turtle geometry = computational (tracks Position and Heading of the Turtle)&lt;/li&gt;
         3939 &lt;li&gt;Euclidean geometry = logical (tracks Position and Point)&lt;/li&gt;
         3940 &lt;li&gt;Descartes geometry = algebraic&lt;/li&gt;
         3941 &lt;/ul&gt;
         3942 &lt;/li&gt;
         3943 &lt;li&gt;
         3944 &lt;p&gt;Geometry arises when child asks &quot;How can I make the Turtle draw a circle?&quot;&lt;/p&gt;
         3945 &lt;ul&gt;
         3946 &lt;li&gt;A good teacher doesn&apos;t answer the question, but encourages the student to act it out. Literally, to have the child &quot;play Turtle&quot; themselves. What steps do they take to move in a circle?&lt;/li&gt;
         3947 &lt;/ul&gt;
         3948 &lt;/li&gt;
         3949 &lt;li&gt;Learning to &quot;program computers&quot; is done by teaching the Turtle a new word (aka subroutine / function) like CIRCLE, SQUARE, TRIANGLE&lt;/li&gt;
         3950 &lt;li&gt;Along the way, students learn about &lt;strong&gt;modularity&lt;/strong&gt; and &lt;strong&gt;state&lt;/strong&gt;&lt;/li&gt;
         3951 &lt;li&gt;Don&apos;t forget the error - instead study the bugs!&lt;/li&gt;
         3952 &lt;li&gt;Try to make sense of what you want to learn&lt;/li&gt;
         3953 &lt;li&gt;
         3954 &lt;p&gt;&lt;strong&gt;Syntonic learning&lt;/strong&gt;&lt;/p&gt;
         3955 &lt;ul&gt;
         3956 &lt;li&gt;The Turtle is body syntonic - firmly related to child&apos;s sense and knowledge about their own bodies&lt;/li&gt;
         3957 &lt;li&gt;Also is &quot;ego syntonic&quot; - the Turtle is coherent with child&apos;s sense of themselves with things like (e.g. intentions, goals, desires, dislikes)&lt;/li&gt;
         3958 &lt;/ul&gt;
         3959 &lt;/li&gt;
         3960 &lt;li&gt;Turtle geometry is learnable because it is syntonic.&lt;/li&gt;
         3961 &lt;li&gt;Turtle geometry encourages deliberate use of problem-solving&lt;/li&gt;
         3962 &lt;li&gt;
         3963 &lt;p&gt;&lt;strong&gt;George Polya&lt;/strong&gt;&lt;/p&gt;
         3964 &lt;ul&gt;
         3965 &lt;li&gt;Came up with a general method for problem solving&lt;/li&gt;
         3966 &lt;li&gt;Turtle geometry lends itself well to Polya&apos;s methods (e.g. &quot;look for something like it&quot;)&lt;/li&gt;
         3967 &lt;li&gt;Turtle geometry is great for learning heuristic thinking&lt;/li&gt;
         3968 &lt;/ul&gt;
         3969 &lt;/li&gt;
         3970 &lt;li&gt;Disassociative learning is something like memorizing the multiplication tables&lt;/li&gt;
         3971 &lt;li&gt;
         3972 &lt;p&gt;Bill, a fifth grader, suggests this unfortunate way to learn multiplication tables&lt;/p&gt;
         3973 &lt;ul&gt;
         3974 &lt;li&gt;&quot;Make your mind a blank and saying it over and over until you know it&quot;&lt;/li&gt;
         3975 &lt;/ul&gt;
         3976 &lt;/li&gt;
         3977 &lt;li&gt;Turtle geometry on the other hand has rhythm, movement, navigational knowledger&lt;/li&gt;
         3978 &lt;li&gt;
         3979 &lt;p&gt;Differential Calculus&lt;/p&gt;
         3980 &lt;ul&gt;
         3981 &lt;li&gt;Differential calculus is ability to describe growth by what is happening at the growing tip&lt;/li&gt;
         3982 &lt;li&gt;Newton modeled the motions of the planets with it&lt;/li&gt;
         3983 &lt;li&gt;The Turtle&apos;s circle program ( FORWARD 1, RIGHTTURN 1) is a set of DIFFERENTIAL instructions!&lt;/li&gt;
         3984 &lt;/ul&gt;
         3985 &lt;/li&gt;
         3986 &lt;li&gt;
         3987 &lt;p&gt;Many students come to Turtle geometry hating numbers as alien concepts, and leave it loving them. For example, angles.&lt;/p&gt;
         3988 &lt;ul&gt;
         3989 &lt;li&gt;Turtle geometry shows students that angles have body syntoncity with compass navigation. The Turtle parallels this&lt;/li&gt;
         3990 &lt;/ul&gt;
         3991 &lt;/li&gt;
         3992 &lt;li&gt;Idea of a &quot;variable&quot; in programming: using a symbol to name an unknown entity&lt;/li&gt;
         3993 &lt;li&gt;
         3994 &lt;p&gt;Idea of &quot;recursion&quot; in programming: a never ending process.&lt;/p&gt;
         3995 &lt;ul&gt;
         3996 &lt;li&gt;Kids already love the idea / fantasy of something &quot;going on forever&quot; (with 2 wishes, always use the second wish to wish for two more wishes!)3&lt;/li&gt;
         3997 &lt;/ul&gt;
         3998 &lt;/li&gt;
         3999 &lt;li&gt;
         4000 &lt;p&gt;The Total Turtle Trip Theorem&lt;/p&gt;
         4001 &lt;ul&gt;
         4002 &lt;li&gt;If a Turtle tasks a trip around the boundaries of any area and ends up in the state in which it started (direction and place), then the sum of all the turns will be 360 degrees&lt;/li&gt;
         4003 &lt;/ul&gt;
         4004 &lt;/li&gt;
         4005 &lt;li&gt;One learns to enjoy and to respect the power of powerful ideas. One learns that the most powerful idea is the idea of powerful ideas.&lt;/li&gt;
         4006 &lt;li&gt;Computers can influence the language we use to talk about ourselves (e.g. input, output, feedback)&lt;/li&gt;
         4007 &lt;/ul&gt;
         4008 &lt;h3&gt;Structure programming&lt;/h3&gt;
         4009 &lt;ul&gt;
         4010 &lt;li&gt;Learn to write subprocedures, aka &quot;mind-sized bites&quot;&lt;/li&gt;
         4011 &lt;li&gt;It&apos;s possible to build a large intellectual system without ever making a step that cannot be comprehended, using hierachy of subprocedures&lt;/li&gt;
         4012 &lt;li&gt;Example of teaching the Turtle to draw a person can use multiple subprocedures, each of which is easily understood&lt;/li&gt;
         4013 &lt;li&gt;Computers give enough flexibility and power so that child&apos;s exploration can be genuine and their own&lt;/li&gt;
         4014 &lt;li&gt;&quot;Brute force&quot; would be trying to have the Turtle draw the person without any subprocedures - the straight line approach.&lt;/li&gt;
         4015 &lt;li&gt;Brute force with no internal structure is not a good model for computer programming&lt;/li&gt;
         4016 &lt;li&gt;For example, in real life, juggling is actually composed of many subroutines&lt;/li&gt;
         4017 &lt;li&gt;Introduces notion of timing:
         4018 `* parallel processes vs serial processes&lt;/li&gt;
         4019 &lt;li&gt;Introduce notion of condition logic with The &quot;WHEN demon&quot;&lt;/li&gt;
         4020 &lt;li&gt;&quot;When something happens, the demon pounces out and does its own action&quot;&lt;/li&gt;
         4021 &lt;/ul&gt;
         4022 &lt;h3&gt;Debugging&lt;/h3&gt;
         4023 &lt;ul&gt;
         4024 &lt;li&gt;Children seem to have a resistance to debugging&lt;/li&gt;
         4025 &lt;li&gt;They would rather &quot;throw it out&quot; and start over&lt;/li&gt;
         4026 &lt;li&gt;Seemingly, they want to do it correctly in one shot&lt;/li&gt;
         4027 &lt;li&gt;We can empathize, because a bug seems like WRONG or MISTAKE or BAG&lt;/li&gt;
         4028 &lt;li&gt;Kids like that computers can remove any trace of their errors&lt;/li&gt;
         4029 &lt;li&gt;But errors and debugging are good!&lt;/li&gt;
         4030 &lt;li&gt;We must learn to study what happened and understand what went wrong. Through that understanding, we can fix the bug.&lt;/li&gt;
         4031 &lt;li&gt;Computers will help children &quot;believe in&quot; debugging&lt;/li&gt;
         4032 &lt;li&gt;Contact with LOGO and the Turtle eventually, gradually, underminds the long-standing resistance to debugging and subprocedures&lt;/li&gt;
         4033 &lt;li&gt;With LOGO, the teacher is also a learner, and everyone makes mistakes&lt;/li&gt;
         4034 &lt;li&gt;Children know when teacher &quot;fakes it&quot; with &quot;let&apos;s try this one together&quot; - they see right through this.&lt;/li&gt;
         4035 &lt;li&gt;But LOGO makes that situation feel genuine, because the teacher is trying to figure it out, too, and they make mistakes together&lt;/li&gt;
         4036 &lt;li&gt;Real intellectual collaboration - together they try to understand the computer and get it to do what they want&lt;/li&gt;
         4037 &lt;li&gt;Affirmation of the power of ideas and the power of the mind!&lt;/li&gt;
         4038 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Writer's Bane]]></title><description><![CDATA[That's right, it's a post about writing advice. Not from me! Goodness, no. Instead, here's a compendium of books and other odd bits that I…]]></description><link>https://www.charlieharrington.com/writer&apos;s-bane</link><guid isPermaLink="false">https://www.charlieharrington.com/writer&apos;s-bane</guid><pubDate>Sun, 26 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;That&apos;s right, it&apos;s a post about writing advice.&lt;/p&gt;
         4039 &lt;p&gt;Not from me! Goodness, no.&lt;/p&gt;
         4040 &lt;p&gt;Instead, here&apos;s a compendium of books and other odd bits that I&apos;ve found helpful in my quest. I&apos;ll keep this updated when I encounter something new and useful and surprising.&lt;/p&gt;
         4041 &lt;p&gt;I hope this guide proves useful when you&apos;re looking to read about how to write instead of just sitting down and doing the deed.&lt;/p&gt;
         4042 &lt;h2&gt;Books&lt;/h2&gt;
         4043 &lt;ul&gt;
         4044 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1607748894/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1607748894&amp;#x26;linkId=964c14964dbe0dc13bcfacb3a3594f85&quot;&gt;Story Genius&lt;/a&gt; - Lisa Cron&lt;/strong&gt;: Learn how to write a riveting story using &lt;em&gt;brain science&lt;/em&gt; - make sure to bring a pen and a notebook along for the ride!&lt;/li&gt;
         4045 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1439156816/ref=as_li_tl?ie=UTF8&amp;#x26;camp=1789&amp;#x26;creative=9325&amp;#x26;creativeASIN=1439156816&amp;#x26;linkCode=as2&amp;#x26;tag=whatrocks09-20&amp;#x26;linkId=dc4290e47818db79d2fa6b284f9f3e1b&quot;&gt;On Writing&lt;/a&gt; - Stephen King&lt;/strong&gt;: King&apos;s biographical guidebook to his craft.&lt;/li&gt;
         4046 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0385480016/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0385480016&amp;#x26;linkId=3cb65bd21cb9764f04be702fe152c1ff&quot;&gt;Bird by Bird&lt;/a&gt; - Anne Lamott&lt;/strong&gt;: The best advice you&apos;ll get about life and writing.&lt;/li&gt;
         4047 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1877741094/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1877741094&amp;#x26;linkId=e40ad924992964aff49708d25cd7fed0&quot;&gt;Zen in the Art of Writing&lt;/a&gt; - Ray Bradbury&lt;/strong&gt;: How to delight in the joy of BEING ALIVE and also write about it.&lt;/li&gt;
         4048 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://amzn.to/2IWZ1B3&quot;&gt;Draft No. 4&lt;/a&gt; - John McPhee&lt;/strong&gt;: The master of creative nonfiction gives you a glimpse behind the curtain, and it&apos;s mostly 3x5 note cards and some strange vintage word processing software.&lt;/li&gt;
         4049 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/020530902X/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=020530902X&amp;#x26;linkId=d79e4ea383d10042e72b29d316802112&quot;&gt;The Elements of Style&lt;/a&gt; - Strunk and White&lt;/strong&gt;: Don&apos;t throw this out after high school English. It&apos;s tiny. Keep it in the bathroom. Don&apos;t tell anyone.&lt;/li&gt;
         4050 &lt;/ul&gt;
         4051 &lt;h2&gt;Podcasts&lt;/h2&gt;
         4052 &lt;ul&gt;
         4053 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.askthebards.com/&quot;&gt;Ask the Bards&lt;/a&gt; - Delilah S. Dawson and Kevin Hearne&lt;/strong&gt;: A weekly Twitter Q+A with best buddies and writing partners. You&apos;ll want to be friends with them.&lt;/li&gt;
         4054 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/launch/id1319436103?mt=2&quot;&gt;Launch&lt;/a&gt; - John August&lt;/strong&gt;: What happens when a famous screenwriter and podcaster decides to write a middle grade children&apos;s novel called Arlo Finch? He records a charmed six-part podcast about the process of finding an agent, signing a deal, editing, visiting the book-binding factory, and then going on book-tour.&lt;/li&gt;
         4055 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://johnaugust.com/scriptnotes&quot;&gt;Scriptnotes&lt;/a&gt; - John August and Craig Mazin&lt;/strong&gt;: &quot;A podcast about screenwriting and things that are interesting to screenwriters.&quot; This isn&apos;t exactly about writing books, but who cares. It&apos;s my favorite weekly podcast about an industry I don&apos;t work in. And also, &quot;One Cool Thing.&quot;&lt;/li&gt;
         4056 &lt;/ul&gt;
         4057 &lt;h2&gt;Articles&lt;/h2&gt;
         4058 &lt;ul&gt;
         4059 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://terribleminds.com/ramble/2013/08/13/25-steps-to-being-a-traditionally-published-author-lazy-bastard-edition/&quot;&gt;25 Steps to Being a Traditionally Published Author: Lazy Bastard Edition&lt;/a&gt; - Delilah S. Dawson&lt;/strong&gt;: If you&apos;re looking for a hilarious and possibly NSFW roadmap to seeing your book in an airport bookstore, look no further.&lt;/li&gt;
         4060 &lt;/ul&gt;
         4061 &lt;h2&gt;Newsletters&lt;/h2&gt;
         4062 &lt;ul&gt;
         4063 &lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://www.robinsloan.com/overworld/&quot;&gt;The Perils of the Overworld - Robin Sloan&lt;/a&gt;&lt;/strong&gt;: What happens when an engineer-author-olive-oil-maker makes a video game? He&apos;s not sure either. &lt;/li&gt;
         4064 &lt;/ul&gt;
         4065 &lt;p&gt;&lt;span
         4066       class=&quot;gatsby-resp-image-wrapper&quot;
         4067       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 332px; &quot;
         4068     &gt;
         4069       &lt;a
         4070     class=&quot;gatsby-resp-image-link&quot;
         4071     href=&quot;/static/51db8e397a54c68f2f1d0c7a6e245409/71bac/durin.jpg&quot;
         4072     style=&quot;display: block&quot;
         4073     target=&quot;_blank&quot;
         4074     rel=&quot;noopener&quot;
         4075   &gt;
         4076     &lt;span
         4077     class=&quot;gatsby-resp-image-background-image&quot;
         4078     style=&quot;padding-bottom: 135.58282208588957%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAIBBAUD/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAGldzjPRCS5azmdhcgT/8QAHhAAAQQBBQAAAAAAAAAAAAAAAQACAxIhERMUIjH/2gAIAQEAAQUCheIzyS9E5jbYnq5N9m29UEDmxX//xAAVEQEBAAAAAAAAAAAAAAAAAAARIP/aAAgBAwEBPwFj/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQIg/9oACAECAQE/AWBx/8QAGxAAAQQDAAAAAAAAAAAAAAAAAQAQESECEiD/2gAIAQEABj8Ck2jGIFPDjTn/xAAbEAEAAwEBAQEAAAAAAAAAAAABABEhMUFxYf/aAAgBAQABPyGgXxBZKLNusZTyLWNfs7vmM3yZH2VLvNuFp2Jieo39n//aAAwDAQACAAMAAAAQcMa8/8QAGBEAAwEBAAAAAAAAAAAAAAAAAAERECH/2gAIAQMBAT8QTqD6KTP/xAAXEQEBAQEAAAAAAAAAAAAAAAABABEx/9oACAECAQE/EGdewzZf/8QAHxABAAMAAQQDAAAAAAAAAAAAAQARIUExUWFxgZGh/9oACAEBAAE/ELO3SHfHSXZsOD7hMKX07QSDeri8lukN6P34lcBXqLhVRdhe1OutgAvhkM3exotMJQqHgn//2Q==&apos;); background-size: cover; display: block;&quot;
         4079   &gt;&lt;/span&gt;
         4080   &lt;img
         4081         class=&quot;gatsby-resp-image-image&quot;
         4082         alt=&quot;balrog&quot;
         4083         title=&quot;balrog&quot;
         4084         src=&quot;/static/51db8e397a54c68f2f1d0c7a6e245409/71bac/durin.jpg&quot;
         4085         srcset=&quot;/static/51db8e397a54c68f2f1d0c7a6e245409/d2f63/durin.jpg 163w,
         4086 /static/51db8e397a54c68f2f1d0c7a6e245409/c989d/durin.jpg 325w,
         4087 /static/51db8e397a54c68f2f1d0c7a6e245409/71bac/durin.jpg 332w&quot;
         4088         sizes=&quot;(max-width: 332px) 100vw, 332px&quot;
         4089         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4090         loading=&quot;lazy&quot;
         4091       /&gt;
         4092   &lt;/a&gt;
         4093     &lt;/span&gt;&lt;/p&gt;
         4094 &lt;blockquote&gt;
         4095 &lt;p&gt;&quot;Write, you fools!&quot; he cried, and was gone.&lt;/p&gt;
         4096 &lt;/blockquote&gt;</content:encoded></item><item><title><![CDATA[Notes on Nike Missile Site SF-88L]]></title><description><![CDATA[Many, many days ago, when humans could still roam the Earth for non-essential activities, our little crew visited Nike Missile Site SF-88L…]]></description><link>https://www.charlieharrington.com/notes-on-nike-missile-site-sf-88l</link><guid isPermaLink="false">https://www.charlieharrington.com/notes-on-nike-missile-site-sf-88l</guid><pubDate>Tue, 07 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Many, many days ago, when humans could still roam the Earth for non-essential activities, our little crew visited Nike Missile Site SF-88L as another destination in our &lt;a href=&quot;/notes-on-map-and-compass-navigation&quot;&gt;sixth grade class-trip&lt;/a&gt; whistle-stop tour of nerdy places in the Bay Area.&lt;/p&gt;
         4097 &lt;p&gt;&lt;span
         4098       class=&quot;gatsby-resp-image-wrapper&quot;
         4099       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4100     &gt;
         4101       &lt;a
         4102     class=&quot;gatsby-resp-image-link&quot;
         4103     href=&quot;/static/1789e9ba45b720280866164b35c25854/d2602/site.jpg&quot;
         4104     style=&quot;display: block&quot;
         4105     target=&quot;_blank&quot;
         4106     rel=&quot;noopener&quot;
         4107   &gt;
         4108     &lt;span
         4109     class=&quot;gatsby-resp-image-background-image&quot;
         4110     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMCBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAXxprcaQkn//xAAcEAADAAEFAAAAAAAAAAAAAAAAAQIDERITISL/2gAIAQEAAQUC2w5Sxng04zuhTEL/xAAWEQADAAAAAAAAAAAAAAAAAAAAAhP/2gAIAQMBAT8BkpNT/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAETAv/aAAgBAgEBPwGrK6P/xAAbEAACAwADAAAAAAAAAAAAAAAAAQIRIQMxMv/aAAgBAQAGPwK0z0dmPCUrVNlcms//xAAaEAADAQEBAQAAAAAAAAAAAAAAAREhMUFR/9oACAEBAAE/IV70VQxYtXVBy4Mtl6N0YzmkgL7n/9oADAMBAAIAAwAAABBLL//EABcRAAMBAAAAAAAAAAAAAAAAAAABIWH/2gAIAQMBAT8QhUbH/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAhYf/aAAgBAgEBPxAVy43/xAAcEAEAAgMBAQEAAAAAAAAAAAABETEAIUFRYYH/2gAIAQEAAT8QMIggQ0R3ItQdBHt5qi1+4stkCTE/UL7g3lSIkBWvPcK3IQWBorP/2Q==&apos;); background-size: cover; display: block;&quot;
         4111   &gt;&lt;/span&gt;
         4112   &lt;img
         4113         class=&quot;gatsby-resp-image-image&quot;
         4114         alt=&quot;site&quot;
         4115         title=&quot;site&quot;
         4116         src=&quot;/static/1789e9ba45b720280866164b35c25854/6aca1/site.jpg&quot;
         4117         srcset=&quot;/static/1789e9ba45b720280866164b35c25854/d2f63/site.jpg 163w,
         4118 /static/1789e9ba45b720280866164b35c25854/c989d/site.jpg 325w,
         4119 /static/1789e9ba45b720280866164b35c25854/6aca1/site.jpg 650w,
         4120 /static/1789e9ba45b720280866164b35c25854/7c09c/site.jpg 975w,
         4121 /static/1789e9ba45b720280866164b35c25854/01ab0/site.jpg 1300w,
         4122 /static/1789e9ba45b720280866164b35c25854/d2602/site.jpg 4032w&quot;
         4123         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4124         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4125         loading=&quot;lazy&quot;
         4126       /&gt;
         4127   &lt;/a&gt;
         4128     &lt;/span&gt;&lt;/p&gt;
         4129 &lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Nike_Missile_Site_SF-88&quot;&gt;Nike Missile Site SF 88-L&lt;/a&gt; is just over the Golden Gate Bridge in the Marin headlands (essentially behind Hawk Hill), so it&apos;s a short drive or hike or bike ride away from the city.&lt;/p&gt;
         4130 &lt;p&gt;&lt;span
         4131       class=&quot;gatsby-resp-image-wrapper&quot;
         4132       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4133     &gt;
         4134       &lt;a
         4135     class=&quot;gatsby-resp-image-link&quot;
         4136     href=&quot;/static/d115d74ea742126d2c24af84f36d45dd/d2602/radar.jpg&quot;
         4137     style=&quot;display: block&quot;
         4138     target=&quot;_blank&quot;
         4139     rel=&quot;noopener&quot;
         4140   &gt;
         4141     &lt;span
         4142     class=&quot;gatsby-resp-image-background-image&quot;
         4143     style=&quot;padding-bottom: 50.306748466257666%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAKABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDAQT/xAAVAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABbEjSXWVA/wD/xAAaEAACAgMAAAAAAAAAAAAAAAAAEgECAyFC/9oACAEBAAEFAkEgWpi3U5//xAAWEQADAAAAAAAAAAAAAAAAAAAAARP/2gAIAQMBAT8BmiaP/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECAxP/2gAIAQIBAT8BdzNpH//EABwQAAEDBQAAAAAAAAAAAAAAAAACAzEQESFScf/aAAgBAQAGPwLJJI5fWieH/8QAHBABAAICAwEAAAAAAAAAAAAAAQARMUEhUWHR/9oACAEBAAE/Ia30ieCw2mNVy9Q+yjDrP//aAAwDAQACAAMAAAAQ6O//xAAWEQEBAQAAAAAAAAAAAAAAAAABAEH/2gAIAQMBAT8QNmJ//8QAFhEBAQEAAAAAAAAAAAAAAAAAAQAx/9oACAECAQE/EAYTX//EABwQAQADAAIDAAAAAAAAAAAAAAEAESExQVFxgf/aAAgBAQABPxCo0PaPiU9uQBmfAXGMWJFXWMTreih+QKoajnM//9k=&apos;); background-size: cover; display: block;&quot;
         4144   &gt;&lt;/span&gt;
         4145   &lt;img
         4146         class=&quot;gatsby-resp-image-image&quot;
         4147         alt=&quot;radar&quot;
         4148         title=&quot;radar&quot;
         4149         src=&quot;/static/d115d74ea742126d2c24af84f36d45dd/6aca1/radar.jpg&quot;
         4150         srcset=&quot;/static/d115d74ea742126d2c24af84f36d45dd/d2f63/radar.jpg 163w,
         4151 /static/d115d74ea742126d2c24af84f36d45dd/c989d/radar.jpg 325w,
         4152 /static/d115d74ea742126d2c24af84f36d45dd/6aca1/radar.jpg 650w,
         4153 /static/d115d74ea742126d2c24af84f36d45dd/7c09c/radar.jpg 975w,
         4154 /static/d115d74ea742126d2c24af84f36d45dd/01ab0/radar.jpg 1300w,
         4155 /static/d115d74ea742126d2c24af84f36d45dd/d2602/radar.jpg 4032w&quot;
         4156         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4157         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4158         loading=&quot;lazy&quot;
         4159       /&gt;
         4160   &lt;/a&gt;
         4161     &lt;/span&gt;&lt;/p&gt;
         4162 &lt;p&gt;Check out its &lt;a href=&quot;https://www.nps.gov/goga/nike-missile-site.htm&quot;&gt;National Park Service website&lt;/a&gt; for its operating hours and tour times. As you might expect, it looks like the site is closed for the time being. If you&apos;re lucky (and can plan ahead), try to go on the first Saturday of the month, when its staffed by volunteer veterans who worked at various Nike sites around the country. &lt;/p&gt;
         4163 &lt;p&gt;We got lucky, and the veterans were both hilarious and super interesting. Added bonus: they were also able to operate some of the terrifying machinery, like so:&lt;/p&gt;
         4164 &lt;p&gt;&lt;img src=&quot;/c8c202158e218ccd053886bd110d0290/animation.gif&quot; alt=&quot;missileloading&quot;&gt;&lt;/p&gt;
         4165 &lt;p&gt;I brought along my little notebook and took copious notes while they were talking (which I&apos;ve reproduced below). &lt;/p&gt;
         4166 &lt;p&gt;&lt;span
         4167       class=&quot;gatsby-resp-image-wrapper&quot;
         4168       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4169     &gt;
         4170       &lt;a
         4171     class=&quot;gatsby-resp-image-link&quot;
         4172     href=&quot;/static/f175d4c895d6921cadc6782d98ad3176/d2602/history.jpg&quot;
         4173     style=&quot;display: block&quot;
         4174     target=&quot;_blank&quot;
         4175     rel=&quot;noopener&quot;
         4176   &gt;
         4177     &lt;span
         4178     class=&quot;gatsby-resp-image-background-image&quot;
         4179     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAQP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAeTSLluNI//EABgQAQEBAQEAAAAAAAAAAAAAAAIBEgAD/9oACAEBAAEFAto8Lu5veldspLJ13//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPwGBf//EABURAQEAAAAAAAAAAAAAAAAAAAAh/9oACAECAQE/Aar/xAAbEAACAgMBAAAAAAAAAAAAAAAAEQECEBIhQf/aAAgBAQAGPwKJmqYsds9T2Gcsf//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExQWH/2gAIAQEAAT8h1T4XkN6H2LLsBFjWkNdOklBUq62f/9oADAMBAAIAAwAAABB77//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQMBAT8QA6SG3//EABcRAQEBAQAAAAAAAAAAAAAAAAEAETH/2gAIAQIBAT8Qxcgn/8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFBcaH/2gAIAQEAAT8QTUJ27chkBFsrM6VeUeIpMAcPXOxdGodFt/CNRixTcn//2Q==&apos;); background-size: cover; display: block;&quot;
         4180   &gt;&lt;/span&gt;
         4181   &lt;img
         4182         class=&quot;gatsby-resp-image-image&quot;
         4183         alt=&quot;history&quot;
         4184         title=&quot;history&quot;
         4185         src=&quot;/static/f175d4c895d6921cadc6782d98ad3176/6aca1/history.jpg&quot;
         4186         srcset=&quot;/static/f175d4c895d6921cadc6782d98ad3176/d2f63/history.jpg 163w,
         4187 /static/f175d4c895d6921cadc6782d98ad3176/c989d/history.jpg 325w,
         4188 /static/f175d4c895d6921cadc6782d98ad3176/6aca1/history.jpg 650w,
         4189 /static/f175d4c895d6921cadc6782d98ad3176/7c09c/history.jpg 975w,
         4190 /static/f175d4c895d6921cadc6782d98ad3176/01ab0/history.jpg 1300w,
         4191 /static/f175d4c895d6921cadc6782d98ad3176/d2602/history.jpg 4032w&quot;
         4192         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4193         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4194         loading=&quot;lazy&quot;
         4195       /&gt;
         4196   &lt;/a&gt;
         4197     &lt;/span&gt;&lt;/p&gt;
         4198 &lt;p&gt;But first I wanted to share a favorite moment.&lt;/p&gt;
         4199 &lt;p&gt;Near the end of the tour, we were led underground to where they kept the Nike Hercules missiles. Then, one of the veterans pressed a giant yellow button, which opened a metal hatch and began to lift one of the missiles above ground. This was a common procedure for the soldiers - they&apos;d have to run through drills constantly, at a moment&apos;s notice.&lt;/p&gt;
         4200 &lt;p&gt;Meanwhile, as we&apos;re watching this gigantic warhead move skyward a hydraulic lift, I can&apos;t help but be distracted: Where have I heard these sounds before?&lt;/p&gt;
         4201 &lt;audio controls=&quot;controls&quot;&gt;
         4202   &lt;source type=&quot;audio/mp3&quot; src=&quot;/5d9feeb82b2ba991d08069eace7479b3/trash_compactor.mp3&quot;&gt;&lt;/source&gt;
         4203 &lt;/audio&gt;
         4204 &lt;p&gt;That&apos;s when the veteran asked, &quot;Anyone ever seen Star Wars?&quot;&lt;/p&gt;
         4205 &lt;p&gt;My hand burst into the air like Hermoine&apos;s.&lt;/p&gt;
         4206 &lt;p&gt;Apparently, George Lucas visited the Nike missile site before filming &lt;em&gt;A New Hope&lt;/em&gt;, and he found some inspiration for this scene:&lt;/p&gt;
         4207 &lt;p&gt;&lt;span
         4208       class=&quot;gatsby-resp-image-wrapper&quot;
         4209       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 639px; &quot;
         4210     &gt;
         4211       &lt;a
         4212     class=&quot;gatsby-resp-image-link&quot;
         4213     href=&quot;/static/71d4a050bc2b68ac607f8fc3088a2aa7/df7e7/trash.jpg&quot;
         4214     style=&quot;display: block&quot;
         4215     target=&quot;_blank&quot;
         4216     rel=&quot;noopener&quot;
         4217   &gt;
         4218     &lt;span
         4219     class=&quot;gatsby-resp-image-background-image&quot;
         4220     style=&quot;padding-bottom: 66.87116564417178%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMCBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAct6mxWImn//xAAaEAEBAAIDAAAAAAAAAAAAAAABAhIhAAMR/9oACAEBAAEFAid3LinnOlzrJKXf/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABoQAAICAwAAAAAAAAAAAAAAAAABEBESYZH/2gAIAQEABj8CimYvptR//8QAHBAAAgICAwAAAAAAAAAAAAAAAAERITFRQWFx/9oACAEBAAE/IXQkayTuIJOB9jNuqTgaC5bkc9vT/9oADAMBAAIAAwAAABC/H//EABYRAQEBAAAAAAAAAAAAAAAAAAEQIf/aAAgBAwEBPxAcj//EABcRAQADAAAAAAAAAAAAAAAAAAABETH/2gAIAQIBAT8QnVP/xAAeEAEAAgIBBQAAAAAAAAAAAAABACERMVFBYXGBkf/aAAgBAQABPxDOcrQ4xcqLFclVEUANgcw0zqqLLPJ26xFomGb9Rwq/Sf/Z&apos;); background-size: cover; display: block;&quot;
         4221   &gt;&lt;/span&gt;
         4222   &lt;img
         4223         class=&quot;gatsby-resp-image-image&quot;
         4224         alt=&quot;trash&quot;
         4225         title=&quot;trash&quot;
         4226         src=&quot;/static/71d4a050bc2b68ac607f8fc3088a2aa7/df7e7/trash.jpg&quot;
         4227         srcset=&quot;/static/71d4a050bc2b68ac607f8fc3088a2aa7/d2f63/trash.jpg 163w,
         4228 /static/71d4a050bc2b68ac607f8fc3088a2aa7/c989d/trash.jpg 325w,
         4229 /static/71d4a050bc2b68ac607f8fc3088a2aa7/df7e7/trash.jpg 639w&quot;
         4230         sizes=&quot;(max-width: 639px) 100vw, 639px&quot;
         4231         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4232         loading=&quot;lazy&quot;
         4233       /&gt;
         4234   &lt;/a&gt;
         4235     &lt;/span&gt;&lt;/p&gt;
         4236 &lt;p&gt;This experience now lends more credence to the apocryphal story of how those Oakland shipping container lift thingies became proto AT-ATs for a day-dreaming Lucas.&lt;/p&gt;
         4237 &lt;p&gt;Anyway, as mentioned, here&apos;s what I scribbled down during the tour:&lt;/p&gt;
         4238 &lt;ul&gt;
         4239 &lt;li&gt;Nike is the &quot;goddess of victory&quot;&lt;/li&gt;
         4240 &lt;li&gt;
         4241 &lt;p&gt;Nike Missile Program&lt;/p&gt;
         4242 &lt;ul&gt;
         4243 &lt;li&gt;1954 - 1974&lt;/li&gt;
         4244 &lt;li&gt;233 sites across the USA&lt;/li&gt;
         4245 &lt;li&gt;Billions were spent&lt;/li&gt;
         4246 &lt;li&gt;Obsoleted by ICBMs (inter-continental ballistic missiles)&lt;/li&gt;
         4247 &lt;/ul&gt;
         4248 &lt;/li&gt;
         4249 &lt;li&gt;
         4250 &lt;p&gt;Two types of missiles:&lt;/p&gt;
         4251 &lt;ul&gt;
         4252 &lt;li&gt;(1) Ajax: liquid fuel, very dangerous to handle&lt;/li&gt;
         4253 &lt;li&gt;(2) Hercules: nuclear version&lt;/li&gt;
         4254 &lt;/ul&gt;
         4255 &lt;/li&gt;
         4256 &lt;li&gt;Many of the Army operators were ~19 years: &quot;We were kids.&quot;&lt;/li&gt;
         4257 &lt;li&gt;Missiles were radar operated&lt;/li&gt;
         4258 &lt;li&gt;No Nike missiles were ever &quot;officially launched&quot; at any enemy&lt;/li&gt;
         4259 &lt;li&gt;
         4260 &lt;p&gt;Each site had three radars:&lt;/p&gt;
         4261 &lt;ul&gt;
         4262 &lt;li&gt;(1) Friend or Foe?&lt;/li&gt;
         4263 &lt;li&gt;(2) Foe tracker&lt;/li&gt;
         4264 &lt;li&gt;(3) Missile tracker&lt;/li&gt;
         4265 &lt;/ul&gt;
         4266 &lt;/li&gt;
         4267 &lt;li&gt;
         4268 &lt;p&gt;The U.S. strategy for defending our coasts was:&lt;/p&gt;
         4269 &lt;ul&gt;
         4270 &lt;li&gt;(1) Navy will try first,&lt;/li&gt;
         4271 &lt;li&gt;(2) Then the Air Force,&lt;/li&gt;
         4272 &lt;li&gt;(3) Finally, the Army with Nike missiles as a last resort&lt;/li&gt;
         4273 &lt;/ul&gt;
         4274 &lt;/li&gt;
         4275 &lt;li&gt;
         4276 &lt;p&gt;Control operators had five words they could send to an in-flight missile:&lt;/p&gt;
         4277 &lt;ul&gt;
         4278 &lt;li&gt;(1) PITCH&lt;/li&gt;
         4279 &lt;li&gt;(2) YAW&lt;/li&gt;
         4280 &lt;li&gt;(3) ROLL&lt;/li&gt;
         4281 &lt;li&gt;(4) SELF-DESTRUCT&lt;/li&gt;
         4282 &lt;li&gt;(5) EXPLODE (they had to tell the missiles to explode!)&lt;/li&gt;
         4283 &lt;/ul&gt;
         4284 &lt;/li&gt;
         4285 &lt;li&gt;Operators went to annual training in New Mexico where they actually fired unarmed missiles&lt;/li&gt;
         4286 &lt;li&gt;Hercules had a 35 mile &quot;kill&quot; diameter&lt;/li&gt;
         4287 &lt;li&gt;There is an electromagnetic pulse during a nuclear explosion, which is why analog radar communication works (vs. digital)&lt;/li&gt;
         4288 &lt;/ul&gt;
         4289 &lt;p&gt;And here are some of the better photos from my phone. If you like old control panels for old computers (like me), then this place is your kind of place!&lt;/p&gt;
         4290 &lt;p&gt;&lt;span
         4291       class=&quot;gatsby-resp-image-wrapper&quot;
         4292       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4293     &gt;
         4294       &lt;a
         4295     class=&quot;gatsby-resp-image-link&quot;
         4296     href=&quot;/static/28a20b6ce46becb1226cd959be3cf0c7/d2602/buttons.jpg&quot;
         4297     style=&quot;display: block&quot;
         4298     target=&quot;_blank&quot;
         4299     rel=&quot;noopener&quot;
         4300   &gt;
         4301     &lt;span
         4302     class=&quot;gatsby-resp-image-background-image&quot;
         4303     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQX/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABYi2WOeYV/8QAHBAAAQMFAAAAAAAAAAAAAAAAAQAREgIDISMy/9oACAEBAAEFAo7YMK8EpmV3r//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAMBAQAAAAAAAAAAAAAAAAABERBh/9oACAEBAAY/AqNV1kH0ef/EABoQAAMBAQEBAAAAAAAAAAAAAAERIQAxQVH/2gAIAQEAAT8hK1LAXZirufuDqJQVxkoX1ZM4lT4tHb3/2gAMAwEAAgADAAAAEAQP/8QAFREBAQAAAAAAAAAAAAAAAAAAECH/2gAIAQMBAT8Qh//EABURAQEAAAAAAAAAAAAAAAAAAAAB/9oACAECAQE/EEf/xAAcEAACAgMBAQAAAAAAAAAAAAABEQAxIUFRYaH/2gAIAQEAAT8Qa6rtQLnkMe/Uxu1BLIRGxxDoSFQHx2IlxwIindwCXNw3S8n/2Q==&apos;); background-size: cover; display: block;&quot;
         4304   &gt;&lt;/span&gt;
         4305   &lt;img
         4306         class=&quot;gatsby-resp-image-image&quot;
         4307         alt=&quot;buttons&quot;
         4308         title=&quot;buttons&quot;
         4309         src=&quot;/static/28a20b6ce46becb1226cd959be3cf0c7/6aca1/buttons.jpg&quot;
         4310         srcset=&quot;/static/28a20b6ce46becb1226cd959be3cf0c7/d2f63/buttons.jpg 163w,
         4311 /static/28a20b6ce46becb1226cd959be3cf0c7/c989d/buttons.jpg 325w,
         4312 /static/28a20b6ce46becb1226cd959be3cf0c7/6aca1/buttons.jpg 650w,
         4313 /static/28a20b6ce46becb1226cd959be3cf0c7/7c09c/buttons.jpg 975w,
         4314 /static/28a20b6ce46becb1226cd959be3cf0c7/01ab0/buttons.jpg 1300w,
         4315 /static/28a20b6ce46becb1226cd959be3cf0c7/d2602/buttons.jpg 4032w&quot;
         4316         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4317         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4318         loading=&quot;lazy&quot;
         4319       /&gt;
         4320   &lt;/a&gt;
         4321     &lt;/span&gt;&lt;/p&gt;
         4322 &lt;p&gt;&lt;span
         4323       class=&quot;gatsby-resp-image-wrapper&quot;
         4324       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4325     &gt;
         4326       &lt;a
         4327     class=&quot;gatsby-resp-image-link&quot;
         4328     href=&quot;/static/52be07ae64ab63460489c89eefdb569a/6a89c/controls.jpg&quot;
         4329     style=&quot;display: block&quot;
         4330     target=&quot;_blank&quot;
         4331     rel=&quot;noopener&quot;
         4332   &gt;
         4333     &lt;span
         4334     class=&quot;gatsby-resp-image-background-image&quot;
         4335     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAGhZFl3JhP/xAAaEAACAgMAAAAAAAAAAAAAAAAAAQMREBIT/9oACAEBAAEFAurHMzbDurP/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwEn/8QAFxAAAwEAAAAAAAAAAAAAAAAAABARMf/aAAgBAQAGPwLSV1f/xAAcEAEAAgEFAAAAAAAAAAAAAAABABExIUFRgdH/2gAIAQEAAT8hfFcyHSLXMWm94RaHEBWs/9oADAMBAAIAAwAAABAoD//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxBBtv/EABYRAQEBAAAAAAAAAAAAAAAAAAERAP/aAAgBAgEBPxBQmrv/xAAaEAEBAQEAAwAAAAAAAAAAAAABEQAxQWFx/9oACAEBAAE/EJA7+DMgF15XjXGGklHZgqg0Rm7hvo3/2Q==&apos;); background-size: cover; display: block;&quot;
         4336   &gt;&lt;/span&gt;
         4337   &lt;img
         4338         class=&quot;gatsby-resp-image-image&quot;
         4339         alt=&quot;controls&quot;
         4340         title=&quot;controls&quot;
         4341         src=&quot;/static/52be07ae64ab63460489c89eefdb569a/6aca1/controls.jpg&quot;
         4342         srcset=&quot;/static/52be07ae64ab63460489c89eefdb569a/d2f63/controls.jpg 163w,
         4343 /static/52be07ae64ab63460489c89eefdb569a/c989d/controls.jpg 325w,
         4344 /static/52be07ae64ab63460489c89eefdb569a/6aca1/controls.jpg 650w,
         4345 /static/52be07ae64ab63460489c89eefdb569a/7c09c/controls.jpg 975w,
         4346 /static/52be07ae64ab63460489c89eefdb569a/01ab0/controls.jpg 1300w,
         4347 /static/52be07ae64ab63460489c89eefdb569a/6a89c/controls.jpg 3714w&quot;
         4348         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4349         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4350         loading=&quot;lazy&quot;
         4351       /&gt;
         4352   &lt;/a&gt;
         4353     &lt;/span&gt;&lt;/p&gt;
         4354 &lt;p&gt;&lt;span
         4355       class=&quot;gatsby-resp-image-wrapper&quot;
         4356       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4357     &gt;
         4358       &lt;a
         4359     class=&quot;gatsby-resp-image-link&quot;
         4360     href=&quot;/static/aca59aea2a2e99606c2258c15096e50c/d2602/dials.jpg&quot;
         4361     style=&quot;display: block&quot;
         4362     target=&quot;_blank&quot;
         4363     rel=&quot;noopener&quot;
         4364   &gt;
         4365     &lt;span
         4366     class=&quot;gatsby-resp-image-background-image&quot;
         4367     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEA//EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAEzqWSgYP/EABoQAAICAwAAAAAAAAAAAAAAAAECABEDEiH/2gAIAQEAAQUCNQlaQUuqw40gPP/EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAwEBPwGRj//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAECAQE/AWf/xAAcEAACAgIDAAAAAAAAAAAAAAAAAQIxEBETISP/2gAIAQEABj8CfpI3yyFbK7ZVY//EABsQAAICAwEAAAAAAAAAAAAAAAABETEhQVGB/9oACAEBAAE/IYWkcbOoavAxL0HLnsG4VQ6NH//aAAwDAQACAAMAAAAQOx//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAwEBPxCin//EABURAQEAAAAAAAAAAAAAAAAAAAEA/9oACAECAQE/EEEJf//EABsQAQADAQADAAAAAAAAAAAAAAERITEAQVFh/9oACAEBAAE/EHYpUtEGh74lQVKpRq94LH3PNSbQ4YvYJrg3vSSss7N31BhWGb3/2Q==&apos;); background-size: cover; display: block;&quot;
         4368   &gt;&lt;/span&gt;
         4369   &lt;img
         4370         class=&quot;gatsby-resp-image-image&quot;
         4371         alt=&quot;dials&quot;
         4372         title=&quot;dials&quot;
         4373         src=&quot;/static/aca59aea2a2e99606c2258c15096e50c/6aca1/dials.jpg&quot;
         4374         srcset=&quot;/static/aca59aea2a2e99606c2258c15096e50c/d2f63/dials.jpg 163w,
         4375 /static/aca59aea2a2e99606c2258c15096e50c/c989d/dials.jpg 325w,
         4376 /static/aca59aea2a2e99606c2258c15096e50c/6aca1/dials.jpg 650w,
         4377 /static/aca59aea2a2e99606c2258c15096e50c/7c09c/dials.jpg 975w,
         4378 /static/aca59aea2a2e99606c2258c15096e50c/01ab0/dials.jpg 1300w,
         4379 /static/aca59aea2a2e99606c2258c15096e50c/d2602/dials.jpg 4032w&quot;
         4380         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4381         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4382         loading=&quot;lazy&quot;
         4383       /&gt;
         4384   &lt;/a&gt;
         4385     &lt;/span&gt;&lt;/p&gt;
         4386 &lt;p&gt;&lt;span
         4387       class=&quot;gatsby-resp-image-wrapper&quot;
         4388       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4389     &gt;
         4390       &lt;a
         4391     class=&quot;gatsby-resp-image-link&quot;
         4392     href=&quot;/static/94942153f05fff73adbf2b72216ed795/d2602/missile.jpg&quot;
         4393     style=&quot;display: block&quot;
         4394     target=&quot;_blank&quot;
         4395     rel=&quot;noopener&quot;
         4396   &gt;
         4397     &lt;span
         4398     class=&quot;gatsby-resp-image-background-image&quot;
         4399     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBP/EABUBAQEAAAAAAAAAAAAAAAAAAAEC/9oADAMBAAIQAxAAAAFVmVRZmB//xAAaEAACAwEBAAAAAAAAAAAAAAAAAQISExEi/9oACAEBAAEFAs7GLG0V6vMS0D//xAAXEQADAQAAAAAAAAAAAAAAAAAAARIT/9oACAEDAQE/Ac0Qj//EABYRAAMAAAAAAAAAAAAAAAAAAAACE//aAAgBAgEBPwGrFGP/xAAaEAACAgMAAAAAAAAAAAAAAAAAMQERAiFh/9oACAEBAAY/AlQhlwbym+Ck/8QAGxABAAIDAQEAAAAAAAAAAAAAAQAhEWGRQaH/2gAIAQEAAT8hPDtMDSzqZVrsEA07it9RLrbdT//aAAwDAQACAAMAAAAQ6y//xAAWEQEBAQAAAAAAAAAAAAAAAAABEBH/2gAIAQMBAT8QVdn/AP/EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPxAAyX//xAAdEAEAAwACAwEAAAAAAAAAAAABABEhMUGhscHR/9oACAEBAAE/ECqi0uqfsL6q4w15liKRpyfYHk7LrnesQ4nGV+ould1Wmf/Z&apos;); background-size: cover; display: block;&quot;
         4400   &gt;&lt;/span&gt;
         4401   &lt;img
         4402         class=&quot;gatsby-resp-image-image&quot;
         4403         alt=&quot;missile&quot;
         4404         title=&quot;missile&quot;
         4405         src=&quot;/static/94942153f05fff73adbf2b72216ed795/6aca1/missile.jpg&quot;
         4406         srcset=&quot;/static/94942153f05fff73adbf2b72216ed795/d2f63/missile.jpg 163w,
         4407 /static/94942153f05fff73adbf2b72216ed795/c989d/missile.jpg 325w,
         4408 /static/94942153f05fff73adbf2b72216ed795/6aca1/missile.jpg 650w,
         4409 /static/94942153f05fff73adbf2b72216ed795/7c09c/missile.jpg 975w,
         4410 /static/94942153f05fff73adbf2b72216ed795/01ab0/missile.jpg 1300w,
         4411 /static/94942153f05fff73adbf2b72216ed795/d2602/missile.jpg 4032w&quot;
         4412         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4413         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4414         loading=&quot;lazy&quot;
         4415       /&gt;
         4416   &lt;/a&gt;
         4417     &lt;/span&gt;&lt;/p&gt;
         4418 &lt;p&gt;&lt;span
         4419       class=&quot;gatsby-resp-image-wrapper&quot;
         4420       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4421     &gt;
         4422       &lt;a
         4423     class=&quot;gatsby-resp-image-link&quot;
         4424     href=&quot;/static/c5d7694dc4304c2cf704b8ee257ff1ba/d2602/parallax.jpg&quot;
         4425     style=&quot;display: block&quot;
         4426     target=&quot;_blank&quot;
         4427     rel=&quot;noopener&quot;
         4428   &gt;
         4429     &lt;span
         4430     class=&quot;gatsby-resp-image-background-image&quot;
         4431     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwQA/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQP/2gAMAwEAAhADEAAAAUSaiZPkw//EABoQAAMBAAMAAAAAAAAAAAAAAAABAhEDEhP/2gAIAQEAAQUCinaxnrBxOujdmI//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAQIf/aAAgBAgEBPwGH/8QAGxAAAgEFAAAAAAAAAAAAAAAAADEBECIyQWH/2gAIAQEABj8CVMi1muig/8QAGhAAAwEAAwAAAAAAAAAAAAAAAAERIVFhgf/aAAgBAQABPyFecq9mkGlxomheYxlM0Dnd4f/aAAwDAQACAAMAAAAQ+M//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPxAn/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oACAECAQE/EDY//8QAHBABAAICAwEAAAAAAAAAAAAAAQARMVEhYXHB/9oACAEBAAE/EKw0Xm/ItYF+xquKRcMuTqPF9yne2+SYOpsDbH//2Q==&apos;); background-size: cover; display: block;&quot;
         4432   &gt;&lt;/span&gt;
         4433   &lt;img
         4434         class=&quot;gatsby-resp-image-image&quot;
         4435         alt=&quot;parallax&quot;
         4436         title=&quot;parallax&quot;
         4437         src=&quot;/static/c5d7694dc4304c2cf704b8ee257ff1ba/6aca1/parallax.jpg&quot;
         4438         srcset=&quot;/static/c5d7694dc4304c2cf704b8ee257ff1ba/d2f63/parallax.jpg 163w,
         4439 /static/c5d7694dc4304c2cf704b8ee257ff1ba/c989d/parallax.jpg 325w,
         4440 /static/c5d7694dc4304c2cf704b8ee257ff1ba/6aca1/parallax.jpg 650w,
         4441 /static/c5d7694dc4304c2cf704b8ee257ff1ba/7c09c/parallax.jpg 975w,
         4442 /static/c5d7694dc4304c2cf704b8ee257ff1ba/01ab0/parallax.jpg 1300w,
         4443 /static/c5d7694dc4304c2cf704b8ee257ff1ba/d2602/parallax.jpg 4032w&quot;
         4444         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4445         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4446         loading=&quot;lazy&quot;
         4447       /&gt;
         4448   &lt;/a&gt;
         4449     &lt;/span&gt;&lt;/p&gt;
         4450 &lt;p&gt;&lt;span
         4451       class=&quot;gatsby-resp-image-wrapper&quot;
         4452       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4453     &gt;
         4454       &lt;a
         4455     class=&quot;gatsby-resp-image-link&quot;
         4456     href=&quot;/static/986e00cad4152a58664883e8a3d330f1/7c297/phone.jpg&quot;
         4457     style=&quot;display: block&quot;
         4458     target=&quot;_blank&quot;
         4459     rel=&quot;noopener&quot;
         4460   &gt;
         4461     &lt;span
         4462     class=&quot;gatsby-resp-image-background-image&quot;
         4463     style=&quot;padding-bottom: 114.7239263803681%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAXABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBAX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/2gAMAwEAAhADEAAAAd8OVTLcwjAlgK//xAAdEAACAQQDAAAAAAAAAAAAAAACAwEAEBESExQi/9oACAEBAAEFAtRGmTGktHPZ8MbyBfFf/8QAFREBAQAAAAAAAAAAAAAAAAAAESD/2gAIAQMBAT8BY//EABcRAAMBAAAAAAAAAAAAAAAAAAABERD/2gAIAQIBAT8BiJv/xAAaEAACAwEBAAAAAAAAAAAAAAAAIQEQEQIx/9oACAEBAAY/AkPBHjI5m8r/xAAdEAADAQABBQAAAAAAAAAAAAAAAREhMUFRYXGx/9oACAEBAAE/IWgpvwfXBJ6XKwXrHEr0GrGp2iU7EmiXI8j/2gAMAwEAAgADAAAAECfXgP/EABYRAQEBAAAAAAAAAAAAAAAAABARAf/aAAgBAwEBPxC6af/EABcRAAMBAAAAAAAAAAAAAAAAAAABERD/2gAIAQIBAT8QkiBZ/8QAGxABAQADAQEBAAAAAAAAAAAAAREAITFBcYH/2gAIAQEAAT8QojQIKkYFEAg469c0pPFbiWPVX0uDBKY46nMmk/Wao83m4GPRyITsM//Z&apos;); background-size: cover; display: block;&quot;
         4464   &gt;&lt;/span&gt;
         4465   &lt;img
         4466         class=&quot;gatsby-resp-image-image&quot;
         4467         alt=&quot;phone&quot;
         4468         title=&quot;phone&quot;
         4469         src=&quot;/static/986e00cad4152a58664883e8a3d330f1/6aca1/phone.jpg&quot;
         4470         srcset=&quot;/static/986e00cad4152a58664883e8a3d330f1/d2f63/phone.jpg 163w,
         4471 /static/986e00cad4152a58664883e8a3d330f1/c989d/phone.jpg 325w,
         4472 /static/986e00cad4152a58664883e8a3d330f1/6aca1/phone.jpg 650w,
         4473 /static/986e00cad4152a58664883e8a3d330f1/7c09c/phone.jpg 975w,
         4474 /static/986e00cad4152a58664883e8a3d330f1/01ab0/phone.jpg 1300w,
         4475 /static/986e00cad4152a58664883e8a3d330f1/7c297/phone.jpg 3007w&quot;
         4476         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4477         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4478         loading=&quot;lazy&quot;
         4479       /&gt;
         4480   &lt;/a&gt;
         4481     &lt;/span&gt;&lt;/p&gt;
         4482 &lt;p&gt;&lt;span
         4483       class=&quot;gatsby-resp-image-wrapper&quot;
         4484       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4485     &gt;
         4486       &lt;a
         4487     class=&quot;gatsby-resp-image-link&quot;
         4488     href=&quot;/static/edeea8b83f4d379392bbc93402181f2f/d2602/plot.jpg&quot;
         4489     style=&quot;display: block&quot;
         4490     target=&quot;_blank&quot;
         4491     rel=&quot;noopener&quot;
         4492   &gt;
         4493     &lt;span
         4494     class=&quot;gatsby-resp-image-background-image&quot;
         4495     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEBQb/xAAVAQEBAAAAAAAAAAAAAAAAAAABAv/aAAwDAQACEAMQAAABi0efqFxBj//EABgQAQEBAQEAAAAAAAAAAAAAAAECAwAR/9oACAEBAAEFAroQzhyQ9l6dL8e//8QAFxEAAwEAAAAAAAAAAAAAAAAAAQIQEf/aAAgBAwEBPwFTk//EABYRAQEBAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPwFNn//EABkQAAIDAQAAAAAAAAAAAAAAAAABEBExMv/aAAgBAQAGPwKjlZo4pM0//8QAGRAAAwEBAQAAAAAAAAAAAAAAAAEhETFB/9oACAEBAAE/Icq6IUHcElzYZavGKI7g16TP/9oADAMBAAIAAwAAABC3P//EABgRAAIDAAAAAAAAAAAAAAAAAAABESEx/9oACAEDAQE/EESoen//xAAWEQEBAQAAAAAAAAAAAAAAAAABABH/2gAIAQIBAT8QbGQX/8QAHRABAAIBBQEAAAAAAAAAAAAAAQARITFBUWFxof/aAAgBAQABPxC3KmlrIdXzFOhu5K+wRaaLG0y5QM1HimYB08uGu9wO5//Z&apos;); background-size: cover; display: block;&quot;
         4496   &gt;&lt;/span&gt;
         4497   &lt;img
         4498         class=&quot;gatsby-resp-image-image&quot;
         4499         alt=&quot;plot&quot;
         4500         title=&quot;plot&quot;
         4501         src=&quot;/static/edeea8b83f4d379392bbc93402181f2f/6aca1/plot.jpg&quot;
         4502         srcset=&quot;/static/edeea8b83f4d379392bbc93402181f2f/d2f63/plot.jpg 163w,
         4503 /static/edeea8b83f4d379392bbc93402181f2f/c989d/plot.jpg 325w,
         4504 /static/edeea8b83f4d379392bbc93402181f2f/6aca1/plot.jpg 650w,
         4505 /static/edeea8b83f4d379392bbc93402181f2f/7c09c/plot.jpg 975w,
         4506 /static/edeea8b83f4d379392bbc93402181f2f/01ab0/plot.jpg 1300w,
         4507 /static/edeea8b83f4d379392bbc93402181f2f/d2602/plot.jpg 4032w&quot;
         4508         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4509         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4510         loading=&quot;lazy&quot;
         4511       /&gt;
         4512   &lt;/a&gt;
         4513     &lt;/span&gt;&lt;/p&gt;
         4514 &lt;p&gt;&lt;span
         4515       class=&quot;gatsby-resp-image-wrapper&quot;
         4516       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4517     &gt;
         4518       &lt;a
         4519     class=&quot;gatsby-resp-image-link&quot;
         4520     href=&quot;/static/7a57d968e5242926589df2368be6cad0/d2602/power.jpg&quot;
         4521     style=&quot;display: block&quot;
         4522     target=&quot;_blank&quot;
         4523     rel=&quot;noopener&quot;
         4524   &gt;
         4525     &lt;span
         4526     class=&quot;gatsby-resp-image-background-image&quot;
         4527     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwABBP/EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAE+0lqdjj//xAAbEAACAQUAAAAAAAAAAAAAAAAAAQIDERMhQf/aAAgBAQABBQJbfCMS6Rmpn//EABURAQEAAAAAAAAAAAAAAAAAAAEQ/9oACAEDAQE/AVn/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwEJ/8QAGBAAAgMAAAAAAAAAAAAAAAAAAAEgITH/2gAIAQEABj8ChbNP/8QAGhAAAgIDAAAAAAAAAAAAAAAAAAEQMRFRkf/aAAgBAQABPyF8AqCEXDtDcP/aAAwDAQACAAMAAAAQU+//xAAWEQEBAQAAAAAAAAAAAAAAAAAAESH/2gAIAQMBAT8Qo1//xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAIAQIBAT8QguP/xAAcEAEAAgMAAwAAAAAAAAAAAAABABEhMWFBUdH/2gAIAQEAAT8QtW8+CG8G+S1RNJ1yBW0K9fCZEQHU/9k=&apos;); background-size: cover; display: block;&quot;
         4528   &gt;&lt;/span&gt;
         4529   &lt;img
         4530         class=&quot;gatsby-resp-image-image&quot;
         4531         alt=&quot;power&quot;
         4532         title=&quot;power&quot;
         4533         src=&quot;/static/7a57d968e5242926589df2368be6cad0/6aca1/power.jpg&quot;
         4534         srcset=&quot;/static/7a57d968e5242926589df2368be6cad0/d2f63/power.jpg 163w,
         4535 /static/7a57d968e5242926589df2368be6cad0/c989d/power.jpg 325w,
         4536 /static/7a57d968e5242926589df2368be6cad0/6aca1/power.jpg 650w,
         4537 /static/7a57d968e5242926589df2368be6cad0/7c09c/power.jpg 975w,
         4538 /static/7a57d968e5242926589df2368be6cad0/01ab0/power.jpg 1300w,
         4539 /static/7a57d968e5242926589df2368be6cad0/d2602/power.jpg 4032w&quot;
         4540         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4541         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4542         loading=&quot;lazy&quot;
         4543       /&gt;
         4544   &lt;/a&gt;
         4545     &lt;/span&gt;&lt;/p&gt;
         4546 &lt;p&gt;&lt;span
         4547       class=&quot;gatsby-resp-image-wrapper&quot;
         4548       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4549     &gt;
         4550       &lt;a
         4551     class=&quot;gatsby-resp-image-link&quot;
         4552     href=&quot;/static/2d3dab732e50aa4b88aa8d0672a25fda/6f063/secret.jpg&quot;
         4553     style=&quot;display: block&quot;
         4554     target=&quot;_blank&quot;
         4555     rel=&quot;noopener&quot;
         4556   &gt;
         4557     &lt;span
         4558     class=&quot;gatsby-resp-image-background-image&quot;
         4559     style=&quot;padding-bottom: 131.2883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAaABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIDBAH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAAH/2gAMAwEAAhADEAAAAXeWgqAgddJ8rWIYv//EAB4QAAEEAQUAAAAAAAAAAAAAAAABAgMRIRITMTIz/9oACAEBAAEFArSRlJRF5VgxG3fRomkk7pwf/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAEREP/aAAgBAwEBPwF5CH//xAAXEQADAQAAAAAAAAAAAAAAAAAAARAR/9oACAECAQE/AUbf/8QAGhAAAgMBAQAAAAAAAAAAAAAAAAEQITEREv/aAAgBAQAGPwJVwyFPhlJmIc//xAAdEAEBAQACAgMAAAAAAAAAAAABABEhMUFRYaHR/9oACAEBAAE/IdYn0n8TiOob85YXgHEPEJE1DxZcVaG19uJ4x1f/2gAMAwEAAgADAAAAEBvosP/EABcRAQEBAQAAAAAAAAAAAAAAAAARASH/2gAIAQMBAT8Q1dR0h//EABYRAAMAAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxBnGUUrP//EABoQAQADAQEBAAAAAAAAAAAAAAEAESExUWH/2gAIAQEAAT8QaDTaPI2gM2yUjKSuqdAT7BmwrDJWLi2qJI6nXb2IYpSzJq/dxAsd8jQAz//Z&apos;); background-size: cover; display: block;&quot;
         4560   &gt;&lt;/span&gt;
         4561   &lt;img
         4562         class=&quot;gatsby-resp-image-image&quot;
         4563         alt=&quot;secret&quot;
         4564         title=&quot;secret&quot;
         4565         src=&quot;/static/2d3dab732e50aa4b88aa8d0672a25fda/6aca1/secret.jpg&quot;
         4566         srcset=&quot;/static/2d3dab732e50aa4b88aa8d0672a25fda/d2f63/secret.jpg 163w,
         4567 /static/2d3dab732e50aa4b88aa8d0672a25fda/c989d/secret.jpg 325w,
         4568 /static/2d3dab732e50aa4b88aa8d0672a25fda/6aca1/secret.jpg 650w,
         4569 /static/2d3dab732e50aa4b88aa8d0672a25fda/7c09c/secret.jpg 975w,
         4570 /static/2d3dab732e50aa4b88aa8d0672a25fda/01ab0/secret.jpg 1300w,
         4571 /static/2d3dab732e50aa4b88aa8d0672a25fda/6f063/secret.jpg 2475w&quot;
         4572         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4573         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4574         loading=&quot;lazy&quot;
         4575       /&gt;
         4576   &lt;/a&gt;
         4577     &lt;/span&gt;&lt;/p&gt;
         4578 &lt;p&gt;&lt;span
         4579       class=&quot;gatsby-resp-image-wrapper&quot;
         4580       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4581     &gt;
         4582       &lt;a
         4583     class=&quot;gatsby-resp-image-link&quot;
         4584     href=&quot;/static/75ed3e19f967cb450e0a86ee5a2d5e10/ca211/sign.jpg&quot;
         4585     style=&quot;display: block&quot;
         4586     target=&quot;_blank&quot;
         4587     rel=&quot;noopener&quot;
         4588   &gt;
         4589     &lt;span
         4590     class=&quot;gatsby-resp-image-background-image&quot;
         4591     style=&quot;padding-bottom: 108.58895705521472%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAGAABAQADAAAAAAAAAAAAAAAAAAQCAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/2gAMAwEAAhADEAAAAdU9cGlzJFZyiGoFf//EAB0QAAICAgMBAAAAAAAAAAAAAAECAAMRIxIhIjH/2gAIAQEAAQUCtG0MIGBlo9D5QuUddnHEr6X/xAAWEQEBAQAAAAAAAAAAAAAAAAAQAQL/2gAIAQMBAT8Bpo//xAAWEQEBAQAAAAAAAAAAAAAAAAAQAQL/2gAIAQIBAT8Bhk//xAAcEAABAwUAAAAAAAAAAAAAAAAAAhARICExQeH/2gAIAQEABj8CW2Cd8psf/8QAHBABAQEAAwADAAAAAAAAAAAAAREAITFBUXGB/9oACAEBAAE/IQad2hgcvWLsZz6PBnhDcrPcwekn7kCJmxBL87//2gAMAwEAAgADAAAAEOTHv//EABYRAQEBAAAAAAAAAAAAAAAAAAEAIf/aAAgBAwEBPxBIxDYMv//EABcRAQEBAQAAAAAAAAAAAAAAAAEAESH/2gAIAQIBAT8Q7JQZSu3/xAAeEAEAAwABBQEAAAAAAAAAAAABABEhMUFhkbHBcf/aAAgBAQABPxAOTcE7ltxQD8jXmUVhmFSsWytSnkPp8QGyU97gNlb9E1ZG1OWn2KCddFl1ALmnyf/Z&apos;); background-size: cover; display: block;&quot;
         4592   &gt;&lt;/span&gt;
         4593   &lt;img
         4594         class=&quot;gatsby-resp-image-image&quot;
         4595         alt=&quot;sign&quot;
         4596         title=&quot;sign&quot;
         4597         src=&quot;/static/75ed3e19f967cb450e0a86ee5a2d5e10/6aca1/sign.jpg&quot;
         4598         srcset=&quot;/static/75ed3e19f967cb450e0a86ee5a2d5e10/d2f63/sign.jpg 163w,
         4599 /static/75ed3e19f967cb450e0a86ee5a2d5e10/c989d/sign.jpg 325w,
         4600 /static/75ed3e19f967cb450e0a86ee5a2d5e10/6aca1/sign.jpg 650w,
         4601 /static/75ed3e19f967cb450e0a86ee5a2d5e10/7c09c/sign.jpg 975w,
         4602 /static/75ed3e19f967cb450e0a86ee5a2d5e10/01ab0/sign.jpg 1300w,
         4603 /static/75ed3e19f967cb450e0a86ee5a2d5e10/ca211/sign.jpg 2980w&quot;
         4604         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4605         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4606         loading=&quot;lazy&quot;
         4607       /&gt;
         4608   &lt;/a&gt;
         4609     &lt;/span&gt;&lt;/p&gt;
         4610 &lt;p&gt;&lt;span
         4611       class=&quot;gatsby-resp-image-wrapper&quot;
         4612       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4613     &gt;
         4614       &lt;a
         4615     class=&quot;gatsby-resp-image-link&quot;
         4616     href=&quot;/static/4b3492e94c48707b0b44fceaa14ad0b2/9568a/squib.jpg&quot;
         4617     style=&quot;display: block&quot;
         4618     target=&quot;_blank&quot;
         4619     rel=&quot;noopener&quot;
         4620   &gt;
         4621     &lt;span
         4622     class=&quot;gatsby-resp-image-background-image&quot;
         4623     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQFA//EABYBAQEBAAAAAAAAAAAAAAAAAAEDAP/aAAwDAQACEAMQAAABmmrJlCkImxLanSuTRP/EAB4QAAICAQUBAAAAAAAAAAAAAAEDAAISBBARFCEx/9oACAEBAAEFAr/FyuQFU3aummuJ0uYhmCw4Ehnkrt//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAWEQADAAAAAAAAAAAAAAAAAAAAEBH/2gAIAQIBAT8BdP/EABwQAAIBBQEAAAAAAAAAAAAAAAARAQIQIDJBMf/aAAgBAQAGPwLy2g3BvA5rE+ncf//EAB0QAQEBAQABBQAAAAAAAAAAAAERACFBMVFhcbH/2gAIAQEAAT8hltEvjQd+MZVXzzGoQZXG/mOHyF+sNTGtEd5TD0xA5q++/9oADAMBAAIAAwAAABBD/wA8/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAREP/aAAgBAwEBPxBOBthf/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAgEBPxAeQytq/8QAHhABAQACAgIDAAAAAAAAAAAAAREAITFBUYFhofH/2gAIAQEAAT8QYSYLZeNcYQWWQa7fzLgwtIVfeGbbhnHxMHETnYykgO0RfvJTJIFtmGeS9svrDwMPFxs7wmiLN4Mu2nzn/9k=&apos;); background-size: cover; display: block;&quot;
         4624   &gt;&lt;/span&gt;
         4625   &lt;img
         4626         class=&quot;gatsby-resp-image-image&quot;
         4627         alt=&quot;squib&quot;
         4628         title=&quot;squib&quot;
         4629         src=&quot;/static/4b3492e94c48707b0b44fceaa14ad0b2/6aca1/squib.jpg&quot;
         4630         srcset=&quot;/static/4b3492e94c48707b0b44fceaa14ad0b2/d2f63/squib.jpg 163w,
         4631 /static/4b3492e94c48707b0b44fceaa14ad0b2/c989d/squib.jpg 325w,
         4632 /static/4b3492e94c48707b0b44fceaa14ad0b2/6aca1/squib.jpg 650w,
         4633 /static/4b3492e94c48707b0b44fceaa14ad0b2/7c09c/squib.jpg 975w,
         4634 /static/4b3492e94c48707b0b44fceaa14ad0b2/01ab0/squib.jpg 1300w,
         4635 /static/4b3492e94c48707b0b44fceaa14ad0b2/9568a/squib.jpg 3024w&quot;
         4636         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4637         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4638         loading=&quot;lazy&quot;
         4639       /&gt;
         4640   &lt;/a&gt;
         4641     &lt;/span&gt;&lt;/p&gt;
         4642 &lt;p&gt;&lt;span
         4643       class=&quot;gatsby-resp-image-wrapper&quot;
         4644       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4645     &gt;
         4646       &lt;a
         4647     class=&quot;gatsby-resp-image-link&quot;
         4648     href=&quot;/static/69d36a8d8a00d7b88158eb8b0e196916/02c19/test.jpg&quot;
         4649     style=&quot;display: block&quot;
         4650     target=&quot;_blank&quot;
         4651     rel=&quot;noopener&quot;
         4652   &gt;
         4653     &lt;span
         4654     class=&quot;gatsby-resp-image-background-image&quot;
         4655     style=&quot;padding-bottom: 119.6319018404908%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAYABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAQF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAC/9oADAMBAAIQAxAAAAG7HryQuZg1dAOQr//EABwQAAIDAAMBAAAAAAAAAAAAAAABAgMRBBITIv/aAAgBAQABBQK+Xx7TRHkvLnkHIbLLe600/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFhEAAwAAAAAAAAAAAAAAAAAAABAR/9oACAECAQE/ASP/xAAaEAABBQEAAAAAAAAAAAAAAAAAAQIRICEy/9oACAEBAAY/AnQp0bf/xAAbEAADAAIDAAAAAAAAAAAAAAAAAREQIVFx8P/aAAgBAQABPyHniqYRPTWWekVN4lkUUGPNH//aAAwDAQACAAMAAAAQjwf/AP/EABcRAAMBAAAAAAAAAAAAAAAAAAABERD/2gAIAQMBAT8QrE8p/8QAFhEAAwAAAAAAAAAAAAAAAAAAAREg/9oACAECAQE/EEIf/8QAHBABAQEBAAIDAAAAAAAAAAAAAREAITFhcZHw/9oACAEBAAE/EDtIqx7kFE/McLDftIc1EIoH76zcWs1bSXsCGHUnEfNE1Hl1eIc9Hf/Z&apos;); background-size: cover; display: block;&quot;
         4656   &gt;&lt;/span&gt;
         4657   &lt;img
         4658         class=&quot;gatsby-resp-image-image&quot;
         4659         alt=&quot;test&quot;
         4660         title=&quot;test&quot;
         4661         src=&quot;/static/69d36a8d8a00d7b88158eb8b0e196916/6aca1/test.jpg&quot;
         4662         srcset=&quot;/static/69d36a8d8a00d7b88158eb8b0e196916/d2f63/test.jpg 163w,
         4663 /static/69d36a8d8a00d7b88158eb8b0e196916/c989d/test.jpg 325w,
         4664 /static/69d36a8d8a00d7b88158eb8b0e196916/6aca1/test.jpg 650w,
         4665 /static/69d36a8d8a00d7b88158eb8b0e196916/7c09c/test.jpg 975w,
         4666 /static/69d36a8d8a00d7b88158eb8b0e196916/01ab0/test.jpg 1300w,
         4667 /static/69d36a8d8a00d7b88158eb8b0e196916/02c19/test.jpg 2673w&quot;
         4668         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4669         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4670         loading=&quot;lazy&quot;
         4671       /&gt;
         4672   &lt;/a&gt;
         4673     &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA['Escaping Web' Season One Retrospective]]></title><description><![CDATA[My friend Oz Nova and I started a podcast last year called Escaping Web. With a million and one podcasts out there, you might be wondering…]]></description><link>https://www.charlieharrington.com/escaping-web-season-one-retrospective</link><guid isPermaLink="false">https://www.charlieharrington.com/escaping-web-season-one-retrospective</guid><pubDate>Sun, 29 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My friend &lt;a href=&quot;https://twitter.com/oznova_&quot;&gt;Oz Nova&lt;/a&gt; and I started a podcast last year called &lt;a href=&quot;https://escapingweb.github.io&quot;&gt;Escaping Web&lt;/a&gt;. With a million and one podcasts out there, you might be wondering about our catchy tagline? Our special hook? Our unique... perspective?&lt;/p&gt;
         4674 &lt;blockquote&gt;
         4675 &lt;p&gt;Escaping Web is a show celebrating software engineers who&apos;ve found their calling beyond routine web development.&lt;/p&gt;
         4676 &lt;/blockquote&gt;
         4677 &lt;p&gt;The idea for the podcast began with the observation that most engineers who &quot;break into tech&quot; (read: bootcamp grads or &quot;non-traditional&quot; aka non-CS degree backgrounds) typically begin their careers with web development roles (👋 hi!), and that these engineers often find themselves in a rut after a year or two. Bored at work. Feeling unfulfilled. Looking for something more... (name your favorite Disney or Pixar &quot;I want...&quot; song).&lt;/p&gt;
         4678 &lt;p&gt;As the head of &lt;a href=&quot;https://bradfieldcs.com&quot;&gt;Bradfield School of Computer Science&lt;/a&gt; (an online school for working software engineers &quot;seeking mastery&quot;), Oz meets lots of interesting characters who fit this mold -- and many who&apos;ve broken out... into fields like graphics, quantum computing, database design, etc.&lt;/p&gt;
         4679 &lt;p&gt;Our podcast interviews these engineers to learn what makes the tick, and more importantly, how they found something that they&apos;re passionate about at work. Was it a six-month sabbatical to intensely study computer architecture or discrete mathemathics? Or something else?&lt;/p&gt;
         4680 &lt;p&gt;Mostly, Escaping Web is a podcast about learning how to learn how to learn.&lt;/p&gt;
         4681 &lt;p&gt;We recorded six episodes last year with six amazing individuals. You can find more details and links to the audio below, along with the voluminous shownotes (which grew and grew with each episode).&lt;/p&gt;
         4682 &lt;p&gt;We recently decided to put the show on indefinite hiatus (don&apos;t worry, I&apos;m calling it Season One), and I&apos;ll use the next section of this post to go through some of my own learnings about starting a podcast in 2019.&lt;/p&gt;
         4683 &lt;h2&gt;Starting a podcast&lt;/h2&gt;
         4684 &lt;p&gt;It&apos;s easy! Everyone says that, and I pretty much agree. Here&apos;s a simple list of the things you need to do to release your own podcast:&lt;/p&gt;
         4685 &lt;ol&gt;
         4686 &lt;li&gt;Record one or two episodes of audio&lt;/li&gt;
         4687 &lt;li&gt;Edit them (optional)&lt;/li&gt;
         4688 &lt;li&gt;Upload them somewhere on the internet that is publically accessible&lt;/li&gt;
         4689 &lt;li&gt;Generate an RSS feed that can tell podcast directories where to find your audio files&lt;/li&gt;
         4690 &lt;li&gt;Tell the podcast directories (e.g. iTunes, Google Play, Spotify) the URL of your RSS feed&lt;/li&gt;
         4691 &lt;li&gt;Line up sponsorships with Squarespace, Linode, and a subscription coffee service (also optional, unfortunately)&lt;/li&gt;
         4692 &lt;/ol&gt;
         4693 &lt;p&gt;But that&apos;s it! Podcasting is still an open medium. There are also services that can take care of some of these steps for you. I&apos;ll run through my experiences with each step now.&lt;/p&gt;
         4694 &lt;h3&gt;1. Recording audio&lt;/h3&gt;
         4695 &lt;p&gt;This one should be easy, you&apos;d think. But it&apos;s not. In fact, this one is the primary reason that we went on hiatus. Given the format of our show (bi-weekly interviews with guests), we had a large scheduling onus to coordinate between ourselves and our guest-of-the-week. I think this challenge alone put the pin in &quot;season one&quot; and I think I&apos;ll need to do a better job with coordinating schedules if we resume the show. One thought, which I&apos;m only thinking of now and wish I&apos;d thought of earlier, would be a Calendly link for guests to sign up on.&lt;/p&gt;
         4696 &lt;p&gt;Even if you&apos;re not doing a guest-of-the-week format, there&apos;s still a mental hurdle to clear of &quot;coming up with something interesting to say&quot; on each episode. That&apos;s where your show theme and host chemistry can really make or break you. Shows like &lt;a href=&quot;https://www.flophousepodcast.com/&quot;&gt;The Flop House&lt;/a&gt; really nail this combo: not only are they individually and collectively hilarious, the &quot;bad-movie-recap-of-the-week&quot; format keeps things interesting and fun every single episode. Similarly, the Apple-oriented &lt;a href=&quot;https://atp.fm/&quot;&gt;Accidental Tech Podcast&lt;/a&gt; has become less about Apple news for me, and more about the trials, tribulations, and just-plain-fun quirks of each of the hosts. This is where podcasts have this dangerous turn as a replacement for human-interaction. When I&apos;m thinking to myself, &quot;Oh, Casey, it&apos;s time to get a new computer,&quot; I know that ATP has me hooked. I&apos;m happily hooked, but hooked nonetheless.&lt;/p&gt;
         4697 &lt;p&gt;If you do give Escaping Web a listen, you might agree with me that I think we missed the mark on developing host chemistry. We don&apos;t really have any &lt;a href=&quot;https://mykewasright.com/post/159678908546/follow-up&quot;&gt;Siracusan &quot;follow-up&quot;&lt;/a&gt; segment to provide weekly continuity (and highlight the strange things in our personalities that keep us up at night). There&apos;s also no regular cadence on what &quot;Oz and Charlie are up to.&quot;&lt;/p&gt;
         4698 &lt;p&gt;I still think we went the right way with the interview format for our show, but I&apos;d love to strike a better balance in the future. A show like &lt;a href=&quot;https://daringfireball.net/thetalkshow/&quot;&gt;John Gruber&apos;s The Talk Show&lt;/a&gt; does this incredibly well. It&apos;s an interview show with a short rotating cast of characters, which makes it feel contiguous. For example, I know that John has a stack of like 400 bundles of firewood in his garage because of an accidental Amazon overpurchase. It&apos;s this kind of magic that you seek.&lt;/p&gt;
         4699 &lt;p&gt;Weren&apos;t we supposed to be talking about recording audio? Oh, right. There are two formats for this, one of which should be ignored given our current collective quarantining:&lt;/p&gt;
         4700 &lt;ol&gt;
         4701 &lt;li&gt;In-person, each with an individual mic and headphones&lt;/li&gt;
         4702 &lt;li&gt;Over Skype, using Skype Call Recorder (and Piezo as a backup)&lt;/li&gt;
         4703 &lt;/ol&gt;
         4704 &lt;p&gt;The goal here is to get separate tracks for each speaker so that you can mix and edit them separately. In the case of Escaping Web, we went with an unfortunate third option:&lt;/p&gt;
         4705 &lt;ol start=&quot;3&quot;&gt;
         4706 &lt;li&gt;In-person, sharing one mic with no headphones (and occasionally over Skype with Charlie and Oz sharing one mic)&lt;/li&gt;
         4707 &lt;/ol&gt;
         4708 &lt;p&gt;Why? Why, oh why, did we go this route?&lt;/p&gt;
         4709 &lt;p&gt;Mostly because Oz already had this big ol&apos; Blue Yeti mic, and we didn&apos;t want to invest more in a more expensive rig. This was probably (definitely) a mistake, which you can hear in some of the episodes like Grant&apos;s (sorry, Grant!). When you have one mic, even if it&apos;s a &quot;good one&quot;, it&apos;s impossible to get the voices right. &lt;/p&gt;
         4710 &lt;p&gt;I, for one, am extremely loud. Oz, not so much. Our guests, somewhere in between. Can&apos;t you just fix this on the editing floor? Maybe... if you know what you&apos;re doing (I don&apos;t). Take this advice: like The Beatles discovered in the &apos;60s, magic can happen in the studio edits when you&apos;ve got multiple tracks to record on.&lt;/p&gt;
         4711 &lt;p&gt;I&apos;ve gone on quite a bit already, and we&apos;re still in section one, but I should mention something about the Skype recording experience. It&apos;s great! I always hear podcast hosts grumbling something or other about Skype, so I was happy to discover that the experience of recording with &lt;a href=&quot;https://www.ecamm.com/mac/callrecorder/&quot;&gt;Skype Call Recorder&lt;/a&gt; was seamless. It automatically splits your call into multiple tracks. I also fired up &lt;a href=&quot;https://rogueamoeba.com/piezo/&quot;&gt;Piezo&lt;/a&gt; as a backup. We didn&apos;t go the full-redundancy route of having each person record their own audio and send it back to me, and we never got burned by this. But I can understand why this important. Also, we didn&apos;t go the route of ensuring that our remote guests had any sort of quality mics or anything like that. Maybe this is why &lt;a href=&quot;https://www.npr.org/programs/fresh-air/&quot;&gt;Terry Gross&lt;/a&gt; has her guests go into a radio studio for their interviews. In our case, it was hard enough to align schedules that sending over recording equipment to our guests would have been a clear no-go.&lt;/p&gt;
         4712 &lt;h3&gt;2. Editing audio&lt;/h3&gt;
         4713 &lt;p&gt;This can be another rabbit hole time-warp. But it&apos;s also not that bad, and maybe even fun.&lt;/p&gt;
         4714 &lt;p&gt;Our shows ran about an hour or so, which meant we had about 90 minutes of audio, give-or-take. My goal was always to try to edit the show the same night that we recorded it. I wanted to just get it done. This worked the first few times, but less so after a while after the excitement of the first few episodes wore off. The edits became a looming thing on my to-do list for the next few days. One of those to-do&apos;s that&apos;s not that that hard... um, to do, but you&apos;ve just got to sit down and do it. And ain&apos;t that just the challenge of all to-do lists?&lt;/p&gt;
         4715 &lt;p&gt;So, what is editing? I&apos;m not totally sure. Here&apos;s what I tried to do:&lt;/p&gt;
         4716 &lt;ul&gt;
         4717 &lt;li&gt;Remove weird loud noises and pops&lt;/li&gt;
         4718 &lt;li&gt;Remove background hum (the Bradfield office had an nice air conditioner thrumming at all times)&lt;/li&gt;
         4719 &lt;li&gt;Equalize and condense the tracks&lt;/li&gt;
         4720 &lt;li&gt;Make a funny intro segment (with music!)&lt;/li&gt;
         4721 &lt;/ul&gt;
         4722 &lt;p&gt;My tools were the free and awesome Audacity (I&apos;m not sure if this works just yet on MacOS Catalina) and Apple Logic (although you could use the free GarageBand just as easily). I watched a few YouTube videos on editing podcasts, plunked around and did my best. The sound quality is pretty bad on some of the episodes. Someone with real editing chops could have made them sound better, but I think the real culprit was the lack of quality mic-ing of our voices.&lt;/p&gt;
         4723 &lt;p&gt;Admittedly, the thing I looked forward to most about the edits was coming up a variation on our intro music theme that I &quot;composed&quot; with the on-screen keyboard in Logic. I like to make weird little songs on Logic/Garageband while on flights, and this was too good an opportunity not to get a little musical and a little weird. Each episode is different. I hope you like them! &lt;/p&gt;
         4724 &lt;h3&gt;3-4. Hosting files and generating RSS feed&lt;/h3&gt;
         4725 &lt;p&gt;Now we&apos;re into what &quot;folks in the biz&quot; call &quot;podcast hosting.&quot; I combined items 3 and 4 because these tend to go hand-in-hand.&lt;/p&gt;
         4726 &lt;p&gt;There are many podcast hosting companies out there. If you&apos;re following along, time was our biggest constraint in this entire endeavor, so we decided to outsource this part of the process rather than whip something together ourselves. &lt;/p&gt;
         4727 &lt;p&gt;I chose &lt;a href=&quot;https://transistor.fm/?via=charles&quot;&gt;Transistor.FM&lt;/a&gt; for our podcast host. I listen to their maker podcast &lt;a href=&quot;https://saas.transistor.fm/?via=charles&quot;&gt;Build Your SASS&lt;/a&gt;, and I&apos;ve loved following along with Justin and Jon as they document their challenges and wins and concerns as they build Transistor from the ground up. In addition to making it really easy to upload your audio and generate your RSS feed, Transistor also provides (1) an automatic website generater for your show and (2) a listener analytic dashboard. They also provided fantastic customer support when I had a few questions about the process. Definitely worth the $20 a month for our young, growing show.&lt;/p&gt;
         4728 &lt;p&gt;Unfortunately, now that we&apos;ve gone on hiatus and we don&apos;t know when we&apos;ll record our next episode, we decided to cancel our subscription. I&apos;ve finally done the work of hacking together a simple solution to maintain an RSS feed for our show using public GitHub Pages repos to host our RSS feed and audio files. I think this will work fine, unless we suddenly get a ton of listeners out of the blue. But given what I saw in the Transistor analytics, I think we&apos;ll be okay for now.&lt;/p&gt;
         4729 &lt;h3&gt;5. Adding your RSS feed to the directories&lt;/h3&gt;
         4730 &lt;p&gt;One slight bummer is that, even with a podcast hosting service, you still need to submit your show to all the different providers separately. These are places like iTunes, Spotify, and Google. There&apos;s a few more, too. Stitcher is one. I don&apos;t know all of them off of the top of my head, but there are definitely a few more places that you can share your show. Still, the iTunes directory, Spotify, and Google are the big three that &quot;matter.&quot;&lt;/p&gt;
         4731 &lt;p&gt;This is mainly a bummer in that, if you&apos;ve made it this far, you&apos;re ready for your show to hit the world by storm! Don&apos;t forget to allocate enough time for your podcast to be (1) approved by iTunes and (2) appear in iTunes. If you&apos;re somebody who&apos;s expecting a big &quot;launch day&quot;, be aware that this can take something like a week or so.&lt;/p&gt;
         4732 &lt;p&gt;To take the other side of this, I&apos;ve actually now found it to be an advantage to have a direct relationship with each of the podcast directories, because I&apos;ve been able to easily update the URL of &lt;a href=&quot;https://escapingweb.github.io/rss/feed.rss&quot;&gt;our RSS feed&lt;/a&gt; to my new GitHub pages solution.&lt;/p&gt;
         4733 &lt;p&gt;Oh! Also, your show needs show art. Here&apos;s what I sketched up for Escaping Web, and Oz (for some strange reason) loved it, too.&lt;/p&gt;
         4734 &lt;p&gt;&lt;span
         4735       class=&quot;gatsby-resp-image-wrapper&quot;
         4736       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4737     &gt;
         4738       &lt;span
         4739     class=&quot;gatsby-resp-image-background-image&quot;
         4740     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAEEBQP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAAB0LMycVcmfcFzQf/EABwQAAICAgMAAAAAAAAAAAAAAAECAAMRMQQSE//aAAgBAQABBQJ2cSvOH2RDqwnK2nstxE5d7+v/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/AR//xAAcEAADAAEFAAAAAAAAAAAAAAAAASECEBIxQYH/2gAIAQEABj8CinQ9y1nBSrEmOKPD/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARITFBUf/aAAgBAQABPyG+KsWifQvGukec8g437swL4+SjpTUehQfSKpcdoZQAhR5P/9oADAMBAAIAAwAAABAjMD7/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAdEAEAAgIDAQEAAAAAAAAAAAABABEhYTFRgUFx/9oACAEBAAE/EGBW4BYlXenJ5uIiNpQDQXxyeQ8DPHbM85C0SzIVQuH0Yf1mcohpTphQZ2AF11co6QUNr9n/2Q==&apos;); background-size: cover; display: block;&quot;
         4741   &gt;&lt;/span&gt;
         4742   &lt;img
         4743         class=&quot;gatsby-resp-image-image&quot;
         4744         alt=&quot;ewlogo&quot;
         4745         title=&quot;ewlogo&quot;
         4746         src=&quot;/static/cf35047043f8693673a5235362b746ce/6aca1/ew.jpg&quot;
         4747         srcset=&quot;/static/cf35047043f8693673a5235362b746ce/d2f63/ew.jpg 163w,
         4748 /static/cf35047043f8693673a5235362b746ce/c989d/ew.jpg 325w,
         4749 /static/cf35047043f8693673a5235362b746ce/6aca1/ew.jpg 650w,
         4750 /static/cf35047043f8693673a5235362b746ce/7c09c/ew.jpg 975w,
         4751 /static/cf35047043f8693673a5235362b746ce/01ab0/ew.jpg 1300w,
         4752 /static/cf35047043f8693673a5235362b746ce/12609/ew.jpg 3000w&quot;
         4753         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4754         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4755         loading=&quot;lazy&quot;
         4756       /&gt;
         4757     &lt;/span&gt;&lt;/p&gt;
         4758 &lt;p&gt;Our spider has a Nand gate on its back. Cute.&lt;/p&gt;
         4759 &lt;h3&gt;6. Finding sponsors!&lt;/h3&gt;
         4760 &lt;p&gt;Whoops. We never did this one. This is especially unfortunate, because I think I&apos;d do a great ad-read.&lt;/p&gt;
         4761 &lt;p&gt;Promotion is hard, in general. Not just for podcasts. Maybe obscure cream can rise to the top amid the noise vortex (mixed metaphor?), and I think we were at least semi-creamy, and now I&apos;ve lost my train of thought. But... yeah, we didn&apos;t focus on promotion and I think we could have done a better job at this. I give us a thumbs-down on this effort.&lt;/p&gt;
         4762 &lt;p&gt;We did set up a Twitter account for the show (&lt;a href=&quot;https://twitter.com/escapingweb&quot;&gt;@escapingweb&lt;/a&gt;), and Transistor helped by auto-tweeting each new episode as soon it went live. I also tried to get the companies of our guests to re-tweet us, but this was only semi-successful. Like I said (did I say this?), content marketing is hard. We just wanted to talk to interesting people and put our show out there to the world for people to hear it. And we achieved that, so that&apos;s nice.&lt;/p&gt;
         4763 &lt;p&gt;In fact, I wanted to share some of the things that folks Tweeted about our show that make me happy:&lt;/p&gt;
         4764 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Highly recommend the &lt;a href=&quot;https://twitter.com/EscapingWeb?ref_src=twsrc%5Etfw&quot;&gt;@EscapingWeb&lt;/a&gt; podcast for any programmers out there &lt;br&gt;&lt;br&gt;Lots of great stories from folks who entered the field untraditional and are killing it 💪🏼&lt;a href=&quot;https://twitter.com/hashtag/100DaysOfCode?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#100DaysOfCode&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/coding?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#coding&lt;/a&gt; &lt;a href=&quot;https://twitter.com/hashtag/webDev?src=hash&amp;amp;ref_src=twsrc%5Etfw&quot;&gt;#webDev&lt;/a&gt; &lt;a href=&quot;https://t.co/eolaWhEl4U&quot;&gt;https://t.co/eolaWhEl4U&lt;/a&gt;&lt;/p&gt;&amp;mdash; Clifford Fajardo (@CliffordFajard0) &lt;a href=&quot;https://twitter.com/CliffordFajard0/status/1169634884081483778?ref_src=twsrc%5Etfw&quot;&gt;September 5, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
         4765 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Agreed. &lt;a href=&quot;https://twitter.com/EscapingWeb?ref_src=twsrc%5Etfw&quot;&gt;@EscapingWeb&lt;/a&gt; is one of my favorite podcasts. Excited to listen to the latest episode! &lt;a href=&quot;https://t.co/h9xIyZ0klz&quot;&gt;https://t.co/h9xIyZ0klz&lt;/a&gt;&lt;/p&gt;&amp;mdash; Madison Kanna (@Madisonkanna) &lt;a href=&quot;https://twitter.com/Madisonkanna/status/1169748861734141953?ref_src=twsrc%5Etfw&quot;&gt;September 5, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
         4766 &lt;blockquote class=&quot;twitter-tweet&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Great episode, but it was really difficult to hear Grant&lt;/p&gt;&amp;mdash; Vegard Stikbakke (@vegardstikbakke) &lt;a href=&quot;https://twitter.com/vegardstikbakke/status/1197577967884492805?ref_src=twsrc%5Etfw&quot;&gt;November 21, 2019&lt;/a&gt;&lt;/blockquote&gt; &lt;script async src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
         4767 &lt;p&gt;Yes, I know, I know. The audio on the Grant episode is the worst. I&apos;m sorry, world. But thank you to everyone who tweeted about the show and shared with their friends.&lt;/p&gt;
         4768 &lt;p&gt;Also, everyone says that leaving ratings on iTunes is &quot;super-helpful&quot;, and I encouraged some folks to do that. We got thirteen 5-star reviews. Is that good? Probably not. But at least they were all fives! Two of my close friends even left a nice written review, and also one person I don&apos;t recognize at the moment (but probably also know personally).&lt;/p&gt;
         4769 &lt;p&gt;&lt;span
         4770       class=&quot;gatsby-resp-image-wrapper&quot;
         4771       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         4772     &gt;
         4773       &lt;span
         4774     class=&quot;gatsby-resp-image-background-image&quot;
         4775     style=&quot;padding-bottom: 45.39877300613497%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABYlAAAWJQFJUiTwAAABKklEQVQoz52SAW+CMBCF+///GkGdTNQQRCowrQQQFWhhvPWKLMS4ZdklX15L78q7tszzPDiOgyzL0Pc9KEin47quDVX1O00jwTgPQUw3eqauG53cmIJXSCnND++3G1injRCDn/+H+gRq1YMVtwYiv+OuXciHi7ZtDV3XQSk1QC6qyjglN6RjHtFIZWDHmMN1FthsNlitVkbDMPxmt/MhhEAScbwvhzzXdbHdbvVRccPhcEAQ7JCeBdjpJOCu1yZxZK3ntDkV0ppIc13EYVkW5vM5ZrOZgea2Vtu2sXhbIjmewS6XAkkcI89zXK9XlGVpdIS+F8VlaEu3SRfwGgWpWrCPRyvBfo/9E0EQwPd9UBd/DZZpB1RM5zASRdFjzBHHCdK8pDf147Oa8gXwa61JSrs3xgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         4776   &gt;&lt;/span&gt;
         4777   &lt;img
         4778         class=&quot;gatsby-resp-image-image&quot;
         4779         alt=&quot;itunesratings&quot;
         4780         title=&quot;itunesratings&quot;
         4781         src=&quot;/static/e9803cd60b32c872b51bf1cc82832262/a6d36/itunesratings.png&quot;
         4782         srcset=&quot;/static/e9803cd60b32c872b51bf1cc82832262/222b7/itunesratings.png 163w,
         4783 /static/e9803cd60b32c872b51bf1cc82832262/ff46a/itunesratings.png 325w,
         4784 /static/e9803cd60b32c872b51bf1cc82832262/a6d36/itunesratings.png 650w,
         4785 /static/e9803cd60b32c872b51bf1cc82832262/e548f/itunesratings.png 975w,
         4786 /static/e9803cd60b32c872b51bf1cc82832262/3c492/itunesratings.png 1300w,
         4787 /static/e9803cd60b32c872b51bf1cc82832262/f36fd/itunesratings.png 2488w&quot;
         4788         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         4789         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         4790         loading=&quot;lazy&quot;
         4791       /&gt;
         4792     &lt;/span&gt;&lt;/p&gt;
         4793 &lt;p&gt;Still, these tweets and these ratings and the personal texts we both received meant a lot to me and Oz. So, thank you!&lt;/p&gt;
         4794 &lt;h2&gt;What I learned from season one of Escaping Web (other than how to make a podcast)&lt;/h2&gt;
         4795 &lt;p&gt;&lt;strong&gt;Interviewing is challenging.&lt;/strong&gt; Duh. But I really thought that I&apos;d be pretty good at this right away, and I wasn&apos;t. It&apos;s a craft that demands practice. I hope to do more of it in the future, if you&apos;ll allow.&lt;/p&gt;
         4796 &lt;p&gt;&lt;strong&gt;Take to time to explore things deeply.&lt;/strong&gt; This is critical to finding your path at work, in life, in the woods, wherever. And, yet, it&apos;s so hard to do this if you have a Nintendo Switch (that&apos;s why I still only have a Super Nintendo). Our guests found this time in many different ways (from sabbaticals to switching teams at work to taking online courses).&lt;/p&gt;
         4797 &lt;p&gt;&lt;strong&gt;Find a friend who&apos;s way smarter than you and spend time with them.&lt;/strong&gt; This is me talking about Oz, by the way. Every time I hang out with Oz, I learn something about computers or education or whatever that blows my mind and leaves with an even bigger backlog reading list. Thanks for season one, Oz!&lt;/p&gt;
         4798 &lt;p&gt;And, with that, the retrospective is complete! Onto the shownotes and audio. There are links to amazing things below, and I hope you find them useful in your travels. Here&apos;s a short preview of the ones that kept coming up again and again, which probably means something that I&apos;ll leave to the reader as an exercise:&lt;/p&gt;
         4799 &lt;ul&gt;
         4800 &lt;li&gt;&lt;a href=&quot;https://www.cs.virginia.edu/~robins/YouAndYourResearch.html&quot;&gt;You and Your Research - Richard Hamming&lt;/a&gt;&lt;/li&gt;
         4801 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/How_to_Solve_It&quot;&gt;How to Solve It - George Polya&lt;/a&gt;&lt;/li&gt;
         4802 &lt;li&gt;&lt;a href=&quot;https://mitpress.mit.edu/sites/default/files/sicp/index.html&quot;&gt;SICP&lt;/a&gt;&lt;/li&gt;
         4803 &lt;li&gt;&lt;a href=&quot;https://www.nand2tetris.org/&quot;&gt;Nand2Tetris&lt;/a&gt;&lt;/li&gt;
         4804 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Flow-Psychology-Experience-Perennial-Classics/dp/0061339202&quot;&gt;Flow: The Pyschology of Optimal Experience by Mihaly Csikszentmihalyi&lt;/a&gt;&lt;/li&gt;
         4805 &lt;/ul&gt;
         4806 &lt;h2&gt;Shownotes and audio for Escaping Web&lt;/h2&gt;
         4807 &lt;h3&gt;1: A Quantum of Sad Things Happening To Felix Tripier of IonQ&lt;/h3&gt;
         4808 &lt;p&gt;Felix Tripier is a software engineer at a quantum computing company. He&apos;s also eating cold lasagna out of a coffee mug.&lt;/p&gt;
         4809 &lt;blockquote&gt;
         4810 &lt;p&gt;Find out how Felix Tripier went from high-school and college dropout (watch out Silicon Valley, he&apos;s a double-dropout) to working as web developer at several Bay Area startups to presenting his open-source research at a quantum computing conference, leading to his current gig as a software engineer at IonQ, a quantum computing company. Charlie and Oz dig into Felix&apos;s study habits and learning goals, briefly dip into theoretical computing topics before coming up for air, and altogether forget to introduce themselves, Felix, or the podcast itself.&lt;/p&gt;
         4811 &lt;/blockquote&gt;
         4812 &lt;audio controls=&quot;controls&quot;&gt;
         4813   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/001_a_quantum_of_sad_things_happening_to_felix_tripier_of_ionq.mp3&quot;&gt;&lt;/source&gt;
         4814 &lt;/audio&gt;
         4815 &lt;p&gt;Links and resources:&lt;/p&gt;
         4816 &lt;ul&gt;
         4817 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Grave_of_the_Fireflies&quot;&gt;Grave of the Fireflies&lt;/a&gt;&lt;/li&gt;
         4818 &lt;li&gt;
         4819 &lt;p&gt;Richard Hamming, &quot;You And Your Research&quot;&lt;/p&gt;
         4820 &lt;ul&gt;
         4821 &lt;li&gt;&lt;a href=&quot;https://www.cs.virginia.edu/~robins/YouAndYourResearch.html&quot;&gt;Transcript&lt;/a&gt;&lt;/li&gt;
         4822 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=a1zDuOPkMSw&quot;&gt;Video&lt;/a&gt;&lt;/li&gt;
         4823 &lt;/ul&gt;
         4824 &lt;/li&gt;
         4825 &lt;li&gt;&lt;a href=&quot;https://github.com/ftripier/Q-bug&quot;&gt;Q-Bug: Felix&apos;s open source, web-based visual debugger for Quil quantum programs&lt;/a&gt;&lt;/li&gt;
         4826 &lt;li&gt;&lt;a href=&quot;https://twitter.com/FelixTripier%22&quot;&gt;Felix Tripier on Twitter&lt;/a&gt;&lt;/li&gt;
         4827 &lt;/ul&gt;
         4828 &lt;h3&gt;2: Epic Slacking with Roo Harrigan of Slack&lt;/h3&gt;
         4829 &lt;p&gt;Roo Harrigan is the Strategic Engineering Projects Lead at Slack. She’s also the self-proclaimed Mentor Queen.&lt;/p&gt;
         4830 &lt;blockquote&gt;
         4831 &lt;p&gt;Find out how Roo Harrigan went from an all-around generalist (product manager, project manager, sales demo&apos;er, customer support agent) to a software engineer on the platform team at Slack, and now the Strategic Engineering Projects Lead reporting to Slack&apos;s CTO. Charlie and Oz dig into about Roo&apos;s tips for finding mentors, achieving flow state, and onboarding engineers. We also learn that Oz has never worked in the food services industry. Oh, and they remember to introduce themselves and Roo at the beginning. Progress!&lt;/p&gt;
         4832 &lt;/blockquote&gt;
         4833 &lt;audio controls=&quot;controls&quot;&gt;
         4834   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/002_epic_slacking_with_roo_harrigan_of_slack.mp3&quot;&gt;&lt;/source&gt;
         4835 &lt;/audio&gt;
         4836 &lt;p&gt;Links and resources:&lt;/p&gt;
         4837 &lt;ul&gt;
         4838 &lt;li&gt;&lt;a href=&quot;https://medium.com/hackbright-capstone/day-29-30-and-beyond-reflections-on-the-first-thing-i-made-2f9e2660a04a&quot;&gt;Roo&apos;s 2015 blog post about becoming an engineer&lt;/a&gt;&lt;/li&gt;
         4839 &lt;li&gt;&lt;a href=&quot;http://frontsttrattoria.com/&quot;&gt;Front St. Trattoria, Red Bank, New Jersey&lt;/a&gt;&lt;/li&gt;
         4840 &lt;li&gt;&lt;a href=&quot;https://hackbrightacademy.com&quot;&gt;Hackbright Academy&lt;/a&gt;&lt;/li&gt;
         4841 &lt;li&gt;&lt;a href=&quot;https://get.slack.help/hc/en-us/articles/208423427-Set-a-reminder&quot;&gt;Slack Reminders: Roo&apos;s first project at Slack&lt;/a&gt;&lt;/li&gt;
         4842 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Flow-Psychology-Experience-Perennial-Classics/dp/0061339202&quot;&gt;Flow: The Pyschology of Optimal Experience by Mihaly Csikszentmihalyi&lt;/a&gt;&lt;/li&gt;
         4843 &lt;li&gt;&lt;a href=&quot;https://twitter.com/roo_harrigan&quot;&gt;Roo Harrigan on Twitter&lt;/a&gt;&lt;/li&gt;
         4844 &lt;/ul&gt;
         4845 &lt;h3&gt;3: Getting Time Serious with Richie Artoul of Uber&lt;/h3&gt;
         4846 &lt;p&gt;Richie Artoul is a software engineer on Uber&apos;s Observability infrastructure team. He also really likes distributed timeseries databases, like a lot.&lt;/p&gt;
         4847 &lt;blockquote&gt;
         4848 &lt;p&gt;Find out how Richie Artoul went from bootcamp grad to infrastructure engineer at Uber, where he&apos;s now building their open source metrics platform M3 and their open source distributed timeseries database M3DB. Charlie and Oz dive into Richie&apos;s tips for side projects, reading programming textbooks, finding mentors at work, and navigating large engineering orgs like Uber. We also learn that Richie recently took up Jiu-Jitsu (just like Oz) - and now Charlie&apos;s hoping for a Vader / Obi Wan style &quot;roll&quot; in their future.&lt;/p&gt;
         4849 &lt;/blockquote&gt;
         4850 &lt;audio controls=&quot;controls&quot;&gt;
         4851   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/003_getting_time_serious_with_richie_artoul_of_uber.mp3&quot;&gt;&lt;/source&gt;
         4852 &lt;/audio&gt;
         4853 &lt;p&gt;Links and resources:&lt;/p&gt;
         4854 &lt;ul&gt;
         4855 &lt;li&gt;&lt;a href=&quot;https://eng.uber.com/optimizing-m3/&quot;&gt;Optimizing MS: How Uber Halved Our Metrics Ingestion Latency by (Briefly) Forking the Go Compiler (Richie&apos;s post on the Uber engineering blog)&lt;/a&gt;&lt;/li&gt;
         4856 &lt;li&gt;&lt;a href=&quot;https://m3db.io/&quot;&gt;M3 &amp;#x26; M3DB&lt;/a&gt;&lt;/li&gt;
         4857 &lt;li&gt;&lt;a href=&quot;https://www.nand2tetris.org/&quot;&gt;Nand2Tetris&lt;/a&gt;&lt;/li&gt;
         4858 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Rubber_duck_debugging&quot;&gt;Rubber duck debugging&lt;/a&gt;&lt;/li&gt;
         4859 &lt;li&gt;&lt;a href=&quot;https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf&quot;&gt;DynamoDB paper&lt;/a&gt;&lt;/li&gt;
         4860 &lt;li&gt;&lt;a href=&quot;https://www.foundationdb.org/&quot;&gt;FoundationDB&lt;/a&gt;&lt;/li&gt;
         4861 &lt;li&gt;&lt;a href=&quot;https://jvns.ca/blog/brag-documents/&quot;&gt;Write a brag document - Julia Evans&lt;/a&gt;&lt;/li&gt;
         4862 &lt;li&gt;&lt;a href=&quot;https://twitter.com/richardartoul&quot;&gt;Richie Artoul on Twitter&lt;/a&gt;&lt;/li&gt;
         4863 &lt;/ul&gt;
         4864 &lt;h3&gt;4: A Graphic(s) Conversation with Lauren Budorick of Figma&lt;/h3&gt;
         4865 &lt;p&gt;Lauren Budorick is Graphics Software Engineer at Figma. She’s also read the 1989a .gif spec, yet still refuses to pronounce them as &quot;JIFs.&quot;&lt;/p&gt;
         4866 &lt;blockquote&gt;
         4867 &lt;p&gt;Find out how Lauren went from bootcamp grad to Graphics Software Engineer, first at Mapbox and now at Figma, where she&apos;s building their prototyping rendering engine. Charlie and Oz dig into Lauren&apos;s tips for learning linear algebra, how to see everything in the world as a triangle, and navigating a company without managers. Charlie and Oz also each try to recount stories of &quot;achieving the impossible&quot;, and both painfully fail to remember the exact details of their anecdotes.&lt;/p&gt;
         4868 &lt;/blockquote&gt;
         4869 &lt;audio controls=&quot;controls&quot;&gt;
         4870   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/004_a_graphics_conversation_with_lauren_budorick_of_figma.mp3&quot;&gt;&lt;/source&gt;
         4871 &lt;/audio&gt;
         4872 &lt;p&gt;Links and resources:&lt;/p&gt;
         4873 &lt;ul&gt;
         4874 &lt;li&gt;&lt;a href=&quot;https://twitter.com/lbudorick/status/1149118970932281344&quot;&gt;Lauren’s 😢.gif tweet&lt;/a&gt;&lt;/li&gt;
         4875 &lt;li&gt;&lt;a href=&quot;https://www.w3.org/Graphics/GIF/spec-gif89a.txt&quot;&gt;The 1989 .gif spec (which is still the latest release!)&lt;/a&gt;&lt;/li&gt;
         4876 &lt;li&gt;&lt;a href=&quot;http://www.olsenhome.com/gif/BOB_89A.GIF&quot;&gt;Demo of the 1989 .gif spec (as rendered by a modern browser)&lt;/a&gt;&lt;/li&gt;
         4877 &lt;li&gt;&lt;a href=&quot;http://ata4.github.io/gifiddle/#http://www.olsenhome.com/gif/BOB_89A.GIF&quot;&gt;Demo of the 1989 .gif spec (as it was intended, in all its feature-laden glory)&lt;/a&gt;&lt;/li&gt;
         4878 &lt;li&gt;&lt;a href=&quot;https://www.theatlantic.com/technology/archive/2019/03/hottest-chat-app-teens-google-docs/584857/&quot;&gt;The hottest chap app for teens is... Google Docs - by Taylor Lorenz&lt;/a&gt;&lt;/li&gt;
         4879 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Opzomu6mgYk&quot;&gt;The Story of the SuperFX Chip: The chip that made Star Fox on the Super Nintendo possible&lt;/a&gt;&lt;/li&gt;
         4880 &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/7090.The_Soul_of_a_New_Machine&quot;&gt;The Soul of a New Machine&lt;/a&gt;&lt;/li&gt;
         4881 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=YFGY2BeyfzA&quot;&gt;Lauren’s talk at Nordic.js (The Matrix is Everywhere: A primer on projections in Web Graphics)&lt;/a&gt;&lt;/li&gt;
         4882 &lt;li&gt;&lt;a href=&quot;https://www.3blue1brown.com/essence-of-linear-algebra-page&quot;&gt;3Blue1Brown Linear Algebra YouTube series&lt;/a&gt;&lt;/li&gt;
         4883 &lt;li&gt;&lt;a href=&quot;https://www.figma.com/&quot;&gt;Figma&lt;/a&gt;&lt;/li&gt;
         4884 &lt;li&gt;&lt;a href=&quot;https://www.figma.com/blog/section/engineering/&quot;&gt;Figma&apos;s Engineering blog&lt;/a&gt;&lt;/li&gt;
         4885 &lt;li&gt;&lt;a href=&quot;https://www.mapbox.com/&quot;&gt;Mapbox&lt;/a&gt;&lt;/li&gt;
         4886 &lt;li&gt;&lt;a href=&quot;https://hackbrightacademy.com/&quot;&gt;Hackbright Academy&lt;/a&gt;&lt;/li&gt;
         4887 &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/222146.Masters_of_Doom&quot;&gt;Masters of Doom&lt;/a&gt;&lt;/li&gt;
         4888 &lt;li&gt;&lt;a href=&quot;https://twitter.com/lbudorick&quot;&gt;Lauren Budorick on Twitter&lt;/a&gt;&lt;/li&gt;
         4889 &lt;/ul&gt;
         4890 &lt;h3&gt;5: Learning Your Stripes with Grant Wu of Stripe&lt;/h3&gt;
         4891 &lt;p&gt;Grant Wu is a Software Engineer at Stripe on the Ruby Application Infrastructure team. He also hates scary movies, but still can’t stop himself from reading their IMDB synopses.&lt;/p&gt;
         4892 &lt;blockquote&gt;
         4893 &lt;p&gt;Charlie and Oz dig into Grant’s study habits for self-guided learning (like building a toy kernel and toy compiler) — and how those low-level projects influenced his path to Stripe. The gang gets into it over bootcamps, baking bread, and learning to play music — all with the broader theme of exploring what it means to be creative. To top it off, we learn that Oz has a joint degree in math(s) and the (Australian) law?!&lt;/p&gt;
         4894 &lt;/blockquote&gt;
         4895 &lt;audio controls=&quot;controls&quot;&gt;
         4896   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/005_learning_your_stripes_with_grant_wu_of_stripe.mp3&quot;&gt;&lt;/source&gt;
         4897 &lt;/audio&gt;
         4898 &lt;p&gt;Links and resources:&lt;/p&gt;
         4899 &lt;ul&gt;
         4900 &lt;li&gt;&lt;a href=&quot;https://stripe.com&quot;&gt;Stripe&lt;/a&gt;&lt;/li&gt;
         4901 &lt;li&gt;&lt;a href=&quot;https://sorbet.org/&quot;&gt;Sorbet: Ruby Static Type Checker&lt;/a&gt;&lt;/li&gt;
         4902 &lt;li&gt;&lt;a href=&quot;https://increment.com/&quot;&gt;Stripe’s Increment Magazine&lt;/a&gt;&lt;/li&gt;
         4903 &lt;li&gt;&lt;a href=&quot;https://press.stripe.com/&quot;&gt;The Dream Machine, Stripe Press&lt;/a&gt;&lt;/li&gt;
         4904 &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/book/show/830502.It&quot;&gt;IT by Stephen King&lt;/a&gt;&lt;/li&gt;
         4905 &lt;li&gt;&lt;a href=&quot;http://teachyourselfcs.com&quot;&gt;teachyourselfcs.com&lt;/a&gt;&lt;/li&gt;
         4906 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=v7s8m_-sA-Y&quot;&gt;Matt O’Ree (Charlie’s guitar teacher in 8th grade and winner of the 2006 Guitar Center King of The Blues)&lt;/a&gt;&lt;/li&gt;
         4907 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Flow-Psychology-Experience-Perennial-Classics/dp/0061339202&quot;&gt;Flow: The Psychology of Optimal Experience by Mihaly Csikszentmihalyi (second time that Oz recommended this book!)&lt;/a&gt;&lt;/li&gt;
         4908 &lt;li&gt;&lt;a href=&quot;https://twitter.com/awkc1996/status/1171792460198174726&quot;&gt;What happens when you use Excel for your genetics papers&lt;/a&gt;&lt;/li&gt;
         4909 &lt;li&gt;&lt;a href=&quot;https://www.hackreactor.com/&quot;&gt;Hack Reactor&lt;/a&gt;&lt;/li&gt;
         4910 &lt;li&gt;&lt;a href=&quot;https://mitpress.mit.edu/sites/default/files/sicp/index.html&quot;&gt;SICP&lt;/a&gt;&lt;/li&gt;
         4911 &lt;li&gt;&lt;a href=&quot;https://github.com/gw&quot;&gt;Grant Wu on GitHub&lt;/a&gt;&lt;/li&gt;
         4912 &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/gwu01/&quot;&gt;Grant Wu on LinkedIn&lt;/a&gt;&lt;/li&gt;
         4913 &lt;/ul&gt;
         4914 &lt;h3&gt;6: Algorithmically Speaking with Elliott Jin of Triplebyte&lt;/h3&gt;
         4915 &lt;p&gt;Elliott Jin is the Interview Team Tech Lead at Triplebyte. You&apos;re gonna hear a lot about Project Euler in this one.&lt;/p&gt;
         4916 &lt;blockquote&gt;
         4917 &lt;p&gt;Charlie and Oz explore Elliott&apos;s path down the various intellectual rabbit holes (mostly Project Euler) that led him to software engineering at Dropbox, teaching the Algorithms course at Bradfield, and now leading Triplebyte&apos;s Interview tech team. Elliott also reveals the correct way to read a textbook (of which Charlie hadn&apos;t the foggiest), and Oz and Elliott try to explain to Charlie how they motivate students in their classes through &quot;guided struggle.&quot;&lt;/p&gt;
         4918 &lt;/blockquote&gt;
         4919 &lt;audio controls=&quot;controls&quot;&gt;
         4920   &lt;source type=&quot;audio/mp3&quot; src=&quot;https://escapingweb.github.io/audio/006_algorithmically_speaking_with_elliott_jin_of_triplebyte.mp3&quot;&gt;&lt;/source&gt;
         4921 &lt;/audio&gt;
         4922 &lt;p&gt;Links and resources:&lt;/p&gt;
         4923 &lt;ul&gt;
         4924 &lt;li&gt;&lt;a href=&quot;https://projecteuler.net/&quot;&gt;Project Euler&lt;/a&gt;&lt;/li&gt;
         4925 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628%22&quot;&gt;K&amp;#x26;R C book&lt;/a&gt;&lt;/li&gt;
         4926 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Gorillas_(video_game)%22&quot;&gt;Gorillas - QBasic&lt;/a&gt;&lt;/li&gt;
         4927 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Windows_3.1x%22&quot;&gt;Windows 3.1&lt;/a&gt;&lt;/li&gt;
         4928 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Drugwars%22&quot;&gt;Drugwars (TI-83)&lt;/a&gt;&lt;/li&gt;
         4929 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Space_Trader_(Palm_OS)%22&quot;&gt;Space Trader&lt;/a&gt;&lt;/li&gt;
         4930 &lt;li&gt;&lt;a href=&quot;https://twitter.com/jessitron/status/1183377840089305089%22&quot;&gt;Computer Science Principles: Table of Contents tweet&lt;/a&gt;&lt;/li&gt;
         4931 &lt;li&gt;&lt;a href=&quot;https://web.nmsu.edu/~davidp/hpm-subm-2012-number-theory-course.pdf%22&quot;&gt;Teaching Number Theory from Sophie Germain&apos;s Manuscripts: syllabus by David Pengelly&lt;/a&gt;&lt;/li&gt;
         4932 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/How_to_Solve_It%22&quot;&gt;How to Solve It - George Polya&lt;/a&gt;&lt;/li&gt;
         4933 &lt;li&gt;&lt;a href=&quot;http://pleasingfungus.com/Silicon%20Zeroes/%22&quot;&gt;Silicon Zeroes game&lt;/a&gt;&lt;/li&gt;
         4934 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/The_Diamond_Age%22&quot;&gt;The Diamond Age - Neal Stephenson&lt;/a&gt;&lt;/li&gt;
         4935 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Computability-Logic-George-S-Boolos/dp/0521701465%22&quot;&gt;Computability and Logic&lt;/a&gt;&lt;/li&gt;
         4936 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Elements-Programming-Alexander-Stepanov/dp/032163537X%22&quot;&gt;Elements of Programming&lt;/a&gt;&lt;/li&gt;
         4937 &lt;li&gt;&lt;a href=&quot;https://mitpress.mit.edu/sites/default/files/sicp/index.html%22&quot;&gt;SICP&lt;/a&gt;&lt;/li&gt;
         4938 &lt;li&gt;&lt;a href=&quot;http://augmentingcognition.com/ltm.html%22&quot;&gt;Augmenting Long-term Memory: Michael Nielsen&lt;/a&gt;&lt;/li&gt;
         4939 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Mind-Play-Shannon-Invented-Information/dp/1476766681%22&quot;&gt;A Mind at Play (Claude Shannon biography) - Jimmy Soni and Rob Goodman&lt;/a&gt;&lt;/li&gt;
         4940 &lt;li&gt;&lt;a href=&quot;https://thebitplayer.com/%22&quot;&gt;The Bit Player (Claude Shannon movie)&lt;/a&gt;&lt;/li&gt;
         4941 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Useless_machine%22&quot;&gt;Shannon&apos;s ultimate machine&lt;/a&gt;&lt;/li&gt;
         4942 &lt;li&gt;&lt;a href=&quot;https://www.dropbox.com%22&quot;&gt;Dropbox&lt;/a&gt;&lt;/li&gt;
         4943 &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Formative_assessment%22&quot;&gt;Formative assessment Wikipedia article&lt;/a&gt;&lt;/li&gt;
         4944 &lt;li&gt;&lt;a href=&quot;https://triplebyte.com/%22&quot;&gt;Triplebyte&lt;/a&gt;&lt;/li&gt;
         4945 &lt;li&gt;&lt;a href=&quot;https://github.com/robot-dreams%22&quot;&gt;Elliott Jin on GitHub&lt;/a&gt;&lt;/li&gt;
         4946 &lt;li&gt;&lt;a href=&quot;https://medium.com/@robot_dreams%22&quot;&gt;Elliott Jin on Medium&lt;/a&gt;&lt;/li&gt;
         4947 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Notes on Map and Compass Navigation]]></title><description><![CDATA[Prior to the shelter-in-place quarantine, my friend Jason and I had been going on what I like to call "sixth grade classtrips" to various…]]></description><link>https://www.charlieharrington.com/notes-on-map-and-compass-navigation</link><guid isPermaLink="false">https://www.charlieharrington.com/notes-on-map-and-compass-navigation</guid><pubDate>Fri, 27 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Prior to the shelter-in-place quarantine, my friend Jason and I had been going on what I like to call &quot;sixth grade classtrips&quot; to various nerdy sites of interest in the Bay Area. First on our list was the Nike Missile site, which is right over the Golden Gate Bridge in Marin. I&apos;ll share my notes on that one soon. Our next big classtrip was scheduled to be the Stanford Linear Particle Accelerator Center in Menlo Park (maybe you&apos;ve seen the signs for this on the highway and wondered...), but that&apos;s first on our list once everything&apos;s safe again.&lt;/p&gt;
         4948 &lt;p&gt;After the Nike Missile site, we decided to take a course on map &amp;#x26; compass navigation through REI. Here&apos;s what we learned in four brisk hours standing on a field in Palo Alto:&lt;/p&gt;
         4949 &lt;h2&gt;Maps&lt;/h2&gt;
         4950 &lt;ul&gt;
         4951 &lt;li&gt;Using a map is about using &lt;strong&gt;filters&lt;/strong&gt; to reduce your search area&lt;/li&gt;
         4952 &lt;li&gt;Download &lt;a href=&quot;https://www.usgs.gov/products/maps/topo-maps&quot;&gt;free USGS maps&lt;/a&gt;! Print online with &lt;a href=&quot;https://caltopo.com/&quot;&gt;Caltopo&lt;/a&gt;. Best scale is 7 &amp;#x26; 1/2 minute (there are 60 minutes in a degree)&lt;/li&gt;
         4953 &lt;li&gt;
         4954 &lt;p&gt;SCOPE acronym:&lt;/p&gt;
         4955 &lt;ul&gt;
         4956 &lt;li&gt;shape&lt;/li&gt;
         4957 &lt;li&gt;color&lt;/li&gt;
         4958 &lt;li&gt;orientation&lt;/li&gt;
         4959 &lt;li&gt;proportion (aka distance)&lt;/li&gt;
         4960 &lt;/ul&gt;
         4961 &lt;/li&gt;
         4962 &lt;li&gt;You don&apos;t have to go in order of the acronym!&lt;/li&gt;
         4963 &lt;/ul&gt;
         4964 &lt;h3&gt;Shape&lt;/h3&gt;
         4965 &lt;ul&gt;
         4966 &lt;li&gt;Look for valleys, ridges, hills with flat tops, gulleys, hills in a row (e.g. 3 hills in a straight line), shape of the tree line&lt;/li&gt;
         4967 &lt;li&gt;
         4968 &lt;p&gt;Hidden Valley Ranch Salad Dressing&lt;/p&gt;
         4969 &lt;ul&gt;
         4970 &lt;li&gt;Another acronym. Used by the &quot;military&quot;&lt;/li&gt;
         4971 &lt;li&gt;Hills Valleys Ridges Spurs Depressions&lt;/li&gt;
         4972 &lt;li&gt;These are the landshapes to look for on your map and in the area&lt;/li&gt;
         4973 &lt;/ul&gt;
         4974 &lt;/li&gt;
         4975 &lt;/ul&gt;
         4976 &lt;h3&gt;Color&lt;/h3&gt;
         4977 &lt;ul&gt;
         4978 &lt;li&gt;green = trees, white = not trees&lt;/li&gt;
         4979 &lt;li&gt;How to tell if you&apos;re in trees? Look up, if you see branches, you&apos;re in a green area of the map&lt;/li&gt;
         4980 &lt;li&gt;Sometimes white areas will have scrub brushes and plantlife, don&apos;t be confused&lt;/li&gt;
         4981 &lt;li&gt;Sometimes the tops of green hills will have white scrub / chaparral areas&lt;/li&gt;
         4982 &lt;li&gt;red or black indicates a human-made object&lt;/li&gt;
         4983 &lt;li&gt;trails are often not on a map. Many of the surveys were done decades ago, before these trails&lt;/li&gt;
         4984 &lt;/ul&gt;
         4985 &lt;h3&gt;Orientation&lt;/h3&gt;
         4986 &lt;ul&gt;
         4987 &lt;li&gt;Use compass to orient the map, then place the map on the ground. This allows you to walk around the map in any direction and see the same things in real-life as the map&lt;/li&gt;
         4988 &lt;li&gt;Maps usually point North&lt;/li&gt;
         4989 &lt;/ul&gt;
         4990 &lt;h3&gt;Proportion (Distance)&lt;/h3&gt;
         4991 &lt;ul&gt;
         4992 &lt;li&gt;Measured as the crow flies, not on the ground&lt;/li&gt;
         4993 &lt;li&gt;Maps have a scale on them&lt;/li&gt;
         4994 &lt;li&gt;You can use the string of your compass to trace a trail, and then make the string straight and taut to get the distance of a trail using the map&apos;s ruler / scale&lt;/li&gt;
         4995 &lt;li&gt;Good skill to learn: look at object in the distance and estimate the distance. Use a range and keep getting tighter (e.g. it&apos;s somewhere between 10 ft and a mile away)&lt;/li&gt;
         4996 &lt;li&gt;Make sure you know if your map is in miles or kilometers&lt;/li&gt;
         4997 &lt;/ul&gt;
         4998 &lt;h3&gt;Elevation&lt;/h3&gt;
         4999 &lt;ul&gt;
         5000 &lt;li&gt;Measures vertical distance above sea level in feet&lt;/li&gt;
         5001 &lt;li&gt;5280 feet in a mile&lt;/li&gt;
         5002 &lt;li&gt;Contour lines have a standard elevation gap between them (e.g. 40 ft), but the land between them can fluctuate in real life as you pass through them (it&apos;s not a smooth linear ascent)&lt;/li&gt;
         5003 &lt;li&gt;Maps have &quot;index&quot; contour lines that state their elevation&lt;/li&gt;
         5004 &lt;li&gt;&quot;Intermediate&quot; contour lines don&apos;t state their elevation, but can be inferred from the index lines&lt;/li&gt;
         5005 &lt;li&gt;When lines are close together = STEEP!&lt;/li&gt;
         5006 &lt;li&gt;Fun experiment: slice a potato to measure contour lines! &lt;em&gt;Note I did this when I got home, as you can see here:&lt;/em&gt;&lt;/li&gt;
         5007 &lt;/ul&gt;
         5008 &lt;p&gt;&lt;span
         5009       class=&quot;gatsby-resp-image-wrapper&quot;
         5010       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5011     &gt;
         5012       &lt;a
         5013     class=&quot;gatsby-resp-image-link&quot;
         5014     href=&quot;/static/cd59ff499985ae9c272723cfe801cbf8/d2602/p1.jpg&quot;
         5015     style=&quot;display: block&quot;
         5016     target=&quot;_blank&quot;
         5017     rel=&quot;noopener&quot;
         5018   &gt;
         5019     &lt;span
         5020     class=&quot;gatsby-resp-image-background-image&quot;
         5021     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAADAAL/2gAMAwEAAhADEAAAAXLp4NLDCz//xAAaEAACAgMAAAAAAAAAAAAAAAABAwARAhIT/9oACAEBAAEFAlXqnM9IBQCwGT//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwEn/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAGRAAAgMBAAAAAAAAAAAAAAAAABEBEBIh/9oACAEBAAY/AhTLdcN1/8QAGhABAQEAAwEAAAAAAAAAAAAAAQARMVGh0f/aAAgBAQABPyHIhO+MNllHq5wHq1v/2gAMAwEAAgADAAAAEGM//8QAFhEBAQEAAAAAAAAAAAAAAAAAARAR/9oACAEDAQE/EEA7P//EABYRAQEBAAAAAAAAAAAAAAAAABEBEP/aAAgBAgEBPxCrn//EABoQAQEBAQEBAQAAAAAAAAAAABEBACExUaH/2gAIAQEAAT8QCiS0dOXJfcV3kyB5IHX7invTYP3FIz2O/9k=&apos;); background-size: cover; display: block;&quot;
         5022   &gt;&lt;/span&gt;
         5023   &lt;img
         5024         class=&quot;gatsby-resp-image-image&quot;
         5025         alt=&quot;potato1&quot;
         5026         title=&quot;potato1&quot;
         5027         src=&quot;/static/cd59ff499985ae9c272723cfe801cbf8/6aca1/p1.jpg&quot;
         5028         srcset=&quot;/static/cd59ff499985ae9c272723cfe801cbf8/d2f63/p1.jpg 163w,
         5029 /static/cd59ff499985ae9c272723cfe801cbf8/c989d/p1.jpg 325w,
         5030 /static/cd59ff499985ae9c272723cfe801cbf8/6aca1/p1.jpg 650w,
         5031 /static/cd59ff499985ae9c272723cfe801cbf8/7c09c/p1.jpg 975w,
         5032 /static/cd59ff499985ae9c272723cfe801cbf8/01ab0/p1.jpg 1300w,
         5033 /static/cd59ff499985ae9c272723cfe801cbf8/d2602/p1.jpg 4032w&quot;
         5034         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5035         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5036         loading=&quot;lazy&quot;
         5037       /&gt;
         5038   &lt;/a&gt;
         5039     &lt;/span&gt;&lt;/p&gt;
         5040 &lt;p&gt;&lt;span
         5041       class=&quot;gatsby-resp-image-wrapper&quot;
         5042       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5043     &gt;
         5044       &lt;a
         5045     class=&quot;gatsby-resp-image-link&quot;
         5046     href=&quot;/static/95024dcb4b9020a04454a93913894a99/d2602/p2.jpg&quot;
         5047     style=&quot;display: block&quot;
         5048     target=&quot;_blank&quot;
         5049     rel=&quot;noopener&quot;
         5050   &gt;
         5051     &lt;span
         5052     class=&quot;gatsby-resp-image-background-image&quot;
         5053     style=&quot;padding-bottom: 74.84662576687117%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAIDBAX/xAAVAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABdHNfKswh/8QAGxAAAgEFAAAAAAAAAAAAAAAAAQISAAMQESH/2gAIAQEAAQUCkZDDW9heLX//xAAWEQEBAQAAAAAAAAAAAAAAAAARARD/2gAIAQMBAT8BoZ//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwEn/8QAGBAAAgMAAAAAAAAAAAAAAAAAABABIXH/2gAIAQEABj8Cx0Qv/8QAGxABAAIDAQEAAAAAAAAAAAAAAQARITFBUaH/2gAIAQEAAT8hXuYOJoJMduUHZ9gQOwlnk//aAAwDAQACAAMAAAAQEB//xAAXEQADAQAAAAAAAAAAAAAAAAABEBEx/9oACAEDAQE/EKBNX//EABcRAQADAAAAAAAAAAAAAAAAABEBEDH/2gAIAQIBAT8QTLlf/8QAGRABAQEBAQEAAAAAAAAAAAAAAREAMSFh/9oACAEBAAE/ELiUHjjmPCSm78J+OoESkfAaYaAZpdL9rv/Z&apos;); background-size: cover; display: block;&quot;
         5054   &gt;&lt;/span&gt;
         5055   &lt;img
         5056         class=&quot;gatsby-resp-image-image&quot;
         5057         alt=&quot;potato1&quot;
         5058         title=&quot;potato1&quot;
         5059         src=&quot;/static/95024dcb4b9020a04454a93913894a99/6aca1/p2.jpg&quot;
         5060         srcset=&quot;/static/95024dcb4b9020a04454a93913894a99/d2f63/p2.jpg 163w,
         5061 /static/95024dcb4b9020a04454a93913894a99/c989d/p2.jpg 325w,
         5062 /static/95024dcb4b9020a04454a93913894a99/6aca1/p2.jpg 650w,
         5063 /static/95024dcb4b9020a04454a93913894a99/7c09c/p2.jpg 975w,
         5064 /static/95024dcb4b9020a04454a93913894a99/01ab0/p2.jpg 1300w,
         5065 /static/95024dcb4b9020a04454a93913894a99/d2602/p2.jpg 4032w&quot;
         5066         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5067         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5068         loading=&quot;lazy&quot;
         5069       /&gt;
         5070   &lt;/a&gt;
         5071     &lt;/span&gt;&lt;/p&gt;
         5072 &lt;p&gt;&lt;span
         5073       class=&quot;gatsby-resp-image-wrapper&quot;
         5074       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5075     &gt;
         5076       &lt;a
         5077     class=&quot;gatsby-resp-image-link&quot;
         5078     href=&quot;/static/7e4d6074a9f546fb80b165746dda1325/9568a/p5.jpg&quot;
         5079     style=&quot;display: block&quot;
         5080     target=&quot;_blank&quot;
         5081     rel=&quot;noopener&quot;
         5082   &gt;
         5083     &lt;span
         5084     class=&quot;gatsby-resp-image-background-image&quot;
         5085     style=&quot;padding-bottom: 133.12883435582822%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAbABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAECAwT/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAwEC/9oADAMBAAIQAxAAAAHfPsqdGWOZUDaJD//EABwQAAICAgMAAAAAAAAAAAAAAAACAREDEAQSQf/aAAgBAQABBQJ3XAJyZlpmh8aOKipqzsWea//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABoQAAICAwAAAAAAAAAAAAAAAAABESIwMTL/2gAIAQEABj8C1LEoOWyyKrB//8QAGxABAAIDAQEAAAAAAAAAAAAAAQARECExcUH/2gAIAQEAAT8h1BZjcuL8jKvQRUbEnOTybya9IOX/2gAMAwEAAgADAAAAEKs3sP/EABYRAQEBAAAAAAAAAAAAAAAAABEQAf/aAAgBAwEBPxBwhP/EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/EFVX/8QAHhABAQACAgIDAAAAAAAAAAAAAREAITFBYaEQUZH/2gAIAQEAAT8QhRGl4DzgNpUMTIsKdM9uETJBqYBGvsb/AHKjUzUqQXsx017MvkD4LiJr38K3nP/Z&apos;); background-size: cover; display: block;&quot;
         5086   &gt;&lt;/span&gt;
         5087   &lt;img
         5088         class=&quot;gatsby-resp-image-image&quot;
         5089         alt=&quot;potato5&quot;
         5090         title=&quot;potato5&quot;
         5091         src=&quot;/static/7e4d6074a9f546fb80b165746dda1325/6aca1/p5.jpg&quot;
         5092         srcset=&quot;/static/7e4d6074a9f546fb80b165746dda1325/d2f63/p5.jpg 163w,
         5093 /static/7e4d6074a9f546fb80b165746dda1325/c989d/p5.jpg 325w,
         5094 /static/7e4d6074a9f546fb80b165746dda1325/6aca1/p5.jpg 650w,
         5095 /static/7e4d6074a9f546fb80b165746dda1325/7c09c/p5.jpg 975w,
         5096 /static/7e4d6074a9f546fb80b165746dda1325/01ab0/p5.jpg 1300w,
         5097 /static/7e4d6074a9f546fb80b165746dda1325/9568a/p5.jpg 3024w&quot;
         5098         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5099         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5100         loading=&quot;lazy&quot;
         5101       /&gt;
         5102   &lt;/a&gt;
         5103     &lt;/span&gt;&lt;/p&gt;
         5104 &lt;ul&gt;
         5105 &lt;li&gt;Contour lines are shaped like upside down V when there is a small creek valley. The V points uphill, away from the water direction&lt;/li&gt;
         5106 &lt;/ul&gt;
         5107 &lt;p&gt;&lt;span
         5108       class=&quot;gatsby-resp-image-wrapper&quot;
         5109       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5110     &gt;
         5111       &lt;a
         5112     class=&quot;gatsby-resp-image-link&quot;
         5113     href=&quot;/static/031c2a9d16ebcff723645aaf9a18bd29/9568a/v.jpg&quot;
         5114     style=&quot;display: block&quot;
         5115     target=&quot;_blank&quot;
         5116     rel=&quot;noopener&quot;
         5117   &gt;
         5118     &lt;span
         5119     class=&quot;gatsby-resp-image-background-image&quot;
         5120     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAECAwQF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQD/2gAMAwEAAhADEAAAAfU05pKiBbXGzA//xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIRAyL/2gAIAQEAAQUC0R0XvSa2qXvDEPlLf//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8BH//EABsQAAEEAwAAAAAAAAAAAAAAAAEAECKBAgMR/9oACAEBAAY/AmMdlMUY50X6v//EABwQAQEAAQUBAAAAAAAAAAAAAAEAIRExQVFhkf/aAAgBAQABPyEXUpHIevEMwpMrctZeXfAwTl+x0E1Wur7f/9oADAMBAAIAAwAAABDvP8D/xAAWEQEBAQAAAAAAAAAAAAAAAAAQARH/2gAIAQMBAT8Q0h//xAAWEQEBAQAAAAAAAAAAAAAAAAAQARH/2gAIAQIBAT8Qwp//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMUFxof/aAAgBAQABPxCkoD3eUcRgWuFaOYhQ/MPXEAE1j0KiR6DYeY5TjxoyaavmAtbWMOTP/9k=&apos;); background-size: cover; display: block;&quot;
         5121   &gt;&lt;/span&gt;
         5122   &lt;img
         5123         class=&quot;gatsby-resp-image-image&quot;
         5124         alt=&quot;vshape&quot;
         5125         title=&quot;vshape&quot;
         5126         src=&quot;/static/031c2a9d16ebcff723645aaf9a18bd29/6aca1/v.jpg&quot;
         5127         srcset=&quot;/static/031c2a9d16ebcff723645aaf9a18bd29/d2f63/v.jpg 163w,
         5128 /static/031c2a9d16ebcff723645aaf9a18bd29/c989d/v.jpg 325w,
         5129 /static/031c2a9d16ebcff723645aaf9a18bd29/6aca1/v.jpg 650w,
         5130 /static/031c2a9d16ebcff723645aaf9a18bd29/7c09c/v.jpg 975w,
         5131 /static/031c2a9d16ebcff723645aaf9a18bd29/01ab0/v.jpg 1300w,
         5132 /static/031c2a9d16ebcff723645aaf9a18bd29/9568a/v.jpg 3024w&quot;
         5133         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5134         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5135         loading=&quot;lazy&quot;
         5136       /&gt;
         5137   &lt;/a&gt;
         5138     &lt;/span&gt;&lt;/p&gt;
         5139 &lt;ul&gt;
         5140 &lt;li&gt;Spurs look like shallow U shapes&lt;/li&gt;
         5141 &lt;/ul&gt;
         5142 &lt;h2&gt;Compass&lt;/h2&gt;
         5143 &lt;ul&gt;
         5144 &lt;li&gt;Four skills to learn:&lt;/li&gt;
         5145 &lt;li&gt;
         5146 &lt;p&gt;Real World&lt;/p&gt;
         5147 &lt;ul&gt;
         5148 &lt;li&gt;(1) Follow a field bearing&lt;/li&gt;
         5149 &lt;li&gt;(2) Take a bearing of an object&lt;/li&gt;
         5150 &lt;/ul&gt;
         5151 &lt;/li&gt;
         5152 &lt;li&gt;
         5153 &lt;p&gt;&quot;Map World&quot;&lt;/p&gt;
         5154 &lt;ul&gt;
         5155 &lt;li&gt;(3) Find object on map and measure angle&lt;/li&gt;
         5156 &lt;li&gt;(4) Start with angle and draw on the map&lt;/li&gt;
         5157 &lt;/ul&gt;
         5158 &lt;/li&gt;
         5159 &lt;li&gt;Angles are always measured clockwise&lt;/li&gt;
         5160 &lt;/ul&gt;
         5161 &lt;p&gt;&lt;span
         5162       class=&quot;gatsby-resp-image-wrapper&quot;
         5163       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5164     &gt;
         5165       &lt;a
         5166     class=&quot;gatsby-resp-image-link&quot;
         5167     href=&quot;/static/71c143c98f02af3d4502f27d460e7d2f/e12a7/compass.jpg&quot;
         5168     style=&quot;display: block&quot;
         5169     target=&quot;_blank&quot;
         5170     rel=&quot;noopener&quot;
         5171   &gt;
         5172     &lt;span
         5173     class=&quot;gatsby-resp-image-background-image&quot;
         5174     style=&quot;padding-bottom: 80.98159509202453%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAQABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAMBAgX/xAAVAQEBAAAAAAAAAAAAAAAAAAABAP/aAAwDAQACEAMQAAAB0xdiYSD/AP/EABkQAAIDAQAAAAAAAAAAAAAAAAABAhARQf/aAAgBAQABBQLTuoRGv//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABoQAQACAwEAAAAAAAAAAAAAAAEAMRAhUeH/2gAIAQEAAT8hTUOnbUIAKIl9Mf/aAAwDAQACAAMAAAAQDy//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/ED//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAaEAEBAQADAQAAAAAAAAAAAAABEQAhMXFB/9oACAEBAAE/EEokXuZh3qeDIKNv0HBrLzGc1i8wxxv/2Q==&apos;); background-size: cover; display: block;&quot;
         5175   &gt;&lt;/span&gt;
         5176   &lt;img
         5177         class=&quot;gatsby-resp-image-image&quot;
         5178         alt=&quot;compass&quot;
         5179         title=&quot;compass&quot;
         5180         src=&quot;/static/71c143c98f02af3d4502f27d460e7d2f/6aca1/compass.jpg&quot;
         5181         srcset=&quot;/static/71c143c98f02af3d4502f27d460e7d2f/d2f63/compass.jpg 163w,
         5182 /static/71c143c98f02af3d4502f27d460e7d2f/c989d/compass.jpg 325w,
         5183 /static/71c143c98f02af3d4502f27d460e7d2f/6aca1/compass.jpg 650w,
         5184 /static/71c143c98f02af3d4502f27d460e7d2f/7c09c/compass.jpg 975w,
         5185 /static/71c143c98f02af3d4502f27d460e7d2f/01ab0/compass.jpg 1300w,
         5186 /static/71c143c98f02af3d4502f27d460e7d2f/e12a7/compass.jpg 2948w&quot;
         5187         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5188         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5189         loading=&quot;lazy&quot;
         5190       /&gt;
         5191   &lt;/a&gt;
         5192     &lt;/span&gt;&lt;/p&gt;
         5193 &lt;ul&gt;
         5194 &lt;li&gt;If you forget the compass directions, it spells &quot;WE&quot; left to right.&lt;/li&gt;
         5195 &lt;li&gt;True north (north pole) vs Magnetic North (which can move around!)&lt;/li&gt;
         5196 &lt;li&gt;Declination is number of angles from true north to magnetic north&lt;/li&gt;
         5197 &lt;li&gt;Always keep your moving needle on the declination&lt;/li&gt;
         5198 &lt;li&gt;Angle of declination needs to be known for your area (look this up!)&lt;/li&gt;
         5199 &lt;/ul&gt;
         5200 &lt;p&gt;&lt;span
         5201       class=&quot;gatsby-resp-image-wrapper&quot;
         5202       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5203     &gt;
         5204       &lt;a
         5205     class=&quot;gatsby-resp-image-link&quot;
         5206     href=&quot;/static/19346824ea175b6cf4796d0c7637dbd4/dbde2/declination.jpg&quot;
         5207     style=&quot;display: block&quot;
         5208     target=&quot;_blank&quot;
         5209     rel=&quot;noopener&quot;
         5210   &gt;
         5211     &lt;span
         5212     class=&quot;gatsby-resp-image-background-image&quot;
         5213     style=&quot;padding-bottom: 26.380368098159508%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAFABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAME/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAd9AqI//xAAWEAEBAQAAAAAAAAAAAAAAAAAAAQL/2gAIAQEAAQUCZR//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAQ/9oACAEBAAY/An//xAAZEAACAwEAAAAAAAAAAAAAAAABIQAQETH/2gAIAQEAAT8hAx0Bdn//2gAMAwEAAgADAAAAEIAv/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAFxABAQEBAAAAAAAAAAAAAAAAASEAEf/aAAgBAQABPxAAgtwvOtMvNb//2Q==&apos;); background-size: cover; display: block;&quot;
         5214   &gt;&lt;/span&gt;
         5215   &lt;img
         5216         class=&quot;gatsby-resp-image-image&quot;
         5217         alt=&quot;declination&quot;
         5218         title=&quot;declination&quot;
         5219         src=&quot;/static/19346824ea175b6cf4796d0c7637dbd4/6aca1/declination.jpg&quot;
         5220         srcset=&quot;/static/19346824ea175b6cf4796d0c7637dbd4/d2f63/declination.jpg 163w,
         5221 /static/19346824ea175b6cf4796d0c7637dbd4/c989d/declination.jpg 325w,
         5222 /static/19346824ea175b6cf4796d0c7637dbd4/6aca1/declination.jpg 650w,
         5223 /static/19346824ea175b6cf4796d0c7637dbd4/7c09c/declination.jpg 975w,
         5224 /static/19346824ea175b6cf4796d0c7637dbd4/01ab0/declination.jpg 1300w,
         5225 /static/19346824ea175b6cf4796d0c7637dbd4/dbde2/declination.jpg 2815w&quot;
         5226         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5227         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5228         loading=&quot;lazy&quot;
         5229       /&gt;
         5230   &lt;/a&gt;
         5231     &lt;/span&gt;&lt;/p&gt;
         5232 &lt;ul&gt;
         5233 &lt;li&gt;Angle of declination grows larger as you move north&lt;/li&gt;
         5234 &lt;li&gt;A compass in the Southern hemisphere isn&apos;t going to work very well&lt;/li&gt;
         5235 &lt;li&gt;North Star does point to true North (only object in sky that doesn&apos;t move as the Earth rotates)&lt;/li&gt;
         5236 &lt;/ul&gt;
         5237 &lt;h2&gt;Triangulation (my favorite part of the class!)&lt;/h2&gt;
         5238 &lt;ul&gt;
         5239 &lt;li&gt;Brings it all together! This helps you &quot;locate&quot; yourself on a map.&lt;/li&gt;
         5240 &lt;li&gt;General overview: Finding your location a map by taking three field bearings, making their angles, and then putting compass on the map and drawing a straight line with their angles&lt;/li&gt;
         5241 &lt;li&gt;You definitely need to know exactly where the objects of interest are on the map for this to work (e.g. a mountaintop, a water-tower, etc)&lt;/li&gt;
         5242 &lt;li&gt;
         5243 &lt;p&gt;Steps:&lt;/p&gt;
         5244 &lt;ol&gt;
         5245 &lt;li&gt;Take bearing of an object by pointing compass at object and moving the dial until the needed is at the angle of declination&lt;/li&gt;
         5246 &lt;li&gt;Move compass to map and line it up so that it is pointing to angle of declination (but don&apos;t change anything on your compass dial!)&lt;/li&gt;
         5247 &lt;li&gt;Draw a straight line&lt;/li&gt;
         5248 &lt;li&gt;Repeat 2 - 3 times with different objects&lt;/li&gt;
         5249 &lt;/ol&gt;
         5250 &lt;/li&gt;
         5251 &lt;li&gt;At this point, you should have created a &quot;triangle&quot; where you are likely somewhere inside!&lt;/li&gt;
         5252 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Dean of Discipline]]></title><description><![CDATA[When I first got to Red Bank Catholic High School, I’d hear some manner of the following all the time: “Your dad is the best” “Your dad is…]]></description><link>https://www.charlieharrington.com/dean-of-discipline</link><guid isPermaLink="false">https://www.charlieharrington.com/dean-of-discipline</guid><pubDate>Sun, 01 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;When I first got to Red Bank Catholic High School, I’d hear some manner of the following all the time:&lt;/p&gt;
         5253 &lt;p&gt;“Your dad is the best”&lt;/p&gt;
         5254 &lt;p&gt;“Your dad is so scary”&lt;/p&gt;
         5255 &lt;p&gt;“Your dad is the MAN”&lt;/p&gt;
         5256 &lt;p&gt;I’d nod along, because often these comments were from some of the more notorious characters at school. But eventually, I cracked:&lt;/p&gt;
         5257 &lt;p&gt;“Yeah, he is! But wait til you meet him. Because Mr. Harrington isn&apos;t my dad - he&apos;s my UNCLE!”&lt;/p&gt;
         5258 &lt;p&gt;Yes, I will finally admit here that Uncle Dennis gave me a bit of a head start at RBC. But only by throwing me alongside the summer detention kids as part of the St. James / RBC Maintenance Crew in the summers before freshman, sophomore, and junior years.&lt;/p&gt;
         5259 &lt;p&gt;To this day, it was the best job I’ve ever had. We smashed walls with a sledgehammer, we scraped gum off carpets with Gum-Freez (and sprayed each other in the arms with it, too), we changed the codes on every single locker. And we got a paycheck for it! One day we were told that there were 3 pigeons on the 4th floor. That was our mission. Good luck!&lt;/p&gt;
         5260 &lt;p&gt;I learned a lot about my uncle from his other charges in summer detention. Even though this man was their ostensible gate-keeper, they respected and adored him. When I told them that my internment was voluntary, they nodded. They understood.&lt;/p&gt;
         5261 &lt;p&gt;In my dad’s side of the family, the men are commanding, stubborn, strong, and loyal. (No offense, mom’s side). Grandpa Corn, his brothers Willie, Mike, and Dan, my dad.&lt;/p&gt;
         5262 &lt;p&gt;Uncle Dennis, Mr. Harrington, is no exception. He breaks the mold.&lt;/p&gt;
         5263 &lt;p&gt;Perhaps this comes from growing up in 1950s and 60s Keansburg - a place that is in my mind a combination of THE WONDER YEARS, A CHRISTMAS STORY, LEAVE IT TO BEAVER, and, of course, DENNIS THE MENACE.&lt;/p&gt;
         5264 &lt;p&gt;Getting a HARRINGTON in your morning homeroom wasn’t a curse - it was a blessing. You were invited into that inner sanctum of the cafeteria, that little pod with him and Mr. Mont, and you had your chance to make your stuttering case for the uniform violation or whatnot. But what it really was was a chance to get advice from the paragon of what Red Bank Catholic represents: learning, forgiveness, respect for others, self-dignity, community.&lt;/p&gt;
         5265 &lt;p&gt;Ask just about any RBC student and they’ll agree.&lt;/p&gt;
         5266 &lt;p&gt;For the last sixteen years, I’ve received countless out-of-the-blue messages from fellow students about Uncle Dennis.&lt;/p&gt;
         5267 &lt;p&gt;This is what they say:&lt;/p&gt;
         5268 &lt;p&gt;“Your uncle is the best.”&lt;/p&gt;
         5269 &lt;p&gt;“Your uncle saved my life”&lt;/p&gt;
         5270 &lt;p&gt;“Your uncle is the MAN.”&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Bullet Train to Merlin's Grave]]></title><description><![CDATA[If this is the future, why are you the same? My cousin Megeen got married two weeks ago. Instead of the traditional night-before-the-wedding…]]></description><link>https://www.charlieharrington.com/bullet-train-to-merlins-grave</link><guid isPermaLink="false">https://www.charlieharrington.com/bullet-train-to-merlins-grave</guid><pubDate>Fri, 08 Nov 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
         5271 &lt;p&gt;If this is the future, why are you the same?&lt;/p&gt;
         5272 &lt;/blockquote&gt;
         5273 &lt;p&gt;My cousin Megeen got married two weeks ago. Instead of the traditional night-before-the-wedding welcome party, she and her now-husband David Pope hosted POPESTOCK - a musical celebration featuring a variety of family-and-friends acts.&lt;/p&gt;
         5274 &lt;p&gt;It was amazing.&lt;/p&gt;
         5275 &lt;p&gt;The location for POPESTOCK was the mysterious Elk&apos;s Lodge in Red Bank, New Jersey. This rectangular shack of a building stands next to Riverside Gardens Park with perfect views of the Navesink River - the primo of primo locations in my hometown. For years, my cousins and I have wondered what lay beyond its unassuming doorway. We soon learned the answer: a really big bar and an even bigger empty room. In other words, exactly what we needed.&lt;/p&gt;
         5276 &lt;p&gt;Uncle Mike and Aunt Susan emceeded the festivities. They had one explicit rule: each act would be limited to one song. We&apos;ve got a lot of musical cousins (see &lt;a href=&quot;https://www.buffalorosemusic.com/&quot;&gt;Buffalo Rose&lt;/a&gt; or &lt;a href=&quot;https://www.darkcitystrings.com/&quot;&gt;Dark City Strings&lt;/a&gt;).&lt;/p&gt;
         5277 &lt;p&gt;But there were three exceptions to that rule:&lt;/p&gt;
         5278 &lt;ol&gt;
         5279 &lt;li&gt;David&apos;s old band &lt;a href=&quot;https://lightninging.bandcamp.com/&quot;&gt;Lightninging&lt;/a&gt; performed the ENTIRE BACKSIDE of Abbey Road, straight-through. It was completely unreal. I felt like I was watching the Beatles, if the Beatles lasted into the 1970s and moved to Brooklyn and also worked at Vinny&apos;s Pizzaria. If you have the means, I highly recommend seeing Lightninging live.&lt;/li&gt;
         5280 &lt;li&gt;Aunt Eileen (the mother of the bride) and her old friend (along with her son-in-law Greg) played two songs that they wrote years ago, one of which was last performed only at her own wedding. I&apos;ve always been told that Aunt Eileen could give Joni Mitchell a run for her money, and I was told right. Their set was reminiscent of the MUSIC FROM MALLARD concert series that my aunts and uncles put together in the mid-1980s at my Nana and Grandpa&apos;s house on Mallard Road in Middletown, New Jersey. These concerts pre-date my appearance on Earth, but I&apos;ve got a handful of the cassette tapes in my possession and I still wear the MALLARD III t-shirt all the time.&lt;/li&gt;
         5281 &lt;li&gt;My set.&lt;/li&gt;
         5282 &lt;/ol&gt;
         5283 &lt;p&gt;Although, one could argue (and I did) that my performance was really more of a medley than two distinct songs. Further, I think one could even argue that my set was less of a medley and more of a complete disaster.&lt;/p&gt;
         5284 &lt;p&gt;Allow me to explain.&lt;/p&gt;
         5285 &lt;p&gt;I&apos;ve written a six-fingered handful of songs in my life, but the two that seem to echo in eternity are called MERLIN&apos;S GRAVE and BULLET TRAIN. These two have been battle-tested and laughed at across many-a-campfire with my cousins over years.&lt;/p&gt;
         5286 &lt;p&gt;You see, neither of them are very good. Nor am I a good singer. But you can&apos;t tell me that they aren&apos;t groovy. &lt;/p&gt;
         5287 &lt;p&gt;My vision for the one-song set was this: I play the entire Merlin&apos;s Grave up to the jam section, which would turn into this epic Mike Oldfield&apos;s Tubular Bells style as I introduce additional instruments, one at a time. First, banjo by my cousin Jack. Then, mandolin by my cousin Michael. Finally, electric guitar by my cousin Peter. To cap it off, I&apos;d come in with some harmonica on top of it all. I put together a quick-and-dirty take of my vision on my laptop a few days before the wedding and emailed it to my cousins, which you can listen to here:&lt;/p&gt;
         5288 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/8UCJSqumSgg&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5289 &lt;p&gt;So far, so good. Simple. One-song. No Bullet Train. I was attempting to be a rules-follower.&lt;/p&gt;
         5290 &lt;p&gt;But you can&apos;t stop the bullet train once it goes off the rails...&lt;/p&gt;
         5291 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/WFA1TjSE6L0&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5292 &lt;p&gt;We are &lt;strong&gt;Hotdog Johnny and the Shady Oaks&lt;/strong&gt;:&lt;/p&gt;
         5293 &lt;ul&gt;
         5294 &lt;li&gt;Charlie Harrington - Vocals, Acoustic Guitar, Harmonica&lt;/li&gt;
         5295 &lt;li&gt;Michael Byrnes - Mandolin, Vocals&lt;/li&gt;
         5296 &lt;li&gt;Jack Byrnes - Banjo&lt;/li&gt;
         5297 &lt;li&gt;Aidan Byrnes - Drums&lt;/li&gt;
         5298 &lt;li&gt;Peter Clabby - Electric Guitar&lt;/li&gt;
         5299 &lt;li&gt;Alex &quot;The Grones&quot; Groneman - Acoustic Guitar&lt;/li&gt;
         5300 &lt;li&gt;Some dude no one knew - Bass&lt;/li&gt;
         5301 &lt;li&gt;Tommy Clabby - Sound engineer&lt;/li&gt;
         5302 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Summer Wind]]></title><description><![CDATA[Newport, Rhode Island A film photo I took with my friend Kristen's old camera. Alternative title: Kite Armada.]]></description><link>https://www.charlieharrington.com/summer-wind</link><guid isPermaLink="false">https://www.charlieharrington.com/summer-wind</guid><pubDate>Tue, 10 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
         5303       class=&quot;gatsby-resp-image-wrapper&quot;
         5304       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5305     &gt;
         5306       &lt;a
         5307     class=&quot;gatsby-resp-image-link&quot;
         5308     href=&quot;/static/122831651add0d67a1e0dc8f814101f0/f21dd/summerwind.jpg&quot;
         5309     style=&quot;display: block&quot;
         5310     target=&quot;_blank&quot;
         5311     rel=&quot;noopener&quot;
         5312   &gt;
         5313     &lt;span
         5314     class=&quot;gatsby-resp-image-background-image&quot;
         5315     style=&quot;padding-bottom: 66.25766871165644%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAAD/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/2gAMAwEAAhADEAAAAWaE0qEQJP/EABkQAAMBAQEAAAAAAAAAAAAAAAABAhIDEf/aAAgBAQABBQJdINSeoyhyM//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABgQAAMBAQAAAAAAAAAAAAAAAAABMSAy/9oACAEBAAY/AukVFx//xAAcEAACAQUBAAAAAAAAAAAAAAAAATERIUFhkdH/2gAIAQEAAT8hZ9hMjsaXRYEUVZkj/9oADAMBAAIAAwAAABBrL//EABYRAAMAAAAAAAAAAAAAAAAAAAARYf/aAAgBAwEBPxBQcP/EABcRAAMBAAAAAAAAAAAAAAAAAAABEUH/2gAIAQIBAT8Qr0p//8QAHBABAAIDAAMAAAAAAAAAAAAAAQARIVGBMbHx/9oACAEBAAE/EKyutPcLtQaE+WgAAM6ggrkvxDTFvk//2Q==&apos;); background-size: cover; display: block;&quot;
         5316   &gt;&lt;/span&gt;
         5317   &lt;img
         5318         class=&quot;gatsby-resp-image-image&quot;
         5319         alt=&quot;email&quot;
         5320         title=&quot;email&quot;
         5321         src=&quot;/static/122831651add0d67a1e0dc8f814101f0/6aca1/summerwind.jpg&quot;
         5322         srcset=&quot;/static/122831651add0d67a1e0dc8f814101f0/d2f63/summerwind.jpg 163w,
         5323 /static/122831651add0d67a1e0dc8f814101f0/c989d/summerwind.jpg 325w,
         5324 /static/122831651add0d67a1e0dc8f814101f0/6aca1/summerwind.jpg 650w,
         5325 /static/122831651add0d67a1e0dc8f814101f0/7c09c/summerwind.jpg 975w,
         5326 /static/122831651add0d67a1e0dc8f814101f0/01ab0/summerwind.jpg 1300w,
         5327 /static/122831651add0d67a1e0dc8f814101f0/f21dd/summerwind.jpg 3583w&quot;
         5328         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5329         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5330         loading=&quot;lazy&quot;
         5331       /&gt;
         5332   &lt;/a&gt;
         5333     &lt;/span&gt;&lt;/p&gt;
         5334 &lt;p&gt;&lt;em&gt;Newport, Rhode Island&lt;/em&gt;&lt;/p&gt;
         5335 &lt;p&gt;A film photo I took with my friend &lt;a href=&quot;http://www.kristineugenio.com/&quot;&gt;Kristen&lt;/a&gt;&apos;s old camera. Alternative title: &lt;em&gt;Kite Armada.&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Relay]]></title><description><![CDATA[I opened up Logic on a whim tonight and found the beginnings of this song, just sitting there, from a previous flight or some other bored…]]></description><link>https://www.charlieharrington.com/relay</link><guid isPermaLink="false">https://www.charlieharrington.com/relay</guid><pubDate>Tue, 02 Apr 2019 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/TAogrz_UZV0&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5336 &lt;p&gt;I opened up &lt;em&gt;Logic&lt;/em&gt; on a whim tonight and found the beginnings of this song, just sitting there, from a previous flight or some other bored evening. I think I probably ruined anything good about this song with the new middle section, but I swear it sounded good in my head(phones).&lt;/p&gt;
         5337 &lt;p&gt;The bouncing ball animation was created with the &lt;a href=&quot;https://editor.p5js.org/&quot;&gt;p5.js web editor&lt;/a&gt;, which is both awesome and easy to use. Don&apos;t take my word for it -- try out this code (not exactly the same as in the video, but probably cooler) and you&apos;ll see how fun p5.js / processing can be for kids of all ages.&lt;/p&gt;
         5338 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         5339   &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         5340   &lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         5341 &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         5342 
         5343 &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         5344   &lt;span class=&quot;token function&quot;&gt;circle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mouseX&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; mouseY&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         5345 &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[An Afternoon with Arduino]]></title><description><![CDATA[For the last eight years or so, I've been carrying around an Arduino (not literally on my person, but, you know, amongst my treasures…]]></description><link>https://www.charlieharrington.com/afternoon-with-arduino</link><guid isPermaLink="false">https://www.charlieharrington.com/afternoon-with-arduino</guid><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the last eight years or so, I&apos;ve been carrying around an &lt;a href=&quot;https://www.arduino.cc/&quot;&gt;Arduino&lt;/a&gt; (not literally on my person, but, you know, amongst my treasures), waiting for just the right time to start tinkering with it.&lt;/p&gt;
         5346 &lt;p&gt;That time, it turns out, was yesterday afternoon. This post outlines some of things I&apos;ve learned so far.&lt;/p&gt;
         5347 &lt;h3&gt;Ard-what-now?&lt;/h3&gt;
         5348 &lt;p&gt;An Arduino is a &lt;strong&gt;microcontroller&lt;/strong&gt; board. The board contains a CPU (central processing unit) along with some I/O (input / output) connections. You can think about it as a small circuit - a circuit that happens to contain a programmable computer on a chip. A chip that you can learn to easily program.&lt;/p&gt;
         5349 &lt;p&gt;Here&apos;s a picture of my Arduino (of the &lt;a href=&quot;https://store.arduino.cc/usa/arduino-uno-rev3&quot;&gt;Uno&lt;/a&gt; varietal):&lt;/p&gt;
         5350 &lt;p&gt;&lt;span
         5351       class=&quot;gatsby-resp-image-wrapper&quot;
         5352       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5353     &gt;
         5354       &lt;a
         5355     class=&quot;gatsby-resp-image-link&quot;
         5356     href=&quot;/static/5136bc8af49a005eba462180a3bf7000/9568a/uno.jpg&quot;
         5357     style=&quot;display: block&quot;
         5358     target=&quot;_blank&quot;
         5359     rel=&quot;noopener&quot;
         5360   &gt;
         5361     &lt;span
         5362     class=&quot;gatsby-resp-image-background-image&quot;
         5363     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMCBP/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAZJbl9jBVy1I1uEf/8QAGBABAAMBAAAAAAAAAAAAAAAAAQACEhH/2gAIAQEAAQUCylTsqKbVLMrMncEKk//EABgRAAMBAQAAAAAAAAAAAAAAAAABAhEh/9oACAEDAQE/Aatp8FZiMP/EABkRAAIDAQAAAAAAAAAAAAAAAAACARARIf/aAAgBAgEBPwFVjOkqbX//xAAZEAACAwEAAAAAAAAAAAAAAAAAMQEQETL/2gAIAQEABj8C2YOBD0U0r//EAB4QAQACAQQDAAAAAAAAAAAAAAEAETEhQVGBYZGh/9oACAEBAAE/IcQjzN87XLAg7lgCJtMek4iu1stxxDZoK4+wxpfuf//aAAwDAQACAAMAAAAQ+8g+/8QAGREAAgMBAAAAAAAAAAAAAAAAABEBIUFR/9oACAEDAQE/EEQSqxmCcP/EABgRAAMBAQAAAAAAAAAAAAAAAAABESFR/9oACAECAQE/EGqGuFdKz//EAB0QAQEAAgIDAQAAAAAAAAAAAAERACExQVFxgZH/2gAIAQEAAT8QDqJhX3zgkpOgJlqOyJcdi0CqdHH3FlaB5T3igu8F0hoxD5Jb3gKr9ZOwPbP/2Q==&apos;); background-size: cover; display: block;&quot;
         5364   &gt;&lt;/span&gt;
         5365   &lt;img
         5366         class=&quot;gatsby-resp-image-image&quot;
         5367         alt=&quot;Uno&quot;
         5368         title=&quot;Uno&quot;
         5369         src=&quot;/static/5136bc8af49a005eba462180a3bf7000/6aca1/uno.jpg&quot;
         5370         srcset=&quot;/static/5136bc8af49a005eba462180a3bf7000/d2f63/uno.jpg 163w,
         5371 /static/5136bc8af49a005eba462180a3bf7000/c989d/uno.jpg 325w,
         5372 /static/5136bc8af49a005eba462180a3bf7000/6aca1/uno.jpg 650w,
         5373 /static/5136bc8af49a005eba462180a3bf7000/7c09c/uno.jpg 975w,
         5374 /static/5136bc8af49a005eba462180a3bf7000/01ab0/uno.jpg 1300w,
         5375 /static/5136bc8af49a005eba462180a3bf7000/9568a/uno.jpg 3024w&quot;
         5376         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5377         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5378         loading=&quot;lazy&quot;
         5379       /&gt;
         5380   &lt;/a&gt;
         5381     &lt;/span&gt;&lt;/p&gt;
         5382 &lt;p&gt;I love the MADE IN ITALY mark in the upper left.&lt;/p&gt;
         5383 &lt;p&gt;The microprocessor (the computer chip) is the long flat black rectangle near the bottom-right corner of the device. It has 28 pins (14 on each side). Along the top edge of the Arduino you can see a strip of black input pins - these are the Arduino&apos;s &quot;digital&quot; pins (meaning that they can either be &quot;on&quot; or &quot;off&quot;). Below the CPU on the bottom right you can see another 5 &quot;analog&quot; pins (meaning that they can receive analog / continuous signals), and then a few &quot;power&quot; pins to the left to provide voltage, ground, and some other stuff that I don&apos;t know about yet.&lt;/p&gt;
         5384 &lt;h4&gt;Arduino vs Raspberry Pi&lt;/h4&gt;
         5385 &lt;p&gt;At this point, you might be asking yourself, &quot;How is an Arduino different from a &lt;a href=&quot;https://www.raspberrypi.org/&quot;&gt;Raspberry Pi&lt;/a&gt;?&quot;&lt;/p&gt;
         5386 &lt;p&gt;It&apos;s a good question, since both are affordable, adorable, tiny little computers that you can buy for about $30 bucks or less. But the Raspberry Pi is a full-on Linux computer. An Arduino is... not. Instead, the Arduino computer holds just one program at a time. It stores this program in durable memory, so that you can turn the Arduino on and off, and it will still &quot;remember&quot; its latest program. It&apos;s more like a single-purpose device -- except you can dream up and build that single-purpose as many times as you want.&lt;/p&gt;
         5387 &lt;h4&gt;Open-source roots&lt;/h4&gt;
         5388 &lt;p&gt;The company behind Arduino is a non-profit and the Arduino itself is open-source - which means that anyone can build an Arduino board themselves. The original idea behind Arduino was to make a simple device that designers and artists could use for rapid prototyping of &lt;em&gt;physical computing&lt;/em&gt; projects that use &lt;strong&gt;sensors&lt;/strong&gt; (aka &lt;em&gt;inputs&lt;/em&gt; like a keyboard or mouse or motion detectors) and &lt;strong&gt;actuators&lt;/strong&gt; (aka &lt;em&gt;outputs&lt;/em&gt; like a display or printer or lights) to interact and communicate with us human beans. Cool.&lt;/p&gt;
         5389 &lt;p&gt;Arduino is closely tied to the &lt;a href=&quot;https://processing.org/&quot;&gt;Processing community&lt;/a&gt;. In fact, that&apos;s a bit of an understatement, since you actually write Processing code when writing programs for the Arduino -- and, just like in Processing, these programs are also called Sketches. I was happy to see this, since one of my earliest computing classes was &lt;a href=&quot;https://twitter.com/blprnt&quot;&gt;Jer Thorp&lt;/a&gt;&apos;s &lt;a href=&quot;http://blog.blprnt.com/workshops&quot;&gt;Introduction to Processing course&lt;/a&gt; (which I unabashedly recommend, by the way).&lt;/p&gt;
         5390 &lt;p&gt;As I mentioned, anyone can download the open-source schematics for Arduino and build a board themeselves with basic components. But if you&apos;d like to make your tinkering lifestyle easier, then I suggest picking up a pre-assembled Arduino from a retailer like &lt;a href=&quot;https://www.makershed.com/&quot;&gt;Makershed&lt;/a&gt; or &lt;a href=&quot;https://www.adafruit.com&quot;&gt;Adafruit&lt;/a&gt;. The kit I bought (eight years ago) is the &lt;a href=&quot;https://www.makershed.com/products/make-getting-started-with-arduino-kit-special-edition&quot;&gt;MAKE: Getting Started With Arduino Kit&lt;/a&gt; -- the current version (v3) appears to be retailing for $79.99 bucks. IMHO, it&apos;s definitely worth it -- the kit comes along with a bunch of goodies that help you get started right away, like a breadboard, colorful wires, clickable switches, LEDs, sensors, and a friendly introductory book. I also picked up &lt;a href=&quot;https://www.amazon.com/Arduino-Quick-Start-Guide-Quick-start-Guides/dp/1934356662&quot;&gt;Arduino: A Quick-Start Guide&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/maik_schmidt&quot;&gt;Maik Schmidt&lt;/a&gt;, and I&apos;ve been enjoying this book as well.&lt;/p&gt;
         5391 &lt;h3&gt;Fun with LEDs&lt;/h3&gt;
         5392 &lt;p&gt;I believe you&apos;re legally required to write a program that blinks an LED on and off as your first project with Arduino.&lt;/p&gt;
         5393 &lt;p&gt;If you asked me a few days ago about LEDs - yeah, sure, I know about LEDs. Those little red lights in things like my Game Boy. Stands for... light emitting... diode.&lt;/p&gt;
         5394 &lt;p&gt;Great, you continue, what&apos;s a diode?&lt;/p&gt;
         5395 &lt;p&gt;Um.&lt;/p&gt;
         5396 &lt;p&gt;This is already one of the fun things about playing with Arduino. There are all sorts of basic electronics stuff that I sorta know about, but couldn&apos;t explain to a five-year-old or to a &lt;a href=&quot;https://en.wikipedia.org/wiki/Rubber_duck_debugging&quot;&gt;rubber duck on my desk&lt;/a&gt;. Or just don&apos;t know at all. But Arduino is helped me tackle these topics in a practical, tangible way.&lt;/p&gt;
         5397 &lt;p&gt;So, let&apos;s take a look at an LED together.&lt;/p&gt;
         5398 &lt;p&gt;&lt;span
         5399       class=&quot;gatsby-resp-image-wrapper&quot;
         5400       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5401     &gt;
         5402       &lt;a
         5403     class=&quot;gatsby-resp-image-link&quot;
         5404     href=&quot;/static/cf793aa4e22bdb748b2369630827f146/9568a/led.jpg&quot;
         5405     style=&quot;display: block&quot;
         5406     target=&quot;_blank&quot;
         5407     rel=&quot;noopener&quot;
         5408   &gt;
         5409     &lt;span
         5410     class=&quot;gatsby-resp-image-background-image&quot;
         5411     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAAAAMBAgUE/8QAFwEAAwEAAAAAAAAAAAAAAAAAAQIDAP/aAAwDAQACEAMQAAABtXx3R+iiK8zYxwKz/8QAGhAAAwEAAwAAAAAAAAAAAAAAAAECERAhMf/aAAgBAQABBQJYRct9HpOCzlWz/8QAFREBAQAAAAAAAAAAAAAAAAAAEAH/2gAIAQMBAT8BKf/EABURAQEAAAAAAAAAAAAAAAAAABAB/9oACAECAQE/ASH/xAAZEAABBQAAAAAAAAAAAAAAAAAAEBEgMeH/2gAIAQEABj8CGhq2f//EABwQAAICAgMAAAAAAAAAAAAAAAABESExgUFRkf/aAAgBAQABPyFkVkAKdCpgUdvRsFK2JDkJWYII/9oADAMBAAIAAwAAABAwJ33/xAAYEQACAwAAAAAAAAAAAAAAAAAAERAhQf/aAAgBAwEBPxCtFBn/xAAXEQEAAwAAAAAAAAAAAAAAAAABABAR/9oACAECAQE/EAthP//EABwQAQACAwEBAQAAAAAAAAAAAAEAESExQWGBkf/aAAgBAQABPxAUhDxgNS66H2GjCEAsBlYCgHwESrz+0CuKt5Nkuz2dpuf/2Q==&apos;); background-size: cover; display: block;&quot;
         5412   &gt;&lt;/span&gt;
         5413   &lt;img
         5414         class=&quot;gatsby-resp-image-image&quot;
         5415         alt=&quot;LED&quot;
         5416         title=&quot;LED&quot;
         5417         src=&quot;/static/cf793aa4e22bdb748b2369630827f146/6aca1/led.jpg&quot;
         5418         srcset=&quot;/static/cf793aa4e22bdb748b2369630827f146/d2f63/led.jpg 163w,
         5419 /static/cf793aa4e22bdb748b2369630827f146/c989d/led.jpg 325w,
         5420 /static/cf793aa4e22bdb748b2369630827f146/6aca1/led.jpg 650w,
         5421 /static/cf793aa4e22bdb748b2369630827f146/7c09c/led.jpg 975w,
         5422 /static/cf793aa4e22bdb748b2369630827f146/01ab0/led.jpg 1300w,
         5423 /static/cf793aa4e22bdb748b2369630827f146/9568a/led.jpg 3024w&quot;
         5424         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5425         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5426         loading=&quot;lazy&quot;
         5427       /&gt;
         5428   &lt;/a&gt;
         5429     &lt;/span&gt;&lt;/p&gt;
         5430 &lt;p&gt;See the longer pin / leg sticking out of the red part? That&apos;s the &lt;strong&gt;anode&lt;/strong&gt; terminal. The anode is the positive end of the LED. The shorter leg is the &lt;strong&gt;cathode&lt;/strong&gt; - the negative side. Electrons will flow from the anode to the cathode when connected. You&apos;ll want to connect the positive end to something providing voltage, and the negative end needs to be connected to ground. All diodes are polarized, meaning they have these distinct positive and negative sides. And LEDs (light emitting diodes) happen to provide illumination when they&apos;re connected to an active circuit.&lt;/p&gt;
         5431 &lt;p&gt;And they can be lots of pretty colors, too.&lt;/p&gt;
         5432 &lt;p&gt;Okay, so here&apos;s our legally-required sketch for blinking an LED connected to digital pin 13 every half-second.&lt;/p&gt;
         5433 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c++&quot;&gt;&lt;pre class=&quot;language-c++&quot;&gt;&lt;code class=&quot;language-c++&quot;&gt;const int LED = 13;
         5434 
         5435 void setup() {
         5436     pinMode(LED, OUTPUT);
         5437 }
         5438 
         5439 void loop() {
         5440     digitalWrite(LED, HIGH);
         5441     delay(500);
         5442     digitalWrite(LED, LOW);
         5443     delay(500);
         5444 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5445 &lt;p&gt;Pretty simple, right? We first declare a constant variable for the pin we&apos;re using. The &lt;code class=&quot;language-text&quot;&gt;setup()&lt;/code&gt; function will run once per program, right before the &lt;code class=&quot;language-text&quot;&gt;loop()&lt;/code&gt; kicks off its infinite loop, so we&apos;ll just let the Arduino know that we want to set pin 13 to &lt;code class=&quot;language-text&quot;&gt;OUTPUT&lt;/code&gt; mode. And then during our infinite loop, we&apos;ll toggle the voltage to the pin by passing &lt;code class=&quot;language-text&quot;&gt;HIGH&lt;/code&gt; (5 volts) or &lt;code class=&quot;language-text&quot;&gt;LOW&lt;/code&gt; (0 volts) to our pin 13 using the &lt;code class=&quot;language-text&quot;&gt;digitalWrite&lt;/code&gt; function, pausing 500 milliseconds between these operations.&lt;/p&gt;
         5446 &lt;p&gt;If you&apos;re coming from the Processing world, then this program structure of &lt;code class=&quot;language-text&quot;&gt;setup()&lt;/code&gt; and &lt;code class=&quot;language-text&quot;&gt;loop()&lt;/code&gt; should look very familiar, since it&apos;s literally the same.&lt;/p&gt;
         5447 &lt;p&gt;The Arduino IDE provides an easy way to verify your programs compile before flashing them over to your actual Arduino, so I suggest clicking the &lt;code class=&quot;language-text&quot;&gt;Verify&lt;/code&gt; button first. This will catch syntax errors, like pesky missing semi-colons.&lt;/p&gt;
         5448 &lt;p&gt;Next, we can set up our physical device.&lt;/p&gt;
         5449 &lt;p&gt;I&apos;m going to stick the LED into the Arduino, with the anode leg going into pin 13 and the cathode leg into ground. Note here that pin 13 is a special pin on the Arduino that has a resister built-in. If you try this with any other pin the Arduino, then the LED will burn out.&lt;/p&gt;
         5450 &lt;p&gt;Finally, we can send our program from our computer to the Arduino over a USB connection by clicking the &lt;code class=&quot;language-text&quot;&gt;Upload&lt;/code&gt; button in the IDE. Your Arduino should flash happily once its complete, and then it&apos;s off to the infinite races.&lt;/p&gt;
         5451 &lt;p&gt;&lt;img src=&quot;/7c4ea7182fa3fc012a5256b4bdb6dd00/blink.gif&quot; alt=&quot;Binary Counting&quot;&gt;&lt;/p&gt;
         5452 &lt;p&gt;Look at that blinker. Pretty great, huh? Note that this gif definitely speeds things up a bit.&lt;/p&gt;
         5453 &lt;h3&gt;Putting the &quot;S&quot; in USB&lt;/h3&gt;
         5454 &lt;p&gt;So, as I continued building stuff, I inevitably found myself wanting to &lt;code class=&quot;language-text&quot;&gt;console.log&lt;/code&gt; the heck out of a program that wasn&apos;t working.&lt;/p&gt;
         5455 &lt;p&gt;Let&apos;s talk about printing stuff with Arduino.&lt;/p&gt;
         5456 &lt;p&gt;Your Arduino is connected to your computer via a USB cable. USB. USB. That has to stand for something, right? It does. It stands for &quot;Universal Serial Bus.&quot; USB is a quote &quot;industry standard&quot; for communications between computers and peripherals. If you think back really hard to the time of Captain Marvel or even earlier, you might remember other ways that we connected peripherals to our computers -- like an dot matrix printer&apos;s parallel port or a PS/2 keyboard port. Well, in the time since Carol Danvers left us here to fend for ourselves, USB has taken over our hearts, minds, and wallets. But we&apos;re still using a &quot;serial connection&quot; when we&apos;re using USB devices - so we&apos;ll need to use the serial protocol to communicate with our Arduino.&lt;/p&gt;
         5457 &lt;p&gt;In other words, if we want to send or receive info from our Arduino program, we need to establish a serial connection with the device. Here&apos;s how you do that in a Processing sketch:&lt;/p&gt;
         5458 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c++&quot;&gt;&lt;pre class=&quot;language-c++&quot;&gt;&lt;code class=&quot;language-c++&quot;&gt;const unsigned int BAUD_RATE = 9600;
         5459 
         5460 void setup() {
         5461     Serial.begin(BAUD_RATE);
         5462 }
         5463 
         5464 void loop() {
         5465     Serial.println(&amp;quot;Hello, world!&amp;quot;);
         5466 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5467 &lt;p&gt;Baud rate, huh? I know this &lt;code class=&quot;language-text&quot;&gt;baud&lt;/code&gt; term, too. Modems had baud rates, IIRC. Some Wikipedia-ing and Google-ing reveal that baud rates are the rates at which information is transferred in a serial channel. In this case, with a baud rate of 9600, we&apos;re transferring a max of 9600 bits per second. 9600 happens to be the standard baud rate for Arduinos, but I believe you can choose a different rate.&lt;/p&gt;
         5468 &lt;p&gt;To view your &quot;console&quot;, you can click the &quot;Serial Monitor&quot; button in the IDE. &lt;/p&gt;
         5469 &lt;p&gt;&lt;span
         5470       class=&quot;gatsby-resp-image-wrapper&quot;
         5471       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5472     &gt;
         5473       &lt;a
         5474     class=&quot;gatsby-resp-image-link&quot;
         5475     href=&quot;/static/486d5a5af4d5686a9ea7aabad18cdbc3/763a5/hello.png&quot;
         5476     style=&quot;display: block&quot;
         5477     target=&quot;_blank&quot;
         5478     rel=&quot;noopener&quot;
         5479   &gt;
         5480     &lt;span
         5481     class=&quot;gatsby-resp-image-background-image&quot;
         5482     style=&quot;padding-bottom: 52.760736196319016%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAACH0lEQVQoz42SS2sTURiG59+4EhdCf4S1lKpFKm66VEQQF4obLytXRcXSCFIiErBVK0VBIZY2bXrL5B6TzD3NRU1KsYg0ySQzeTyZJkVbKb7wzjdzzuHh/eZ8kpKvUqvsoig1EqlvhCMVFtYrzC+WWEuoJNUySaVCWikTzxZZjRssbmp8XDd4u2IyGzKYWTJ4E9KYmMsiXQkuMD7/gUv+AKPTAS76XzH2cpbxwDsUXWd7u0q1VqVer9NqtWg2m9h2A6dtg9vy7Dqi0iS4qSP51BzXl8PcXgpxNxLhQTTK/ViMeysbyPEUqqKgqKoHOqxO1+LhuB3vO5QsIVH/IeCNI4dbu7ukUkl0w0AXSfvAjiActtsDyrkKkmPvsSeAv2ybZrtNy3FwxWbta4Ev6TiFrS1M0xRt2gfAv1J2gb01basqEvZi9+W6rlerZYt0IoYhYJZlHQvsrxnlnX1gWyRzRLKuu+9dlS2NeDSCYZhewj9bPpKwFyIiJ/aB/9LPne8kBFDT9P/4h463p8qfkIYfTzLm8zEy9YzhySlRfQw+neLai+ekU3Hy+TyquOVGo9EDuj33ga4Ym/2urI05pBNnBjk9MsSp4SEGRs8zcOEcJ4fOcvnGVTEyOXEpRYql0sFoHKeC/B7JXH2CHprACj9CDT4k9voOsZlbhPw3WV/+TFTeJCGvYeSTVCyFkpnDUlIUTI1cNoOhZLwuCnqOTHCa30J1FzsyeaLHAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         5483   &gt;&lt;/span&gt;
         5484   &lt;img
         5485         class=&quot;gatsby-resp-image-image&quot;
         5486         alt=&quot;Hello&quot;
         5487         title=&quot;Hello&quot;
         5488         src=&quot;/static/486d5a5af4d5686a9ea7aabad18cdbc3/a6d36/hello.png&quot;
         5489         srcset=&quot;/static/486d5a5af4d5686a9ea7aabad18cdbc3/222b7/hello.png 163w,
         5490 /static/486d5a5af4d5686a9ea7aabad18cdbc3/ff46a/hello.png 325w,
         5491 /static/486d5a5af4d5686a9ea7aabad18cdbc3/a6d36/hello.png 650w,
         5492 /static/486d5a5af4d5686a9ea7aabad18cdbc3/e548f/hello.png 975w,
         5493 /static/486d5a5af4d5686a9ea7aabad18cdbc3/3c492/hello.png 1300w,
         5494 /static/486d5a5af4d5686a9ea7aabad18cdbc3/763a5/hello.png 2804w&quot;
         5495         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5496         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5497         loading=&quot;lazy&quot;
         5498       /&gt;
         5499   &lt;/a&gt;
         5500     &lt;/span&gt;&lt;/p&gt;
         5501 &lt;p&gt;In addition to viewing received information, you can also send messages back to the Arduino in this monitor using the text input on the top panel and the &lt;code class=&quot;language-text&quot;&gt;Send&lt;/code&gt; button. For example, you might write a program that toggled an LED on or off based on a specific input key.&lt;/p&gt;
         5502 &lt;p&gt;What if you don&apos;t want to use the Serial Monitor in the Arduino IDE? Maybe it&apos;s time to let the old ways die. I agree. If you&apos;re on a Mac, then you can try running the &lt;code class=&quot;language-text&quot;&gt;screen&lt;/code&gt; command from your terminal, specifying both the name of your serial connection to your Arduino and the baud rate.&lt;/p&gt;
         5503 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;screen&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;name_of_serial_connection&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;9600&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5504 &lt;p&gt;In my case, the name of the connection was &lt;code class=&quot;language-text&quot;&gt;/dev/cu.usbmodem14101&lt;/code&gt;, which you can find in the &lt;code class=&quot;language-text&quot;&gt;Tools/Port&lt;/code&gt; menu of the Arduino IDE.&lt;/p&gt;
         5505 &lt;p&gt;Word of warning, however. If you close this terminal window, it won&apos;t close the sesssion, and you&apos;ll be unable to Upload new programs to your Arduino. This is called a &quot;detached screen&quot; and it&apos;s annoying. You need to quit the screen somehow, and you can use this command to do so:&lt;/p&gt;
         5506 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;screen&lt;/span&gt; -X -S &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;name_of_session&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; quit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5507 &lt;p&gt;Oh, to get the name of the detached session, you can type:&lt;/p&gt;
         5508 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;screen&lt;/span&gt; -ls &lt;span class=&quot;token builtin class-name&quot;&gt;.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5509 &lt;p&gt;This whole serial communications thing opens up some interesting ideas, since you can have two way comms between your Arduino and something else. Forget Alexa. Not-okay, Google. Go away, Siri. Now you can build your own talking robotic best friend, instead. Hopefully gets some gears turning for you, too.&lt;/p&gt;
         5510 &lt;h3&gt;Counting in binary with LEDs&lt;/h3&gt;
         5511 &lt;p&gt;In general, life-goal-wise, I&apos;ve been trying to get better at thinking and counting in binary, so I decided to build a little binary counter for my next Arduino project.&lt;/p&gt;
         5512 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c++&quot;&gt;&lt;pre class=&quot;language-c++&quot;&gt;&lt;code class=&quot;language-c++&quot;&gt;const unsigned int LED_BIT0 = 12;
         5513 const unsigned int LED_BIT1 = 11;
         5514 const unsigned int LED_BIT2 = 10;
         5515 const unsigned int LED_BIT3 = 9;
         5516 
         5517 long result = 0;
         5518 
         5519 void setup() {
         5520   pinMode(LED_BIT0, OUTPUT);
         5521   pinMode(LED_BIT1, OUTPUT);
         5522   pinMode(LED_BIT2, OUTPUT);
         5523   pinMode(LED_BIT3, OUTPUT);
         5524 }
         5525 
         5526 void loop() {
         5527   result++;
         5528   if (result == 16) {
         5529     result = 0;
         5530   }
         5531   output_result(result);
         5532   delay(500);
         5533 }
         5534 
         5535 void output_result(const long result) {
         5536   digitalWrite(LED_BIT0, result &amp;amp; B0001);
         5537   digitalWrite(LED_BIT1, result &amp;amp; B0010);
         5538   digitalWrite(LED_BIT2, result &amp;amp; B0100);
         5539   digitalWrite(LED_BIT3, result &amp;amp; B1000);
         5540 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5541 &lt;p&gt;&lt;img src=&quot;/9f9c59880917a658e0ecd9f3cd98d8ab/binary.gif&quot; alt=&quot;Binary Counting&quot;&gt;&lt;/p&gt;
         5542 &lt;p&gt;I&apos;m not sure why the red LED isn&apos;t as bright as the other three LEDs. I tried swapping it out with another LED to no avail. But, hey, other than that, this thing works!&lt;/p&gt;
         5543 &lt;p&gt;I also learned that breadboards are great. Being able to run all the cathode sides of the LEDs to the bottom negative row of the breadboard, and then only connecting that row once to the Arduino&apos;s ground port is pretty darn helpful. I have more to learn and appreciate here, for sure.&lt;/p&gt;
         5544 &lt;p&gt;Also, this is the first time that I&apos;ve really leveraged the power of the bitwise-and operator. I&apos;m taking my &lt;code class=&quot;language-text&quot;&gt;result&lt;/code&gt; and bitwise-and it with a binary number that represents a binary digit (1&apos;s, 2&apos;s, 4&apos;s, 8&apos;s) for each of the LEDs. The bitwise-and operation returns &lt;code class=&quot;language-text&quot;&gt;true&lt;/code&gt; if &lt;code class=&quot;language-text&quot;&gt;result&lt;/code&gt; and our binary number both contain a &lt;code class=&quot;language-text&quot;&gt;1&lt;/code&gt; for the given binary digit. For example, let&apos;s look at the number &lt;code class=&quot;language-text&quot;&gt;3&lt;/code&gt;&lt;/p&gt;
         5545 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;c++&quot;&gt;&lt;pre class=&quot;language-c++&quot;&gt;&lt;code class=&quot;language-c++&quot;&gt;3 &amp;amp; B0001; // true
         5546 3 &amp;amp; B0010; // true
         5547 3 &amp;amp; B0100; // false
         5548 3 &amp;amp; B1000; // false&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5549 &lt;p&gt;The final trick here is that &lt;code class=&quot;language-text&quot;&gt;digitalWrite&lt;/code&gt; function transforms &lt;code class=&quot;language-text&quot;&gt;true&lt;/code&gt; boolean values into &lt;code class=&quot;language-text&quot;&gt;HIGH&lt;/code&gt; (turn on the LED) and &lt;code class=&quot;language-text&quot;&gt;false&lt;/code&gt; into &lt;code class=&quot;language-text&quot;&gt;LOW&lt;/code&gt; (turn off the LED). So, for the number &lt;code class=&quot;language-text&quot;&gt;3&lt;/code&gt; the LED for the &lt;code class=&quot;language-text&quot;&gt;1&lt;/code&gt;&apos;s digit and the &lt;code class=&quot;language-text&quot;&gt;2&lt;/code&gt;&apos;s digit should be lit, and the &lt;code class=&quot;language-text&quot;&gt;4&lt;/code&gt;&apos;s and &lt;code class=&quot;language-text&quot;&gt;8&lt;/code&gt;&apos;s should be off.&lt;/p&gt;
         5550 &lt;p&gt;That&apos;s pretty awesome and makes this code very concise. There&apos;s much more to explore here for me.&lt;/p&gt;
         5551 &lt;h3&gt;More tinkering&lt;/h3&gt;
         5552 &lt;p&gt;So, after a mere afternoon, I&apos;ve learned a ton and had quite a bit of fun along the way.&lt;/p&gt;
         5553 &lt;p&gt;What&apos;s next, you ask? Well, resistors are still perplexing. I&apos;m not sure yet how to determine what level of resistence is needed for a given situation. I&apos;ve already fried an LED (a delightful puff of smoke wisps out during its last gasp of life), likely for this very reason. It&apos;s also really hard to read those colorful bands to try to determine their resistance level. This seems like it could be a great little computer vision / deep learning app. Or perhaps I should just use my multimeter more regularly.&lt;/p&gt;
         5554 &lt;p&gt;I&apos;m also thinking more about the difference between analog and digital signals. Digital is binary (either on or off), whereas analog is continuous. Most of what we observe in life is an analog signal. So when we choose to digitize them, we need to choose specific moments to &quot;sample&quot; the values of the continuous signal. The Schmidt book explained that an audio CD takes a sample every 44,100 per second (or 44.1 kHz). Maybe this is why vinyl is back.&lt;/p&gt;
         5555 &lt;p&gt;I thinking that my obvious next project here with Arduino is to make an alarm clock with binary numbers. There are tons of neat examples of this project across the web, and I think it could be a good way to learn / improve my soldering skills, as well as my quick mental binary counting, especially while groggy in the middle of the night.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Novels with Giant Possibly Magical Libraries]]></title><description><![CDATA[I'm currently reading a fantastic novel where the protaganist - who is in her teens and lives in a sort-of convent for sightseers in the…]]></description><link>https://www.charlieharrington.com/novels-with-libraries</link><guid isPermaLink="false">https://www.charlieharrington.com/novels-with-libraries</guid><pubDate>Wed, 23 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;m currently reading a fantastic novel where the protaganist - who is in her teens and lives in a sort-of convent for sightseers in the middle of a glacier - is asked by the elders to choose a role for part-time work. Our hero considers two options:&lt;/p&gt;
         5556 &lt;ul&gt;
         5557 &lt;li&gt;Become a pilot of paper-mache, semi-alive airplanes controlled by whistling&lt;/li&gt;
         5558 &lt;li&gt;Become a librarian&lt;/li&gt;
         5559 &lt;/ul&gt;
         5560 &lt;p&gt;I held my breath as I read further: &lt;em&gt;choose The Library!&lt;/em&gt;&lt;/p&gt;
         5561 &lt;h3&gt;Why Libraries?&lt;/h3&gt;
         5562 &lt;p&gt;There are two things that, when I encounter them in a book, immediately cause me to fall in love.&lt;/p&gt;
         5563 &lt;ul&gt;
         5564 &lt;li&gt;The word &lt;code class=&quot;language-text&quot;&gt;palimpsest&lt;/code&gt;&lt;/li&gt;
         5565 &lt;li&gt;A giant, possibly magic, library (extra points for a Forbidden Section or two)&lt;/li&gt;
         5566 &lt;/ul&gt;
         5567 &lt;p&gt;The two are not unrelated. A &lt;a href=&quot;https://en.wikipedia.org/wiki/Palimpsest&quot;&gt;palimpsest&lt;/a&gt; is a book that has been one or more books before, with the older knowledge hidden just beneath the surface of the parchment, waiting to be unearthed. A giant library must, invariably, contain books with once-known, now-forgotten knowledge, just beyond that locked door over there.&lt;/p&gt;
         5568 &lt;p&gt;But I have the key...&lt;/p&gt;
         5569 &lt;p&gt;I hereby present a list of the very best novels featuring giant libraries filled with secrets.&lt;/p&gt;
         5570 &lt;h3&gt;My List of Novels with Giant Libraries&lt;/h3&gt;
         5571 &lt;ul&gt;
         5572 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0143034901/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0143034901&amp;#x26;linkId=7b51c22444a8be59bcff15afc13efe51&quot;&gt;La Sombra del Viento (The Shadow of the Wind)&lt;/a&gt; - Carlos Ruiz Zafón&lt;/li&gt;
         5573 &lt;li&gt;
         5574 &lt;p&gt;The Kingkiller Chronicles&lt;/p&gt;
         5575 &lt;ul&gt;
         5576 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0756404746/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0756404746&amp;#x26;linkId=d4b51238762ea3883b0ed9db5c9cfee1&quot;&gt;The Name of the Wind&lt;/a&gt; - Patrick Rothfuss&lt;/li&gt;
         5577 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0756407915/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0756407915&amp;#x26;linkId=c4d23a503d1b93ef9455655661e16edc&quot;&gt;The Wise Man&apos;s Fear&lt;/a&gt; - Patrick Rothfuss&lt;/li&gt;
         5578 &lt;/ul&gt;
         5579 &lt;/li&gt;
         5580 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0544176561/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0544176561&amp;#x26;linkId=57f7feea7ab107e4e2ac694e33798a0b&quot;&gt;The Name of the Rose&lt;/a&gt; - Umberto Eco&lt;/li&gt;
         5581 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B000FC12L4/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B000FC12L4&amp;#x26;linkId=0fc0d40b2d8f75a34a52bd01814e3708&quot;&gt;Lirael&lt;/a&gt; - Garth Nix&lt;/li&gt;
         5582 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0553418629/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0553418629&amp;#x26;linkId=efcb0fde52892489e0911d1bbf7b62f1&quot;&gt;The Library at Mount Char&lt;/a&gt; - Scott Hawkins&lt;/li&gt;
         5583 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0765356155/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0765356155&amp;#x26;linkId=d34ad098edfb335746ed0e4530a99623&quot;&gt;Jonathan Strange and Mr. Norrell&lt;/a&gt; - Susanna Clarke&lt;/li&gt;
         5584 &lt;li&gt;
         5585 &lt;p&gt;Harry Potter&lt;/p&gt;
         5586 &lt;ul&gt;
         5587 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B00OHX65I2/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B00OHX65I2&amp;#x26;linkId=0798e010bcb3334768f375e8258b7ab3&quot;&gt;Harry Potter and the Sorcerer&apos;s Stone&lt;/a&gt; - J.K. Rowling&lt;/li&gt;
         5588 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0545791324/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0545791324&amp;#x26;linkId=b5cd0f1b4b5bbf36948989d265050520&quot;&gt;Harry Potter and the Chamber of Secrets&lt;/a&gt; - J.K. Rowling&lt;/li&gt;
         5589 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0439139600/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0439139600&amp;#x26;linkId=a6ba2d6b1c2bfdac125d341989ff23e4&quot;&gt;Harry Potter and the Goblet of Fire&lt;/a&gt; - J.K. Rowling&lt;/li&gt;
         5590 &lt;/ul&gt;
         5591 &lt;/li&gt;
         5592 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B00SB32ST4/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B00SB32ST4&amp;#x26;linkId=a296165c788623176aab44e4cd65db3b&quot;&gt;Rainbows End&lt;/a&gt; - Vernor Vinge&lt;/li&gt;
         5593 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0812515285/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0812515285&amp;#x26;linkId=8b3d099da4cca9a239f336344773d2fd&quot;&gt;A Fire Upon the Deep&lt;/a&gt; - Vernor Vinge&lt;/li&gt;
         5594 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0812536355/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0812536355&amp;#x26;linkId=6e0133d53af84b4532620de8ad19324e&quot;&gt;A Deepness in the Sky&lt;/a&gt; - Vernor Vinge&lt;/li&gt;
         5595 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/006147410X/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=006147410X&amp;#x26;linkId=acbaea0cf216d3102012a9c426e14f9d&quot;&gt;Anathem&lt;/a&gt; - Neal Stephenson&lt;/li&gt;
         5596 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0553380958/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0553380958&amp;#x26;linkId=abf3caf9f77c64ef1503e437b7463153&quot;&gt;Snow Crash&lt;/a&gt; - Neal Stephenson&lt;/li&gt;
         5597 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1250037751/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1250037751&amp;#x26;linkId=2a70e649d7428e557e654397bf8560c9&quot;&gt;Mr. Penumbra&apos;s 24 Hour Bookstore&lt;/a&gt; - Robin Sloan&lt;/li&gt;
         5598 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B004DI7HZ6/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B004DI7HZ6&amp;#x26;linkId=6238642fb928a95804cd6bb997931bc3&quot;&gt;A Discovery of Witches&lt;/a&gt; - Deborah Harkness*&lt;/li&gt;
         5599 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/9939518757/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=9939518757&amp;#x26;linkId=53fb16307682363738f2eb5fe27115ae&quot;&gt;The Library of Babel&lt;/a&gt; - Jorge Luis Borges*&lt;/li&gt;
         5600 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B00ECTR26U/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B00ECTR26U&amp;#x26;linkId=bd4c9c2c96287554af6e75458f70676b&quot;&gt;The Pagemaster&lt;/a&gt; - Todd Strasser*&lt;/li&gt;
         5601 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0385354304/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0385354304&amp;#x26;linkId=61adf5d2fcd0eef14bafe8f09d5de4f3&quot;&gt;The Strange Library&lt;/a&gt; - Haruki Murakami*&lt;/li&gt;
         5602 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0156453800/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0156453800&amp;#x26;linkId=73c9318067a8daf3c6f834e43b73d8b8&quot;&gt;Invisible Cities&lt;/a&gt; - Italo Calvino*&lt;/li&gt;
         5603 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1400079276/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1400079276&amp;#x26;linkId=4bb1046b55e17d2c4f2b0599564a5d48&quot;&gt;Kafka on the Shore&lt;/a&gt; - Haruki Murakami*&lt;/li&gt;
         5604 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B07GCSJ72W/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B07GCSJ72W&amp;#x26;linkId=fbd212d64827a7deb8331c6203995002&quot;&gt;In the Stacks&lt;/a&gt; - Scott Lynch*&lt;/li&gt;
         5605 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0451473132/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0451473132&amp;#x26;linkId=d89f0625907fa90f3b53ab893148d10d&quot;&gt;Ink and Bone&lt;/a&gt; - Rachel Caine*&lt;/li&gt;
         5606 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0062225677/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0062225677&amp;#x26;linkId=9ad495e0fd9c2c3f9a419ba8e2ede7fa&quot;&gt;The Colour of Magic (Discworld #1)&lt;/a&gt; - Terry Pratchett*&lt;/li&gt;
         5607 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0156439611/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0156439611&amp;#x26;linkId=917a65fce2cbea549967980ec24cd37f&quot;&gt;If on a Winter&apos;s Night a Traveler&lt;/a&gt; - Italo Calvino&lt;/li&gt;
         5608 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/1401284779/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=1401284779&amp;#x26;linkId=c35338e2e6f497a3bba6e99781c05e42&quot;&gt;Preludes &amp;#x26; Nocturnes (The Sandman #1)&lt;/a&gt; - Neil Gaiman*&lt;/li&gt;
         5609 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B002AU7MEK/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B002AU7MEK&amp;#x26;linkId=cf8dd146c099100b6452a22611d7719b&quot;&gt;Wireless&lt;/a&gt; - Charles Stross*&lt;/li&gt;
         5610 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B075JL493G/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B075JL493G&amp;#x26;linkId=6a0cf43320e0c1ea1aa7ec2d484de7c6&quot;&gt;The Book of the New Sun&lt;/a&gt; - Gene Wolfe*&lt;/li&gt;
         5611 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/B00J3EU5RC/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=B00J3EU5RC&amp;#x26;linkId=ab1c6d1ceed5c7bc06227161b7b3fbe2&quot;&gt;Eon (The Way #1)&lt;/a&gt; - Greg Bear*&lt;/li&gt;
         5612 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0345353129/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0345353129&amp;#x26;linkId=d2322df408c9bf0ef16b37ece60fffe9&quot;&gt;Protector&lt;/a&gt; - Larry Niven*&lt;/li&gt;
         5613 &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/gp/product/0143105299/ref=as_li_qf_asin_il_tl?ie=UTF8&amp;#x26;tag=whatrocks09-20&amp;#x26;creative=9325&amp;#x26;linkCode=as2&amp;#x26;creativeASIN=0143105299&amp;#x26;linkId=979204c2b6688608dc3e13a40827f384&quot;&gt;The Book of Sand&lt;/a&gt; - Jorge Luis Borges*&lt;/li&gt;
         5614 &lt;/ul&gt;
         5615 &lt;p&gt;*&lt;em&gt;Indicates that I haven&apos;t read this book (yet), but rest assured that it was recommended by a semi-close friend, cousin of mine, or &lt;a href=&quot;https://news.ycombinator.com/item?id=19108230&quot;&gt;Hacker News commenter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
         5616 &lt;p&gt;Let me know on Twitter (&lt;a href=&quot;https://twitter.com/whatrocks&quot;&gt;@whatrocks&lt;/a&gt;) if I&apos;m missing anything and I&apos;ll update the list, almost like a palimpsest.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Borrowing Library Books for Your Kindle]]></title><description><![CDATA[Basically, do it. It's super easy. I'll show you how in this post. How to borrow library books for your Kindle Obtain a Kindle from Amazon…]]></description><link>https://www.charlieharrington.com/borrowing-library-books-for-your-kindle</link><guid isPermaLink="false">https://www.charlieharrington.com/borrowing-library-books-for-your-kindle</guid><pubDate>Sun, 13 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Basically, do it. It&apos;s super easy. &lt;strong&gt;I&apos;ll show you how in this post.&lt;/strong&gt;&lt;/p&gt;
         5617 &lt;h3&gt;How to borrow library books for your Kindle&lt;/h3&gt;
         5618 &lt;ol&gt;
         5619 &lt;li&gt;&lt;strong&gt;Obtain a Kindle from Amazon.&lt;/strong&gt; I&apos;m using the Kindle Paperwhite with Special Offers, which I recommend. The special offers are just ads for random books, and they only appear on the lock screen of the Kindle. Who knows? You might even find something you like with the offers.&lt;/li&gt;
         5620 &lt;li&gt;&lt;strong&gt;Obtain a library card number from your local library.&lt;/strong&gt; This takes a few minutes in person, but I&apos;m sure you can also do it online. You&apos;ll probably need some proof of residence, like a driver&apos;s license or some utility bill. Better be safe and bring both.&lt;/li&gt;
         5621 &lt;li&gt;&lt;strong&gt;Sign into your library&apos;s ebook manager on the library&apos;s website using your library card number&lt;/strong&gt;. Most likely they are using a service called Overdrive. You&apos;ll probably also create a PIN number when you register for your library card, so write that down somewhere!&lt;/li&gt;
         5622 &lt;li&gt;&lt;strong&gt;Search for a book on Overdrive (or your library&apos;s respective ebook service), and then you&apos;ll be able to either borrow or place a hold for it.&lt;/strong&gt; The San Francisco Public library, for example, allows you to borrow or place holds for up to something like 20 books at a time!&lt;/li&gt;
         5623 &lt;li&gt;&lt;strong&gt;Once you&apos;ve borrowed a book, click Read Now with Kindle&lt;/strong&gt;. You&apos;ll been taken to the Amazon page for the book, and you can send the ebook directly to your Kindle. Next time your Kindle connects to wifi, the borrowed book will be downloaded.&lt;/li&gt;
         5624 &lt;li&gt;&lt;strong&gt;Read, rinse, and repeat.&lt;/strong&gt; I like to have several books borrowed at a time, with a few holds as well, so that there&apos;s always something coming down the pipe.&lt;/li&gt;
         5625 &lt;/ol&gt;
         5626 &lt;h4&gt;🎁 Placing holds for books is like sending a gift to your future self&lt;/h4&gt;
         5627 &lt;p&gt;Imagine waking up to this email:&lt;/p&gt;
         5628 &lt;p&gt;&lt;span
         5629       class=&quot;gatsby-resp-image-wrapper&quot;
         5630       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5631     &gt;
         5632       &lt;a
         5633     class=&quot;gatsby-resp-image-link&quot;
         5634     href=&quot;/static/38fd67bd009f81e2d0a8accd93d96ec1/5b4a1/email.png&quot;
         5635     style=&quot;display: block&quot;
         5636     target=&quot;_blank&quot;
         5637     rel=&quot;noopener&quot;
         5638   &gt;
         5639     &lt;span
         5640     class=&quot;gatsby-resp-image-background-image&quot;
         5641     style=&quot;padding-bottom: 42.94478527607362%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAAsTAAALEwEAmpwYAAABGklEQVQoz5WR227DIAyGef/H29W0q0lLs5AQwvmQ0P6zkdpN01p1SJ9sjG3Av7AuYF3XzrZtHaUU7XWPzfOCaZp6bFkW2s+QUpKvOppyauKaFa01COe/G3KB1hrWWhhj4JyjCwxCiMg5I8aIlNLNcoxpraKUgsvlArHJCXKS1MD2YmtdP7yy7zueXb1hOw7E4JFTpAb59pIQAmqt+O8SPmXM1kPxLLXus+NvM4a+nuiC3+QHiFHOeHl9w/twwngacBo+bsjPERuLtfLwVffZskD3EGlvsLlijQWmHMQOR5i8Q6cKFXM/21Ihn3Iol9U8aFR/IRSJoZyHrwccJQeypZ2RjzPSDzh2tQ9naK3pXwnewZEfSYxn1LzHF7ebuOMgKZxVAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         5642   &gt;&lt;/span&gt;
         5643   &lt;img
         5644         class=&quot;gatsby-resp-image-image&quot;
         5645         alt=&quot;email&quot;
         5646         title=&quot;email&quot;
         5647         src=&quot;/static/38fd67bd009f81e2d0a8accd93d96ec1/a6d36/email.png&quot;
         5648         srcset=&quot;/static/38fd67bd009f81e2d0a8accd93d96ec1/222b7/email.png 163w,
         5649 /static/38fd67bd009f81e2d0a8accd93d96ec1/ff46a/email.png 325w,
         5650 /static/38fd67bd009f81e2d0a8accd93d96ec1/a6d36/email.png 650w,
         5651 /static/38fd67bd009f81e2d0a8accd93d96ec1/5b4a1/email.png 831w&quot;
         5652         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5653         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5654         loading=&quot;lazy&quot;
         5655       /&gt;
         5656   &lt;/a&gt;
         5657     &lt;/span&gt;&lt;/p&gt;
         5658 &lt;p&gt;It&apos;s like Christmas morning! Once you click that link, you&apos;ll be taken to your Overdrive account:&lt;/p&gt;
         5659 &lt;p&gt;&lt;span
         5660       class=&quot;gatsby-resp-image-wrapper&quot;
         5661       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5662     &gt;
         5663       &lt;a
         5664     class=&quot;gatsby-resp-image-link&quot;
         5665     href=&quot;/static/1300a28363fdaff2b87f555e20f61883/0d1a4/overdrive.png&quot;
         5666     style=&quot;display: block&quot;
         5667     target=&quot;_blank&quot;
         5668     rel=&quot;noopener&quot;
         5669   &gt;
         5670     &lt;span
         5671     class=&quot;gatsby-resp-image-background-image&quot;
         5672     style=&quot;padding-bottom: 48.46625766871166%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAACAklEQVQoz11SW28SQRTeH+yTTz42Rh+0TRst0cYYMRVvpZiQRqGEXRsiBYtu2bbBYivNVnChsNDuDruz18+ZEQhykpMzc86Zb75zkUzTxGAwgO/78DxvpvweBMF/1vf/+f25vEWVCCGwbVtcKKUzMO63mJ/HLMvCeOzAcV2MHVfkcfD5NzPAOI4RRzGiKAQXlz0S6jgMZCyUg1KPsWQpXhCDsgOPex5FGIaigmkV0o+fLchlFcUvB0im3kI7OsJwOMLo+gZhFLGPImZjkP4piFED7auwuyra7UvobQN91q5g0hbBUNMOUS8XcaqV8X7rBb7V6+iaFkYWAXEoY+YL5margFZ1A+fVZzCOX4NYA8F4XjhbqVLdQ/bRHfSyazjbfoh644SVSMRv82K2FFzUktDVFLqNDPbkHNLbH1DYzSO3k4EsF0U/pcbxV6zcu43N5SWkNxNIpd9hbXUV64kEnq6vYPnBfbQ7PdBeBfr3l2hWkrAudlCrlpDLF5DP5ZD/mEWpVGKAvOSKgrtLt/D4eQIbbzI4UDWMhkMYhoGrnoFB/wo+G4R9qeB8/wl+sZI72itWH8Gi8D5Kfzo6ZOUTdj8Xoexr0H93WYDvXDBLZDMBvdERXDcRWmdwh01QlwhG0wlPVVr8JQwD0QsBxCbM14rbaBKPJ5bvJR+C8PHVY8oB/wKzOuGMkHHwWAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         5673   &gt;&lt;/span&gt;
         5674   &lt;img
         5675         class=&quot;gatsby-resp-image-image&quot;
         5676         alt=&quot;overdrive&quot;
         5677         title=&quot;overdrive&quot;
         5678         src=&quot;/static/1300a28363fdaff2b87f555e20f61883/a6d36/overdrive.png&quot;
         5679         srcset=&quot;/static/1300a28363fdaff2b87f555e20f61883/222b7/overdrive.png 163w,
         5680 /static/1300a28363fdaff2b87f555e20f61883/ff46a/overdrive.png 325w,
         5681 /static/1300a28363fdaff2b87f555e20f61883/a6d36/overdrive.png 650w,
         5682 /static/1300a28363fdaff2b87f555e20f61883/e548f/overdrive.png 975w,
         5683 /static/1300a28363fdaff2b87f555e20f61883/0d1a4/overdrive.png 1036w&quot;
         5684         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5685         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5686         loading=&quot;lazy&quot;
         5687       /&gt;
         5688   &lt;/a&gt;
         5689     &lt;/span&gt;&lt;/p&gt;
         5690 &lt;p&gt;Even before you&apos;ve had your (first) coffee of the day, you can probably manage to click that &lt;code class=&quot;language-text&quot;&gt;Read Now with Kindle&lt;/code&gt; button:&lt;/p&gt;
         5691 &lt;p&gt;&lt;span
         5692       class=&quot;gatsby-resp-image-wrapper&quot;
         5693       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5694     &gt;
         5695       &lt;a
         5696     class=&quot;gatsby-resp-image-link&quot;
         5697     href=&quot;/static/0a46fda51e89ed47752f7b5763e9e8ad/ec3e2/amazon.png&quot;
         5698     style=&quot;display: block&quot;
         5699     target=&quot;_blank&quot;
         5700     rel=&quot;noopener&quot;
         5701   &gt;
         5702     &lt;span
         5703     class=&quot;gatsby-resp-image-background-image&quot;
         5704     style=&quot;padding-bottom: 71.16564417177914%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAADA0lEQVQ4y22S3WsUVxjG5++wN70Tii0UL1qKBHpjJRVa0u80NrZUopG2attcWCiiFw0RCqVQihCKJpjoqkirgiga0H5ALcS2oM0mJtndzOzMzld2dmfnY3d+fc+sW4rxwMPMOfPO877P8xzt2W39vPbWu/QPDLJp83N8cfQ4309O88N0ganZC5w6fY6TZy4xc2KcwVde5Imn+tja9zJPv7CDLc9v5xl5Kmzt6+fJLdvQ9h08zGeHj/Hx51/y+q59DA6P8M6uD3l79yhvDo+y84332f7qEC8NDDMwtJfdew/xydgRBj/4iOGRQ7w3clBq97Nn/6cM7TmAdr+4zJ2797gz/xfz83cJ7DJWaQGzqmNZFo1GkKOdpkStFi1BFEVy1pT3SBDmZ41mSLvdRrt6Y47zl65y6ux5jh6fQDcqGPoyy3oNtx6SJkle+OgKmw3WfRfDsqnZNdkHZFkH7Y9fb7D2ywWiB7f4+/dr8tHClylrtRr+el2KMjqdTk7a6QgyaCch9ZXLuMUCq3/OYt4vUH9wjrihoxXOTnL62CjFE2Pcnv0aw12ntFqiWFxgcbGYE9u2nUNZ4DoOcRxj16pY5hpVo4QpqnzPJpFz7dbcj0wcOcDJb8aZKUxhiwxHfipX1ljTDaqmia7rVCoVQVksMcXDGMdbRzcdTJHsuJ40SXMl2vWL03w1PsZUYYbpiz9hOS5VvyUeOpQMmU7IXdel2WwShiHNKCVOO8SJhJSKfvGNrJ2HlhP+dvs63343weTMGQpXfs47BkGA5/t4nofvK/iSauNhul3zlfyFf+6h1xPKgYSUCDkZWi/BLOump67A6srKQ4kVSqVSjmq1mjdQV0WtpaUl5m7eZMkKWPSkQZB2CRO5Fl3CLmMohMo/RWAYRu6fgtqrgBSpWvV6PW8YRy0JI8oDUQwbCBPxwvIaBGGM+pbKXslVk6t0laJe7aNLnW8gjKSjSrLsRrQ7XV9UKI5jY9Yc/Gb8X70KQT174HETqgmU7DBWlzjbMI3a9s7+T9bDv8gB2jJUsPqmAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         5705   &gt;&lt;/span&gt;
         5706   &lt;img
         5707         class=&quot;gatsby-resp-image-image&quot;
         5708         alt=&quot;amazon&quot;
         5709         title=&quot;amazon&quot;
         5710         src=&quot;/static/0a46fda51e89ed47752f7b5763e9e8ad/a6d36/amazon.png&quot;
         5711         srcset=&quot;/static/0a46fda51e89ed47752f7b5763e9e8ad/222b7/amazon.png 163w,
         5712 /static/0a46fda51e89ed47752f7b5763e9e8ad/ff46a/amazon.png 325w,
         5713 /static/0a46fda51e89ed47752f7b5763e9e8ad/a6d36/amazon.png 650w,
         5714 /static/0a46fda51e89ed47752f7b5763e9e8ad/e548f/amazon.png 975w,
         5715 /static/0a46fda51e89ed47752f7b5763e9e8ad/ec3e2/amazon.png 997w&quot;
         5716         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5717         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5718         loading=&quot;lazy&quot;
         5719       /&gt;
         5720   &lt;/a&gt;
         5721     &lt;/span&gt;&lt;/p&gt;
         5722 &lt;p&gt;Click &lt;code class=&quot;language-text&quot;&gt;Get Library Book&lt;/code&gt;, and you&apos;re done! Your morning commute just got a little bit nerdier.&lt;/p&gt;
         5723 &lt;p&gt;&lt;span
         5724       class=&quot;gatsby-resp-image-wrapper&quot;
         5725       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5726     &gt;
         5727       &lt;a
         5728     class=&quot;gatsby-resp-image-link&quot;
         5729     href=&quot;/static/0e5a93f20244a5bea63f25bb26ef4d7f/58bb7/borrowed.png&quot;
         5730     style=&quot;display: block&quot;
         5731     target=&quot;_blank&quot;
         5732     rel=&quot;noopener&quot;
         5733   &gt;
         5734     &lt;span
         5735     class=&quot;gatsby-resp-image-background-image&quot;
         5736     style=&quot;padding-bottom: 34.355828220858896%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAABSUlEQVQoz3WR0WrcMBBF9/9/pxT61Pc8lWWThkDT0G2crS3LlnYlWZIln4y9GyiFjjhcgdDM3Jmdyw6TzcaYRtzsKHLmv065kWoi18w0T7jJbYTkSSURS9zYhTnws33h/njgsfnOsfuFNYbz2QoX7MUxio72Qq2FNWKKnE5vdJ2iH0Y+Yi22yyWjhkivA9ZGhtGjekvbjzT6wm/taU3AT4llWTaq8Px0oG1bWps4qZFJ3mOO14T+zx36+RPDyxfRz9jjV1gy/4taK08Pe7TqSCltTpzz14Srf6t+0L9+E/b0zR71ekD3Sro1aD1grMWHIJ9kZqIrg1jVw4BSCqU1vXHEOV07NOdI0xrazojtIJXA++lGEDuRWiqllE0329LlUpcr2yhgrjM7nz3nGGikourFwmTJ627F8rzc9iz3deAfrNv+lyxMZeIdwz8bSgWQRJsAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         5737   &gt;&lt;/span&gt;
         5738   &lt;img
         5739         class=&quot;gatsby-resp-image-image&quot;
         5740         alt=&quot;borrowed&quot;
         5741         title=&quot;borrowed&quot;
         5742         src=&quot;/static/0e5a93f20244a5bea63f25bb26ef4d7f/a6d36/borrowed.png&quot;
         5743         srcset=&quot;/static/0e5a93f20244a5bea63f25bb26ef4d7f/222b7/borrowed.png 163w,
         5744 /static/0e5a93f20244a5bea63f25bb26ef4d7f/ff46a/borrowed.png 325w,
         5745 /static/0e5a93f20244a5bea63f25bb26ef4d7f/a6d36/borrowed.png 650w,
         5746 /static/0e5a93f20244a5bea63f25bb26ef4d7f/e548f/borrowed.png 975w,
         5747 /static/0e5a93f20244a5bea63f25bb26ef4d7f/58bb7/borrowed.png 985w&quot;
         5748         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5749         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5750         loading=&quot;lazy&quot;
         5751       /&gt;
         5752   &lt;/a&gt;
         5753     &lt;/span&gt;&lt;/p&gt;
         5754 &lt;h3&gt;Borrowing Audiobooks&lt;/h3&gt;
         5755 &lt;p&gt;You can do this, too! &lt;/p&gt;
         5756 &lt;p&gt;There&apos;s a great app called &lt;a href=&quot;https://meet.libbyapp.com/&quot;&gt;Libby&lt;/a&gt; that is somehow affiliated with Overdrive, and that&apos;s what I recommend using for listening to library audiobooks. Everything that you rent through Overdrive, whether ebook or audiobook, will automatically appear in your Libby app (once you sign into Libby with your library card). This is helpful for when you inevitably forget your Kindle at home (there&apos;s also a Kindle phone app, but I haven&apos;t used it recently).&lt;/p&gt;
         5757 &lt;p&gt;I still haven&apos;t entirely embraced the audiobook lifestyle, but it&apos;s something on my mind for 2019.&lt;/p&gt;
         5758 &lt;h3&gt;But what about how good paper books smell?&lt;/h3&gt;
         5759 &lt;p&gt;I&apos;m a paper book monster. And, yes, the smell is half the reason. But public libraries are vitally important -- and were vitally important to my childhood. I&apos;m happy to be bringing them back into my adult life, even in this electronic way.&lt;/p&gt;
         5760 &lt;p&gt;I&apos;m also still buying an insane amount of paper books, from local booksellers whenever possible. Not even Marie Kondo can stop me from that.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[The Walkingman Collection]]></title><description><![CDATA[I've pulled all my Instagram #walkingman photos into a handy little page. Check it out. So long as the Instagram API continues to play nice…]]></description><link>https://www.charlieharrington.com/the-walkingman-collection</link><guid isPermaLink="false">https://www.charlieharrington.com/the-walkingman-collection</guid><pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve pulled all my &lt;a href=&quot;https://instagram.com/whatrocks&quot;&gt;Instagram #walkingman&lt;/a&gt; photos into a handy little page. &lt;a href=&quot;/walkingman&quot;&gt;Check it out&lt;/a&gt;.&lt;/p&gt;
         5761 &lt;p&gt;So long as the Instagram API continues to play nice (no guarantees), then &lt;a href=&quot;/walkingman&quot;&gt;this page&lt;/a&gt; will stay up-to-date as my travels continue.&lt;/p&gt;
         5762 &lt;p&gt;&lt;span
         5763       class=&quot;gatsby-resp-image-wrapper&quot;
         5764       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 577px; &quot;
         5765     &gt;
         5766       &lt;a
         5767     class=&quot;gatsby-resp-image-link&quot;
         5768     href=&quot;/static/39b0d5a1b691d6d09e5b4cde3a7ad1fe/065e2/walkingman.png&quot;
         5769     style=&quot;display: block&quot;
         5770     target=&quot;_blank&quot;
         5771     rel=&quot;noopener&quot;
         5772   &gt;
         5773     &lt;span
         5774     class=&quot;gatsby-resp-image-background-image&quot;
         5775     style=&quot;padding-bottom: 55.21472392638037%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACX0lEQVQoz3VSTWwSQRgdFpbdBVp+rdVaW/sfEE1svbRiI00bscSTvZlouPQPPXjSxEgMBhaIHpp48dqYABIgiEUuxtDtz7Enkl4buPVGaCxp8hx2SSmHTvJlvu+bN2/mvRlSLBYRCAQQiUQQDocR2YhCjIk0FxEKhRCNRlGr1VAul9s4UYT4JUZxFEtrkdbBT0EcHh6C+Hw+EELaMcWCGElHr1KpYHNzs6PX+2IGZKK7o5dIJED8fr9cCLwAjVoNs/8+jC/vQmvgwagYCDoB1WoV8XgchCEwmHj0zTvgSr3Fg/Q79Hqc0HCMzJHJZEDW1tbkgqcbu6YHcCPshfXVDPSTN+U+x/MyoXw6rcefP8Rc7gO8v8Pw/I1isfAZun5Tm3C1Rai3GMD3W2B1OzAWXAJrEaBiGHAc10HYP2uHzTUI19dVuL+/weiyG8aRnguEqwqhoNfJs9U1juHXC2D13DlhpVJFMhlvKWEw5J3EUiEGT/I9HOuLULHUQxrpdLotWdDpwHAa9C7cgXl6COZ7g23JFwgFowbeHx9xe92Da7PDePZnA90jNnktfdFDLVGj29mHq3N2arIGPY/tYFh6Q60iOZlUJDuX5/GU+me6ZUKXjcOjb34MPJlSJGezICsrK+fPzo6ZwfYpX4GbsIBoW9+mWlFemebG0SswOa9DzRFoDGrqtRZEpeBSqRTIwcEB8vk8tgoFbOXykErb2N3bxU5JgrQtyXmj0cDR0ZHs0a/cT+QyWZS2S9jf38OOJGGPYiQ6Hx8fgzTBZ2dn8qZmXDaaa/V6Hf9OT1E/ObkU9x90+dN/CcyTKwAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         5776   &gt;&lt;/span&gt;
         5777   &lt;img
         5778         class=&quot;gatsby-resp-image-image&quot;
         5779         alt=&quot;walkingmen&quot;
         5780         title=&quot;walkingmen&quot;
         5781         src=&quot;/static/39b0d5a1b691d6d09e5b4cde3a7ad1fe/065e2/walkingman.png&quot;
         5782         srcset=&quot;/static/39b0d5a1b691d6d09e5b4cde3a7ad1fe/222b7/walkingman.png 163w,
         5783 /static/39b0d5a1b691d6d09e5b4cde3a7ad1fe/ff46a/walkingman.png 325w,
         5784 /static/39b0d5a1b691d6d09e5b4cde3a7ad1fe/065e2/walkingman.png 577w&quot;
         5785         sizes=&quot;(max-width: 577px) 100vw, 577px&quot;
         5786         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5787         loading=&quot;lazy&quot;
         5788       /&gt;
         5789   &lt;/a&gt;
         5790     &lt;/span&gt;&lt;/p&gt;
         5791 &lt;p&gt;I&apos;d love to learn more about who designs each of these little creatures for a given city or country. What&apos;s the decision process like? Are they meant to capture the spirit of the people in some way?&lt;/p&gt;
         5792 &lt;p&gt;This is a coffee table book waiting to happen.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Humans of Machine Learning]]></title><description><![CDATA[I've started an interview series on the FloydHub blog called "Humans of Machine Learning." I'm hoping to talk with lots of real human beings…]]></description><link>https://www.charlieharrington.com/humans-of-machine-learning</link><guid isPermaLink="false">https://www.charlieharrington.com/humans-of-machine-learning</guid><pubDate>Mon, 30 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve started an interview series on the &lt;a href=&quot;https://blog.floydhub.com/tag/humans-of-ml/&quot;&gt;FloydHub blog&lt;/a&gt; called &quot;Humans of Machine Learning.&quot; I&apos;m hoping to talk with lots of real human beings who are doing fun, creative, interesting, and / or surprising things with machine learning and AI. Those things might be weekend projects, work projects, or school projects -- doesn&apos;t matter, just something that people are excited to talk about and share with the community. I&apos;m eager to learn from them and be inspired by their creativity, focus, and ideas. Another tangential goal of mine is to get better at interviewing people.&lt;/p&gt;
         5793 &lt;p&gt;So far, I&apos;ve chatted with &lt;a href=&quot;https://blog.floydhub.com/humans-of-ml-leanne-luce/&quot;&gt;Leanne Luce&lt;/a&gt; about her experiments with AI and fashion blogging, and &lt;a href=&quot;https://blog.floydhub.com/humans-of-ml-kalai-ramea/&quot;&gt;Kalai Ramea&lt;/a&gt; about computational creativity. A few more conversations are already in the pipeline. If you&apos;re doing something creative with machine learning, please reach out on Twitter (&lt;a href=&quot;https://twitter.com/whatrocks&quot;&gt;@whatrocks&lt;/a&gt;).&lt;/p&gt;
         5794 &lt;p&gt;You can also find the interviews at &lt;a href=&quot;http://humansofml.com&quot;&gt;humansofml.com&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Penpals]]></title><description><![CDATA[Here's a new Terminal Man track from my most recent flight to Newark. I've been watching a lot of Stranger Things, if you can't already tell…]]></description><link>https://www.charlieharrington.com/penpals</link><guid isPermaLink="false">https://www.charlieharrington.com/penpals</guid><pubDate>Tue, 24 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/FANlCLh22uA?rel=0&amp;amp;controls=0&amp;amp;showinfo=0&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5795 &lt;p&gt;Here&apos;s a new Terminal Man track from my most recent flight to Newark. I&apos;ve been watching a lot of Stranger Things, if you can&apos;t already tell.&lt;/p&gt;
         5796 &lt;p&gt;This is the first Terminal Man song I&apos;ve hosted on YouTube instead of SoundCloud. Slightly annoying to have to make a movie out of the mp3 before uploading, but I do like my iMovie Star Wars crawl thing going on here. And I feel more confident that dropping stuff onto YouTube is like putting it into an Indiana Jones-style vault or time capsule that won&apos;t ever go away or shut down.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Using NLP to Write Graduation Speeches]]></title><description><![CDATA[I've always been a little bit obsessed with graduation speeches. Put simply, I like being reminded of the great possibility and great…]]></description><link>https://www.charlieharrington.com/using-nlp-to-write-graduation-speeches</link><guid isPermaLink="false">https://www.charlieharrington.com/using-nlp-to-write-graduation-speeches</guid><pubDate>Mon, 23 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;ve always been a little bit obsessed with graduation speeches. Put simply, I like being reminded of the great possibility and great responsibility of living.&lt;/p&gt;
         5797 &lt;p&gt;But as it&apos;s going to be a while until May rolls around again, I decided to try my hand at generating my own graduation speeches using some basic data science techniques.&lt;/p&gt;
         5798 &lt;p&gt;I&apos;m happy to report that after a little bit of NLP using Markov chains (and a whole lot of data-scraping and data-cleaning), I was able to bring forth to the world this inspiring sentence:&lt;/p&gt;
         5799 &lt;blockquote&gt;
         5800 &lt;p&gt;They listened to someone who makes nothing but flaming hot Cheetos.&lt;/p&gt;
         5801 &lt;/blockquote&gt;
         5802 &lt;p&gt;&lt;a href=&quot;https://blog.floydhub.com/markov-chains&quot;&gt;If you&apos;re interested in reading more about the specifics of my project, I wrote about it in detail on the FloydHub blog&lt;/a&gt;, or you can try it out now:&lt;/p&gt;
         5803 &lt;p&gt;&lt;a href=&quot;https://floydhub.com/run?template=https://github.com/whatrocks/markov-commencement-speech&quot;&gt;&lt;img src=&quot;https://static.floydhub.com/button/button.svg&quot; alt=&quot;Run on FloydHub&quot;&gt;&lt;/a&gt;&lt;/p&gt;
         5804 &lt;p&gt;Click this button to open a Workspace on FloydHub where you can generate your own &quot;commencement speech style&quot; sentences in a live JupyterLab environment that we call a &lt;code class=&quot;language-text&quot;&gt;Workspace&lt;/code&gt;.&lt;/p&gt;
         5805 &lt;p&gt;The &lt;a href=&quot;https://floydhub.com/whatrocks/datasets/commencement&quot;&gt;commencement address dataset&lt;/a&gt; of ~300 famous speeches (that I painstakingly assembled) will be automatically attached and available in the Workspace.&lt;/p&gt;
         5806 &lt;p&gt;The &lt;code class=&quot;language-text&quot;&gt;speech_maker&lt;/code&gt; notebook has three sections for you to try, where you&apos;ll generate commencement-speech sentences:&lt;/p&gt;
         5807 &lt;ol&gt;
         5808 &lt;li&gt;Using the entire dataset&lt;/li&gt;
         5809 &lt;li&gt;Filtering to only the top ten schools by count of speeches given&lt;/li&gt;
         5810 &lt;li&gt;Filtering to one school at a time using a Jupyter widget extension&lt;/li&gt;
         5811 &lt;/ol&gt;
         5812 &lt;h3&gt;Where can I read actual good speeches?&lt;/h3&gt;
         5813 &lt;p&gt;&lt;a href=&quot;https://whatrocks.github.io/commencement-db/&quot;&gt;Right here&lt;/a&gt;. I put together this simple Gatsby.js static site with the raw text (and some YouTube links) of the speeches in my dataset. &lt;a href=&quot;https://github.com/whatrocks/commencement-db&quot;&gt;PRs are open for the dataset&lt;/a&gt; if anyone&apos;s interested in contributing. Right now, the best we have is the NPR &quot;Best of&quot; commencement speech website, which hasn&apos;t been updated since 2015. It would be great to find a way to make a new home for great speeches on the web.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[LendUp Hackathon Project Lives On]]></title><description><![CDATA[I recently logged into my Arrow Card iOS app to check my balance and was pumped to discover that my team's Spring 2017 Hackathon project…]]></description><link>https://www.charlieharrington.com/lendup-hackathon-project-lives-on</link><guid isPermaLink="false">https://www.charlieharrington.com/lendup-hackathon-project-lives-on</guid><pubDate>Sun, 17 Jun 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently logged into my &lt;a href=&quot;https://itunes.apple.com/us/app/arrow-card/id1228440036?mt=8&quot;&gt;Arrow Card iOS app&lt;/a&gt; to check my balance and was pumped to discover that my team&apos;s Spring 2017 Hackathon project branch was finally merged and released.&lt;/p&gt;
         5814 &lt;p&gt;Here it is, in all its cartoon-y glory: the &lt;a href=&quot;https://www.lendup.com/education&quot;&gt;LendUp Education&lt;/a&gt; mobile feature.&lt;/p&gt;
         5815 &lt;p&gt;&lt;img src=&quot;/b39f5b1ad908be82cc36f75cdb72181a/arrow.gif&quot; alt=&quot;app&quot;&gt;&lt;/p&gt;
         5816 &lt;p&gt;&lt;a href=&quot;https://www.lendup.com/card&quot;&gt;Arrow Card&lt;/a&gt; holders can watch educational videos about improving their credit scores, budgeting, saving, and other personal finance tidbits, followed by a quick multiple choice quiz, followed by CONFETTI 🎉:&lt;/p&gt;
         5817 &lt;p&gt;&lt;img src=&quot;/8e120d7dabb838511c9b16e0d40509dd/confetti.gif&quot; alt=&quot;app&quot;&gt;&lt;/p&gt;
         5818 &lt;p&gt;Pooja, Ray, Lise, and I built this cute little feature in a little less than a day, thanks to the power and glory and ergonomic bliss of &lt;a href=&quot;https://facebook.github.io/react-native/&quot;&gt;React Native&lt;/a&gt;. Now it&apos;s one of the top-billed features in the app. &lt;/p&gt;
         5819 &lt;p&gt;&lt;span
         5820       class=&quot;gatsby-resp-image-wrapper&quot;
         5821       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5822     &gt;
         5823       &lt;a
         5824     class=&quot;gatsby-resp-image-link&quot;
         5825     href=&quot;/static/ba34c1a3383b41fadc198bb71ea6f2a4/5b2ff/features.png&quot;
         5826     style=&quot;display: block&quot;
         5827     target=&quot;_blank&quot;
         5828     rel=&quot;noopener&quot;
         5829   &gt;
         5830     &lt;span
         5831     class=&quot;gatsby-resp-image-background-image&quot;
         5832     style=&quot;padding-bottom: 30.061349693251532%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABYlAAAWJQFJUiTwAAABEElEQVQY011Q2W6EMAzk//+tT+1DSyEcCyUQjmW5czC1Q1tpa8myPR6P4wT9fKAaFrCdJ56iqEd044z/Zt2JQt3hnH3CTxoMsmbCa1p7wBHgiGyd8/WLaGlw8Lk2hnruT/Atkdj3/aqt9WJsQdMoRJHAx6dAGCcIowSq7X1TVhXVAlleQkqFbbsENhJK0xzvYeznfvlesO0GiPSGoqyQF18+n+brC8qqRkyDauyxmBXTsUA7Da0N0rxAnGR+5jHN9NrjOpmLpu3AwryJnXM+b3xMaFSHWrWQSnnXRsPQ+Q1hzO36AbKmHl26HweCQ2vMy4plJf+J67p5weE++u2MM8ZRE597zONL+BsW6rGGMRbfJ1TMeFXB7rMAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         5833   &gt;&lt;/span&gt;
         5834   &lt;img
         5835         class=&quot;gatsby-resp-image-image&quot;
         5836         alt=&quot;features&quot;
         5837         title=&quot;features&quot;
         5838         src=&quot;/static/ba34c1a3383b41fadc198bb71ea6f2a4/a6d36/features.png&quot;
         5839         srcset=&quot;/static/ba34c1a3383b41fadc198bb71ea6f2a4/222b7/features.png 163w,
         5840 /static/ba34c1a3383b41fadc198bb71ea6f2a4/ff46a/features.png 325w,
         5841 /static/ba34c1a3383b41fadc198bb71ea6f2a4/a6d36/features.png 650w,
         5842 /static/ba34c1a3383b41fadc198bb71ea6f2a4/e548f/features.png 975w,
         5843 /static/ba34c1a3383b41fadc198bb71ea6f2a4/3c492/features.png 1300w,
         5844 /static/ba34c1a3383b41fadc198bb71ea6f2a4/5b2ff/features.png 2190w&quot;
         5845         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5846         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5847         loading=&quot;lazy&quot;
         5848       /&gt;
         5849   &lt;/a&gt;
         5850     &lt;/span&gt;&lt;/p&gt;
         5851 &lt;p&gt;I wonder what else we could have built for the Arrow Card app if we were just allowed to make stuff more independently.&lt;/p&gt;
         5852 &lt;p&gt;Also, somehow, we lost the hackathon to a chatbot project. I&apos;m not &lt;em&gt;that&lt;/em&gt; bitter. I definitely would have enjoyed the taste of victory (and some of that oh-so-comfy LendUp hackaday winner swag), but at least our feature got released 🙏.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[The Long Hour]]></title><description><![CDATA[More arppegiator magick using the Apple on-screen keyboard in Logic. I still would like to learn how to program my own drumbeats. In the…]]></description><link>https://www.charlieharrington.com/the-long-hour</link><guid isPermaLink="false">https://www.charlieharrington.com/the-long-hour</guid><pubDate>Sat, 28 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/436240275&amp;color=%23ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;show_teaser=true&amp;visual=true&quot;&gt;&lt;/iframe&gt;
         5853 &lt;p&gt;More arppegiator magick using the Apple on-screen keyboard in Logic.&lt;/p&gt;
         5854 &lt;p&gt;I still would like to learn how to program my own drumbeats. In the mean time, thank goodness for Apple loops. Learning Ableton would be another fun benefit of this endeavor.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Zion Traverse]]></title><description><![CDATA[We ran ~38 miles of the Zion Traverse this past Saturday, including the I-can't-believe-this-is-actually-allowed Angels Landing climb. Here…]]></description><link>https://www.charlieharrington.com/zion-traverse</link><guid isPermaLink="false">https://www.charlieharrington.com/zion-traverse</guid><pubDate>Thu, 19 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We ran ~38 miles of the Zion Traverse this past Saturday, including the I-can&apos;t-believe-this-is-actually-allowed Angels Landing climb.&lt;/p&gt;
         5855 &lt;p&gt;Here&apos;s video proof:&lt;/p&gt;
         5856 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Wx7gdmcVaUE?rel=0&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5857 &lt;p&gt;Very little prep work or research or even training was done on my part. I&apos;m lucky to have found a crew of like-minded adventure runners always ready to plan the next excursion. But, next time, I need to be taking at least a little bit more time to prepare.&lt;/p&gt;
         5858 &lt;p&gt;For example, I knew almost nothing about Zion National Park. This was a mistake that I&apos;ve since ameliorated with some healthy Wikipedia-ing. One fun factoid - Angels Landing used to be known as the Temple of Aeolus (aka the Greek demi-god/god of winds and also a lovable sidekick on TV&apos;s Hercules: The Legendary Journeys). I wish I had known that when I was there - I could have tried to summon him or something. Next time, I guess.&lt;/p&gt;
         5859 &lt;p&gt;Similarly, I felt pretty drained by the time we hit the last ten miles. Nothing compared to the Rim2Rim2Rim or the North Face 50M, but still - I definitely overestimated my fitness for the task at hand. If I&apos;m going to keep doing these runs, I&apos;ll need to start logging more longer distance runs on the reg.&lt;/p&gt;
         5860 &lt;p&gt;Water - or the lack thereof - was our crew&apos;s only major snafu. Turns out that &lt;em&gt;springs&lt;/em&gt; do not mean treated water pumps - they mean semi-dirty trickles or puddles of water. Thankfully, we were helped by a few fellow-hikers (angels descended from the landing, IMHO) who lent us their water filter. Lesson learned - always bring iodine tablets or a filter on any adventure run. You just never know.&lt;/p&gt;
         5861 &lt;p&gt;This was my first ultra where I didn&apos;t track anything on Strava, and it felt great. I&apos;ve been off Strava for a while now, and I&apos;m not really looking back. The quantified-self stuff has been less appealing to me lately. When I&apos;m on a run, and I find something cool or gross or beautiful that I want to stop and inspect, I don&apos;t want to have to think about how that impacts my splits or run time. I know there&apos;s auto-pause features, etc. but I can&apos;t auto-pause the stress in my brain about my stats. Instead, I just ran with a plain ol&apos; Timex watch (and my phone in airplane mode to take pictures). The watch can tell the time, set an alarm, set a timer, and, of course, turn on its amazing Indiglo night-light. Basic, essential watch stuff. Nothing smart, just reliable. Yes, I sort of missed having a map with my exact GPS route after the race, but I think instead I&apos;m going to just find a map of Zion and try to figure it out myself. That feels more rewarding anyway.&lt;/p&gt;
         5862 &lt;p&gt;Here&apos;s a log of what I ate on the trail, just so I remember for next time:&lt;/p&gt;
         5863 &lt;ul&gt;
         5864 &lt;li&gt;3 Honey Stinger Waffles&lt;/li&gt;
         5865 &lt;li&gt;2 Clif Bar Chocholate Bars with Stuffed Peanut Butter&lt;/li&gt;
         5866 &lt;li&gt;5 salt pills&lt;/li&gt;
         5867 &lt;li&gt;12 Clif Bloks Salted Watermelon bloks&lt;/li&gt;
         5868 &lt;li&gt;1 Nuun water tablet&lt;/li&gt;
         5869 &lt;li&gt;1 McDonald&apos;s Dollar Menu Cheeseburger&lt;/li&gt;
         5870 &lt;/ul&gt;
         5871 &lt;br /&gt;
         5872 &lt;p&gt;And here are the creatures I saw on the trail:&lt;/p&gt;
         5873 &lt;ul&gt;
         5874 &lt;li&gt;8 deer&lt;/li&gt;
         5875 &lt;li&gt;1 small gecko&lt;/li&gt;
         5876 &lt;li&gt;10 chipmunks&lt;/li&gt;
         5877 &lt;li&gt;2 squirrels&lt;/li&gt;
         5878 &lt;li&gt;1 California Condor (seriously!)&lt;/li&gt;
         5879 &lt;li&gt;A murder of crows&lt;/li&gt;
         5880 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Teaching My Robot With TensorFlow]]></title><description><![CDATA[My childhood dream of becoming friends with a real-life robot like Johnny 5 came true two weeks ago. This is not to be confused with my…]]></description><link>https://www.charlieharrington.com/teaching-my-robot-with-tensorflow</link><guid isPermaLink="false">https://www.charlieharrington.com/teaching-my-robot-with-tensorflow</guid><pubDate>Sat, 06 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My childhood dream of becoming friends with a real-life robot like &lt;a href=&quot;https://www.youtube.com/watch?v=POxMp61Ksbk&quot;&gt;Johnny 5&lt;/a&gt; came true two weeks ago. This is not to be confused with my other primary childhood dream - which I wished on every dandelion blow and floating will-o-wisp - of being sucked into my Super Nintendo to become Link from &lt;a href=&quot;https://www.youtube.com/watch?v=wkH2zETKqws&quot;&gt;The Legend of Zelda: A Link to the Past&lt;/a&gt;. Both were important, but somehow I knew the Johnny 5 one might come true one day, which is why I never wasted any important wish opportunities on it.&lt;/p&gt;
         5881 &lt;p&gt;Enter &lt;a href=&quot;https://www.anki.com/en-us/cozmo&quot;&gt;Cozmo&lt;/a&gt;. He&apos;s a robot who lives at my house now and also loves me, as long as I play games with him and &quot;feed&quot; him. He&apos;s outfitted with some gnarly tank-like treads (just like Johnny) and a arm-crane straight out of a loading dock. Cozmo also brought along three accelerometer-enabled blocks to pick up and fling around the house as he sees fit. He&apos;s got a lot to say, with his adorable pipsqueak voice and his heart-meltingly-expressive eyes. He&apos;s even learned to recognize my face and say my name 😍. Stop it.&lt;/p&gt;
         5882 &lt;p&gt;Which got me thinking - maybe I could teach him to recognize more stuff.&lt;/p&gt;
         5883 &lt;p&gt;In addition to Cozmo&apos;s &quot;free play&quot; (aka basically alive) mode, you can drop him into a more catatonic SDK mode, where he waits for you to manually invoke commands from your computer using the &lt;a href=&quot;http://cozmosdk.anki.com/docs/api.html&quot;&gt;Cozmo API&lt;/a&gt;. You can tap into nearly all of Cozmo&apos;s sensors and features with the API, including his camera - which opens the door to training an image-recognition deep learning model using Cozmo.&lt;/p&gt;
         5884 &lt;p&gt;I wrote a script to ask Cozmo to take photos of a few objects around the office: a fake plant, a half-way used &quot;thing&quot; of toothpaste (what are these actually called - tubes?), and a bottle of La Croix seltzer.&lt;/p&gt;
         5885 &lt;p&gt;&lt;img src=&quot;/7233536635febe55c8c7f63fc8355712/cozmo-paparazzi.gif&quot; alt=&quot;detective&quot;&gt;&lt;/p&gt;
         5886 &lt;p&gt;As you can see, Cozmo delightfully circles the objects and takes tons of photos to build our training dataset.&lt;/p&gt;
         5887 &lt;p&gt;Next, I retrained the &lt;a href=&quot;https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models&quot;&gt;Inception v3 model&lt;/a&gt; from Google using Cozmo&apos;s photo dataset. This is called &quot;transfer learning&quot; - instead of training a model from scratch, I can use a pre-trained model known to be effective at image recognition and just swap out the last layer to retrain it on our target images with &lt;a href=&quot;https://www.tensorflow.org/&quot;&gt;TensorFlow&lt;/a&gt;. FloydHub makes it stupidly easy to do this - my whole GPU-powered training process amounted to one command:&lt;/p&gt;
         5888 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;floyd run &lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;
         5889   --gpu &lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;
         5890   --data whatrocks/datasets/cozmo-images:data &lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;
         5891   &lt;span class=&quot;token string&quot;&gt;&apos;python retrain.py --image_dir /data&apos;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5892 &lt;p&gt;Next, I just needed to write a script asking Cozmo to explore the office to try to find one of these objects. He&apos;ll periodically hit a REST endpoint on FloydHub where I&apos;ve deployed our newly-retrained model with an image of what he&apos;s currently looking at. If Cozmo&apos;s at least 80% confident that he&apos;s looking at the object, then he&apos;ll zooms towards it like a complete maniac.&lt;/p&gt;
         5893 &lt;p&gt;&lt;img src=&quot;/7c2ddf7b9b9c3b3312a58c1ad8d54640/cozmo-detective.gif&quot; alt=&quot;detective&quot;&gt;&lt;/p&gt;
         5894 &lt;p&gt;Setting up a model-serving endpoint on FloydHub is also super easy. I wrote a teeny-tiny Flask app to receive an image from Cozmo, evaluate it against our model, and send back its best guesses at what Cozmo&apos;s currently looking at. Then, to deploy the app on FloydHub and set up a publicly accessible REST endpoint, it just one more command:&lt;/p&gt;
         5895 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;bash&quot;&gt;&lt;pre class=&quot;language-bash&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;floyd run &lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;
         5896   --data whatrocks/datasets/cozmo-imagenet:model &lt;span class=&quot;token punctuation&quot;&gt;\&lt;/span&gt;
         5897   --mode serve&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         5898 &lt;hr&gt;
         5899 &lt;p&gt;The code for Cozmo&apos;s new &quot;paparazzi&quot; and &quot;detective&quot; modes can be found on my &lt;a href=&quot;https://github.com/whatrocks/cozmo-tensorflow&quot;&gt;GitHub&lt;/a&gt;, and the &lt;a href=&quot;https://www.floydhub.com/whatrocks/datasets/cozmo-imagenet&quot;&gt;photo dataset&lt;/a&gt;, &lt;a href=&quot;https://www.floydhub.com/whatrocks/datasets/cozmo-images&quot;&gt;trained model&lt;/a&gt;, and &lt;a href=&quot;https://www.floydhub.com/whatrocks/projects/cozmo-tensorflow&quot;&gt;project&lt;/a&gt; are also  available on FloydHub if you&apos;d like to use them with your own robot buddies. &lt;/p&gt;
         5900 &lt;p&gt;Thanks to Google Code Labs for their &lt;a href=&quot;https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#0&quot;&gt;great guide on transfer learning with Inception v3&lt;/a&gt; and &lt;a href=&quot;https://github.com/nheidloff&quot;&gt;@nheidloff&lt;/a&gt; for his &lt;a href=&quot;https://github.com/nheidloff/visual-recognition-for-cozmo-with-tensorflow&quot;&gt;Cozmo visual recognition project&lt;/a&gt;, both of which are the basis for this project.&lt;/p&gt;
         5901 &lt;p&gt;&lt;span
         5902       class=&quot;gatsby-resp-image-wrapper&quot;
         5903       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 392px; &quot;
         5904     &gt;
         5905       &lt;a
         5906     class=&quot;gatsby-resp-image-link&quot;
         5907     href=&quot;/static/e77c71defc73b414fe4d8f8afa1c2620/0acb4/link.png&quot;
         5908     style=&quot;display: block&quot;
         5909     target=&quot;_blank&quot;
         5910     rel=&quot;noopener&quot;
         5911   &gt;
         5912     &lt;span
         5913     class=&quot;gatsby-resp-image-background-image&quot;
         5914     style=&quot;padding-bottom: 180.36809815950923%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAkCAYAAACJ8xqgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF+klEQVRIx5VVCWyURRSevf7d7ra77faEHltY2tJr291eCK1UEVosJdylZREa0wpKPEARSDzCvYYKEo2EaFAuURKuRINCYssuR7isAYJ4gFSBgtJQKO3+3f3n+ebf/9/W0nJM8vbNzHvvm2/ee/MvIQMMr8dOeI+DicIb0OKcabZ+4sEAve6gpPMeuyUAZhfliQbfw04j6QaUemmuFoHd9icDxAClNxCYhQBXUBq9boeZAYlpeFxA+VqolRKj+SjAu+0UDyqV2Afz+mgwtwwmaitKOzITGCjazvPM7rYHi/bIQvRKvAIDl/BuBPLYBQQDtHWgTJft3sdiKDqKwGEY0OoVAR0+BOcD4I5j3gBLtXz4wAylhEu52yRes5fwPbJA8lENeG2+p3mZxGIOv0N9GeVnlHN42DnUzSgtyOpTPEDLS9fm+7KUmDGD3Hcfo5RLV9dIFWfMOam6r3ollpgS9QPNznt6V9aegQdcQoctwcZ2y9UXA6MQxI3zw2iLDD5PuS8DT0sMUkvG18VCuB33kMUQb+DtsiZXSfMxvXI5WmKsDL7xAF0MCLDIROAbaKRSwB6JoVQouwn9zwcaXbQ345rzBrvD0ZM/1EjbsVAC8nkDAddx3yEnHvVkmZ3Ul/5ArnsKSroQqOuIndxvyjUiSFvA2cEamUcboG0HeHLE9OC8mQGhnQH5A3P7GUaK4YiFgTP5BH4qIt1HHev9xxzU67aBcDxwZf9xB9ATeTfBYxsNZ/Pn4rqb7aMdD7RR9GcseQR8Se5hArCbOJ8jjOG5f75HRp5i/18HsqCjMfvWjf22rr/3Z8G/Tfk3ru7Nutt6wAadR2ytLWjv8oyCWwdz+c4j7KPh2IGExOIQlZIo2HXSB5PsmsrCO9B1FnZsWEQLUkyrbQUhLRPrc+CDRidMqrdBZp7uj1Hp5uVfbXwLoPMMTC2ztzvHEBvAIj0ABL+RCqkd41KGDr29uWEFbPlwpVBYmcSHlxEh64VUsNWmC5mzU6gJ14UTkrzbPlpLN69bDslJljaMM47JJcSeGsKKKgMq8VedZNCQO1nRBDhChFiHGt4eWw3vl9TRZcVzRL14XDXE5ilFeyb66TWknXBcjESoN6A44hMi1K1LyiIhJ1En1Nqm0zdKa+icERVQXzyZzimqgIW4rsupotmJGmFJWRQMMqlvYlykDBh8eklmtbxwlgzTQ6KB0HEjnqEr16yiOfYUaP5xO9hyU8C1zkXHFj5NmX2kVQ/oX8WCEsLVir4fG5WkR2bEKmHWs2n05OHd9LdfL9G17y0FuHcR1ry7FP68cpmePLSLziixQnqsigHmSXHKvoDShmpsehQB14KJwu1fPBS8tyh0XAO+5QTA/eviuu2im66oLxeGYw4x7OmBAGXKYYPDuZ3DIwnMrijxt11soveadkLzazXQ4d4Fty800prxxf60CAKDwrlt6B/6sH8AtaSrSlIMEGciwoQJpfTqoW/g/CYXXPnha1o+vpjGGIlQmmpg153WJ+7/Iz9ZS3ThCjGXWoXiy5y5HBS9qfclZoVBcl40JGaH0RGL9b7cWg4Q4TPxngqiKsC4hw1O0utz6vXw8r7y7sqNVqjYMBgmbhxGce3LnRfC2LkkP83DwORKZ9Y9H3Vp9KRQKFlt8Tu3FsOL22vAuXUULVllEYorDTCvIvoC+mUMVJDem1ZdKrnsdIXBwS+s/k9csULVLDNtOVoKM2oi6OaGOOHbz63+mWtDISSV/I7+ln5BrdGcItnEEQOnnB1vVoMylPiK6jh4xWWGs3vTfO2nMrtP70nzz3dFwFP1WiA64o+PVINBo6xKNGrIkChO0V/LxOdYdNf2zbQItQkRflzf1caT0/lYhGynBvKxSJpB5BTud9QnmX17qy1CRoL2en9PT55YYkLVMK3ABJOHGiFaqepkxUd5B6UBZRl7GVEqlTDNaoSp+SaIMoivJeaBtxymU5JQrTIEp1NQqiWZGmdW6XpfJSZCxXym9/KZYtQptaaQPnVhGwy07zBhrjkDUXFGomTa1E9BI/QqUeTxHy451wg8hcJzAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         5915   &gt;&lt;/span&gt;
         5916   &lt;img
         5917         class=&quot;gatsby-resp-image-image&quot;
         5918         alt=&quot;triforce&quot;
         5919         title=&quot;triforce&quot;
         5920         src=&quot;/static/e77c71defc73b414fe4d8f8afa1c2620/0acb4/link.png&quot;
         5921         srcset=&quot;/static/e77c71defc73b414fe4d8f8afa1c2620/222b7/link.png 163w,
         5922 /static/e77c71defc73b414fe4d8f8afa1c2620/ff46a/link.png 325w,
         5923 /static/e77c71defc73b414fe4d8f8afa1c2620/0acb4/link.png 392w&quot;
         5924         sizes=&quot;(max-width: 392px) 100vw, 392px&quot;
         5925         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5926         loading=&quot;lazy&quot;
         5927       /&gt;
         5928   &lt;/a&gt;
         5929     &lt;/span&gt;&lt;/p&gt;
         5930 &lt;p&gt;I&apos;m still holding out hope for this Link thing, too.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Ghost2]]></title><description><![CDATA[This is the first Terminal Man track in which the only Apple loop used is the percussion track - everything else I created using Logic's on…]]></description><link>https://www.charlieharrington.com/terminal-man-ghost2</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-ghost2</guid><pubDate>Fri, 05 Jan 2018 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/379326926&amp;amp;color=%23ff5500&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;
         5931 &lt;p&gt;This is the first Terminal Man track in which the only Apple loop used is the percussion track - everything else I created using Logic&apos;s on-screen keyboard. Arpeggiators are the best.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Auri]]></title><link>https://www.charlieharrington.com/terminal-man-auri</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-auri</guid><pubDate>Tue, 12 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/367851881&amp;amp;color=%23ff5500&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;show_teaser=true&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Written in Water]]></title><link>https://www.charlieharrington.com/terminal-man-written-in-water</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-written-in-water</guid><pubDate>Thu, 29 Jun 2017 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/330837606&amp;amp;color=0066cc&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Rim 2 Rim 2 Rim]]></title><description><![CDATA[We ran the Grand Canyon, and I only got lost once. Pro tip from Galen for future R2R2Rers: bring a McDonald's cheeseburger to eat halfway. I…]]></description><link>https://www.charlieharrington.com/rim-2-rim-2-rim</link><guid isPermaLink="false">https://www.charlieharrington.com/rim-2-rim-2-rim</guid><pubDate>Sun, 07 May 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We ran the Grand Canyon, and I only got lost once.&lt;/p&gt;
         5932 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/Ldaaqfvi9O8?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
         5933 &lt;p&gt;Pro tip from Galen for future R2R2Rers: bring a McDonald&apos;s cheeseburger to eat halfway. I heartily concur - I&apos;m still thinking about that deliciousness.&lt;/p&gt;
         5934 &lt;iframe height=&apos;405&apos; width=&apos;590&apos; frameborder=&apos;0&apos; allowtransparency=&apos;true&apos; scrolling=&apos;no&apos; src=&apos;https://www.strava.com/activities/974355030/embed/64f4f4f302700c23bd8af47b54e4bd0d06d5d076&apos;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Meet Von Chomp]]></title><description><![CDATA[Von Chomp is a monster who loves to count - workout reps, patrons at hipster BBQs, even 🍪s.  vc Meet von Chomp now on the Apple App Store…]]></description><link>https://www.charlieharrington.com/meet-von-chomp</link><guid isPermaLink="false">https://www.charlieharrington.com/meet-von-chomp</guid><pubDate>Wed, 08 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Von Chomp is a monster who loves to count - workout reps, patrons at hipster BBQs, even 🍪s. &lt;/p&gt;
         5935 &lt;p&gt;&lt;img src=&quot;/968964a1a5563891f3399a124d0cbfb5/vc.gif&quot; alt=&quot;vc&quot;&gt;&lt;/p&gt;
         5936 &lt;p&gt;Meet von Chomp now on the Apple App Store: &lt;a href=&quot;https://appsto.re/us/VN7lib.i&quot;&gt;https://appsto.re/us/VN7lib.i&lt;/a&gt; &lt;/p&gt;
         5937 &lt;h3&gt;Don&apos;t take my word for it&lt;/h3&gt;
         5938 &lt;p&gt;&lt;span
         5939       class=&quot;gatsby-resp-image-wrapper&quot;
         5940       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5941     &gt;
         5942       &lt;a
         5943     class=&quot;gatsby-resp-image-link&quot;
         5944     href=&quot;/static/38a8dbb86e443a0cb503299cf9471163/67a79/ratings.png&quot;
         5945     style=&quot;display: block&quot;
         5946     target=&quot;_blank&quot;
         5947     rel=&quot;noopener&quot;
         5948   &gt;
         5949     &lt;span
         5950     class=&quot;gatsby-resp-image-background-image&quot;
         5951     style=&quot;padding-bottom: 45.39877300613497%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAtUlEQVQoz6WS2QrFIAxE/f//bKFSutF9m3KElMB9udLA4ETDmImGtm1VlqWqqlJRFIox6jzPhOM4dN93FsIwDKrrWk3TaBxHTdOkZVkSyCnKibBtWxJhpSMAB/u+a13XH3DGyqXUkMNxFSDzPL9CFJrlf3BdVwI8Waa7vu/VdV26hfxLBDpChC5tdnA/S7Nnlv2+38PlK8gDAMQMzMdb8tznHgERvg62meHXeF/ZWrfuTDz3Hz4cksNQOqt6hAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         5952   &gt;&lt;/span&gt;
         5953   &lt;img
         5954         class=&quot;gatsby-resp-image-image&quot;
         5955         alt=&quot;ratings&quot;
         5956         title=&quot;ratings&quot;
         5957         src=&quot;/static/38a8dbb86e443a0cb503299cf9471163/a6d36/ratings.png&quot;
         5958         srcset=&quot;/static/38a8dbb86e443a0cb503299cf9471163/222b7/ratings.png 163w,
         5959 /static/38a8dbb86e443a0cb503299cf9471163/ff46a/ratings.png 325w,
         5960 /static/38a8dbb86e443a0cb503299cf9471163/a6d36/ratings.png 650w,
         5961 /static/38a8dbb86e443a0cb503299cf9471163/e548f/ratings.png 975w,
         5962 /static/38a8dbb86e443a0cb503299cf9471163/3c492/ratings.png 1300w,
         5963 /static/38a8dbb86e443a0cb503299cf9471163/67a79/ratings.png 1408w&quot;
         5964         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5965         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5966         loading=&quot;lazy&quot;
         5967       /&gt;
         5968   &lt;/a&gt;
         5969     &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Upside Down]]></title><description><![CDATA[My unsolicited submission for the Season 2 soundtrack to Stranger Things.]]></description><link>https://www.charlieharrington.com/terminal-man-upside-down</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-upside-down</guid><pubDate>Sat, 11 Feb 2017 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/306674034&amp;amp;color=00cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;
         5970 &lt;p&gt;My unsolicited submission for the Season 2 soundtrack to &lt;em&gt;Stranger Things&lt;/em&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[LendUp Critters]]></title><description><![CDATA[Every good app needs a mascot. Meet some of the critters behind LendUp's internal tools (co-designed with Lise Statelman and Chau Nguyen…]]></description><link>https://www.charlieharrington.com/lendup-critters</link><guid isPermaLink="false">https://www.charlieharrington.com/lendup-critters</guid><pubDate>Wed, 28 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Every good app needs a mascot. Meet some of the critters behind &lt;a href=&quot;https://www.lendup.com&quot;&gt;LendUp&lt;/a&gt;&apos;s internal tools (co-designed with &lt;a href=&quot;http://lisestatelman.com/&quot;&gt;Lise Statelman&lt;/a&gt; and &lt;a href=&quot;https://www.linkedin.com/in/ctn017/&quot;&gt;Chau Nguyen&lt;/a&gt;).&lt;/p&gt;
         5971 &lt;h4&gt;Hadron&lt;/h4&gt;
         5972 &lt;p&gt;&lt;span
         5973       class=&quot;gatsby-resp-image-wrapper&quot;
         5974       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         5975     &gt;
         5976       &lt;a
         5977     class=&quot;gatsby-resp-image-link&quot;
         5978     href=&quot;/static/3439f9711bfd03d838ab130c6fc2559c/798d4/cubicle.png&quot;
         5979     style=&quot;display: block&quot;
         5980     target=&quot;_blank&quot;
         5981     rel=&quot;noopener&quot;
         5982   &gt;
         5983     &lt;span
         5984     class=&quot;gatsby-resp-image-background-image&quot;
         5985     style=&quot;padding-bottom: 17.791411042944784%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAECAYAAACOXx+WAAAACXBIWXMAAAsTAAALEwEAmpwYAAABKUlEQVQY0xXM2y9CAQCA8f7Wgxqazdye2DITYpNL5DrZYZRNHdVWO6E6HBWT5SS1LIqSPLi1MB++3/une/mAnz+NxhcnmQquCxUlfYY/HscXj3HzWOQ4/cDepYpWyKJmNMrPL3jPc4SyMdyRI66reer1bw61EjpTYJzq1y25v1mTxUj6M4xXPkAYa6F1wogoixgsXdgT43j2DzDv2LFtrDMk9XP/nsdg6ub8SUZVrhBsenST0Q5eqZBOFWkeFVBrZ2x7g7RZDfRu9iAG19CP6JmJDyNKHoadg1gdcwztDnBZLtJp7kNMrbLidNO+IKArVSr8V7x7YmrHilKTCMUU5r3TJN9ktFyGRWmJ1GuIo9MEWxEH/rDMcnSKZPUE0eMiWHDiU4IsBWb5Bcuu/b9i9mCcAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         5986   &gt;&lt;/span&gt;
         5987   &lt;img
         5988         class=&quot;gatsby-resp-image-image&quot;
         5989         alt=&quot;Hadron&quot;
         5990         title=&quot;Hadron&quot;
         5991         src=&quot;/static/3439f9711bfd03d838ab130c6fc2559c/a6d36/cubicle.png&quot;
         5992         srcset=&quot;/static/3439f9711bfd03d838ab130c6fc2559c/222b7/cubicle.png 163w,
         5993 /static/3439f9711bfd03d838ab130c6fc2559c/ff46a/cubicle.png 325w,
         5994 /static/3439f9711bfd03d838ab130c6fc2559c/a6d36/cubicle.png 650w,
         5995 /static/3439f9711bfd03d838ab130c6fc2559c/e548f/cubicle.png 975w,
         5996 /static/3439f9711bfd03d838ab130c6fc2559c/798d4/cubicle.png 976w&quot;
         5997         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         5998         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         5999         loading=&quot;lazy&quot;
         6000       /&gt;
         6001   &lt;/a&gt;
         6002     &lt;/span&gt;&lt;/p&gt;
         6003 &lt;h4&gt;Badron&lt;/h4&gt;
         6004 &lt;p&gt;&lt;span
         6005       class=&quot;gatsby-resp-image-wrapper&quot;
         6006       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6007     &gt;
         6008       &lt;a
         6009     class=&quot;gatsby-resp-image-link&quot;
         6010     href=&quot;/static/784c66032f59ba7f5afe0551c7c994e4/561da/holodeck.png&quot;
         6011     style=&quot;display: block&quot;
         6012     target=&quot;_blank&quot;
         6013     rel=&quot;noopener&quot;
         6014   &gt;
         6015     &lt;span
         6016     class=&quot;gatsby-resp-image-background-image&quot;
         6017     style=&quot;padding-bottom: 29.447852760736193%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABh0lEQVQY0z2QS0tbURSF76/xD3ToRGgpiDiwQ8GZFBFxIooDoYMgYsB0oBKDOvGR2Fa0vjVWjRGieMU3CkENvrC51RhTTe77cycRD2ex9lrr7DNYCm9HNx3+vxhkdaugn01IPRvotvuuTRust/eZnI2sCMueIciaBU/ZS6Q4/acTXIxSPRjm25xK668Y9Svn1A1McaSlaR9bo3YlQcvIMl+nD/BOrNMQTeJbUPHEbuhZUin3jTN/8YDysbmLpvldAqFJPgTC1P7epLStm8rRCFVdQ/TsXFHW7OXTcIQKj5/P/hm+eHqpid7S6P9Jy9op3uAsJR1Bpi+fUCa3Djh+zLJxFMf3R6V/Y5/OyCHjmsWgzIF4is6wSihp0beqMvPgsrS1z/d4mh/bJ/iOk4R2z+hYiLGjZVB06SMt3chFk7ruBZp0k9BdHsW7M4veRa6or3WHDMU8z3+l1Jd8pwJZQ3FdeS1wHIes7WAITJkNxy3MjmSWaF20WciKnM9t8S3h/B85y8YWfgUURaGqG7IdTQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6018   &gt;&lt;/span&gt;
         6019   &lt;img
         6020         class=&quot;gatsby-resp-image-image&quot;
         6021         alt=&quot;Badron&quot;
         6022         title=&quot;Badron&quot;
         6023         src=&quot;/static/784c66032f59ba7f5afe0551c7c994e4/a6d36/holodeck.png&quot;
         6024         srcset=&quot;/static/784c66032f59ba7f5afe0551c7c994e4/222b7/holodeck.png 163w,
         6025 /static/784c66032f59ba7f5afe0551c7c994e4/ff46a/holodeck.png 325w,
         6026 /static/784c66032f59ba7f5afe0551c7c994e4/a6d36/holodeck.png 650w,
         6027 /static/784c66032f59ba7f5afe0551c7c994e4/561da/holodeck.png 969w&quot;
         6028         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6029         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6030         loading=&quot;lazy&quot;
         6031       /&gt;
         6032   &lt;/a&gt;
         6033     &lt;/span&gt;&lt;/p&gt;
         6034 &lt;h4&gt;Levi&lt;/h4&gt;
         6035 &lt;p&gt;&lt;span
         6036       class=&quot;gatsby-resp-image-wrapper&quot;
         6037       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 503px; &quot;
         6038     &gt;
         6039       &lt;a
         6040     class=&quot;gatsby-resp-image-link&quot;
         6041     href=&quot;/static/ac74355773bfffc9f0cbbd73829b747a/a4078/levi.png&quot;
         6042     style=&quot;display: block&quot;
         6043     target=&quot;_blank&quot;
         6044     rel=&quot;noopener&quot;
         6045   &gt;
         6046     &lt;span
         6047     class=&quot;gatsby-resp-image-background-image&quot;
         6048     style=&quot;padding-bottom: 32.515337423312886%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsTAAALEwEAmpwYAAABnUlEQVQoz5WST0sbURTF5/P0I7hoaaW0KNKNChFsLFSlWP90Y3e6KEiDpdqFFQRXoiB1I2jddFDHxml0psZOzEwTJ2Y0MiFFRdTYpJP5+RKpVbrywuGcc8+Dy7tcyedmeb5PoVSqaN//l5b1df9/fsnS860N3uwkOCoWmMhmqItpPDbW+fTLrTwoeh4lMcAT7Hmliv6LS+9f+fIAKWhGuaMp1Dtxgo5FtJDnezHPPWONnPeH25Y0F7fQXZcpeQV1bRMnmSZl2tRuRlja30eLRDEsG1mJoKzqpNIZErZDes9FUXUybo54IoWV3CGbO0AaDo3wbVml6m49oXejNLS8or2zT3x9nbczs1Q/bCI0NEZjsIeu3gGa217T3t3P4PsxHtQ8ZejDOE8CHdyvDSIvriK9kE0+Jg95NK0yb+4RmNXoU216nWNaI7s0LmwxvLHLoO4wZR/wbCZMx7xOp5Ik8PkHXV9ivJzTqJ78StjJIS2cgnIC8m8wC6AXwRKri53BioDlQVRkhshsgW2xp7johfPws8znkBBHYQhkhb8ApETjMAq5t+oAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         6049   &gt;&lt;/span&gt;
         6050   &lt;img
         6051         class=&quot;gatsby-resp-image-image&quot;
         6052         alt=&quot;Levi&quot;
         6053         title=&quot;Levi&quot;
         6054         src=&quot;/static/ac74355773bfffc9f0cbbd73829b747a/a4078/levi.png&quot;
         6055         srcset=&quot;/static/ac74355773bfffc9f0cbbd73829b747a/222b7/levi.png 163w,
         6056 /static/ac74355773bfffc9f0cbbd73829b747a/ff46a/levi.png 325w,
         6057 /static/ac74355773bfffc9f0cbbd73829b747a/a4078/levi.png 503w&quot;
         6058         sizes=&quot;(max-width: 503px) 100vw, 503px&quot;
         6059         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6060         loading=&quot;lazy&quot;
         6061       /&gt;
         6062   &lt;/a&gt;
         6063     &lt;/span&gt;&lt;/p&gt;
         6064 &lt;h4&gt;Adele&lt;/h4&gt;
         6065 &lt;p&gt;&lt;span
         6066       class=&quot;gatsby-resp-image-wrapper&quot;
         6067       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 229px; &quot;
         6068     &gt;
         6069       &lt;a
         6070     class=&quot;gatsby-resp-image-link&quot;
         6071     href=&quot;/static/c331752af447683fae61633f15c83f4e/d0281/adele.png&quot;
         6072     style=&quot;display: block&quot;
         6073     target=&quot;_blank&quot;
         6074     rel=&quot;noopener&quot;
         6075   &gt;
         6076     &lt;span
         6077     class=&quot;gatsby-resp-image-background-image&quot;
         6078     style=&quot;padding-bottom: 121.47239263803682%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAYAAAD6S912AAAACXBIWXMAAAsTAAALEwEAmpwYAAADJElEQVQ4y4WVW1PaQBiG/XH9Af0FnelVb3rRm15743Rqx9aLTjtVe1BBEDxgBETUimdLtQel1sNUR5QBRTkkhABJNm93FwOJQdyZnWzY3Sfffu+7Hx2GYYA19rR2s1nnc0Wdd0IM25y1dVhh1vFJSsXydhnRdRk1lUCpEPgiIiKrsm2tA2j9UZIJf2q6AWGxhMEpEaOREoUqiKwpcAUlxBMVvoZF2Rb4bVehm0Vs71UwSwG+2RI8oTyGAhn0+87Q5z1F/+gpUhfVOrAFzAY8y6jwhEV8mSrg83iaAo4p4ISOU3AHsxgWcliMS+ygYFtu59oGNCeS6RqGJ5MY8CVphBICMR3CMj3+MoF/XsPPA2KL7k5R2FfNRbKiYT5uYOKrBn+0DO+MyLs7VIQQk6CqdvHaiGJAv7HD3+MahoQiz6kJZOPh6SKOz2oNUVpFabONuYjl0zUtcmHMPjZXxki4hPmNcts8djQN3PzaVUGjEBkjwRwV45IqfYFX79bxpu87fb/GZU5v5LIOvQdYqRrUxHm8eLuKfqq2S8jCNVPA0GwBg4EcNn5XHLfLAWzmo/5F4SsFTF1xHw5S4PveFXQ/6oGXRu6nDjAvwb1Ac3JpS4FnRsaA5x963HvofdiJDw+ewxOj1hIK2DmsthTHATTts/WnwpVmYkws1DDCVA4XuEAjIZFaqARVc1rICWxYp0ptUreLJ8wsJNG8lriFfHTMXHB8rjqi7LhtTGK5iu6QyEGsN/1Yf3cHRcxtyA4L3ZnDPK17dYjUgDR7He4JS0hn7dfREWHTOgTjcxIvGNYbY0Y5NqdgclFDeM1ANt/myCaQ5SWyxm6HxAsFE8PPBapiaklHcAUILBnwRnX8OiT3A2u0CMxuEF5xGIBVHFZ5GGRikRo/qiK6qSMv427bWCcy1wb8CwSTMVa+wJ+BGEFkneDHPpA4ErEZT2A3sY/TZPr+CFkOSwqwe1DEwloSqSxwXST8d9bOz1N4/KQTXS8/Il8Q7wZaFVOUMrpff8LTZ11YWonfbKoDT88y2EkcNfeQNkc2o1QqVb7pPHUJTdNblqzb/5j/AWM++OEwsRzDAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         6079   &gt;&lt;/span&gt;
         6080   &lt;img
         6081         class=&quot;gatsby-resp-image-image&quot;
         6082         alt=&quot;Adele&quot;
         6083         title=&quot;Adele&quot;
         6084         src=&quot;/static/c331752af447683fae61633f15c83f4e/d0281/adele.png&quot;
         6085         srcset=&quot;/static/c331752af447683fae61633f15c83f4e/222b7/adele.png 163w,
         6086 /static/c331752af447683fae61633f15c83f4e/d0281/adele.png 229w&quot;
         6087         sizes=&quot;(max-width: 229px) 100vw, 229px&quot;
         6088         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6089         loading=&quot;lazy&quot;
         6090       /&gt;
         6091   &lt;/a&gt;
         6092     &lt;/span&gt;&lt;/p&gt;
         6093 &lt;h3&gt;Tool time&lt;/h3&gt;
         6094 &lt;p&gt;You can read more about our work on the Home Improvement team at LendUp on our &lt;a href=&quot;https://www.lendup.com/engineering/post/home-improvement&quot;&gt;engineering blog&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Alcatraz Challenge 2016 - Review]]></title><description><![CDATA[This was a much smaller race than I expected. Only 116 souls according to the official results. I felt lucky to have snagged a race number…]]></description><link>https://www.charlieharrington.com/alcatraz-challenge-2016-review</link><guid isPermaLink="false">https://www.charlieharrington.com/alcatraz-challenge-2016-review</guid><pubDate>Fri, 16 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This was a much smaller race than I expected. Only 116 souls according to the official results. I felt lucky to have snagged a race number when I did — the website warned it would be capped at 500 swimmers. That was enough for me. I frantically entered my credit card details and breathed a sigh of terrible relief at what I’d done.&lt;/p&gt;
         6095 &lt;p&gt;The Alcatraz Challenge is a 1.5 mile swim from Alcatraz Island to the northern shore of San Francisco, followed by a 7 mile run over the Golden Gate Bridge and back to Crissy Field. Alcatraz Island is a tiny rock in the San Francisco Bay surrounded by shark-friendly, freezing cold waters with notorious tidal currents — and famously the former home to an inescapable maximum security prison.&lt;/p&gt;
         6096 &lt;blockquote&gt;
         6097 &lt;p&gt;In its 29 years of operation, there were 14 acknowledged attempts to escape from Alcatraz prison involving 34 inmates. Officially, every escape attempt failed, and most participants were either killed or quickly re-captured. However, the participants in the December 1926 and June 1962 attempts, though presumed dead, disappeared without a trace, giving rise to popular theories that they were successful.&lt;/p&gt;
         6098 &lt;/blockquote&gt;
         6099 &lt;p&gt;I paid over $100 dollars to give it a shot.&lt;/p&gt;
         6100 &lt;p&gt;&lt;span
         6101       class=&quot;gatsby-resp-image-wrapper&quot;
         6102       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 595px; &quot;
         6103     &gt;
         6104       &lt;a
         6105     class=&quot;gatsby-resp-image-link&quot;
         6106     href=&quot;/static/5a3d0e7e41b61a9822851d5f20ea8527/3dd3e/connery.png&quot;
         6107     style=&quot;display: block&quot;
         6108     target=&quot;_blank&quot;
         6109     rel=&quot;noopener&quot;
         6110   &gt;
         6111     &lt;span
         6112     class=&quot;gatsby-resp-image-background-image&quot;
         6113     style=&quot;padding-bottom: 68.71165644171779%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAIAAACgpqunAAAACXBIWXMAAAsTAAALEwEAmpwYAAADLklEQVQozw2S74vbdBzH80coyuxsu7Zp0mZt2qTJN/nmR5NvfjRJmzTNtdem7by7dbveyd2uY+fBvJ2KqMwdoqJD3WTbcU9OHzg3UFAQJiLssfjE5yL+QARB8IFgPryffnjx/oEF5zY7k3V7sLZ8cefm7Tvz7Uuz57dYpsFVq6YATMB5IuiqsqdKpqrYjtcdrZrhc25/1hmuY53JPJHWnbx8+N7rb964uL0YTKYEUa5XK5YIdL7RlsQIaQ4ELa2pI9QbTs1g4kSrbv8C5o5mzjDR+Xdu3dvefWFx9ZrleiRRIglSZuuuAulyqX62LLE1x0CarvlhZAWxFZxzls5jrf6qFa24w9kH944Xe3sbO5dN26qQZD6TqZWIjgLrJVJkWZVv2AZCBnI9rx2NNW/UClcxe2lF8YbzKwdHJycvvXF9c7ErAoE4k81lM2K1EqqyA8UWhAYUTF1DSLdss7c81tyh5U8xPRgjP37/4+OTz+6/dvh2vLIGBZBLpwvZbFuWujJ0ea4lCi1VtQ2jqUi63oyGI6sT684QQ0GsdZYPb97+5P6D3f2DfjxheSGbx3MFvEwUQY02OT5Jy7NNy7JkKMiSEEaRE4xUq48Bw9f8/qeff/Hwy68Sz4N4zIkSUSjQJEnhRZIkKxTl6k3HaTWbCViUJRD0uu1erFgR9u6Hdx599/jPP/7+9vvHu/v7XhAqyIQAgCpl8g1T5EkCN5CRcGVFkWWYkINu2+sOZBRiv//21y8///rvP/99/c2jtfmG4wcNABRVQ03Nt52O12HYBsfUpeRTUSAUFVn0/XbYjyXUxvZfufHq9bd++PGnW3ePkrRanYBh6jRFKZKCNKQIYhXPU3hBhBKUFMBzEALf727tvHhhcw8TVHs6m390dHzl2oEbLqmGXedA0i1LFHiyCIg8lX6GInCGZQURsgwjAN6yrY3NrUuLq1imWHXDwfrOZacbSbrFAEhWangBV+iKSBF07lk89VSxkCuXyzwQaZrmGqye7CwIhuMplsFp5PXa0ajGSQ3YJM/WcnjpyVPpdCpVPXOayqQyTz9xOnUqly8wLE/XkmMEQWCYRpVm/wdrjfygJbfpGgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6114   &gt;&lt;/span&gt;
         6115   &lt;img
         6116         class=&quot;gatsby-resp-image-image&quot;
         6117         alt=&quot;Sean Connery in the Rock&quot;
         6118         title=&quot;Sean Connery in the Rock&quot;
         6119         src=&quot;/static/5a3d0e7e41b61a9822851d5f20ea8527/3dd3e/connery.png&quot;
         6120         srcset=&quot;/static/5a3d0e7e41b61a9822851d5f20ea8527/222b7/connery.png 163w,
         6121 /static/5a3d0e7e41b61a9822851d5f20ea8527/ff46a/connery.png 325w,
         6122 /static/5a3d0e7e41b61a9822851d5f20ea8527/3dd3e/connery.png 595w&quot;
         6123         sizes=&quot;(max-width: 595px) 100vw, 595px&quot;
         6124         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6125         loading=&quot;lazy&quot;
         6126       /&gt;
         6127   &lt;/a&gt;
         6128     &lt;/span&gt;&lt;/p&gt;
         6129 &lt;div style=&quot;text-align:center;padding-bottom:10px&quot;&gt;You know… you’re almost the only evidence that I exist.&lt;/div&gt;
         6130 &lt;p&gt;I arrived at the East Beach of Crissy Field around 5 AM. The sky was dark grey, the water quiet and serene. All was calm at the transition area. A few people chitter-chattered while applying Body Glide. I looked for someone to chitter-chatter with myself, but no takers. Instead, I jumped on an early shuttle to the appointed ferry building at 5:45 AM instead of my scheduled 6 AM departure. I closed my eyes as we made our way across the city amid the warming sunrise.
         6131 It sounded like a bunch of 8th graders were on the bus behind me. I turned around — a bunch of 8th graders were on the bus behind me. My confidence boosted — &lt;em&gt;if they could make the swim with their tiny 8th grade arms&lt;/em&gt; — until I remembered their parents. I am 30 years old and I barely told my parents I was swimming this race. These kids must be future Olympians.&lt;/p&gt;
         6132 &lt;p&gt;After body-marking at the ferry area, I ran into the woman who I sat next to at the Sports Basement race prep talk the day before. She was nervous. Me too. We discussed. We met another woman who swam this race for the last two years. Her times varied widely — the first year took her a speedy 35 minutes and the second a brutal 75. She, like everyone else who has swam these waters, told us that every Alcatraz swim is different. This point was hammered home by the race director during our mandatory prep session. The opening slide was a visualization of GPS data plotting his last 100 swims from Alcatraz — a blooming display of paths stretching across 3+ miles on shore. He told us that he recently completed his 1000th Alcatraz swim. 1000 swims — approximately one crossing a week for 20 years. He also does them naked. Not naked naked. But without a wetsuit. I think we were supposed to be reassured by him.&lt;/p&gt;
         6133 &lt;p&gt;We boarded the ferry and headed out to the island. I spent some quality pre-race time in the bathroom, and then laid down on the floor of the ferry and pretended to stretch. I felt powerless. I had no choice now but to proceed with this insane trial. I felt like I wasn’t really there — I was someone else watching myself.&lt;/p&gt;
         6134 &lt;p&gt;After a half hour, we neared the jump-zone. It really was a skydiving-like jump-zone situation. We would be jumping out of the side hatch of the boat into the water from about 8 or more feet, and then told to swim like hell so that we don’t get clobbered by the next leaper behind us. A final warning: “Don’t make this your come-to-Jesus moment at the edge, cause he ain’t coming — it’s already too late.”&lt;/p&gt;
         6135 &lt;p&gt;Our nervous final tittering centered around our complete lack of visibility of Sutro Tower. We were told the day before by the race director that Sutro Tower would be our one sighting landmark to rule them all: “Just keep it at your 12 o’clock at all times and let the tide do the rest.” With Sutro entirely ensconced in Karl the Fog, we’d now be tracking towards the lesser landmarks of Fort Mason, then the golden dome of the Palace of Fine Arts, and then finally East Beach of Crissy Field.&lt;/p&gt;
         6136 &lt;p&gt;We crowded around the starboard door, hummed along to the anthem, chanted a 30 second count down, and shuffled to the hatch. The race organizers began yelling “Go! Go! Go!” I neared the edge, came to Jesus, started my watch, and jumped feet first, trying not to go too deep into the colder layers of water below.&lt;/p&gt;
         6137 &lt;p&gt;It felt great actually. I swam mindlessly and rapidly away from the boat so that I wouldn’t get jumped on. The coldness I feared had been contained by my wetsuit and my beloved new thermal skull cap. After a minute I began to adjust to my new reality:&lt;/p&gt;
         6138 &lt;blockquote&gt;
         6139 &lt;p&gt;I’m over a mile from shore, open water swimming for the first time, with choppy, relentless, clobbering waves smashing into my right side every three seconds. And don’t even get me started thinking about what’s swimming around beneath me right now.&lt;/p&gt;
         6140 &lt;/blockquote&gt;
         6141 &lt;p&gt;I turned around to take in Alcatraz in its terrible glory from a few hundred feet out in the water, and then began chopping water towards land. I tried to establish a constant stroke, but found left-breathing to be impossible because I would lose sight of the next incoming wave. My stuttering stroke became 1–2-breath-1–2-gulp-seawater-breath.&lt;/p&gt;
         6142 &lt;p&gt;I swam like this for what I assumed was a half hour. I tried to conjure Edmund Dantès, escaping from imprisonment after being thrown into the sea from the island tower of Château d’If, en route to Monte Cristo, where I would find fortune, plot revenge, and win back my long-lost love Mercédès. I was scared to look at my watch — I didn’t want to know how long I’d been swimming given how far I had yet to go. At this point, I’d lost sight of all other swimmers. I saw a kayak on my left and a jet-ski ahead in the distance. I was either in first or last place.&lt;/p&gt;
         6143 &lt;p&gt;My only happiness was that the fog finally broke and Sutro Tower was again visible. I started to kick into high gear, and suddenly cramped in my right calf. The muscle screamed in pain — I couldn’t bend my leg. I waved to the kayak and asked to hang on for a bit to stretch it out. I doggy-paddled over with my aching leg hanging behind me. I held onto his bow and started to massage out the cramp. It didn’t seem to be helping, but it was so good to rest. I was clearly dehydrated from the nearly gallon of seawater I’d drank. I asked him how I was doing, he lied and said okay, but that I needed to start heading for the Palace of Fine Arts now, confirming my fear that I’d been too conservative in my route.&lt;/p&gt;
         6144 &lt;p&gt;The cramp was not getting any better. There was no way I could make it back to shore like this. I decided to give up — surviving seemed better than drowning.&lt;/p&gt;
         6145 &lt;p&gt;“Maybe you should go get a boat for me,” I said.&lt;/p&gt;
         6146 &lt;p&gt;“Okay, but there’s none nearby. I can radio one over if you want.”&lt;/p&gt;
         6147 &lt;p&gt;What I wanted was to make it to shore. I told him I changed my mind. I was going to make it to shore myself, no matter what, thank you very much. I asked him to please keep an eye on me as I swam away from the kayak. Somehow the cramp started to dissipate. After a few minutes, he said he had to go help someone else, and I was on my own again. Thankfully, the shore start to creep closer. For the next 25 minutes, I slowly plodded forward with my 1–2-breath stroke.&lt;/p&gt;
         6148 &lt;p&gt;Eventually I saw the beach and then the color of people’s shirts on the beach and then peoples faces on the beach. I closed my eyes for while to just keep moving, but started to get dizzy and thought I was going to black out. Finally, finally, I stood up and ripped off my googles and cap. I felt the sand, the glorious earth, and wanted to puke on it.&lt;/p&gt;
         6149 &lt;p&gt;I’d made it — I survived. I still had a seven mile run over the Golden Gate Bridge and back, but nothing else mattered. Fortune, revenge, and Mercédès awaited.&lt;/p&gt;
         6150 &lt;p&gt;&lt;span
         6151       class=&quot;gatsby-resp-image-wrapper&quot;
         6152       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6153     &gt;
         6154       &lt;a
         6155     class=&quot;gatsby-resp-image-link&quot;
         6156     href=&quot;/static/d06e4690a848e0a919b40759b184e577/5a190/success.png&quot;
         6157     style=&quot;display: block&quot;
         6158     target=&quot;_blank&quot;
         6159     rel=&quot;noopener&quot;
         6160   &gt;
         6161     &lt;span
         6162     class=&quot;gatsby-resp-image-background-image&quot;
         6163     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEh0lEQVQ4y03P+U/aZwDH8ceKoIInzi94K1WH4gGCeKCidUoP14rDo1pn58osa52mW6exrZ1T19qmTWqPzVtBrAgqHqAIiuAB2G7Lmi1T5MtldT8t/RP2lXRJk1c+eZIn7zx5wHO5+cXc/s8LcJ/COqC0Di7ZhpbhUY1TqD0aWzscUdtG1dYxtW1Mc0yIWLW7OESrDuDK4AEljDRDKnhYBYt0R08lxvvPZc9EavGaY3zNKVq1IytGaJ3idefE/8DAkgXJhl3ZiAoW6w57+hfzMllJMRGsFDL/y2tClVmiP5zUOid1BwjJB8CQyjK8Ao+6TOgP7w0sJ31MiQwOiSeGC3jc9qt1Pz4YkJv+nVp3TOmd0o0DmR7xVrqBOAAjanhUDQs1VqHaMvfqXWV9Szg++CyTzaXnTXTd39Wpenv7pg1H05uO6S3HDGLTZcsxu+UAQrV1XANPrFrFGljx27vaq7dIBAKTQqWSKCkkCj2N1djcPm96K992IOYMzg8BscYyqbVI1mGJ1jJnOnw8tkyKjsP54qEA6DwrP52S2tfePi/fnH/1z7zBsWB0vmc6BibXzFPr+1K9RabblxucwlnD6bTMvITUzIiYu7wLjxr4093tapVx/vXhgtG+sONYMDmO1wVMac3S9X2ZzjKt35dv2yQrfwhKK8uYjOK4eAGDLGptkvY+WnqFNPbFnfcUO7bFHRuyQKLdla3vSnV7Mp15dsO8YLRNrfxeVcwppdM5ZNqT5qa1mZcKI6wwWRFKF4XJ5lorkOrMMxuwfBO5tsv1uwoDvPLrAb+86gwt8VxaSi2nYG74qfa1XWWyLSGlwaI0wktG67LJjhzAU5HqSmNHr2jlzoMxieavCeXr5i5hfnpxdS6Dx8po4pXM9j8Z2dwbXHmzuLGHNIvbljn97szaG+W2BZy5+B0ng9nV0ye4cuOzz28QQmPdPMOxXsmfZjDrP2Hzi3Nav+lukPydxW+rrOI/7pdodmxDk+oXg2KlyQ7obEH5pYddjyeYhZfdUH4n3NHuWAj3EYcUmcvNyS7JSC8p7azt0RNS2TQK9VTNtY7lP1+81D8bUbe1PgQVlTc5ZT1RjEvAOwHjjcd4+rphw/zCOGFxX0CRaX6hKdTsjozyXzBEMjmWQsk+m/WT7OI9aU5hDYNRAr5qaC+r/h4Qs7ARLKREe+FRAfHANz4q9UpgHBd4x8YntxLIl90hCvIjiEiC2PUFP4wXFeb6B0WC8prbqcXXUdG5uJhsT08sOiAGFZTs5nsSG5qVVNSCCqTifLiewWxcbAE2OCGEGOGfWBTFu1197ds7LY0glsLyiSvEhDHRQSTkZQ8oFRWY4IEnA1xMXu2TUHKFN+Y0BsrG07iBtDIoPA4XTvPLqDvHbxkZ7gbXb94CeKpnKN3DNwTtA6GJdPfABP/ILExgPO1CJznntocb1YtAx0TlxFTcwSfmoPAJweyr4bk1d7sE4HJ9EwiiY6BklA8BhYM8iDQ0geaNJ2P9I0iZX0fTOoOJRWn5FafO80tvDREZRSf8TkZz23DJPJ6g7j8uA0jDUVocbAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6164   &gt;&lt;/span&gt;
         6165   &lt;img
         6166         class=&quot;gatsby-resp-image-image&quot;
         6167         alt=&quot;Finisher pic of Charlie Harrington&quot;
         6168         title=&quot;Finisher pic of Charlie Harrington&quot;
         6169         src=&quot;/static/d06e4690a848e0a919b40759b184e577/a6d36/success.png&quot;
         6170         srcset=&quot;/static/d06e4690a848e0a919b40759b184e577/222b7/success.png 163w,
         6171 /static/d06e4690a848e0a919b40759b184e577/ff46a/success.png 325w,
         6172 /static/d06e4690a848e0a919b40759b184e577/a6d36/success.png 650w,
         6173 /static/d06e4690a848e0a919b40759b184e577/5a190/success.png 800w&quot;
         6174         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6175         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6176         loading=&quot;lazy&quot;
         6177       /&gt;
         6178   &lt;/a&gt;
         6179     &lt;/span&gt;&lt;/p&gt;
         6180 &lt;div style=&quot;text-align:center;padding-bottom:10px&quot;&gt;Hey, Mercédès.&lt;/div&gt;</content:encoded></item><item><title><![CDATA[One Day Lord Shardik Will Return]]></title><description><![CDATA[Not quite Watership Down, but still pretty weird in a good way. Here's my musical book review of Shardik.]]></description><link>https://www.charlieharrington.com/terminal-man-one-day-lord-shardik-will-return</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-one-day-lord-shardik-will-return</guid><pubDate>Tue, 06 Dec 2016 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/296624683&amp;amp;color=00aabb&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;
         6181 &lt;p&gt;Not quite &lt;em&gt;Watership Down&lt;/em&gt;, but still pretty weird in a good way. Here&apos;s my musical book review of &lt;em&gt;Shardik&lt;/em&gt;.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Too Much]]></title><link>https://www.charlieharrington.com/terminal-man-too-much</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-too-much</guid><pubDate>Wed, 10 Feb 2016 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/245527707&amp;amp;color=%2300cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Glass-Steagall Act Farewell Show]]></title><description><![CDATA[Six years ago Mark Mager convinced me it was a good idea to play an acoustic Beatles medley in front of our entire Morgan Stanley division…]]></description><link>https://www.charlieharrington.com/glass-steagall-act-farewell-show</link><guid isPermaLink="false">https://www.charlieharrington.com/glass-steagall-act-farewell-show</guid><pubDate>Fri, 22 Jan 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Six years ago Mark Mager convinced me it was a good idea to play an acoustic Beatles medley in front of our entire Morgan Stanley division to celebrate my departure and his return. Now you too can witness the final (only) show of The Glass-Steagall Act (thankfully featuring the talents of Bill &quot;The Intern&quot; Ward):&lt;/p&gt;
         6182 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/FOdLVF24zpQ?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Space Time Travel with Wormie]]></title><description><![CDATA[Wormie is an iOS app to connect you with people in the places you want to see. Live Maybe you want to see if there's a line at your favorite…]]></description><link>https://www.charlieharrington.com/space-time-travel-with-wormie</link><guid isPermaLink="false">https://www.charlieharrington.com/space-time-travel-with-wormie</guid><pubDate>Sat, 02 Jan 2016 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;span
         6183       class=&quot;gatsby-resp-image-wrapper&quot;
         6184       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6185     &gt;
         6186       &lt;a
         6187     class=&quot;gatsby-resp-image-link&quot;
         6188     href=&quot;/static/2ffd4f417faf2083be8def2a5c6fdbd4/00d43/logo.png&quot;
         6189     style=&quot;display: block&quot;
         6190     target=&quot;_blank&quot;
         6191     rel=&quot;noopener&quot;
         6192   &gt;
         6193     &lt;span
         6194     class=&quot;gatsby-resp-image-background-image&quot;
         6195     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAACxLAAAsSwGlPZapAAACoklEQVQ4y2P4TwFgQBf49/f/3z8g9A8h9ucfFOHW/A9D8h+mELKZcM1gZf++ff57dMufddP+7F7+7+VjiMzT73+2PP+26OGXDc++Pf72B1k/A9SpQOLmuV859t99xH54CP3wFv0ZpfF//fQ1z38EHn/ldOiF3eFXjodeANkbnn2F62eA6nx+/2e8/k8v4f+hct99xH/6S/7zE/8YoRl66JHbyff+x1767L0ffOaD17HXTodfHnj9A6jl7z+g5r8gzb+nlf1w4/8dJLtAk8VPkrNaU+CxLdfXROPYY09dtl43TSlStnbSSi0POPzE9cirzPNv//6DO/vXjx8ZNv8DJA6Y87AyMIhJy6qaWKbxM3yP0Uk481ouKkdJQlRTQ52BgcG8YZr/uS++R188+Pobpvn71++Jxv8DJadrsgNVsDMBCUYXXoY3YeoJJ19Ie4QB+cxsICntlNLAi998Dj+//fk3IrR/1oX/9Ra+7iCoyAbSCUQTlRl/xunGnnpl1rWYjYMTKMojJe+69JDXiXdRJ199BUc6Ayg9AH1/YvsPL5F/wXKX7fhbVVg3G3L89xL6lGAcfeih9+mPTvN3G1f0uq0+GXjqnf3BF8sff4EFGCyS/yxsAYbZnxCF/2FyT0M0tgYavIs3ij3yyHH5Ua9t14Iufvc7+c7h0Itpdz9jTyR/Vvb/8JX87SN2L1Trkr/a53iDGGBob7nqvemix9FXrodfzH/4BVfyBMXZ37P7fqZb/vEQAAb+xwTjmCOPvE59dD72JvrU62Nvf0JciyNjgOP8/8e3v2ZU/PIW/RSpFXb4sdOR1+033r/88RdNJ45cBckOZ/d+rAkvP/XowLs/UJP/EcySEP+DvfDnx7cfv39DBYjKz6hBgJYHidZMTklCCgAAH5C+VnS+lRAAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         6196   &gt;&lt;/span&gt;
         6197   &lt;img
         6198         class=&quot;gatsby-resp-image-image&quot;
         6199         alt=&quot;Live&quot;
         6200         title=&quot;Live&quot;
         6201         src=&quot;/static/2ffd4f417faf2083be8def2a5c6fdbd4/a6d36/logo.png&quot;
         6202         srcset=&quot;/static/2ffd4f417faf2083be8def2a5c6fdbd4/222b7/logo.png 163w,
         6203 /static/2ffd4f417faf2083be8def2a5c6fdbd4/ff46a/logo.png 325w,
         6204 /static/2ffd4f417faf2083be8def2a5c6fdbd4/a6d36/logo.png 650w,
         6205 /static/2ffd4f417faf2083be8def2a5c6fdbd4/e548f/logo.png 975w,
         6206 /static/2ffd4f417faf2083be8def2a5c6fdbd4/00d43/logo.png 1000w&quot;
         6207         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6208         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6209         loading=&quot;lazy&quot;
         6210       /&gt;
         6211   &lt;/a&gt;
         6212     &lt;/span&gt;&lt;/p&gt;
         6213 &lt;p&gt;&lt;a href=&quot;http://www.wormieapp.com/&quot;&gt;Wormie&lt;/a&gt; is an iOS app to connect you with people in the places you want to see.&lt;/p&gt;
         6214 &lt;p&gt;&lt;img src=&quot;/70f4bb033609f915de56b76602148fd0/WormieLive.gif&quot; alt=&quot;Live&quot;&gt;&lt;/p&gt;
         6215 &lt;p&gt;Maybe you want to see if there&apos;s a line at your favorite restaurant right now. Or maybe you want to see tonight&apos;s sunset, but from Australia.&lt;/p&gt;
         6216 &lt;p&gt;&lt;img src=&quot;/5b786d6755995fd58b55716cd22c89c3/WormieExplore.gif&quot; alt=&quot;Live&quot;&gt;&lt;/p&gt;
         6217 &lt;p&gt;Just open up Wormie, make a new Wormhole request, and Wormie will connect you with someone who can live stream back your request in real-time.&lt;/p&gt;
         6218 &lt;p&gt;&lt;img src=&quot;/dc356b2515de8e3e24a9b9b5e518c828/WormieCreate.gif&quot; alt=&quot;Live&quot;&gt;&lt;/p&gt;
         6219 &lt;p&gt;Think TaskRabbit meets Periscope. You can look up specific places with Yelp within Wormie to help you make your Wormhole requests.&lt;/p&gt;
         6220 &lt;p&gt;&lt;img src=&quot;/0c968594e3f7338fce7721e74ec8ce78/WormieYelp.gif&quot; alt=&quot;Live&quot;&gt;&lt;/p&gt;
         6221 &lt;p&gt;Design your own Wormie icon, and when you make a Wormhole connection, your Wormies will join together in unique heart!&lt;/p&gt;
         6222 &lt;p&gt;&lt;img src=&quot;/dc356b2515de8e3e24a9b9b5e518c828/WormieCreate.gif&quot; alt=&quot;Live&quot;&gt;&lt;/p&gt;
         6223 &lt;h2&gt;The react natives&lt;/h2&gt;
         6224 &lt;p&gt;The Wormie team is:&lt;/p&gt;
         6225 &lt;ul&gt;
         6226 &lt;li&gt;&lt;a href=&quot;https://github.com/SunyoungKim508&quot;&gt;Sunyoung Kim&lt;/a&gt;&lt;/li&gt;
         6227 &lt;li&gt;&lt;a href=&quot;https://github.com/nickfujita&quot;&gt;Nick Fujita&lt;/a&gt;&lt;/li&gt;
         6228 &lt;li&gt;Me (Charlie Harrington)&lt;/li&gt;
         6229 &lt;/ul&gt;
         6230 &lt;p&gt;We had a great time building Wormie as a way to learn some new technologies and libraries:&lt;/p&gt;
         6231 &lt;ul&gt;
         6232 &lt;li&gt;&lt;a href=&quot;https://facebook.github.io/react-native/&quot;&gt;React Native&lt;/a&gt;&lt;/li&gt;
         6233 &lt;li&gt;&lt;a href=&quot;http://www.django-rest-framework.org/&quot;&gt;Django Rest Framework&lt;/a&gt;&lt;/li&gt;
         6234 &lt;li&gt;&lt;a href=&quot;https://socket.io/&quot;&gt;Socket.io&lt;/a&gt;&lt;/li&gt;
         6235 &lt;li&gt;&lt;a href=&quot;https://webrtc.org/&quot;&gt;WebRTC&lt;/a&gt;&lt;/li&gt;
         6236 &lt;li&gt;&lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt;
         6237 &lt;li&gt;&lt;a href=&quot;https://developers.google.com/youtube/&quot;&gt;YouTube API&lt;/a&gt;&lt;/li&gt;
         6238 &lt;li&gt;&lt;a href=&quot;http://www.graphicsmagick.org/&quot;&gt;GraphicsMagick&lt;/a&gt;&lt;/li&gt;
         6239 &lt;li&gt;&lt;a href=&quot;https://www.mapbox.com/api-documentation/&quot;&gt;MapBox&lt;/a&gt;&lt;/li&gt;
         6240 &lt;li&gt;&lt;a href=&quot;https://www.yelp.com/developers/documentation/v2/overview&quot;&gt;Yelp API&lt;/a&gt;&lt;/li&gt;
         6241 &lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Minnow]]></title><link>https://www.charlieharrington.com/terminal-man-minnow</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-minnow</guid><pubDate>Mon, 21 Dec 2015 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/238473937&amp;amp;color=%2300cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Pseudoclassical Star Wars]]></title><description><![CDATA[Subclassing in JavaScript is quite useful. I used JavaScript subclasses to create this Star Wars inspired game. game You can play it right…]]></description><link>https://www.charlieharrington.com/pseudoclassical-star-wars</link><guid isPermaLink="false">https://www.charlieharrington.com/pseudoclassical-star-wars</guid><pubDate>Mon, 26 Oct 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Subclassing in JavaScript is quite useful. I used JavaScript subclasses to create this Star Wars inspired game.&lt;/p&gt;
         6242 &lt;p&gt;&lt;img src=&quot;/d133c65d7c3e8457531f4fea327e0e3c/subclasswars.gif&quot; alt=&quot;game&quot;&gt;&lt;/p&gt;
         6243 &lt;p&gt;You can &lt;a href=&quot;https://whatrocks.github.io/aluminum-falcon/&quot;&gt;play it right now&lt;/a&gt;, or check out the &lt;a href=&quot;https://github.com/whatrocks/aluminum-falcon&quot;&gt;code on Github&lt;/a&gt;. The rest of this insanely long post will demonstrate how to use JavaScript subclassing to build the foundations of a similar game or visualization.&lt;/p&gt;
         6244 &lt;h3&gt;Subclassing overview&lt;/h3&gt;
         6245 &lt;p&gt;A class can be written to create fleets of similar objects with shared properties and methods. For example, if you&apos;re building the game Frogger, you can create a class called Vehicle that will produce a single instance of one of those pesky little cars. Let&apos;s imagine that your Vehicle class has one property (location, to track a car&apos;s current location) and one method (move, to drive a car forward). Based on the difficulty of the game level, you can use your Vehicle class to produce as many cars as you want to hinder that frog from its goal.&lt;/p&gt;
         6246 &lt;p&gt;But what if you get the idea to introduce a new type of vehicle that nefariously changes lanes at random, or a friendly car that scoops up the froggie and brings him to the pond? You could certainly add those features to your original Vehicle class, but then all instances of Vehicle would have those new properties and methods, and it may prove difficult to track and turn them on for certain Vehicle instances based on your game design (e.g. produce one and only one friendly car per level).&lt;/p&gt;
         6247 &lt;p&gt;Another option could be replicating the existing class for these new vehicle types. Now you&apos;ll have separate Vehicle, AggressiveVehicle, and FriendlyVehicle classes, and you can instantiate them all independently to your heart&apos;s delight. However, you&apos;ve likely duplicated a lot of similar code in each of these classes - such as the location property and the move method. If you ever want to change how all the vehicles move, you&apos;ll now need to remember to change the code in each of the classes. There&apos;s got to be a better way to do this. And there is - subclassing!&lt;/p&gt;
         6248 &lt;p&gt;Subclassing allows you to create a fleet of objects that look vaguely similar to other objects. Subclasses are able to &quot;share&quot; properties and methods from their &quot;parent&quot; or &quot;superclass&quot;. In JavaScript, subclassing is implemented via delegation. Rather than keeping the Frogger metaphor going, let&apos;s transition to a galaxy far, far away...&lt;/p&gt;
         6249 &lt;h3&gt;Starfield simulation&lt;/h3&gt;
         6250 &lt;p&gt;Like all great games, SubclassWars.js is based on a Windows screensaver.&lt;/p&gt;
         6251 &lt;p&gt;We want to simulate moving through space. A good first step could be randomly drawing a bunch of white dots on a black background. They don&apos;t even have to move - just get them to show up.&lt;/p&gt;
         6252 &lt;p&gt;Let&apos;s create a base class called Star:&lt;/p&gt;
         6253 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;    &lt;span class=&quot;token comment&quot;&gt;/**
         6254     *  Star class: the base class
         6255     */&lt;/span&gt;
         6256     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;Star&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6257     &lt;span class=&quot;token comment&quot;&gt;// &quot;Stars&quot; are just HTML spans &lt;/span&gt;
         6258     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;span class=&quot;star&quot;&gt;&amp;lt;/span&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6259     &lt;span class=&quot;token comment&quot;&gt;// Location along x-axis&lt;/span&gt;
         6260     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6261     &lt;span class=&quot;token comment&quot;&gt;// Location along y-axis                                   &lt;/span&gt;
         6262     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6263     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setPosition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6264     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6265     &lt;span class=&quot;token comment&quot;&gt;// // Position the HTML span based on x and y&lt;/span&gt;
         6266     &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setPosition&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6267     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; positionSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6268         top&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                      
         6269         left&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y
         6270     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6271     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; styleSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6272         &lt;span class=&quot;token string&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6273         &lt;span class=&quot;token string&quot;&gt;&quot;border-style&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;solid&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6274         &lt;span class=&quot;token string&quot;&gt;&quot;border-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;white&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6275         &lt;span class=&quot;token string&quot;&gt;&quot;border-radius&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6276         &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;absolute&quot;&lt;/span&gt;
         6277     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6278     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;styleSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6279     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;positionSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6280     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6281 
         6282     &lt;span class=&quot;token comment&quot;&gt;/**
         6283      *  Setup starfield size
         6284      */&lt;/span&gt;
         6285     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; height &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                               
         6286     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; width &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;700&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6287 
         6288     &lt;span class=&quot;token comment&quot;&gt;/**
         6289      *  Build star helper function
         6290      */&lt;/span&gt;
         6291     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;                    
         6292     &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6293                         &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
         6294                         &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6295     &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#stars&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6296     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6297 
         6298     &lt;span class=&quot;token comment&quot;&gt;/**
         6299     *  Initialize the game
         6300     */&lt;/span&gt;
         6301     &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ready&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6302 
         6303     &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;.starfield&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6304         &lt;span class=&quot;token string&quot;&gt;&quot;height&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                          
         6305         &lt;span class=&quot;token string&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6306         &lt;span class=&quot;token string&quot;&gt;&quot;background-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;black&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6307         &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;relative&quot;&lt;/span&gt;
         6308     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6309 
         6310     &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6311         &lt;span class=&quot;token function&quot;&gt;buildStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6312     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         6313 
         6314     &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6315 &lt;p&gt;Hello, stars! Note that I&apos;ve used the pseudoclassical instantiation pattern (rather than the functional or prototypal patterns) to build the Star class, so new stars need to be instantiated with the &quot;new&quot; keyword. Another important detail for this and any other HTML visualizations is that the origin (the [0,0] location) of any HTML element or document is the upper left corner.&lt;/p&gt;
         6316 &lt;p&gt;Now, let&apos;s make those stars twinkle to show you how subclassing works. We will need to refactor our base Star class slightly:&lt;/p&gt;
         6317 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/**
         6318  *  Star class: the base class
         6319  */&lt;/span&gt;
         6320  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;Star&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6321    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;span class=&quot;star&quot;&gt;&amp;lt;/span&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; 
         6322    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6323    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6324    &lt;span class=&quot;token comment&quot;&gt;// New param to create a loop&lt;/span&gt;
         6325    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;timeBetweenSteps &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; timeBetweenSteps&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6326    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6327    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setPosition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6328  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6329  &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;step&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6330    &lt;span class=&quot;token function&quot;&gt;setTimeout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;bind&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6331      &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;timeBetweenSteps&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6332  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6333  &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setPosition&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6334    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; positionSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6335      top&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                                
         6336      left&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x
         6337  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6338    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; styleSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6339      &lt;span class=&quot;token string&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6340      &lt;span class=&quot;token string&quot;&gt;&quot;border-style&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;solid&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6341      &lt;span class=&quot;token string&quot;&gt;&quot;border-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;white&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6342      &lt;span class=&quot;token string&quot;&gt;&quot;border-radius&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6343      &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;absolute&quot;&lt;/span&gt;
         6344    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6345    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;styleSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6346    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;positionSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6347  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6348  
         6349  &lt;span class=&quot;token comment&quot;&gt;/**
         6350  *  TwinkleStar class (our first subclass!)
         6351  */&lt;/span&gt;
         6352  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;TwinkleStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6353    &lt;span class=&quot;token function&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6354  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6355  &lt;span class=&quot;token class-name&quot;&gt;TwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6356  &lt;span class=&quot;token class-name&quot;&gt;TwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;constructor &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; TwinkleStar&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6357  &lt;span class=&quot;token class-name&quot;&gt;TwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;step&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6358    &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6359    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6360  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6361 
         6362  &lt;span class=&quot;token comment&quot;&gt;/**
         6363   *  Setup starfield size
         6364   */&lt;/span&gt;
         6365  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; height &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                               
         6366  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; width &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;700&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6367  
         6368  &lt;span class=&quot;token comment&quot;&gt;/**
         6369   *  Build star helper function
         6370   */&lt;/span&gt;
         6371  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6372    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6373                        &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6374                        &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;
         6375                        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6376    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#stars&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6377  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6378  
         6379  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildTwinkleStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6380    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;TwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6381                        &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6382                        &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;
         6383                        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6384    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#twinkle&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6385  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6386  
         6387  &lt;span class=&quot;token comment&quot;&gt;/**
         6388  *  Initialize the game
         6389  */&lt;/span&gt;
         6390  &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ready&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6391  
         6392    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;.starfield&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6393      &lt;span class=&quot;token string&quot;&gt;&quot;height&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                          
         6394      &lt;span class=&quot;token string&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6395      &lt;span class=&quot;token string&quot;&gt;&quot;background-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;black&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6396      &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;relative&quot;&lt;/span&gt;
         6397    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6398    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6399      &lt;span class=&quot;token function&quot;&gt;buildStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6400      &lt;span class=&quot;token function&quot;&gt;buildTwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6401    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         6402  
         6403  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6404 &lt;p&gt;Now we&apos;re getting somewhere!&lt;/p&gt;
         6405 &lt;p&gt;A lot happened in the last in the last iteration of code, and it&apos;s important to highlight some things now. First, we introduced a new method to our base Star class called &apos;step&apos; that essentially mimics a game loop with the native JS function setTimeout. This is a little hacky and definitely not what you want to use for a real game, but this is just a demo, and hey, it&apos;s me.&lt;/p&gt;
         6406 &lt;p&gt;TODO: fix stars&lt;/p&gt;
         6407 &lt;p&gt;With our new step method built into the base Star class, we can now create lots of different subclasses of Star that add unique functionality. TwinkleStar twinkles, but we might want other stars that don&apos;t twinkle. How about stars that move instead of twinkle? Good idea, but we&apos;re not ready to get there just yet.&lt;/p&gt;
         6408 &lt;p&gt;Notice that we are calling setTimeout within the step method, and then passing in step as the function argument for setTimeout. setTimeout takes two arguments, a function to execute after a specified time, and that specified time. However, when setTimeout receives the function argument, it will simply accept the function value without maintaining any reference to the star instance that called step in the first place. That means that step will be called again as a free function invocation - &apos;this&apos; will be bound to the global window object. That&apos;s not what we want at all. One solution is to set a context variable (var that = this) in the step function and use it as context for calling step. Another solution, which I&apos;ve used, is to use bind to create a function called step where &quot;this&quot; is specifically bound to the star that called step. That was a mouthful, but an important mouthful.&lt;/p&gt;
         6409 &lt;p&gt;Let&apos;s talk about how we created the TwinkleStar subclass. We created a function called TwinkleStar with the same parameter signature as Star. Within that function, the Star class function is called using the .call method to bind &apos;this&apos; to the new TwinkleStar object being created. Now, the new TwinkleStar will be set up with the base properties of a regular ol&apos; Star (e.g. x, y, timeBetweenSteps, $node). Outside of the TwinkleStar function, we set up property and method delegation to the Star class using the Object.create pattern so that our new TwinkleStars can use any of the methods from the Star class (e.g. step, setPosition). Then we changed the constructor property to the TwinkleStar class so that any new TwinkleStars will be able to state that they are an &quot;instanceof&quot; TwinkleStar (and not Star). Finally, the coolest thing we do is write a new step method for TwinkleStar where we specify our unique action for all TwinkleStars. First we call the original Star step method, and then, crucially, we use jQuery to toggle the star span node on and off each time step gets executed - AKA making them twinkle.&lt;/p&gt;
         6410 &lt;p&gt;That&apos;s it! JavaScript subclassing in the pseudoclassical pattern.&lt;/p&gt;
         6411 &lt;h3&gt;The lost city of Z&lt;/h3&gt;
         6412 &lt;p&gt;Now it&apos;s time to get serious about our screensaver replica. We need to make moving stars. But not just any moving stars, we need our stars to move in such a way that it feels like we are being whisked away to a faraway planet for a new and exciting adventure. The stars need to move &quot;towards&quot; the screen, even though we can only place these HTML spans on a flat 2D surface. Yikes. Now, there are lots of really impressive implementations of moving starfields on the web, so it&apos;s definitely possible, but will require some math. After some searching, I discovered a very simple procedure that can calculate an x and y position for a star taking into account a simulated z-axis property.&lt;/p&gt;
         6413 &lt;p&gt;I&apos;ll walk through our changes in the code. Note that I&apos;m not including the code for the Star or TwinkleStar classes since those won&apos;t be changing anymore.&lt;/p&gt;
         6414 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/**
         6415  *  MoveStar class
         6416  */&lt;/span&gt;
         6417  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;MoveStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; z&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6418    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; z&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6419    &lt;span class=&quot;token function&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6420  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6421  &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6422  &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;constructor &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; MoveStar&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6423  &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setPosition&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6424  
         6425    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; k &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;128.0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6426    &lt;span class=&quot;token comment&quot;&gt;// Translate into x-pos in 2D&lt;/span&gt;
         6427    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; px &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; k&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6428    &lt;span class=&quot;token comment&quot;&gt;// Translate into y-pos in 2D&lt;/span&gt;
         6429    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; py &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; k&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;height &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6430  
         6431    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; positionSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6432      top&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; py&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                                
         6433      left&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; px
         6434    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6435    
         6436    &lt;span class=&quot;token comment&quot;&gt;// Stars &quot;grow&quot; larger when closer&lt;/span&gt;
         6437    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; size &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6438  
         6439    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; styleSettings &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6440      &lt;span class=&quot;token string&quot;&gt;&quot;border&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; size&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6441      &lt;span class=&quot;token string&quot;&gt;&quot;border-style&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;solid&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6442      &lt;span class=&quot;token string&quot;&gt;&quot;border-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;white&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6443      &lt;span class=&quot;token string&quot;&gt;&quot;border-radius&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6444      &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;absolute&quot;&lt;/span&gt;
         6445    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6446    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;styleSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6447    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;positionSettings&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6448  
         6449  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6450  &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;step&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6451  
         6452    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setPosition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6453   
         6454    &lt;span class=&quot;token comment&quot;&gt;// Each tick, decrement z slightly&lt;/span&gt;
         6455    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;-=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                              
         6456  
         6457    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt;     
         6458          &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;128.0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;height &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt;
         6459          &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;128.0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;height &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; height &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt;
         6460          &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;128.0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt;
         6461          &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;128.0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; width 
         6462      &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;                                 
         6463     &lt;span class=&quot;token comment&quot;&gt;// When star &quot;reaches&quot; the screen, send it far away!!&lt;/span&gt;
         6464     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;randomInRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;              
         6465     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;randomInRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6466     &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6467    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         6468  
         6469    &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6470  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6471  &lt;span class=&quot;token comment&quot;&gt;/**
         6472   *  Helper function
         6473   */&lt;/span&gt;
         6474  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;randomInRange&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6475        &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; sign &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.5&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6476        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; sign &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; n&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6477  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6478  
         6479  &lt;span class=&quot;token comment&quot;&gt;/**
         6480   *  Setup starfield size
         6481   */&lt;/span&gt;
         6482  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; height &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;                               
         6483  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; width &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;700&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6484  
         6485  &lt;span class=&quot;token comment&quot;&gt;/**
         6486   *  Build star helper function
         6487   */&lt;/span&gt;
         6488  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6489    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6490                        &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6491                        &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;
         6492                        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6493    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#stars&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6494  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6495  
         6496  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildTwinkleStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6497    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;TwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6498                        &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6499                        &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;
         6500                        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6501    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#twinkle&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6502  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6503  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;buildMoveStar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6504    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; star &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;randomInRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6505                        &lt;span class=&quot;token function&quot;&gt;randomInRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6506                        Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;32&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6507                        &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;
         6508                        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6509    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#moving&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;star&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6510  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6511  
         6512  &lt;span class=&quot;token comment&quot;&gt;/**
         6513  *  Initialize the game
         6514  */&lt;/span&gt;
         6515  &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ready&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6516  
         6517    &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;.starfield&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6518      &lt;span class=&quot;token string&quot;&gt;&quot;height&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;                          
         6519      &lt;span class=&quot;token string&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6520      &lt;span class=&quot;token string&quot;&gt;&quot;background-color&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;black&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
         6521      &lt;span class=&quot;token string&quot;&gt;&quot;position&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;relative&quot;&lt;/span&gt;
         6522    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6523    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6524      &lt;span class=&quot;token function&quot;&gt;buildStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6525      &lt;span class=&quot;token function&quot;&gt;buildTwinkleStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6526    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         6527    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6528      &lt;span class=&quot;token function&quot;&gt;buildMoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6529    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         6530  
         6531  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6532 &lt;p&gt;The MoveStar subclass includes an additional parameter called z that will represent the star&apos;s position on the z-axis. A value of 32 is as &quot;far away&quot; as possible and a value of zero is as &quot;close&quot; as possible (basically at the screen). The MoveStar subclass will have to simulate motion along the z-axis by starting the stars quite far away, decrementing their z property with each &quot;step&quot; in the setTimeout loop, and then translating their current posision into an x and y position on the screen. Once the stars reach the screen, we reposition them again far away. Because the stars are being replaced in random positions around the center of the &apos;div&apos; using the new randomInRange helper function, each star will &quot;move&quot; towards its respective quadrant over time as the decrementing z value exaggerates its respective x and y positions on screen. This is key to the visualization looking realistic. We&apos;ve also decided to have the stars &quot;grow&quot; larger as they get closer to the screen, which further helps simulate motion.Through the magic of subclassing, the &quot;step&quot; and &quot;setPosition&quot; methods were both overwritten while still referencing the superclass methods.&lt;/p&gt;
         6533 &lt;h3&gt;The Tie Fighters That Bind&lt;/h3&gt;
         6534 &lt;p&gt;We&apos;ve now recreated our 90&apos;s screensaver. This alone is a very cool accomplishment. But we&apos;re still not yet in game territory yet. Specifically, enemy territory. The next change I&apos;ll make is to introduce a new subclass of MoveStar called TieFighter. This should be easy.&lt;/p&gt;
         6535 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;javascript&quot;&gt;&lt;pre class=&quot;language-javascript&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/**
         6536  *  TieFighter class
         6537  */&lt;/span&gt;
         6538  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;TieFighter&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; z&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; timeBetweenSteps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6539    &lt;span class=&quot;token function&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; arguments&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6540    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;&amp;lt;img src=&quot;../images/subclass-wars/tiefighter.png&quot;&gt;&amp;lt;/img&gt;&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6541    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6542  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6543  &lt;span class=&quot;token class-name&quot;&gt;TieFighter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Object&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6544  &lt;span class=&quot;token class-name&quot;&gt;TieFighter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;constructor &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; TieFighter&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6545  &lt;span class=&quot;token class-name&quot;&gt;TieFighter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;step&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         6546    &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; size &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;z &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6547    &lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;$node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;css&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;height&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; size&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; size&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6548    &lt;span class=&quot;token class-name&quot;&gt;MoveStar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;prototype&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;step&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;call&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         6549  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6550 &lt;p&gt;Okay, that worked, sort of. Simply by replacing the type of DOM element with an img tag, we&apos;ve turned our MoveStars into Tiefighters! But there&apos;s clearly some kind of CSS border situation going on that we&apos;ll have to investigate. And the TieFighters are not disappearing immediately when they hit the bottom or right side of the div. But they are disappearing correctly when they hit the left or top. Strange. However, if you recall that the origin of an HTML element is the upper left hand corner of its rectangle, then this bug makes more sense. In order to resolve, we would have to overwrite some of MoveStar&apos;s calculations around resetting the image location to also account for the size of the img.&lt;/p&gt;
         6551 &lt;p&gt;And then there&apos;s this horrible border thing. The border is definitely the result of setting the CSS properties for the Star and MoveStar classes directly in the JavaScript rather than in a separate CSS class that we can toggle on or off. If we move the styling of the Star and MoveStar (specifically the border-style, border-color, and border-radius) to a separate CSS file, then we wouldn&apos;t have these white borders on our TieFighters. For now, let&apos;s just pretend these boxes are from the Millenium Falcon&apos;s weapons targetting system.&lt;/p&gt;
         6552 &lt;h3&gt;The Force Awakens&lt;/h3&gt;
         6553 &lt;p&gt;At this point, we&apos;ve now demonstrated how to use JavaScript subclassing to create the foundations of a Stars Wars or Star Trek type game. A big Chewbacca-style hug to Tate Thurston who was my co-conspirator on this project.&lt;/p&gt;
         6554 &lt;p&gt;Rather than continue to walkthrough the code (because this post is long enough already), I&apos;ll instead list some considerations, challenges, and steps we faced in the transition from this visualization to our game:&lt;/p&gt;
         6555 &lt;ul&gt;
         6556 &lt;li&gt;Millenium Falcon cockpit&lt;/li&gt;
         6557 &lt;li&gt;Use GIMP to create transparent png and overlay Han and Chewie cockpit image on top with CSS &quot;z-index&quot; property.&lt;/li&gt;
         6558 &lt;li&gt;Use animate.css to &quot;shake&quot; the cockpit image after a hit from a TieFighter (when the TieFighter reaches a z-position of zero), and/or flash the screen semi-transparent red with CSS.&lt;/li&gt;
         6559 &lt;/ul&gt;
         6560 &lt;h4&gt;Tiefighters&lt;/h4&gt;
         6561 &lt;ul&gt;
         6562 &lt;li&gt;Use CSS to flip the image based on initial x-position to make their flight pattern look more realistic.&lt;/li&gt;
         6563 &lt;li&gt;Turn the mouse cursor into a crosshair with CSS&lt;/li&gt;
         6564 &lt;li&gt;Use setInterval to consistently generate new Tiefighters&lt;/li&gt;
         6565 &lt;li&gt;Set an onClick listener to track succesful &quot;hits&quot;, and then turn the Tiefighter img source into an explosion-type gif, and then remove the destroyed TieFighter. (Sidenote - this is more challenging than simply removing the DOM node, since the TieFighter object will continue to exist in memory even though the DOM node was removed. Frustratingly, we kept getting invisible &quot;hits&quot; from already-destroyed TieFighters, and we finally resolved by using a boolean flag to track whether a Tiefighter had been destroyed or not before iterating to the next call to the original Star &quot;step&quot; function).&lt;/li&gt;
         6566 &lt;/ul&gt;
         6567 &lt;h4&gt;Sounds&lt;/h4&gt;
         6568 &lt;ul&gt;
         6569 &lt;li&gt;Use one of the many free sound effects websites to create laser, explosion, injury, and other fun videogame sounds, and then trigger them via event listeners&lt;/li&gt;
         6570 &lt;li&gt;Find some background music and set on autoplay with an HTML audio tag&lt;/li&gt;
         6571 &lt;/ul&gt;
         6572 &lt;h4&gt;Hyperspace&lt;/h4&gt;
         6573 &lt;p&gt;If you&apos;ve already tried the game demo, you may have noticed that the Millenium Falcon&apos;s hyperdrive is not operational. That&apos;s an obvious next step for future development!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Golden Olden]]></title><link>https://www.charlieharrington.com/terminal-man-golden-olden</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-golden-olden</guid><pubDate>Tue, 04 Aug 2015 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/202166678&amp;amp;color=%2300cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[NOAH Conference in Berlin]]></title><description><![CDATA[I spoke in Berlin, and took a really bad still image, apparently.]]></description><link>https://www.charlieharrington.com/noah-conference-in-berlin</link><guid isPermaLink="false">https://www.charlieharrington.com/noah-conference-in-berlin</guid><pubDate>Tue, 09 Jun 2015 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/SNRU3EV6NrI?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
         6574 &lt;p&gt;I spoke in Berlin, and took a really bad still image, apparently.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Introducing Knerds]]></title><description><![CDATA[Knerds is a simple and fun iOS game that helps you learn the names of your co-workers through brute force, cuddly mascots, and spaced…]]></description><link>https://www.charlieharrington.com/introducing-knerds</link><guid isPermaLink="false">https://www.charlieharrington.com/introducing-knerds</guid><pubDate>Sat, 02 May 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Knerds is a simple and fun iOS game that helps you learn the names of your co-workers through brute force, cuddly mascots, and spaced repetition.&lt;/p&gt;
         6575 &lt;p&gt;&lt;span
         6576       class=&quot;gatsby-resp-image-wrapper&quot;
         6577       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6578     &gt;
         6579       &lt;a
         6580     class=&quot;gatsby-resp-image-link&quot;
         6581     href=&quot;/static/277ec697d74df18b6632441f90b2299a/29007/banner.png&quot;
         6582     style=&quot;display: block&quot;
         6583     target=&quot;_blank&quot;
         6584     rel=&quot;noopener&quot;
         6585   &gt;
         6586     &lt;span
         6587     class=&quot;gatsby-resp-image-background-image&quot;
         6588     style=&quot;padding-bottom: 56.44171779141104%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACGElEQVQoz41RS2sTURSevavURyaPpkWxPiAoBrJQcONSf4AgthXBjUoWKrgSURTfYC1GKygK7cZkJpNna2rMY2buJJO0M2mZqe200WkCaTI6Tac1IC48SaBdqCB893DOvd93z+F8mJ2kdxG0LcDY/wTJ2FqgIe8QzCRtbZcdYI4Acyxe6KFYM0FbAwxO0AC4tAAvwPaGOEcQ2Sm2J4hwknFP8H0htJPI4O0vsH0hJOqGa5zfH+b2htDhWO7IOL/dnzkYyR5NiHtivGtScCdEZ1w4kZxB9dVTKbEvzLkn8jALBhpBN3xq7dZsaXh+ubTehPIskj6t6ItrGxdz8oxukMu1F/Pl6e9r8HpdUJaMH49lFZpjMMaS0TR+/jrNzI5+qT6RVYjBsva5sRGu6reVlcX15vGEwGiNS4UFVG94Cgvp2mq4XG+NDWJgX5tWoO1DWT3HyRAHkfT2ay0mKyc9V8eo0Jmhl8FkuljVopVv/UiKVLT3aq0lhgPbghl2B9leiu1ulxZ/yvZBPHDlxjYMM5m6LgwOPH9wv39oBKcQ7BL6WdprxzZtsLaTDhxkBo9NOW8+YibjDOJQji9J0uVRX5c/7aDYTbcw+98c7iYz5mjedeepLBZpvpBgWKUoesYIk68l3vL5X2I8mnfefaYJXIrzzmWTmlo5P/IOLPwvsTnCH7rnVdPh3MdX2dfD+SlhwPtmBwHiLdpvh9GRMB9s2dQAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         6589   &gt;&lt;/span&gt;
         6590   &lt;img
         6591         class=&quot;gatsby-resp-image-image&quot;
         6592         alt=&quot;Banner&quot;
         6593         title=&quot;Banner&quot;
         6594         src=&quot;/static/277ec697d74df18b6632441f90b2299a/a6d36/banner.png&quot;
         6595         srcset=&quot;/static/277ec697d74df18b6632441f90b2299a/222b7/banner.png 163w,
         6596 /static/277ec697d74df18b6632441f90b2299a/ff46a/banner.png 325w,
         6597 /static/277ec697d74df18b6632441f90b2299a/a6d36/banner.png 650w,
         6598 /static/277ec697d74df18b6632441f90b2299a/e548f/banner.png 975w,
         6599 /static/277ec697d74df18b6632441f90b2299a/3c492/banner.png 1300w,
         6600 /static/277ec697d74df18b6632441f90b2299a/29007/banner.png 1600w&quot;
         6601         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6602         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6603         loading=&quot;lazy&quot;
         6604       /&gt;
         6605   &lt;/a&gt;
         6606     &lt;/span&gt;&lt;/p&gt;
         6607 &lt;h3&gt;Diving into Objective-C&lt;/h3&gt;
         6608 &lt;p&gt;Like many tech companies, Knewton organizes a hack day every few months. Beyond the inevitable pizza gorging, the fun and hopefully useful projects, and the geeky camaraderie, hack day has always been important to me — discovering this 2011 Knewton hack day video more or less kept me alive as a functioning human organism during the darkest days of my pre-Knewton career.&lt;/p&gt;
         6609 &lt;p&gt;I had just finished the Big Nerd Ranch Objective-C book when our April 2015 hack day rolled around, and I decided to try my hand at crafting a dead simple iPhone app.&lt;/p&gt;
         6610 &lt;p&gt;My idea: Tinder for work. Well, not exactly.&lt;/p&gt;
         6611 &lt;p&gt;I wanted to build a flashcard app that helped you learn the names of your co-workers with pictures and some randomized guessing action. Fun, potentially useful (especially for those of us in the London office), and quite possibly something I could pull off in a few days.&lt;/p&gt;
         6612 &lt;p&gt;Pretty soon, after an hour or so on Thursday night, Knerd by Knewton lived:&lt;/p&gt;
         6613 &lt;p&gt;&lt;span
         6614       class=&quot;gatsby-resp-image-wrapper&quot;
         6615       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 200px; &quot;
         6616     &gt;
         6617       &lt;a
         6618     class=&quot;gatsby-resp-image-link&quot;
         6619     href=&quot;/static/4fedb2f8f5ad7cd73079d370a3c57e0b/772e8/k.png&quot;
         6620     style=&quot;display: block&quot;
         6621     target=&quot;_blank&quot;
         6622     rel=&quot;noopener&quot;
         6623   &gt;
         6624     &lt;span
         6625     class=&quot;gatsby-resp-image-background-image&quot;
         6626     style=&quot;padding-bottom: 170.5521472392638%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAiCAIAAADQyG7qAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFxElEQVRIx5WV6VNTVxjG+Vc67Qxu4IJDBSQJkEC2m3tz7p57k5uE7AsQQiADCkKwoiADbqNsIogKtXVasaCsIiBoEdDgaJlaaKfT1hnLV6fTDz3hsgS7zHTm9+Gc957nLM97znsTlt+svl5e/l+8ev0asra2lvDDyopByAcMTxhM/wYZ16Z4c64aydOiL6JLCSsrqzCkBRRKMLpNYBeC4DQENjR6EsF3fIXxhcXFmJjkBNjBSBbdhLPYGJMVZ40QuJTJ5sJZHo0bAFlYfL4tFkN6moPrnGls7r5x69KVtsutHe3XupvOX4JT6P5DrCNYLaC1OAMR7G5fIOQuCBSWhJ2+Ipc/gNGcjopp4BRw55goXl1dje2N43tvtQx809vT2djV0dR+ue5cQ2VVRbCsyBXyWFxm1iOQPKHhgEqgtBTD6LbEgDFygvDyye03Lwai09ejM32TQz3NjTUcT9KU3sygkSJzhR13U/JSK9JaV+h22zWAXny+KTaYhMWpW2+WBuYneqYHW+/2dRQVuJUqRW5utskATviMx+y4E2SdP54/eP2kLd8MjxYTr6zGUkUwbEtd6eCNpnvXGvuvNnRcaHBbeROjVypkp8IFXZ8FI07CS8pLLbqGsM3A0Ahp2No2bzBZ+nta/AJpY3QunnQb6XwSdTKAR5Q8ps6nEFaTo5Km2/WykFFu5BiEMCyui3+E6RFsrvfv34fLSlIPH5JlpFkxnRuRe9VSu1JizpMcTt63JzExNy2ltcrcf9HjdfBqwIpnhmLeaM3/489ffv913s0jqExSaWbKGU2EVhWh8mpG45ZnVhba68vMZwJ0e43FbuW0OBtvGPfT076170dmBrsrraCj0NQXMHbZiS4HaHPQ/RcbZoZud50NeoissE1nFgwIsSkmDAJKEEvTvYN9V+9/3vLyYWdLkGu1o+d4TY8Law9aV17ND92+evNCxE/IbEAGCICKholuowR7ttJbbCN9Zurn6N2WKnejUdnnAefNmkpa/VVbc++FSHWhLWhQC8oMAge6DbF4PfVERchbBZ+DNvdOZ1skVF6OSY4DaQjJrMbluiy5jQQejnBi0iCrAECPUjvEZLHH2F5Zcbm+7Upzb6EjVKpJPaE/2mjIcauOHkpOPbD3gCxNIqCIoJEplGo9w8c9SYD7LJaqYw0C50IUuuxMpUF6+OsS/SW7Ki05ef+e/SlJB5N2701NSctKl+WpEJjdDTE0TE9SLKDSUjKOHEhVytRHU2W7Pk684kbMioxPPtp1cE/y/l1JybuT9iXu+/TgEQQlsfht6ylWrUYyM7Oys3IRDa5QqGEb3i25NCs9XSKV5kglORJJTmZmdnZWHgLo9ZXXxbTRDGeCDxPajhtMgOUhsHqYHB6ry2d1eT8oafA6fygGrBEwnJ42AJqDj97hK/QXl1idXn9xCNYgjGJjnxgOKneIYYkRC1CshnJmEYwxwmsLZ0Tp7SDswmEi22eGlQUBpNEVqOt6IHK6+0FN50h15/Dp7iHYPXXtfv3NcWdpjQbDYZJ31DBRLHhLmu/MbhHpnau6Ode03m76cuZi/4K34rQG1WPxYgqK1wsiJdjc4ZMirrJaT1nEG464w7XrkVpveR1n86EEDcXbqdpyG1qC4hREB0hAsxRvJFleTzJiEAIzisd85f8hVTCkIwwQLWBYk624rKIgGIYN2BXjGMVB5z90W9wJY7L4gsUi/mDAX1LkDxYVlATESEEoyOfb4WP8m9sko8ZIf0nx4+jY9Iuxmejo0NxE/+yjwW8fDTydgMHJxdG576Zq6mvztACj4w2DeaZYjZ7yh4IzS+OPo+OzS2PDzya+mJq8Ozt578nkTHR86vnYs+XpSMNJJYLDq7JhGPzFwpZSB1QoDqe0eb0iDp/XVeBx+j0Ov2cj4veRvEmlw9UYAZlfWEx49+7d2MOJ4dGxkbHx4ZGxwQfDG9yPYzM4NDIKh4n89vbtX/bUwEpBG6OnAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         6627   &gt;&lt;/span&gt;
         6628   &lt;img
         6629         class=&quot;gatsby-resp-image-image&quot;
         6630         alt=&quot;Knerd by Knewton&quot;
         6631         title=&quot;Knerd by Knewton&quot;
         6632         src=&quot;/static/4fedb2f8f5ad7cd73079d370a3c57e0b/772e8/k.png&quot;
         6633         srcset=&quot;/static/4fedb2f8f5ad7cd73079d370a3c57e0b/222b7/k.png 163w,
         6634 /static/4fedb2f8f5ad7cd73079d370a3c57e0b/772e8/k.png 200w&quot;
         6635         sizes=&quot;(max-width: 200px) 100vw, 200px&quot;
         6636         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6637         loading=&quot;lazy&quot;
         6638       /&gt;
         6639   &lt;/a&gt;
         6640     &lt;/span&gt;&lt;/p&gt;
         6641 &lt;p&gt;It wasn’t a good app — the picture didn’t change, there were no swipes or gestures, and the “quiz” was pretty lame — but the basic elements were there. I had a foundation. I was able to test my app on my actual phone — awesome. Even if I wasn’t able to proceed much further, I knew that I would be able to submit at least a basic working iOS quiz app as my “hack.”
         6642 Back to the drawing board&lt;/p&gt;
         6643 &lt;p&gt;We use a Trello board to organize potential hacks into four categories: Performance, Product, Business, and Culture. The Trello board is also used to recruit fellow hackers to your pet project. Earlier that week, I dropped a vague card into the Product category called “Knerd by Knewton” with an even more mysterious description. &lt;/p&gt;
         6644 &lt;p&gt;To my shock Dan McGorry, our lead UX designer replied:&lt;/p&gt;
         6645 &lt;p&gt;&lt;span
         6646       class=&quot;gatsby-resp-image-wrapper&quot;
         6647       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 558px; &quot;
         6648     &gt;
         6649       &lt;a
         6650     class=&quot;gatsby-resp-image-link&quot;
         6651     href=&quot;/static/6edf9d10f5f0b0955e405e2a80b99587/42a8d/trello.png&quot;
         6652     style=&quot;display: block&quot;
         6653     target=&quot;_blank&quot;
         6654     rel=&quot;noopener&quot;
         6655   &gt;
         6656     &lt;span
         6657     class=&quot;gatsby-resp-image-background-image&quot;
         6658     style=&quot;padding-bottom: 58.89570552147239%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAAsTAAALEwEAmpwYAAABk0lEQVQoz52TyVLCQBCG8/6v4M2zD2F5ViFAWLIRQtaZ7AQCHPjtHokFFFrqVH3VM5mltz/a7PUNU8uCPh5jOpsjLytUzQZl3Sgu57f0e73lu9p8oENkGTzPg++vEYYR0jSFpG8ZEUW8FkiSlEgu9nJEcQwpM2WLssSm3ULb7DpkUqoHu65T7HY77Pd7xXa7Vbbf6zkcDl/n2PJaPSjygjwkiCmCkGwiJMIoRr1p0dABBc/VukV1mfJNCVTKURDAXnowLRsO2eXKh+Mu4QchXG8Fj8qwWgdfVlCqsighKZBbMvquvT+/UFNsDPURRhMD84WJyXSmLrMDy3HPD/vwyBlf5Ei+Q+NDEaUbU+HZMgGlnFc1iqoh6ivuRXYV4dPjAxa2izFFNzGmGAx1pNQkrmFfpytIIveoCXaoObatZPApGx9CCJxOpz/DQ3W5JdkEwRqGYcA0TRyPR/x3tCQxjXNPSKwxS4YsCzQvCggSbN006hB7/g0lp5zSRdZfeNYhN2RNfwvLJ04lFbuE+KERPeLclA+ukYnOhcSUdgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6659   &gt;&lt;/span&gt;
         6660   &lt;img
         6661         class=&quot;gatsby-resp-image-image&quot;
         6662         alt=&quot;Trello&quot;
         6663         title=&quot;Trello&quot;
         6664         src=&quot;/static/6edf9d10f5f0b0955e405e2a80b99587/42a8d/trello.png&quot;
         6665         srcset=&quot;/static/6edf9d10f5f0b0955e405e2a80b99587/222b7/trello.png 163w,
         6666 /static/6edf9d10f5f0b0955e405e2a80b99587/ff46a/trello.png 325w,
         6667 /static/6edf9d10f5f0b0955e405e2a80b99587/42a8d/trello.png 558w&quot;
         6668         sizes=&quot;(max-width: 558px) 100vw, 558px&quot;
         6669         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6670         loading=&quot;lazy&quot;
         6671       /&gt;
         6672   &lt;/a&gt;
         6673     &lt;/span&gt;&lt;/p&gt;
         6674 &lt;p&gt;And that’s when things got real.&lt;/p&gt;
         6675 &lt;h3&gt;UX&lt;/h3&gt;
         6676 &lt;p&gt;Dan and I chatted throughout Friday on Slack (him in New York, me in London) and we debated several challenges with the concept:&lt;/p&gt;
         6677 &lt;ul&gt;
         6678 &lt;li&gt;What does a left swipe mean? A right swipe?&lt;/li&gt;
         6679 &lt;li&gt;Should the quizzing occur when the picture is still on the screen (and thereby losing the Tinder flicking concept, but reinforcing the memorization experience)?&lt;/li&gt;
         6680 &lt;li&gt;How should we handle incorrect answers?&lt;/li&gt;
         6681 &lt;/ul&gt;
         6682 &lt;p&gt;Designing solid UX is more challenging than I thought. My initial concept for a Tinder-like flow was much more complicated than I had initially anticipated. Dan put together an early set of wireframes in blazing speed, and we continued to discuss how to improve the experience as he iterated on the wires. &lt;/p&gt;
         6683 &lt;p&gt;Here’s a look at one of the early sets:&lt;/p&gt;
         6684 &lt;p&gt;&lt;span
         6685       class=&quot;gatsby-resp-image-wrapper&quot;
         6686       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6687     &gt;
         6688       &lt;a
         6689     class=&quot;gatsby-resp-image-link&quot;
         6690     href=&quot;/static/0204d5d0f0fc454f84197d43baacba50/fcbaf/wires1.png&quot;
         6691     style=&quot;display: block&quot;
         6692     target=&quot;_blank&quot;
         6693     rel=&quot;noopener&quot;
         6694   &gt;
         6695     &lt;span
         6696     class=&quot;gatsby-resp-image-background-image&quot;
         6697     style=&quot;padding-bottom: 74.23312883435584%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAADSUlEQVQ4y2WUy28bVRTG/cew64YFK1iDEN0gsWLJAomwCippFwhBBZGVCpJIRVRKK1FaKlIXOw/HolEjEpuWpHmZxvGj8dgJtR3s+O14ZmyPPT/OvTEIyB0d3Tn33vPdb75zzngcx6HX6zEYDLAsi0AgwNTUFF6vl2g0yvLyMpOTk4yPj7O1tcXKyoreV34kHOZ2YIEPPvuC9658wsO1CB7+NRRwPp8nkUgQj8ep1WoUi0Xtx2Ix7av9dDpNvlDAbDV5dzHCG3eXeOWmn4nf9vCojfWNDRLJpGbZarUol8vU63V9gWma2q8KmPqaSrVKu93+h8THT2I05eyjTI6vfs/gaTWbVAo5ahLU7/dpNBqalQLpdDqcnp5SPilpU36tWqEhAAPXRQIYWd3lh70Drj55xtfRAzxNu8OikSNbbyEUNQvbtjU7RwIGfUe0sHHF1IX9jinnHNwhw3d+fsrLDyJcmF0VwDQeq+ewXqxRsjq4Ety2TCzbErN1khR4W2Zz+K7W2yKDOud0bD4K7/LWfJg35yN8FzPwDORWPdyBsBnQa1n0Ol0GVhenKyxl7spXuPL0hH3fFv/UEtZyVvY7DROz0sJpdehKnM6y1mOY5Z3NLUKhEHP+AEdHR+xLdkNLS/j9fgzDICHZDwWD+O7fJ74fJxHb52EwRMD3gJQk1uMKmDsEVKJPT08zNjbGj7Oz5HI5bt66xejoKCMfjvDLyhrX/Je4+OkFXr/yEt8sfE4yfsBCcJHA3JxUSuKM4d+ASnSfz8fMzAwnpZJeCy4sMHPjW2170T3u7nqJ5Z7y2Fji3s41VHZq9aquBlV25wBVN6yurZHNHopGXVbXN/hp+ZG2RMrg9vqXxDI7hPdD3NmYwLFdCsd5XWoqiecAj48LvDjMUD35U8Tt499+xvXH20z/uknUyHMjMsbl+be5FLjI9xteHddo1jVDVXL/AVQLaSNN6nlKClw6xemRVX58H+N5kmK+xPXwZd6/95rYq9xZnzjTvmvr2HOArmiQMw7JJtNUjkuYbZPCizwH8ZQAZyhXKhwVUmzHI+wdbvJHyaBdP6VULOkOU2179nNQmR7O9MS6A7m2f+b/fzSkc8o9sIblK7XLsFKU/QWb5S63QFZP+QAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6698   &gt;&lt;/span&gt;
         6699   &lt;img
         6700         class=&quot;gatsby-resp-image-image&quot;
         6701         alt=&quot;Wireframes&quot;
         6702         title=&quot;Wireframes&quot;
         6703         src=&quot;/static/0204d5d0f0fc454f84197d43baacba50/a6d36/wires1.png&quot;
         6704         srcset=&quot;/static/0204d5d0f0fc454f84197d43baacba50/222b7/wires1.png 163w,
         6705 /static/0204d5d0f0fc454f84197d43baacba50/ff46a/wires1.png 325w,
         6706 /static/0204d5d0f0fc454f84197d43baacba50/a6d36/wires1.png 650w,
         6707 /static/0204d5d0f0fc454f84197d43baacba50/fcbaf/wires1.png 895w&quot;
         6708         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6709         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6710         loading=&quot;lazy&quot;
         6711       /&gt;
         6712   &lt;/a&gt;
         6713     &lt;/span&gt;&lt;/p&gt;
         6714 &lt;p&gt;That Friday was not exactly a day off from work for me, and I told Dan as much — that we should continue to develop the wires and concept up to the end of the day, and that I would devote my weekend to implementing our app, but with no guarantee of my success — just the old hack day try.&lt;/p&gt;
         6715 &lt;h3&gt;Enter the knerds&lt;/h3&gt;
         6716 &lt;p&gt;Dan and I had never worked together on anything before, but we were really syncing up well on Friday. I don’t want to say that our collaboration was effortless, because we both put in quite a bit of work, but it was easy. And fun. That’s one of the real beauties of hack day, discovering similar interests and collaborating with folks outside of your day-to-day job.&lt;/p&gt;
         6717 &lt;p&gt;Importantly, Dan and I agreed that the app was lacking something critical — a cuddly mascot. He showed me a Pinterest board he’d been collecting with mascot ideas, and I also mentioned my love for those armless french-fry guys in the McDonald’s world. &lt;/p&gt;
         6718 &lt;p&gt;Pretty soon, Dan came back with the knerds:&lt;/p&gt;
         6719 &lt;p&gt;&lt;span
         6720       class=&quot;gatsby-resp-image-wrapper&quot;
         6721       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 563px; &quot;
         6722     &gt;
         6723       &lt;a
         6724     class=&quot;gatsby-resp-image-link&quot;
         6725     href=&quot;/static/2caa3c1f9fa01ac16e1bb2d64a1f550f/7cb89/knerds-group.png&quot;
         6726     style=&quot;display: block&quot;
         6727     target=&quot;_blank&quot;
         6728     rel=&quot;noopener&quot;
         6729   &gt;
         6730     &lt;span
         6731     class=&quot;gatsby-resp-image-background-image&quot;
         6732     style=&quot;padding-bottom: 53.37423312883436%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAADgElEQVQozx3SfVDTBRjA8WeOyru6yzrN7rRkE7nF3BjBgP22EjD0fMuiF2JFCNLNoxzKNUHcjg6lnK8TRFFeZtsPAl/Gapf8YAwGJrZ4G1gSbXGlE27zJgz4/Qa706fFH98/n+dz99wDiADojwDf6Cagb8eztDYZW9WXAl/3pear7qSSpc7NmrLx9DT1H+/AkbubWT9vFYFdKoAOqZA1IBOwftqRBpvON8PG79uXAtSvADSsAhQB0JgC+04lPrPbIIWchuQzeQYC95JSzCMljXlGCey/KGEPEnEsMyFaNifjQb9MANRWGQv6/MC/Qi0FqHsZsPZVFm4BmHmasjIRt0ScqI6DXH3y6YxzQnxfJ8DPG5KN7zYnQ6VaGGFNksCPhAj8sjfWjkr5IncCN7wEgW8eAH5TN0DX62LoIqQwZ4+vZBoF3nkN5zbGwEo5+VaF1lKIZ6nDmKsnjBXHCAhfB27u3PVKZscUWy5JUlxIJWLe05wAoaFDLTR2pggMVgCPaBUEstYAU8Ydmyrk4FQRB1G55vKHBml5sTkDD5s/wmyjpBFh3XMjb3Isf4kiPddjoz05EslFxSefQVLNDS6v1oK8OouVW3UVltR5bQwwqsgRnyoKvSU8xAPrSLmeOLeHTMS9zWL8wCQtvR+74cKEfAf+qfgU3fmZ2P92gic8y44mbfWy6iYk6lox2mjbDXS5eBn91YtAH4rsWVBvxGDJBgx8sbw+7LCVFNF8yJ5m/x8dF0fdmiwvwTHT1cWH9dXokgrmc8tOKXlkJyaRVhSHi7lCuYC+VswOVu6CYMn640EtH5kzCfi47SyNiF16p/qeqjOt13lUA+NRL6SPxb2G4yJO6F48F3+PXasDuXkFV9/28T7nP85sh4tcf9myHeboELQqIsB96ybHbd3pcPXucTAhLB1xOqmi4v3ug8UFvqOnzxfg3+bMhePb7kwXbe+lixKphZ4aaxhVzE5OpH7bPzr83a/DJ7NtQwDT09Nmmgku/mZvXzTVnsTrl7TYUnUsp3XQ/bznvsflnfKiz/8YJ0YcSNWUPelq0gU76ioWh6gWfIrYTZpMLVnKgz9kKQ/U5mu+iYaZmRl5IBDQ+R/5DI+83kveyckjD/+diA3rL9H0fNXs3KyLYZjQgweeJwOOQRzqHw790tN3t73NVkC1dYdfECH9y0JYnZEFuvqGZ/8DBcfRMEwTrAcAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         6733   &gt;&lt;/span&gt;
         6734   &lt;img
         6735         class=&quot;gatsby-resp-image-image&quot;
         6736         alt=&quot;Knerds&quot;
         6737         title=&quot;Knerds&quot;
         6738         src=&quot;/static/2caa3c1f9fa01ac16e1bb2d64a1f550f/7cb89/knerds-group.png&quot;
         6739         srcset=&quot;/static/2caa3c1f9fa01ac16e1bb2d64a1f550f/222b7/knerds-group.png 163w,
         6740 /static/2caa3c1f9fa01ac16e1bb2d64a1f550f/ff46a/knerds-group.png 325w,
         6741 /static/2caa3c1f9fa01ac16e1bb2d64a1f550f/7cb89/knerds-group.png 563w&quot;
         6742         sizes=&quot;(max-width: 563px) 100vw, 563px&quot;
         6743         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6744         loading=&quot;lazy&quot;
         6745       /&gt;
         6746   &lt;/a&gt;
         6747     &lt;/span&gt;&lt;/p&gt;
         6748 &lt;p&gt;We chatted through some minor tweaks, like the placement of bows, the eye colors, and the introduction of a fourth triangle-y knerd, but these little geometric critters were pretty much perfect from the start. And my love for the knerds began. &lt;/p&gt;
         6749 &lt;p&gt;By the end of Friday, our wires looked like a real app:&lt;/p&gt;
         6750 &lt;p&gt;&lt;span
         6751       class=&quot;gatsby-resp-image-wrapper&quot;
         6752       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         6753     &gt;
         6754       &lt;a
         6755     class=&quot;gatsby-resp-image-link&quot;
         6756     href=&quot;/static/f93eb333b5a97bd41214561718d3e36f/c6671/wires2.png&quot;
         6757     style=&quot;display: block&quot;
         6758     target=&quot;_blank&quot;
         6759     rel=&quot;noopener&quot;
         6760   &gt;
         6761     &lt;span
         6762     class=&quot;gatsby-resp-image-background-image&quot;
         6763     style=&quot;padding-bottom: 25.153374233128833%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAAsTAAALEwEAmpwYAAABfklEQVQY0z2QSUsbAQBG81MEL3oQvKa4FwrFg0cPYk6eirghlZYqLqAnDz2ECE11XIhbI2prYhw1ioyJSyVuNSrUwojJMBlnkjASncTXgOC7fO/0HZ4tm81hPWWxLIv9/T3EgJ/fRxH2wiE2xDWk3TCCMIbb7cbn8+X3G8LYOMFdkQX/OF6/h4eMiWxcYmUtbElD4+zPEeZDhp3tTVxf2gkdHLOxssjoYDeLvwK8raqg/I2dvv4BqsvsvKuqYSbgQRj+jNM5gJJSOb88RtdUbJn7v5xJc6hJk7aWVioKCpmcmqKp0cH7klJGBYGPnZ20NTfjdLlocDhobemg92sPlcVFNNbXoqXjmCmT03j+UNd11LiCbujIskwkckJC07i5+Uc0esXFRRRJkvIJwswt/eTT9wmGJpYZWe/jg9dOl68O4zqAdScTM1LYFEVBvr0lkUiQy+V44fnVY7E7xDWRra0gYr6pZ9rD/OwPDq6DhFQvh+oKmcc099urPKeT/Aeaxjy3miuyWAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6764   &gt;&lt;/span&gt;
         6765   &lt;img
         6766         class=&quot;gatsby-resp-image-image&quot;
         6767         alt=&quot;Wireframes&quot;
         6768         title=&quot;Wireframes&quot;
         6769         src=&quot;/static/f93eb333b5a97bd41214561718d3e36f/a6d36/wires2.png&quot;
         6770         srcset=&quot;/static/f93eb333b5a97bd41214561718d3e36f/222b7/wires2.png 163w,
         6771 /static/f93eb333b5a97bd41214561718d3e36f/ff46a/wires2.png 325w,
         6772 /static/f93eb333b5a97bd41214561718d3e36f/a6d36/wires2.png 650w,
         6773 /static/f93eb333b5a97bd41214561718d3e36f/e548f/wires2.png 975w,
         6774 /static/f93eb333b5a97bd41214561718d3e36f/c6671/wires2.png 1129w&quot;
         6775         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         6776         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6777         loading=&quot;lazy&quot;
         6778       /&gt;
         6779   &lt;/a&gt;
         6780     &lt;/span&gt;&lt;/p&gt;
         6781 &lt;p&gt;Now it was time for me to code up or shut up.&lt;/p&gt;
         6782 &lt;h3&gt;Weekend of code&lt;/h3&gt;
         6783 &lt;p&gt;I spent the next 48 hours doing nothing but coding, reading, power-napping, and drinking coffee, with a few sanity breaks for running and grabbing pizza — and it was amazing. I made continual progress throughout the weekend, which was both exhilarating and nerve-wracking because I needed to get it all working by the Monday deadline.&lt;/p&gt;
         6784 &lt;p&gt;Some challenges encountered along the way:&lt;/p&gt;
         6785 &lt;p&gt;&lt;strong&gt;Moving between view controllers&lt;/strong&gt;: The standard UITabBarController or the UINavigationController flows did not fit into our card-based app design, so I spent time exploring different flows for our game. Eventually, I used modal view controllers to toggle between the three screens (Start, Game, and Finish), with a UIAlertController for the quiz questions. Here’s how I present the Game Screen when a user clicks the “Let’s Go” button:&lt;/p&gt;
         6786 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;objective-c&quot;&gt;&lt;pre class=&quot;language-objective-c&quot;&gt;&lt;code class=&quot;language-objective-c&quot;&gt;- (IBAction)playGame:(id)sender { 
         6787  KDGameViewController *gvc = [[KDGameViewController alloc] init]; 
         6788  [self presentViewController:gvc animated:YES completion:nil]; 
         6789 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6790 &lt;p&gt;Once you’re in the KDGameViewController, the “finish/victory” screen is shown in a similar fashion. Then, when the user taps “Play Again”, the “finish” screen is dismissed, and the user returns to the Game screen (where everything is reset).&lt;/p&gt;
         6791 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;obj-c&quot;&gt;&lt;pre class=&quot;language-obj-c&quot;&gt;&lt;code class=&quot;language-obj-c&quot;&gt;- (IBAction)playAgain:(id)sender { 
         6792   [self dismissViewControllerAnimated:YES completion:nil]; 
         6793 }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6794 &lt;p&gt;&lt;strong&gt;Resetting the game&lt;/strong&gt;: After the Finish screen, I wanted to draw the users back into the app to try the game again (hello, viral hook!), but the analytics counters were not properly resetting (my basic game analytics / metrics included number of hints, wrong choices, cards remaining, etc). I resolved this by utilizing the viewWillAppear() lifecycle method to reset all my counters.
         6795 Randomizing the answer choices: This was a fun challenge — displaying randomized answer choices in the “Alert” pop-up. Here’s my naive but workable solution:&lt;/p&gt;
         6796 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;objective-c&quot;&gt;&lt;pre class=&quot;language-objective-c&quot;&gt;&lt;code class=&quot;language-objective-c&quot;&gt;// Select the &amp;quot;correct&amp;quot; and &amp;quot;distractor&amp;quot; choices 
         6797 NSMutableArray *names = [[NSMutableArray alloc] init]; 
         6798 // name1 points to the &amp;quot;correct&amp;quot; name 
         6799 [names addObject:name1]; 
         6800 // name2, name3, and name4 point to the distractor names 
         6801 [names addObject:name2]; 
         6802 [names addObject:name3]; 
         6803 [names addObject:name4]; 
         6804 // Randomly pick one of the &amp;quot;names&amp;quot; in names, 
         6805 // then create a new NSString to hold that name, 
         6806 // and finally remove it from the names array 
         6807 int random1 = arc4random() % [names count]; 
         6808 NSString *nameTitle1 = names[random1]; 
         6809 [names removeObjectAtIndex:random1]; 
         6810 int random2 = arc4random() % [names count]; 
         6811 NSString *nameTitle2 = names[random2]; 
         6812 [names removeObjectAtIndex:random2]; 
         6813 int random3 = arc4random() % [names count]; 
         6814 NSString *nameTitle3 = names[random3]; 
         6815 [names removeObjectAtIndex:random3]; 
         6816 int random4 = arc4random() % [names count]; 
         6817 NSString *nameTitle4 = names[random4]; 
         6818 [names removeObjectAtIndex:random4];&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         6819 &lt;p&gt;At this point, I’ve got 4 NSString pointers called nameTitle1, nameTitle2, etc. that will randomly hold the “correct” answer choice every time — sometimes the correct choice will be nameTitle2, other times it will be nameTitle4, etc. All I then have to do is create UIAlertActions with titles that reference nameTitle1, nameTitle2, etc.&lt;/p&gt;
         6820 &lt;p&gt;&lt;strong&gt;Feature creep&lt;/strong&gt;: I kept coming up with ideas for fun new features and mechanics before I even had the base functionality working (e.g. adding score “analytics” to the finish screen). This is a real problem. At the same time, it’s great to feel that continuous inspiration, and I would never want to entirely constrain that creativity.&lt;/p&gt;
         6821 &lt;p&gt;By 1:45 AM on Monday morning, Knerds was a working iOS game! Here’s a screencast that I recorded to submit the hack, just ahead of the Monday morning deadline (note that I hadn’t yet fixed the “repeated name” bug for the distractor answers, which I resolved later that morning, and also note that I say the word “sweet” a lot in this video):&lt;/p&gt;
         6822 &lt;iframe src=&quot;https://player.vimeo.com/video/125413885&quot; width=&quot;640&quot; height=&quot;1183&quot; frameborder=&quot;0&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
         6823 &lt;p&gt;I shouldn’t have recorded this at 1:42 AM on Sunday.&lt;/p&gt;
         6824 &lt;h3&gt;What’s next for Knerds&lt;/h3&gt;
         6825 &lt;p&gt;&lt;strong&gt;TestFlight&lt;/strong&gt;: After some clunking around with iTunesConnect, I’ve now got a dozen or so actual knerds testing out the app via TestFlight. The swiping UX needs to be improved. It may just make more sense to go with a “double-tap to guess” concept. Also, I need to fix the positioning of the views for different phone sizes. I had quickly used the “Reset to Suggested Constraints” option in Interface Builder for each view object ahead of releasing on TestFlight, but I’ve heard back and it didn’t work out as well as I had hoped.&lt;/p&gt;
         6826 &lt;p&gt;&lt;strong&gt;Release as an internal company app&lt;/strong&gt;: This requires an enterprise account, and a Dun &amp;#x26; Bradstreet number. My hope is that we’ll be able to release Knerds for all current and future Knewton employees as a helpful HR tool.&lt;/p&gt;
         6827 &lt;p&gt;&lt;strong&gt;Automatic content refresh&lt;/strong&gt;: I scraped the pictures, names, and titles from our company page on Employee-List. It doesn’t look like they have an API, so I’m exploring some options for automatic content updates as more folks join Knewton.&lt;/p&gt;
         6828 &lt;p&gt;&lt;strong&gt;Game improvements&lt;/strong&gt;: One obvious improvement could be better distractors — filtering by team or location.&lt;/p&gt;
         6829 &lt;p&gt;I had a great time building this app with Dan, and I can’t wait to continue to develop Knerds!&lt;/p&gt;
         6830 &lt;h3&gt;One more thing&lt;/h3&gt;
         6831 &lt;p&gt;I flew to NYC later that week, and I couldn’t stop thinking about the knerds, and I decided to come up with a backstory for them. I quickly sketched up some storyboards on some scraps of paper during my flight, and emailed them to Dan to see what he could put together.&lt;/p&gt;
         6832 &lt;p&gt;Here it is — the backstory of the knerds:&lt;/p&gt;
         6833 &lt;iframe src=&quot;//www.slideshare.net/slideshow/embed_code/key/lBIMolu34oh74u&quot; width=&quot;768&quot; height=&quot;485&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; scrolling=&quot;no&quot; style=&quot;border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;&quot; allowfullscreen&gt; &lt;/iframe&gt;
         6834 &lt;p&gt;But Dan and I kept going. We named them all. And then I couldn’t stop myself — the knerds needed personalities:&lt;/p&gt;
         6835 &lt;h4&gt;Olive&lt;/h4&gt;
         6836 &lt;p&gt;&lt;span
         6837       class=&quot;gatsby-resp-image-wrapper&quot;
         6838       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 204px; &quot;
         6839     &gt;
         6840       &lt;a
         6841     class=&quot;gatsby-resp-image-link&quot;
         6842     href=&quot;/static/db4c390ca72be4e62a92aa1bda53b54d/779ef/orange.png&quot;
         6843     style=&quot;display: block&quot;
         6844     target=&quot;_blank&quot;
         6845     rel=&quot;noopener&quot;
         6846   &gt;
         6847     &lt;span
         6848     class=&quot;gatsby-resp-image-background-image&quot;
         6849     style=&quot;padding-bottom: 194.47852760736194%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAnCAYAAAAPZ2gOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGyklEQVRIx32We2wURRzHp62g/qMmKkJb6d0VS5WHpa1QbSupSnxA0EiUUo1GDdpSwB6F61GMRl5R8YF6LQYhJoghJGq0idGgJggaoKgQpC3hWYXW2mtt7+jt9nb39uf3Nzt7PYp6yTfz2JnPfH8zv509YXYUphvtRYLoBvH7/gpW+tm996ZFj5aMNdFvdhRVWu2FD8UvFAt92+Qx3cuzM84vzUr7Y2mWoNaHxO+1WaLPf7NI/qyOIsFA7djMdCFIQtv2PCAiR0oEgLMBI0Cb6evpIlKVJbqWZYv2xePFn8uz0zuXZKadrckUfwCKRZLAmUZb8VXx48WCOqcycP25fffs/vvwXbVWW+Hf5okiMn8u6I6u8nzY75/4xoVl2U90LB6fyYCTL0wQ55ZkZnQ4CzhQs73wCJz02idmbA0fKtve+UMFde6toO6Ds8k6XUzWySLLPF5I+sZcGlrhIYAp7J84AFcfnK6eMAEScJnhyxASysDNAFKio5Cix0ro3IH7zLOH5pgX9pRb8S+mJMyDBWSdKU4M77jVjPlzDC3otfQGL0VW5hDc9p2ryZx7SkH3VV0vQ55rthXCTVHc2H+72bdtBvXsnkmR9ZNtrS7Hjq32kv7mJFt/+xY7BnexBq8dC3gSgBoX0QaUEPaCM4BiTzME9ucGOOhlJ9orvoRWN9HW63NIWwlY0EuYTLF6R1qDbNuaAyVAzSicIvw4TnsKwELooTxhfD/9O21DLsX8HktCGhxpDQ7EFUMugwa9BvaUXX579JlxQuCBB6EMcjjuIBc2FPBKxQL/2rZd8BC2ACdMCLmCgXXKgakGyMk8yQh6yAx6LmvHRkE59J4Xb2aXzQIdu1KB7uBhQM4s99HxJbkSyO2TS33UUZsr6+44BbT6V8iwWwH07tfkal7LCdlLcbjo9vto0yOT6dV5+dQOSFedjzbOz6cN0AmA2enQCNAexEHiYHQO+ScV5iXAnhVeeu/RyRJyapmPevxeegsL8CLs3BgB8mkTgDaAxMDP3ZBT94+hXXB5FpN1Dhnt83DZ+aJP1lNCZmBiAA5xKF0M3KJSwUDotnuiLtRImZzalotzRjhAdw9/YeDLmrOSGWsYORQXOpImKslT66pELlp9Ti7u5VNerEK23DyU7aAvBeJICyL5Azl4a7JSn8m0CdfJtGlhh3PVg4Sbh7Ltv4liK7MvfVPqbiStMY/iO2sV3HHJwL+cPNzJwBlqgnqd8B433kLDzY+Rtu4Ox5Fyp781h+Itr5L+7jy4zMQcn+vQUIndJLBCFkDDKVC52fr7D1N8dz3FPw06+my144wXgXsFS4aMu5BPeaPA5Ouw0efdsP89ZN9IH+9f0Jd6KGzC7F4mgQF2OAYdv7gHk3yfRx3KSJ8v9dZxgdYFB/g87yFDv0lJbnv0dTW6PqqPx8vbBm/KQk4bBu5QA8zRk/5PLjCmri9ctPdjD73sclMK0L5sovtW8GRH7qdAZgY+BTZgBGgJ3zbssE5NNDXOR4QwajK3nds8mOzj/eaXwcKXUF4M2Md8uYfQQm3EhSzxTSGdVZ+T0Pg2h3T/xISOdxayk2Mh/q7gD4CN1MlygeXK4TAGhuGiK7I2LzG4Id8eeOM2iq7Na4uuy2vtC02n8JbbE+HtMyi6Pm+TviLnaYythNMH4XIWQr/CBV6J0CfFXvJl6/NuvOZiS8HU6M+zopFfS+zIkTsp0nbX8oEz5QsGj5fSQFupwWW/OSfn4rYpQn8uS+CbIvCdFgDyR8qj5BXG4+PEwK4C8Vf77Ozew2XR3tYyu/dQGYUPlQbCB0qf6j1YRpCJfxjU9+OdBd1DD4rI1qljhlZ50nF9sYRMGy0ggWkXP5mWEem6W8CdB3+WIhAclhBUHz1SUqXqpiqn8h8qKF2M/jWtqRGhxmoRbi1L6ztcKnoOlHvDraVRyIYIfaugJ7kOGVz2HCyf3o+xqKfzfFYSppTW0rRoLBH+1PXcNj7228yBoWOzSKkeqlJ1k0s6P20S0Tjx1QcLx4bWVKcloeysqbFGdrzbsERsW7tY7Hjt2Xu/aKqili2LTIhLP7RI1eNfNlfRx68/s/Cj9c+JzQ21IqQMASwduvRrQ4019U1rqjeh7N4cqCXIUKX/nUBtZWofxgxi7GaUqwEcz1Aojd05WlOzBwN4IHHZ/FJ1ArIgrvuhSlU3ITt1LOYeRaRXc7SAVXPY+eqBoZSAuG3iOU/yo17JfSHuc57ZeMZjh2W7sabC2UMn3OsB7Q/JyUmYA5TlCDDZJ93xWMxprMbCNblwLPfQPfb52NQhd/UQO/hvoK3kRNVY/WyTs4fp/wBMhQDTMEHZ6QAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6850   &gt;&lt;/span&gt;
         6851   &lt;img
         6852         class=&quot;gatsby-resp-image-image&quot;
         6853         alt=&quot;Olive&quot;
         6854         title=&quot;Olive&quot;
         6855         src=&quot;/static/db4c390ca72be4e62a92aa1bda53b54d/779ef/orange.png&quot;
         6856         srcset=&quot;/static/db4c390ca72be4e62a92aa1bda53b54d/222b7/orange.png 163w,
         6857 /static/db4c390ca72be4e62a92aa1bda53b54d/779ef/orange.png 204w&quot;
         6858         sizes=&quot;(max-width: 204px) 100vw, 204px&quot;
         6859         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6860         loading=&quot;lazy&quot;
         6861       /&gt;
         6862   &lt;/a&gt;
         6863     &lt;/span&gt;&lt;/p&gt;
         6864 &lt;p&gt;Olive is the young Captain of the knerds. This mission was her first ever. Olive is brave and bold, and loves to explore, but she’s still young and inexperienced. She’s determined to make the most of their mission!&lt;/p&gt;
         6865 &lt;h4&gt;Mr. Figg&lt;/h4&gt;
         6866 &lt;p&gt;&lt;span
         6867       class=&quot;gatsby-resp-image-wrapper&quot;
         6868       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 183px; &quot;
         6869     &gt;
         6870       &lt;a
         6871     class=&quot;gatsby-resp-image-link&quot;
         6872     href=&quot;/static/ead2b49e58be920cb5122cdaf1a7647c/e6f05/green.png&quot;
         6873     style=&quot;display: block&quot;
         6874     target=&quot;_blank&quot;
         6875     rel=&quot;noopener&quot;
         6876   &gt;
         6877     &lt;span
         6878     class=&quot;gatsby-resp-image-background-image&quot;
         6879     style=&quot;padding-bottom: 266.25766871165644%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAA1CAYAAABBecueAAAACXBIWXMAAAsTAAALEwEAmpwYAAAG0klEQVRYw+1WWVAUVxRtGfXbSlWq4l8sozHummEZGNmmZ3pQY6pccMFhc2EUV4jAqKAoAUVFowaRfdSI+4qoqGgBiooLUYkmajSRqBjXMoqyzM15r3tgMAikKlX5carOnNv33Xvufa/7dT8h6YFxR9JDowUwJz40xoFHAUNh68AuGP8U6Ap8hOtO8AtJDpCvJfn6gVEQEu9L+4EVwBJgV+IDKQFIBDYCmcASYAGwDklRYDMSA2BPgZgWtjrxodQb3BO+zkLyU7/tK577LQK+Wf7EL3v5Y2PUsmojE1iNAmuBuG/vS7Fgq1I4USm6F1gKJANJwB4I9hJmH/esnHvK6+C8Mh/rwmu6g7HXxVVL7hoSlj0yrk5+4rdqxTO/6JUv/CJRMBWIQwMWFI1JqjZugkAMhBYps9sH9BYCs9woMFtGUI4bhWzSvAndonkyeZv7o6m7PG5P26+9OKNgyLHIEu/ieWd98iyXfdPjUDShSsqD4HyIL0x+5rcAhbdhhl8IwbmaBgfYmCgHK5L1DuBjMcFWXvTVpK3u96fu9LgxbZ/2EmZ6Leqsz+cCD5CFbHZbQUMLaFbQDl4s040mbnTtyQSpDdiL0TsF7UXrFbsWnbdLsD0FGdcB/40g46CcD4LKwlLjY+GANvzKo9RCh3ynWDVstzTBqrHvoGYItjY20XqHEza4kP93avJfp+Y8PtWZ+8etdyb/tWoZ8AdsdGm9Q+actMWddFF9qO+YbjQwoDv1Gd2NPMJ78W5cJvegvv6KH+PGuP4UivhWBVmA3tKPBps+I9cpPcl5Ug/SRffl0/aa2xuiPbl/kKk7DY0fQKGb2xBkbGJ7Ml3enwiikFx37mfMrpnfPt7mlLlgjjOgponZajJlO9PELGbbWfax8cCcNtYwJNeDxqb3p+3l66mwcjuduL6b9lVkUcnNfNp7OYNO/byPCq5uoUNXN1PJL/mUXhxP4zIGsM5bvsuhVi2NTOtFV6rK6PFfD+nF6yd0+89Kqq1/Szerr9Crty/p/vO79MezO9xX+NMOGp3Wm+W1LMjWaELmYEo5FkEbixdTRskSWlcUQ9mnk2htUTRlliZQ6qlYYCH3JRSEUUDWYOS+p8MQqwf5p/ej/RXZVHqrgMp+LaSjldvo0u/FdORaHpXfLeLTPgkwX+6Z5XyJkPf+Dtma/HBuNV+nI9e20q6LaXTixm7aeSGVT5EVYzhxYw9tQLetrqH9Lo/PHEhjM/rz6ixhLLoelzGw8ZqBzYQtT/v2MjrlwBKEWN353Zd9Hk1jsIP5c+nW+uvL8S0iP9iOb5p/vrraFGwMxJcsbI8HtpaGf83Y1mP72S7CdpPj66tNQSYSc8mHYq/7Ej74FLChabuF4tUVnq/lr7B/1eH8H30o+ZmBIk/70FCLKw2PdaUZ+UNo6V0dLbqla/+U7S/T+DsiJVbrKbzAk/yiZcEFV3W0/KmBdx8knyLaIYhAHDEoosSLcLbhBSZ8D6S60eyjQyjpgd4Wdd6bTBmNJ4165YP/BughtHDX7Atvw5rZ5F2EBMCEdQw/oLXNODyErXND81wgV9NL4A9mrlvjsQLXddxuuqu2xsNTtpvNlOHKiynFX4PvgM8BmyD4sf301fxLJh+AGsD2M00V3ub3wnZpafp+z7pZh70p/KBn/KgVX34yeat7FzTEdNCcRuBTDpLPJY+BCojkhe3UVsw85EVzCr3rI0/6MvaKPi2Gx5SJBNQwnn9eP2b2UW8hn0I6BOdoOiDXiYkywRHBuW79wF1mFnh1mlXgJSA4kSefEd9GnxHJclY/CIJhUaU6Amo4l+iCLOf0QsQJn05yd3KX/C8YF8yx+KrRaX65XkDwGiW5VmFnwMxsCNcobAIEoKPg+IOgCi074SZ0iCjyVbEgJKSAuSBjQM0EFbtG4ZYF7T9lUKVwipL0QfD/FIwqYXdXVAGMUwDcZbFWYQiKZsWu4VwimpTYjkZJai7GHNM3iYLlgs4ptlInRJfhsSnDs1aGx0ZmNWBW7BrGMWU604IKnWAp16mMBoPA0Cgm4aKzMEwIWanvNDVNL0QeE9dEHhcJeKuwM2BW7NeMI46KwdOsojB5nb4zE2MavFP2J8OgMoiSYPCVug/72lA6fJSBho801AM0fLTBGWzm9khDLRsb+pUhX/SUuiKe5aveFVRBEFUkF3ChpJeqIF4viVIDQLDVYDOzgXo+ppfuIfYAcvo2aciCKqVDLXAcAVVgUtCgsBowK3adfRyxv4EPIn+QUe5QJShGoCRJSJZeonXGSJBsDrYacWbFruNjsl0PvMLYG8SOkJQO5yiBjmBirQmSgyg6RccMkhTyNw1MVvcLqFDtAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         6880   &gt;&lt;/span&gt;
         6881   &lt;img
         6882         class=&quot;gatsby-resp-image-image&quot;
         6883         alt=&quot;Mr Figg&quot;
         6884         title=&quot;Mr Figg&quot;
         6885         src=&quot;/static/ead2b49e58be920cb5122cdaf1a7647c/e6f05/green.png&quot;
         6886         srcset=&quot;/static/ead2b49e58be920cb5122cdaf1a7647c/222b7/green.png 163w,
         6887 /static/ead2b49e58be920cb5122cdaf1a7647c/e6f05/green.png 183w&quot;
         6888         sizes=&quot;(max-width: 183px) 100vw, 183px&quot;
         6889         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6890         loading=&quot;lazy&quot;
         6891       /&gt;
         6892   &lt;/a&gt;
         6893     &lt;/span&gt;&lt;/p&gt;
         6894 &lt;p&gt;Mr. Figg is Head of Security. He’s responsible for protecting the Knerds from trouble, but somehow Isaak always seems to find a way to make it anyway. Mr. Figg has a tough exterior, but also a heart of gold.&lt;/p&gt;
         6895 &lt;h4&gt;K.A.M.&lt;/h4&gt;
         6896 &lt;p&gt;&lt;span
         6897       class=&quot;gatsby-resp-image-wrapper&quot;
         6898       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 286px; &quot;
         6899     &gt;
         6900       &lt;a
         6901     class=&quot;gatsby-resp-image-link&quot;
         6902     href=&quot;/static/a193634d682ab8bccc256ac4db3f4075/357e3/red.png&quot;
         6903     style=&quot;display: block&quot;
         6904     target=&quot;_blank&quot;
         6905     rel=&quot;noopener&quot;
         6906   &gt;
         6907     &lt;span
         6908     class=&quot;gatsby-resp-image-background-image&quot;
         6909     style=&quot;padding-bottom: 147.8527607361963%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGOElEQVRIx51WaUxUVxS+zkD90R/9Z2MiMsCMyAyryszbBiugUosCg0g11GiNW9VqRaSoNdbW1qjQikqqSRvb1JhGjWnSJlrjguBaN0RlFlxocV+KwMwgM/NOv/vmYerPepMv57zzzv3uOeeee99j7DXHVmkUc8u2QTdkG2uVbRboT7yK9dfXIisWBDZLdLCHSoqxSxnJOpWUaXcUK3lkm/q/yUpEUYfAFor2mAWinc0X7eN3S5nP7ikpM15xPitlsiZxlIbTUhZrFrM0ye2nIE/h+RdxNJsKMhAaSyGhDykSxC5FkNfUoQzaOK07n9YJMNkIGPbbHewMns+BkMtjIPsT7zaJ2TFlIHOJQmyxIF4COc0V7cOYPZ+xa3KqFtFxzTnDQOPe1iby5z0OhaHob1yV0968IqXFnIDtIogbsfA4QUQtxX0AAT8CPGqDRhjOiePSeB6R0Ng4TpaHReqBc8Bd4FGzOKoDUR8DvghI6clIs5ZHpiO/JFoGA8PK2PY0w3UQI7UxF6SMxktSOl2W0+kKcBk6bISUCcR0FkDKofcQGWpIIL6wXrQb52LXeW15LxkAhi2f2YZthySfYo0A/UBY1yPwiSD1MDao/yvRzqPq56QzRWHdIpAtEx2x+1ESTsThQlOSjn6PTqxLTYdd9em9dl1KVw+KoyOrQfw7SuKTMpM9KBe6wsDJhsL5qUfhBNYQl17FpnqVVEDTgVQNHk1Gba0oB9IPNaMUqGvjUXEMY/kRxvBykzdK1q85O1NVj5AMjKA2u4XcDgtFdTP0EZrukVJUr9OmnkdtUdfQKU4qZhXx1mMexdoKMr5qGFJ12y1qe4FA7YVO+rs0jzpKcqEr1Fk2nm4XjaX2yU7yjk0nj8OitiFikITQATzKvZCIULZ2D0Tmzk5SHzfUUiQYJAoG6GbLFbrf7iMV+o1zZ+n5vbtE/f3Ud9NLt8oLyAvSC3JWuClKeBkbFsui9bJpafjyRquhJ4+JDxWYPaWINq9dS909PTQhI4N+O3CABsbjXVvJnRGntjgzIzqhD631Fif0v4zQblaf7d0dnaFG6GJzE/muXSM1HKamw4foUWen9ir09AndmT2VvMjompI+EOHVM1LmYBBa3XoNIzxKjjsVU6jjwzJ6+FEF3Z8/nTpmuejx4pnUObecOuZMo5uoKa+1D9m1yqkhnfBgM78cQNTwyi7DidfSw3cVC3Eg+qguJJN7TCJpXYCMfLC1yGkaIS6VCm2XEaEFvRjUmzoyQOrLzaLb0wp0TKTb779L7ZMketla0RMVwvnnrdOCUxaDlDVCjgX6yYjwE8EJeQtpPSeMiEoHpDSSou+ixxPnn7dNGOk6+I3Frzx2Kz/FcGt8CmsfZ93Ao3SLtjAkYAvxuvIGBkiTvM44TTwT+BGiCzbJowpPyhqZUevD54sTjS8+i2fhL4eLT+cl0c38lJB+dkmPmv5znqN2CREWWunhQkvTkTHZ7FCq3UC1Q9lRMZuxYI3JALDeFQn5kOSvSqBOV/J3bQ7bT16n9b4vB5dCDt8Yax/IfG6Hrf7JHLM7UG2ivhoT+iqW0fo4FvjUpN32zL8ywQBwmQsQd0S0ec/mJbGuRUlJ3UsTH3R/nEjPlyRup2+GsfvlI1jfatORwEosvjKhsacygfVWafOj3xN/NQirE7jMBYgDDq7gGhMLrjYNC9Qk3AUoUGPa1LM8kdGWOD65Ufdt1Odq0Eag0mQAuMwFSEdxYIWJ+ZebhkO/p9tqgyvjWV9VPPc9odtOBivjGYcfHNoI1ycZQvVJ7J/N5jz/Nxby11moa7O5pO/bJPZoozm+t87Sye3dteZaakCEPySynjrLcW7rqTM30pV4Rvss7MHXlihh3ZIy49Zl5WzP57OlHZXTaEdlOf28btbEhqoZ7PC2xUMaVpT/tX15GX2/6oMNGxe42KqKSWxn9fQ/tn1SRruqZxyZU+BkCwtzBjXuXKr9ALDpk7ewikkLmEty7p7sUGiKw0mlcs7u8ncmslJZWVYkOKnQrpBLHnu1RMgYjG+xvVh09hZmy1Qi5XSVyvLoqYrCXLJi0Aj1XwsB/yv8wxMpER0U1cUJkO36Z/IFtxWL4iz+LS6BDuJAsaD57uf/OoCRc/0LN5sijCAwUhMAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         6910   &gt;&lt;/span&gt;
         6911   &lt;img
         6912         class=&quot;gatsby-resp-image-image&quot;
         6913         alt=&quot;K.A.M.&quot;
         6914         title=&quot;K.A.M.&quot;
         6915         src=&quot;/static/a193634d682ab8bccc256ac4db3f4075/357e3/red.png&quot;
         6916         srcset=&quot;/static/a193634d682ab8bccc256ac4db3f4075/222b7/red.png 163w,
         6917 /static/a193634d682ab8bccc256ac4db3f4075/357e3/red.png 286w&quot;
         6918         sizes=&quot;(max-width: 286px) 100vw, 286px&quot;
         6919         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6920         loading=&quot;lazy&quot;
         6921       /&gt;
         6922   &lt;/a&gt;
         6923     &lt;/span&gt;&lt;/p&gt;
         6924 &lt;p&gt;K.A.M. is the Communications Officer. She’s part robot (we think). Her suction cup legs can rotate around her body, so she can easily climb and stick to any surface. She also can upgrade her legs to new components, like helicopter drone blades so she can fly, but she lost her repair/upgrade kit during the crash.&lt;/p&gt;
         6925 &lt;h4&gt;Isaak&lt;/h4&gt;
         6926 &lt;p&gt;&lt;span
         6927       class=&quot;gatsby-resp-image-wrapper&quot;
         6928       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 274px; &quot;
         6929     &gt;
         6930       &lt;a
         6931     class=&quot;gatsby-resp-image-link&quot;
         6932     href=&quot;/static/1c1349d98a8db2c7dae669ffefc15804/d3fa7/blue.png&quot;
         6933     style=&quot;display: block&quot;
         6934     target=&quot;_blank&quot;
         6935     rel=&quot;noopener&quot;
         6936   &gt;
         6937     &lt;span
         6938     class=&quot;gatsby-resp-image-background-image&quot;
         6939     style=&quot;padding-bottom: 136.1963190184049%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAbCAYAAAB836/YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEV0lEQVRIx41UW0xcVRQ9w5Ca1hg/TIxflQhU8M4lmGjVmhhjosYhNSbGmDamAxo1aab1txqFmhQEnEGoYwbD6w5QaBMJsdpyL6/SYqQRBdp+SKx2khaoPGQkkPKYmbtd53FhUFQmWdl7zt17nbXP3ucwtsXPY1hMi5jME7HcALeHgVeU76yxbf9EgmG6PJL0HmABm1zRDJNxyO/WdslMhXUlFQBhA4J9mxNtWyUP4KVqhpWm8bIN62GsrQpCiQkQ3qsUuv6X1GOsq0tTSWc0qSyuwP0ysbFhupXa/zg3SeJWpM/JUq0kVNvwbVX2MpCl4tM8spJ/JxQHL0q3hgRBU1dCWOnHucW3dm1Tx83NZJpDFjHd0lo+kdjcHddOXbDx34ZvKz+pSJ/hRE7OptJViS7ZCPNuJES1SDd56r9J6pX1UHbe9tSdtfXKBu4nNNn1QXGGYmZTCNdL3RiF4yiNtLaBNf2Dcsp/aq+tl4VJP1ZKj+57wtY/qSXtVD9KR0zEfOMfw556uNg1A2qXREktvUn9ZJudf/R9O6+2g/TqFtKPHLO1cAd5mnuSqvs3gF2Kw8WnhDmDKufPjPBAlI4RMWmP0W1nRHoos8mkbANltg1QfmuvrcjW5BiZxerI0iUhDlXeW3MfDwCZGJGcpi7b23GJPhy8SqHR69R5fYKuzcToSN+I/VD9OTuPNyciiBeB3ZpsUJqUKiUPCEI1wLmGaT/d3k/7OwfpJRC/CLzw1UV6rLWHHjHEXFLKsDeq8XE7Z3hAfUhwdZpKgErKbDhPWUB2o0SuLJdkjIQ6gifFPKoO/Szlmyt8VwTw84nrmL285m7SsVFes5UUfrPYkA+4cx2XlRhLddn8VO1If7fZ9ecoq+7bZC6U5kAd9/dAbWrMhi9I3+GdRZesahAHYINAFQgqH2/vq3v9wpXEgYtX6fmzQ30FXcNjBy9do1d7R6ahshp5TnyQi8LZh2DfY85ddAZzd/hr9rI5zMaJ7gvNLq2EZpaoYWH1rdr5OzWhmUX6YnbpR/ZuDdt7up+hgo0HVz7KTA01f4rEnXTvN4fTbxCx0ujvmcGpP1cACkzEjgYmY7XcD07Gxvwj4zvZaydcz3Z+ly564OTjlXeuHXOe94qbs67PbsdY1dRcRhUIq6YWCNYPhJU/Gpi4vePz6Vl2Ijq9/jpt+dgWFL7JghNzLoAFbk1nVE3GVgAC/EBY+vOjFb9Gd1RGb7LgrVmRs+WPf+BoIHK1ouTqmYWMk38sL9fMLROsHwgLf37lp/JffruLENMO8BxvYdFWZEXC+ioC6YcbW9jxH8YeLP5+JF4yNEYlQ6N+IFxyeYw+GhweP03kPlRazg4Wf5zmCPE6Sp0FBbeyu7y+okZgFSDAD9QqfxEo8x4qdHIkqS+V0LfxAcEPwJ6BvQO7BghC2C+5r9ZiWAvB7izwicpcBYWbCV1eSZoDRLkS2CSQUCSphHHAVjGXgfu9ipTz/QWRPcxojvYdUQAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;&quot;
         6940   &gt;&lt;/span&gt;
         6941   &lt;img
         6942         class=&quot;gatsby-resp-image-image&quot;
         6943         alt=&quot;Isaak&quot;
         6944         title=&quot;Isaak&quot;
         6945         src=&quot;/static/1c1349d98a8db2c7dae669ffefc15804/d3fa7/blue.png&quot;
         6946         srcset=&quot;/static/1c1349d98a8db2c7dae669ffefc15804/222b7/blue.png 163w,
         6947 /static/1c1349d98a8db2c7dae669ffefc15804/d3fa7/blue.png 274w&quot;
         6948         sizes=&quot;(max-width: 274px) 100vw, 274px&quot;
         6949         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6950         loading=&quot;lazy&quot;
         6951       /&gt;
         6952   &lt;/a&gt;
         6953     &lt;/span&gt;&lt;/p&gt;
         6954 &lt;p&gt;Isaak is Olive’s younger brother. He snuck onto the ship before takeoff because he didn’t want to miss out on the adventure! Isaak is always getting into trouble, which is easy because he’s so tiny, but his misadventures often lead the knerds to important new discoveries.&lt;/p&gt;
         6955 &lt;h3&gt;The continuing adventure&lt;/h3&gt;
         6956 &lt;p&gt;I think that the story of the knerds could be the basis for a great game for kids to learn maths (see, I’m living in Europe now) and vocab content on their phones, following along with the mission of the knerds as they relearn their skills and try to salvage their mission in time.&lt;/p&gt;
         6957 &lt;p&gt;As validation, I showed the knerds to my eight-year-old cousin Avery over the weekend, and she came up with even more superpowers for them. Apparently, Isaak can turn into a tiny paper football. And Mr. Figg can grow his hair really really long. And Olive is actually a popsicle and she can melt and surf along her melted self and then regenerate.&lt;/p&gt;
         6958 &lt;p&gt;Avery convinced me that helping the knerds solve puzzles would be a fun game for kids. She even started to memorize the names of the Knewton employees after repeatedly playing the app.
         6959 Oh, and Avery invented bad guys for the knerds! I asked her to draw them:&lt;/p&gt;
         6960 &lt;h4&gt;Binky&lt;/h4&gt;
         6961 &lt;p&gt;&lt;span
         6962       class=&quot;gatsby-resp-image-wrapper&quot;
         6963       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 400px; &quot;
         6964     &gt;
         6965       &lt;a
         6966     class=&quot;gatsby-resp-image-link&quot;
         6967     href=&quot;/static/99feb273a3b28529e803a9643815a07f/066f9/binky4.jpg&quot;
         6968     style=&quot;display: block&quot;
         6969     target=&quot;_blank&quot;
         6970     rel=&quot;noopener&quot;
         6971   &gt;
         6972     &lt;span
         6973     class=&quot;gatsby-resp-image-background-image&quot;
         6974     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAMEBQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQP/2gAMAwEAAhADEAAAAe7edbzeGnWS3BHMBf8A/8QAHBAAAgICAwAAAAAAAAAAAAAAAQMCEQAyBBIi/9oACAEBAAEFAuJpIipbJPihTlnujSGPJLf/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8BrVR//8QAFxEAAwEAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAgEBPwFGCn//xAAaEAACAgMAAAAAAAAAAAAAAAAAARBxAiFB/9oACAEBAAY/AncMdxro7jI//8QAGxABAAMAAwEAAAAAAAAAAAAAAQARIRAxYXH/2gAIAQEAAT8hXwjEJUP1lREYKZvnBfAadlpPTRP/2gAMAwEAAgADAAAAEAw3gf/EABYRAQEBAAAAAAAAAAAAAAAAAAEAMf/aAAgBAwEBPxB7AtNgv//EABYRAQEBAAAAAAAAAAAAAAAAAAEAMf/aAAgBAgEBPxA4zME7f//EAB0QAQACAgIDAAAAAAAAAAAAAAEAETFBIbFhgcH/2gAIAQEAAT8Q4PT4IMKZwQ2zHcx3VWh1oiI2O+YR3Qe++om3y6IDjDUHlqqHAT//2Q==&apos;); background-size: cover; display: block;&quot;
         6975   &gt;&lt;/span&gt;
         6976   &lt;img
         6977         class=&quot;gatsby-resp-image-image&quot;
         6978         alt=&quot;Binky&quot;
         6979         title=&quot;Binky&quot;
         6980         src=&quot;/static/99feb273a3b28529e803a9643815a07f/066f9/binky4.jpg&quot;
         6981         srcset=&quot;/static/99feb273a3b28529e803a9643815a07f/d2f63/binky4.jpg 163w,
         6982 /static/99feb273a3b28529e803a9643815a07f/c989d/binky4.jpg 325w,
         6983 /static/99feb273a3b28529e803a9643815a07f/066f9/binky4.jpg 400w&quot;
         6984         sizes=&quot;(max-width: 400px) 100vw, 400px&quot;
         6985         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         6986         loading=&quot;lazy&quot;
         6987       /&gt;
         6988   &lt;/a&gt;
         6989     &lt;/span&gt;&lt;/p&gt;
         6990 &lt;h4&gt;Chill Factor&lt;/h4&gt;
         6991 &lt;p&gt;&lt;span
         6992       class=&quot;gatsby-resp-image-wrapper&quot;
         6993       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 400px; &quot;
         6994     &gt;
         6995       &lt;a
         6996     class=&quot;gatsby-resp-image-link&quot;
         6997     href=&quot;/static/1d625bcc3a8051394ccd7f5ab0d9ab1f/066f9/chillfactor4.jpg&quot;
         6998     style=&quot;display: block&quot;
         6999     target=&quot;_blank&quot;
         7000     rel=&quot;noopener&quot;
         7001   &gt;
         7002     &lt;span
         7003     class=&quot;gatsby-resp-image-background-image&quot;
         7004     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAUEAQL/xAAWAQEBAQAAAAAAAAAAAAAAAAACAwD/2gAMAwEAAhADEAAAAfeyZsm4TjbXSHOKBT//xAAdEAACAQQDAAAAAAAAAAAAAAACEQEABCExAxIy/9oACAEBAAEFArTRLpXAShKCwVv6DR5P/8QAFhEBAQEAAAAAAAAAAAAAAAAAEAEC/9oACAEDAQE/AdFP/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BIT//xAAZEAADAQEBAAAAAAAAAAAAAAAAAQIQEXH/2gAIAQEABj8CraWNFHSvT//EAB0QAQACAgIDAAAAAAAAAAAAAAEAIRExEFFhgaH/2gAIAQEAAT8h+qNIr1xjrdQABeWHwyy0aLoS6dsf/9oADAMBAAIAAwAAABAo58P/xAAYEQEBAQEBAAAAAAAAAAAAAAABADERIf/aAAgBAwEBPxBet0tsZf/EABcRAAMBAAAAAAAAAAAAAAAAAAABMRH/2gAIAQIBAT8QWGEodP/EAB4QAQACAgIDAQAAAAAAAAAAAAEAESExQVFhcaGx/9oACAEBAAE/EMxK148QSudlLErtnMkrXuJYq5t7l+cb7Fk9H6wlIKiXrUWFKFn/2Q==&apos;); background-size: cover; display: block;&quot;
         7005   &gt;&lt;/span&gt;
         7006   &lt;img
         7007         class=&quot;gatsby-resp-image-image&quot;
         7008         alt=&quot;Chill Factor&quot;
         7009         title=&quot;Chill Factor&quot;
         7010         src=&quot;/static/1d625bcc3a8051394ccd7f5ab0d9ab1f/066f9/chillfactor4.jpg&quot;
         7011         srcset=&quot;/static/1d625bcc3a8051394ccd7f5ab0d9ab1f/d2f63/chillfactor4.jpg 163w,
         7012 /static/1d625bcc3a8051394ccd7f5ab0d9ab1f/c989d/chillfactor4.jpg 325w,
         7013 /static/1d625bcc3a8051394ccd7f5ab0d9ab1f/066f9/chillfactor4.jpg 400w&quot;
         7014         sizes=&quot;(max-width: 400px) 100vw, 400px&quot;
         7015         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7016         loading=&quot;lazy&quot;
         7017       /&gt;
         7018   &lt;/a&gt;
         7019     &lt;/span&gt;&lt;/p&gt;
         7020 &lt;h4&gt;Bill&lt;/h4&gt;
         7021 &lt;p&gt;&lt;span
         7022       class=&quot;gatsby-resp-image-wrapper&quot;
         7023       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 400px; &quot;
         7024     &gt;
         7025       &lt;a
         7026     class=&quot;gatsby-resp-image-link&quot;
         7027     href=&quot;/static/c1ce1b5e15af0c710bbe8779aef91b76/066f9/bill3.jpg&quot;
         7028     style=&quot;display: block&quot;
         7029     target=&quot;_blank&quot;
         7030     rel=&quot;noopener&quot;
         7031   &gt;
         7032     &lt;span
         7033     class=&quot;gatsby-resp-image-background-image&quot;
         7034     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAUEAQL/xAAVAQEBAAAAAAAAAAAAAAAAAAACAP/aAAwDAQACEAMQAAAB90JukOA6qhpGJAD/AP/EABsQAAEFAQEAAAAAAAAAAAAAAAEAAgMEERIh/9oACAEBAAEFAqi8AVY4G4Q8Y+JNUh6k/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAECEDH/2gAIAQMBAT8BdS0R/8QAFxEAAwEAAAAAAAAAAAAAAAAAAQIQMf/aAAgBAgEBPwERcn//xAAYEAADAQEAAAAAAAAAAAAAAAAAAQIQUf/aAAgBAQAGPwKtsY0XlN9P/8QAGxABAQADAAMAAAAAAAAAAAAAAQAhMWFxgZH/2gAIAQEAAT8h18iFJqcrfHQUXNy5tvSeZuIX/9oADAMBAAIAAwAAABCQ6D7/xAAYEQADAQEAAAAAAAAAAAAAAAAAATERIf/aAAgBAwEBPxB+4JlyEf/EABcRAAMBAAAAAAAAAAAAAAAAAAABETH/2gAIAQIBAT8QSqkMR6f/xAAdEAEAAgIDAQEAAAAAAAAAAAABABEhMUGhsVFx/9oACAEBAAE/EFZmjwgdql0RWF5hMd6dzIF5Jjly1+RoHAjqWVolRl2w+GDyf//Z&apos;); background-size: cover; display: block;&quot;
         7035   &gt;&lt;/span&gt;
         7036   &lt;img
         7037         class=&quot;gatsby-resp-image-image&quot;
         7038         alt=&quot;Bill&quot;
         7039         title=&quot;Bill&quot;
         7040         src=&quot;/static/c1ce1b5e15af0c710bbe8779aef91b76/066f9/bill3.jpg&quot;
         7041         srcset=&quot;/static/c1ce1b5e15af0c710bbe8779aef91b76/d2f63/bill3.jpg 163w,
         7042 /static/c1ce1b5e15af0c710bbe8779aef91b76/c989d/bill3.jpg 325w,
         7043 /static/c1ce1b5e15af0c710bbe8779aef91b76/066f9/bill3.jpg 400w&quot;
         7044         sizes=&quot;(max-width: 400px) 100vw, 400px&quot;
         7045         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7046         loading=&quot;lazy&quot;
         7047       /&gt;
         7048   &lt;/a&gt;
         7049     &lt;/span&gt;&lt;/p&gt;
         7050 &lt;p&gt;It looks like the knerds will need all the help they can get — will you help them?&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Terminal Man - Live in Concert]]></title><description><![CDATA[Last week, streaming live from London, TERMINAL MAN performed its first show ever, appearing live in New York City at the Knewton Talent…]]></description><link>https://www.charlieharrington.com/terminal-man-live-in-nyc</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-live-in-nyc</guid><pubDate>Tue, 07 Apr 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Last week, streaming live from London, &lt;strong&gt;TERMINAL MAN&lt;/strong&gt; performed its first show ever, appearing live in New York City at the Knewton Talent Show. This may have been the first musical performance for a Double Robotics robot ever, but I certainly hope it&apos;s not the last.&lt;/p&gt;
         7051 &lt;p&gt;What follows may shock you:&lt;/p&gt;
         7052 &lt;iframe src=&quot;https://player.vimeo.com/video/124292973&quot; width=&quot;640&quot; height=&quot;1138&quot; frameborder=&quot;0&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
         7053 &lt;h3&gt;Here&apos;s how I brought TERMINAL MAN to life.&lt;/h3&gt;
         7054 &lt;h4&gt;The music&lt;/h4&gt;
         7055 &lt;h5&gt;Garageband&lt;/h5&gt;
         7056 &lt;p&gt;I&apos;ve spent a lot of time at airports over the last year and a half. When you have that much free time, you invent some hobbies. One of mine is creating loop-driven songs on Garageband.&lt;/p&gt;
         7057 &lt;p&gt;&lt;span
         7058       class=&quot;gatsby-resp-image-wrapper&quot;
         7059       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         7060     &gt;
         7061       &lt;a
         7062     class=&quot;gatsby-resp-image-link&quot;
         7063     href=&quot;/static/f9b5c6e93322799f0d86bad6b08f8286/59173/garageband.png&quot;
         7064     style=&quot;display: block&quot;
         7065     target=&quot;_blank&quot;
         7066     rel=&quot;noopener&quot;
         7067   &gt;
         7068     &lt;span
         7069     class=&quot;gatsby-resp-image-background-image&quot;
         7070     style=&quot;padding-bottom: 68.09815950920245%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAAC/0lEQVQ4y0VTW3PSUBjkbzhjLdBwaYVcSEhIyD0h0JYQxEFrLcW7oy/aobWFXhz64Pjqs5cZZ/R3rt85VH3Y2UlyZrPft3tyVx8XOL+4wOXlJZbLa87zxQKzsyMcvT/C/Qf7GO9NOI/Gj/Dy1Rt+ZkFnrpdLzK/mmF28w/niA87mC+R2uh0EUQeu6yMIIlhtB1rTgKrrUDUdkqJB0Qw0CLKqQzcsNA0TLcuBZVkwTAOtNqFlwDBayO0mIXZ2++j0OohjH0Y8gphMIScTyN1DKAmBWL7hBkGi77qfok2ClmnBcz0y5MK2beSyXoh0kGF4L0Oa9smRimKpCqGyBaG8Sbx5w6vn8maNf29oTTiOzYUcx+HwfZ85DLhDz2N/aEORZRQKeQgbRWwUC4Qix+q5iFJJQCGfh6o2uQATYqIMXHCw3UE2vIduN6Ed+hAlCWtrayRa+Ic8CfyFIGxgfX0djYZKJjw+JsNfYS7IHEbdiA5YcNMp2nuncPeOEU3OEDw+hf3wmHACZ+8E0cEposNzWMl92JbJxUzao2maNzvcTpBlQwQ0uu+b6E3nGJz9wuDkB7LTn+jPvmPwgfE3pLOvGBx/Qzb/DTt7QYIt2I6Lel1ErVbn0+W6gbPaYeyRQxNu9hTtyRLewQWiJ1dwD5ewH83hPfuM6M0XJM+vETz7BKO3D58lywUlDllprFJmO+xQHz2X9pGMUKkpqBs+1HCEcqUKNRiilT6HGo9RqVRQouRlnaUa0JjOP4cKExxuR9xhSH10bAPB+C0a/dcwRu/gTa8hxvucW+PZqovJAfVzSj/JEFCqOpW8VhNXDmXlf8oxhRKEPiR6yXtYrqJQFLBBvH7nNrT0NRwaXyhVIFTrkHR35ZBGFkWJO5QkGbl+N8AuOXR9it1zIIlkPRyj3op5DzdFjXNN9yC1uyjeuYX82i1ImoUwjOn62auRCSITTFnKNztkPVQUhVzRrSiVUb4rw0hfoFTdQs0IofUmqLd3ULdTKBaJUVXY/WUOGZpNHX8AxB7vtVv+wz8AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
         7071   &gt;&lt;/span&gt;
         7072   &lt;img
         7073         class=&quot;gatsby-resp-image-image&quot;
         7074         alt=&quot;Garageband&quot;
         7075         title=&quot;Garageband&quot;
         7076         src=&quot;/static/f9b5c6e93322799f0d86bad6b08f8286/a6d36/garageband.png&quot;
         7077         srcset=&quot;/static/f9b5c6e93322799f0d86bad6b08f8286/222b7/garageband.png 163w,
         7078 /static/f9b5c6e93322799f0d86bad6b08f8286/ff46a/garageband.png 325w,
         7079 /static/f9b5c6e93322799f0d86bad6b08f8286/a6d36/garageband.png 650w,
         7080 /static/f9b5c6e93322799f0d86bad6b08f8286/e548f/garageband.png 975w,
         7081 /static/f9b5c6e93322799f0d86bad6b08f8286/3c492/garageband.png 1300w,
         7082 /static/f9b5c6e93322799f0d86bad6b08f8286/59173/garageband.png 3014w&quot;
         7083         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         7084         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7085         loading=&quot;lazy&quot;
         7086       /&gt;
         7087   &lt;/a&gt;
         7088     &lt;/span&gt;&lt;/p&gt;
         7089 &lt;p&gt;This screenshot is one of my more recent tracks Over Water, Under You. I assembled July Nineteen in a similar fashion, playing with the pre-set available loops to come up with weird and interesting combinations. I decided to use &apos;July Nineteen&apos; for the talent show performance because it&apos;s loud and short and catchy.&lt;/p&gt;
         7090 &lt;h4&gt;The video&lt;/h4&gt;
         7091 &lt;h5&gt;The skull&lt;/h5&gt;
         7092 &lt;ul&gt;
         7093 &lt;li&gt;Wikimedia Commons&lt;/li&gt;
         7094 &lt;li&gt;GIMP&lt;/li&gt;
         7095 &lt;/ul&gt;
         7096 &lt;p&gt;When I was growing up, my dad called me &quot;Skull&quot; as a nickname. To this day, if someone yells &quot;Skull!&quot;, I will come running. Anyway, I wanted a giant skull on giant screen, so I grabbed a decent skull image from Wikimedia Commons and then doctored it up in GIMP to remove clutter and the white background, saving as a .png.&lt;/p&gt;
         7097 &lt;h5&gt;The background&lt;/h5&gt;
         7098 &lt;ul&gt;
         7099 &lt;li&gt;Processing&lt;/li&gt;
         7100 &lt;li&gt;YouTube&lt;/li&gt;
         7101 &lt;li&gt;CloudApp&lt;/li&gt;
         7102 &lt;/ul&gt;
         7103 &lt;p&gt;I&apos;ve always loved the weird video backdrops behind live performances of My Morning Jacket or Wilco or Sufjan or Animal Collective. Who creates these trippy backgrounds, and how much input comes from the band?&lt;/p&gt;
         7104 &lt;p&gt;Hey, so, when we&apos;re playing &quot;I&apos;m The Man Who Loves You&quot; I want the background to be like crying rainbow waves. And triangles, lots of triangles.&lt;/p&gt;
         7105 &lt;p&gt;Well, &lt;strong&gt;TERMINAL MAN&lt;/strong&gt; definitely needed its own trippy background for its debut live show, and Processing made it happen.&lt;/p&gt;
         7106 &lt;p&gt;I created a Processing sketch that used keyboard strokes to trigger different backdrops behind the giant skull. Some of the backgrounds were native Processing functions (like creating random flashing colors or drawing lots of random lines), and others were looped video clips that I grabbed from YouTube with CloudApp. The central theme: the joy of Windows 95.&lt;/p&gt;
         7107 &lt;p&gt;Here&apos;s the code for the sketch:&lt;/p&gt;
         7108 &lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;java&quot;&gt;&lt;pre class=&quot;language-java&quot;&gt;&lt;code class=&quot;language-java&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// ----------------------&lt;/span&gt;
         7109 &lt;span class=&quot;token comment&quot;&gt;// T E R M I N A L  M A N&lt;/span&gt;
         7110 &lt;span class=&quot;token comment&quot;&gt;// ----------------------&lt;/span&gt;
         7111 &lt;span class=&quot;token comment&quot;&gt;//   @ w h a t r o c k s&lt;/span&gt;
         7112 &lt;span class=&quot;token comment&quot;&gt;// ----------------------&lt;/span&gt;
         7113 
         7114 &lt;span class=&quot;token comment&quot;&gt;// import video library&lt;/span&gt;
         7115 &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token namespace&quot;&gt;processing&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;video&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7116 
         7117 &lt;span class=&quot;token comment&quot;&gt;// movies&lt;/span&gt;
         7118 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; pipeMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7119 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; doomMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7120 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; solitaireMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7121 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; toastersMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7122 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; mazeMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7123 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; wc2Movie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7124 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; tiefighterMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7125 &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; rollercoasterMovie&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7126 
         7127 &lt;span class=&quot;token comment&quot;&gt;// images&lt;/span&gt;
         7128 &lt;span class=&quot;token class-name&quot;&gt;PImage&lt;/span&gt; skull&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7129 &lt;span class=&quot;token class-name&quot;&gt;PImage&lt;/span&gt; miniSkull&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7130 
         7131 &lt;span class=&quot;token comment&quot;&gt;// font&lt;/span&gt;
         7132 &lt;span class=&quot;token class-name&quot;&gt;PFont&lt;/span&gt; f&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7133 
         7134 &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7135   &lt;span class=&quot;token function&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;800&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;800&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7136   &lt;span class=&quot;token function&quot;&gt;smooth&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7137 
         7138   &lt;span class=&quot;token comment&quot;&gt;// load the pictures&lt;/span&gt;
         7139   skull &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;skull2.png&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7140   miniSkull &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;skull2.png&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7141   &lt;span class=&quot;token comment&quot;&gt;// resize the big skull to dimensions of the canvas&lt;/span&gt;
         7142   skull&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;resize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7143 
         7144   &lt;span class=&quot;token comment&quot;&gt;// black background&lt;/span&gt;
         7145   &lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7146 
         7147   &lt;span class=&quot;token comment&quot;&gt;// load the font&lt;/span&gt;
         7148   f &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;TwCenMT-BoldItalic-100.vlw&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7149 
         7150   &lt;span class=&quot;token comment&quot;&gt;// load the movies&lt;/span&gt;
         7151   mazeMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;maze.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7152   mazeMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7153 
         7154   solitaireMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;solitaire.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7155   solitaireMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7156 
         7157   doomMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;doom.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7158   doomMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7159 
         7160   pipeMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pipe.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7161   pipeMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7162 
         7163   toastersMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;toasters.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7164   toastersMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7165 
         7166   tiefighterMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;tiefighter.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7167   tiefighterMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7168 
         7169   wc2Movie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;wc2.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7170   wc2Movie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7171 
         7172   rollercoasterMovie &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;rollercoaster.mov&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7173   rollercoasterMovie&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7174 
         7175 &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7176 
         7177 &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7178 
         7179   &lt;span class=&quot;token comment&quot;&gt;// black background&lt;/span&gt;
         7180   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;x&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7181     &lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7182   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7183 
         7184   &lt;span class=&quot;token comment&quot;&gt;// play doom video&lt;/span&gt;
         7185   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;1&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7186     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;doomMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7187   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7188 
         7189   &lt;span class=&quot;token comment&quot;&gt;// play maze video&lt;/span&gt;
         7190   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;2&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7191     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mazeMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7192   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7193 
         7194   &lt;span class=&quot;token comment&quot;&gt;// play toasters video&lt;/span&gt;
         7195   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;3&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7196     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;toastersMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7197   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7198 
         7199   &lt;span class=&quot;token comment&quot;&gt;// play pipes video&lt;/span&gt;
         7200   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;4&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7201     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pipeMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7202   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7203 
         7204   &lt;span class=&quot;token comment&quot;&gt;// play solitaire video&lt;/span&gt;
         7205   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;5&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7206     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;solitaireMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7207   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7208 
         7209   &lt;span class=&quot;token comment&quot;&gt;// play tiefighter video&lt;/span&gt;
         7210   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;6&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7211     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tiefighterMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7212   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7213 
         7214   &lt;span class=&quot;token comment&quot;&gt;// play rollercoaster video&lt;/span&gt;
         7215   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;7&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7216     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rollercoasterMovie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7217   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7218 
         7219   &lt;span class=&quot;token comment&quot;&gt;// play wc2 video&lt;/span&gt;
         7220   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;8&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7221     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;wc2Movie&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7222   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7223 
         7224   &lt;span class=&quot;token comment&quot;&gt;// print mini skulls everywhere!&lt;/span&gt;
         7225   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;s&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7226     miniSkull&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;resize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7227     &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;miniSkull&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;height&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7228   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7229 
         7230   &lt;span class=&quot;token comment&quot;&gt;// flashy background colors!&lt;/span&gt;
         7231   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;b&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7232     &lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7233   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7234 
         7235   &lt;span class=&quot;token comment&quot;&gt;// draw blue lines from the center&lt;/span&gt;
         7236   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;l&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7237     &lt;span class=&quot;token function&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;150&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7238     &lt;span class=&quot;token function&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;height&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7239   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7240 
         7241   &lt;span class=&quot;token comment&quot;&gt;// Load big skull picture on top of all these other backgrounds&lt;/span&gt;
         7242   &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;skull&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7243 
         7244   &lt;span class=&quot;token comment&quot;&gt;// show &apos;terminal man&apos; text, even on top of the big skull&lt;/span&gt;
         7245   &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;key &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;t&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7246     &lt;span class=&quot;token function&quot;&gt;textFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;f&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7247     &lt;span class=&quot;token function&quot;&gt;textAlign&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;CENTER&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7248     &lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;155&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;150&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7249     &lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;TERMINAL MAN&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7250     &lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;150&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7251     &lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;TERMINAL MAN&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7252   &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7253 &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
         7254 
         7255 &lt;span class=&quot;token comment&quot;&gt;// Called everytime a new frame is available&lt;/span&gt;
         7256 &lt;span class=&quot;token keyword&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;movieEvent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name&quot;&gt;Movie&lt;/span&gt; m&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
         7257   m&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
         7258 &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
         7259 &lt;p&gt;The sketch creates an app that lets you use the keyboard to jump between the different backdrops (for example, I can press &apos;b&apos; for crazy random flashing colors, and &apos;5&apos; for a looped Solitaire video). Note that the media files need to appear in the &apos;data&apos; folder of your sketch for this to work correctly.&lt;/p&gt;
         7260 &lt;h3&gt;Pulling it all together&lt;/h3&gt;
         7261 &lt;ul&gt;
         7262 &lt;li&gt;QuickTime&lt;/li&gt;
         7263 &lt;li&gt;iMovie&lt;/li&gt;
         7264 &lt;li&gt;Vimeo&lt;/li&gt;
         7265 &lt;/ul&gt;
         7266 &lt;p&gt;Even though the sketch works great as a live companion to the song, I was really concerned with potential lag and getting out of sync with the music, so I decided to record it all as a video. CloudApp stopped cooperating, conveniently right after I registered for the one-month premium package, so I Googled and discovered that I could also use QuickTime to record screencasts. For free.&lt;/p&gt;
         7267 &lt;p&gt;I put on some DJ-like headphones, press record on the Quicktime screencast, pressed play on the track in iTunes, and just pretended that I was Chris Kuroda, the de facto fifth member of Phish who runs all their stage effects and lights, as I recorded the background changes along with the song.&lt;/p&gt;
         7268 &lt;p&gt;Then all I had to do was drop the mp3 and the video files into iMovie, line them up, and post to Vimeo!&lt;/p&gt;
         7269 &lt;iframe src=&quot;https://player.vimeo.com/video/123845456&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
         7270 &lt;h3&gt;The live performance&lt;/h3&gt;
         7271 &lt;ul&gt;
         7272 &lt;li&gt;Double Robotics robot (we call it the Krobot at Knewton)&lt;/li&gt;
         7273 &lt;li&gt;Terminal&lt;/li&gt;
         7274 &lt;li&gt;Stage crew (Fernando, Sam, and others!)&lt;/li&gt;
         7275 &lt;/ul&gt;
         7276 &lt;p&gt;I had elaborate plans to introduce myself in a scary and funny robot voice using the Terminal &apos;say&apos; command. This totally failed, however, as you can see in the video. No one could hear my hilarious introduction. No one heard me explain that I wrote the song and created the background video.&lt;/p&gt;
         7277 &lt;p&gt;But none of that mattered once I started to dance.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Merlin's Advice]]></title><description><![CDATA[The best thing for being sad is to learn something. That's the only thing that never fails. You may grow old and trembling in your anatomies…]]></description><link>https://www.charlieharrington.com/merlin&apos;s-advice</link><guid isPermaLink="false">https://www.charlieharrington.com/merlin&apos;s-advice</guid><pubDate>Thu, 05 Mar 2015 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
         7278 &lt;p&gt;The best thing for being sad is to learn something. That&apos;s the only thing that never fails. You may grow old and trembling in your anatomies, you may lie awake at night listening to the disorder of your veins, you may miss your only love, you may see the world about you devastated by evil lunatics, or know your honour trampled in the sewers of baser minds. There is only one thing for it then — to learn. Learn why the world wags and what wags it. That is the only thing which the mind can never exhaust, never alienate, never be tortured by, never fear or distrust, and never dream of regretting. Learning is the only thing for you. Look what a lot of things there are to learn.&lt;/p&gt;
         7279 &lt;/blockquote&gt;
         7280 &lt;p&gt;&lt;span
         7281       class=&quot;gatsby-resp-image-wrapper&quot;
         7282       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 650px; &quot;
         7283     &gt;
         7284       &lt;a
         7285     class=&quot;gatsby-resp-image-link&quot;
         7286     href=&quot;/static/80667a21a152af75c83a37789c285779/f212f/ma.jpg&quot;
         7287     style=&quot;display: block&quot;
         7288     target=&quot;_blank&quot;
         7289     rel=&quot;noopener&quot;
         7290   &gt;
         7291     &lt;span
         7292     class=&quot;gatsby-resp-image-background-image&quot;
         7293     style=&quot;padding-bottom: 131.90184049079755%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAaABQDASIAAhEBAxEB/8QAGQAAAwADAAAAAAAAAAAAAAAAAAMEAQIF/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEAMQAAABio5uxQThhzWkhaH/xAAcEAABBQADAAAAAAAAAAAAAAAAAQIQERIDITH/2gAIAQEAAQUCR5ttbLLiu14zIvrI/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPwEf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPwEf/8QAGBAAAwEBAAAAAAAAAAAAAAAAACAhAUH/2gAIAQEABj8CJi04v//EABwQAAMBAAIDAAAAAAAAAAAAAAABESExUXGBof/aAAgBAQABPyFEZmehZSbFHKZbtNRgZ23s8vgqvBE3qHyf/9oADAMBAAIAAwAAABBADQz/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/EB//xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAECAQE/EB//xAAcEAEAAwEBAAMAAAAAAAAAAAABABEhMUFRkbH/2gAIAQEAAT8QoHKwryU1RF62sb3OSh11+I4USaK59QVl1vZqdS4vkGDVfT9TOMiUDr5MAOekJfJ//9k=&apos;); background-size: cover; display: block;&quot;
         7294   &gt;&lt;/span&gt;
         7295   &lt;img
         7296         class=&quot;gatsby-resp-image-image&quot;
         7297         alt=&quot;Merlin&quot;
         7298         title=&quot;Merlin&quot;
         7299         src=&quot;/static/80667a21a152af75c83a37789c285779/6aca1/ma.jpg&quot;
         7300         srcset=&quot;/static/80667a21a152af75c83a37789c285779/d2f63/ma.jpg 163w,
         7301 /static/80667a21a152af75c83a37789c285779/c989d/ma.jpg 325w,
         7302 /static/80667a21a152af75c83a37789c285779/6aca1/ma.jpg 650w,
         7303 /static/80667a21a152af75c83a37789c285779/f212f/ma.jpg 916w&quot;
         7304         sizes=&quot;(max-width: 650px) 100vw, 650px&quot;
         7305         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7306         loading=&quot;lazy&quot;
         7307       /&gt;
         7308   &lt;/a&gt;
         7309     &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Trickle of Water]]></title><description><![CDATA[My favorite Calvin and Hobbes strip]]></description><link>https://www.charlieharrington.com/trickle-of-water</link><guid isPermaLink="false">https://www.charlieharrington.com/trickle-of-water</guid><pubDate>Sun, 01 Mar 2015 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My favorite &lt;em&gt;Calvin and Hobbes&lt;/em&gt; strip&lt;/p&gt;
         7310 &lt;p&gt;&lt;span
         7311       class=&quot;gatsby-resp-image-wrapper&quot;
         7312       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 600px; &quot;
         7313     &gt;
         7314       &lt;a
         7315     class=&quot;gatsby-resp-image-link&quot;
         7316     href=&quot;/static/082a73a40fc58149b9098649c62e2b45/b4294/ch.jpg&quot;
         7317     style=&quot;display: block&quot;
         7318     target=&quot;_blank&quot;
         7319     rel=&quot;noopener&quot;
         7320   &gt;
         7321     &lt;span
         7322     class=&quot;gatsby-resp-image-background-image&quot;
         7323     style=&quot;padding-bottom: 31.288343558282207%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAIDBf/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAdaAWA//xAAYEAEAAwEAAAAAAAAAAAAAAAABAAIRIf/aAAgBAQABBQKsVw4f/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPwE//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAFhABAQEAAAAAAAAAAAAAAAAAAAER/9oACAEBAAY/AmRI/8QAGRABAAMBAQAAAAAAAAAAAAAAAQARITFB/9oACAEBAAE/IV3xeRSwjvG2tan/2gAMAwEAAgADAAAAEPAP/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxABAAICAwAAAAAAAAAAAAAAAQAhETFBUfD/2gAIAQEAAT8QffHAWBGILt79cVxLQGXvE//Z&apos;); background-size: cover; display: block;&quot;
         7324   &gt;&lt;/span&gt;
         7325   &lt;img
         7326         class=&quot;gatsby-resp-image-image&quot;
         7327         alt=&quot;comic&quot;
         7328         title=&quot;comic&quot;
         7329         src=&quot;/static/082a73a40fc58149b9098649c62e2b45/b4294/ch.jpg&quot;
         7330         srcset=&quot;/static/082a73a40fc58149b9098649c62e2b45/d2f63/ch.jpg 163w,
         7331 /static/082a73a40fc58149b9098649c62e2b45/c989d/ch.jpg 325w,
         7332 /static/082a73a40fc58149b9098649c62e2b45/b4294/ch.jpg 600w&quot;
         7333         sizes=&quot;(max-width: 600px) 100vw, 600px&quot;
         7334         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7335         loading=&quot;lazy&quot;
         7336       /&gt;
         7337   &lt;/a&gt;
         7338     &lt;/span&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[edCrunch in Moscow]]></title><link>https://www.charlieharrington.com/edcrunch-in-moscow</link><guid isPermaLink="false">https://www.charlieharrington.com/edcrunch-in-moscow</guid><pubDate>Sat, 18 Oct 2014 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/T952UorytGs?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[Over Water, Under You]]></title><link>https://www.charlieharrington.com/terminal-man-over-water-under-you</link><guid isPermaLink="false">https://www.charlieharrington.com/terminal-man-over-water-under-you</guid><pubDate>Mon, 04 Aug 2014 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/161700259&amp;amp;color=%2300cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;</content:encoded></item><item><title><![CDATA[ELTJam Sesh in London]]></title><description><![CDATA[My five minute pitch to the masters of the ELT universe.]]></description><link>https://www.charlieharrington.com/eltjam-sesh-in-london</link><guid isPermaLink="false">https://www.charlieharrington.com/eltjam-sesh-in-london</guid><pubDate>Mon, 28 Apr 2014 00:00:00 GMT</pubDate><content:encoded>&lt;iframe src=&quot;https://player.vimeo.com/video/93132331?title=0&amp;byline=0&amp;portrait=0&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;
         7339 &lt;p&gt;My five minute pitch to the masters of the ELT universe.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[SEPM Conference in Copenhagen]]></title><description><![CDATA["It's so awesome that we are in a planetarium, first of all." - Charlie Harrington]]></description><link>https://www.charlieharrington.com/sepm-conference-in-copenhagen</link><guid isPermaLink="false">https://www.charlieharrington.com/sepm-conference-in-copenhagen</guid><pubDate>Thu, 21 Nov 2013 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/87sBLMbBoFM?rel=0&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
         7340 &lt;p&gt;&quot;It&apos;s so awesome that we are in a planetarium, first of all.&quot; - Charlie Harrington&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Cape Seafood Logo]]></title><description><![CDATA[My friend Luke asked me to design a new logo for his new company. You may know his other company: Luke's Lobster. Here's what my other…]]></description><link>https://www.charlieharrington.com/cape-seafood-logo</link><guid isPermaLink="false">https://www.charlieharrington.com/cape-seafood-logo</guid><pubDate>Mon, 21 Jan 2013 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;My friend Luke asked me to design a new logo for his new company. You may know his other company: &lt;a href=&quot;https://www.lukeslobster.com/&quot;&gt;Luke&apos;s Lobster&lt;/a&gt;.&lt;/p&gt;
         7341 &lt;p&gt;Here&apos;s what my other friend &lt;a href=&quot;http://www.katiekosma.com/&quot;&gt;Katie Kosma&lt;/a&gt; and I came up with:&lt;/p&gt;
         7342 &lt;p&gt;&lt;span
         7343       class=&quot;gatsby-resp-image-wrapper&quot;
         7344       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 364px; &quot;
         7345     &gt;
         7346       &lt;a
         7347     class=&quot;gatsby-resp-image-link&quot;
         7348     href=&quot;/static/1564ddff2da0feb019088d38eb6d2ae9/e45a9/capeseafood.png&quot;
         7349     style=&quot;display: block&quot;
         7350     target=&quot;_blank&quot;
         7351     rel=&quot;noopener&quot;
         7352   &gt;
         7353     &lt;span
         7354     class=&quot;gatsby-resp-image-background-image&quot;
         7355     style=&quot;padding-bottom: 54.601226993865026%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACQ0lEQVQoz22TzU9TQRTFu3Jj4sqFJv4DJv4Frl25cGdiTBCjEXfqws+dCxcixqWi0Y2xskGDJsaQCpEUBKwtlIamFAKhLa39oO17b957/bI/7ry2tjEuztyTuTPn3Jm547NtGw2lFLZAdXkP1gD31nTz1n/W6JzPHhAwBYbVSVjKpiYR18bpGXZjzbFpuR1eF94W7nZzPj3oDXoRroKmiyWiDVuRNRTzOUW5a2JoMYmZqiJW7AinKopwXlEwOjpehRXZkJZFX9MWdyMVzn1MEMnscyFkcTlkkthXxEuKYeHixL2oycmAwfOkxdVfJmcXDGKSb4qBT6sWTMWZBYsjE2l8YxFOvIryNFriesQSAUXLUTxYM/FNVaQaMV01OPWtin/b5PyiwUjY8O7Rq1APRRE8HbQ47E9x6FmI4+NREr/LDK+6XIrYzBVchqTaayuKx5suo0mH6awD1BkK21yMOMTLDg0x/nvk2aziZrjKscksR1+vk88XmQpv82Jhiy8rO+zky6xvpfH/2OC9YGkjzedQkunYLmOBdWKpAg3X6T+K3LYYyis3mox9TxLfzfNwcpEbb2YYnVrmyniAO++CPPn0k/v+ILcFt97O8ejDIiMvA0wE49Cq6wr7LVORo7frLtHNDLlShdXtHEuJNLNrO4S39jyu72o+nmJzr8jyRsYznpF8rlTF1Y+iBnqs03993hTxP40abUGrLpCo5/VcveZ4sVFzaTdrIuZ0+rC32f6neXs/QPekafW56kZrIJpW/6ccAFxIGDki540tAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;&quot;
         7356   &gt;&lt;/span&gt;
         7357   &lt;img
         7358         class=&quot;gatsby-resp-image-image&quot;
         7359         alt=&quot;logo&quot;
         7360         title=&quot;logo&quot;
         7361         src=&quot;/static/1564ddff2da0feb019088d38eb6d2ae9/e45a9/capeseafood.png&quot;
         7362         srcset=&quot;/static/1564ddff2da0feb019088d38eb6d2ae9/222b7/capeseafood.png 163w,
         7363 /static/1564ddff2da0feb019088d38eb6d2ae9/ff46a/capeseafood.png 325w,
         7364 /static/1564ddff2da0feb019088d38eb6d2ae9/e45a9/capeseafood.png 364w&quot;
         7365         sizes=&quot;(max-width: 364px) 100vw, 364px&quot;
         7366         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7367         loading=&quot;lazy&quot;
         7368       /&gt;
         7369   &lt;/a&gt;
         7370     &lt;/span&gt;&lt;/p&gt;
         7371 &lt;p&gt;Check out &lt;a href=&quot;http://www.capeseafoodllc.com/&quot;&gt;Cape Seafood&lt;/a&gt; for more seafood-y goodness.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Four Track]]></title><description><![CDATA[This is the first song I wrote and recorded on my Fostex four-track.]]></description><link>https://www.charlieharrington.com/four-track</link><guid isPermaLink="false">https://www.charlieharrington.com/four-track</guid><pubDate>Thu, 18 Dec 2003 00:00:00 GMT</pubDate><content:encoded>&lt;iframe width=&quot;100%&quot; height=&quot;300&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/341989983&amp;amp;color=%2300cc11&amp;amp;auto_play=false&amp;amp;hide_related=false&amp;amp;show_comments=true&amp;amp;show_user=true&amp;amp;show_reposts=false&amp;amp;visual=true&quot;&gt;&lt;/iframe&gt;
         7372 &lt;p&gt;This is the first song I wrote and recorded on my Fostex four-track.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[About]]></title><description><![CDATA[Hello! My name is Charlie Harrington. I'm a computer programmer and writer living in San Francisco, California. I grew up in Red Bank, New…]]></description><link>https://www.charlieharrington.com/about</link><guid isPermaLink="false">https://www.charlieharrington.com/about</guid><pubDate>Sat, 01 Jan 2000 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hello! My name is Charlie Harrington. I&apos;m a computer programmer and writer living in San Francisco, California. I grew up in Red Bank, New Jersey, and it ain&apos;t no sin to be glad you&apos;re alive.&lt;/p&gt;
         7373 &lt;p&gt;I&apos;m an engineering manager at &lt;a href=&quot;https://www.getcruise.com&quot;&gt;Cruise&lt;/a&gt;, building software to deliver fully-autonomous vehicles aka self-driving cars. You can see Cruise autonomous vehicles driving around San Francisco right now! Like &lt;em&gt;right now&lt;/em&gt;, look outside!&lt;/p&gt;
         7374 &lt;p&gt;I love &lt;a href=&quot;/my-new-old-apple-iie-computer&quot;&gt;old computers&lt;/a&gt;, &lt;a href=&quot;/library&quot;&gt;books of all kinds&lt;/a&gt;, &lt;a href=&quot;/school-supplies&quot;&gt;playing music&lt;/a&gt;, and &lt;a href=&quot;/rim-2-rim-2-rim&quot;&gt;the Great Outdoors&lt;/a&gt;. Here&apos;s a grainy photo of me playing &lt;em&gt;Let It Be&lt;/em&gt; on banjo: &lt;/p&gt;
         7375 &lt;p&gt;&lt;span
         7376       class=&quot;gatsby-resp-image-wrapper&quot;
         7377       style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 400px; &quot;
         7378     &gt;
         7379       &lt;a
         7380     class=&quot;gatsby-resp-image-link&quot;
         7381     href=&quot;/static/a073f24e876ae150e393ddc9865a39ba/066f9/ch.jpg&quot;
         7382     style=&quot;display: block&quot;
         7383     target=&quot;_blank&quot;
         7384     rel=&quot;noopener&quot;
         7385   &gt;
         7386     &lt;span
         7387     class=&quot;gatsby-resp-image-background-image&quot;
         7388     style=&quot;padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMEBf/EABcBAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAc9aSMzai1C3njpj/8QAGxAAAwEBAAMAAAAAAAAAAAAAAAECEQMSFCH/2gAIAQEAAQUCc4XzSgvKH9PUZxiWYuZ5Pf/EABYRAAMAAAAAAAAAAAAAAAAAAAERIP/aAAgBAwEBPwFiP//EABcRAAMBAAAAAAAAAAAAAAAAAAEQEkH/2gAIAQIBAT8BkrAv/8QAGxAAAgMAAwAAAAAAAAAAAAAAAAECEBEiM3H/2gAIAQEABj8CFJVgoHZno21pxr//xAAcEAEAAwEAAwEAAAAAAAAAAAABABEhMUFRYXH/2gAIAQEAAT8hQbHJrd2UwfM7DQffb5FdPx6mizmxIo2+viKJW37P/9oADAMBAAIAAwAAABDULwH/xAAYEQEBAAMAAAAAAAAAAAAAAAABABARMf/aAAgBAwEBPxAARtR1x//EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAgBAgEBPxDTK1RH/8QAHRABAAMAAwADAAAAAAAAAAAAAQARITFBUYGh0f/aAAgBAQABPxBxQGuX2L7WC3vOvmNnJNWvYGo5p0LcoOj8lKAp7/SIAWBNAUOEHGWBoh8j47m3Sz//2Q==&apos;); background-size: cover; display: block;&quot;
         7389   &gt;&lt;/span&gt;
         7390   &lt;img
         7391         class=&quot;gatsby-resp-image-image&quot;
         7392         alt=&quot;charlie&quot;
         7393         title=&quot;charlie&quot;
         7394         src=&quot;/static/a073f24e876ae150e393ddc9865a39ba/066f9/ch.jpg&quot;
         7395         srcset=&quot;/static/a073f24e876ae150e393ddc9865a39ba/d2f63/ch.jpg 163w,
         7396 /static/a073f24e876ae150e393ddc9865a39ba/c989d/ch.jpg 325w,
         7397 /static/a073f24e876ae150e393ddc9865a39ba/066f9/ch.jpg 400w&quot;
         7398         sizes=&quot;(max-width: 400px) 100vw, 400px&quot;
         7399         style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
         7400         loading=&quot;lazy&quot;
         7401       /&gt;
         7402   &lt;/a&gt;
         7403     &lt;/span&gt;&lt;/p&gt;
         7404 &lt;p&gt;I&apos;m also in the middle of &lt;del&gt;writing&lt;/del&gt; &lt;del&gt;editing&lt;/del&gt; re-editing a novel about robots. If you like robots and adventures and being a kid and summer reading and box fans, then this could be the book for you!&lt;/p&gt;
         7405 &lt;h3&gt;Elsewhere on the Internet&lt;/h3&gt;
         7406 &lt;ul&gt;
         7407 &lt;li&gt;&lt;a href=&quot;https://twitter.com/whatrocks&quot;&gt;Twitter&lt;/a&gt;&lt;/li&gt;
         7408 &lt;li&gt;&lt;a href=&quot;https://twitch.tv/what_rocks&quot;&gt;Twitch&lt;/a&gt;&lt;/li&gt;
         7409 &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCqk3WloxX7Ya5bYSqYNA2Lg&quot;&gt;YouTube&lt;/a&gt;&lt;/li&gt;
         7410 &lt;li&gt;&lt;a href=&quot;https://github.com/whatrocks&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
         7411 &lt;li&gt;&lt;a href=&quot;https://instagram.com/whatrocks&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
         7412 &lt;li&gt;&lt;a href=&quot;https://www.goodreads.com/whatrocks&quot;&gt;Goodreads&lt;/a&gt;&lt;/li&gt;
         7413 &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/in/charlieharrington&quot;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
         7414 &lt;/ul&gt;
         7415 &lt;p&gt;Thank you for visiting my site.&lt;/p&gt;
         7416