<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0"><channel><title>screenager</title><description>I build whatever I’m curious about to see how it works, then write down what happened.</description><link>https://screenager.dev/</link><item><title>A typeface from one letter</title><link>https://screenager.dev/blog/a-typeface-from-one-letter/</link><guid isPermaLink="true">https://screenager.dev/blog/a-typeface-from-one-letter/</guid><description>A tiny model, trained on 2,806 open-source typefaces, that draws a whole alphabet from one letter, right here on your CPU. The first version lost to a lookup table. The second reads your letter, checks its own work, and says how sure it is.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Everything falls into step</title><link>https://screenager.dev/blog/everything-falls-into-step/</link><guid isPermaLink="true">https://screenager.dev/blog/everything-falls-into-step/</guid><description>Clapping crowds, two clocks on a wall, a riverbank of fireflies, a bridge in London and a rack of routers all do the same strange thing without being told. Nature wants it. Computers really don’t.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Why can’t you zip a zip?</title><link>https://screenager.dev/blog/why-you-cant-zip-a-zip/</link><guid isPermaLink="true">https://screenager.dev/blog/why-you-cant-zip-a-zip/</guid><description>I zipped a folder, it got seven times smaller, so I zipped it again. It got bigger. A tour of how compression actually works, from Morse code to the pigeonhole principle.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Anatomy of a page</title><link>https://screenager.dev/blog/anatomy-of-a-page/</link><guid isPermaLink="true">https://screenager.dev/blog/anatomy-of-a-page/</guid><description>A dissection of the page you’re reading, top to bottom: the night above it, the grid under it, the type, the code, the maths, the figures, and every small thing a post here can do.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate></item><item><title>What actually happens when you press ^C?</title><link>https://screenager.dev/blog/what-actually-happens-when-you-press-ctrl-c/</link><guid isPermaLink="true">https://screenager.dev/blog/what-actually-happens-when-you-press-ctrl-c/</guid><description>You know that moment when magic becomes real? This is about that moment: the kernel subsystem that turns two keys into a signal.</description><pubDate>Sun, 19 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Nerds like to ping</title><link>https://screenager.dev/blog/why-ping-is-a-masterpiece-of-network-diagnostics/</link><guid isPermaLink="true">https://screenager.dev/blog/why-ping-is-a-masterpiece-of-network-diagnostics/</guid><description>The most powerful network diagnostic tool you’ll ever use is 1,000 lines of code written in a single evening in 1983.</description><pubDate>Fri, 17 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Git diff is just LCS</title><link>https://screenager.dev/blog/diff-algorithm-hunt-mcilroy/</link><guid isPermaLink="true">https://screenager.dev/blog/diff-algorithm-hunt-mcilroy/</guid><description>Every CS student grinds LCS problems on LeetCode. But do they know it powers git diff? A deep dive into the Hunt–McIlroy algorithm and why your DSA practice is more relevant than Twitter debates suggest.</description><pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate></item><item><title>Programming L-caches</title><link>https://screenager.dev/blog/l3-cache/</link><guid isPermaLink="true">https://screenager.dev/blog/l3-cache/</guid><description>A practical guide to CPU caches, sparked by a slow laptop. How simple changes to your loops and data structures can dramatically speed up your code.</description><pubDate>Fri, 26 Sep 2025 00:00:00 GMT</pubDate></item></channel></rss>