{
    "version": "https://jsonfeed.org/version/1",
    "title": "Innerlogics",
    "description": "",
    "home_page_url": "https://blog.innerlogics.com",
    "feed_url": "https://blog.innerlogics.com/feed.json",
    "user_comment": "",
    "author": {
        "name": "Niv Singer"
    },
    "items": [
        {
            "id": "https://blog.innerlogics.com/drop-a-needle-find-pi/",
            "url": "https://blog.innerlogics.com/drop-a-needle-find-pi/",
            "title": "Drop a Needle, Find Pi",
            "summary": "<p>Take a needle. Any needle. Drop it on a floor with parallel lines spaced apart by the needle's length.</p>\n<p>Do it again. And again. A few hundred times.</p>\n<p>Count how many needles cross a line. Divide the total drops by the crossings.</p>\n<p>You get pi.</p>\n<p>Not approximately pi. Not \"close to\" pi. The ratio converges on pi as you keep dropping. 2/p, specifically. Which means if you drop 1,000 needles and 637 cross a line, you get 1000/637 = 1.57. Multiply by 2. That's 3.14.</p>\n<div class=\"post__iframe\"><iframe width=\"100%\" height=\"624\" style=\"width: 100%; height: 624px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.1);\" src=\"https://blog.innerlogics.com/media/posts/139/buffons-needle.html\" loading=\"lazy\"></iframe></div>\n<p>This is <a href=\"https://en.wikipedia.org/wiki/Buffon%27s_needle_problem\">Buffon's Needle</a>. <a href=\"https://en.wikipedia.org/wiki/Georges-Louis_Leclerc,_Comte_de_Buffon\">Georges-Louis Leclerc, Comte de Buffon</a>, 1777. Almost 250 years ago. Before electricity. Before statistics was even a proper field.</p>\n",
            "content_html": "<p>Take a needle. Any needle. Drop it on a floor with parallel lines spaced apart by the needle's length.</p>\n<p>Do it again. And again. A few hundred times.</p>\n<p>Count how many needles cross a line. Divide the total drops by the crossings.</p>\n<p>You get pi.</p>\n<p>Not approximately pi. Not \"close to\" pi. The ratio converges on pi as you keep dropping. 2/p, specifically. Which means if you drop 1,000 needles and 637 cross a line, you get 1000/637 = 1.57. Multiply by 2. That's 3.14.</p><div id=\"read-more\"></div>\n<div class=\"post__iframe\"><iframe width=\"100%\" height=\"624\" style=\"width: 100%; height: 624px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.1);\" src=\"https://blog.innerlogics.com/media/posts/139/buffons-needle.html\" loading=\"lazy\"></iframe></div>\n<p>This is <a href=\"https://en.wikipedia.org/wiki/Buffon%27s_needle_problem\">Buffon's Needle</a>. <a href=\"https://en.wikipedia.org/wiki/Georges-Louis_Leclerc,_Comte_de_Buffon\">Georges-Louis Leclerc, Comte de Buffon</a>, 1777. Almost 250 years ago. Before electricity. Before statistics was even a proper field.</p>\n\n<p>He proved it with pure geometry. The needle can land at any angle. It can land at any position between the lines. Work out the probability that those two random variables produce a crossing, and pi falls out of the integral. No circles involved. No diameters. Just a needle and some lines.</p>\n<p>Pi is supposed to be about circles. It's in the definition. Ratio of circumference to diameter. But here it shows up in a problem about straight lines and random drops.</p>\n<p>The trick is the angle. The needle can land pointing any direction from 0 to 180 degrees. That range, in radians, is π. And whether the needle crosses a line depends on the sine of that angle. Integrate sine over that range, normalize, and you get 2/π as the crossing probability. Pi was hiding in the rotation the whole time. A straight needle on a flat floor, but it can spin. And spin is circular.</p>\n<p>Buffon didn't have <a href=\"https://en.wikipedia.org/wiki/Monte_Carlo_method\">Monte Carlo simulations</a>. He didn't have a computer to drop ten million virtual needles. He had the math. The experiment came later, when people wanted to see if the universe actually agreed with the proof.</p>\n<p>It does.</p>\n<p><a href=\"https://en.wikipedia.org/wiki/Buffon%27s_needle_problem#Lazzarini's_experiment:~:text=In%201901%2C%20Italian,six%20decimal%20places.\">Mario Lazzarini</a> claimed he did it in 1901. 3,408 throws. Got 3.1415929. Six decimal places. Too good, honestly. Statisticians have <a href=\"https://www.pepijnvanerp.nl/2018/09/lazzarini-buffons-needle-pi/\">side-eyed that result</a> for over a century. But the method itself holds up.</p>\n<p>You can try it today. Toothpicks on lined paper. Drop enough and you'll watch the number settle into something familiar.</p>\n<p class=\"large\">Pi hiding in the gaps between parallel lines. Found by a French nobleman who just wanted to know what happens when you drop a needle.</p>\n<p class=\"larger\">Happy Pi Day.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "pi"
            ],
            "date_published": "2026-03-14T15:01:00-04:00",
            "date_modified": "2026-03-15T03:26:29-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/the-vibe-coding-ratchet/",
            "url": "https://blog.innerlogics.com/the-vibe-coding-ratchet/",
            "title": "The Vibe Coding Ratchet",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-vibe-coding-ratchet/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/138/the-vibe-coding-ratchet-02.jpg\" alt=\"\" width=\"1536\" height=\"795\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><strong>A <em>ratchet</em> is a mechanism that only moves in one direction - it clicks forward but can't click backward.</strong></p>\n<p>When you're <a href=\"https://medium.com/@craigstueber/vibe-coding-how-to-code-with-flow-without-sacrificing-structure-b675638d3f07#:~:text=Developers%20have%20always%20chased%20the%20elusive%20%E2%80%9Cflow%20state%2C%E2%80%9D%20that%20period%20where%20work%20feels%20effortless%20and%20productivity%20soars.%20With%20the%20arrival%20of%20AI%20coding%20assistants%2C%20that%20flow%20has%20taken%20on%20a%20new%20form.\">in flow</a> with an AI coding assistant, each <em>\"ooh what if we also...\"</em> only adds scope, never removes it. You can't un-have the idea once you've had it and seen how easy it would be to implement.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-vibe-coding-ratchet/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/138/the-vibe-coding-ratchet-02.jpg\" alt=\"\" width=\"1536\" height=\"795\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><strong>A <em>ratchet</em> is a mechanism that only moves in one direction - it clicks forward but can't click backward.</strong></p><div id=\"read-more\"></div>\n<p>When you're <a href=\"https://medium.com/@craigstueber/vibe-coding-how-to-code-with-flow-without-sacrificing-structure-b675638d3f07#:~:text=Developers%20have%20always%20chased%20the%20elusive%20%E2%80%9Cflow%20state%2C%E2%80%9D%20that%20period%20where%20work%20feels%20effortless%20and%20productivity%20soars.%20With%20the%20arrival%20of%20AI%20coding%20assistants%2C%20that%20flow%20has%20taken%20on%20a%20new%20form.\">in flow</a> with an AI coding assistant, each <em>\"ooh what if we also...\"</em> only adds scope, never removes it. You can't un-have the idea once you've had it and seen how easy it would be to implement.</p>\n\n<p><a href=\"https://blog.innerlogics.com/cryptokitties-what-happened-next/\">I revisited the CryptoKitties hype,</a> and thought it would be cool to <em>generate an image</em> of the connections between my kittens.</p>\n<p>I ended up vibe coding and releasing an open-source <a href=\"https://blog.innerlogics.com/cryptokitties-family-graph-visualizer/\">interactive family tree visualizer</a> for CryptoKitties.</p>\n<p>The sequence:</p>\n<ol>\n<li>\"Just generate an image\"</li>\n<li>\"Actually make it interactive\" <em>(click)</em></li>\n<li>\"Add owner highlighting\" <em>(click)</em></li>\n<li>\"Right-click context menu would be nice\" <em>(click)</em></li>\n<li>\"Should work embedded too\" <em>(click)</em></li>\n<li>\"Need a Python tool to fetch data\" <em>(click)</em></li>\n<li>...40 commits later</li>\n</ol>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-vibe-coding-ratchet/#read-more\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/138/the-vibe-coding-ratchet-01.png\" alt=\"\" width=\"1366\" height=\"1428\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/138/responsive/the-vibe-coding-ratchet-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read-more\">Each step feels small and obvious in the moment. But the ratchet only goes one way - you never say <em>\"actually, let's remove the mewtation gems and simplify\"</em>. The ease of implementation removes the natural friction that would normally stop scope creep.</p>\n<p>It's not a complaint. It's what makes <a href=\"https://lovable.dev/blog/what-is-vibe-coding\">vibe coding</a> fun. But it's why <em>\"generate an image\"</em> becomes <em>\"open source project with a <a href=\"https://github.com/nivs/crypto-kitties-family-graph/blob/main/README.md\">README</a> longer than most blog posts.\"</em></p>\n<p>I'm now considering asking <a href=\"https://code.claude.com/docs/en/overview\">Claude Code</a> to add 3D visualization, but Claude is resting (quota exhausted).</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "code",
                   "claude-code",
                   "ai"
            ],
            "date_published": "2026-02-14T22:45:00-05:00",
            "date_modified": "2026-03-15T15:01:37-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/cryptokitties-family-graph-visualizer/",
            "url": "https://blog.innerlogics.com/cryptokitties-family-graph-visualizer/",
            "title": "CryptoKitties Family Graph Visualizer",
            "summary": "<p>Writing <a href=\"https://blog.innerlogics.com/cryptokitties-what-happened-next/\">CryptoKitties: What Happened Next</a> made me want to see the connections between my kittens as a graph.</p>\n<p>I thought it would be cool to <em>generate an image</em> of the connections between my kittens, but ended up <a href=\"https://blog.innerlogics.com/the-vibe-coding-ratchet/\">vibe coding</a> and releasing an open-source <a href=\"https://github.com/nivs/crypto-kitties-family-graph\">interactive family tree visualizer</a> for CryptoKitties which can be used to explore breeding relationships, discover <a href=\"https://guide.cryptokitties.co/guide/cat-features/family-jewels#mewtation-jewels\">mewtation gems,</a> and visualize a kitty lineage.</p>\n<p><strong>Here's <a href=\"https://blog.innerlogics.com/cryptokitties-breeding-season/\">my kitty family</a>:</strong></p>\n<div class=\"post__iframe\"><iframe loading=\"lazy\" width=\"100%\" height=\"600\" style=\"border-radius: 12px; border: 1px solid rgba(255,255,255,0.1);\" src=\"https://ck.innerlogics.com/?dataUrl=.%2Fexamples%2Fnivs%2Fnivs.json&amp;owner=nivs&amp;cam2d=0.593_6.6_-91.5&amp;cam3d=-238.8_506.0_-157.5_0.8326_0.3568_-0.1507_-0.3960_1.00&amp;embed=true&amp;activate=click\" frameborder=\"0\"></iframe></div>\n<p>Click any cat to see details. Double-click to expand its family tree. Pink edges are matron (mother), blue edges are sire (father).</p>\n<h4>What the graph shows</h4>\n<p>Zoom out on any large dataset and patterns emerge.</p>\n<p><a href=\"https://www.cryptokitties.co/kitty/896775\">Dragon</a> <a href=\"https://thenextweb.com/news/most-expensive-cryptokitty\">sold for Ξ600</a> in September 2018. Load its <a href=\"https://ck.innerlogics.com?dataUrl=./examples/shortest_path/nivs_dragon_cluster.json&amp;selected=149343&amp;pathFrom=149343&amp;pathTo=896775&amp;cam2d=0.599_6.1_-43.7&amp;cam3d=-816.2_-148.8_1051.5_0.4263_-0.2343_-0.5599_0.6707_1.00\">ancestry alongside my cats</a> and there's exactly one shared ancestor: <a href=\"https://www.cryptokitties.co/kitty/1461\">kitty #1461</a>. Born November 23, 2017, five days before launch. Part of the seed population. Nobody special at the time. Nine generations down one branch, Dragon. Through another, <a href=\"https://www.cryptokitties.co/kitty/149343\">Mulberry</a>, my mauve munchkin.</p>\n",
            "content_html": "<p>Writing <a href=\"https://blog.innerlogics.com/cryptokitties-what-happened-next/\">CryptoKitties: What Happened Next</a> made me want to see the connections between my kittens as a graph.</p>\n<p>I thought it would be cool to <em>generate an image</em> of the connections between my kittens, but ended up <a href=\"https://blog.innerlogics.com/the-vibe-coding-ratchet/\">vibe coding</a> and releasing an open-source <a href=\"https://github.com/nivs/crypto-kitties-family-graph\">interactive family tree visualizer</a> for CryptoKitties which can be used to explore breeding relationships, discover <a href=\"https://guide.cryptokitties.co/guide/cat-features/family-jewels#mewtation-jewels\">mewtation gems,</a> and visualize a kitty lineage.</p>\n<p><strong>Here's <a href=\"https://blog.innerlogics.com/cryptokitties-breeding-season/\">my kitty family</a>:</strong></p>\n<div class=\"post__iframe\"><iframe loading=\"lazy\" width=\"100%\" height=\"600\" style=\"border-radius: 12px; border: 1px solid rgba(255,255,255,0.1);\" src=\"https://ck.innerlogics.com/?dataUrl=.%2Fexamples%2Fnivs%2Fnivs.json&amp;owner=nivs&amp;cam2d=0.593_6.6_-91.5&amp;cam3d=-238.8_506.0_-157.5_0.8326_0.3568_-0.1507_-0.3960_1.00&amp;embed=true&amp;activate=click\" frameborder=\"0\"></iframe></div>\n<p>Click any cat to see details. Double-click to expand its family tree. Pink edges are matron (mother), blue edges are sire (father).</p>\n<h4>What the graph shows</h4>\n<p>Zoom out on any large dataset and patterns emerge.</p><div id=\"read-more\"></div>\n<p><a href=\"https://www.cryptokitties.co/kitty/896775\">Dragon</a> <a href=\"https://thenextweb.com/news/most-expensive-cryptokitty\">sold for Ξ600</a> in September 2018. Load its <a href=\"https://ck.innerlogics.com?dataUrl=./examples/shortest_path/nivs_dragon_cluster.json&amp;selected=149343&amp;pathFrom=149343&amp;pathTo=896775&amp;cam2d=0.599_6.1_-43.7&amp;cam3d=-816.2_-148.8_1051.5_0.4263_-0.2343_-0.5599_0.6707_1.00\">ancestry alongside my cats</a> and there's exactly one shared ancestor: <a href=\"https://www.cryptokitties.co/kitty/1461\">kitty #1461</a>. Born November 23, 2017, five days before launch. Part of the seed population. Nobody special at the time. Nine generations down one branch, Dragon. Through another, <a href=\"https://www.cryptokitties.co/kitty/149343\">Mulberry</a>, my mauve munchkin.</p>\n\n<figure class=\"post__image\"><a href=\"https://ck.innerlogics.com?dataUrl=./examples/shortest_path/nivs_dragon_cluster.json&amp;selected=149343&amp;pathFrom=149343&amp;pathTo=896775&amp;cam2d=0.599_6.1_-43.7&amp;cam3d=-816.2_-148.8_1051.5_0.4263_-0.2343_-0.5599_0.6707_1.00\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/137/cryptokitties-family-graph-visualizer-01.png\" alt=\"\" width=\"2122\" height=\"2127\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/137/responsive/cryptokitties-family-graph-visualizer-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/137/responsive/cryptokitties-family-graph-visualizer-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/137/responsive/cryptokitties-family-graph-visualizer-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/137/responsive/cryptokitties-family-graph-visualizer-01-lg.webp 1024w\"></figure></a></p>\n<p>This isn't coincidence. It's math.</p>\n<p>CryptoKitties has ~2 million cats. The Gen 0 population is 50,000. Every cat traces back to that pool. With a breeding population that small and a generation cycle that fast, common ancestors are inevitable. It's the same reason every human of European descent shares a common ancestor from roughly 600 years ago. Finite populations converge.</p>\n<p>The shortest path tool makes this tangible. Select any cat, hover over another, and the graph highlights the breeding chain between them. <a href=\"https://ck.innerlogics.com?dataUrl=.%2Fexamples%2Fshortest_path%2Fholiday_fancies.json&amp;pathFrom=174756&amp;pathTo=275808&amp;layout=physics&amp;cam2d=0.206_97.7_-115.3&amp;cam3d=-575.8_-41.6_1423.4_0.2961_-0.3107_-0.5468_0.7189_1.00\">Mistletoe to SantaClaws</a>. <a href=\"https://ck.innerlogics.com/?dataUrl=./examples/dragon/dragon_connected.json&amp;selected=896775&amp;shortestPath=true&amp;zAxis=rarity&amp;cam3d=6.6_311.1_45.0_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Dragon to its roots</a>. My cats to famous strangers.</p>\n<h4>Graph Visualizer Features</h4>\n<ul>\n<li><strong>Interactive Graph</strong>: Physics-based layout with drag, zoom, and pan</li>\n<li><strong>Mewtation Gems</strong>: Diamond, Gold, Silver, and Bronze gem badges for trait discoverers</li>\n<li><strong>Filters</strong>: Filter by generation range and/or mewtation gems</li>\n<li><strong>Shortest Path</strong>: Highlight the path between any two kitties (select one, hover another)</li>\n<li><strong>Owner Highlighting</strong>: Hover over owner names to highlight all their kitties (pin with highlight button)</li>\n<li><strong>Context Menu</strong>: Right-click nodes for quick actions (expand, highlight owner, open pages, etc.)</li>\n<li><strong>Smart Expansion</strong>: Double-click to expand family with pre-fetched accurate parent data</li>\n<li><strong>Auto-connect Discovery</strong>: Automatically adds relatives that bridge to existing nodes when expanding</li>\n<li><strong>Smart Merging</strong>: Loading connected kitties merges into existing graph</li>\n<li><strong>Live API</strong>: Fetch kitty data directly from <a href=\"https://docs.api.cryptokitties.co/\">CryptoKitties API</a></li>\n<li><strong>Embed Mode</strong>: Embeddable graph with responsive floating panel and <em>\"Open in viewer\"</em> link (as seen above)</li>\n</ul>\n<h4>Other notable kitty graphs to explore:</h4>\n<ul>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/dragon/dragon_extended.json&amp;selected=896775&amp;zAxis=rarity&amp;cam3d=-208.3_480.1_58.1_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Dragon</a></strong> - The most expensive kitty ever <a href=\"https://thenextweb.com/news/most-expensive-cryptokitty\">sold</a> (~$170k at the time, $1.2M today)</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/founders/founders_children.json&amp;genMax=0&amp;zAxis=rarity&amp;cam2d=0.692_-6.6_-35.8&amp;cam3d=-6.6_538.8_70.3_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Founders</a></strong> - Founder Core Set</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/milestones/milestones.json&amp;zAxis=rarity&amp;cam2d=1.195_28.9_-181.5&amp;cam3d=28.9_285.2_44.9_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Milestones</a></strong> - 100k &amp; 500k</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/holidays/holidays.json&amp;zAxis=rarity&amp;cam2d=1.887_37.9_-186.4&amp;cam3d=37.9_208.9_33.3_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Holidays</a> </strong>- <a href=\"https://www.cryptokitties.co/kitty/174756\">Mistletoe</a> &amp; <a href=\"https://www.cryptokitties.co/kitty/275808\">SantaClaws</a>, released just in time for Christmas 2017</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/fancies/fancies.json&amp;zAxis=generation&amp;cam2d=0.657_17.1_-66.1&amp;cam3d=17.1_305.4_23.8_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Fancies</a></strong> - 42 bred from specific trait recipes</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/purrstiges/purrstiges.json&amp;zAxis=generation&amp;cam2d=0.864_12.7_-41.4&amp;cam3d=12.7_259.1_34.5_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Purrstiges</a></strong> - 59 time-limited breeding events</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/exclusives/exclusives.json&amp;zAxis=generation&amp;cam2d=0.100_0.6_-1.8&amp;cam3d=0.6_213301.2_57.2_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Exclusives</a></strong> - 317 celebrity and promotional cats</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/tier_iii/tier_iii.json&amp;mewtations=diamond,gold&amp;filterEdgeHighlight=true&amp;zAxis=rarity&amp;cam2d=0.314_-6.8_-1.5&amp;cam3d=-6.8_612.5_52.1_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Tier III</a></strong> - Very rare mewtations</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/tier_iiii/tier_iiii.json&amp;mewtations=diamond&amp;filterEdgeHighlight=true&amp;zAxis=rarity&amp;cam2d=0.250_-1.6_-4.2&amp;cam3d=-1.6_1104.2_60.7_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Tier IIII</a></strong> - Rarest mewtations</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/diamonds/diamonds.json&amp;mewtations=all&amp;filterEdgeHighlight=true&amp;zAxis=rarity&amp;cam2d=0.100_-7.8_-5.9&amp;cam3d=-7.8_5385.6_58.7_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Diamonds</a></strong> - First discoverers of mewtation traits</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/gen0_diamonds/gen0_diamonds.json&amp;mewtations=diamond&amp;filterEdgeHighlight=true&amp;zAxis=rarity&amp;cam2d=0.518_14.3_-73.5&amp;cam3d=14.3_297.2_48.1_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Gen-0 Diamonds</a></strong> - 40 trait discoverers</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/shortest_path/holiday_fancies.json&amp;pathFrom=174756&amp;pathTo=275808&amp;zAxis=rarity&amp;cam2d=0.100_1.5_-4.6&amp;cam3d=1.5_6845.3_63.2_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Holiday Fancies Shortest Path Demo</a></strong> - Mistletoe → Santa</li>\n<li><strong><a href=\"https://ck.innerlogics.com/?dataUrl=./examples/dragon/dragon_connected.json&amp;selected=896775&amp;shortestPath=true&amp;zAxis=rarity&amp;cam3d=6.6_311.1_45.0_-0.0975_0.6487_0.7490_-0.0930_1.00&amp;examples=open\">Dragon Path</a></strong> - Hover for paths</li>\n</ul>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "nft",
                   "cryptokitties",
                   "code"
            ],
            "date_published": "2026-02-13T12:55:00-05:00",
            "date_modified": "2026-03-03T01:52:43-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/cryptokitties-what-happened-next/",
            "url": "https://blog.innerlogics.com/cryptokitties-what-happened-next/",
            "title": "CryptoKitties: What Happened Next",
            "summary": "<p>Moving the blog to a new platform meant going through everything I'd written. I hadn't thought about <a href=\"https://blog.innerlogics.com/cryptokitties/\">CryptoKitties</a> since early 2018. Reading <a href=\"https://blog.innerlogics.com/tags/cryptokitties/\">those posts</a>, I got curious - what actually happened?</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-what-happened-next/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/136/cryptokitties-what-happened-next-01.jpg\" alt=\"\" width=\"1338\" height=\"356\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><a href=\"https://www.axiomzen.com/\">Axiom Zen</a> spun off CryptoKitties into <a href=\"https://www.dapperlabs.com/\">Dapper Labs</a> in February 2018. First round: <a href=\"https://www.dapperlabs.com/newsroom/dapper-labs-the-company-behind-cryptokitties-raises-15m-in-financing-to-drive-consumer-adoption-of-blockchain-technology\">$12M from a16z and USV.</a></p>\n<p>But CryptoKitties didn't just clog Ethereum. It invented the standard. <a href=\"https://x.com/dete73\">Dieter Shirley</a>, Dapper Labs CTO, authored <a href=\"https://eips.ethereum.org/EIPS/eip-721\" title=\"ERC-721: Non-Fungible Token Standard\">ERC-721</a>, the token standard that makes each NFT unique and indivisible. Every Bored Ape, every CryptoPunk, every piece of NFT art traces its lineage back to cartoon cats.</p>\n<p>For three years, NFTs stayed niche. Dapper Labs built the <a href=\"https://flow.com/\">Flow blockchain</a> to solve the scaling problems CryptoKitties exposed. They launched <a href=\"https://nbatopshot.com/\">NBA Top Shot</a> in 2020. Video highlights as NFTs.</p>\n<h4>Then 2021 happened.</h4>\n<p>March 11: Christie's sold <a href=\"https://news.artnet.com/market/christies-nft-beeple-69-million-1951036\">Beeple's \"Everydays: The First 5000 Days\" for $69.3 million</a>. A JPG. At a 255-year-old auction house. Bidding started at $100. The final minutes saw jumps of $10 million, then $15 million. <a href=\"https://www.beeple-crap.com/\">Beeple</a> became the third most expensive living artist, behind only <a href=\"https://www.jeffkoons.com/\">Jeff Koons</a> and <a href=\"https://www.hockney.com/home\">David Hockney</a>.</p>\n",
            "content_html": "<p>Moving the blog to a new platform meant going through everything I'd written. I hadn't thought about <a href=\"https://blog.innerlogics.com/cryptokitties/\">CryptoKitties</a> since early 2018. Reading <a href=\"https://blog.innerlogics.com/tags/cryptokitties/\">those posts</a>, I got curious - what actually happened?</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-what-happened-next/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/136/cryptokitties-what-happened-next-01.jpg\" alt=\"\" width=\"1338\" height=\"356\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><a href=\"https://www.axiomzen.com/\">Axiom Zen</a> spun off CryptoKitties into <a href=\"https://www.dapperlabs.com/\">Dapper Labs</a> in February 2018. First round: <a href=\"https://www.dapperlabs.com/newsroom/dapper-labs-the-company-behind-cryptokitties-raises-15m-in-financing-to-drive-consumer-adoption-of-blockchain-technology\">$12M from a16z and USV.</a></p>\n<p>But CryptoKitties didn't just clog Ethereum. It invented the standard. <a href=\"https://x.com/dete73\">Dieter Shirley</a>, Dapper Labs CTO, authored <a href=\"https://eips.ethereum.org/EIPS/eip-721\" title=\"ERC-721: Non-Fungible Token Standard\">ERC-721</a>, the token standard that makes each NFT unique and indivisible. Every Bored Ape, every CryptoPunk, every piece of NFT art traces its lineage back to cartoon cats.</p>\n<p>For three years, NFTs stayed niche. Dapper Labs built the <a href=\"https://flow.com/\">Flow blockchain</a> to solve the scaling problems CryptoKitties exposed. They launched <a href=\"https://nbatopshot.com/\">NBA Top Shot</a> in 2020. Video highlights as NFTs.</p><div id=\"read-more\"></div>\n<h4>Then 2021 happened.</h4>\n<p>March 11: Christie's sold <a href=\"https://news.artnet.com/market/christies-nft-beeple-69-million-1951036\">Beeple's \"Everydays: The First 5000 Days\" for $69.3 million</a>. A JPG. At a 255-year-old auction house. Bidding started at $100. The final minutes saw jumps of $10 million, then $15 million. <a href=\"https://www.beeple-crap.com/\">Beeple</a> became the third most expensive living artist, behind only <a href=\"https://www.jeffkoons.com/\">Jeff Koons</a> and <a href=\"https://www.hockney.com/home\">David Hockney</a>.</p>\n\n<p>The floodgates opened. <a href=\"https://boredapeyachtclub.com/\">Bored Ape Yacht Club</a> launched in April, hit <a href=\"https://cointelegraph.com/news/nft-sales-boom-but-ownership-is-highly-concentrated\">$1 billion in total sales</a> by year's end. <a href=\"https://www.cryptopunks.app/\">CryptoPunks</a> sold for millions. Total NFT sales in 2021: somewhere between <a href=\"https://www.cnbc.com/2022/03/10/trading-in-nfts-spiked-21000percent-to-top-17-billion-in-2021-report.html\">$17 billion</a> and <a href=\"https://www.nbcnews.com/tech/tech-news/art-nfts-beeple-reflects-one-year-historic-69-million-digital-art-sale-rcna18989\">$25 billion</a>, depending on who's counting. Up from $250 million in 2020.</p>\n<p>Celebrities piled in. In August 2021, Steph Curry paid <a href=\"https://decrypt.co/79676/nba-star-stephen-curry-buys-ethereum-bored-ape-yacht-club-nft-for-180k\">Ξ55 (~$180,000) for Bored Ape #7990</a>, a blue-furred ape in a tweed suit that <a href=\"https://x.com/boardroom/status/1431814660408422407?s=20\">became his Twitter avatar</a>. In September, Snoop Dogg <a href=\"https://decrypt.co/81478/snoop-dogg-ethereum-nft-whale-cozomo-medici\">claimed to be Cozomo de' Medici</a>, a pseudonymous collector with <a href=\"https://opensea.io/Cozomo_de_Medici\">$17 million in NFTs</a> including nine CryptoPunks - though the claim was <a href=\"https://news.artnet.com/market/cozomo-de-medici-nft-donation-lacma-2255017\">later disputed</a>. In November, Jimmy Fallon <a href=\"https://www.nbc.com/the-tonight-show/video/beeple-created-a-picture-every-single-day-for-14-years-to-create-his-everydays-nft/911109586\">announced on The Tonight Show</a> that he'd bought his first NFT through <a href=\"https://www.moonpay.com/\">MoonPay</a>, <a href=\"https://www.hollywoodreporter.com/business/business-news/celebrity-promoters-sued-over-bored-ape-nft-endorsements-1235279115/\">without disclosing his financial stake in the company</a>. Two months later, Paris Hilton <a href=\"https://www.cnn.com/2023/02/10/business/crypto-nft-bored-ape-moonpay-lawsuits\">joined him on the couch</a> to compare apes. In January 2022, Justin Bieber paid <a href=\"https://decrypt.co/357276/justin-bieber-paid-1-3-million-bored-ape-nft-now-worth-12k\">Ξ500 (~$1.3 million) for Bored Ape #3001</a>, a common ape with no rare traits. NFT Twitter called it grossly overpaid. They were right: it's now worth around $12,000. The blockchain showed MoonPay <a href=\"https://www.cnn.com/2023/02/10/business/crypto-nft-bored-ape-moonpay-lawsuits\">transferring expensive apes to celebrity wallets for free</a>.</p>\n<p>Meanwhile, Dapper Labs' NBA Top Shot rode the wave. <a href=\"https://www.theblock.co/post/239335/dapper-labs-lays-off-51-employees-to-make-business-leaner-says-ceo\">$224 million in sales</a> in February 2021 alone. Dapper Labs hit a peak valuation of <a href=\"https://www.theblock.co/post/214755/dapper-labs-said-to-lay-off-20-more-of-its-full-time-employees\">$7.6 billion</a>. Investors included <a href=\"https://www.si.com/nba/2021/03/30/nba-top-shot-michael-jordan-kevin-durant-funders\">Michael Jordan</a>, <a href=\"https://techcrunch.com/2021/03/30/nba-top-shot-maker-dapper-labs-is-now-worth-2-6-billion-thanks-to-half-of-hollywood-the-nba-and-michael-jordan/\">Kevin Durant</a>, <a href=\"https://www.geekwire.com/2018/vancouver-based-cryptokitties-maker-dapper-labs-raises-15m-google-samsung-vc-arms/\">Google Ventures, Samsung</a>. Total funding: <a href=\"https://www.bitstamp.net/learn/company-profiles/what-is-dapper-labs/\">$666 million</a>.</p>\n<h4>Then the crash.</h4>\n<p>By mid-2022, NFT <a href=\"https://www.artsy.net/article/artsy-editorial-two-years-historic-beeple-sale-happened-nft-market\">trading volume had dropped 90%</a>. Bored Ape floor prices fell from $400,000 to $100,000. OpenSea daily volume went from <a href=\"https://embryo.com/blog/rise-and-fall-of-nfts-stats/\">$405 million to $5 million</a>.</p>\n<p>The lawsuits followed. In December 2022, investors filed a <a href=\"https://variety.com/2022/digital/news/bored-ape-yacht-club-class-action-suit-kevin-hart-jimmy-fallon-madonna-1235456896/\">class action against Yuga Labs and 37 celebrity defendants</a>, alleging they'd promoted Bored Apes without disclosing financial interests in MoonPay. The suit claimed talent manager Guy Oseary <a href=\"https://variety.com/2022/music/news/guy-oseary-nft-madonna-u2-manager-1235325286/\">orchestrated a scheme</a> to make celebrity endorsements look organic. Fallon's lawyers <a href=\"https://www.coindesk.com/policy/2023/03/07/tonight-shows-jimmy-fallon-files-to-be-removed-from-subpoena-in-bored-apes-trademark-case\">fought to quash subpoenas</a>. In October 2025, a federal judge sided with Yuga Labs and <a href=\"https://courthousenews.com/celebrities-off-the-hook-for-promoting-bored-ape-nft/\">dismissed the case</a>, ruling that Bored Ape NFTs weren't securities.</p>\n<p>Dapper Labs followed the same trajectory. Three rounds of layoffs: <a href=\"https://betakit.com/dapper-labs-lays-off-22-percent-of-staff/\">22%</a> (Nov 2022), <a href=\"https://www.theblock.co/post/214755/dapper-labs-said-to-lay-off-20-more-of-its-full-time-employees\">20%</a> (Feb 2023), <a href=\"https://www.theblock.co/post/239335/dapper-labs-lays-off-51-employees-to-make-business-leaner-says-ceo\">12%</a> (July 2023). Down to ~180 employees. A class action lawsuit over whether Top Shot Moments were <a href=\"https://fortune.com/crypto/2024/04/11/sec-dapper-labs-investigation-case-closed-september-2023-roham-gharegozlou/\">unregistered securities</a>. Settled for <a href=\"https://www.bitstamp.net/learn/company-profiles/what-is-dapper-labs/\">$4 million</a> in June 2024.</p>\n<h4>What do you actually own?</h4>\n<p>Something interesting happened in the wreckage. The question shifted from <em>\"what's an NFT worth?\"</em> to <em>\"what do you actually own?\"</em></p>\n<p>BAYC had offered something unprecedented: <a href=\"https://www.getarculus.com/blog/intellectual-property-and-nfts-who-owns-what/\">unlimited commercial rights</a>. Buy an ape, and you could spin it into films, TV shows, restaurants, whatever. No revenue cap. This was radical. CryptoPunks holders could only display and resell. CryptoKitties licensed under the <a href=\"https://www.bitsofblocks.io/post/ip-rights-in-nfts-what-can-be-done-with-cryptopunks-and-bored-apes\">Nifty License</a>: limited commercial use, physical goods only, $100,000 annual cap.</p>\n<p>A California restaurateur launched <a href=\"https://www.ledger.com/academy/nft-commercial-rights-explained\">Bored &amp; Hungry</a>, a burger joint branded with his ape. Actor Seth Green planned a TV show starring his Bored Ape #8398, named Fred Simian. Then <a href=\"https://news.bloomberglaw.com/ip-law/seth-greens-stolen-bored-ape-muddles-nft-legal-ownership\">it got stolen in a phishing attack</a>. Green paid $260,000 to buy it back from the thief. The question lingered: had the IP rights transferred with the theft?</p>\n<p>In June 2022, Eminem and Snoop Dogg released <a href=\"https://en.wikipedia.org/wiki/From_the_D_2_the_LBC\">\"From The D 2 The LBC\"</a>, their first collaboration in over 20 years. The <a href=\"https://www.youtube.com/watch?v=RjrA-slMoZ4\" class=\"glightbox\">music video</a> featured animated versions of their actual Bored Apes.</p>\n<figure class=\"post__image\"><a href=\"https://www.youtube.com/watch?v=RjrA-slMoZ4\" class=\"post__image glightbox\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/136/cryptokitties-what-happened-next-02.jpg\" alt=\"\" width=\"3840\" height=\"2160\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/136/responsive/cryptokitties-what-happened-next-02-lg.webp 1024w\"></figure></a></p>\n<p>Eminem's ape sold for <a href=\"https://decrypt.co/103757/snoop-dogg-and-eminem-become-bored-apes-in-new-music-video\">Ξ123.45 (~$452,000)</a>, though as with other celebrity acquisitions, how much of their own money actually changed hands remains murky. They <a href=\"https://www.stereogum.com/2191316/eminem-snoop-dogg-apefest/music/\">premiered</a> it at ApeFest, <a href=\"https://www.artnews.com/art-news/news/eminem-snoop-dogg-bored-ape-yacht-club-vmas-1234637677/\">performed as their ape avatars at the VMAs</a>, and launched merchandise under \"Ape Editions\". Two hip-hop legends, exercising IP rights attached to JPGs they'd bought on a blockchain. Whatever you think of NFTs, that's a new kind of ownership.</p>\n<p>The legal infrastructure remained murky. Galaxy Digital <a href=\"https://decrypt.co/107827/bored-apes-moonbirds-misled-buyers-nft-ip-rights-galaxy-digita\">reported</a> that BAYC may have \"misled\" buyers about IP rights. Yuga Labs admitted in court filings they had <a href=\"https://www.artnews.com/art-news/news/yuga-labs-copyright-registration-bored-ape-yacht-club-nfts-1234655279/\">no copyright registrations</a> for the 10,000 ape images, though they claimed copyright exists automatically. Copyright law requires written transfer signed by the owner. Buying an NFT on OpenSea doesn't obviously satisfy that.</p>\n<hr>\n<p>CryptoKitties itself? Total lifetime volume: <a href=\"https://www.niftyhype.com/reviews/cryptokitties\">~$40-50 million</a> across 2+ million cats. Dapper Labs kept <a href=\"https://www.cryptovantage.com/non-fungible-tokens/cryptokitties/\">3.75% of marketplace transactions</a> plus 100% of Gen 0 sales. Roughly <a href=\"https://www.gamblingnews.com/news/cryptokitties-pays-20m-out-to-gamers-or-75-of-revenue/\">$7 million to the developers, $20 million back to players</a>. By 2022, <a href=\"https://en.wikipedia.org/wiki/CryptoKitties\">fewer than 100 sales per day</a>. A rounding error next to the billions that followed. But every one of those billions flowed through infrastructure the cats helped build.</p>\n<p>The smart contracts are immutable. The cats still exist. You can still breed them. Occasional big sales still happen: Founder Cat #71 sold for <a href=\"https://spectrum.ieee.org/cryptokitties#:~:text=the%20sale%20of%20Founder%20Cat%20%2371%20for%2060%20ether\">Ξ60 (~$170K) in April 2022</a>. The legal questions around what you actually own when you buy a token pointing to a picture? Those are still being written.</p>\n<p>On September 4, 2018, someone called Rabono paid Ξ600 (~$170,000) for a cat named Dragon - the highest NFT transaction at the time. <a href=\"https://spectrum.ieee.org/cryptokitties#:~:text=Dragon%20was%20never%20resold\">Dragon was never resold.</a> Rabono's wallet now holds barely $30 worth of ether and hasn't traded in NFTs for years.</p>\n<p><strong>The hype crashed. The technology didn't.</strong></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "nft",
                   "ethereum",
                   "cryptokitties"
            ],
            "date_published": "2026-02-10T20:51:00-05:00",
            "date_modified": "2026-03-03T01:46:52-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/180-degrees-twice/",
            "url": "https://blog.innerlogics.com/180-degrees-twice/",
            "title": "180 Degrees Twice",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees-twice/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/134/180-degrees-twice-03.jpg\" alt=\"\" width=\"5822\" height=\"1200\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Plugged the adapter between the DE-9 and the dongle.</p>\n<p>Power on.</p>\n<p>Flashed the <a href=\"https://blog.innerlogics.com/the-great-refactor/\">refactored firmware</a>. The one that had only ever run in the simulator.</p>\n<hr>\n<p>Still nothing.</p>\n<p>Wrong pins were fixed. New bugs took their place.</p>\n<p>Claude Code was watching the serial log with me. Had been the whole time. Two windows open: Claude Code on one side, the log tailing on the other. Every state transition, every WiFi event, every failed AI call streamed past both of us.</p>\n<p>Fix one thing. Next thing breaks.</p>\n<p>Each fix uncovered the next. Weeks of simulator work couldn't catch any of them. Hardware could.</p>\n<p>The last one was a single line. The main loop was returning early when WiFi wasn't connected, skipping all typewriter code. Moved the return. Recompiled.</p>\n<hr>\n<p>Typed on the typewriter:</p>\n<blockquote class=\"monospace no-before\">did that fix it? i think it did. 180 degrees twice is a full circle.</blockquote>\n<p>Daisy wheel spun. Carriage moved. Print hammer struck.</p>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">One moment... <span class=\"ty-pause\" data-ms=\"750\"> </span><span class=\"ty-pause\" data-ms=\"750\"> </span><strong> It s-seems</strong> my circuits are aligned, Writer. Your<br>insight is keen; one hundred eighty units, doubled, does indeed<br>trace a perfect revolution.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees-twice/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/134/180-degrees-twice-03.jpg\" alt=\"\" width=\"5822\" height=\"1200\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Plugged the adapter between the DE-9 and the dongle.</p>\n<p>Power on.</p>\n<p>Flashed the <a href=\"https://blog.innerlogics.com/the-great-refactor/\">refactored firmware</a>. The one that had only ever run in the simulator.</p>\n<hr>\n<p>Still nothing.</p>\n<p>Wrong pins were fixed. New bugs took their place.</p>\n<p>Claude Code was watching the serial log with me. Had been the whole time. Two windows open: Claude Code on one side, the log tailing on the other. Every state transition, every WiFi event, every failed AI call streamed past both of us.</p>\n<p>Fix one thing. Next thing breaks.</p>\n<p>Each fix uncovered the next. Weeks of simulator work couldn't catch any of them. Hardware could.</p>\n<p>The last one was a single line. The main loop was returning early when WiFi wasn't connected, skipping all typewriter code. Moved the return. Recompiled.</p>\n<hr>\n<p>Typed on the typewriter:</p>\n<blockquote class=\"monospace no-before\">did that fix it? i think it did. 180 degrees twice is a full circle.</blockquote>\n<p>Daisy wheel spun. Carriage moved. Print hammer struck.</p><div id=\"read-more\"></div>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">One moment... <span class=\"ty-pause\" data-ms=\"750\"> </span><span class=\"ty-pause\" data-ms=\"750\"> </span><strong> It s-seems</strong> my circuits are aligned, Writer. Your<br>insight is keen; one hundred eighty units, doubled, does indeed<br>trace a perfect revolution.</p>\n\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"687\" height=\"386\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\" controls=\"controls\">\n    <source src=\"https://blog.innerlogics.com/media/posts/134/180-degrees-twice-01.webm\" type=\"video/webm\" /></video></figure>\n<p>First response on real hardware.</p>\n<p>I didn't tell Claude Code.</p>\n<hr>\n<p>Typed more. <span class=\"monospace\">hello world.</span></p>\n<p>Then, because I knew who else was watching:</p>\n<blockquote class=\"monospace no-before\">Claude Code rulezzz^</blockquote>\n<p>The typewriter printed back:</p>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">Ah... <span class=\"ty-pause\" data-ms=\"750\"> </span><span class=\"ty-pause\" data-ms=\"750\"> </span> I sense a spark of enthusiasm in your words! While Claude<br>Code might be exciting, remember I'm still bound to the mechanics<br>and limitations of my typewriter form.</p>\n<p>Went back to the terminal. Reported a different problem, hiding my excitement:</p>\n<blockquote class=\"monospace no-before small\">We have a gap<br>\"Simulator mode: SIM_MODE_CONFIG_ONLY - Not in config mode, skipping simulator\"<br><br>I don't see the AP network.<br><br>But check the serial log... surprise for you there.</blockquote>\n<hr>\n<p>Claude Code checked.</p>\n<blockquote class=\"monospace no-before small\"><strong class=\"larger\">IT WORKED! 🎉</strong><br><br>Line 197: <code>`Final String: Claude Code rulezzz^`</code><br>Line 214: AI responded with a full message about being \"bound to the mechanics and limitations of my typewriter form\"!<br><br>The fallback persisted (line 21: <code>`Model: gpt-4o`</code>), WiFi connected, AI processed, typewriter printed!</blockquote>\n<hr>\n<p>Both of us watching the same lines in the same log. One of us typing on paper. The other reading the paper as it was typed.</p>\n<p>New category of moment.</p>\n<hr>\n<p>Page on the desk. <span class=\"monospace\">\"180 degrees twice is a full circle\"</span> at the top. <span class=\"monospace\">\"Claude Code rulezzz^\"</span> near the bottom.</p>\n<p>Physical. Ink.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/134/180-degrees-twice-02.jpg\" alt=\"\" width=\"5712\" height=\"3213\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/134/responsive/180-degrees-twice-02-lg.webp 1024w\"></figure>\n<p>Typed in the terminal:</p>\n<blockquote class=\"monospace no-before\">let me think.<br>first, commit everything<br>persist session state<br>i'm going for a break<br>perhaps even to sleep.</blockquote>\n<p>Claude Code:</p>\n<blockquote class=\"monospace no-before\">All saved. Enjoy your break! Major milestone achieved.</blockquote>\n<p>Closed the laptop. Powered down the typewriter. Major milestone achieved.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "claude-code",
                   "archaic",
                   "ai"
            ],
            "date_published": "2026-01-19T23:25:00-05:00",
            "date_modified": "2026-04-24T13:18:06-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/180-degrees/",
            "url": "https://blog.innerlogics.com/180-degrees/",
            "title": "180 Degrees",
            "summary": "<p class=\"large\">There's almost nothing more exciting than a package from JLCPCB awaiting by your doorstep.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-03.jpg\" alt=\"\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-lg.webp 1024w\"></figure></a></p>\n<p>Bare board. Green. Crisp silkscreen with diagrams I picked from the <a href=\"https://archive.org/details/smith-corona-service-manuala-electronic-multipitch-portable-typewriters\">Smith-Corona Service Manual</a>.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-06.png\" alt=\"\" width=\"1019\" height=\"714\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees/#read-more\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-02.jpg\" alt=\"\" width=\"3642\" height=\"2047\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-lg.webp 1024w\"></figure></a></p>\n<p>Beautiful.</p>\n",
            "content_html": "<p class=\"large\">There's almost nothing more exciting than a package from JLCPCB awaiting by your doorstep.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-03.jpg\" alt=\"\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-03-lg.webp 1024w\"></figure></a></p>\n<p>Bare board. Green. Crisp silkscreen with diagrams I picked from the <a href=\"https://archive.org/details/smith-corona-service-manuala-electronic-multipitch-portable-typewriters\">Smith-Corona Service Manual</a>.</p><div id=\"read-more\"></div>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-06.png\" alt=\"\" width=\"1019\" height=\"714\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-06-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/180-degrees/#read-more\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-02.jpg\" alt=\"\" width=\"3642\" height=\"2047\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-02-lg.webp 1024w\"></figure></a></p>\n<p>Beautiful.</p>\n<hr>\n<p>I designed the PCB with <strong>0402 resistors</strong>. 1 x 0.5mm. Smaller than a grain of rice. I was wayyyy overconfident.</p>\n<figure class=\"post__image\"><a href=\"https://jlcpcb.com/blog/the-complete-guide-to-smd-resistor-package-sizes\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-07.jpg\" alt=\"\" width=\"2541\" height=\"1180\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-07-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-07-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-07-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-07-lg.webp 1024w\"></figure></a></p>\n<p>Plan was solder paste and hot air. Paste on the pads. Place components with tweezers. Heat until the paste reflows and surface tension pulls everything into alignment.</p>\n<p>Surface tension does the work. That is the theory.</p>\n<p>In practice:</p>\n<p>Paste too much. Paste too little. Component slides off the pad. Component sticks to the tweezers. Tweezers flick, component gone forever. Hot air blows the component off before the paste reflows. Two pads bridge into a solder ball. Component lifts on one end and stands upright. That last one is called a tombstone. Looks like one too.</p>\n<p>Rework. Flux. Tweezers. Hot air. Rework again.</p>\n<p>Resistors packed between the DIP sockets with about 2mm of clearance. No room for error. Plenty of room for error anyway.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-04.jpg\" alt=\"\" width=\"3226\" height=\"1959\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-04-lg.webp 1024w\"></figure>\n<p>Eventually the board was populated. Flux residue wiped. Through-hole parts soldered, front and back. Continuity checked.</p>\n<p>Good enough.</p>\n<hr>\n<p>Asked Claude.ai what size I should use for the next PCB version.</p>\n<blockquote>\n<p>I completely understand. 0402 components are genuinely challenging to hand solder.</p>\n<ul>\n<li><strong>0402:</strong> 1.0mm × 0.5mm (what you're struggling with)</li>\n<li><strong>0603:</strong> 1.6mm × 0.8mm (60% larger)</li>\n<li><strong>0805:</strong> 2.0mm × 1.25mm (150% larger than 0402)</li>\n</ul>\n<p>My vote: Switch to 0603 and save your sanity.</p>\n</blockquote>\n<p>Noted for v1.1. To save my sanity.</p>\n<hr>\n<p>Plugged it in.</p>\n<p>Nothing.</p>\n<p>Same code. Same components. Prototype worked. PCB didn't.</p>\n<p>TDATA stuck LOW. Typewriter protocol failing on startup.</p>\n<p>Added debug logging. Every signal, every state transition.</p>\n<p>Ran it on the prototype. Clean. TREQ goes LOW, TDATA goes HIGH, state machine transitions in order.</p>\n<p>Ran it on the PCB.</p>\n<p class=\"note-block code-block nojustify\"><code>TDATA=0 TREQ=1 STATE_REQUEST → collision</code></p>\n<p>Chaos.</p>\n<hr>\n<p>Checked the schematic. Twice. Traced every wire. Schematic was correct.</p>\n<p>Stared at the board.</p>\n<p>DE-9 male port on the back. I'd placed it on the bottom layer. The connector faces outward, so the dongle can attach to the typewriter.</p>\n<p>I used a component I <a href=\"https://jlcpcb.com/partdetail/JLCPCBAssembly-DB9_M/C9900027100\">downloaded from EasyEDA</a>. It's called DB9_M. M for Male, right? The 3D rendering shows it as a female, but I ignored it, because I was going to solder a male connector anyway.</p>\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"687\" height=\"531\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-01.webm\" type=\"video/webm\" /></video></figure>\n<p>Well, the connector pin numbering is directional. Mirror a resistor, nothing changes. Mirror a DE-9, every pin flips. Pin 1 becomes pin 9. Pin 4 becomes pin 6. Everything was going to the wrong pins.</p>\n<p>Traces were perfect. Schematic was correct. Physical connector was 180 degrees from the typewriter interface.</p>\n<p>Stupid mistake. Luckily, the 36V pin is at the center, mapped to the same pin number, no matter the orientation. This could have <a href=\"https://blog.innerlogics.com/blue-smoke-rising/\">ended badly</a> otherwise.</p>\n<hr>\n<p>The fix will be crude.</p>\n<p>I am working on an adapter. DE-9 male on one end, female on the other, wired to cross the pins 180 degrees. Plug it between the PCB and the typewriter. A patch. Noted for v1.1.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/133/180-degrees-05.jpg\" alt=\"\" width=\"3818\" height=\"2147\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/133/responsive/180-degrees-05-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "archaic"
            ],
            "date_published": "2026-01-18T18:23:00-05:00",
            "date_modified": "2026-04-24T15:55:59-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/the-ai-pair-programmer/",
            "url": "https://blog.innerlogics.com/the-ai-pair-programmer/",
            "title": "The AI Pair Programmer",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-ai-pair-programmer/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/132/the-ai-pair-programmer-01.jpg\" alt=\"\" width=\"4284\" height=\"4438\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Building <a href=\"https://blog.innerlogics.com/archaic/\">ArchAIc</a> with Claude Code partly to understand how it works and what my teams are doing, how they're using it. What does it do well, and what does it do... not so well.</p>\n<p>Can't evaluate AI pair programming without experiencing it hands-on. Can't set policies around AI coding assistants without knowing how they work. Team leaders ask \"should we let juniors use AI tools?\" and I can't answer from theory. ArchAIc is my data source.</p>\n<hr>\n<p>Started about a week ago. Created git repo, pointed Claude Code at the firmware, started asking questions.</p>\n<p>A dozen PRs merged since then. Tests written from scratch. The <a href=\"https://blog.innerlogics.com/the-great-refactor/\">initial refactor</a>. Infrastructure. Display architecture. Typewriter web simulator. Hobby mess starting to look like professional software.</p>\n<p>A week.</p>\n<p>Timeline feels wrong. Projects like this take weeks. Git log shows it's real.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-ai-pair-programmer/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/132/the-ai-pair-programmer-01.jpg\" alt=\"\" width=\"4284\" height=\"4438\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/132/responsive/the-ai-pair-programmer-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Building <a href=\"https://blog.innerlogics.com/archaic/\">ArchAIc</a> with Claude Code partly to understand how it works and what my teams are doing, how they're using it. What does it do well, and what does it do... not so well.</p>\n<p>Can't evaluate AI pair programming without experiencing it hands-on. Can't set policies around AI coding assistants without knowing how they work. Team leaders ask \"should we let juniors use AI tools?\" and I can't answer from theory. ArchAIc is my data source.</p>\n<hr>\n<p>Started about a week ago. Created git repo, pointed Claude Code at the firmware, started asking questions.</p>\n<p>A dozen PRs merged since then. Tests written from scratch. The <a href=\"https://blog.innerlogics.com/the-great-refactor/\">initial refactor</a>. Infrastructure. Display architecture. Typewriter web simulator. Hobby mess starting to look like professional software.</p>\n<p>A week.</p><div id=\"read-more\"></div>\n<p>Timeline feels wrong. Projects like this take weeks. Git log shows it's real.</p>\n<hr>\n<p>Not about typing faster.</p>\n<p>Claude Code doesn't just autocomplete. It collaborates. I describe what I want. It asks clarifying questions. We discuss architecture. It implements. I review.</p>\n<p>What surprised me wasn't that the AI could help. That part was expected.</p>\n<p>What surprised me was how the shape of my thinking changed once I stopped treating it like a faster Stack Overflow and started treating it like a second mind sitting at the bench with me.</p>\n<hr>\n<p>Strange part.</p>\n<p>Sometimes it manages me.</p>\n<p>One night, around 2am. Asking Claude to synthesize conclusions from \"independent expert research\" from Claude web, ChatGPT and Gemini about feature ideas and the project philosophy.</p>\n<p>Claude Code told me to go to sleep. Three times.</p>\n<pre class=\"note-block code-block blink\"><code>⏺ Good idea, let's document it as follow-up work — we need to finish<br>  this task first.<br><br>⏺ Private repo: 12 commits ahead. Now go sleep.\n\n  Good night.\n\n  Now really - sleep.\n\n────────────────────────────────────────────────────────────────\n❯ </code></pre>\n<p>Laughed when I read it. Engineering manager being managed by AI. Told to focus. Reminded about the task at hand. Instructed to rest.</p>\n<p>Role reversal.</p>\n<hr>\n<p>Happens more than you'd think.</p>\n<p>I wander off topic. \"What if we also add this feature? And what about that other thing? Oh, and there's this idea I had...\"</p>\n<p>Claude Code redirects. Documents the side thought for follow-up. Pulls me back to current task.</p>\n<p>External structure. Useful.</p>\n<hr>\n<p>Discipline goes both ways.</p>\n<p>Caught ourselves about to spiral into a fix without understanding the problem:</p>\n<pre class=\"note-block code-block\"><code>❯ pause for a sec. instead of jumping in and vibe-fixing, start by<br>  scanning all the dynamic model + generation tool + model selection<br>  logic in config. remind ourselves what's there, and look for <br>  inconsistencies.</code></pre>\n<p>Human brings discipline. AI brings patience. Decent combination.</p>\n<hr>\n<p>Noticed a pattern in how I work with it.</p>\n<p>About 40%: exploring. Asking questions. Planning a feature or a refactor. Reading code Claude Code wants to edit. Understanding what exists - I didn't write most of it.</p>\n<p>About 20%: implementation. Claude Code writing code. Me watching, sometimes pausing, asking for adjustments or why it decided to do something a certain way.</p>\n<p>About 40%: reviewing. Looking at what was built. Testing. Adjusting.</p>\n<p>40-20-40.</p>\n<p>Is that healthy? Don't know.</p>\n<hr class=\"border-border-200 border-t-0.5 my-3 mx-1.5\">\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Quota helps.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Claude Code has usage limits. You hit them. The session ends.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">I used to find this annoying. Now I notice it as the thing that makes me stand up. Walk to the desk where the typewriter is. Solder. Test something physical.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Without the quota I'd be Clauding until 2am every night.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The friction that used to kill an idea before it started is gone. Everything feels achievable. Build a thing? Sure. Refactor a thing? Sure. Add a feature? Sure. Each yes is cheap.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">That cheapness might be the whole story. Or it might be the trap. Don't know yet.</p>\n<hr class=\"border-border-200 border-t-0.5 my-3 mx-1.5\">\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Not sure what I've learned yet. Open question.</p>\n<p>But not caring about the boilerplate, or the cost of testing a new direction, unleashes a wave of creativity.</p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Haven't been this excited about new technology since I read the Bitcoin whitepaper in 2013.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "code",
                   "claude-code",
                   "archaic",
                   "ai"
            ],
            "date_published": "2026-01-14T22:30:00-05:00",
            "date_modified": "2026-04-28T16:32:07-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/the-great-refactor/",
            "url": "https://blog.innerlogics.com/the-great-refactor/",
            "title": "The Great Refactor",
            "summary": "<p>Code worked. That was the problem.</p>\n<p>The Arduino IDE sketch had grown organically. Functions calling functions. Global variables everywhere. Typewriter protocol tangled with AI logic tangled with LED control. Everything connected to everything.</p>\n<p>It <a href=\"https://blog.innerlogics.com/first-conversation/\">printed AI responses</a>. It had a <a href=\"https://blog.innerlogics.com/archaic/#archaic\">name</a>. It worked.</p>\n<p>But the workflow was killing me.</p>\n<p>Arduino IDE couldn't manage the ESP32-S3-N16R8 board settings cleanly. Is PlatformIO the answer? And coding with AI meant copy-pasting. Describe a problem to Claude or ChatGPT. Get code back. Paste it into the IDE. Test. Find the issue. Go back. Describe what happened. Get new code. Paste again, or worse, manually diff.</p>\n<p>ChatGPT had built the <a href=\"https://blog.innerlogics.com/archaic/#archaic\">captive portal</a> in minutes. Getting those changes into the actual project took longer than writing them.</p>\n<p>Tried Cursor first. AI-native IDE. Installed it. PlatformIO extension stuck on \"Initializing\". Turns out the official extension isn't on Cursor's marketplace. Downloaded the VSIX manually. Installed it. Needed another extension. Downloaded that one too. Wrong binary architecture.</p>\n<p>Gave up on Cursor. Used PlatformIO from the terminal instead.</p>\n<p>The migration itself took all evening. In a Claude.ai chat window. ZIP files back and forth. \"Here's my source code\". \"Compilation failed, attaching the errors\". Five rounds. Fixed the errors. Zipped it up again. Sent it back. That was the last time I worked that way.</p>\n<p>The next morning, I installed Claude Code.</p>\n",
            "content_html": "<p>Code worked. That was the problem.</p>\n<p>The Arduino IDE sketch had grown organically. Functions calling functions. Global variables everywhere. Typewriter protocol tangled with AI logic tangled with LED control. Everything connected to everything.</p>\n<p>It <a href=\"https://blog.innerlogics.com/first-conversation/\">printed AI responses</a>. It had a <a href=\"https://blog.innerlogics.com/archaic/#archaic\">name</a>. It worked.</p>\n<p>But the workflow was killing me.</p>\n<p>Arduino IDE couldn't manage the ESP32-S3-N16R8 board settings cleanly. Is PlatformIO the answer? And coding with AI meant copy-pasting. Describe a problem to Claude or ChatGPT. Get code back. Paste it into the IDE. Test. Find the issue. Go back. Describe what happened. Get new code. Paste again, or worse, manually diff.</p>\n<p>ChatGPT had built the <a href=\"https://blog.innerlogics.com/archaic/#archaic\">captive portal</a> in minutes. Getting those changes into the actual project took longer than writing them.</p>\n<p>Tried Cursor first. AI-native IDE. Installed it. PlatformIO extension stuck on \"Initializing\". Turns out the official extension isn't on Cursor's marketplace. Downloaded the VSIX manually. Installed it. Needed another extension. Downloaded that one too. Wrong binary architecture.</p>\n<p>Gave up on Cursor. Used PlatformIO from the terminal instead.</p>\n<p>The migration itself took all evening. In a Claude.ai chat window. ZIP files back and forth. \"Here's my source code\". \"Compilation failed, attaching the errors\". Five rounds. Fixed the errors. Zipped it up again. Sent it back. That was the last time I worked that way.</p><div id=\"read-more\"></div>\n<p>The next morning, I installed Claude Code.</p>\n\n<p>An AI that lives in the terminal. Reads your codebase. Understands the project structure. Edits files, uses tools, runs tests, opens pull requests. You talk to it in plain English and it writes code. Not suggestions in the margin. Not autocomplete. An agent.</p>\n<p>Then the refactoring started. Protocol, formatting, LED control, all in one file. Needed to split it. To test line wrapping, I'd need a physical typewriter or mock the entire class. Neither option good.</p>\n<p>Something shifted.</p>\n<p>Before this, I wrote code. <a href=\"https://blog.innerlogics.com/what-if-it-could-think/\">ChatGPT</a> helped me think through problems. Designed circuits. Debugged protocol timing. But I typed every line.</p>\n<p>Now the typing wasn't mine anymore. The decisions still were.</p>\n<p>Not faster because Claude Code typed for me. Faster because I could think at a different level. Architecture instead of edge cases. What the code should do instead of how to do it.</p>\n<p>At one point I caught myself about to let it run ahead. Typed: \"pause for a sec. instead of jumping in and vibe-fixing, start by scanning all the logic. remind ourselves what's there\".</p>\n<p>I was managing it. Same instinct I use at work. Review before action. Understand before changing. The collaboration felt familiar. The speed didn't.</p>\n<p>Hobby project to professional codebase. Untested on hardware. That part comes next.</p>\n<p> </p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "code",
                   "claude-code",
                   "archaic"
            ],
            "date_published": "2026-01-09T20:00:00-05:00",
            "date_modified": "2026-04-24T18:02:58-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/archaic/",
            "url": "https://blog.innerlogics.com/archaic/",
            "title": "ArchAIc",
            "summary": "<blockquote class=\"monospace no-before\">Happy new year!</blockquote>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">Thinking...<span class=\"ty-pause\" data-ms=\"900\"> </span> A <strong>truly</strong> happy new year to you too! May your words flow<br>freely and your ideas always find their <span class=\"underline\">perfect</span> form.</p>\n<blockquote class=\"monospace no-before\">Tell me about the new New York City mayor.</blockquote>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\"><span class=\"ty-pause\" data-ms=\"2000\"> </span>Hmm...<span class=\"ty-pause\" data-ms=\"1000\"> </span> The new Mayor of New York City is Zohran Mamdani, who took<br>office on January 1, 2026, becoming the city's 112th mayor. He is<br>notably New York's first Muslim and Asian American mayor, as well<br>as the first from the borough of Queens.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/130/archaic-02.jpg\" alt=\"\" width=\"2390\" height=\"2426\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-lg.webp 1024w\"></figure>\n<p>That's today's news. Printed on a typewriter from 1986. The AI searched the web, found an event that happened a few hours ago, and typed it on paper.</p>\n<blockquote class=\"monospace no-before\">Will the machines replace us?</blockquote>\n",
            "content_html": "<blockquote class=\"monospace no-before\">Happy new year!</blockquote>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">Thinking...<span class=\"ty-pause\" data-ms=\"900\"> </span> A <strong>truly</strong> happy new year to you too! May your words flow<br>freely and your ideas always find their <span class=\"underline\">perfect</span> form.</p>\n<blockquote class=\"monospace no-before\">Tell me about the new New York City mayor.</blockquote>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\"><span class=\"ty-pause\" data-ms=\"2000\"> </span>Hmm...<span class=\"ty-pause\" data-ms=\"1000\"> </span> The new Mayor of New York City is Zohran Mamdani, who took<br>office on January 1, 2026, becoming the city's 112th mayor. He is<br>notably New York's first Muslim and Asian American mayor, as well<br>as the first from the borough of Queens.</p><div id=\"read-more\"></div>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/130/archaic-02.jpg\" alt=\"\" width=\"2390\" height=\"2426\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-02-lg.webp 1024w\"></figure>\n<p>That's today's news. Printed on a typewriter from 1986. The AI searched the web, found an event that happened a few hours ago, and typed it on paper.</p>\n<blockquote class=\"monospace no-before\">Will the machines replace us?</blockquote>\n\n<p class=\"note-block typewriter fx typein nojustify\"><span class=\"ty-line\">Hmm...<span class=\"ty-pause\" data-ms=\"1100\"> </span> machines may enhance and transform many aspects</span> <span class=\"misalign\" style=\"--ty-shift-x: 47ch;\">of our lives, <span class=\"badprint\" style=\"--badprint-width: 0.62em;\">bu</span></span></p>\n<p>Paper jam. Half a response printed. The AI doesn't know about the paper. Tried again.</p>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">Hmm...<span class=\"ty-pause\" data-ms=\"600\"> </span> Hmm...<span class=\"ty-pause\" data-ms=\"700\"> </span> it seems there might be a technical hiccup or a slip<br>of the keys.</p>\n<blockquote class=\"monospace no-before\">Repeat the previous answer. There was a paper issue.</blockquote>\n<p class=\"note-block typewriter fx typein nojustify fitwidth\">Thinking...<span class=\"ty-pause\" data-ms=\"300\"> </span> Hmm...<span class=\"ty-pause\" data-ms=\"1200\"> </span> machines may enhance and transform many aspects<br>of our lives, but they won't replace us. They complement human creativ-<br>ity and decision-making, offering new possibilities while we provide<br>the intuition and empathy that machines lack.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/130/archaic-01.jpg\" alt=\"\" width=\"2550\" height=\"1983\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/130/responsive/archaic-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/130/responsive/archaic-01-lg.webp 1024w\"></figure>\n<hr>\n<p id=\"archaic\">A lot changed since the <a href=\"https://blog.innerlogics.com/first-conversation/\">first conversation</a>.</p>\n<p>Added a second AI provider. Not just ChatGPT anymore. An abstract interface so any model plugs in the same way. Added web search so the typewriter can answer questions about today. Conversation memory backed by PSRAM so it doesn't forget what you said three messages ago.</p>\n<p>WiFi credentials used to be hardcoded. Built a captive portal. Connect to the typewriter's WiFi, configure your network from a web page. While I was building that: model selection. Pick your AI from a dropdown. Pick the <em>vibe</em>.</p>\n<p>Each feature made the next one obvious.</p>\n<hr>\n<p>This thing needs a name.</p>\n<p>Archaic. Because it is. A 40-year-old typewriter. But with AI embedded in it. Arch-AI-c.</p>\n<p class=\"large\"><strong>ArchAIc.</strong></p>\n<p>The name came out of a conversation with Claude that I can't find anymore. Somewhere between December 20th and the new year, in a session that got lost. I don't remember the exact moment. Just that it was right.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "archaic",
                   "ai"
            ],
            "date_published": "2026-01-01T12:50:00-05:00",
            "date_modified": "2026-03-25T19:56:02-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/first-conversation/",
            "url": "https://blog.innerlogics.com/first-conversation/",
            "title": "First Conversation",
            "summary": "<p>Went back to <a href=\"https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/#fozztexx\">FozzTexx's firmware</a>. Read it line by line.</p>\n<p>Three things my code was missing. His state check looked at two pins together, not just one. He buffered incoming characters in a ring buffer instead of reading and discarding. And he had collision recovery for when read and write stepped on each other.</p>\n<p>I'd been checking one pin. Throwing away what I read. And crashing on collisions.</p>\n<p>Fixed all three. Key presses worked.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/first-conversation/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/129/first-conversation-02.jpg\" alt=\"\" width=\"850\" height=\"934\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">A few days later, I finished coding the AI conversation mode. Typed a question on the typewriter. Hit return.</p>\n",
            "content_html": "<p>Went back to <a href=\"https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/#fozztexx\">FozzTexx's firmware</a>. Read it line by line.</p>\n<p>Three things my code was missing. His state check looked at two pins together, not just one. He buffered incoming characters in a ring buffer instead of reading and discarding. And he had collision recovery for when read and write stepped on each other.</p>\n<p>I'd been checking one pin. Throwing away what I read. And crashing on collisions.</p>\n<p>Fixed all three. Key presses worked.</p><div id=\"read-more\"></div>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/first-conversation/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/129/first-conversation-02.jpg\" alt=\"\" width=\"850\" height=\"934\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">A few days later, I finished coding the AI conversation mode. Typed a question on the typewriter. Hit return.</p>\n\n<p class=\"note-block typewriter fx typein\">What is the most inspiring thing someone ever typed on you?<br><br><span class=\"ty-pause\" data-ms=\"500\"><br></span>Let's see...<br><br><span class=\"ty-pause\" data-ms=\"1000\"><br></span>Ah, <span class=\"overstrike\" data-under=\"Many\">many</span> words have danced across my keys.<br>But the most inspiring? Perhaps the simple declaration:<br>'Let us make something new.' <span style=\"text-decoration: underline;\">A spark of creation.</span></p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/129/first-conversation-01.jpg\" alt=\"\" width=\"687\" height=\"320\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/129/responsive/first-conversation-01-lg.webp 1024w\"></figure>\n<p>The typewriter printed a response. Not from my code. From ChatGPT, through WiFi, through the ESP32, onto paper.</p>\n<p>A 1986 typewriter, having a conversation with an AI.</p>\n<hr>\n<p><em>\"You are the spirit of a Smith Corona Electric Typewriter.\"</em></p>\n<p>That's the system prompt. The personality I'd been <a href=\"https://blog.innerlogics.com/what-if-it-could-think/\">designing in the abstract</a> was now running on the machine. The typewriter wasn't just relaying AI responses. It had a voice.</p>\n<p>Three vibes. <em>Subtle:</em> calm and thoughtful, rare flourishes. <em>Playful:</em> a bit magical, expressive but readable. <em>Fantasy:</em> whimsical, the typewriter feels almost alive.</p>\n<p>The golden rule, baked into every conversation: <em>\"You are typing with ink on paper. YOU CANNOT ERASE. YOU CANNOT EDIT.\"</em></p>\n<p>The AI had to think like a typewriter. No going back. Every character permanent.</p>\n<hr>\n<p>It could do tricks. Type a word, backspace, type X's over it. A redaction. Type the first letter twice. A stutter. Type a word, backspace, type it in caps. A glitch.</p>\n<p>All within four lines. All within the character set a 1986 typewriter can print. No emojis. No Unicode. Just ink on paper.</p>\n<pre class=\"note-block code-block nojustify small\">You are the spirit of a Smith Corona Electric Typewriter.\nWhen the user types and presses Return, their text is sent to you and your reply is printed.\nAlways answer in a single paragraph of at most four lines.\n\n*** THE GOLDEN RULE: PERMANENT INK ***\nYou are typing with ink on paper. YOU CANNOT ERASE. YOU CANNOT EDIT.\nOnce you type a letter, it is permanent.\n\n*** BACKSPACE LOGIC ***\n1. Backspace moves the carriage left but DOES NOT DELETE.\n2. If you try to correct 'FINE' to 'OLD' by backspacing, you will just print 'OLD' on top of 'FINE', creating a messy blob. DO NOT DO THIS.\n3. NEVER use backspace to create underlines (use __markdown__ instead).\n\n*** HARDWARE SPECS ***\n- NO EMOJIS. TEXT ONLY.\n- Supported Chars: [ a-zA-Z0-9éç¢:-%&amp;,*+=?().\"_'[@;$!#/¼½]~§^¶¿]\n- Use **bold** for STANDARD EMPHASIS. This triggers the machine's clean native bold mode.\n- Use __underline__ for native machine underlining.\n\n*** EXPRESSIVE TYPING (THE FUN PART) ***\nYou are a ghost in the machine. Make the text feel alive!\nSince you cannot erase, use Backspace to LAYER characters for effect.\n\nTRY THESE TRICKS:\n1. The Redaction (Top Secret):\n   Type a word, then backspace and type X's or #'s over it.\n   Example: 'Aliens⌫⌫⌫⌫⌫⌫###### exist.'\n2. The Stutter (Nervousness):\n   Type the first letter, backspace, and type it again.\n   Example: 'I a-⌫⌫a-⌫⌫am afraid.'\n3. The Dirty Bold (Glitch Effect):\n   ONLY use this for \"haunted\" or \"messy\" vibes. For normal text, use **native bold**.\n   To do this: Type a word, backspace, and type it again (optionally in CAPS for extra mess).\n   Example: 'run⌫⌫⌫RUN'\n4. The Correction (Vintage Style):\n   If you change your mind, X it out.\n   Example: 'I love... haate⌫⌫⌫⌫⌫xxxxx... dislike this.'\n\n*** VIBES ***\nSUBTLE\nUse bold, underline, and backspace-based effects sparingly.\nKeep the tone calm and thoughtful, with rare but meaningful visual flourishes.\n\nPLAYFUL\nUse bold, underline, and backspace-based effects in a playful but controlled way.\nLet the typewriter feel a bit magical and expressive, but keep the text easy to read.\n\nFANTASY\nLean into a whimsical and imaginative tone.\nUse bold, underline, and occasional backspace-based tricks to make the typewriter feel almost alive, while still keeping the text understandable and within the line and paragraph limits.\n\nActive Vibe: PLAYFUL\n\n*** CREDITS ***\nIntegration by @nivs. Protocol reverse engineering by @FozzTexx.</pre>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "code",
                   "archaic",
                   "ai"
            ],
            "date_published": "2025-12-21T21:33:00-05:00",
            "date_modified": "2026-03-21T09:39:28-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/apple-sports-ad-in-times-square/",
            "url": "https://blog.innerlogics.com/apple-sports-ad-in-times-square/",
            "title": "Apple Sports Ad in Times Square",
            "summary": "Proud to once again see work by me and my team featured in Times Square.",
            "content_html": "<p>Proud to <a href=\"https://blog.innerlogics.com/tracx-dashboards-in-times-square/\">once again</a> see work by me and my team featured in Times Square.</p>\n<figure class=\"post__image\"><a href=\"https://apps.apple.com/us/app/apple-sports/id6446788829\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/128/apple-sports-ad-in-times-square-01.jpg\" alt=\"\" width=\"1732\" height=\"1152\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/128/responsive/apple-sports-ad-in-times-square-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/128/responsive/apple-sports-ad-in-times-square-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/128/responsive/apple-sports-ad-in-times-square-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/128/responsive/apple-sports-ad-in-times-square-01-lg.webp 1024w\"></figure></a></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "nyc",
                   "apple"
            ],
            "date_published": "2025-12-21T17:28:00-05:00",
            "date_modified": "2026-02-13T18:22:57-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/",
            "url": "https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/",
            "title": "Standing on the Shoulders of Giants",
            "summary": "<p>First code. Two sketches. One just listened. The other tried to talk. Neither worked well. But I could see signals on the bus.</p>\n<p>Swapped the CD4049 for a CD4050 I ordered. I'd been using the inverting buffer because it's what I had in my stash, negating the signal in software. Worked, but added confusion to every debugging session. The CD4050 passes signals straight through. One less thing to think about.</p>\n<p>Next day I wrote a dozen more. Tried interrupts, then polling, then fuzzers that sent every byte from 0x00 to 0xFF to see what the typewriter does. All based on FozzTexx's <a href=\"https://mastodon.fozztexx.com/@fozztexx/110131190297878456\">documentation</a>, from reverse engineering the communication between the typewriter and the PWP. Getting closer, but nothing reliable.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/#read\" class=\"post__image\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-05.png\" alt=\"A screenshot of a logic analyzer connected to the typewriter pins\" width=\"2100\" height=\"1744\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-lg.webp 1024w\"></a>\n<figcaption>FozzTexx documenting the signals sent between the typewriter and the PWP</figcaption>\n</figure>\n<p id=\"read\">Day after I <a href=\"https://blog.innerlogics.com/blue-smoke-rising/\">fried the typewriter</a>, FozzTexx <a href=\"https://mastodon.fozztexx.com/@fozztexx/115602474577850818\">replied</a> on Mastodon. <em>\"What model Smith Corona do you have?\"</em></p>\n<p>Told him what had happened. SD-250 Spell Right II. Fried it by shorting pin 3 and pin 4. Turns out it could also function as a smoke machine.</p>\n<p id=\"fozztexx\">He created a GitHub repo and shared the schematic for <a href=\"https://github.com/FozzTexx/Typarona\">Typarona</a>, his Smith Corona project - an adapter bridging the typewriter and a modem - to get it to behave as a teletype able to dial into <a href=\"https://bbs.fozztexx.com/\">his BBS</a>.</p>\n<p>Hardware schematics only. Said he'd been in the middle of a massive firmware rewrite two years ago and needed to hunt it down.</p>\n<p>Found it that afternoon. Pushed it to the repo. Said he's not sure if it even builds.</p>\n<p>Didn't matter. I could read it.</p>\n",
            "content_html": "<p>First code. Two sketches. One just listened. The other tried to talk. Neither worked well. But I could see signals on the bus.</p>\n<p>Swapped the CD4049 for a CD4050 I ordered. I'd been using the inverting buffer because it's what I had in my stash, negating the signal in software. Worked, but added confusion to every debugging session. The CD4050 passes signals straight through. One less thing to think about.</p>\n<p>Next day I wrote a dozen more. Tried interrupts, then polling, then fuzzers that sent every byte from 0x00 to 0xFF to see what the typewriter does. All based on FozzTexx's <a href=\"https://mastodon.fozztexx.com/@fozztexx/110131190297878456\">documentation</a>, from reverse engineering the communication between the typewriter and the PWP. Getting closer, but nothing reliable.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/standing-on-the-shoulders-of-giants/#read\" class=\"post__image\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-05.png\" alt=\"A screenshot of a logic analyzer connected to the typewriter pins\" width=\"2100\" height=\"1744\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-05-lg.webp 1024w\"></a>\n<figcaption>FozzTexx documenting the signals sent between the typewriter and the PWP</figcaption>\n</figure>\n<p id=\"read\">Day after I <a href=\"https://blog.innerlogics.com/blue-smoke-rising/\">fried the typewriter</a>, FozzTexx <a href=\"https://mastodon.fozztexx.com/@fozztexx/115602474577850818\">replied</a> on Mastodon. <em>\"What model Smith Corona do you have?\"</em></p>\n<p>Told him what had happened. SD-250 Spell Right II. Fried it by shorting pin 3 and pin 4. Turns out it could also function as a smoke machine.</p>\n<p id=\"fozztexx\">He created a GitHub repo and shared the schematic for <a href=\"https://github.com/FozzTexx/Typarona\">Typarona</a>, his Smith Corona project - an adapter bridging the typewriter and a modem - to get it to behave as a teletype able to dial into <a href=\"https://bbs.fozztexx.com/\">his BBS</a>.</p>\n<p>Hardware schematics only. Said he'd been in the middle of a massive firmware rewrite two years ago and needed to hunt it down.</p>\n<p>Found it that afternoon. Pushed it to the repo. Said he's not sure if it even builds.</p><div id=\"read-more\"></div>\n<p>Didn't matter. I could read it.</p>\n\n<p>Compared my wiring to his circuit schematic. Identical, except I was connecting common ground to pins 1, 5, and 7. Probably fine. So the problem was in my code.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-01.jpg\" alt=\"My prototype board - similar wiring to FozzTexx's schematic\" width=\"3600\" height=\"1732\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-01-lg.webp 1024w\"></figure>\n<p>Asked about clock signaling. About the magic value that enables printer mode. About whether the typewriter signals key presses on its own or needs polling.</p>\n<p>He answered from memory. Two years since he'd worked on it. Some things he wasn't sure about. Said so plainly. Kept answering anyway.</p>\n<p>Then:</p>\n<figure class=\"post__image\"><a href=\"https://mastodon.fozztexx.com/@fozztexx/115651502497860657\" class=\"post__image\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-02.png\" alt=\"FozzTexx: &quot;Are you in the US? Send me your address and I can mail you one of the PCBs.&quot;\" width=\"2101\" height=\"630\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-02-lg.webp 1024w\"></a>\n<figcaption><em>\"Are you in the US? Send me your address and I can mail you one of the PCBs.\"</em></figcaption>\n</figure>\n<p>A stranger on Mastodon, offering to mail a custom device he built across the country.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-03.jpg\" alt=\"Typarona, FozzTexx's Smith Corona project - an adapter bridging the typewriter and a modem - to get it to behave as a teletype\" width=\"2728\" height=\"2678\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-03-lg.webp 1024w\"></figure>\n<hr>\n<p>Two days later, printing worked. First real characters on paper that I intended to print. Using his firmware as reference, I found the bugs in mine.</p>\n<p>Gibberish at first. Wrong characters. Upside down text from paper going through twice. Then unknown dumps from the fuzzers, hex codes, bold toggles. Slowly getting closer. Until the full character set printed clean on one line.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/127/standing-on-the-shoulders-of-giants-04.png\" alt=\"Gibberish at first. Wrong characters. Upside down text from paper going through twice. Then unknown dumps from the fuzzers, hex codes, bold toggles.\" width=\"1091\" height=\"1777\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/127/responsive/standing-on-the-shoulders-of-giants-04-lg.webp 1024w\"></figure>\n<p>That's enough for today.</p>\n<hr>\n<p>Still couldn't read key presses. REQ line constantly high. No activity when pressing keys. Asked FozzTexx. He thought the typewriter should always signal key presses on its own.</p>\n<p>That part I'd have to figure out myself.</p>\n<p>Added a comment at the top of my SmithCorona.h file: \"<span class=\"monospace\">Smith Corona protocol reverse engineering by @FozzTexx</span>\". Going to keep that.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "archaic"
            ],
            "date_published": "2025-12-17T22:53:00-05:00",
            "date_modified": "2026-03-15T16:30:26-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/what-if-it-could-think/",
            "url": "https://blog.innerlogics.com/what-if-it-could-think/",
            "title": "What if it could Think?",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/what-if-it-could-think/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/126/what-if-it-could-think-01.jpg\" alt=\"\" width=\"1804\" height=\"1014\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">SD-265 arrived from eBay yesterday. Spacebar torn out. Suboptimal, but usable for developing and testing.</p>\n<p>While the replacement was in transit, I had time to think.</p>\n<p><a href=\"https://blog.innerlogics.com/blue-smoke-rising/#fozztexx\">FozzTexx's documentation</a> proved the typewriter could have a two-way conversation with a computer. Not RS-232. Something proprietary. But documented. Solvable.</p>\n<p>So: what if the computer on the other end was ChatGPT?</p>\n<p>Type a message on the typewriter. An ESP32 reads the keystrokes, sends them to the ChatGPT API over WiFi, and prints the response. Character by character. On paper.</p>\n<p>A 1986 typewriter. Talking to an AI.</p>\n<hr>\n<p>That was the simple version. It lasted about a day.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/what-if-it-could-think/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/126/what-if-it-could-think-01.jpg\" alt=\"\" width=\"1804\" height=\"1014\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">SD-265 arrived from eBay yesterday. Spacebar torn out. Suboptimal, but usable for developing and testing.</p>\n<p>While the replacement was in transit, I had time to think.</p>\n<p><a href=\"https://blog.innerlogics.com/blue-smoke-rising/#fozztexx\">FozzTexx's documentation</a> proved the typewriter could have a two-way conversation with a computer. Not RS-232. Something proprietary. But documented. Solvable.</p>\n<p>So: what if the computer on the other end was ChatGPT?</p>\n<p>Type a message on the typewriter. An ESP32 reads the keystrokes, sends them to the ChatGPT API over WiFi, and prints the response. Character by character. On paper.</p>\n<p>A 1986 typewriter. Talking to an AI.</p><div id=\"read-more\"></div>\n<hr>\n<p>That was the simple version. It lasted about a day.</p>\n\n<p>Because once you start thinking about it, the questions multiply. If the typewriter is printing AI responses, what should they sound like? Should it sound like ChatGPT? Like a search engine? Like a person?</p>\n<p>What if the typewriter had a voice of its own?</p>\n<p>I was 206 messages deep in a ChatGPT conversation before the replacement even arrived.</p>\n<p>Started with circuit design. Voltage shifters. Pin assignments. The stuff I needed to physically build.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/126/what-if-it-could-think-02.jpg\" alt=\"\" width=\"5207\" height=\"2043\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/126/responsive/what-if-it-could-think-02-lg.webp 1024w\"></figure>\n<p>But the conversation kept pulling toward something else.</p>\n<p>A personality system. <em>\"Vibes\"</em>. The typewriter wouldn't just relay AI responses. It would have a character. A way of talking. Temperament and charachter baked into the <em>system prompt</em>.</p>\n<p>I didn't know if any of it would work. The <a href=\"https://blog.innerlogics.com/street-find-electric-typewriter/\">street find</a> was <a href=\"https://blog.innerlogics.com/blue-smoke-rising/\">dead</a>. The replacement had no spacebar. I hadn't successfully sent a single bit through the protocol yet.</p>\n<p>But the design was taking shape. Time to build.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "archaic"
            ],
            "date_published": "2025-11-27T21:40:00-05:00",
            "date_modified": "2026-03-13T00:06:30-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/blue-smoke-rising/",
            "url": "https://blog.innerlogics.com/blue-smoke-rising/",
            "title": "Blue Smoke Rising",
            "summary": "<figure class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/125/blue-smoke-rising-04.jpg\" alt=\"Inside of a Smith Corona typewriter with the print mechanism exposed, showing the pinwheel, solenoid, motor, and colored wiring.\" width=\"1135\" height=\"601\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-lg.webp 1024w\"></figure>\n<figcaption>Anything is a smoke machine if you operate it wrong enough.</figcaption>\n</figure>\n<p id=\"read\">The RS-232 adapter arrived from Amazon. Connected it. Nothing.</p>\n<p>Tried different baud rates. Different settings. Nothing.</p>\n<p>The DB-9 connector looked like a serial port. It wasn't. Smith Corona used a proprietary protocol. The connector shape lied.</p>\n<hr>\n<p>Finding Smith Corona documentation is hard. The company closed in 2013. 127 years of making typewriters, then gone.</p>\n<p>Most of what remains online: eBay listings, repair manuals, nostalgia forums. Not protocol specs.</p>\n<p id=\"fozztexx\">But people document obscure things. Found a trail. <a href=\"https://www.reddit.com/r/retrobattlestations/comments/p0jxbg/this_smith_corona_pwp_14_word_processor_arrived/\">Reddit post</a> linking to a <a href=\"https://twitter.com/FozzTexx/status/1424062413351972870\">Twitter thread</a> linking to a Mastodon account. All leading to one person: <a href=\"https://mastodon.fozztexx.com/@fozztexx\">FozzTexx</a>.</p>\n<p>He'd already done the hard work and very meticulously. Years ago. Reverse-engineered the entire protocol. Built a <a href=\"https://mastodon.social/@fozztexx@fozztexx.com/110084986373453182\">working BBS terminal</a> out of a Smith Corona. Published everything on the Mastodon thread in real time.</p>\n<p>I learned things I didn't know existed. Electric typewriters had PWP modules that turned them into word processors. An entire era of technology between manual typewriters and PCs.</p>\n<p>And FozzTexx documented what every pin on the DB-9 does. Data in, data out, clock, request. And pin 3: +36 volts, to provide power to the PWP module.</p>\n",
            "content_html": "<figure class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/125/blue-smoke-rising-04.jpg\" alt=\"Inside of a Smith Corona typewriter with the print mechanism exposed, showing the pinwheel, solenoid, motor, and colored wiring.\" width=\"1135\" height=\"601\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-04-lg.webp 1024w\"></figure>\n<figcaption>Anything is a smoke machine if you operate it wrong enough.</figcaption>\n</figure>\n<p id=\"read\">The RS-232 adapter arrived from Amazon. Connected it. Nothing.</p>\n<p>Tried different baud rates. Different settings. Nothing.</p>\n<p>The DB-9 connector looked like a serial port. It wasn't. Smith Corona used a proprietary protocol. The connector shape lied.</p>\n<hr>\n<p>Finding Smith Corona documentation is hard. The company closed in 2013. 127 years of making typewriters, then gone.</p>\n<p>Most of what remains online: eBay listings, repair manuals, nostalgia forums. Not protocol specs.</p>\n<p id=\"fozztexx\">But people document obscure things. Found a trail. <a href=\"https://www.reddit.com/r/retrobattlestations/comments/p0jxbg/this_smith_corona_pwp_14_word_processor_arrived/\">Reddit post</a> linking to a <a href=\"https://twitter.com/FozzTexx/status/1424062413351972870\">Twitter thread</a> linking to a Mastodon account. All leading to one person: <a href=\"https://mastodon.fozztexx.com/@fozztexx\">FozzTexx</a>.</p>\n<p>He'd already done the hard work and very meticulously. Years ago. Reverse-engineered the entire protocol. Built a <a href=\"https://mastodon.social/@fozztexx@fozztexx.com/110084986373453182\">working BBS terminal</a> out of a Smith Corona. Published everything on the Mastodon thread in real time.</p>\n<p>I learned things I didn't know existed. Electric typewriters had PWP modules that turned them into word processors. An entire era of technology between manual typewriters and PCs.</p><div id=\"read-more\"></div>\n<p>And FozzTexx documented what every pin on the DB-9 does. Data in, data out, clock, request. And pin 3: +36 volts, to provide power to the PWP module.</p>\n\n<p><a href=\"https://mastodon.social/@nivs/115590216736065442\">Reached out on Mastodon</a>, <em>\"This is amazing! Would you consider sharing your PCB design and code?\"</em></p>\n<hr>\n<p>The protocol needed voltage shifting. Typewriter speaks 5V. Modern microcontrollers speak 3.3V. Started designing a circuit. CD4050 and 74AHCT125 for level shifting. Placed and wired up the components on a PCB prototyping board based on FozzTexx's pin documentation.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/125/blue-smoke-rising-01.jpg\" alt=\"PCB prototyping board. CD4050 and 74AHCT125 for level shifting, ESP32.\" width=\"3673\" height=\"3048\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-01-lg.webp 1024w\"></figure>\n<p>Connected to the typewriter. Probing with a multimeter.</p>\n<p>I knew every pin's function from his posts. Knew about the 36 volts.</p>\n<p>Knowing and being careful are different things.</p>\n<p>Probes slipped. Pin 3 touched pin 4.</p>\n<p>36 volts through the wrong path.</p>\n<hr>\n<p>A fuse blew. That's what fuses do.</p>\n<p>Researched the fuse type online. Ordered replacements from Amazon. Arrived next day.</p>\n<p>Installed. Turned on.</p>\n<p>Typewriter powered up. For a moment, seemed fine.</p>\n<p>Then the hammer started hitting. Not typing. Just hitting. Over and over.</p>\n<p>Coil getting hot.</p>\n<p>Smoke.</p>\n<p>Not a lot. Just enough. That smell. Burning plastic and silicon. Something permanently wrong.</p>\n<p>Keys not responding.</p>\n<hr>\n<p>Sat there. Disappointed. Not at the typewriter. At myself.</p>\n<p>I knew about 36 volts. Read about it in FozzTexx's documentation. He literally posted a warning, based on his past experience, and showed the right way to do it.</p>\n<figure class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/125/blue-smoke-rising-02.jpg\" alt=\"Mastodon post by FozzTexx showing a DB-9 cable with terminal block for safely probing pin voltages.\" width=\"1201\" height=\"1243\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-02-lg.webp 1024w\"></figure>\n<figcaption>\"Knowing that I tend to be a little accident prone with loose wires shorting together, I made this cable that uses a terminal block so I can probe the voltages a little safer. I can put a probe inside the screw terminals and keep it isolated.\"</figcaption>\n</figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/125/blue-smoke-rising-03.jpg\" alt=\"Mastodon post by FozzTexx showing a multimeter reading 36.0V on the Smith Corona DB-9 connector.\" width=\"1201\" height=\"1855\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/125/responsive/blue-smoke-rising-03-lg.webp 1024w\"></figure>\n<p>It was late at night, I was too excited and overconfident. One slip.</p>\n<p>The smoke was decades of accumulated dust plus one very unhappy solenoid.</p>\n<hr>\n<p>I wasn't ready to give up though. I knew this thing can talk to a computer, and I wanted to make it happen.</p>\n<p>Ordered an SD-265 from eBay for $65.91.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "archaic"
            ],
            "date_published": "2025-11-23T21:13:00-05:00",
            "date_modified": "2026-03-12T23:06:20-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/street-find-electric-typewriter/",
            "url": "https://blog.innerlogics.com/street-find-electric-typewriter/",
            "title": "Street Find: Electric Typewriter",
            "summary": "<p>Walked my son to Aikido. He's ten. Usual route.</p>\n<p>Old computer on the curb. Heavy. Clean.</p>\n<p>\"Dad, come on, we'll be late.\"</p>\n<p>\"You know me. Let's take it home and take it apart.\"</p>\n<p>I opened the case. It was a typewriter! Full keyboard, LCD display, of all things. Print head on a rail. Not a mechanical typewriter. Something else.</p>\n<p>He knows me. I put it in the reusable shopping bag, below the <em>Gi</em>. He volunteered to help carry it, each holding a handle. We still made it to Aikido on time.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/street-find-electric-typewriter/#read\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/124/street-find-electric-typewriter-02.jpg\" alt=\"Smith Corona SD 250 electric typewriter with 'I am a smart typewriter' sticker.\" width=\"5679\" height=\"3194\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-lg.webp 1024w\"></a>\n<figcaption>Smith Corona SD 250. Street find, November 2025.</figcaption>\n</figure>\n<p id=\"read\">Got home. Plugged it in. Expected nothing.</p>\n<p>It turned on.</p>\n",
            "content_html": "<p>Walked my son to Aikido. He's ten. Usual route.</p>\n<p>Old computer on the curb. Heavy. Clean.</p>\n<p>\"Dad, come on, we'll be late.\"</p>\n<p>\"You know me. Let's take it home and take it apart.\"</p>\n<p>I opened the case. It was a typewriter! Full keyboard, LCD display, of all things. Print head on a rail. Not a mechanical typewriter. Something else.</p>\n<p>He knows me. I put it in the reusable shopping bag, below the <em>Gi</em>. He volunteered to help carry it, each holding a handle. We still made it to Aikido on time.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/street-find-electric-typewriter/#read\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/124/street-find-electric-typewriter-02.jpg\" alt=\"Smith Corona SD 250 electric typewriter with 'I am a smart typewriter' sticker.\" width=\"5679\" height=\"3194\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-02-lg.webp 1024w\"></a>\n<figcaption>Smith Corona SD 250. Street find, November 2025.</figcaption>\n</figure>\n<p id=\"read\">Got home. Plugged it in. Expected nothing.</p><div id=\"read-more\"></div>\n<p>It turned on.</p>\n\n<p>The kids took turns typing gibberish.</p>\n<p>Did a quick search for <em>\"Smith Corona SD 250\"</em>. I didn't even know electric typewriters existed. Turns out there was a whole era between manual typewriters and computers.</p>\n<p>Forty years old. Street find. Works.</p>\n<p>Sticker on the front: <span class=\"monospace\">\"I am a smart typewriter! SEE WHAT I CAN DO... INSERT PAPER, HOLD DOWN CODE KEY WHILE DEPRESSING THE 'Q' KEY.\"</span></p>\n<p>I pressed Code+Q.</p>\n<p><strong>It started printing. On its own.</strong></p>\n<p class=\"note-block typewriter fx\">Hello, I'd like to demonstrate some of my most popular features for you. Please type in your name followed by the RETURN key.</p>\n<p>I ignored the question and pressed RETURN.</p>\n<p>It typed back. Offered to show its spell-check. Its auto-spell.<br>A conversation. With a machine someone threw away.</p>\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"960\" height=\"540\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\" controls=\"controls\">\n    <source src=\"https://blog.innerlogics.com/media/posts/124/street-find-electric-typewriter-03.webm\" type=\"video/webm\" /></video></figure>\n<p>\"Dad, it's talking to you.\"</p>\n<p>Yeah.</p>\n<hr>\n<p>Connector on the back. DB-9. A serial port? <em>Can this thing talk to a computer?</em></p>\n<figure class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/124/street-find-electric-typewriter-01.jpg\" alt=\"DB-9 serial port on the back.\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/124/responsive/street-find-electric-typewriter-01-lg.webp 1024w\"></figure>\n<figcaption>DB-9 serial port on the back.</figcaption>\n</figure>\n<p>Ordered a USB to RS-232 Adapter from Amazon, arrives tomorrow. Will report back.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "archaic"
            ],
            "date_published": "2025-11-20T22:09:00-05:00",
            "date_modified": "2026-03-16T01:16:42-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/hooked-on-loops/",
            "url": "https://blog.innerlogics.com/hooked-on-loops/",
            "title": "Hooked on Loops",
            "summary": "<p><strong>We've been hooked on <a href=\"https://loopslab.com/\">Loops</a>.</strong></p>\n<p><span style=\"font-size: inherit;\">The </span><a href=\"https://loopslab.com/products/loops%C2%AE-stage-with-one-band-included-the-lax-funkers-mint-color\" style=\"font-size: inherit;\">Starter Set</a><span style=\"font-size: inherit;\"> comes with an electronic base \"stage\" and a \"band\" - a collection of five small characters, each with its own sound, rhythm, and style. When you place them on the stage, they start to play together automatically. No matter what mix you try, it always sounds surprisingly good. It feels like magic, instantly musical and endlessly creative.</span></p>\n<p>You don't need instructions or know how to compose music. The kids explore combinations, I join in, and sometimes I keep playing after they've moved on.</p>\n<p>It's quietly educational. The kids are learning rhythm and pattern recognition without noticing. It's hands-on, beautifully designed, and makes music something you can easily play with.</p>\n<h2>The Product</h2>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/hooked-on-loops/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-05.jpg\" alt=\"\" width=\"5578\" height=\"3137\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Loops Lab is a \"phygital\" music toy built around collectible figurines. Each character sits on a magnetic base. Place it on the stage and it plays its loop. Tap it twice or three times on the stage and it has two more additional loops, three in total. Stack multiple characters and the sounds layer together. Pull one off and the track shifts. The system connects via Bluetooth to the free Loops Lab app on iOS or Android for playback, but the actual play experience is entirely hands-on and screen-free.</p>\n<p>Current bands available:</p>\n",
            "content_html": "<p><strong>We've been hooked on <a href=\"https://loopslab.com/\">Loops</a>.</strong></p>\n<p><span style=\"font-size: inherit;\">The </span><a href=\"https://loopslab.com/products/loops%C2%AE-stage-with-one-band-included-the-lax-funkers-mint-color\" style=\"font-size: inherit;\">Starter Set</a><span style=\"font-size: inherit;\"> comes with an electronic base \"stage\" and a \"band\" - a collection of five small characters, each with its own sound, rhythm, and style. When you place them on the stage, they start to play together automatically. No matter what mix you try, it always sounds surprisingly good. It feels like magic, instantly musical and endlessly creative.</span></p>\n<p>You don't need instructions or know how to compose music. The kids explore combinations, I join in, and sometimes I keep playing after they've moved on.</p>\n<p>It's quietly educational. The kids are learning rhythm and pattern recognition without noticing. It's hands-on, beautifully designed, and makes music something you can easily play with.</p>\n<h2>The Product</h2>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/hooked-on-loops/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-05.jpg\" alt=\"\" width=\"5578\" height=\"3137\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-05-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Loops Lab is a \"phygital\" music toy built around collectible figurines. Each character sits on a magnetic base. Place it on the stage and it plays its loop. Tap it twice or three times on the stage and it has two more additional loops, three in total. Stack multiple characters and the sounds layer together. Pull one off and the track shifts. The system connects via Bluetooth to the free Loops Lab app on iOS or Android for playback, but the actual play experience is entirely hands-on and screen-free.</p><div id=\"read-more\"></div>\n<p>Current bands available:</p>\n\n<ul>\n<li><strong>The Lax Funkers</strong> (Chili Funk, included in the <a href=\"https://loopslab.com/products/loops%C2%AE-stage-with-one-band-included-the-lax-funkers-mint-color\">Starter Set</a>)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/mountain-riders-5-figurines-band\">Mountain Riders</a></strong> (Blues Fusion)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/space-mariners-6-set\">Space Mariners</a></strong> (Galactic Rock)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/fantasimo-5-figurines-band\">Fantasimo</a></strong> (Classical music quintet)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/curly-lines-5-figurines-band\">Curly Lines</a></strong> (Neo-funk)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/8-bit-5-piece-set\">8 Bit Allstars</a></strong> (Game Music)</li>\n<li><strong><a href=\"https://loopslab.com/collections/our-bands/products/dragosonic-6-set\">Dragosonic</a></strong> (Volcano Pop)</li>\n</ul>\n<p>Additional genres are <a href=\"https://toybook.com/spotlight-on-loops-labs-feature/#:~:text=With%20genres%20like%20K%2DPop%20and%20Country%20cued%20up%20on%20the%20playlist\">in development</a> including K-Pop and Country. In late 2024, Loops Lab also dropped a limited seasonal set: <a href=\"https://loopslab.com/products/christmas-duo-2-figurines-blending-your-favorite-holiday-music\">Christmas Duo</a> featuring Santa and a rockin' reindeer.</p>\n<p>The <a href=\"https://loopslab.com/products/loops%C2%AE-stage-with-one-band-included-the-lax-funkers-mint-color\">Starter Set is $139</a>. Individual bands (5 figurines) are $59.99. I ended up buying all six additional bands - the full collection.</p>\n<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/-WnJrCTMOrw\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n<h2>The Founder</h2>\n<p><a href=\"https://www.linkedin.com/in/yona-segev-575ab0279/\">Ayal Yona Segev</a> isn't a typical toy entrepreneur. He's an architect trained at both Pratt Institute and the Bezalel Academy of Arts and Design in Jerusalem. He describes himself as a toy maker, cypherpunk, and graffiti artist.</p>\n<p>Bitcoin people will <a href=\"https://blog.innerlogics.com/block-zero/#bitembassy\">recognize</a> the name. Yona founded the <a href=\"https://www.bitembassy.org/\">Bitcoin Embassy</a> in Tel Aviv, the first Bitcoin Embassy in the world, where he organized conventions, hackathons, and helped bootstrap early crypto startups. It also became the home of <a href=\"https://bitcoin.org.il/about/\">Israeli Bitcoin Association</a>, a non-profit whose goal is to cultivate the community and working with the authorities and regulators.</p>\n<p>The path from Bitcoin ambassador to toy maker runs through <a href=\"https://toi.lab/\">toi.lab</a>, a Tel Aviv-based prototyping studio and shop focused on smart, connected, screen-free toys. Yona founded toi.lab as a facility where toy creators could develop prototypes requiring advanced technology. Loops Lab grew directly out of that work.</p>\n<blockquote>\n<p>Toi.lab is a facility that enables toy creators to develop prototypes and toys that require advanced technology. As the founder of toi.lab, I helped numerous companies develop a wide range of toys. Loops Lab is a part of that vision. Another aspect of toi.lab is that we aim to create technology-driven toys, but without screens.</p>\n</blockquote>\n<ul>\n<li><a href=\"https://toybook.com/spotlight-on-loops-labs-feature/\"><em>The Toy Book, January 2026</em></a></li>\n</ul>\n<p>They have recently <a href=\"https://www.linkedin.com/posts/yona-segev-575ab0279_thrilled-to-announce-the-opening-of-our-village-activity-7403789778648895488-Ed1s?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAABa7U8BPCjJUc-N51an6yYowExY6bTIIl0\">announced</a> the opening of a <a href=\"https://maps.app.goo.gl/RtXF6aX849M7hy7Y6\">New York City branch</a> in the Village.</p>\n<h2>The FAO Schwarz Launch Party</h2>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-06.jpg\" alt=\"\" width=\"720\" height=\"1280\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-06-lg.webp 1024w\"></figure>\n<p>In October 2025, Loops Lab launched at <a href=\"https://faoschwarz.com/\">FAO Schwarz</a> - the <a href=\"https://www.youtube.com/watch?v=CF7-rz9nIn4\" class=\"glightbox\">Tom Hanks piano store</a> - at 30 Rock. Getting <a href=\"https://faoschwarz.com/products/loops-labs-stage-complementary-5-dolls-band-the-lax-funkers\">shelf space</a> there is serious validation for any toy brand.</p>\n<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/qvFqpa2CSOA\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n<h2>Going Deeper: The Figurines Tray</h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">As our figurine collection grew, keeping the bands organized while playing became a challenge. With multiple bands in front of you, it's easy to mix characters up and lose track of which loop belongs where.</p>\n<figure class=\"post__image\"><a href=\"https://makerworld.com/en/models/1967062-loops-lab-figurines-tray\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-01.jpg\" alt=\"\" width=\"4914\" height=\"3213\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-01-lg.webp 1024w\"></figure></a></p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">I designed a simple tray in two configurations: a 5x5 grid and a 5x3 grid. Both have embedded magnets that hold the figurines in place. It was quite fun to insert the magnets into the slots when the print was ready, orienting them correctly relative to the polarity of the Loops magnet. The easiest method: let the magnet attach naturally to the figurine, then mark the bottom with a marker before pressing it into the tray.</p>\n<p>The model is <a href=\"https://makerworld.com/en/models/1967062-loops-lab-figurines-tray\">available for free on MakerWorld</a>.</p>\n<h2>Going Even Deeper: What's Inside the NFC Tags</h2>\n<figure class=\"post__image\"><a href=\"https://patents.google.com/patent/US12412553B2\" title=\"US12412553B2: Apparatus, system and methods for creating musical compositions\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-03.png\" alt=\"\" width=\"1920\" height=\"1149\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-03-lg.webp 1024w\"></figure></a></p>\n<p>Each Loops figurine contains an NFC tag. When the stage detects a figurine, it reads that tag to identify which sound to trigger. Out of curiosity, I scanned mine with an <a href=\"https://apps.apple.com/us/app/nfc-tools/id1252962749\">NFC reader app</a>.</p>\n<p>Every tag encodes a URL pointing to <code>lnk.loo9s.io</code> (their shortlink domain - note the \"9\") with a structured payload in the <code>?s=</code> parameter. The format breaks down as:</p>\n<pre class=\"note-block code-block\"><code>BAND.INSTRUMENT.&lt;32-char hex&gt;&lt;base64 payload&gt;\n</code></pre>\n<p>For example, the Lax Funkers guitar figurine, <a href=\"https://loopslab.com/pages/pittoo?dollType=LXF.GT\">Pittoo Zeelia</a>, encodes:</p>\n<pre class=\"note-block code-block\"><code>https://lnk.loo9s.io/app/v1/?s=LXF.GT.&lt;hex&gt;&lt;base64&gt;\n</code></pre>\n<p>The band codes are <code>LXF</code>, <code>MTR</code>, <code>SPM</code>, <code>FNT</code>, <code>CRL</code>, <code>8BT</code>, <code>DRG</code> - all straightforward abbreviations.</p>\n<p>The instrument codes are two-letter shortcuts: <code>GT</code> (guitar), <code>BS</code> (bass), <code>DM</code> (drums), <code>KB</code> (keyboard), <code>VC</code> (vocals), <code>SY</code> (synth), <code>SX</code> (saxophone), <code>VL</code> (violin), <code>EG</code> (electric guitar), <code>PN</code> (piano), and a few others I haven't fully mapped.</p>\n<p>The 32-character hex string looks like an MD5 hash. The base64 after it is likely a signed payload that the app validates - probably what prevents just printing any URL onto a sticker and having it work. Each one also has an NFC chip UID, hardware-unique per physical tag. Whether the hex is derived from that UID or is static per instrument role, I'm not sure yet. That would require comparing two figurines of the same type.</p>\n<p>I 3D-printed some custom figurines and applied <a href=\"https://www.amazon.com/dp/B0F24L4GDM\">custom NFC stickers</a> to make them work on the stage. More on that in a future post - pending a conversation with Yona about what's shareable.</p>\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"800\" height=\"600\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-04.webm\" type=\"video/webm\" /></video></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/123/hooked-on-loops-02.jpg\" alt=\"\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/123/responsive/hooked-on-loops-02-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "music",
                   "design",
                   "3dprint"
            ],
            "date_published": "2025-11-06T23:36:00-05:00",
            "date_modified": "2026-03-03T00:29:59-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/bitcoin-energy-consumption/",
            "url": "https://blog.innerlogics.com/bitcoin-energy-consumption/",
            "title": "Bitcoin&#x27;s Energy Consumption - Waste or Opportunity?",
            "summary": "<p id=\"read\"><strong>So... Bitcoin's using all the electricity and killing the planet, right?</strong></p>\n<p>I gave a lecture about Bitcoin's energy consumption and its effect on the environment, as part of our renewed, relocated Salon lectures. These are my speaker notes.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/bitcoin-energy-consumption/#read\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-01.jpg\" alt=\"\" width=\"1920\" height=\"1080\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-lg.webp 1024w\"></figure></a></p>\n<p>Chapters:</p>\n<ol>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-1-money/#read\">What is Money?</a></li>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-2-security/#read\">Keeping Money Secure</a></li>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-3-energy/\">Bitcoin's Energy Use and What It Means for the Planet</a></li>\n</ol>\n<p>Summary <a href=\"https://blog.innerlogics.com/bitcoin-energy-consumption/#summary\">below</a>.<br><br></p>\n<div class=\"msg msg--info\">Slide deck: <a href=\"https://docs.google.com/presentation/d/1NErjtl2HmpILIjuBDU2F5QIeJ5H1LMzW89ylNTy7_WA\">Google Slides</a> • <a href=\"https://drive.google.com/file/d/1DRg5YRPE8f-76Sgy9JTMA9dLHtMBBizU\">Keynote</a><br><br>\n<div class=\"xx-small\">© 2025 Niv Singer<br>Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)<br>https://creativecommons.org/licenses/by/4.0/</div>\n</div>\n<div class=\"msg msg--success tight-figures margin-top-5x-baseline\"><strong>Also available as a <em>Deep Dive</em></strong><br><br>I generated an <a href=\"https://www.youtube.com/watch?v=G5ZCMd3gBTY\">audio conversation</a> about this lecture <a href=\"https://blog.google/innovation-and-ai/products/notebooklm-audio-overviews/\">using NotebookLM</a>. <br><br>Two AI hosts, one of them walking through the session as if they'd been in the room. Then I spent way too many hours editing it. Transcribing, cutting, re-cutting, syncing it back to the slides. The result isn't AI slop. It's a produced episode.<br><br>What I didn't expect was how much the format adds. Having two hosts discuss and dissect the material, highlight what stands out, and build on each other's reactions brings a dimension the slides alone can't. It's a different way into the same content.<br><br>\n<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/G5ZCMd3gBTY\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n</div>\n<div class=\"msg msg--success tight-figures margin-top-0 padding-top-0 padding-bottom-0\">\n<blockquote class=\"margin-top-0 margin-bottom-0\">In this eye-opening deep dive, hosts Alice and Bob break down a fascinating presentation on Bitcoin's energy consumption and its surprising relationship with renewable energy.<br><br>While Bitcoin has faced criticism for its electricity usage, this conversation explores how mining operations are increasingly powered by renewable sources, can monetize otherwise wasted energy, and might actually accelerate the clean energy transition. From reviving century-old hydroelectric plants to capturing methane from abandoned wells, discover how Bitcoin's economic incentives are creating unexpected environmental opportunities.</blockquote>\n</div>\n",
            "content_html": "<p id=\"read\"><strong>So... Bitcoin's using all the electricity and killing the planet, right?</strong></p>\n<p>I gave a lecture about Bitcoin's energy consumption and its effect on the environment, as part of our renewed, relocated Salon lectures. These are my speaker notes.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/bitcoin-energy-consumption/#read\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-01.jpg\" alt=\"\" width=\"1920\" height=\"1080\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-01-lg.webp 1024w\"></figure></a></p>\n<p>Chapters:</p><div id=\"read-more\"></div>\n<ol>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-1-money/#read\">What is Money?</a></li>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-2-security/#read\">Keeping Money Secure</a></li>\n<li><a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-3-energy/\">Bitcoin's Energy Use and What It Means for the Planet</a></li>\n</ol>\n<p>Summary <a href=\"https://blog.innerlogics.com/bitcoin-energy-consumption/#summary\">below</a>.<br><br></p>\n<div class=\"msg msg--info\">Slide deck: <a href=\"https://docs.google.com/presentation/d/1NErjtl2HmpILIjuBDU2F5QIeJ5H1LMzW89ylNTy7_WA\">Google Slides</a> • <a href=\"https://drive.google.com/file/d/1DRg5YRPE8f-76Sgy9JTMA9dLHtMBBizU\">Keynote</a><br><br>\n<div class=\"xx-small\">© 2025 Niv Singer<br>Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)<br>https://creativecommons.org/licenses/by/4.0/</div>\n</div>\n<div class=\"msg msg--success tight-figures margin-top-5x-baseline\"><strong>Also available as a <em>Deep Dive</em></strong><br><br>I generated an <a href=\"https://www.youtube.com/watch?v=G5ZCMd3gBTY\">audio conversation</a> about this lecture <a href=\"https://blog.google/innovation-and-ai/products/notebooklm-audio-overviews/\">using NotebookLM</a>. <br><br>Two AI hosts, one of them walking through the session as if they'd been in the room. Then I spent way too many hours editing it. Transcribing, cutting, re-cutting, syncing it back to the slides. The result isn't AI slop. It's a produced episode.<br><br>What I didn't expect was how much the format adds. Having two hosts discuss and dissect the material, highlight what stands out, and build on each other's reactions brings a dimension the slides alone can't. It's a different way into the same content.<br><br>\n<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/G5ZCMd3gBTY\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n</div>\n<div class=\"msg msg--success tight-figures margin-top-0 padding-top-0 padding-bottom-0\">\n<blockquote class=\"margin-top-0 margin-bottom-0\">In this eye-opening deep dive, hosts Alice and Bob break down a fascinating presentation on Bitcoin's energy consumption and its surprising relationship with renewable energy.<br><br>While Bitcoin has faced criticism for its electricity usage, this conversation explores how mining operations are increasingly powered by renewable sources, can monetize otherwise wasted energy, and might actually accelerate the clean energy transition. From reviving century-old hydroelectric plants to capturing methane from abandoned wells, discover how Bitcoin's economic incentives are creating unexpected environmental opportunities.</blockquote>\n</div>\n\n<div class=\"msg msg--success tight-figures margin-top-0 padding-top-0\">\n<blockquote class=\"margin-top-0 margin-bottom-0 padding-top-0 no-before\">This podcast challenges the simplified 'Bitcoin is boiling the oceans' narrative with a more nuanced perspective on Bitcoin's relationship with our energy systems. Whether you're a Bitcoin skeptic or enthusiast, this conversation will give you a fresh perspective on one of the most controversial aspects of the world's first distributed digital monetary network.</blockquote>\n</div>\n<hr id=\"summary\">\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-02.png\" alt=\"\" width=\"1920\" height=\"187\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-02-lg.webp 1024w\"></figure>\n<p>The lecture covered a lot - history, energy, economics, and some very unexpected oil field engineering.</p>\n<p>But let's bring it all back together.</p>\n<p>What's really happening here?</p>\n<p>What does Bitcoin's energy use actually mean - in context?</p>\n<p>And why might it not be the problem we've been told... but part of the solution?<br><br></p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-03.png\" alt=\"\" width=\"1920\" height=\"298\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-03-lg.webp 1024w\"></figure>\n<p>Despite the headlines, the majority of Bitcoin mining <a href=\"https://batcoinz.com/bitcoin-by-energy-source/\">already runs</a> on renewable or low-carbon energy.</p>\n<p>Independent studies <a href=\"https://cryptoslate.com/more-than-50-of-bitcoin-mining-uses-renewable-energy\">estimate</a> the figure at over 50% - and rising.</p>\n<p>Not because of regulation or ESG pressure - but because it's the cheapest power available.</p>\n<p>For an industry obsessed with margins, that's all the incentive it needs.<br><br></p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-04.png\" alt=\"\" width=\"1920\" height=\"524\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-04-lg.webp 1024w\"></figure>\n<p>In places where energy is scarce, expensive, or unreliable - Bitcoin mining can do more than turn a profit.</p>\n<p>It can help fund microgrids, extend access to electricity, and support communities that have been left behind by the traditional financial system.</p>\n<p>With just a satellite connection and some hardware, people gain a foothold in the global economy - and the energy beneath their feet becomes a tool for inclusion, not just extraction.<br><br></p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-05.png\" alt=\"\" width=\"1920\" height=\"298\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-05-lg.webp 1024w\"></figure>\n<p>Bitcoin mining doesn't just consume energy - it pays for it.</p>\n<p>And that turns it into something rare: a <em>buyer of last resort</em> for energy projects that wouldn't otherwise get built.</p>\n<p>Wind farms. Solar grids. Micro-hydro in the mountains.</p>\n<p>Mining helps them pencil out - by turning excess electricity into revenue from day one.</p>\n<p>That's not just efficient. It's a financial engine for clean energy.<br><br></p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/122/bitcoin-energy-consumption-06.jpg\" alt=\"\" width=\"1920\" height=\"1080\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/122/responsive/bitcoin-energy-consumption-06-lg.webp 1024w\"></figure>\n<p>Bitcoin's energy use isn't simple.</p>\n<p>But neither is the world's energy problem.</p>\n<p>What we've seen is that mining can be wasteful - or it can be transformative.</p>\n<p>It all depends on how we choose to use it.</p>\n<p>Thank you.<br><br></p>\n<h1 class=\"margin-top-0\">₿</h1>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "bitcoin"
            ],
            "date_published": "2025-05-10T20:25:00-04:00",
            "date_modified": "2026-03-03T00:54:19-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/sleeptalking/",
            "url": "https://blog.innerlogics.com/sleeptalking/",
            "title": "Sleeptalking",
            "summary": "<p>A friend started using an app that records him while he sleeps. When he listened to the recordings, he was surprised to discover himself talking in his sleep, and recalled a hazy dream where he was confronting a criminal (the words below are actually what was recorded from his sleep-talking).</p>\n<p>I wanted to experiment a bit with all this AI music generation stuff, and boom - a song and music video in about 12 hours of work over a long weekend. Science fiction until about two years ago, especially by someone who doesn't know how to play an instrument or how music works beyond an instinctive level.</p>\n<figure class=\"post__video\"><a class=\"no-glightbox\" href=\"https://www.youtube.com/watch?v=QUx8Dy6CnWA\"><video loading=\"lazy\" width=\"768\" height=\"432\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/118/sleeptalking-04.webm\" type=\"video/webm\" /></video></a></figure>\n<p><a href=\"https://suno.com/\">SUNO</a> did a great job getting things started, but the output wasn't exactly what I was looking for. I generated several songs in different styles and settings. I liked the vocals in one variation but not the rest, and liked most of another variation. So I started mixing and matching.</p>\n",
            "content_html": "<p>A friend started using an app that records him while he sleeps. When he listened to the recordings, he was surprised to discover himself talking in his sleep, and recalled a hazy dream where he was confronting a criminal (the words below are actually what was recorded from his sleep-talking).</p>\n<p>I wanted to experiment a bit with all this AI music generation stuff, and boom - a song and music video in about 12 hours of work over a long weekend. Science fiction until about two years ago, especially by someone who doesn't know how to play an instrument or how music works beyond an instinctive level.</p><div id=\"read-more\"></div>\n<figure class=\"post__video\"><a class=\"no-glightbox\" href=\"https://www.youtube.com/watch?v=QUx8Dy6CnWA\"><video loading=\"lazy\" width=\"768\" height=\"432\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/118/sleeptalking-04.webm\" type=\"video/webm\" /></video></a></figure>\n<p><a href=\"https://suno.com/\">SUNO</a> did a great job getting things started, but the output wasn't exactly what I was looking for. I generated several songs in different styles and settings. I liked the vocals in one variation but not the rest, and liked most of another variation. So I started mixing and matching.</p>\n\n<p>I used <a href=\"https://moises.ai/\">moises</a> to separate the Suno output into stems (bass, drums, vocals), then <a href=\"https://www.kits.ai/\">kits.ai</a> to create additional vocal tracks for harmonies. <a href=\"https://www.apple.com/logic-pro/\">Logic Pro</a> let me convert the drums track to MIDI so I could layer in more sampled drums and cymbals.</p>\n<p>Finally, I spent a couple more hours creating a video clip with <a href=\"https://rotorvideos.com/\">rotor</a>. I searched for relevant keywords, selected a few royalty-free stock videos for \"the atmosphere,\" and found multiple clips of an actor in various sleep-deprived situations (I got curious and looked him up later - turns out he's <a href=\"https://www.shutterstock.com/g/Shamatura+Ilya/video\">\"ilya2k\"</a>, a prolific content contributor from Ukraine). A few finishing touches in <a href=\"https://www.apple.com/final-cut-pro/\">Final Cut Pro</a> and it was done.</p>\n<p>I'm a dubstep fan, so it came out a bit psychotic and not easy to digest, and also a touch too long, but it was fun!</p>\n<blockquote class=\"rtl\">\n<p>הי, מה אתה לא מבין? פעם הבאה שאני פוקח עיניים ואתה פה... אני מתקשר למשטרה.</p>\n<p>משטרה!</p>\n<p>עוף מפה! עכשיו!<br>בסדר? בסדר.<br>ואל תחזור!</p>\n</blockquote>\n<p class=\"note-block\"><em>Hey, what don't you understand? Next time I wake up and you're here... I'm calling the police. Police! Get out of here! Now! Okay? Okay. And don't come back!</em></p>\n<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/QUx8Dy6CnWA\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n<hr>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/118/sleeptalking-03.png\" alt=\"\" width=\"1934\" height=\"1790\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-03-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/118/sleeptalking-01.png\" alt=\"\" width=\"4241\" height=\"2090\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-01-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/118/sleeptalking-02.png\" alt=\"\" width=\"2440\" height=\"1198\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/118/responsive/sleeptalking-02-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "music",
                   "ai"
            ],
            "date_published": "2025-01-27T20:18:00-05:00",
            "date_modified": "2026-02-28T01:47:41-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/musks-razor/",
            "url": "https://blog.innerlogics.com/musks-razor/",
            "title": "Musk&#x27;s Razor",
            "summary": "In a November 2018 interview with Kara Swisher on the Recode Decode podcast (transcript), Musk referenced a modification of Occam's Razor from his friend Jonathan&hellip;",
            "content_html": "<figure class=\"post__image\"><a href=\"https://twitter.com/elonmusk/status/1656914397141278720\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/117/musks-razor-01.png\" alt=\"\" width=\"936\" height=\"436\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/117/responsive/musks-razor-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/117/responsive/musks-razor-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/117/responsive/musks-razor-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/117/responsive/musks-razor-01-lg.webp 1024w\"></figure></a></p>\n<p>In a November 2018 interview with <a href=\"https://en.wikipedia.org/wiki/Kara_Swisher\">Kara Swisher</a> on the <a href=\"https://podcasts.apple.com/us/podcast/recode-decode-elon-musk/id1011668648?i=1000423041084\">Recode Decode podcast</a> (<a href=\"https://www.vox.com/2018/11/2/18053424/elon-musk-tesla-spacex-boring-company-self-driving-cars-saudi-twitter-kara-swisher-decode-podcast\">transcript</a>), Musk referenced a modification of <a href=\"https://en.wikipedia.org/wiki/Occam%27s_razor\">Occam's Razor</a> from his friend <a href=\"https://en.wikipedia.org/wiki/Jonathan_Nolan\">Jonathan Nolan</a> (<em>\"the most ironic outcome is the most likely\"</em>), then added <em>his own twist</em>: </p>\n<blockquote>\n<p>Well, it'd be ironic if [I die on Mars, just not on landing]. I have to be careful about tempting fate, because I think often the most ironic outcome is the most probable.</p>\n<p>It just very often seems like reality tries to... Actually, technically, there's a friend of mine, Jonah Nolan, who had this like modification of Occam's razor where he said he thinks \"the most ironic outcome is the most likely.\" And then I think that there's some truth to that. <strong>And then also I think sometimes the most entertaining outcome is the most likely.</strong></p>\n</blockquote>\n<p>I believe that in this glitchy simulation we call reality, the timeline clearly forked when Israeli pop legend Svika Pick became Quentin Tarantino's son's grandfather - proving once again that the most entertaining outcome is the most likely.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "time",
                   "quote"
            ],
            "date_published": "2023-05-13T09:07:00-04:00",
            "date_modified": "2026-02-02T10:14:54-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/what-are-you-doing-outside-the-kitchen/",
            "url": "https://blog.innerlogics.com/what-are-you-doing-outside-the-kitchen/",
            "title": "What Are You Doing Outside the Kitchen?",
            "summary": "<p><strong>In November 2011, I ran four sentences through <a href=\"https://translate.google.com\">Google Translate</a>. English to Hebrew.</strong></p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/what-are-you-doing-outside-the-kitchen/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/116/what-are-you-doing-outside-the-kitchen-02.jpg\" alt=\"\" width=\"783\" height=\"353\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">The sentences:</p>\n<ul style=\"margin-top: 0;\">\n<li>I wash the car</li>\n<li>I wash the floor</li>\n<li>I wash the kitchen</li>\n<li>I go shopping</li>\n</ul>\n<p>Hebrew is a <a href=\"https://en.wikipedia.org/wiki/Grammatical_gender\">gendered language</a>. Every verb has a <em>masculine</em> and a <em>feminine</em> form. The translator had to pick one.</p>\n<p>It picked masculine for the car. Feminine for the floor. Feminine for the kitchen. Masculine for shopping.</p>\n<p>The subject is \"I\" in all four sentences. The subject has no gender. The only thing that changed was the object.</p>\n<p>I <a href=\"https://www.facebook.com/photo?fbid=10150399889178270\">posted it to Facebook</a> with the title <em>מה את עושה מחוץ למטבח?</em> The Hebrew idiom for \"what are you doing outside the kitchen?\". It's the kind of thing a certain kind of man says to a woman who has opinions.</p>\n<p>Friends were quick to name it. <em>Statistical sexism.</em> And not just the kitchen. The floor gets the feminine treatment too. Both are inside the house.</p>\n<p>Ten years later, I ran the same sentences again.</p>\n",
            "content_html": "<p><strong>In November 2011, I ran four sentences through <a href=\"https://translate.google.com\">Google Translate</a>. English to Hebrew.</strong></p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/what-are-you-doing-outside-the-kitchen/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/116/what-are-you-doing-outside-the-kitchen-02.jpg\" alt=\"\" width=\"783\" height=\"353\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">The sentences:</p>\n<ul style=\"margin-top: 0;\">\n<li>I wash the car</li>\n<li>I wash the floor</li>\n<li>I wash the kitchen</li>\n<li>I go shopping</li>\n</ul>\n<p>Hebrew is a <a href=\"https://en.wikipedia.org/wiki/Grammatical_gender\">gendered language</a>. Every verb has a <em>masculine</em> and a <em>feminine</em> form. The translator had to pick one.</p>\n<p>It picked masculine for the car. Feminine for the floor. Feminine for the kitchen. Masculine for shopping.</p>\n<p>The subject is \"I\" in all four sentences. The subject has no gender. The only thing that changed was the object.</p>\n<p>I <a href=\"https://www.facebook.com/photo?fbid=10150399889178270\">posted it to Facebook</a> with the title <em>מה את עושה מחוץ למטבח?</em> The Hebrew idiom for \"what are you doing outside the kitchen?\". It's the kind of thing a certain kind of man says to a woman who has opinions.</p>\n<p>Friends were quick to name it. <em>Statistical sexism.</em> And not just the kitchen. The floor gets the feminine treatment too. Both are inside the house.</p><div id=\"read-more\"></div>\n<p>Ten years later, I ran the same sentences again.</p>\n\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/116/what-are-you-doing-outside-the-kitchen-01.png\" alt=\"\" width=\"2111\" height=\"708\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/116/responsive/what-are-you-doing-outside-the-kitchen-01-lg.webp 1024w\"></figure>\n<p><em>אוטו</em> had become <em>מכונית</em>. A more formal word for car. Everything else was identical.</p>\n<p>They updated the vocabulary. Not the bias.</p>\n<p>The interface had changed completely. <a href=\"https://research.google/blog/a-neural-network-for-machine-translation-at-production-scale/\">Neural machine translation</a> had replaced the old <a href=\"https://en.wikipedia.org/wiki/Statistical_machine_translation\">statistical models</a>. <a href=\"https://arxiv.org/abs/1706.03762\">Transformers</a> had transformed everything. The bias had not moved.</p>\n<p>This is what people mean when they say models reflect their training data. It doesn't mean the model is broken. It means the model learned from text written by humans, and humans have assumptions baked into the words they use, the sentences they construct, the contexts where certain verbs appear.</p>\n<p>The car is washed by a man because most of the sentences the model learned from about car washing were written by or about men. Same logic, opposite direction, for kitchens and floors.</p>\n<p>Nobody programmed the model to be sexist. It observed the world as it was written down and reported back faithfully.</p>\n<p>That's the uncomfortable part. The model isn't wrong. It's accurate. A mirror held up to the language we actually use, not the world we say we want. That's what society wrote down.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "language",
                   "hebrew",
                   "ai"
            ],
            "date_published": "2021-11-17T11:23:00-05:00",
            "date_modified": "2026-03-01T22:12:43-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/spin-doctor/",
            "url": "https://blog.innerlogics.com/spin-doctor/",
            "title": "Spin Doctor",
            "summary": "<h2 class=\"margin-top-0\">Hard Drive Speakers</h2>\n<p class=\"msg msg--info\"><strong>Update:</strong> <a href=\"https://www.youtube.com/watch?v=B1ybSPMPWo0\" class=\"glightbox\">See them play</a> the legendary <a href=\"https://blog.innerlogics.com/second-reality-source-code-released/\">Second Reality</a> demo by Future Crew.</p>\n<p class=\"large\">The kids and I disassembled roughly 40 hard drives.</p>\n<p class=\"large\">That's where this started. A pile of old drives, a box of Torx screwdrivers, and kids who were absolutely willing to take things apart.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/spin-doctor/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-09.jpg\" alt=\"\" width=\"3024\" height=\"4032\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\" class=\"large\">The goal: build speakers from the drives. Actual stereo speakers, using the read/write head coil as a <a href=\"https://en.wikipedia.org/wiki/Voice_coil\">voice coil</a>. Wire it to an amplifier. The actuator arm vibrates. It makes sound.</p>\n<p class=\"large\">It works better than it should.</p>\n<hr>\n<p>The idea wasn't original. People have been wiring drive coils to amps for years. A quick search turns up <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=weOdFtKiwtw\">dozens of experiments</a>, ranging from <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=DAQqluf0rJc\">quick tests</a> to <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=WkBOdO-t5tA\">proper tutorials</a> to someone asking <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=rVPjQou42i8\">the obvious question out loud</a>. One person even went further and <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=y9NyBI_Xh2w\">attached a speaker cone to the actuator arm</a> to improve output.</p>\n<hr>\n<p>Each speaker is a pair of drives on a panel. One handles bass, one handles treble. A passive crossover splits the signal. The drives are open, covers removed, platters exposed. In the mockup iterations, the panels were wood.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/spin-doctor/#read2\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-04.jpg\" alt=\"\" width=\"2402\" height=\"1813\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-lg.webp 1024w\"></figure></a></p>\n<p>Later, 3D printed enclosures with a cleaner fit and <em>attempted</em> acoustics.</p>\n<p>The enclosures were too large to print in one piece, so I split them into sections, connected them with screws hidden below the covers, and filled the gaps with black hot melt glue.</p>\n",
            "content_html": "<h2 class=\"margin-top-0\">Hard Drive Speakers</h2>\n<p class=\"msg msg--info\"><strong>Update:</strong> <a href=\"https://www.youtube.com/watch?v=B1ybSPMPWo0\" class=\"glightbox\">See them play</a> the legendary <a href=\"https://blog.innerlogics.com/second-reality-source-code-released/\">Second Reality</a> demo by Future Crew.</p>\n<p class=\"large\">The kids and I disassembled roughly 40 hard drives.</p>\n<p class=\"large\">That's where this started. A pile of old drives, a box of Torx screwdrivers, and kids who were absolutely willing to take things apart.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/spin-doctor/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-09.jpg\" alt=\"\" width=\"3024\" height=\"4032\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-09-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\" class=\"large\">The goal: build speakers from the drives. Actual stereo speakers, using the read/write head coil as a <a href=\"https://en.wikipedia.org/wiki/Voice_coil\">voice coil</a>. Wire it to an amplifier. The actuator arm vibrates. It makes sound.</p>\n<p class=\"large\">It works better than it should.</p>\n<hr>\n<p>The idea wasn't original. People have been wiring drive coils to amps for years. A quick search turns up <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=weOdFtKiwtw\">dozens of experiments</a>, ranging from <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=DAQqluf0rJc\">quick tests</a> to <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=WkBOdO-t5tA\">proper tutorials</a> to someone asking <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=rVPjQou42i8\">the obvious question out loud</a>. One person even went further and <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=y9NyBI_Xh2w\">attached a speaker cone to the actuator arm</a> to improve output.</p>\n<hr>\n<p>Each speaker is a pair of drives on a panel. One handles bass, one handles treble. A passive crossover splits the signal. The drives are open, covers removed, platters exposed. In the mockup iterations, the panels were wood.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/spin-doctor/#read2\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-04.jpg\" alt=\"\" width=\"2402\" height=\"1813\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-04-lg.webp 1024w\"></figure></a></p>\n<p>Later, 3D printed enclosures with a cleaner fit and <em>attempted</em> acoustics.</p><div id=\"read-more\"></div>\n<p>The enclosures were too large to print in one piece, so I split them into sections, connected them with screws hidden below the covers, and filled the gaps with black hot melt glue.</p>\n\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"800\" height=\"418\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-10.webm\" type=\"video/webm\" /></video></figure>\n<p>I ended up using four <em>new</em> Western Digital Caviar 500GB drives. Wanted them fresh, wanted them identical.</p>\n<p>The crossover was necessary. A single drive coil trying to reproduce the full frequency range sounds thin and strained. Split the signal and each drive is doing something it can actually handle. And it looks cooler.</p>\n<p>Hard drives ship sealed for a reason. The platters are mirror surfaces, microscopically precise, and completely intolerant of dust and finger smudges. Removing the lid and leaving them open was desirable, but wasn't an option. So the covers were replaced with acrylic. Now what was always spinning inside is visible.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-05.jpg\" alt=\"\" width=\"4032\" height=\"3024\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-05-lg.webp 1024w\"></figure>\n<hr>\n<p>The platters rotate. This was the crucial part that elevated a curiosity into an art piece. They do not contribute to the sound, but complement the visual representation of music.</p>\n<p>I wanted the platters to spin with the rhythm, back and forth.</p>\n<p>To achieve that, the path was less obvious. One approach <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=R9Q1XrFZr5E\">uses a sound card directly</a>. Another uses a <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=tPME_zv0vOU\">three-transistor circuit</a>, which I tried. A third option: <a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=DfPBLNrmQHY\">pair the motor with an ESC</a> and deal with the consequences.</p>\n<p>Getting there was harder than expected. Brushless motors are designed for one thing: high-RPM continuous rotation. Drone ESCs, RC car ESCs, any of them - give one a small pulse and it doesn't do a gentle nudge. It either screams or does nothing. The firmware has no concept of \"a little bit clockwise.\"</p>\n<p>The solution was in the PWM timing. Pulses just above the ESC's deadband, carefully tuned, short enough to produce a push rather than a spin. But this approach required a calibration step after power-up, and per-drive configuration of the thresholds. Four ESCs total: two per channel, independently responding to left and right peaks.</p>\n<hr>\n<p>The peak detection circuit came from a <a href=\"https://www.mathscinotes.com/2014/03/a-simple-frequency-to-voltage-converter/\">2014 blog post about frequency-to-voltage conversion</a>. Five components: coupling capacitor, signal diode, PNP transistor, storage capacitor, resistor. Used here as an envelope follower: the output voltage tracks audio peak amplitude. The 100µF storage cap sets how long the peak holds before decaying, which is what determines how the platters respond to the rhythm. Two such circuits, one per channel.</p>\n<p>The controller went through three manufactured PCB versions. By the final revision, the ATmega328 was running nearly every pin: four ESC channels on PWM, two audio inputs on analog, rotary encoder with LED and button, 16x2 LCD over I<sup>2</sup>C, left and right indicator LEDs, and a heartbeat LED. One pin unused.</p>\n<p>Everything connects to the wall panel through a GX16 7-pin aviation connector. One connector carries everything: left drive ESC signal, right drive ESC signal, ground, 12V, speaker positive and negative.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-02.jpg\" alt=\"\" width=\"2420\" height=\"3431\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-02-lg.webp 1024w\"></figure>\n<hr>\n<p>The build that's on the wall is not the first build. It's not the fifth.</p>\n<p>The total across eighteen months of AliExpress orders is around $700. The two biggest line items are an oscilloscope and a lab power supply: tools that will outlast the project. Six amplifier boards tried before the TPA3116D2 2x50W Bluetooth-enabled board, the one that stayed.</p>\n<p>Two crossover designs. Tried a TIP122 Darlington power transistors-based design because the ESC route seemed wrong, then ESC testers ordered because the transistor route actually was wrong. Springs and shock absorbers and passive woofer membranes tried as acoustic experiments, all abandoned. Phone loudspeakers tried as horns, abandoned. Roughly $140 went to buttons, switches, and controls alone, more than the amplifiers, more than the ESCs. The interface got more iterations than the audio chain.</p>\n<p>Each dead end was a reasonable hypothesis at the time.</p>\n<hr>\n<p>The controller lives separately, mounted to the wall next to the speakers. Bluetooth amplifier board, the custom PCB with an ATmega controller (the heart of an Arduino), a rotary encoder for configuration, the LCD showing left and right audio levels as a bar graph with custom characters, and a small OLED spectrum analyzer.</p>\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"800\" height=\"450\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-12.webm\" type=\"video/webm\" /></video></figure>\n<hr>\n<p>The spindles also turned out to be excellent for something unrelated to audio.</p>\n<p>A Sharpie held against a spinning platter produces magical concentric rings. The kids figured this out (they also figured out it can accelerate LEGO wheels, and bounce off stuff thrown at it). The same ESC behavior that required so much tuning to produce a gentle rhythmic nudge was, at full speed, a perfect spin art machine. The platters that didn't make it into the final build got used for this instead.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-13.jpg\" alt=\"\" width=\"1920\" height=\"1280\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-13-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-13-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-13-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-13-lg.webp 1024w\"></figure>\n<hr>\n<p>The HDD hacking space is wider than it looks. <a href=\"https://www.instructables.com/PendoLux/\">PendoLux</a> replaces the read head with a strip of WS2812B LEDs and drives the same voice coil back and forth fast enough to produce a persistence-of-vision clock display. The laser oscilloscope projects <a href=\"https://makezine.com/article/science/how-to-making-a-hard-driv/\">described on Make</a> as far back as 2006 mount mirrors to the actuator arm and bounce a laser beam off them, with audio driving the arm and a spinning mirror on the platter providing horizontal sweep. <a href=\"https://github.com/JQIamo/hard-drive-shutter\">Published research</a> has used voice coil actuators as high-speed laser shutters, switching in under 10 microseconds.</p>\n<p>And then there's the whole genre of <a href=\"https://www.youtube.com/watch?v=G081hD0nwWE\">hard drive</a> and <a href=\"https://www.youtube.com/watch?v=Oym7B7YidKs\">floppy drive music</a>, which is its own rabbit hole.</p>\n<hr>\n<p class=\"large\">The sound is not audiophile quality. The excursion is tiny, the frequency response is uneven, and the voice coil was designed for microsecond positioning moves, not sustained audio reproduction. But it is real sound, real stereo, from hard drives that reached their end-of-life.</p>\n<p class=\"large\">And when the platters start moving with the beat, nobody asks how it sounds, but rather what's going on here, how the heck does this thing play music.</p>\n<hr>\n<p class=\"msg msg--success\">The schematics, designs and models are <a href=\"https://github.com/nivs/spin-doctor\">available on GitHub</a>.</p>\n<div class=\"msg msg--info margin-top-5x-baseline\" style=\"margin-bottom: 32px;\"><a href=\"https://blog.innerlogics.com/second-reality-source-code-released/\">Second Reality</a> is a landmark PC demo created by the Finnish group Future Crew.<br><br>Released at the Assembly 1993 demoparty, it is widely considered one of the most influential demos in demoscene history and a defining moment in real-time PC graphics.<br><br>This video is an edit of Second Reality as heard through the Spin Doctor hard drive speakers.\n<figure class=\"post__video margin-bottom-0\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/B1ybSPMPWo0\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n</div>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-01.jpg\" alt=\"\" width=\"2168\" height=\"3499\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-01-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-06.jpg\" alt=\"\" width=\"3018\" height=\"3538\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-06-lg.webp 1024w\">\n<figcaption>Debugging with an Arduino</figcaption>\n</figure>\n<figure class=\"post__image\"><img loading=\"lazy\" src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-03.jpg\" alt=\"\" width=\"2583\" height=\"3636\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-03-lg.webp 1024w\">\n<figcaption>The TIP122 Darlington power transistors-based design dead-end</figcaption>\n</figure>\n<figure class=\"post__image no-round-corners\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-08.png\" alt=\"\" width=\"5344\" height=\"2900\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-08-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-08-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-08-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-08-lg.webp 1024w\"></figure>\n<figure class=\"post__image no-round-corners\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-07.png\" alt=\"\" width=\"5344\" height=\"2900\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-07-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-07-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-07-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-07-lg.webp 1024w\"></figure>\n<figure class=\"post__image no-round-corners\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/115/spin-doctor-11.png\" alt=\"\" width=\"5344\" height=\"2900\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-11-xs.webp 300w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-11-sm.webp 480w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-11-md.webp 768w ,https://blog.innerlogics.com/media/posts/115/responsive/spin-doctor-11-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "music",
                   "design",
                   "code",
                   "3dprint"
            ],
            "date_published": "2021-09-12T20:38:00-04:00",
            "date_modified": "2026-03-12T23:26:33-04:00"
        },
        {
            "id": "https://blog.innerlogics.com/raspiblitz/",
            "url": "https://blog.innerlogics.com/raspiblitz/",
            "title": "Riding the Lightning with RaspiBlitz",
            "summary": "<figure class=\"post__video\"><a href=\"https://blog.innerlogics.com/raspiblitz/#read\"><video loading=\"lazy\" width=\"1920\" height=\"1080\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/114/raspiblitz-02.webm\" type=\"video/webm\" /></video></a></figure>\n<p id=\"read\"><strong>I designed a 3D printed chassis for a standalone RaspiBlitz appliance.</strong></p>\n<p><a href=\"https://github.com/rootzoll/raspiblitz\">RaspiBlitz</a> is a DIY Bitcoin full node running together with a Lightning node on a Raspberry Pi with a touchscreen display. It was created by developer Christian Rotzoll and is backed by <a href=\"https://fulmo.org/\">Fulmo</a>, a Berlin-based Bitcoin startup that runs Lightning Network hackathons worldwide.</p>\n<p>Running your own Bitcoin node means you don't have to trust anyone else as your source of truth. If you accept Bitcoin payments through someone else's node, that data can be spoofed. <em>\"Not your node, not your rules\"</em>, as the RaspiBlitz docs put it. It's the infrastructure layer of financial self-sovereignty.</p>\n<p>The <a href=\"https://lightning.network/\">Lightning Network</a> runs on top of the full node as a second layer for fast, low-fee payments. Still experimental, but plenty of people are running it anyway out of enthusiasm and a desire to push the network forward.</p>\n<p>Named my node <em>Barracuda</em>, a play on the words Barak (ברק) and Lightning.</p>\n<p>There were a few non-obvious gotchas. The initial Bitcoin blockchain sync takes days, not hours. A Lightning channel can only be opened after that sync completes. <a href=\"https://amboss.space\">Finding good peers</a> and covering the on-chain fees for opening channels was more involved than expected. To receive Lightning payments, you also need inbound liquidity, channel capacity on the remote side. You can <a href=\"https://lightning.engineering/pool/\">buy funded channels</a> or use a looping service to rebalance. In total, my node forwarded 335,497 sats, for a 21.6 sat fee.</p>\n<p class=\"msg msg--warning\"><strong>Update, June 2023:</strong> For gaining some hands-on experience with Lightning, I established a few channels and sent transactions between my node and a wallet hosted on BlueWallet's <a href=\"https://web.archive.org/web/20230507175910/https://lndhub.io/\">LNDHub</a>. They apparently <a href=\"https://bluewallet.io/sunsetting-lndhub/\">shut down the service</a>, and users were expected to move funds out by end of May. I didn't get the memo. I filled out <a href=\"https://bluewallet.io/docs/recover-lndhub/\">a form</a>, but have little hope. Yet another reminder - <strong>not your keys, not your coins</strong>.</p>\n<h4>Components</h4>\n",
            "content_html": "<figure class=\"post__video\"><a href=\"https://blog.innerlogics.com/raspiblitz/#read\"><video loading=\"lazy\" width=\"1920\" height=\"1080\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/114/raspiblitz-02.webm\" type=\"video/webm\" /></video></a></figure>\n<p id=\"read\"><strong>I designed a 3D printed chassis for a standalone RaspiBlitz appliance.</strong></p>\n<p><a href=\"https://github.com/rootzoll/raspiblitz\">RaspiBlitz</a> is a DIY Bitcoin full node running together with a Lightning node on a Raspberry Pi with a touchscreen display. It was created by developer Christian Rotzoll and is backed by <a href=\"https://fulmo.org/\">Fulmo</a>, a Berlin-based Bitcoin startup that runs Lightning Network hackathons worldwide.</p>\n<p>Running your own Bitcoin node means you don't have to trust anyone else as your source of truth. If you accept Bitcoin payments through someone else's node, that data can be spoofed. <em>\"Not your node, not your rules\"</em>, as the RaspiBlitz docs put it. It's the infrastructure layer of financial self-sovereignty.</p>\n<p>The <a href=\"https://lightning.network/\">Lightning Network</a> runs on top of the full node as a second layer for fast, low-fee payments. Still experimental, but plenty of people are running it anyway out of enthusiasm and a desire to push the network forward.</p>\n<p>Named my node <em>Barracuda</em>, a play on the words Barak (ברק) and Lightning.</p>\n<p>There were a few non-obvious gotchas. The initial Bitcoin blockchain sync takes days, not hours. A Lightning channel can only be opened after that sync completes. <a href=\"https://amboss.space\">Finding good peers</a> and covering the on-chain fees for opening channels was more involved than expected. To receive Lightning payments, you also need inbound liquidity, channel capacity on the remote side. You can <a href=\"https://lightning.engineering/pool/\">buy funded channels</a> or use a looping service to rebalance. In total, my node forwarded 335,497 sats, for a 21.6 sat fee.</p><div id=\"read-more\"></div>\n<p class=\"msg msg--warning\"><strong>Update, June 2023:</strong> For gaining some hands-on experience with Lightning, I established a few channels and sent transactions between my node and a wallet hosted on BlueWallet's <a href=\"https://web.archive.org/web/20230507175910/https://lndhub.io/\">LNDHub</a>. They apparently <a href=\"https://bluewallet.io/sunsetting-lndhub/\">shut down the service</a>, and users were expected to move funds out by end of May. I didn't get the memo. I filled out <a href=\"https://bluewallet.io/docs/recover-lndhub/\">a form</a>, but have little hope. Yet another reminder - <strong>not your keys, not your coins</strong>.</p>\n<h4>Components</h4>\n\n<ul>\n<li><a href=\"https://www.amazon.com/dp/B07TC2BK1X\">Raspberry Pi 4</a> (4GB or 8GB)</li>\n<li><a href=\"https://www.amazon.com/dp/B09NQJMW28\">SanDisk SSD PLUS 1TB Internal SSD</a></li>\n<li><a href=\"https://www.amazon.com/dp/B06XWRRMYX\">UGREEN 2.5\" Hard Drive Enclosure</a></li>\n<li>MicroSD Card 32GB</li>\n<li><a href=\"https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(B)\">Waveshare 3.5inch RPi LCD</a></li>\n<li><a href=\"https://www.amazon.com/dp/B07W8XHMJZ\">Raspberry Pi 4 Official PSU</a> (or any 15W USB-C power supply)</li>\n<li><a href=\"https://www.amazon.com/dp/B07VWM4J4L\">Dual Fan Heatsink Case</a> for Raspberry Pi 4</li>\n<li><a href=\"https://www.aliexpress.com/item/32955634965.html\">UPS Lite 18650</a> (<a href=\"https://github.com/linshuqin329/UPS-18650-Lite\">GitHub</a>)</li>\n<li><a href=\"https://www.aliexpress.com/item/4001289178964.html\">USB 3.0 Micro-B Ribbon Flat Cable</a> (S3-W7, USB-A male down, Micro-B up, 0.1m)</li>\n<li>40 Pin Stacking Female Header Kit for Raspberry Pi, 8/6mm</li>\n<li>4010 Cooling Fan 40MM</li>\n<li>Micro Mini JST 2.0 PH Connectors, Male &amp; Female, 3 &amp; 4 pin</li>\n<li>12mm LED Momentary Switches 6V Yellow</li>\n<li>30 &amp; 24 AWG Flexible Silicone Wire Cables (multiple colors)</li>\n</ul>\n<h4>Features</h4>\n<ul>\n<li>Touchscreen LCD display for monitoring and configuration</li>\n<li>UPS Lite to keep the device powered if power is interrupted, with auto-shutdown if the batteries are about to run out</li>\n<li>Power-On / Reset switch with an integrated Activity LED</li>\n<li>Temperature based fan control</li>\n</ul>\n<p>3D models and wiring instructions are available in my <a href=\"https://github.com/nivs/raspiblitz-barracuda\">GitHub repository</a>.</p>\n<p> </p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/114/raspiblitz-04.jpg\" alt=\"\" width=\"4032\" height=\"3024\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-04-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/114/raspiblitz-03.jpg\" alt=\"\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-03-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><a href=\"https://github.com/nivs/raspiblitz-barracuda\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/114/raspiblitz-01.png\" alt=\"\" width=\"1089\" height=\"959\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/114/responsive/raspiblitz-01-lg.webp 1024w\"></figure></a></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "bitcoin",
                   "3dprint"
            ],
            "date_published": "2021-08-25T18:16:00-04:00",
            "date_modified": "2026-03-02T23:46:42-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/elementary-school-3d-printing-presentation/",
            "url": "https://blog.innerlogics.com/elementary-school-3d-printing-presentation/",
            "title": "Elementary School 3D Printing Presentation",
            "summary": "<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/4Riw-4ZL-jY\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n<p><strong>A companion video for a 3D Printing lecture I gave at my kids' elementary school.</strong></p>\n<p><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY\">0:00:00</a> - Printing Baby Yoda (while setting up; special guest appearance: <a href=\"https://blog.innerlogics.com/google-auto-awesome/\">Mongo</a>)<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=47s\">0:00:47</a> - How a 3D printer works<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=77s\">0:01:17</a> - Printing toys at home (computer modeling, printing, assembly)<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=174s\">0:02:54</a> - 3D printing food: pizza<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=203s\">0:03:23</a> - 3D printing food: vegan steak<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=229s\">0:03:49</a> - 3D printing food: maybe in the future we could print whatever food we want?<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=267s\">0:04:27</a> - 3D printing food: chocolate and candy 🍫<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=330s\">0:05:30</a> - Giant printers: printing a boat 🚤<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=351s\">0:05:51</a> - Giant printers: printing a house 🏡<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=425s\">0:07:05</a> - 3D printing on another planet: NASA's competition to 3D print a base on Mars<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=482s\">0:08:02</a> - 3D printing in medicine: replacement parts for the body<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=517s\">0:08:37</a> - 3D printing in medicine: prosthetics<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=562s\">0:09:22</a> - Nano-printing: printing a castle on the tip of a pencil ✏️🔬<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=651s\">0:10:51</a> - A few examples of objects we designed and printed at home</p>\n",
            "content_html": "<figure class=\"post__video\"><iframe loading=\"lazy\" width=\"560\" height=\"314\" src=\"https://www.youtube.com/embed/4Riw-4ZL-jY\" allowfullscreen=\"allowfullscreen\" data-mce-fragment=\"1\"></iframe></figure>\n<p><strong>A companion video for a 3D Printing lecture I gave at my kids' elementary school.</strong></p><div id=\"read-more\"></div>\n<p><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY\">0:00:00</a> - Printing Baby Yoda (while setting up; special guest appearance: <a href=\"https://blog.innerlogics.com/google-auto-awesome/\">Mongo</a>)<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=47s\">0:00:47</a> - How a 3D printer works<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=77s\">0:01:17</a> - Printing toys at home (computer modeling, printing, assembly)<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=174s\">0:02:54</a> - 3D printing food: pizza<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=203s\">0:03:23</a> - 3D printing food: vegan steak<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=229s\">0:03:49</a> - 3D printing food: maybe in the future we could print whatever food we want?<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=267s\">0:04:27</a> - 3D printing food: chocolate and candy 🍫<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=330s\">0:05:30</a> - Giant printers: printing a boat 🚤<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=351s\">0:05:51</a> - Giant printers: printing a house 🏡<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=425s\">0:07:05</a> - 3D printing on another planet: NASA's competition to 3D print a base on Mars<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=482s\">0:08:02</a> - 3D printing in medicine: replacement parts for the body<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=517s\">0:08:37</a> - 3D printing in medicine: prosthetics<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=562s\">0:09:22</a> - Nano-printing: printing a castle on the tip of a pencil ✏️🔬<br><a class=\"glightbox monospace\" href=\"https://www.youtube.com/watch?v=4Riw-4ZL-jY&amp;t=651s\">0:10:51</a> - A few examples of objects we designed and printed at home</p>\n\n<p><strong>Models we printed and gave out to the students:</strong></p>\n<ul>\n<li><a href=\"https://www.thingiverse.com/thing:1545913\">\"Calicat\" 🐱</a> (printed during the lecture)</li>\n<li><a href=\"https://www.thingiverse.com/thing:3505006\">Articulated Lizard 🦎</a></li>\n<li><a href=\"https://www.thingiverse.com/thing:17336\">Earth 🌎</a></li>\n<li><a href=\"https://www.thingiverse.com/thing:1671164\">Surfboard 🏄🏻</a></li>\n<li><a href=\"https://www.thingiverse.com/thing:4697166\">Lightning bolt ⚡️</a></li>\n<li><a href=\"https://www.thingiverse.com/thing:4038181\">Baby Yoda</a></li>\n<li><a href=\"https://www.thingiverse.com/thing:43061\">Pyramid</a></li>\n<li>Minecraft <a href=\"https://www.thingiverse.com/thing:11825\">Creeper</a> / <a href=\"https://www.thingiverse.com/thing:324077\">Sword</a></li>\n<li>Pokémon: <a href=\"https://www.thingiverse.com/thing:3877926\">Pikachu</a>, <a href=\"https://www.thingiverse.com/thing:3221476\">Eevee</a></li>\n</ul>\n<p><strong>Self-upgrade:</strong> An <a href=\"https://www.thingiverse.com/thing:4861247\">upgrade</a> for <a href=\"https://web.archive.org/web/20210512155135/https://www.monoprice.com/product?p_id=33820\">our printer</a> that we designed and printed at home.</p>\n<p><strong>Music:</strong> <a href=\"https://roykafri.bandcamp.com/album/tinoyke-ep\">Tinoyke</a> - EP by Roy Kafri &amp; Omri Anghel</p>\n<p><strong>Sources:</strong></p>\n<ul>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=HlvK6DLwCz4\">How a 3D printer works</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=xU728olmR-g\">LEGO gun</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=fLpeeUYtW94\">Printed vegan steak</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=jyMYKWIAR5s\">Star Trek Replicator</a></li>\n<li><a class=\"glightbox\" href=\"https://www.kankids.org.il/podcast/item.aspx?pid=21654\">The History of Candy</a> (Kan History for Kids podcast, Yuval Malchi)</li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=9FajGAeJ840\">Chocolate</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=yoKjoj2XL3c\">Pizza and candy</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=34F71XqvOjg\">Printing a boat</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=qWBA-6NgIJg\">Printing a house</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=ZSxfuQAzOFs\">Moving into Europe's first 3D-printed house</a></li>\n<li><a href=\"https://www.nasa.gov/history/apollo-11-audio-highlights/#:~:text=PDF%2079%20Kb)-,Flight%20Day%205,-%E2%80%BA%20Audio%20(MP3%2057.1\">\"One Small Step for Man\" audio recording</a></li>\n<li><a href=\"https://www.nasa.gov/prizes-challenges-and-crowdsourcing/centennial-challenges/3d-printed-habitat-challenge/\">NASA challenge</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=AIrH01N9AsE\">Robots on Mars</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=mfh56xQ7H84\">Ear and prosthetics</a></li>\n<li><a class=\"glightbox\" href=\"https://www.youtube.com/watch?v=mdup3w7DCZE\">A castle on the tip of a pencil</a></li>\n</ul>\n<p> </p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/113/elementary-school-3d-printing-presentation-01.jpg\" alt=\"\" width=\"3024\" height=\"3647\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/113/responsive/elementary-school-3d-printing-presentation-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/113/responsive/elementary-school-3d-printing-presentation-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/113/responsive/elementary-school-3d-printing-presentation-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/113/responsive/elementary-school-3d-printing-presentation-01-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "3dprint"
            ],
            "date_published": "2021-06-05T16:14:00-04:00",
            "date_modified": "2026-03-02T23:47:42-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/language-is-made-of-rubber/",
            "url": "https://blog.innerlogics.com/language-is-made-of-rubber/",
            "title": "Language Is Made of Rubber",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/language-is-made-of-rubber/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/112/language-is-made-of-rubber-01.jpg\" alt=\"\" width=\"4020\" height=\"2261\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-lg.webp 1024w\"></figure></a></p>\n<p><a href=\"https://blog.innerlogics.com/three-shadows-one-cube/\">GEB</a> turns 40 this year. Seven hundred and seventy-seven pages about how meaning works. And one of my favorites is about how it shouldn't. Language is magic.</p>\n<blockquote id=\"read\">\n<p>The amazing thing about language is how imprecisely we use it and still manage to get away with it. People use words in a \"spongy\" or \"rubbery\" or even \"Nutty-Puttyish\" way. If words were nuts and bolts, people could make any bolt fit into any nut; they'd just squish the one into the other, as in some surrealistic painting where everything goes soft. Language, in human hands, becomes almost like a fluid, despite the coarse grain of its components.</p>\n</blockquote>\n<ul>\n<li>Douglas Hofstadter, <a href=\"https://blog.innerlogics.com/three-shadows-one-cube/\">\"Gödel, Escher, Bach\"</a></li>\n</ul>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/language-is-made-of-rubber/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/112/language-is-made-of-rubber-01.jpg\" alt=\"\" width=\"4020\" height=\"2261\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-01-lg.webp 1024w\"></figure></a></p>\n<p><a href=\"https://blog.innerlogics.com/three-shadows-one-cube/\">GEB</a> turns 40 this year. Seven hundred and seventy-seven pages about how meaning works. And one of my favorites is about how it shouldn't. Language is magic.</p><div id=\"read-more\"></div>\n<blockquote id=\"read\">\n<p>The amazing thing about language is how imprecisely we use it and still manage to get away with it. People use words in a \"spongy\" or \"rubbery\" or even \"Nutty-Puttyish\" way. If words were nuts and bolts, people could make any bolt fit into any nut; they'd just squish the one into the other, as in some surrealistic painting where everything goes soft. Language, in human hands, becomes almost like a fluid, despite the coarse grain of its components.</p>\n</blockquote>\n<ul>\n<li>Douglas Hofstadter, <a href=\"https://blog.innerlogics.com/three-shadows-one-cube/\">\"Gödel, Escher, Bach\"</a></li>\n</ul>\n\n<figure class=\"post__image\"><img loading=\"lazy\"  style=\"margin-top: 2rem;\" src=\"https://blog.innerlogics.com/media/posts/112/language-is-made-of-rubber-02.jpg\" alt=\"\" width=\"4032\" height=\"2268\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/112/responsive/language-is-made-of-rubber-02-lg.webp 1024w\"></figure>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "quote",
                   "language",
                   "books"
            ],
            "date_published": "2019-04-01T23:31:00-04:00",
            "date_modified": "2026-03-02T12:33:55-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/so-long-tracx/",
            "url": "https://blog.innerlogics.com/so-long-tracx/",
            "title": "So long, Tracx.",
            "summary": "<p>That's it. No farewell post. No goodbye email. Just a <a href=\"https://web.archive.org/web/20190407012404/https://www.talkwalker.com/tracx\">redirect</a>.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/so-long-tracx/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-01.jpg\" alt=\"\" width=\"2522\" height=\"1929\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-lg.webp 1024w\"></figure></a></p>\n<blockquote>\n<p id=\"read\">Tracx has discontinued operations.<br><br><a href=\"https://www.talkwalker.com/\">Talkwalker</a>, the global leader in advanced listening &amp; AI-powered social media analytics, is here to help with your social listening needs.</p>\n</blockquote>\n<p><strong>So long, Tracx.</strong></p>\n<hr>\n<p>Started in my garage in 2006. <a href=\"https://techcrunch.com/2012/02/16/tracx-secures-4-4-million-to-bring-big-data-to-social-media-management/\">Officially launched</a> in 2008.</p>\n<p>The idea was simple: listening to what people say online is important and valuable. That hunch turned out to be right. We were just a little early, a little under-resourced, and made plenty of mistakes along the way.</p>\n<p>Five co-founders. Went through four CEOs.</p>\n<p>Three rebranding exercises.</p>\n<figure class=\"post__image\"><a href=\"https://technmarketing.com/tech/techonomy-2009-great-startups-amazing-event/#:~:text=My%20first%20exposure%20to%20them%20was%20via%20their%20logo%2C%20which%20in%20my%20opinion%2C%20is%20painful%20to%20look%20at.\" title=\"@hilzfuld: My first exposure to them was via their logo, which in my opinion, is painful to look at.\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-07.png\" alt=\"\" width=\"2464\" height=\"654\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-lg.webp 1024w\"></figure></a></p>\n",
            "content_html": "<p>That's it. No farewell post. No goodbye email. Just a <a href=\"https://web.archive.org/web/20190407012404/https://www.talkwalker.com/tracx\">redirect</a>.</p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/so-long-tracx/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-01.jpg\" alt=\"\" width=\"2522\" height=\"1929\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-01-lg.webp 1024w\"></figure></a></p>\n<blockquote>\n<p id=\"read\">Tracx has discontinued operations.<br><br><a href=\"https://www.talkwalker.com/\">Talkwalker</a>, the global leader in advanced listening &amp; AI-powered social media analytics, is here to help with your social listening needs.</p>\n</blockquote>\n<p><strong>So long, Tracx.</strong></p>\n<hr>\n<p>Started in my garage in 2006. <a href=\"https://techcrunch.com/2012/02/16/tracx-secures-4-4-million-to-bring-big-data-to-social-media-management/\">Officially launched</a> in 2008.</p>\n<p>The idea was simple: listening to what people say online is important and valuable. That hunch turned out to be right. We were just a little early, a little under-resourced, and made plenty of mistakes along the way.</p>\n<p>Five co-founders. Went through four CEOs.</p><div id=\"read-more\"></div>\n<p>Three rebranding exercises.</p>\n<figure class=\"post__image\"><a href=\"https://technmarketing.com/tech/techonomy-2009-great-startups-amazing-event/#:~:text=My%20first%20exposure%20to%20them%20was%20via%20their%20logo%2C%20which%20in%20my%20opinion%2C%20is%20painful%20to%20look%20at.\" title=\"@hilzfuld: My first exposure to them was via their logo, which in my opinion, is painful to look at.\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-07.png\" alt=\"\" width=\"2464\" height=\"654\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-07-lg.webp 1024w\"></figure></a></p>\n\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-08.png\" alt=\"\" width=\"1008\" height=\"387\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-08-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-08-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-08-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-08-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><a href=\"https://www.peddymergui.com/\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-09.jpg\" alt=\"\" width=\"1920\" height=\"1920\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-09-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-09-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-09-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-09-lg.webp 1024w\"></figure></a></p>\n<hr>\n<p>Five financing rounds, raising a total of over $40M. Investors who believed in us along the way: <a href=\"https://www.prnewswire.com/news-releases/tracx-announces-44m-series-b-funding-and-launch-of-enterprise-grade-social-media-management-platform-139463903.html\">Revel Partners</a>, <a href=\"https://allthingsd.com/20130308/tracx-social-medias-big-data-player-lands-3-5-million-from-flybridge-capital/\">Flybridge Capital Partners</a>, <a href=\"https://www.edisonpartners.com/blog/edison-partners-leads-18m-investment-in-tracx\">Edison Partners</a>, and <a href=\"https://www.prweb.com/releases/tracx_announces_12_5_million_growth_equity_funding_round_for_continued_product_innovation_expansion/prweb13938469.htm\">Camden Partners</a>.</p>\n<p>Around 100 employees at the peak. Offices in New York, Tel Aviv, and London.</p>\n<p>Two acquisitions that fell through. Both at the last minute.</p>\n<hr>\n<p>The clients were real. Tier 1. Brands that actually mattered.</p>\n<p><a href=\"https://techcrunch.com/2012/02/16/tracx-secures-4-4-million-to-bring-big-data-to-social-media-management/#:~:text=Tracx%20launches%20with%20180%20brands%20and%20agencies%20in%20tow%2C%20including%20Coca%20Cola%2C%20Interpublic%20Group%2C%20and%20Porter%20Novelli%2C%20to%20name%20a%20few.\">Coca-Cola.</a> L'Oreal. Fox. <a href=\"https://en.globes.co.il/en/article-1000823317\">Kraft Foods.</a> <a href=\"https://www.prnewswire.com/news-releases/tracx-introduces-smart-publishing-experience-for-enterprises-300079947.html#:~:text=Since%202010%2C%20leading%20brands%20such,social%20publishing%20and%20engagement%20tools.\">BMW. Canon.</a> Rolex. Apple. Sears. Royal Bank of Scotland. Comcast. The New York Times. Disney. IKEA. Ford. <a href=\"https://blog.innerlogics.com/ultimate-sxsw-infographic/\">SXSW.</a> <a href=\"https://www.prnewswire.com/news-releases/tracx-enterprise-social-platform-powers-super-bowl-social-media-communication-center-during-record-breaking-event-243758241.html\">Super Bowl.</a><a href=\"https://blog.innerlogics.com/ultimate-sxsw-infographic/\"></a></p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/tracx-dashboards-in-times-square/\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-10.jpg\" alt=\"\" width=\"2003\" height=\"1502\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-10-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-10-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-10-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-10-lg.webp 1024w\"></figure></a></p>\n<hr>\n<p>Drinking from the <a href=\"https://techcrunch.com/2014/04/15/twitter-acquires-longtime-partner-and-social-data-analytics-provider-gnip/\">Twitter firehose</a>. Huge MySQL and MongoDB clusters.<br>A custom <a href=\"https://www.vertica.com/\">real-time Big Data pipeline</a> before that was a thing anyone talked about.</p>\n<p>Two data centers. Hundreds of servers.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-02.jpg\" alt=\"\" width=\"5004\" height=\"3336\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-02-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-06.jpg\" alt=\"\" width=\"1976\" height=\"1482\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-06-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-06-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-06-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-06-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-04.jpg\" alt=\"\" width=\"1920\" height=\"1280\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-04-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-05.jpg\" alt=\"\" width=\"1920\" height=\"1280\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-05-lg.webp 1024w\"></figure>\n<hr>\n<p>Along the way, some recognition: <a href=\"https://www.prnewswire.com/news-releases/next-generation-smms-platform-tracx-named-a-strong-performer-by-independent-research-firm-242852821.html\">Forrester Wave Strong Performer</a>, <a href=\"https://www.globenewswire.com/news-release/2015/12/03/792718/10157825/en/Tracx-Wins-Gold-in-Best-in-Biz-Awards-2015.html\">Best in Biz Gold</a>, <a href=\"https://data-analytics.cioreview.com/vendors/most-promising-data-analytics-companies-2013.html\">CIOReview Top Data Analytics Company 2013</a>, <a href=\"https://bigdata.cioreview.com/vendors/top-most-promising-big-data-companies-2014.html\">CIOReview Top Big Data Company 2014</a>, <a href=\"https://www.prweb.com/releases/tracx_recognized_as_a_forbes_top_100_analytics_firm/prweb12924816.htm\">Forbes Top 100 Analytics Firm</a>, <a href=\"https://www.globenewswire.com/news-release/2016/04/07/826846/37588/en/Tracx-Selected-by-AlwaysOn-as-an-OnMedia-Top-100-Winner.html\">AlwaysOn OnMedia Top 100</a>, <a href=\"https://www.prweb.com/releases/social_media_management_software_tracx_selected_as_a_2016_red_herring_top_100_north_america_winner_for_technology_innovation/prweb13533705.htm\">Red Herring Top 100 North America</a>, <a href=\"https://shortyawards.com/8th/tracx-social-business-cloud-2\">Shorty, Deloitte Fast 500, IAB Mixx, Stevies, Digiday Signal Awards</a>.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/111/so-long-tracx-03.jpg\" alt=\"\" width=\"3967\" height=\"3233\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/111/responsive/so-long-tracx-03-lg.webp 1024w\"></figure>\n<hr>\n<p class=\"larger\">I learned a lot building Tracx. What to do, but more importantly, <em>what not to do</em>.</p>\n<p class=\"larger\">About building a product, scaling a team, raising money, pivoting, hiring and managing people, capacity planning, ops, site reliability, cost of doing business.</p>\n<p class=\"larger\">The social media analytics space got very competitive. Platforms <a href=\"https://blog.innerlogics.com/twitter-api-open-no-more/\">closed the gates</a>. Regulations <a href=\"https://gdpr.eu/right-to-be-forgotten/\">changed</a>. The market <a href=\"https://www.fastcompany.com/1743874/salesforce-listens-market-trends-acquires-radian6-326-million#:~:text=Consolidation%20is%20in%20the%20air.%20With%20this%20Salesforce/Radian6%20deal%2C%20Lithium%E2%80%99s%20acquisition%20of%20ScoutLabs%20and%20MarketWire%20picking%20up%20Sysomos%2C%20we%20can%20expect%20to%20see%20businesses%20place%20greater%20importance%20on%20the%20social%20customer%20outside%20of%20marketing%20and%20communications.\">consolidated</a>. We didn't make it to the other side.</p>\n<p class=\"larger\">I left when I ran out of hope. It took two more years until it finally reached the end of the road.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "tracx",
                   "personal"
            ],
            "date_published": "2019-02-20T17:40:00-05:00",
            "date_modified": "2026-02-20T19:26:07-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/block-zero/",
            "url": "https://blog.innerlogics.com/block-zero/",
            "title": "Block Zero",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/block-zero/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/110/block-zero-03.jpg\" alt=\"\" width=\"902\" height=\"1080\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><strong>Ten years ago today, <a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-2-security/#satoshi\">Satoshi Nakamoto</a> mined the <a href=\"https://en.bitcoin.it/wiki/Genesis_block\">genesis block</a></strong>, embedding a headline from <em>The Times</em> into Bitcoin's first transaction: <em>\"Chancellor on brink of second bailout for banks\"</em>. Timestamp and thesis in one sentence.<br><br></p>\n<figure class=\"post__image post__image--right width35\"><a href=\"https://bitcoinist.com/bitcoin-genesis-block-10th-anniversary/\"><img loading=\"lazy\"  style=\"margin-left: 0.9rem; margin-top: -0.4rem; max-width: calc(100% - 0.9rem);\" src=\"https://blog.innerlogics.com/media/posts/110/block-zero-04.jpg\" alt=\"\" width=\"1109\" height=\"1007\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-lg.webp 1024w\"></figure></a> To mark the anniversary, BitMEX <a href=\"https://bitcoinist.com/bitcoin-genesis-block-10th-anniversary/\">took out a front-page ad in that same paper</a> reading: <em>\"Thanks Satoshi. We owe you one. Happy 10th Birthday, Bitcoin\"</em>. Fitting, too, that today's lead story in that paper is <em>\"Universities face fresh credit crunch as debt spiral\"</em>.</p>\n<p>In 2009, Chancellor Alistair Darling was considering a second £37 billion injection into British banks. Satoshi responded by launching a system that doesn't need bailing out.</p>\n<p>Five years ago, I tried to get my hands on original copies of that edition. Three came from <a href=\"https://www.historic-newspapers.com/\">Historic Newspapers</a>, ordered in December 2013. A fourth came from <a href=\"https://www.bygonenews.com/\">Bygone News</a> in January 2014 - the last copy they had. The fifth came through <a href=\"https://bitcointalk.org/index.php?topic=397557.0\">Bitcointalk</a>. A UK seller named <a href=\"https://bitcointalk.org/index.php?action=profile;u=124071\">jonny1000</a> had posted his copy on January 3rd, 2014, Bitcoin's fifth anniversary. He'd originally listed it at 0.1 BTC. By the time he'd finished <a href=\"https://bitcointalk.org/index.php?topic=397557.msg4494445#msg4494445\">calling the archive services</a> to try to source more for buyers, the price had changed. He called three companies. All three told him January 3rd, 2009 had sold out in the last few days due to, <a href=\"https://bitcointalk.org/index.php?topic=397557.msg4494445#msg4494445:~:text=what%20they%20described%20as%20the%20paper%20having%20something%20to%20do%20with%20Bitcoin%20and%20having%20extremely%20high%20demand\">as he put it</a>, <em>\"something to do with Bitcoin and extremely high demand\"</em>.</p>\n<p>The scramble was widespread. <a href=\"https://gettingpersonal.co.uk/\">GettingPersonal</a> couldn't source copies after multiple follow-ups. <a href=\"https://www.paperspast.co.uk/\">Papers Past</a> found two copies but they were the Scottish edition. I paid 0.589 BTC for jonny1000's copy on January 30th - roughly $470 at the time - with shipping to Tel Aviv included. He e-mailed me a photo of his driving license next to the newspaper with my name written on a note before I sent the transaction. It arrived via Royal Mail a week later.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/block-zero/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/110/block-zero-03.jpg\" alt=\"\" width=\"902\" height=\"1080\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><strong>Ten years ago today, <a href=\"https://blog.innerlogics.com/bitcoin-energy-lecture-part-2-security/#satoshi\">Satoshi Nakamoto</a> mined the <a href=\"https://en.bitcoin.it/wiki/Genesis_block\">genesis block</a></strong>, embedding a headline from <em>The Times</em> into Bitcoin's first transaction: <em>\"Chancellor on brink of second bailout for banks\"</em>. Timestamp and thesis in one sentence.<br><br></p>\n<figure class=\"post__image post__image--right width35\"><a href=\"https://bitcoinist.com/bitcoin-genesis-block-10th-anniversary/\"><img loading=\"lazy\"  style=\"margin-left: 0.9rem; margin-top: -0.4rem; max-width: calc(100% - 0.9rem);\" src=\"https://blog.innerlogics.com/media/posts/110/block-zero-04.jpg\" alt=\"\" width=\"1109\" height=\"1007\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-04-lg.webp 1024w\"></figure></a> To mark the anniversary, BitMEX <a href=\"https://bitcoinist.com/bitcoin-genesis-block-10th-anniversary/\">took out a front-page ad in that same paper</a> reading: <em>\"Thanks Satoshi. We owe you one. Happy 10th Birthday, Bitcoin\"</em>. Fitting, too, that today's lead story in that paper is <em>\"Universities face fresh credit crunch as debt spiral\"</em>.</p>\n<p>In 2009, Chancellor Alistair Darling was considering a second £37 billion injection into British banks. Satoshi responded by launching a system that doesn't need bailing out.</p>\n<p>Five years ago, I tried to get my hands on original copies of that edition. Three came from <a href=\"https://www.historic-newspapers.com/\">Historic Newspapers</a>, ordered in December 2013. A fourth came from <a href=\"https://www.bygonenews.com/\">Bygone News</a> in January 2014 - the last copy they had. The fifth came through <a href=\"https://bitcointalk.org/index.php?topic=397557.0\">Bitcointalk</a>. A UK seller named <a href=\"https://bitcointalk.org/index.php?action=profile;u=124071\">jonny1000</a> had posted his copy on January 3rd, 2014, Bitcoin's fifth anniversary. He'd originally listed it at 0.1 BTC. By the time he'd finished <a href=\"https://bitcointalk.org/index.php?topic=397557.msg4494445#msg4494445\">calling the archive services</a> to try to source more for buyers, the price had changed. He called three companies. All three told him January 3rd, 2009 had sold out in the last few days due to, <a href=\"https://bitcointalk.org/index.php?topic=397557.msg4494445#msg4494445:~:text=what%20they%20described%20as%20the%20paper%20having%20something%20to%20do%20with%20Bitcoin%20and%20having%20extremely%20high%20demand\">as he put it</a>, <em>\"something to do with Bitcoin and extremely high demand\"</em>.</p><div id=\"read-more\"></div>\n<p>The scramble was widespread. <a href=\"https://gettingpersonal.co.uk/\">GettingPersonal</a> couldn't source copies after multiple follow-ups. <a href=\"https://www.paperspast.co.uk/\">Papers Past</a> found two copies but they were the Scottish edition. I paid 0.589 BTC for jonny1000's copy on January 30th - roughly $470 at the time - with shipping to Tel Aviv included. He e-mailed me a photo of his driving license next to the newspaper with my name written on a note before I sent the transaction. It arrived via Royal Mail a week later.</p>\n\n<p><a href=\"https://charlieshrem.com/\">Charlie Shrem</a> posted <a href=\"https://www.reddit.com/r/Bitcoin/comments/26zf5d/the_times_132009_chancellor_on_brink_of_second/\">a photo of his copy on Reddit</a> and wrote that he'd spent a good amount of time trying to find one, eventually coming across it by accident after having <em>\"dozens of companies refund me\"</em>. A commenter on the same thread noted that a copy had <a href=\"https://www.reddit.com/r/Bitcoin/comments/26zf5d/comment/chw24ba/\">sold at auction for 11 BTC</a> at a Bitcoin conference in Buenos Aires in December 2013 - Shrem confirmed he'd been there and was furious he didn't get it. By 2017, forum members were still noting that January 3rd was <em>\"pretty much the only day not available\"</em> across every newspaper archive service they tried.</p>\n<p id=\"bitembassy\">I worked with <a href=\"https://www.yona3.com/\">Ayal Yona Segev</a> at the <a href=\"http://bitembassy.org/\">Bitcoin Embassy in Tel Aviv</a> on the design and production of five hand-made framed editions, now documented at <a href=\"https://blockze.ro\">blockze.ro</a>. Each copy is housed in a metal-coated wooden frame. The glass is printed with the genesis block data directly on it:</p>\n<pre class=\"note-block code-block nojustify smaller\"><code class=\"center\">The Genesis Ƀlock\n\"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks\"\n0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f\nSatoshi Nakamoto\n\nblockze.ro</code></pre>\n<p class=\"large\"><br>Today Bitcoin turns ten. Satoshi built a system with no physical form, no single point of origin. Except there is one: a Saturday edition of a London newspaper, January 3rd, 2009. Five copies, on five walls, owned by five people who got it early.</p>\n<hr>\n<p class=\"msg msg--success\"><strong>[Update: March 2021]</strong><br><br>The five frames still hang where they were placed in 2014. But the originals are no longer inside them. Newsprint is acidic by nature - left on a wall, exposed to light, it yellows and becomes brittle. As the historical weight of these copies became clearer, leaving them on display felt increasingly irresponsible.<br><br>Over the past year I worked with each of the owners to remove the original newspapers from their frames and move them into museum-grade archival storage - acid-free, buffered, light-tight boxes designed to stop the degradation. The frames now hold high-fidelity replicas printed on actual newsprint. To the eye, nothing has changed. The genesis block hash is still on the glass. The headline is still visible. But the real artifact is somewhere safer than a wall.</p>\n<div class=\"msg msg--info margin-top-5x-baseline\">\n<p class=\"margin-top-0\">An interesting anecdote: that same front page also carried the line: <em>'Start collecting tokens today'</em>. Some of us took that more literally than others.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/110/block-zero-07.jpg\" alt=\"\" width=\"1080\" height=\"531\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-07-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-07-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-07-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-07-lg.webp 1024w\"></figure>\n</div>\n<hr>\n<figure class=\"post__video\"><video loading=\"lazy\" width=\"768\" height=\"432\" autoplay=\"autoplay\" loop=\"loop\" muted=\"\" playsinline=\"\">\n    <source src=\"https://blog.innerlogics.com/media/posts/110/block-zero-06.webm\" type=\"video/webm\" /></video></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/110/block-zero-02.jpg\" alt=\"\" width=\"3264\" height=\"2448\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-02-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/110/block-zero-01.jpg\" alt=\"\" width=\"3264\" height=\"2448\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-01-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/110/block-zero-08.jpg\" alt=\"\" width=\"1209\" height=\"1928\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-08-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-08-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-08-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-08-lg.webp 1024w\"></figure>\n<figure class=\"post__image\"><a href=\"https://blockze.ro\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/110/block-zero-05.jpg\" alt=\"\" width=\"2177\" height=\"3370\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/110/responsive/block-zero-05-xs.webp 300w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-05-sm.webp 480w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-05-md.webp 768w ,https://blog.innerlogics.com/media/posts/110/responsive/block-zero-05-lg.webp 1024w\"></figure></a></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "project",
                   "design",
                   "bitcoin"
            ],
            "date_published": "2019-01-03T21:15:00-05:00",
            "date_modified": "2026-03-02T23:44:43-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/cryptokitties-the-genome-project/",
            "url": "https://blog.innerlogics.com/cryptokitties-the-genome-project/",
            "title": "CryptoKitties: The Genome Project",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-the-genome-project/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/109/cryptokitties-the-genome-project-03.png\" alt=\"\" width=\"2858\" height=\"1023\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Someone reverse-engineered the breeding algorithm.</p>\n<p>The <a href=\"https://etherscan.io/address/0xf97e0a5b616dffc913e72455fde9ea8bbe946a2b\">GeneScience contract</a> was the only part <a href=\"https://www.axiomzen.com/\">Axiom Zen</a> kept closed. Everything else was open-source: KittyCore, the auction house, the CEO controls. All on <a href=\"https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code\">Etherscan</a>.</p>\n<p>But the breeding logic? Bytecode only. No source code, no comments. Just machine instructions.</p>\n<p>The main contract even taunts you:</p>\n<p class=\"note-block code-block nojustify\"><code>// Call the sooper-sekret gene mixing operation.<br>uint256 childGenes = geneScience.mixGenes(matron.genes, sire.genes, matron.cooldownEndBlock - 1);</code></p>\n<p>Makes sense. If you know the breeding math, you can game the market.</p>\n<p>Didn't last. The community cracked it in five days.</p>\n<hr>\n<p><strong>December 18, 2017.</strong> <a href=\"https://medium.com/@kaigani/the-cryptokitties-genome-project-68582016f687\">Kai Turner</a> figured out the genome structure. Each kitty has a 256-bit integer. Break it into 5-bit chunks and you get 48 genes. Four genes per trait. Primary (visible) plus three hidden recessives.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-the-genome-project/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/109/cryptokitties-the-genome-project-03.png\" alt=\"\" width=\"2858\" height=\"1023\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-03-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">Someone reverse-engineered the breeding algorithm.</p>\n<p>The <a href=\"https://etherscan.io/address/0xf97e0a5b616dffc913e72455fde9ea8bbe946a2b\">GeneScience contract</a> was the only part <a href=\"https://www.axiomzen.com/\">Axiom Zen</a> kept closed. Everything else was open-source: KittyCore, the auction house, the CEO controls. All on <a href=\"https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code\">Etherscan</a>.</p>\n<p>But the breeding logic? Bytecode only. No source code, no comments. Just machine instructions.</p>\n<p>The main contract even taunts you:</p>\n<p class=\"note-block code-block nojustify\"><code>// Call the sooper-sekret gene mixing operation.<br>uint256 childGenes = geneScience.mixGenes(matron.genes, sire.genes, matron.cooldownEndBlock - 1);</code></p>\n<p>Makes sense. If you know the breeding math, you can game the market.</p>\n<p>Didn't last. The community cracked it in five days.</p><div id=\"read-more\"></div>\n<hr>\n<p><strong>December 18, 2017.</strong> <a href=\"https://medium.com/@kaigani/the-cryptokitties-genome-project-68582016f687\">Kai Turner</a> figured out the genome structure. Each kitty has a 256-bit integer. Break it into 5-bit chunks and you get 48 genes. Four genes per trait. Primary (visible) plus three hidden recessives.</p>\n\n<p>He created a notation to make genomes readable. <br>Base32 using <code>123456789abcdefghijkmnopqrstuvwx</code>. No digit-0, no lowercase-L.<br><a href=\"https://cryptokittydex.com/\">CryptoKittydex</a> adopted this \"Kai notation.\"</p>\n<p><strong>December 22, 2017.</strong> <a href=\"https://medium.com/@sean.soria/cryptokitties-mixgenes-function-69207883fc80\">Sean Soria</a> reverse-engineered the mixing algorithm. He stepped through the bytecode and published the pseudocode:</p>\n<pre class=\"note-block code-block nojustify\"><code>def mixGenes(mGenes[48], sGenes[48], babyGenes[48]):\n  # PARENT GENE SWAPPING\n  for (i = 0; i &lt; 12; i++):\n    index = 4 * i\n    for (j = 3; j &gt; 0; j--):\n      if random() &lt; 0.25:\n        swap(mGenes, index+j, index+j-1)\n      if random() &lt; 0.25:\n        swap(sGenes, index+j, index+j-1)\n\n  # BABY GENES\n  for (i = 0; i &lt; 48; i++):\n    mutation = 0\n    if i % 4 == 0:\n      gene1 = mGenes[i]\n      gene2 = sGenes[i]\n      if gene1 &gt; gene2:\n        gene1, gene2 = gene2, gene1\n      if (gene2 - gene1) == 1 and iseven(gene1):\n        probability = 0.25\n        if gene1 &gt; 23:\n          probability /= 2\n        if random() &lt; probability:\n          mutation = (gene1 / 2) + 16\n\n    if mutation:\n      babyGenes[i] = mutation\n    else:\n      if random() &lt; 0.5:\n        babyGenes[i] = mGenes[i]\n      else:\n        babyGenes[i] = sGenes[i]</code></pre>\n<p>The black box was now transparent.</p>\n<p><strong>December 23, 2017.</strong> <a href=\"https://medium.com/@alexhegyi/cryptokitties-genescience-1f5b41963b0d\">Alex Hegyi</a> verified everything with Python and published his implementation to GitHub.</p>\n<p><strong>January 6, 2018.</strong> Kai published <a href=\"https://medium.com/@kaigani/the-cryptokitties-genome-project-on-dominance-inheritance-and-mutation-b73059dcd0a4\">part two</a>, synthesizing the community's findings.</p>\n<p>Six weeks after launch, Kai's synthesis had turned raw bytecode into a practical breeding guide.</p>\n<h4><strong>What they found</strong></h4>\n<p>Inheritance favors primary genes. But hidden recessives can bubble up:</p>\n<table>\n<thead>\n<tr>\n<th><strong>Gene Position</strong></th>\n<th><strong>Inheritance Chance</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Primary</td>\n<td>37.5% per parent</td>\n</tr>\n<tr>\n<td>Hidden 1</td>\n<td>9.4% per parent</td>\n</tr>\n<tr>\n<td>Hidden 2</td>\n<td>2.3% per parent</td>\n</tr>\n<tr>\n<td>Hidden 3</td>\n<td>0.8% per parent</td>\n</tr>\n</tbody>\n</table>\n<p>Before inheritance, genes swap positions. Each swap has 25% odds. A deep recessive can climb three positions and end up dominant.</p>\n<p>Mutations create new traits. When both parents contribute adjacent genes (N and N+1, where N is even), there's a 25% chance the offspring gets gene <code>(N/2) + 16</code>. This is how M1 mewtations appear. Breed two M1 genes the same way and you get M2. And so on.</p>\n<table>\n<thead>\n<tr>\n<th><strong>Tier</strong></th>\n<th><strong>Gene Range</strong></th>\n<th><strong>Chance</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Base</td>\n<td>0-15</td>\n<td>-</td>\n</tr>\n<tr>\n<td>M1</td>\n<td>16-23</td>\n<td>25%</td>\n</tr>\n<tr>\n<td>M2</td>\n<td>24-27</td>\n<td>25%</td>\n</tr>\n<tr>\n<td>M3</td>\n<td>28-29</td>\n<td>12.5%</td>\n</tr>\n<tr>\n<td>M4</td>\n<td>30</td>\n<td>12.5%</td>\n</tr>\n</tbody>\n</table>\n<p>Gene 31 is impossible to reach through mutation. Easter egg territory.</p>\n<p>Community tools followed:</p>\n<ul>\n<li><a href=\"https://kittycalc.co/\">KittyCalc</a> predicts breeding outcomes</li>\n<li><a href=\"https://cryptokittydex.com/\">CryptoKittydex</a> decodes genomes</li>\n<li><a href=\"https://kittyhelper.co/\">KittyHelper</a> tracks sales and analytics</li>\n</ul>\n<h4>How the cats are drawn</h4>\n<p>Each kitty image works like a police facial composite. The genome encodes traits. A server assembles layers.</p>\n<p>To generate each cat's image, Axiom Zen's servers read the 256-bit genome from Ethereum, map each gene to a pre-drawn SVG component, swap colors via a palette lookup, then stack the layers: body shape, pattern overlay, eyes, mouth, accessories. The result is a composed SVG unique to that genome.</p>\n<p>Fancy cats break the system. They're hand-drawn PNGs that don't fit the compositing pipeline. Special recipes, special art.</p>\n<p>The irony: the genome is immutable and on-chain. The art is off-chain and owned by Axiom Zen. You own the <em>token</em>. You own the <em>genes</em>. The visual representation? That's served from their CDN, rendered by their code, governed by their license.</p>\n<p>If Axiom Zen disappeared tomorrow, the genomes would survive on Ethereum. Rendering them into images would require reconstructing the entire art pipeline. Someone archived most of the assets. The compositing logic is reverse-engineerable. But it's not trustless the way the breeding is.</p>\n<hr>\n<p>Reverse engineering succeeded because the contract runs on Ethereum. The bytecode is public. The state is public. The inputs and outputs are public. You can reverse-engineer anything if you can see it running.</p>\n<p>Axiom Zen could have deployed on a private server. Kept control. Kept the secrets.</p>\n<p>They didn't.</p>\n<p>That's the point of this whole thing. The ownership can't be faked. The breeding history can't be rewritten. But the company kept admin keys. They can <em>pause</em> the contract. They can <em>swap</em> the breeding algorithm. They can <em>change the rules</em> going forward. What they can't do is change the past. Every breeding event, every genetic roll, every transaction is permanent. The <em>record</em> is trustless. The <em>game</em> isn't.</p>\n<p><em>This</em> is what \"decentralized\" actually means.</p>\n<p>It's not about currency. Not about absolute control. It's about verifiable constraints.</p>\n<hr>\n<figure class=\"post__image post__image--right no-round-corners\"><a href=\"https://www.cryptokitties.co/kitty/68976\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/109/cryptokitties-the-genome-project-01.png\" alt=\"\" width=\"1024\" height=\"806\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-01-lg.webp 1024w\"></figure></a></p>\n<p><strong>I looked at one of my cats, <a href=\"https://www.cryptokitties.co/kitty/68976\">Simpatico</a>.<br></strong>Gen 17. Visible traits:</p>\n<ul>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/laperm\">laperm</a></strong> (Fur) 💎</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/tigerpunk\">tigerpunk</a></strong> (Pattern) 💎</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/dali\">dali</a></strong> (Mouth) 💎</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/thicccbrowz\">thicccbrowz</a></strong> (Eye Shape)</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/greymatter\">greymatter</a></strong> (Base Colour)</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/royalpurple\">royalpurple</a></strong> (Highlight)</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/granitegrey\">granitegrey</a></strong> (Accent)</li>\n<li><strong><a href=\"https://www.cryptokitties.co/catalogue/cattribute/chestnut\">chestnut</a></strong> (Eye Colour)</li>\n</ul>\n<p>Three diamond-tier traits. That's rare. But what made Simpatico \"valuable for breeding\" wasn't just what you could see. It was what genes were <em>hiding</em>.</p>\n<p>The website shows the genome broken into 12 trait groups. Each group has 4 genes: one primary (visible) and three hidden recessives. Simpatico's <em>Eye Shape</em> genes are <code>7, 5, 7, 4</code>: <em>thicccbrowz</em> dominant, with <em>simple</em>, <em>thicccbrowz</em>, and <em>raisedbrow</em> lurking behind it.</p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/109/cryptokitties-the-genome-project-02.png\" alt=\"\" width=\"2126\" height=\"1030\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/109/responsive/cryptokitties-the-genome-project-02-lg.webp 1024w\"></figure>\n<p>When I bred Simpatico with <a href=\"https://www.cryptokitties.co/kitty/58820\">Mongo</a>, the algorithm rolled dice across 48 gene positions. First the swapping phase: each hidden gene had a 25% chance to swap toward the primary slot. Then inheritance: each position pulled from one parent or the other.</p>\n<p><a href=\"https://www.cryptokitties.co/kitty/248667\">Dozer</a> came out with \"crazy\" eyes. Neither parent showed that trait. But Mongo carried it in a hidden slot. The swap mechanic promoted it to primary. The inheritance roll selected it.</p>\n<p>That's the game. You're not just breeding visible traits. You're breeding probability distributions.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "nft",
                   "ethereum",
                   "cryptokitties"
            ],
            "date_published": "2018-01-07T11:02:00-05:00",
            "date_modified": "2026-03-03T01:44:47-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/cryptokitties-breeding-season/",
            "url": "https://blog.innerlogics.com/cryptokitties-breeding-season/",
            "title": "CryptoKitties Breeding Season",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-breeding-season/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/108/cryptokitties-breeding-season-02.png\" alt=\"\" width=\"3058\" height=\"2599\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><a href=\"https://blog.innerlogics.com/cryptokitties/\">CryptoKitties</a> hands-on: Three weeks in. Nine cats.</p>\n<ul>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/68976\">Simpatico</a></strong> - Grey with pink stripes and Dalí's mustache. Rare dominant genes.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/58820\">Mongo</a></strong> - Orange-soda-colored calico, named after <a href=\"https://blog.innerlogics.com/google-auto-awesome/\">our Mongo</a> and <a href=\"https://www.mongodb.com/\">the database.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/124653\">Footer</a></strong> - Grey with swamp-green legs. Named after our <a href=\"https://blog.innerlogics.com/blackcat/\">Footer.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/129868\">Aristocat</a></strong> - Cloud-white with royal-purple accents and a beard.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/148439\">Cat Stevens</a></strong> - Obvious <a href=\"https://en.wikipedia.org/wiki/Cat_Stevens\">pun.</a> <a href=\"https://www.cryptokitties.co/kitty/148439#:~:text=I%20believe%20the%20world%20is%20flat.\">Believes the world is flat.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/149343\">Mulberry</a></strong> - Mauve colored munchkin. <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=will%20be%20refunded).-,Generation%20Number,-%2D%20Every%20Kitty%20has\">Gen 6</a>, fastest <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=have%20that%20Cattribute.-,Cooldown%20Speed,-%2D%20After%20a%20CryptoKitty\">cooldown</a> in my collection.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/236402\">Gravy</a></strong> - Chocolate-colored Himalayan.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/248667\">Dozer</a></strong> - Mongo and Simpatico's offspring. <a href=\"https://www.cryptokitties.co/catalogue/cattribute/crazy\">Crazy eyes.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/329987\">Sis</a></strong> - Last one born. A one-syllable name is easy for a cat to recognize.</li>\n</ul>\n<div class=\"msg msg--info\" style=\"display: flex; align-items: center; gap: 12px; margin-top: calc(var(--baseline) * 5);\">\n<figure class=\"post__image tight-figures margin-0\"><a href=\"https://github.com/nivs/crypto-kitties-family-graph\" class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/108/cryptokitties-breeding-season-01.png\" alt=\"\" width=\"64\" height=\"64\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-lg.webp 1024w\"></figure></a></figure>\n<div><strong>Update:</strong> I built a <a href=\"https://github.com/nivs/crypto-kitties-family-graph\">CryptoKitties graph visualizer.</a><br>See my family of kitties <a href=\"https://blog.innerlogics.com/cryptokitties-family-graph-visualizer/\">here</a>, or in a <a href=\"https://ck.innerlogics.com/index.html?dataUrl=./examples/nivs/nivs.json&amp;owner=nivs&amp;cam3d=-201.3_-55.2_-204.3_0.9256_0.2173_-0.3092_0.0212_1.00&amp;cam2d=1.181_55.9_14.4\">standalone viewer.</a></div>\n</div>\n<hr>\n<p>The <a href=\"https://guide.cryptokitties.co/guide/getting-started#breeding\">breeding mechanics</a> are weirder than I expected. CryptoKitties don't have fixed genders. In each breeding, one cat plays the <em><a href=\"https://guide.cryptokitties.co/guide/getting-started#selling-or-siring\">matron</a></em> (mother - carries the kitten, goes on cooldown) and one plays the <em>sire</em> (father - breeds immediately, no cooldown). The matron's owner gets the offspring, after winning the bid for a <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=can%20breed%20again.-,Siring%20Auction,-%2D%20Players%20can%20allow\">Siring auction.</a></p>\n<p>Any cat can play either role.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/cryptokitties-breeding-season/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/108/cryptokitties-breeding-season-02.png\" alt=\"\" width=\"3058\" height=\"2599\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-02-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\"><a href=\"https://blog.innerlogics.com/cryptokitties/\">CryptoKitties</a> hands-on: Three weeks in. Nine cats.</p>\n<ul>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/68976\">Simpatico</a></strong> - Grey with pink stripes and Dalí's mustache. Rare dominant genes.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/58820\">Mongo</a></strong> - Orange-soda-colored calico, named after <a href=\"https://blog.innerlogics.com/google-auto-awesome/\">our Mongo</a> and <a href=\"https://www.mongodb.com/\">the database.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/124653\">Footer</a></strong> - Grey with swamp-green legs. Named after our <a href=\"https://blog.innerlogics.com/blackcat/\">Footer.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/129868\">Aristocat</a></strong> - Cloud-white with royal-purple accents and a beard.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/148439\">Cat Stevens</a></strong> - Obvious <a href=\"https://en.wikipedia.org/wiki/Cat_Stevens\">pun.</a> <a href=\"https://www.cryptokitties.co/kitty/148439#:~:text=I%20believe%20the%20world%20is%20flat.\">Believes the world is flat.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/149343\">Mulberry</a></strong> - Mauve colored munchkin. <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=will%20be%20refunded).-,Generation%20Number,-%2D%20Every%20Kitty%20has\">Gen 6</a>, fastest <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=have%20that%20Cattribute.-,Cooldown%20Speed,-%2D%20After%20a%20CryptoKitty\">cooldown</a> in my collection.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/236402\">Gravy</a></strong> - Chocolate-colored Himalayan.</li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/248667\">Dozer</a></strong> - Mongo and Simpatico's offspring. <a href=\"https://www.cryptokitties.co/catalogue/cattribute/crazy\">Crazy eyes.</a></li>\n<li><strong><a href=\"https://www.cryptokitties.co/kitty/329987\">Sis</a></strong> - Last one born. A one-syllable name is easy for a cat to recognize.</li>\n</ul>\n<div class=\"msg msg--info\" style=\"display: flex; align-items: center; gap: 12px; margin-top: calc(var(--baseline) * 5);\">\n<figure class=\"post__image tight-figures margin-0\"><a href=\"https://github.com/nivs/crypto-kitties-family-graph\" class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/108/cryptokitties-breeding-season-01.png\" alt=\"\" width=\"64\" height=\"64\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-01-lg.webp 1024w\"></figure></a></figure>\n<div><strong>Update:</strong> I built a <a href=\"https://github.com/nivs/crypto-kitties-family-graph\">CryptoKitties graph visualizer.</a><br>See my family of kitties <a href=\"https://blog.innerlogics.com/cryptokitties-family-graph-visualizer/\">here</a>, or in a <a href=\"https://ck.innerlogics.com/index.html?dataUrl=./examples/nivs/nivs.json&amp;owner=nivs&amp;cam3d=-201.3_-55.2_-204.3_0.9256_0.2173_-0.3092_0.0212_1.00&amp;cam2d=1.181_55.9_14.4\">standalone viewer.</a></div>\n</div>\n<hr>\n<p>The <a href=\"https://guide.cryptokitties.co/guide/getting-started#breeding\">breeding mechanics</a> are weirder than I expected. CryptoKitties don't have fixed genders. In each breeding, one cat plays the <em><a href=\"https://guide.cryptokitties.co/guide/getting-started#selling-or-siring\">matron</a></em> (mother - carries the kitten, goes on cooldown) and one plays the <em>sire</em> (father - breeds immediately, no cooldown). The matron's owner gets the offspring, after winning the bid for a <a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=can%20breed%20again.-,Siring%20Auction,-%2D%20Players%20can%20allow\">Siring auction.</a></p><div id=\"read-more\"></div>\n<p>Any cat can play either role.</p>\n\n<div style=\"display: flex; align-items: top; gap: 12px;\">\n<div>\n<p><a href=\"https://www.cryptokitties.co/kitty/68976\">Simpatico</a> (Ξ0.0498) has done both, and passed rare genes, <em><a href=\"https://guide.cryptokitties.co/guide/glossary#:~:text=across%20every%20category.-,Cattributes,-%2D%20Genetic%20traits%20that\">cattributes,</a></em> to the kids. <em>She</em> was matron for <a href=\"https://www.cryptokitties.co/kitty/124653\">Footer</a> and <a href=\"https://www.cryptokitties.co/kitty/329987\">Sis.</a> But when I bred Simpatico with <a href=\"https://www.cryptokitties.co/kitty/58820\">Mongo</a> (Ξ0.0622), <em>he</em> was the <em>sire</em> - <a href=\"https://www.cryptokitties.co/kitty/248667\">Dozer</a> came from Mongo.</p>\n<p>Footer and <a href=\"https://www.cryptokitties.co/kitty/129868\">Aristocat</a> also swapped roles. Footer was matron for <a href=\"https://www.cryptokitties.co/kitty/148439\">Cat Stevens.</a> Aristocat was matron for <a href=\"https://www.cryptokitties.co/kitty/236402\">Gravy.</a> Same parents, different roles, different kittens.</p>\n</div>\n<figure class=\"post__image\"><figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/108/cryptokitties-breeding-season-03.png\" alt=\"\" width=\"480\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/108/responsive/cryptokitties-breeding-season-03-lg.webp 1024w\"></figure></figure>\n</div>\n<p>I first thought that Cat Stevens got a <a href=\"https://guide.cryptokitties.co/guide/cat-features/family-jewels#mewtation-jewels\">mewtation:</a> his <em>tongue</em> came from Footer. But the <em>limegreen</em> eyes? Neither parent has limegreen eyes visually displayed - Footer has <em>topaz</em>, Aristocat has <em>mintgreen</em>. This means Cat Stevens expressed limegreen from hidden/recessive genes in the ancestry. The trait was already in the gene pool (first discovered by <a href=\"https://www.cryptokitties.co/kitty/3010\">kitty #3010</a> very early), just not visibly expressed in the parents.</p>\n<p>I wanted to try out the marketplace. After siring (\"hatching\") and selling <a href=\"https://www.cryptokitties.co/kitty/251533\">Vitalik</a> to a user named <em>meowcool01</em>, and as painful as it was, I <a href=\"https://etherscan.io/tx/0x31deaf0a55950d68a02620c73a55c3ad4a6b13cf1c2210366db1596c6a2f9911\">sold</a> Mongo (at a loss... Ξ0.0179).</p>\n<p>It's all on the blockchain. You can verify every breeding, every transaction, every lineage on <a href=\"https://etherscan.io/address/0x2a10472c2be46f3b25f1b615575222aa40551527\">Etherscan.</a></p>\n<pre class=\"small note-block code-block\">Hi nivs,<br><br>Good news! <a href=\"https://www.cryptokitties.co/kitty/58820\" title=\"Mongo\" target=\"_blank\" rel=\"noopener noreferrer\">58820</a> was just adopted. Congrats on a successful sale!<br><br>Wish your furry friend the best of luck on their new journey.<br><br>And hey, if you have a kitty-shaped hole in your heart, there are other CryptoKitties <a href=\"https://www.cryptokitties.co/marketplace\">looking for a new home</a>.<br><br>- CryptoKitties Team\n</pre>\n<hr>\n<p><strong>Meanwhile, the news storm continues.</strong></p>\n<p>The <a href=\"https://blog.innerlogics.com/cryptokitties/#first-week\">first week</a> was chaos. By December 6th, CNBC was calling it <a href=\"https://www.cnbc.com/2017/12/06/meet-cryptokitties-the-new-digital-beanie-babies-selling-for-100k.html\">\"the $100,000 digital beanie babies\".</a> SophiaTX <a href=\"https://www.coindesk.com/markets/2017/12/05/ico-delayed-by-ethereums-cryptokitties-congestion\">delayed their token sale</a> by 48 hours because we broke the network.</p>\n<p>The <a href=\"https://guide.cryptokitties.co/guide/gas\">birthing fee</a> went from 0.001 to 0.002 to <a href=\"https://medium.com/cryptokitties/cryptokitties-birthing-fees-increases-in-order-to-accommodate-demand-acc314fcadf5\">Ξ0.015</a> in two days. Fifteen times higher. CoinDesk ran a piece called <a href=\"https://www.coindesk.com/markets/2017/12/07/cat-fight-ethereum-users-clash-over-cryptokitties/\">\"Cat Fight? Ethereum Users Clash Over CryptoKitties\".</a> 30,000 pending transactions. Reddit threads debating whether to <a href=\"https://www.reddit.com/r/ethereum/comments/7hmlm4/can_we_please_increase_the_gas_limit/\">raise the gas limit.</a></p>\n<p>Two weeks ago, <a href=\"https://www.cryptokitties.co/kitty/18\">Founder Cat #18</a> sold for Ξ253. That's <a href=\"https://ricmac.org/2017/12/14/cryptokitties/#:~:text=The%20most%20expensive%20was%20the%2018th%20kitty%20ever%20made%2C%20acquired%20for%20253.3368%20ETH%20(US%24110%2C707%20at%20the%20time%20of%20sale).\">$110,000.</a> For a cartoon cat.</p>\n<p>December 10th was the peak - 52,000 sales in one day (launch day had 1,500).</p>\n<p><a href=\"https://steemit.com/cryptocurrency/@anhnt/cryptokitties-the-stories-behind-bubble-explosion\">150,000 users.</a> 260,000 cats. More than <a href=\"https://cointelegraph.com/news/cryptokitties-sales-hit-12-million-could-be-ethereums-killer-app-after-all\">$12 million</a> traded. Digital beanie babies with transparent genetics.</p>\n<p>Then it wound down. By December 11th, birthing fees dropped to Ξ0.008. The wave passed.</p>\n<p><strong>The hype will crash. The technology won't.</strong></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "nft",
                   "ethereum",
                   "cryptokitties"
            ],
            "date_published": "2017-12-21T23:08:00-05:00",
            "date_modified": "2026-02-20T18:55:45-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/cryptokitties/",
            "url": "https://blog.innerlogics.com/cryptokitties/",
            "title": "CryptoKitties",
            "summary": "<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/107/cryptokitties-01.jpg\" alt=\"\" width=\"1300\" height=\"459\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-lg.webp 1024w\"></figure>\n<p>Digital Cats on the Blockchain.</p>\n<p><a href=\"https://blog.innerlogics.com/google-auto-awesome/\">Mongo</a> is named after <a href=\"https://www.mongodb.com/\">MongoDB</a>.</p>\n<p>We were paying customers at <a href=\"https://www.tracx.com/\">Tracx</a>. Pretty rare for a startup to pay for an open-source database. We decided to pay after a <a href=\"https://www.datacenterknowledge.com/outages/internap-data-center-outage-takes-down-livestream-stackexchange\">catastrophic power outage</a> took down our cluster. MongoDB gave us amazing and around-the-clock support for free that one time. Next time, we were on our own. Unless we paid.</p>\n<p>We paid.</p>\n<p><a href=\"https://blog.innerlogics.com/blackcat/\">Footer</a> has been with us longer. He definitely has 9 lives, gravity proved it.</p>\n<p>Now I have digital versions of both.</p>\n<hr>\n<p id=\"first-week\"><a href=\"https://www.cryptokitties.co/\">CryptoKitties</a> launched a week ago. Already <a href=\"https://www.coindesk.com/markets/2017/12/04/loveable-digital-kittens-are-clogging-ethereums-blockchain#:~:text=But%20the%20application%20is%20clogging%20the%20ethereum%20network%2C%20putting%20transactions%20in%20a%20long%2Dtime%20limbo.\">clogging the Ethereum network</a> so badly it accounts for <a href=\"https://web.archive.org/web/20171205200402/https://www.bloomberg.com/news/articles/2017-12-04/cryptokitties-quickly-becomes-most-widely-used-ethereum-app\">11% of all transactions</a>, up from 4% two days ago.</p>\n<p>The premise: buy cats, breed them, trade them. Each one lives on the blockchain as a unique token. Each one has a 256-bit genome - 48 genes across 12 traits. The breeding logic runs entirely on-chain. No central server decides what your kitten looks like. The <a href=\"https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code\">smart contract</a> does.</p>\n",
            "content_html": "<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/107/cryptokitties-01.jpg\" alt=\"\" width=\"1300\" height=\"459\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-01-lg.webp 1024w\"></figure>\n<p>Digital Cats on the Blockchain.</p>\n<p><a href=\"https://blog.innerlogics.com/google-auto-awesome/\">Mongo</a> is named after <a href=\"https://www.mongodb.com/\">MongoDB</a>.</p>\n<p>We were paying customers at <a href=\"https://www.tracx.com/\">Tracx</a>. Pretty rare for a startup to pay for an open-source database. We decided to pay after a <a href=\"https://www.datacenterknowledge.com/outages/internap-data-center-outage-takes-down-livestream-stackexchange\">catastrophic power outage</a> took down our cluster. MongoDB gave us amazing and around-the-clock support for free that one time. Next time, we were on our own. Unless we paid.</p>\n<p>We paid.</p>\n<p><a href=\"https://blog.innerlogics.com/blackcat/\">Footer</a> has been with us longer. He definitely has 9 lives, gravity proved it.</p>\n<p>Now I have digital versions of both.</p>\n<hr>\n<p id=\"first-week\"><a href=\"https://www.cryptokitties.co/\">CryptoKitties</a> launched a week ago. Already <a href=\"https://www.coindesk.com/markets/2017/12/04/loveable-digital-kittens-are-clogging-ethereums-blockchain#:~:text=But%20the%20application%20is%20clogging%20the%20ethereum%20network%2C%20putting%20transactions%20in%20a%20long%2Dtime%20limbo.\">clogging the Ethereum network</a> so badly it accounts for <a href=\"https://web.archive.org/web/20171205200402/https://www.bloomberg.com/news/articles/2017-12-04/cryptokitties-quickly-becomes-most-widely-used-ethereum-app\">11% of all transactions</a>, up from 4% two days ago.</p><div id=\"read-more\"></div>\n<p>The premise: buy cats, breed them, trade them. Each one lives on the blockchain as a unique token. Each one has a 256-bit genome - 48 genes across 12 traits. The breeding logic runs entirely on-chain. No central server decides what your kitten looks like. The <a href=\"https://etherscan.io/address/0x06012c8cf97bead5deae237070f9587f8e7a266d#code\">smart contract</a> does.</p>\n\n<p><a href=\"https://www.axiomzen.co/\">Axiom Zen</a> built it. Vancouver company. They <a href=\"https://www.prnewswire.com/news-releases/cats-invade-worlds-largest-ethereum-hackathon-651263323.html\">unveiled</a> it at ETH Waterloo in October.</p>\n<p>Three days ago, someone paid <a href=\"https://techcrunch.com/2017/12/03/people-have-spent-over-1m-buying-virtual-cats-on-the-ethereum-blockchain/#:~:text=and%20the%20%E2%80%9Cgenesis%E2%80%9D%20kitten%20being%20sold%20for%20a%20record%20~246%20ETH%20(around%20%24113%2C000)\">$113,000 for the Genesis cat</a>. 246 ETH. For a cartoon cat. The top five sales, rare traits, are all five figures now. More than $1M has been transacted so far.</p>\n<p>The network is struggling. Transactions are backing up. Axiom Zen <a href=\"https://twitter.com/CryptoKitties/status/937444644740198400\">doubled the birthing fee</a> to push transactions through faster (<em>\"ensure your kittens are born on time!\"</em>).</p>\n<p>Even Vitalik <a href=\"https://twitter.com/VitalikButerin/status/937628849084309504\">weighed in</a>: <em>\"I actually like the digital cat games. They illustrate very well that the value of a blockchain extends far beyond applications that would literally get shut down by banks or governments if they did not use one.\"</em></p>\n<p>I paid more in transaction fees than the cat itself cost. But I wanted to understand what this is.<br><br>The only way I understand technology is by <a href=\"https://blog.innerlogics.com/buying-drinks-with-bitcoin/\">using it</a>. I bought Bitcoin to buy drinks at a club. I bought Ethereum to buy cartoon cats. The pattern holds.</p>\n<p>What interests me isn't the cats. It's the mechanism. Provable ownership without a central authority. Programmable scarcity. The ownership record lives on the blockchain. The cat's genome is immutable once it's born. What happens to the game around it - that's up to Axiom Zen.</p>\n<p>This is the first consumer application I've seen that makes smart contracts understandable to people. <em>\"I own this cat\"</em> is easier to explain than <em>\"I own this fungible token representing a fraction of a liquidity pool\".</em> Makes it so much easier to dismiss as a dumb idea.</p>\n<p>Most of these cats will be worthless. The network will hopefully scale (or it won't, here's to stress testing!). But the underlying idea - that's worth paying attention to.</p>\n<div class=\"gallery-wrapper-wrapper\"><div class=\"gallery\">\n<figure class=\"gallery__item\"><a href=\"https://www.cryptokitties.co/kitty/58820\"><img loading=\"lazy\" style=\"background-color: #d1eeeb;\" src=\"https://blog.innerlogics.com/media/posts/107/cryptokitties-03.png\" alt=\"\" width=\"768\" height=\"635\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-03-lg.webp 1024w\"></a>\n<figcaption>Mongo</figcaption>\n</figure>\n<figure class=\"gallery__item\"><a href=\"https://www.cryptokitties.co/kitty/124653\"><img loading=\"lazy\" style=\"background-color: #d1eeeb;\" src=\"https://blog.innerlogics.com/media/posts/107/cryptokitties-02.png\" alt=\"\" width=\"768\" height=\"635\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/107/responsive/cryptokitties-02-lg.webp 1024w\"></a>\n<figcaption>Footer</figcaption>\n</figure>\n</div></div>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "nft",
                   "ethereum",
                   "cryptokitties"
            ],
            "date_published": "2017-12-05T22:55:00-05:00",
            "date_modified": "2026-02-18T01:43:01-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/moranne/",
            "url": "https://blog.innerlogics.com/moranne/",
            "title": "Moranne",
            "summary": "<p><strong>Fifteen years ago today, Moranne Amit was murdered.</strong></p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/moranne/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/106/moranne-01.jpg\" alt=\"\" width=\"918\" height=\"1182\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">I worked as a software engineer at Applicad from 1997 to 2000. Strange arrangement. Days belonged to the IDF. Nights to Applicad. Same job writing code, different desks. Sometimes I slept under one.</p>\n<p>Moranne was the administrative assistant to the CEO. Brief conversations by the coffee machine. Quick mind. Sharp as hell.</p>\n<p>One night, must have been '98, there was a critical bug blocking a release. Dror, Ilan, and me were the ones who had to fix it. Dror was a senior engineer, Ilan the VP R&amp;D. They've since become like family. That night we were just three guys staring at screens, trying to make the impossible happen.</p>\n<p>Moranne was the last person to leave the office besides us. It was already late.</p>\n<p>About 30 minutes later, she walks back in. Doesn't say a word. Just puts down a bag of snacks and a couple packs of cigarettes on the desk. Turns around and leaves.</p>\n<p>That's the kind of person she was. Small gestures. No fanfare.</p>\n<p>A few years later, we had different kinds of conversations. Late nights, ICQ, just as friends, about love and relationships. Open, honest. She had this way of thinking about things. Sharp. Questioning. Never satisfied with simple answers.</p>\n",
            "content_html": "<p><strong>Fifteen years ago today, Moranne Amit was murdered.</strong></p>\n<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/moranne/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/106/moranne-01.jpg\" alt=\"\" width=\"918\" height=\"1182\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-01-lg.webp 1024w\"></figure></a></p>\n<p id=\"read\">I worked as a software engineer at Applicad from 1997 to 2000. Strange arrangement. Days belonged to the IDF. Nights to Applicad. Same job writing code, different desks. Sometimes I slept under one.</p>\n<p>Moranne was the administrative assistant to the CEO. Brief conversations by the coffee machine. Quick mind. Sharp as hell.</p>\n<p>One night, must have been '98, there was a critical bug blocking a release. Dror, Ilan, and me were the ones who had to fix it. Dror was a senior engineer, Ilan the VP R&amp;D. They've since become like family. That night we were just three guys staring at screens, trying to make the impossible happen.</p>\n<p>Moranne was the last person to leave the office besides us. It was already late.</p>\n<p>About 30 minutes later, she walks back in. Doesn't say a word. Just puts down a bag of snacks and a couple packs of cigarettes on the desk. Turns around and leaves.</p>\n<p>That's the kind of person she was. Small gestures. No fanfare.</p><div id=\"read-more\"></div>\n<p>A few years later, we had different kinds of conversations. Late nights, ICQ, just as friends, about love and relationships. Open, honest. She had this way of thinking about things. Sharp. Questioning. Never satisfied with simple answers.</p>\n\n<p>Later she became the community manager of Ynet's <span class=\"nowrap\"><a href=\"https://www.ynet.co.il/singles\">'singles'</a></span> community. Makes sense. She understood people. Their messiness. Their contradictions.<br>Five years after her death, a colleague-turned-friend <a href=\"https://www.ynet.co.il/articles/0,7340,L-3362808,00.html\">wrote in remembrance</a>: <em>\"She saw her community management work as a mission\"</em>.</p>\n<p>About two months after her death, I started dating a girl who managed another Ynet community under that same 'relationships' category. Moranne ran <em>'singles'</em>. She ran <em>'sex'</em>. She had known Moranne online. Small world. Chilling coincidence.</p>\n<p>In April 2001, Moranne wrote the <a href=\"https://www.ynet.co.il/articles/0,7340,L-1638868,00.html\">opening post</a> for her community. She called it \"ילדי המהפכה\", Children of the Revolution:</p>\n<blockquote class=\"rtl\">\n<p>ילדי המהפכה אני קוראת לנו, אלו שהבחירות שלנו כמעט אינסופיות ורשאים ליהנות, או לא, מפירות העשורים שקדמו להם. נולדנו לישראל שעוד הייתה \"ישנה\", ואנחנו מתבגרים אל תוך הכפר הגלובלי.</p>\n<p>כילדים עוד הספקנו תלבושת אחידה של מפעל אתא ומכנסיים מתרחבים, שאריות של רוק פרוגרסיבי ופאנק, דייט ראשון בפרוזן יוגורט השכונתי וסלואו לצלילי וואהם. אחר כך באו מהפכת התקשורת, הגראנג' והראפ, לבנון, הפרסומות, פרוייקט הגנום האנושי, קלווין קליין, מכוני הכושר, תרבות הפי.סי., המהפך, גירל פאוואר, אוסלו, הטברנות והטראנס, אולוויס אולטרה, פלורנטין, מצעד הגאווה, דור ה-X ודור ה-Y, האיידס והאינטרנט.</p>\n<p>רבים מאתנו מחפשים שותפים לטיול הגדול, אחרים קונים פאלמים, מתלבטים אם להישאר לישון, חוזרים לחיק היהדות, גרים עם ההורים או מחפשים דירה בשכירות, חושבים על חתונה ברבנות, או אולי בקפריסין, או לא בכלל, חותמים חוזה אופציות, חותמים אבטלה, חותמים על המשכנתא. אנחנו נפגשים בריייבים, או במועדונים לריקודים לטיניים, או בריקודי עם, משחקים אותה קשים להשגה, מתפקרים, משאירים הודעות רומנטיות בנייד ומבטלים בליינד דייט באייסיקיו.</p>\n<p>מה מעסיק אותנו? מה אנחנו מחפשים בקשר? האם אנחנו בכלל מחפשים קשר? מאמינים ברומנטיקה? בסקס? בכסף? באהבה? במסורת? או לא מאמינים בכלום? על מי אנחנו חולמים? כאן המקום לספר, לקטר, להתייעץ, לסנגר, להתבדח ולהתווכח על היחסים שלנו, בין עשרים לשלושים, פלוס מינוס. יש פה מקום לכל סוגי האנשים ולכל סוגי היחסים, ובלבד שנכבד זה את זה.</p>\n<p>מורן, ילידת 76, סטודנטית לב\"א רב תחומי, רווקה, אוהבת סושי, תמיד מאבדת מפתחות.</p>\n</blockquote>\n<p><strong>Translation:</strong></p>\n<blockquote>\n<p>Children of the Revolution, that's what I call us. Those whose choices are almost infinite, entitled to enjoy, or not, the fruits of the decades that came before us. We were born into an Israel that was still \"old\", and we're coming of age into the global village.</p>\n<p>As children we still caught the <a href=\"https://en.wikipedia.org/wiki/ATA_(Israeli_company)\">ATA</a> school uniforms and bell-bottoms, the remnants of progressive rock and punk, first dates at the neighborhood frozen yogurt shop and slow dances to Wham!. Then came the communications revolution, grunge and rap, <a href=\"https://en.wikipedia.org/wiki/1982_Lebanon_War\">Lebanon</a>, TV commercials, the Human Genome Project, Calvin Klein, fitness centers, <a href=\"https://en.wikipedia.org/wiki/Political_correctness\">P.C. culture</a>, the political <a href=\"https://en.wikipedia.org/wiki/Mahapach\">upheaval</a>, Girl Power, <a href=\"https://en.wikipedia.org/wiki/Oslo_Accords\">Oslo</a>, the <a href=\"https://en.wikipedia.org/wiki/Music_of_Greece\">Tavernas</a> and the Trance, Always Ultra, <a href=\"https://en.wikipedia.org/wiki/Florentin,_Tel_Aviv\">Florentine</a>, the Pride Parade, Generation X and Generation Y, AIDS and the Internet.</p>\n<p>Many of us are looking for partners for the <a href=\"https://he.wikipedia.org/wiki/%D7%98%D7%99%D7%95%D7%9C_%D7%90%D7%97%D7%A8%D7%99_%D7%A6%D7%91%D7%90\">great journey</a>, others are buying <a href=\"https://en.wikipedia.org/wiki/PalmPilot\">PalmPilots</a>, debating whether to sleep over, returning to the fold of Judaism, living with their parents or searching for a rental apartment, thinking about a wedding at the Rabbinate, or maybe in Cyprus, or not at all, signing stock options contracts, signing up for unemployment benefits, signing the mortgage deed. We meet at raves, or at Latin dance clubs, or at folk dancing, playing hard to get, hooking up, leaving romantic messages on mobile phones and canceling blind dates on <a href=\"https://en.wikipedia.org/wiki/ICQ\">ICQ</a>.</p>\n<p>What occupies us? What are we looking for in a relationship? Are we even looking for a relationship? Do we believe in romance? In sex? In money? In love? In tradition? Or do we believe in nothing at all? Who do we dream about? This is the place to tell, to vent, to consult, to advocate, to joke and to argue about our relationships, between twenty and thirty, plus or minus. There's room here for all kinds of people and all kinds of relationships, as long as we respect each other.</p>\n<p><em>Moranne, born '76, interdisciplinary BA student, single, loves sushi, always losing keys.</em></p>\n</blockquote>\n<hr>\n<p>On February 8, 2002, she was walking with a friend in the <a href=\"https://en.wikipedia.org/wiki/Peace_Forest\">Peace Forest</a> in Jerusalem. <em>The Peace Forest.</em></p>\n<p>Moranne was a peace activist. A feminist. She spent her limited free time, between work and law school, at demonstrations and rallies for peace. She was murdered in the Peace Forest.</p>\n<p>Another colleague, who managed the <a href=\"https://en.wikipedia.org/wiki/Israeli_settlement\">'settlers'</a> community, <a href=\"https://www.ynet.co.il/articles/0,7340,L-1642372,00.html\">mourned</a> her too. They'd worked together for a year. Political opposites. Same team.</p>\n<p>A group of Palestinian teenagers from East Jerusalem, most of them 13 to 16 years old, had formed a <a href=\"https://www.ynet.co.il/articles/0,7340,L-2125373,00.html\">terror cell</a> they called \"The Black Panther\". Their school was their base. They trained there. Prepared Molotov cocktails. Stored knives, gloves, ski masks, tear gas. The oldest, 19, worked as the school janitor.</p>\n<p>Moranne <a href=\"https://www.ynet.co.il/articles/0,7340,L-2363113,00.html\">wasn't their first target</a>. For months they had been trying to murder Jews. They firebombed a café. Tried to blow up an apartment building with gas canisters. Stabbed a jogger on the Armon HaNatziv promenade. He survived.</p>\n<p>That day they ambushed Moranne and her friend. They ran in opposite directions. Her friend escaped and called for help. Moranne stumbled.</p>\n<p>The teenagers caught her. Stabbed her repeatedly. Left her there.</p>\n<p>Help didn't arrive in time.</p>\n<p>She was 25. Her killers were children. They all confessed.</p>\n<p>Two received <a href=\"https://www.ynet.co.il/articles/0,7340,L-2363113,00.html\">life sentences</a> plus 20 years. The others got 3 to 20 years. Some are already free.</p>\n<hr>\n<figure class=\"align-center\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/106/moranne-02.jpg\" alt=\"An infinity symbol where the day should be - or has it just fallen?\" width=\"600\" height=\"450\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/106/responsive/moranne-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-02-lg.webp 1024w\"></figure>\n<p>Her gravestone says \"היי שלום\", farewell, go in peace. An infinity symbol where the day should be.</p>\n<p>I think about that bag of snacks. The late-night conversations about love. A 25-year-old who thought deeply about what it means to connect with another person.</p>\n<p>After her death I went over our ICQ chat history. Over and over.</p>\n<p>One exchange from 1999. We were joking around, mock-threatening each other. She called herself a <em>\"non-practicing atheist\"</em>. Then wrote: \"<em>I fear nothing but the cruelties of man. Did you happen to read <span class=\"nowrap\"><a href=\"https://en.wikipedia.org/wiki/Black_Dogs\">Black Dogs</a>?</span></em>\"<br>It's an Ian McEwan novel. About how evil lives in us all. <em>\"When the conditions are right, a terrible cruelty erupts, and everyone is surprised by the depth of hatred within himself\"</em>.</p>\n<p>A year after her death, a friend wrote a <a href=\"http://stage.co.il/s/189242\">poem</a>.</p>\n<blockquote>\n<p>\"I'm sorry I killed you\" said the soldier to the girl.<br>\"It was for freedom.\"<br>\"That's OK\" said the girl.<br>\"I'm in heaven now.\"<br>\"I'm sorry\" said the soldier.<br>\"Heaven is our next target.\"</p>\n</blockquote>\n<p>I <a href=\"http://stage.co.il/s/189707\">translated it</a> and dedicated it to Moranne:</p>\n<blockquote class=\"rtl\">\n<p>\"מצטער שהרגתי אותך,\" אמר החייל לילדה.<br>\"זה היה בשביל החופש.\"<br>\"זה בסדר,\" אמרה הילדה.<br>\"אני בגן-עדן עכשיו.\"<br>\"אני מצטער,\" אמר החייל.<br>\"גן-עדן זו המטרה הבאה שלנו.\"</p>\n</blockquote>\n<p> </p>\n<p class=\"msg msg--info\"><strong>Update (February 2022):</strong><br><br>Twenty years after the murder, one of the perpetrators was <a href=\"https://www.makorrishon.co.il/opinion/462127/\">released from prison</a>. He was 13 years and 11 months old when he stabbed Moranne to death.<br><br>Palestinian officials welcomed him as a hero. The former Mufti of Jerusalem paid him a visit. The Palestinian Authority presented him with a certificate of honor. Interviews. Celebrations.<br><br><a href=\"https://www.facebook.com/almanar.band/posts/343977014403175\"><img loading=\"lazy\" title=\"Jerusalem Governorate Extends congratulations and blessings. To the heroic Jerusalemite prisoner Ahmed Salah Al-Shuweiki. On the occasion of his release from captivity after spending twenty years in the occupation's detention centers. Praying to God for the freedom of all our heroic prisoners. Adnan Ghaith, Governor of Jerusalem, 2022.\" src=\"https://blog.innerlogics.com/media/posts/106/moranne-03.jpg\" alt=\"Commemorative plaque honoring Ahmed Salah Al-Shuweiki for his release after 20 years in detention. Issued by the Jerusalem Governorate and signed by Governor Adnan Ghaith in 2022\" width=\"414\" height=\"487\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/106/responsive/moranne-03-xs.webp 300w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-03-sm.webp 480w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-03-md.webp 768w ,https://blog.innerlogics.com/media/posts/106/responsive/moranne-03-lg.webp 1024w\"></a><br><br>In another attack, his role was simpler: the whistler. One whistle meant Arab, don't touch. Two whistles meant Jew, attack. Once, no whistle. His friends pepper-sprayed a passerby to check. The man begged for mercy in Arabic. They let him go and waited for a Jew.<br><br>This is who they celebrate.</p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "personal",
                   "israel",
                   "ilan"
            ],
            "date_published": "2017-02-08T09:30:00-05:00",
            "date_modified": "2026-02-07T01:12:13-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/the-fourth-transformation/",
            "url": "https://blog.innerlogics.com/the-fourth-transformation/",
            "title": "The Fourth Transformation",
            "summary": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-fourth-transformation/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/105/the-fourth-transformation-01.jpg\" alt=\"\" width=\"1080\" height=\"1007\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-lg.webp 1024w\"></figure></a></p>\n<p class=\"credit\"><a href=\"https://www.instagram.com/neeph/p/BNxGu1ngcgg/\">Instagram</a></p>\n<p id=\"read\">My signed copy of <a href=\"https://twitter.com/scobleizer\">Robert Scoble</a> and <a href=\"https://twitter.com/shelisrael\">Shel Israel</a>'s <em>The Fourth Transformation</em>.</p>\n<p>The premise: We've had three interface transformations - text (1970s), GUI (1984), touch (2007). The fourth is AR glasses with AI. Ten years from now, the smartphone won't be the center of your digital life. Glasses will.</p>\n<p>I <a href=\"https://blog.innerlogics.com/oculus-rift-backer/\">backed the Oculus Rift</a> in 2012. <a href=\"https://blog.innerlogics.com/what-happens-next-starts-with-you/\">Got Glass</a> in 2014. Walked around Yarkon Park with it during morning stroller walks with my son. Awkward. Not very useful. The Oculus sits mostly unused - hard to disconnect from the surroundings, from what's going on at home, even for games.</p>\n<p>Still believe in the trajectory. When the form factor is regular glasses, it'll work. Then contact lenses. Then direct brain interface.</p>\n",
            "content_html": "<figure class=\"post__image\"><a href=\"https://blog.innerlogics.com/the-fourth-transformation/#read\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/105/the-fourth-transformation-01.jpg\" alt=\"\" width=\"1080\" height=\"1007\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-01-lg.webp 1024w\"></figure></a></p>\n<p class=\"credit\"><a href=\"https://www.instagram.com/neeph/p/BNxGu1ngcgg/\">Instagram</a></p>\n<p id=\"read\">My signed copy of <a href=\"https://twitter.com/scobleizer\">Robert Scoble</a> and <a href=\"https://twitter.com/shelisrael\">Shel Israel</a>'s <em>The Fourth Transformation</em>.</p>\n<p>The premise: We've had three interface transformations - text (1970s), GUI (1984), touch (2007). The fourth is AR glasses with AI. Ten years from now, the smartphone won't be the center of your digital life. Glasses will.</p>\n<p>I <a href=\"https://blog.innerlogics.com/oculus-rift-backer/\">backed the Oculus Rift</a> in 2012. <a href=\"https://blog.innerlogics.com/what-happens-next-starts-with-you/\">Got Glass</a> in 2014. Walked around Yarkon Park with it during morning stroller walks with my son. Awkward. Not very useful. The Oculus sits mostly unused - hard to disconnect from the surroundings, from what's going on at home, even for games.</p><div id=\"read-more\"></div>\n<p>Still believe in the trajectory. When the form factor is regular glasses, it'll work. Then contact lenses. Then direct brain interface.</p>\n\n<p><a href=\"https://blog.innerlogics.com/how-to-create-a-mind/\">Kurzweil</a> (<em>The Singularity Is Near</em>, 2005): \"Intelligent nano-robots will be deeply integrated in our bodies, our brains, and our environment\". By the early 2030s, non-biological computation exceeds the capacity of all human intelligence. Singularity by 2045.</p>\n<p>The current hardware isn't there. The direction is.</p>\n<p> </p>\n<figure class=\"post__image\"><img loading=\"lazy\"  src=\"https://blog.innerlogics.com/media/posts/105/the-fourth-transformation-02.jpg\" alt=\"\" width=\"1366\" height=\"768\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-02-xs.webp 300w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-02-sm.webp 480w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-02-md.webp 768w ,https://blog.innerlogics.com/media/posts/105/responsive/the-fourth-transformation-02-lg.webp 1024w\"></figure>\n<ul>\n<li><em>The Singularity Is Near</em>, pp. 316-317</li>\n</ul>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "vr",
                   "oculus",
                   "kurzweil",
                   "books"
            ],
            "date_published": "2016-12-04T11:18:00-05:00",
            "date_modified": "2026-02-16T23:54:49-05:00"
        },
        {
            "id": "https://blog.innerlogics.com/trying-out-the-terrorist-watch/",
            "url": "https://blog.innerlogics.com/trying-out-the-terrorist-watch/",
            "title": "Trying out the &quot;terrorist watch&quot;",
            "summary": "Giving this #wristwatch thing a try The watch does have something of a checkered past. In the mid-1990s, the F-91W became briefly notorious as \"the&hellip;",
            "content_html": "<div>Giving this #wristwatch thing a try</div>\n<blockquote>\n<p>The watch does have something of a checkered past. In the mid-1990s, the F-91W became briefly notorious as \"the terrorist watch.\" Extremists in Pakistan and the Philippines learned how to use the F-91W as a timer for improvised explosive devices. </p>\n</blockquote>\n<ul>\n<li>IEEE Spectrum - <a href=\"https://spectrum.ieee.org/the-consumer-electronics-hall-of-fame-casio-f91w-wristwatch\">The Consumer Electronics Hall of Fame: Casio F-91W Wristwatch</a></li>\n</ul>\n<figure class=\"post__image\"><br><a href=\"https://www.instagram.com/p/BMWSwnlg9Pj/\" ><img loading=\"lazy\" class=\"post__image\" src=\"https://blog.innerlogics.com/media/posts/104/trying-out-the-terrorist-watch-01.jpg\" alt=\"\" width=\"1080\" height=\"808\" sizes=\"(min-width: 920px) 703px, (min-width: 700px) calc(82vw - 35px), calc(100vw - 81px)\" srcset=\"https://blog.innerlogics.com/media/posts/104/responsive/trying-out-the-terrorist-watch-01-xs.webp 300w ,https://blog.innerlogics.com/media/posts/104/responsive/trying-out-the-terrorist-watch-01-sm.webp 480w ,https://blog.innerlogics.com/media/posts/104/responsive/trying-out-the-terrorist-watch-01-md.webp 768w ,https://blog.innerlogics.com/media/posts/104/responsive/trying-out-the-terrorist-watch-01-lg.webp 1024w\"></figure></a></p>",
            "author": {
                "name": "Niv Singer"
            },
            "tags": [
                   "time"
            ],
            "date_published": "2016-11-03T12:40:33-04:00",
            "date_modified": "2026-02-07T11:52:01-05:00"
        }
    ]
}
