<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Compsci on AdminJitsu</title>
    <link>https://adminjitsu.com/tags/compsci/</link>
    <description>Recent content in Compsci on AdminJitsu</description>
    <generator>Hugo -- 0.150.0</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 27 Aug 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://adminjitsu.com/tags/compsci/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Writers Block</title>
      <link>https://adminjitsu.com/posts/writers-block/</link>
      <pubDate>Thu, 27 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://adminjitsu.com/posts/writers-block/</guid>
      <description>xeyes rebuilt in javascript, the engineering blogs I love, LLM internals, and the first neural network made of vacuum tubes. A grab-bag from a curious month.</description>
      <content:encoded><![CDATA[<div id="xeyes-widget">
  <canvas id="xeyes" width="180" height="90"></canvas>
</div>

  <script src="/posts/writers-block/xeyes.js"></script>

<h2 id="an-intro">An Intro</h2>
<p>I&rsquo;m back after experiencing a little burnout with this project. It was good to take a step back and work on some other projects for a while. I&rsquo;ve been reading and tinkering a lot lately and I have lots of ideas for articles. So I&rsquo;ll start in earnest by sharing some of the things that are firing my neurons lately. If there is a common thread, it&rsquo;s that I love learning about how complex systems actually work.</p>
<hr>
<h2 id="xeyes-for-fun-and-profit">Xeyes For Fun and Profit</h2>
<p>You might have noticed the xeyes widget on this page, watching your mouse move. I built an implementation of xeyes in javascript! It is a small program but it makes me smile.</p>
<p>For years I kept the cheerful googly eyes on my desktop until Wayland came along and stopped publishing global mouse position, leaving xeyes to stare blankly ahead.</p>
<p>I set out to build my own and learn more than I wanted to know about the trigonometry of ovals.</p>
<p><span class="tag green">Source Code</span>
Check out the source code in the collapsed Details section if you want to use it on your site. I would appreciate a shout-out (It&rsquo;s MIT Licensed) but have at it. I&rsquo;d love to see your site if you do <a href="mailto:feedback@adminjitsu.com">feedback@adminjitsu.com</a></p>
<details >
  <summary>Details</summary>
  <div class="collapse-body">
    <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="cl"><span class="c1">// =========================================================
</span></span></span><span class="line"><span class="cl"><span class="c1">// TILT xeyes widget, xeyes.js
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// Copyright (c) 2025 Kevin Joiner (adminjitsu.com)
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// Permission is hereby granted, free of charge, to any person obtaining a copy
</span></span></span><span class="line"><span class="cl"><span class="c1">// of this software and associated documentation files (the &#34;Software&#34;), to deal
</span></span></span><span class="line"><span class="cl"><span class="c1">// in the Software without restriction, including without limitation the rights
</span></span></span><span class="line"><span class="cl"><span class="c1">// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
</span></span></span><span class="line"><span class="cl"><span class="c1">// copies of the Software, and to permit persons to whom the Software is
</span></span></span><span class="line"><span class="cl"><span class="c1">// furnished to do so, subject to the following conditions:
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// The above copyright notice and this permission notice shall be included in all
</span></span></span><span class="line"><span class="cl"><span class="c1">// copies or substantial portions of the Software.
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// THE SOFTWARE IS PROVIDED &#34;AS IS&#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
</span></span></span><span class="line"><span class="cl"><span class="c1">// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
</span></span></span><span class="line"><span class="cl"><span class="c1">// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
</span></span></span><span class="line"><span class="cl"><span class="c1">// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
</span></span></span><span class="line"><span class="cl"><span class="c1">// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
</span></span></span><span class="line"><span class="cl"><span class="c1">// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
</span></span></span><span class="line"><span class="cl"><span class="c1">// SOFTWARE.
</span></span></span><span class="line"><span class="cl"><span class="c1">// =========================================================
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// How to reuse this on another site
</span></span></span><span class="line"><span class="cl"><span class="c1">// --------------------------------
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// 1) HTML requirements
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - You MUST have a &lt;canvas&gt; element with id=&#34;xeyes&#34;:
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//        &lt;div id=&#34;xeyes-widget&#34;&gt;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          &lt;canvas id=&#34;xeyes&#34; width=&#34;180&#34; height=&#34;90&#34;&gt;&lt;/canvas&gt;
</span></span></span><span class="line"><span class="cl"><span class="c1">//        &lt;/div&gt;
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//      • The width/height attributes (180 x 90) matter, because the
</span></span></span><span class="line"><span class="cl"><span class="c1">//        eye positions below are hard-coded for that size.
</span></span></span><span class="line"><span class="cl"><span class="c1">//      • If you change the canvas size, you’ll need to adjust eye1/eye2
</span></span></span><span class="line"><span class="cl"><span class="c1">//        (x, y, radiusX, radiusY) to match your new layout.
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// 2) CSS expectations
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - This script does NOT position the widget; it only draws.
</span></span></span><span class="line"><span class="cl"><span class="c1">//      You’re expected to style the wrapper in CSS, e.g.:
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//        #xeyes-widget {
</span></span></span><span class="line"><span class="cl"><span class="c1">//          position: fixed;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          top: 20px;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          right: 20px;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          width: 180px;   /* match &lt;canvas&gt; width  */
</span></span></span><span class="line"><span class="cl"><span class="c1">//          height: 90px;   /* match &lt;canvas&gt; height */
</span></span></span><span class="line"><span class="cl"><span class="c1">//          background: #e0e0e0;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          border: 2px solid #000;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #888;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          z-index: 9999;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          pointer-events: none;  /* let clicks pass through */
</span></span></span><span class="line"><span class="cl"><span class="c1">//        }
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//        #xeyes {
</span></span></span><span class="line"><span class="cl"><span class="c1">//          display: block;
</span></span></span><span class="line"><span class="cl"><span class="c1">//          background: #e0e0e0;   /* same color the JS uses to clear */
</span></span></span><span class="line"><span class="cl"><span class="c1">//        }
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//      • If you don’t want it fixed in the corner, you can style
</span></span></span><span class="line"><span class="cl"><span class="c1">//        #xeyes-widget however you like (inline, in a header bar, etc.).
</span></span></span><span class="line"><span class="cl"><span class="c1">//      • Optional: hide on small screens with a media query:
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//        @media (max-width: 960px) {
</span></span></span><span class="line"><span class="cl"><span class="c1">//          #xeyes-widget { display: none; }
</span></span></span><span class="line"><span class="cl"><span class="c1">//        }
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// 3) Script loading
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - Include xeyes.js AFTER the canvas exists in the DOM, e.g.:
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//        &lt;!-- near the end of &lt;body&gt; --&gt;
</span></span></span><span class="line"><span class="cl"><span class="c1">//        &lt;script src=&#34;js/xeyes.js&#34;&gt;&lt;/script&gt;
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">//      or wrap the code in a DOMContentLoaded handler.
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - No libraries required; this is plain JS + canvas.
</span></span></span><span class="line"><span class="cl"><span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1">// 4) Behavior notes
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - The script listens to document-wide &#39;mousemove&#39; events and
</span></span></span><span class="line"><span class="cl"><span class="c1">//      converts them into canvas coordinates so the pupils track the
</span></span></span><span class="line"><span class="cl"><span class="c1">//      real cursor.
</span></span></span><span class="line"><span class="cl"><span class="c1">//    - On touch-only devices, nothing special happens (no mousemove),
</span></span></span><span class="line"><span class="cl"><span class="c1">//      which is fine; the widget just shows idle eyes.
</span></span></span><span class="line"><span class="cl"><span class="c1">// =========================================================
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Get the canvas element that will host our xeyes
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">const</span> <span class="nx">canvas</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;xeyes&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="c1">// 2D drawing context for all rendering
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">const</span> <span class="nx">ctx</span> <span class="o">=</span> <span class="nx">canvas</span><span class="p">.</span><span class="nx">getContext</span><span class="p">(</span><span class="s1">&#39;2d&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Geometry for the two eyes (positions + ellipse radii)
</span></span></span><span class="line"><span class="cl"><span class="c1">// These are hard-coded to match the canvas size (180x90)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">const</span> <span class="nx">eye1</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">x</span><span class="o">:</span> <span class="mi">45</span><span class="p">,</span>  <span class="nx">y</span><span class="o">:</span> <span class="mi">45</span><span class="p">,</span> <span class="nx">radiusX</span><span class="o">:</span> <span class="mi">32</span><span class="p">,</span> <span class="nx">radiusY</span><span class="o">:</span> <span class="mi">38</span> <span class="p">};</span>   <span class="c1">// left eye
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">const</span> <span class="nx">eye2</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">x</span><span class="o">:</span> <span class="mi">135</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span> <span class="mi">45</span><span class="p">,</span> <span class="nx">radiusX</span><span class="o">:</span> <span class="mi">32</span><span class="p">,</span> <span class="nx">radiusY</span><span class="o">:</span> <span class="mi">38</span> <span class="p">};</span>   <span class="c1">// right eye
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl"><span class="c1">// Radius of the black pupil circle
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="kr">const</span> <span class="nx">pupilRadius</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Draw a single eye: white oval, black outline, and the pupil.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {Object} eye      - Eye geometry (x, y, radiusX, radiusY).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} pupilX   - X coordinate of the pupil center.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} pupilY   - Y coordinate of the pupil center.
</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
</span></span><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">drawEye</span><span class="p">(</span><span class="nx">eye</span><span class="p">,</span> <span class="nx">pupilX</span><span class="p">,</span> <span class="nx">pupilY</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="c1">// Draw filled white oval (eyeball)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s1">&#39;#ffffff&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">ellipse</span><span class="p">(</span><span class="nx">eye</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">y</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusX</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusY</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span> <span class="o">*</span> <span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fill</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// Draw thick black outline around the eyeball
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">ctx</span><span class="p">.</span><span class="nx">strokeStyle</span> <span class="o">=</span> <span class="s1">&#39;#000000&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">lineWidth</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">ellipse</span><span class="p">(</span><span class="nx">eye</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">y</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusX</span><span class="p">,</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusY</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span> <span class="o">*</span> <span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">stroke</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// Draw small black pupil (filled circle)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s1">&#39;#000000&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">arc</span><span class="p">(</span><span class="nx">pupilX</span><span class="p">,</span> <span class="nx">pupilY</span><span class="p">,</span> <span class="nx">pupilRadius</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span> <span class="o">*</span> <span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fill</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="c1">// Draw pupil outline for a crisper look
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">ctx</span><span class="p">.</span><span class="nx">strokeStyle</span> <span class="o">=</span> <span class="s1">&#39;#000000&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">lineWidth</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">beginPath</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">arc</span><span class="p">(</span><span class="nx">pupilX</span><span class="p">,</span> <span class="nx">pupilY</span><span class="p">,</span> <span class="nx">pupilRadius</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span> <span class="o">*</span> <span class="mi">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">stroke</span><span class="p">();</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Compute where the pupil should be drawn inside the oval eye,
</span></span></span><span class="line"><span class="cl"><span class="cm"> * pointing towards the mouse, without leaving the eye boundary.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * This treats the eye as an ellipse and constrains the pupil
</span></span></span><span class="line"><span class="cl"><span class="cm"> * to an inner ellipse so it never escapes the white part.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {Object} eye    - Eye geometry (x, y, radiusX, radiusY).
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} mouseX - X coordinate of the mouse relative to canvas.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} mouseY - Y coordinate of the mouse relative to canvas.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @returns {{x: number, y: number}} Pupil center coordinates.
</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
</span></span><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">getPupilPosition</span><span class="p">(</span><span class="nx">eye</span><span class="p">,</span> <span class="nx">mouseX</span><span class="p">,</span> <span class="nx">mouseY</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="c1">// Vector from eye center to mouse
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">dx</span> <span class="o">=</span> <span class="nx">mouseX</span> <span class="o">-</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">x</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">dy</span> <span class="o">=</span> <span class="nx">mouseY</span> <span class="o">-</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">y</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">angle</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">atan2</span><span class="p">(</span><span class="nx">dy</span><span class="p">,</span> <span class="nx">dx</span><span class="p">);</span>  <span class="c1">// direction from eye to mouse
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    
</span></span><span class="line"><span class="cl">    <span class="c1">// How far the pupil is allowed to move inside the eye,
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">// keeping a small padding from the edge (the &#34;- 4&#34;)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">maxDistX</span> <span class="o">=</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusX</span> <span class="o">-</span> <span class="nx">pupilRadius</span> <span class="o">-</span> <span class="mi">4</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">maxDistY</span> <span class="o">=</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">radiusY</span> <span class="o">-</span> <span class="nx">pupilRadius</span> <span class="o">-</span> <span class="mi">4</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="c1">// Precompute trig values for the direction
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">cos</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">cos</span><span class="p">(</span><span class="nx">angle</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">sin</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sin</span><span class="p">(</span><span class="nx">angle</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="c1">// Project the direction onto the bounding ellipse.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">// This gives us the distance from the center to the edge of
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">// the ellipse along (cos, sin).
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">//
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">// edgeDist is basically &#34;how far can we go in this direction
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="c1">// before leaving the white part of the eye?&#34;
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">edgeDist</span> <span class="o">=</span> <span class="p">(</span><span class="nx">maxDistX</span> <span class="o">*</span> <span class="nx">maxDistY</span><span class="p">)</span> <span class="o">/</span> 
</span></span><span class="line"><span class="cl">        <span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="nx">maxDistY</span> <span class="o">*</span> <span class="nx">cos</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">(</span><span class="nx">maxDistX</span> <span class="o">*</span> <span class="nx">sin</span><span class="p">,</span> <span class="mi">2</span><span class="p">));</span>
</span></span><span class="line"><span class="cl">    
</span></span><span class="line"><span class="cl">    <span class="c1">// Distance from eye center to mouse (clamped so we don&#39;t go past the edge)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">distance</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">min</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="nx">dx</span> <span class="o">*</span> <span class="nx">dx</span> <span class="o">+</span> <span class="nx">dy</span> <span class="o">*</span> <span class="nx">dy</span><span class="p">),</span> <span class="nx">edgeDist</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// Final pupil position along that direction
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="k">return</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="nx">x</span><span class="o">:</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="nx">cos</span> <span class="o">*</span> <span class="nx">distance</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">        <span class="nx">y</span><span class="o">:</span> <span class="nx">eye</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="nx">sin</span> <span class="o">*</span> <span class="nx">distance</span>
</span></span><span class="line"><span class="cl">    <span class="p">};</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">/**
</span></span></span><span class="line"><span class="cl"><span class="cm"> * Draw the full xeyes widget for a given mouse position.
</span></span></span><span class="line"><span class="cl"><span class="cm"> *
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} mouseX - Mouse X coordinate relative to canvas.
</span></span></span><span class="line"><span class="cl"><span class="cm"> * @param {number} mouseY - Mouse Y coordinate relative to canvas.
</span></span></span><span class="line"><span class="cl"><span class="cm"> */</span>
</span></span><span class="line"><span class="cl"><span class="kd">function</span> <span class="nx">draw</span><span class="p">(</span><span class="nx">mouseX</span><span class="p">,</span> <span class="nx">mouseY</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="c1">// Clear the canvas with a flat grey background
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fillStyle</span> <span class="o">=</span> <span class="s1">&#39;#e0e0e0&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">ctx</span><span class="p">.</span><span class="nx">fillRect</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">canvas</span><span class="p">.</span><span class="nx">width</span><span class="p">,</span> <span class="nx">canvas</span><span class="p">.</span><span class="nx">height</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// Compute where each pupil should go based on the mouse position
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">pupil1</span> <span class="o">=</span> <span class="nx">getPupilPosition</span><span class="p">(</span><span class="nx">eye1</span><span class="p">,</span> <span class="nx">mouseX</span><span class="p">,</span> <span class="nx">mouseY</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">pupil2</span> <span class="o">=</span> <span class="nx">getPupilPosition</span><span class="p">(</span><span class="nx">eye2</span><span class="p">,</span> <span class="nx">mouseX</span><span class="p">,</span> <span class="nx">mouseY</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="c1">// Draw both eyes with their respective pupil positions
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="nx">drawEye</span><span class="p">(</span><span class="nx">eye1</span><span class="p">,</span> <span class="nx">pupil1</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">pupil1</span><span class="p">.</span><span class="nx">y</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="nx">drawEye</span><span class="p">(</span><span class="nx">eye2</span><span class="p">,</span> <span class="nx">pupil2</span><span class="p">.</span><span class="nx">x</span><span class="p">,</span> <span class="nx">pupil2</span><span class="p">.</span><span class="nx">y</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Track mouse movement anywhere in the document.
</span></span></span><span class="line"><span class="cl"><span class="c1">// Convert window coordinates into canvas-local coordinates
</span></span></span><span class="line"><span class="cl"><span class="c1">// so the pupils follow correctly.
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s1">&#39;mousemove&#39;</span><span class="p">,</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">=&gt;</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">rect</span> <span class="o">=</span> <span class="nx">canvas</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">mouseX</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientX</span> <span class="o">-</span> <span class="nx">rect</span><span class="p">.</span><span class="nx">left</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kr">const</span> <span class="nx">mouseY</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">clientY</span> <span class="o">-</span> <span class="nx">rect</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="nx">draw</span><span class="p">(</span><span class="nx">mouseX</span><span class="p">,</span> <span class="nx">mouseY</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="p">});</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// Initial draw with both eyes looking straight ahead (center of canvas)
</span></span></span><span class="line"><span class="cl"><span class="c1"></span><span class="nx">draw</span><span class="p">(</span><span class="nx">canvas</span><span class="p">.</span><span class="nx">width</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">canvas</span><span class="p">.</span><span class="nx">height</span> <span class="o">/</span> <span class="mi">2</span><span class="p">);</span>
</span></span></code></pre></div>
  </div>
</details>

<hr>
<h2 id="support-some-awesome-organizations">Support Some Awesome Organizations</h2>
<p>I believe the world is better off having Wikipedia and Archive.org in it. They built things that are immensely useful to society and have fought along the way to stay independent. They&rsquo;ve had to deal with lawsuits and fundraising along the way. Please support these organizations if you can.</p>
<ul>
<li>
<p><a href="https://en.wikipedia.org">Wikipedia</a> - the reference layer under everything. If you use it, <a href="https://donate.wikimedia.org">donate</a> — it runs on that, not ads.</p>
</li>
<li>
<p><a href="https://archive.org">Internet Archive</a> - the Wayback Machine, plus books, software, and audio nobody else kept. The reason the link below still exists at all. <a href="https://archive.org/donate">Support them here</a>.</p>
</li>
<li>
<p><a href="https://www.eff.org/">The Electronic Frontier Foundation</a> - they defend free speech and privacy in a world that badly needs it. Please donate to them as well. They truly look out for the little guy in a world dominated by big tech with their political power and complex legal battles that few ordinary people could possibly afford to fight. <a href="https://supporters.eff.org/donate/join-eff-4">donate</a>.</p>
</li>
</ul>
<hr>
<h2 id="engineering-blogs-i-like">Engineering blogs I like</h2>
<p>I&rsquo;m such a fan of sites that publish engineering details, usually in blog form. I&rsquo;ve learned a lot over the years. Here are a few good ones:</p>
<ul>
<li>
<p><a href="https://blog.cloudflare.com">Cloudflare Blog</a> — Has transparent incident reports and technical deep-dives on DDoS mitigation, DNS, and distributed systems. They write about major attacks and how they defeated them. Great read.</p>
</li>
<li>
<p><a href="https://netflixtechblog.com">Netflix TechBlog</a> — explains design pressure from real workloads</p>
</li>
<li>
<p><a href="https://stripe.com/blog/engineering">Stripe Engineering</a> — their post on idempotency is a great read. Payments-grade rigor, design rationale, what broke.</p>
</li>
<li>
<p><a href="https://github.blog/engineering">GitHub Engineering</a> — scaling git itself. Reading how the thing you use every day is built</p>
</li>
<li>
<p><a href="https://www.backblaze.com/blog/category/cloud-storage/hard-drive-stats/">Backblaze Drive Stats</a> — since 2013 they&rsquo;ve published failure-rate statistics on the drives in their data centers, cited in over 105 academic papers. Raw, downloadable, thirteen years deep. Gives an interesting perspective</p>
</li>
<li>
<p><a href="https://discord.com/category/engineering">Discord Engineering</a> — the &ldquo;how we store trillions of messages&rdquo; posts are the good stuff. Real-time systems laid bare.</p>
</li>
</ul>
<figure style="text-align:center; margin: 1em auto;">
  <img src="Geeky-computer-guys.webp"
       alt="The Geeky Computer Guys — two South Park characters, both wearing shirts reading 'Resistance Is Futile'"
       style="display:block; margin:0 auto; width:min(80%, 420px); height:auto;">
  <figcaption style="font-size: 85%; font-weight: normal; color: #666; line-height:1.4; margin-top:0.4em;">
    <em>The Geeky Computer Guys — Sean Laverty and J.J. Franzen, immortalized. Their blog is lost to the ether now, but it was a good read.</em><br>
    South Park characters © Comedy Central / South Park Digital Studios. Image via the <a href="https://southpark.wiki.gg/wiki/Geeky_Computer_Guys" target="_blank" rel="noopener">South Park Archives</a>.
  </figcaption>
</figure>
<br>
<ul>
<li>
<p>Southpark Studios -  used to have a really good one but I can&rsquo;t find it even in Wayback Machine. Too bad.</p>
</li>
<li>
<p><a href="https://www.figma.com/blog/engineering/">Figma Engineering</a> — their multiplayer/CRDT writeups are some of the best &ldquo;how we actually built the hard part&rdquo; pieces on the web.</p>
</li>
<li>
<p><a href="https://www.linkedin.com/blog/engineering">LinkedIn Engineering</a> — their Kafka-at-scale writing is a great read. LinkedIn invented Kafka so they are certainly an authority.</p>
</li>
<li>
<p><a href="https://www.uber.com/blog/engineering/">Uber Engineering</a> — strong on data systems and platform evolution. How their clever algorithms scale.</p>
</li>
<li>
<p><a href="https://engineering.fb.com">Meta Engineering</a> — talks about large-scale systems</p>
</li>
<li>
<p><a href="https://dropbox.tech">Dropbox Tech</a> — storage, sync internals</p>
</li>
<li>
<p><a href="https://engineering.atspotify.com">Spotify Engineering</a> — ML and streaming at scale</p>
</li>
<li>
<p><a href="https://www.etsy.com/codeascraft">Etsy — Code as Craft</a> - this is a great resource that documents how a little site grew into a monster and how they scaled to handle the traffic.</p>
</li>
<li>
<p><a href="https://slack.engineering">Slack Engineering</a> — messaging infrastructure</p>
</li>
</ul>
<hr>
<h3 id="behind-the-scenes-at-a-big-project">Behind the scenes at a big project</h3>
<ul>
<li><a href="https://davidwalsh.name/pornhub-interview">Interview with a Pornhub Web Developer</a> — a SFW technical interview on running one of the highest-traffic sites on the web: WebRTC, WebXR, dropping jQuery, scaling problems most engineers never see.</li>
<li><a href="https://davidwalsh.name/tutorials/interviews">David Walsh&rsquo;s Interviews archive</a> - Conversational sit-downs with the people who built CodePen, jsFiddle, Vimeo, Roku&rsquo;s web stack, and more.</li>
<li><a href="https://highscalability.com">High Scalability</a> - &ldquo;Real-Life Architectures&rdquo; teardowns of how Twitter, Instagram, Netflix, and others actually built it, challenges and all.</li>
<li><a href="https://www.infoq.com/presentations/slack-scaling-infrastructure/">Scaling Slack&rsquo;s Infrastructure</a> — Julia Grace&rsquo;s war-story talk on standing up Slack&rsquo;s first infra org as it hit its scaling wall. Mistakes included.</li>
<li><a href="https://www.infoq.com/interviews/little-scaling-tumblr">Ken Little on Scaling Tumblr</a> — sharded-architecture interview from the Tumblr/Etsy scaling era.
<br><br></li>
</ul>
<figure style="text-align:center; margin:1em auto;">
  <div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
        <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/qv6UVOQ0F44?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
      </div>

  <figcaption style="font-size:85%; color:#666; line-height:1.4; margin-top:0.4em;">
    <em>SethBling's MarI/O walks through the process of training a Neural Network to play Super Mario World. Uses NEAT: neural networks evolved by a genetic algorithm</em>
  </figcaption>
</figure>
<p><br><br></p>
<hr>
<h2 id="large-language-models-and-mathematics">Large Language Models and Mathematics</h2>
<p>I&rsquo;ve used AI to help piece this site together in the past, and I have mixed feelings about it. But I&rsquo;m fascinated by how Large Language Models actually work, partly because I worry about their impact. There are serious issues here that require real understanding to even discuss, and I seriously doubt the average lawmaker has it.</p>
<p>A seminal paper that directly led to today&rsquo;s LLM technology:
<a href="https://research.google/pubs/attention-is-all-you-need/">Attention Is All You Need</a> |
<a href="https://en.wikipedia.org/wiki/Attention_Is_All_You_Need">wikipedia article about &lsquo;Attention is All You Need&rsquo;</a></p>
<p>I&rsquo;ve gone down a lot of rabbit holes but these are some solid Wikipedia hubs that link to all the papers and other entries.</p>
<ul>
<li>
<p><a href="https://en.wikipedia.org/wiki/Machine_learning">Machine Learning</a> - this is a great Wikipedia page to bookmark. It contains links to tons of related topics and a lot of research papers are cited in References.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/AlexNet">AlexNet</a> - an important early step on the road to LLM</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Transformer_(deep_learning)">Transformer</a> - the transformer is a family of artificial neural network architectures based on the multi-head attention mechanism</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Softmax_function">Softmax function</a> - An algorithm that squashes raw scores into probabilities that add up to 1.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Large_language_model">Large language model</a> — the main hub page; pairs with your Machine Learning bookmark.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Neural_network_(machine_learning)">Neural network (machine learning)</a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Backpropagation">Backpropagation</a> — how the thing actually learns.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Gradient_descent">Gradient Descent</a> - How models stumble towards less-wrong.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Word_embedding">Word embedding</a> — the &ldquo;concepts as directions in space&rdquo; idea, foundational and genuinely mind-bending.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Multilayer_perceptron">Multilayer perceptron</a> — stack enough simple neurons in layers and they can learn almost any pattern.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Reinforcement_learning_from_human_feedback">Reinforcement learning from human feedback</a> — RLHF, the step that turned raw models into assistants. Under-understood, exactly the kind of thing you said lawmakers miss.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Stochastic_Neural_Analog_Reinforcement_Calculator">SNARC</a> - Marvin Minksy&rsquo;s Stochastic Neural Analog Reinforcement Calculator. It was inspired by McCulloch and Pitts 1943 paper on artificial neurons and built with vacuum tubes.</p>
</li>
</ul>
<br>
<p>This was a terrific paper that deserves to be called out separately. It explores the mathematical shortcomings of our language models.</p>
<ul>
<li><a href="https://archive.org/details/stochastic-parrots-3442188.3445922/page/623/mode/2up">On the Dangers of Stochastic Parrots</a> - I couldn&rsquo;t ever read this on ACM&rsquo;s website but archive.org has a copy. Really interesting paper.</li>
</ul>
<br>
<h3 id="exploring-llms-with-visualizations">Exploring LLMs with visualizations</h3>
<ul>
<li><a href="https://bbycroft.net/llm">LLM Visualization (Brendan Bycroft)</a> — a full GPT rendered in interactive 3D; zoom into every layer, attention head, and matrix multiply and watch inference happen. Karpathy himself praised it. The most &ldquo;inspection window&rdquo; thing on this whole list.</li>
<li><a href="https://poloclub.github.io/transformer-explainer/">Transformer Explainer (Georgia Tech)</a> — a live GPT-2 running in your browser; type your own text, turn the temperature knob, and watch the probability distribution shift in real time.</li>
<li><a href="https://jalammar.github.io/illustrated-transformer/">The Illustrated Transformer (Jay Alammar)</a> — the canonical visual explainer. Static, but the diagrams are so good it&rsquo;s cited in courses at Stanford, MIT, and CMU.</li>
<li><a href="https://youtu.be/wjZofJX0v4M">But what is a GPT? (3Blue1Brown)</a> — Grant Sanderson&rsquo;s visual intro to transformers.</li>
</ul>
<figure style="text-align:center; margin: 1em auto;">
  <img src="obsidian.jpg"
       alt="An Obsidian graph view with hundreds of interlinked notes; the #ai tag glows purple at the center, connected to a dense fan of related notes"
       style="display:block; margin:0 auto; width:min(100%, 640px); height:auto;">
  <figcaption style="font-size: 85%; font-weight: normal; color: #666; line-height:1.4; margin-top:0.4em;">
    <em>My Obsidian vault with the <code>#ai</code> tag lit up — what "going down a lot of rabbit holes" actually looks like.</em>
  </figcaption>
</figure>
<h3 id="self-learning">Self Learning</h3>
<p>Horrifying as it might be, there is real research into allowing models to train themselves. There are loads of papers about how it works.</p>
<p><strong>Self-feedback &amp; iterative refinement</strong></p>
<ul>
<li><a href="https://arxiv.org/abs/2303.17651">Self-Refine (Madaan et al., 2023)</a></li>
<li><a href="https://arxiv.org/abs/2303.11366">Reflexion (Shinn et al., 2023)</a></li>
<li><a href="https://arxiv.org/abs/2310.01798">Large Language Models Cannot Self-Correct Reasoning Yet (Huang et al., 2023)</a></li>
</ul>
<p><strong>Episodic memory</strong></p>
<ul>
<li><a href="https://arxiv.org/abs/2502.06975">Episodic Memory is the Missing Piece for Long-Term LLM Agents (Pink et al., 2025)</a></li>
<li><a href="https://arxiv.org/abs/2310.08560">MemGPT (Packer et al., 2023)</a></li>
<li><a href="https://arxiv.org/abs/2502.12110">A-MEM: Agentic Memory for LLM Agents (Xu et al., 2025)</a></li>
<li><a href="https://arxiv.org/abs/2304.03442">Generative Agents (Park et al., 2023)</a></li>
</ul>
<p><strong>Continuous / infinite context</strong></p>
<ul>
<li><a href="https://arxiv.org/abs/2404.07143">Infini-attention (Munkhdalai et al., 2024)</a></li>
<li><a href="https://arxiv.org/abs/2309.17453">StreamingLLM (Xiao et al., 2023)</a></li>
<li><a href="https://arxiv.org/abs/2404.06654">RULER: What&rsquo;s the Real Context Size? (Hsieh et al., 2024)</a></li>
</ul>
<p><strong>Self-Taught Evaluator</strong></p>
<ul>
<li><a href="https://arxiv.org/abs/2408.02666">Self-Taught Evaluators (Wang et al., Meta FAIR, 2024)</a></li>
</ul>
<p><br><br></p>
<hr>
<h2 id="unix-and-interesting-code-bases">Unix and Interesting Code Bases</h2>
<figure style="text-align:center; margin:1em auto;">
  <div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
        <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/XvDZLjaCJuw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
      </div>

  <figcaption style="font-size:85%; color:#666; line-height:1.4; margin-top:0.4em;">
    <em>Bell Labs - Making Computers Easier to Use. Unix Legends </em>
  </figcaption>
</figure>
<p>I like to collect code bases for study or as a reference. I found a few good ones over the last year or two.</p>
<ul>
<li>
<p><a href="https://github.com/thealgorithms/python">Python Algorithms</a> - Well this is just fantastic</p>
</li>
<li>
<p><a href="https://github.com/chrislgarry/apollo-11">Apollo 11 AGC source code</a> - Amazing comments for the casual peruser. Incredibly efficient ASM code</p>
</li>
<li>
<p><a href="https://github.com/dariusk/corpora">Darius Kazemi&rsquo;s Corpora</a> - I use these json corpora in tons of scripts. It&rsquo;s so useful I keep a copy with my dotfiles setup in $DOTFILES/data that my scripts can refer to easily. Check this out if you like language or want to write a crappy twitter bot 😂</p>
</li>
<li>
<p><a href="https://github.com/id-software/doom">Doom Source Code</a> - I learned a ton by crawling through this code. Maybe I&rsquo;ll port Doom to my Coffee Maker one of these days.</p>
</li>
<li>
<p><a href="https://github.com/id-Software/Quake-III-Arena">Quake III Arena</a> — id&rsquo;s GPL source. Home of the legendary fast inverse square root and full of weapons-grade commentary.</p>
</li>
<li>
<p><a href="https://github.com/mit-pdos/xv6-riscv">xv6</a> — MIT&rsquo;s teaching OS, a clean modern reimplementation of Unix V6 built to be <em>read</em>.</p>
</li>
<li>
<p><a href="https://warsus.github.io/lions-/">Lions&rsquo; Commentary on UNIX 6th Edition</a> — the annotated V6 source passed around as samizdat photocopies for years. The greybeards&rsquo; sacred text.</p>
</li>
</ul>
<figure style="text-align:center; margin: 1em auto;">
  <img src="eliza.png"
       alt="An Emacs M-x doctor session, where the ELIZA therapist earnestly responds to a stream of surreal Zippy the Pinhead quotes"
       style="display:block; margin:0 auto; width:min(100%, 600px); height:auto;">
  <figcaption style="font-size: 85%; font-weight: normal; color: #666; line-height:1.4; margin-top:0.4em;">
    <em>Emacs' <code>M-x doctor</code> earnestly psychoanalyzing a stream of Zippy the Pinhead quotes. Emacs deprecated the Zippy database over copyright, so I had to feed her by hand.</em>
  </figcaption>
</figure>
<ul>
<li>
<p><a href="https://github.com/anthay/ELIZA">ELIZA (original 1966 source)</a> — Weizenbaum&rsquo;s chatbot, MAD-SLIP source recovered from the MIT archives, plus a faithful C++ recreation. Like a lot of people, I was exposed to Eliza through emacs <code>M-x doctor</code> . Unfortunately they removed the Zippy the Pinhead quotes so you can no longer do <code>M-x psychoanalyze-pinhead</code> and watch ELIZA respond to Zippy quotes. In the example above I supplied my own thanks to good old <code>fortune zippy</code></p>
</li>
<li>
<p><a href="https://github.com/karpathy/llama2.c">llama2.c</a> — Karpathy&rsquo;s Llama 2 inference in one file of pure C.</p>
</li>
</ul>
<hr>
<h2 id="miscellany">Miscellany</h2>
<ul>
<li>
<p><a href="https://en.wikipedia.org/wiki/Halting_problem">Halting Problem</a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Isomorphism">Isomorphism</a></p>
</li>
<li>
<p><a href="https://www.youtube.com/@Computerphile">Computerphile channel</a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Self-modifying_code">Self Modifying Code</a></p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis">Church-Turing Thesis</a></p>
</li>
<li>
<p><a href="https://dl.acm.org/doi/10.1145/358198.358210">Reflections on Trusting Trust</a> - Ken Thompson is always worth a read.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Bootstrapping_(compilers)">Bootstrapping a compiler</a> - how you write a C compiler in C and solve the chicken and egg problem.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Quine_(computing)">Quine (self-replicating program)</a> — a program whose output is its own source code. Useless but makes a nice hello world style demo.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Rice%27s_theorem">Rice&rsquo;s Theorem</a> — the Halting Problem&rsquo;s meaner sibling: <em>any</em> non-trivial property of program behavior is undecidable. It&rsquo;s a theorem about why perfect linters and antivirus can&rsquo;t exist.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems">Gödel&rsquo;s incompleteness theorems</a> — the mathematical ancestor of the Halting Problem. Same self-referential trap.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Rule_110">Rule 110</a> — a one-line cellular-automaton rule that turns out to be Turing complete. Complexity from almost nothing.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Two_Generals%27_Problem">Two Generals&rsquo; Problem</a> — you cannot guarantee agreement over an unreliable channel. Ever. Why TCP handshakes and distributed consensus work the way they do.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Benford%27s_law">Benford&rsquo;s law</a> — in real-world data, the leading digit is a 1 about 30% of the time, not 11%. Used to <em>catch fraud</em> in accounting and elections.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Birthday_problem">Birthday problem</a> — 23 people, better-than-even odds two share a birthday. The intuition-breaker behind hash collisions and why cryptographic digests need to be long.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Collatz_conjecture">Collatz conjecture</a> — a rule a child can follow, that nobody can prove terminates. Erdős: &ldquo;mathematics is not yet ready for such problems.&rdquo;</p>
</li>
</ul>
<figure style="text-align:center; margin: 1em auto;">
  <img src="Self-Similarity-Zoom.gif"
       alt="Animated zoom into the Mandelbrot set revealing repeating self-similar structure"
       style="display:block; margin:0 auto; width:min(100%, 500px); height:auto;">
  <figcaption style="font-size: 85%; font-weight: normal; color: #666; line-height:1.4; margin-top:0.4em;">
    <em>Zooming into the Mandelbrot set — the same structure, all the way down.</em><br>
    <a href="https://commons.wikimedia.org/wiki/User:Danielkwalsh" target="_blank" rel="noopener">Danielkwalsh</a>, <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener">CC&nbsp;BY-SA&nbsp;4.0</a>, via Wikimedia Commons.
  </figcaption>
</figure>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Mandelbrot_set">Mandelbrot set</a> — infinite, self-similar complexity from a one-line iteration. The mathematical big brother of the Droste effect. I wrote about this previously in <a href="/posts/even-more-cromulent-words/#miscellany">Even More Cromulent Words</a></li>
</ul>
<br>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox">Banach–Tarski paradox</a> — cut a solid sphere into five pieces, reassemble them into <em>two</em> spheres identical to the original.</li>
<li><a href="https://en.wikipedia.org/wiki/Klein_bottle">Klein bottle</a> — a surface with no inside or outside; a bottle whose neck passes through its own wall. I happen to have an amazing one on my shelf that was made by the brilliant <a href="https://www.kleinbottle.com/">Clifford Stoll</a>.</li>
</ul>
<hr>
<h2 id="conclusion">Conclusion</h2>
<figure style="text-align:center; margin:1em auto;">
  <div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
        <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Am7EwmxBAW8?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
      </div>

  <figcaption style="font-size:85%; color:#666; line-height:1.4; margin-top:0.4em;">
    <em>NASA - Spaceflight: the Application of Orbital Mechanics. I thought I'd end with something soothing</em>
  </figcaption>
</figure>
<br>
<p>And with that, I&rsquo;ll call writer&rsquo;s block defeated! Thanks for scrolling and stay tuned for more! As always you can reach me at <a href="mailto:feedback@adminjitsu.com">feedback@adminjitsu.com</a></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
