<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GioCities</title><link>https://blog.giovanh.com/</link><description/><atom:link href="https://blog.giovanh.com/feeds/rss.xml" rel="self"/><lastBuildDate>Mon, 20 Apr 2026 00:00:00 -0500</lastBuildDate><item><title>What Happened With Homestuck? (Recap)</title><link>https://blog.giovanh.com/blog/2026/04/02/homestuck-uhc-summary/</link><description>&lt;html&gt;&lt;head&gt;&lt;style&gt;
blockquote.discord {
    --icon-miles: url(/blog/2025/08/08/uhc-end/d6c23890ed9859e15b74d45c298e01c8.png) !important;
    --icon-giovanh: url(/blog/2025/08/08/uhc-end/3165933377c9fe06ce183b238a2edda6.png) !important;
}
&lt;/style&gt;
&lt;/head&gt;&lt;body&gt;&lt;p&gt;It’s been eight months since what I’ve jokingly called my Homestuck Divorce.
I published &lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/"&gt;The Unofficial Homestuck Collection Takedown&lt;/a&gt; and &lt;a href="https://blog.giovanh.com/blog/2025/08/08/the-homestuck-union-was-always-fake/"&gt;The Homestuck Union Was Always Fake&lt;/a&gt; explaining everything, but they’re very long.
I think I did need to be thorough in documenting those details, but the information that’s relevant to most people is hard to consume.
People kept asking me to summarize and I’d rather just have this out there so I don’t have to think about it again. 
I don’t want to have to come back to Homestuck, so this is a tl;dr retrospective summary to organize my thoughts and capture this question that still keeps coming up: “what happened?”&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Thu, 02 Apr 2026 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2026-04-02:/blog/2026/04/02/homestuck-uhc-summary/</guid><category>fandom</category><category>homestuck</category><category>homestuck-postcanon</category><category>fiasco</category><category>hiveswap</category><category>unofficial-homestuck-collection</category><category>personal</category></item><item><title>Identity Verification is as Bad as It Can Be</title><link>https://blog.giovanh.com/blog/2026/03/22/identity-verification-is-as-bad-as-it-can-be/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This is an addendum to &lt;a href="/blog/2026/03/22/addendum-identity-verification-is-as-bad-as-it-can-be/"&gt;OS-Level Age Attestation is the Good One&lt;/a&gt;, where I talk about the potential of legal standards for age attestation as an alternative to age verification. Not already convinced of the dangers of age verification? 
The extent of the evil waiting behind identification systems and deanonymization is unspeakably vast, and fortunately it’s getting extensive coverage. Here’s a quick look to get you up to speed.&lt;/p&gt;
&lt;section class="section3"&gt;&lt;h3 id="direct-digital-censorship"&gt;Direct digital censorship&lt;/h3&gt;
&lt;p&gt;A lot of the energy behind age verification comes from authoritarians eager to censor political dissent, promote propaganda and retaliate against critics. 
This is a power grab, with bills designed to seize power over specific content the government objects to:&lt;/p&gt;
&lt;div class="thread unified"&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="2029574263670292900"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/AriCohn/" title="First Amendment &amp;amp; defamation lawyer. Lead Counsel for Tech Policy @theFIREorg.   Illini/music junkie/oofnik.   Tweets are my own.   https://t.co/F6NjdYqLaQ"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAXJklEQVRoQ11aaWxc13k9b5s3+3A4JIebxE20VlOWZW2wHcdWUreq4wRoAjgpUCBpkKJN0aZpkRQomqYFigJp0KII0j9dELQJ0sQ16qBJbLhObdmOl0ixSUnURtGUKHLIIWc4+/LeLK/nu29oJx36+s285d5vPd/57pN25NQnPU3T0PG6kE/X3UC3noUGE5rO312PZz3+1iD/8Ss8z4Oua+jy2O3wOblHXZYb5MPz/o3+T02uaOo5uUWOsuZ753QdhmHwmS6svnFMnfowyrkCShu3eV7vySDzeAjE0rwrwB8GDD0KPetMIuveg7p1BEgcR0MbgB4IQLcsGAEbTadF5TQYtg3DsuHpBhpui89bsOwgJ9JRbzrQDNMfpgkzEKROOirVOp/VKSQtoRn8DtTqTTU03US94SC7leN3A267iwbXQiiFxOGHYU/OwYuPQ+ufAJLTqFjDaIVHUY8cwGpnAqvePqziILT0/k97nhmHbniwqW2rfgmd2i1qLdbxvaKJKyCW6yrLKQvSamJkdNpot9v8zvNduV+sLFbrqt86LevRgv4z9JpoIdY3eT+9p5s6TCuATle82UZ44gRO/tYXsPHuEtYvzSPZF8Ppg6MwRQTOkRqeRbnqoFKrIhiMgFPWoHV20HG2UK9vwm3V0Gg00XIdJZgMl99lyPdWq9U7umo4bQcdUcJ10ea1Fq3Yoke6rTa67Q7aTZ53eA9/t50OvLbH7x2u06FAXQrehePIOn44djg8zYRcbrldhM0Azj0wgXP3p3F6MoxfPxLBY1MOPjTVwOP7GtAGZz4gpqHdXBrG4KRVtCqSA348i8V9U/sfveeNX/pQiG5LhKGAHCIIwxUGzdahEmJxCTXfe7IW/wzlKEaWnDfUda/bRnTqNE59+ou4fW0RW5cXEAkGMbsnpTwlxvPsIVhmkApzLU6gi0C6uJSTqAl1lVPqnFzzU83//p7wkrDqYYPDZDLxaIpEngobi99DQQPJRJghEOF10ZGLe23OIQBA5dSRiShr8IRmynyyhqESV+Y0mFMuU/bnSxt468pdzC9vYykHXL7bxrUND9e3LCiJxCY9G3BCEdb0UUIJ+r4X5CCLGJoIrrRnjHc45B5ig6UjErIQDdsIh4NM7hoV02DboiSV6xAQqIgyEHNDNzTlAX8uXxFBI9PwvSSryprRcACxiM2jiTDnigTlaCFsmSKrIAdhyQjx5jAfsviYKCAq7X5UlKkF/MVEIFFQFCDq8JzTqFF4WynQcurMB8mRFpxmS5nGtgMELlOFVJM5IeL5FifCiWGUl01/PgkrEV+U1ASulSrK6/JdkHv3o0cGHiJyPYRw6kGEBh6jHpO80cf9XcuoiTVLWd73hsynKVSxeb1DOAzSDaJIgNA6NJBCuj+BieEhROmBJMNpJBnHYCyMUEDiiYncdhWqdT3GMofWs7gSVARTNaNXL3pLCvZrlEPXA1w7RGU5PKufiZHi6AfsPmiBsB/vuqXicTdUIFjuq6UEVwYSi9DSrH5ECx21AtGsXobRdTAYDeDUPVN45N5ZPHh4BvdPDuOB6T1UJArbpGD0hBWMwQ4nEQj3c/TxewJ2PA0zyvOROOwor0WHeEzDig1wJGGxNhF3VdToHNq+D/2jJwVIrKFrAbilC2is/UQlm4/p4i8ZglC6qhc+oviVttNsYCQWxFgyjEFafs/IIIKWgQPTExju71P31FnQNrc3UKhUcfH6Ol6cX0Kp0UIo3s/5LE5rQgE9leo7+DhOf+a3cevCPLaXb1LgoKoxXRpJDKeFJwkUNtenAkaQHuAE0OSErVK5q5CGrqWAXV2OQgr8ePeHH0YSjyoveO/0cD9+5fQRPPX4SXz8Q6fxqSfO4vGHT2N2ahz98RD6oibDx0YqYmFiqA/DA0miVABdp6ZG262wXpTpTf5uNeC1mqxLZUIlK3aIxSoW5zFJMQcoi4SzAIBAGY8BujA8NI3Y1GHE7zmMQN9QL0wMPyYlgXbh8/9/aN0gk3OA8d4fiyKgteE5FS7uJ3FXSoB4iYXPJg2JUpAQ0SMRCSIWCsBkKKjpif+61A4BxR7S+bnGM4EEQ5v0hkML8CihTETzc4eIljx+EoOPH8PAuTmMfuI4orMHpS75SpA06YJIvUImLlTkSygGheIcCvaECAbInyTaOi2BSw0uQ6TjSjUWJXqeo4cDdHjY7FLBNgWKEUX2Mc5nYURGoYcH+H0MBvNBD6aYI7S4Z6twNvUaRwGWVUDA3Ga+GIikD0IPTaRhpBiDkQ46QQoX8F3kqRiXpPVRYVfwLs0q1KHLWi8sseUKtSBculJyiERWmLfpio4IGYzGEojHk/weRI20Qrw5nIqKptjfH8bBwRTM0ASFPcRLtLaZgBURBUZodSpjxJkHBoujB0tv8lhHQK8gECS5TIxDr9zaRnMZqN/0UFmkZcpNhfEMf58WeEINhKd4FJT5IKMl2Kw8TKvLFwslCpevuSjUuqg0OeoOMhsbWFy5jefenMePLlzGS/NXsZzZplAW9qSSePRQGsdHS5hJFxALuDDJhDVDqDIBxQpRGdYlhpkugyHtL6nCwzcuhdRO/tmK55QLqLx7AWhsQWvdRf3uGxSShAy+AhLrKoRUEOgqVCS1I/TWmX1jsFkZHaehiF2TxCzI3x87+yCGmKjfe/453MhXYUX7MRS2MD5AqKSQa5k87psaA+/GG9kiSp0A1rN9CM99DKc/+xgu/+QmKutbDKsQrV0lD8/S61Wu3mO+kfugDz4Avd2so3zph2hlfop27m149TVK5zc4QonFwhJNmsS9GkoXZQSb8LtvbATJeBjpoRjLfQgJFq/xCUIdITHInuKBe4/ic596Co/efwiP3neYaHUCw31yr42xkVEEQ+wd7Ah7iDZMe51Wb6l8EZouYWtwDklvQURJ3rbbQb0GhmyXpDMHPTqzB+Hhw7DC02xahuCRiEmce1TifeElVHSVjLvSix7y0ybmp2IRPHTyXpx78Dg+euIQzh3bjz5mq87n+8j1Z4lQv3r4EM4cOoA4i09DqLcnIelgOVvGUlaHy+6qjTpzqKGoRJdQKqxWF6ojkO1jtt9bvNeh8XpwMIT0hx+FPXEAHVVxPSXYroRiBfXXk12CX75LkpfJf6r1luL4pZ0a7tm7BwdGh2HTek6tSSsKp3eUNUOExWa1gZ1SEVUWP+FVd3I1zK+5yOaa2CkQSIwozzcQCFFoEkOPdUAVzR43kj8Fu8LBpPjJsZ5lXJH2jn/0SUz85pcQnn1UdUrvcR6lBOUW7BW6DMFfT9FYhwtcXsvQc0EmbB7bhYLCf4FWi4kXDEX953m3S6TKVSvY5hA2WnZ0/NtbBayUdJAqoVRoUFahMTJ/VxX+LpqKnqtcVAzOVwAKztuqDyET42weNWaBiR2eQnDP/cqi/t/7Hz8FKL4UJoVOxH4m4zsrq3jh4iK2aw1slkqgvVX/nNkp4u2lFVxfzaBEKmGFw3D5XFPaT4ZFkyHa6EYoTEDk4ZySnIRGodQMJo9hJohk9Q2yuE7CSrE+BZKqDw8z54KxEEJpQm3+9Wex88abWH/uJaz/+HW0drZVt6Q074WQuEDyQZRQzEg8odBJFvZwdW0T66U6tss15Co1FAihO0ziDULr6P4D2GHRWi1VUVdU2m9JHdYBgVOh7gxketxkXnSV9wO6wGiHKEqBB0cQmduHKJPfSM9C75tG6L4nYM8cgB4nNystfBv5N/4d5Yv/jcL576K+cpUmDCihZUi+dERo5UD/o/icnJcwUwntEQLz2CpWsb6dw7vZTSRMG5NhdmMVB3eW7+DO2l2U6nVUmAdlkrqOtIdqVqEtogipRXAS3eAUvWiQlbKRJ0PusPa5nEMLsfLOHoZOT+hxWj5KjiS6610SqfJ1dBsrDJ0dNvgN0mSZ8Bck7n2YBqTKvR++7PDFB/IUfpVFqkCMc9oNlDJZ1DJFdAsOLIZDiGjVptWL1RpDykWE7DNgSbJGOE+Q1d0jGj4MI75XNfquS5RySoyIHVSv51G5vIlmtoQmwzT31quov7sFd0dyQIWHBLhDakxG6Pp7Np4qGH5D4beZmkoevxd4XzNxlNzjdjrYKTeQ4SKGbiM0HEc20ECBsNhHit2kxfPlEsqsOx4TdYyMdChObq/6DLaIpAVdgdj8DcJvG+1GFV3KYxp1JCZTrAcEgu0svEKeNWsB7UqFBlfdYZgTSDwSMRRN7ZlX/k+TK3k9oXZ+QdiFWLVz50mLp66oCix22GbyZnMVhGIxzByYwuzcIVo1ihrjv8r4r7ITk9Zz/+whxO0q3PKq8mxk5ADCe48ilJwgEfS3czQrCCMYQqPYRKtIql1rs1/JUMa2L4TaJLCHlQWkZRRrmoZs2YkW0gXIToUUEfkpaPXLtFolOD+G7u/i7SUdH0wNYTWbxWqugEKRsEncv5vLI8vkzvB3SKr33oMYvmeORmmiwerfLf4MlcyLKN14XjHZaKIPg+kBxAfTXD/A4KACFYZTLUclliFQTq7APHLpAdvn2x0tqDiOzuTzkxg9R4gL/DbyvaZGhOcEBvtd4fVJ9roRskOTLeIHPvJJDO+ZwZ2NLby5eA2vvL2Ad5ZX+DuDCOfZP3Mfjj7yJByGi+O4yopOcwPYugBv4e/RfOvv8NLXv4r11/4D7ewFGKVFhN1lRPUS85McAi65F0m+yZaUa2v7z/2V2qgx6Qmt2yR0MXYvfAft4iINbvvNtdJmN3v9hsMOWohHotLDqXNtYvzeiSl8/vN/qJqW+ddexsLCT7GZz7CgsSMjpZ6ZOIrTH36SiBLC5UtX8J1//RbuZNYUYYxGIohGw7CkgHWlSGqE3RCaoTSC8TgGJyYQGRhHubhBmCdiDZ+COXQM2swTf+I5O2Sh9bYiTakDJ1BavYnmu//LiRyVsMKjfPjxdyqCQdk+CSDMIQVtd+9USNjHPvobOPdrH0GtVkVm7RbWbt9EkYmXHh7DqTNnWYSSuL5Ez7zyKl47/zK2c9toMd4tNkSiRCgUJh8S6kAfM5wchxSftaHepdB9A9h77ATawThq5ixJ4CD02pUXoFXXGM8bcLIXobW32eUkqCWRSJf9ILYpBP4Aq2eI7WOcVpIRCTNkDKYyyZ8pDYewRlpy4dICNjIZTE9OYmergqVreSwvVfDyi/PIbZVICVjF2QS5zSbzrstmRxogQUFP7a3KUfoQcbxQjiB7+khEx0CoBat4B7df/zG03A320lW0SmvQps885aVOP4HwzBGeLDOx4lj90TNo3PoB46LKqqgrdmjaPr+xSRNEWEuXVrLtr6JCjJSdRWpoaAS/+zu/h0qhhK//9d9Cc+kxlv8qiZ9n6/jyn38ZI4TV73//e7i0OE+LB5HL76DGIidNSzwaRyQq2/a7VaZXQqVwUnmXSOY06ogefwre1Fn20oFxZH6+gMyLF7H1dpZVjwI5eegu2za1LchQiYQZnxEeQ3S1qTZthWL1kFUhlfAk2SrcKbCYFXNYXVtDrSFtpqfeGwiZO3r8qHp3UCQibWZzaj9VuFV/fxJ97BFs5o5lSQ3qCf6LG1uazK+rUDOZKJ3sZfSNTguZY+X1yuzEyBLrFbaWLwMbP2W4iOUCbJ4D7Iis9ximHGXjSxiieqsjHhAlpOBRgRYZ6o3rV/HxT3wcX/nLr5AaE8cdB/H+Pnz2c5/FyZMnsXZ3A+VyUc3VSx6GSRQJJqvNLk5R+B5EK/6l3juo2yB1X7dsVLK3WNQWhedWCE8tJqqQNw+FKz+EzeY5JLtjxPYAhZY4F6GlB5CGXybskLG6JGmOI5TX30I3aWlR5tatZdTp5hMnTyDVP4AG+f/kzDT6BwaQZ7iE2Sb6DMsX0uf3/l6P2vztwfUvKqKU8UQhP6TaVdKKG6+IXD5fN8NR9q2DhNKWamykoO1upys3qjrgx7scDSolaCRKqjoB2fGTEAgoZLl7dxVra+ts/2oskwb6E/28Lu/dSKOZD62OtI7+c7LhKyGoNm97Ft/tR/zw6SkkjLiX7Dazu7L0M8J8o4BOJQunsopW7iqslpA5VmCGg8S0aiQ8KRV+qCh79CaVcybRybeeb0WbMV5m1bx647ranTbIPSxS5Tqptkv0iRImN9fX4LDmiHBS9SVM5Jr0u+2Wb2FRQtYWmFZdIEdbtnN652Snol5k0+8U76JTXEX+8rPIz39LIZHs+8gQl0oyiWAyqSyo2jpPdts6/uj4uxbKmtTOYi8cJo1evHIZTRJD2f6TT4uwaTMBHRool8sxn2yVAy6VVJ4RC/PPlv0eWVfmhMC0qTwri8tbGXkFJa+oJNw9ElBtZPIwewiCZzJJQZqoFcjlWVCabEbiJGSygGC3FJkWj7JoiDEs8V4sFhCT7UImqkvK7FDIJnMiwDBqtRwWr1GU2LIWMwU+Y+P3//QPyFiL+E9CaIO9cpdkf4IVdnMzi3gihir7hGq1qhRuy1rSnRn+XqzQDhnimb6+PmWwmjDnf/nuf3nCEEMUcCwRxerSTezdO67cViyW8O1vfwfPPf8jfOELX8STT34E6+sZDDIZBzjurK4iS+I2wwRdWbmNsbFRKhQjyqzjhf95Dt9/+nt46Sfn8fWv/QMuXriAH/74WSzduoX5+XcwNbUPt5aXWBOGVficPXsWX/2Lr+KV86/AJlsVNioKiPclGgQUJAJkC3N0ZBwOw60lCX/k4H7sG0ljNBZFg73rULJfvVGcmdnHRLzLBxs4fvwELl26jNnZWfTTU6s8f5cdVjo9hJs3b+CN19/ElcVFXutnYgcVFD7//As4c+ohzM0dxSOPPiLBzmLVUB576OGHMbt/CseOHSXNKBJCw+o54Vtup0krt1UYCd4LaZRGSIQXTwtoiLfl3vRgGNon//hrXrWSR6xbR6NSQI7oUWU9SCZTKnwOHjig3Dq/sIBJ0oOWNNviWo7BoSHcXllRlTnIyVVMM4QEXvOMc0m2ib1TqJTrKlfm5u5VdKNY2mYhyzAso5ie3kfvrSA9NMxQymCNNESSv8qGRZ5pMixFYFlDWIDkRj9l22GP/ciZIWif+dLfeGN7RvHulXdQzW9j7540fvCDZ/HgyTM4dv8xFSLjY+O4TlQR1Dl86BCuX79JpVipWejk2s2lGyxCCZ6rUakBJMjna4TPhUuXsGdkDIuXruIBFrDpfTOkDTlUawW89dbreOSDH1QIJPHsMOdK7B0EBCQ8n3nmGWxv+0RPYDNI4WWTSyp7MBCCZ0VxbIqJ/kdf+6Y3zLDYWltGltZPMUGE57OtQYydlNNoKiTY2tpSbk4kEgrKJLTk5Xc6naaw9B65jFhIYlTQRHaupQaEeK5RaagXe0PDaYZXCLVmiUqUldUFkQIMi1AoomJdQkfWevrpp0lJCsobQh8ktywCR53zDA7S8mzAavSS9s1//idPyJoIN5oewcL8gnJtmCTLsDQk+/pRYidVYjMtHhCXhonlUeZMrVZhUaoj2Z/C1OQ0Xn75PO9PqOelYKQZYmX2wS15Y08uZJEQyo712Pg4gWAQ165dI/rEMZBKKYUl5+bm5rC0tIRvfOMbOHX6FNdzMDA0yOQ+zzZ0P86/9op6s3/m1Bnm0X7SaSZuhYtU6L5iYQepVFJZtsa4LxeLKPBcuVxQVdclNArfkY0tx/H/+YHApeuwmWdjEgpJVQaty/hlrOd2cirUVtdWUaoVkdmU+HZVnuRyW+pZSeIyLbm1lVVz5vN5op+sW8DFn12kQefx9oWLpOLbeOPN15XnhSEIJXnt1Veh3XPkpCccp0MLuWxCTPYAkYi8XReeL+9thVZYXNRVMe5Q6OHhEeUxCTUpXrv/pkKYq7hcks/HbxJbMtJmsQXZLDZDGhKDcbVt0pV/b8E6YFuyqaUrxcXDokRhp4gN1gbJCVlnDz0mNUnklH/hYpIptGigzew2/g/5yZyc3hh41gAAAABJRU5ErkJggiAgICA="/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Ari Cohn&lt;/span&gt;&lt;span class="at"&gt;@AriCohn&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;This House E&amp;amp;C Markup is off to a "saying the quiet part out loud" start, with the Chairman saying outright "algorithms amplify addictive, harmful content."&lt;/p&gt;&lt;p&gt;It is always, 100% of the time, about content. And that's why these bills continue to be unconstitutional.&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/AriCohn/status/2029574263670292900" target="_blank"&gt;Thu Mar 05 15:06:26 +0000 2026&lt;/a&gt;
&lt;/blockquote&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="2029578829988000089"&gt;&lt;div class="header" data-reply="AriCohn/2029577807118876755"&gt;&lt;a href="https://twitter.com/AriCohn/" title="First Amendment &amp;amp; defamation lawyer. Lead Counsel for Tech Policy @theFIREorg.   Illini/music junkie/oofnik.   Tweets are my own.   https://t.co/F6NjdYqLaQ"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.png;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Ari Cohn&lt;/span&gt;&lt;span class="at"&gt;@AriCohn&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;"These platforms are engineered to capture kids' attention"&lt;/p&gt;&lt;p&gt;I hate to break it to Congress, but that's literally the point of all media. "Creating media that people want to keep consuming" is not a standard workable under the First Amendment.&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/AriCohn/status/2029578829988000089" target="_blank"&gt;Thu Mar 05 15:24:35 +0000 2026&lt;/a&gt;
&lt;/blockquote&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="2029584855067963652"&gt;&lt;div class="header" data-reply="AriCohn/2029584466381779330"&gt;&lt;a href="https://twitter.com/AriCohn/" title="First Amendment &amp;amp; defamation lawyer. Lead Counsel for Tech Policy @theFIREorg.   Illini/music junkie/oofnik.   Tweets are my own.   https://t.co/F6NjdYqLaQ"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.png;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Ari Cohn&lt;/span&gt;&lt;span class="at"&gt;@AriCohn&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;@AOC Here's the problem: the FTC can just decide that whatever content it doesn't like is harming children, and find some way that platforms aren't acting "reasonably" to prevent it. &lt;/p&gt;&lt;p&gt;And it will.&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/AriCohn/status/2029584855067963652" target="_blank"&gt;Thu Mar 05 15:48:31 +0000 2026&lt;/a&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Governments are, of course, trying to claim control over “public discourse”. 
Like all seizing of arbitrary power, the risks associated with this are volatile and unbounded, because they depend on who holds power at any given moment in a political system where power is expected to rotate. &lt;/p&gt;
&lt;/section&gt;&lt;section class="section3"&gt;&lt;h3 id="discord"&gt;Discord&lt;/h3&gt;
&lt;p&gt;As a case study, let’s take a look at one of the latest major services to attempt age verification: Discord.
At time of writing, Discord is in the process of trying to switch to a “&lt;a href="https://discord.com/press-releases/discord-launches-teen-by-default-settings-globally"&gt;Teen Default&lt;/a&gt;” system, where every user is assumed to be a minor unless they can prove their age to Discord. 
Discord is a communications platform used widely by adults, and during COVID Discord very intentionally expanded their market domain beyond gaming to focus on being a global platform, so the assumption that all spaces are for kids is clearly incorrect.&lt;sup id="fnref:discord-both"&gt;&lt;a class="footnote-ref" href="#fn:discord-both"&gt;1&lt;/a&gt;&lt;/sup&gt;
But Discord is sometimes used by children, and since it’s a communications platform people can use it to communicate horrible things. 
&lt;a href="https://danboguslaw.substack.com/p/leaked-intel-brief-shows-feds-terrified"&gt;Boomers have learned they can be insane about this,&lt;/a&gt; so Discord is under significant pressure to balance its goal of being a universal communications platform with child safety.&lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 22 Mar 2026 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2026-03-22:/blog/2026/03/22/identity-verification-is-as-bad-as-it-can-be/</guid><category>cyber</category><category>enforcement</category><category>platforms</category><category>tech-culture</category><category>security</category><category>software-architecture</category><category>rhetoric</category><category>services</category><category>fiasco</category><category>discord</category></item><item><title>OS-Level Age Attestation is the Good One</title><link>https://blog.giovanh.com/blog/2026/03/22/os-level-age-attestation-is-the-good-one/</link><description>&lt;!-- ## I hate everything --&gt;&lt;!-- The movement for invasive identity verification online is pushing forward, but there is another way. Let’s talk about age signals and how California’s already passed attestation bill might be a beautiful path forward. --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;There’s a coordinated effort to use the “child safety” euphemism to cripple the internet with identity verification mandates. That’s bad. 
But buried in the mix there’s a genuinely good idea with enough political capital that it might stick around and do some good. &lt;/p&gt;
&lt;p&gt;Every time I’ve tried to write an article on the topic of child internet safety my energy has fizzled into depression, because as one researches the topic it becomes obvious that everyone with any relevant power is refusing to solve the problem on purpose. 
It’s demoralizing and it’s been mostly useless for me to do any thought work in this area. &lt;/p&gt;
&lt;p&gt;But California’s age attestation bill might be an exception to this. Because it’s &lt;strong&gt;age attestation&lt;/strong&gt;, not &lt;strong&gt;age verification&lt;/strong&gt;, it looks like a significant political step in the right direction, and with the right focus it could do a lot of good. 
A lot of people have (fairly!) assumed attestation was age verification or at least lays the groundwork, but I think this isn’t the case. There is always the danger of future bad legislation, but OS attestation doesn’t pave the way for it, it provides a strong defense against it.
We need a good idea to win the child safety war, not because we’re in dire need of more online child safety, but because addressing the real concerns &lt;em&gt;correctly&lt;/em&gt; blocks a whole slew of impossibly dangerous policies.&lt;/p&gt;
&lt;p&gt;My ideal age filtering tool is a system of client attestation with trust rooted in the adult administrator, provided by an OS-level API provided as preemptive verification, enforced by compliant browsers and application stores. And we’re shockingly close to that.&lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="there-is-room-for-improvement"&gt;There is room for improvement&lt;/h2&gt;
&lt;p&gt;People on the privacy side of the age verification war — my side — will argue that parents already have everything they need for comprehensive web filtering if they want to use it. 
I think this isn’t quite true; there’s one notable architectural gap that a technical solution could meaningfully fill. &lt;/p&gt;
&lt;p&gt;There are many existing content filtering tools geared toward child safety but their weakness is that they’re reactive. 
Traffic filters can identify and block traffic from known websites and on-device content filters can try to detect and block specific content. 
But this requires the user reacting and defending against every possible source and behavior. 
It’s the same cat-and-mouse game as adblockers. 
And like adblockers, the more closed down the system is — like iOS or gaming consoles — the harder it is for developers to make exactly the right product.&lt;/p&gt;
&lt;!-- In the current architecture of the internet, servers are sending the data to childrens' devices regardless, and it's up to the parents to either try to play defense or cut their children off from socialization.  --&gt;
&lt;!-- There is a difference between a supervised minor and an unsupervised minor. --&gt;
&lt;!-- This is especially true in the world of age ratings: in most cases where a minor is barred from doing something on their own authority, they're still permitted if they have parental consent and supervision. --&gt;
&lt;p&gt;The internet sometimes assumes minors are supervised — since they have parental consent to have the device in the first place — but this often isn’t the case. 
It’s very common for minors to have their own phones or tablets with unsupervised access. When they’re online or downloading apps, they’re not sitting with a parent, they’re unsupervised, roaming children. 
Parents are dropping their kids off in the city. &lt;/p&gt;
&lt;p&gt;This isn’t inherently bad; it seems like parents and children both want children to be able to exist independently without granular supervision, and so there’s a desire to make that situation safer. 
That shouldn’t come at the cost of any adult liberty or even the liberty of children with parental consent; it just means we want an ecosystem that allows for unsupervised children to exist within it.&lt;/p&gt;
&lt;p&gt;Right now the burden is on parents to be active defenders protecting their children from a vast ecosystem of companies investing research and capital into optimizing how efficiently they can exploit money and data out of everyone in the world. 
It would be a meaningful improvement if there were a safe way to prevent some of this exploitation by putting reasonable requirements on providers, so long as this can be done in a way that doesn’t cause more problems.&lt;/p&gt;
&lt;section class="section3"&gt;&lt;h3 id="political-pressure-for-child-safety-is-exploitable"&gt;Political pressure for “child safety” is exploitable&lt;/h3&gt;
&lt;!-- by extremely dangerous people who want to destroy the world under the pretext of child safety --&gt;
&lt;p&gt;But the lack of a perfect parental control system isn’t the main problem here. The real danger is the push for online identity verification using child safety as a justification.&lt;/p&gt;
&lt;p&gt;Smart and privacy conscious people demand “No age verification” (quite reasonably!), but that doesn’t offer the quick fix people are looking for. More importantly, it doesn’t relieve the political pressure and so doesn’t take away the excuses of tyrants.&lt;/p&gt;
&lt;p&gt;Normally “do nothing” would be the safest option here, but the danger of uninformed and reactionary voters means there is a great deal to gain by satisfying the concerns safely instead of letting the solution be evil.
A technical standard for parents to somehow identify their children as children is the relief valve for dangerous political pressure. 
This doesn’t appease the fascists and censors. This doesn’t cede them any ground and it’d be wrong to try to; there’s no satisfying that hunger and it’s a dangerous mistake to feed it. What it does is actually improve the material conditions for the people they’re trying to trick.&lt;/p&gt;
&lt;p&gt;A proactive system that puts some of the burden for protecting children on those companies is a real relief to this, and it would be a meaningful improvement if something could address this without causing bigger problems.&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="taxonomy"&gt;Taxonomy&lt;/h2&gt;
&lt;p&gt;There are three basic categories of age filtering: &lt;strong&gt;nothing&lt;/strong&gt;, &lt;strong&gt;client attestation&lt;/strong&gt;, and &lt;strong&gt;client verification&lt;/strong&gt;. 
These provide services varying &lt;strong&gt;levels of confidence&lt;/strong&gt; in their knowledge of users. (It’s tempting to simplify confidence to labels like “strong” or “weak” but it’s important to think about what’s actually being secured, and from who.)
Different people call these different things, but here’s my taxonomy with the labels I’ll use. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 22 Mar 2026 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2026-03-22:/blog/2026/03/22/os-level-age-attestation-is-the-good-one/</guid><category>cyber</category><category>enforcement</category><category>platforms</category><category>tech-culture</category><category>security</category><category>software-architecture</category><category>api</category><category>user-agent</category><category>manifesto</category><category>rhetoric</category><category>services</category></item><item><title>Anthropic and The Authoritarian Ethic</title><link>https://blog.giovanh.com/blog/2026/03/03/anthropic-and-the-authoritarian-ethic/</link><description>&lt;!-- ## Basic history --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This has been a wild weekend for the fields of tech policy and AI safety. 
As a writer I am not normally a news guy, but this moment has felt like kind of a perfect microcosm of both the AI industry and the Trump administration’s flavor of petulant authoritarianism. &lt;/p&gt;
&lt;p&gt;The AI company Anthropic — known for their engineering-focused chatbot &lt;em&gt;Claude&lt;/em&gt; — was founded by former OpenAI employees who left to form their own company because they weren’t satisfied with OpenAI’s safety standards. 
Anthropic’s prioritizing of ethics and care have not been a handicap for them; they’ve led to Claude, the best LLM product on the market today. 
In July 2025 &lt;a href="https://www.anthropic.com/news/anthropic-and-the-department-of-defense-to-advance-responsible-ai-in-defense-operations"&gt;Anthropic was awarded a two-year $200 million contract&lt;/a&gt; with the Department of Defense to support AI for use in classified government environments, &lt;a href="https://www.reuters.com/world/us/openai-wins-200-million-us-defense-contract-2025-06-16/"&gt;mirroring similar contracts the government made with other companies.&lt;/a&gt; 
Despite the internal competition with ChatGPT and Llama, Claude was the highest-quality product and the only one approved for use in classified military systems. &lt;/p&gt;
&lt;p&gt;But Anthropic’s culture of (relative) corporate responsibility set it up to be the target of a frenzy the Trump people had already worked themselves into: the specter of “woke AI.” 
The presidential order “&lt;a href="https://www.whitehouse.gov/presidential-actions/2025/07/preventing-woke-ai-in-the-federal-government/"&gt;Preventing Woke AI in the Federal Government (July 2025)&lt;/a&gt;” was an ideological rant typical of Trump’s presidential orders filled with false and foolish assertions to justify banning LLMs involved in federal workflows from “incorporating concepts” like “DEI”, “intersectionality”, and “transgenderism”. &lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Tue, 03 Mar 2026 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2026-03-03:/blog/2026/03/03/anthropic-and-the-authoritarian-ethic/</guid><category>politics</category><category>ai</category><category>security</category><category>rhetoric</category><category>rug-pull</category><category>tech-culture</category><category>services</category><category>buying-the-euphemism</category></item><item><title>Interloper and Artistry in Impressionistic Horror</title><link>https://blog.giovanh.com/blog/2025/12/16/interloper-and-artistry-in-impressionistic-horror/</link><description>&lt;!-- ## Interloper very good --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;a href="https://blog.giovanh.com/blog/2025/12/16/interloper-and-artistry-in-impressionistic-horror/twitter_card.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Interloper is an unfiction ARG series for source nerds. 
It feels like Interloper was laser-targeted to drive me specifically insane, but it turns out that was true for a lot of people. 
After three years the first episode has 856k views, and the recently released final episode is a feature-length 1:54 film that earns its runtime. &lt;/p&gt;
&lt;aside class="cb spoiler-warning"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Don’t read this before watching the series!
If you’re a Source engine nerd or just like ARG and unreality stuff, stop reading this now and &lt;a href="https://www.youtube.com/playlist?list=PL6ywVNnt0-OpbUDztGZd7n6QjtADOTXY-"&gt;go watch Interloper&lt;/a&gt;. &lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="couldnt-solve-interloper"&gt;Couldn’t “solve interloper”&lt;/h2&gt;
&lt;p&gt;I’ve been obsessing about Interloper since the beginning, and when I saw the finale I knew I had to finish it out properly. 
But this article is my third attempt to write something about Interloper, after spending several weeks just doing research. &lt;/p&gt;
&lt;p&gt;My first instinct after seeing the finale was to “solve” it. 
There was an enormous amount of information available that was all interconnected and painted a picture of this huge, fascinating world. Interloper F didn’t answer all the questions the series asked, but surely with all the clues it gave us, someone who really understood the series would put the pieces together. 
Surely I could, if I gave it some time and attention. &lt;/p&gt;
&lt;p&gt;But that didn’t work. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Tue, 16 Dec 2025 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2025-12-16:/blog/2025/12/16/interloper-and-artistry-in-impressionistic-horror/</guid><category>fandom</category><category>gush</category><category>language</category><category>asthetics</category><category>ramble</category><category>media-consumption</category><category>literary-themes</category><category>source-engine</category></item><item><title>Fandom and The Freedom Motif</title><link>https://blog.giovanh.com/blog/2025/12/07/fandom-and-the-freedom-motif/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Fandom is the most important thing in the modern media industry. Fans buy the products and advertise the brand, but are also the primary source of feedback. The media is what the community forms around, but the community is what feeds the media. &lt;/p&gt;
&lt;p&gt;But the relationship between a work’s copyright holder and its fan community is structurally antagonistic.
The IP holder and members of the fan community have fundamentally different interests which sometimes align but sometimes don’t. 
The rightsholder depends on the goodwill of the fandom, but at the same time there is always danger of the community being attacked by the rightsholder. 
The law creates an implicit hovering threat of legal violence, and the profit motive encourages bad actors to pull the trigger.
This doesn’t mean the relationship has to be antagonistic in practice, but it means there is always an underlying potential for conflict that has to be reasoned with. The threat is always there. &lt;/p&gt;
&lt;p&gt;There is a productive tension here.
Fanwork can serve functions official work can’t, and the community surrounding a work is one of the main things that gives a work “value”, in a base economic sense. 
They’re the ones buying the products. Media companies are desperate to have more fans because that directly translates into their ability to make money. &lt;/p&gt;
&lt;p&gt;Likewise, the health of the franchise matters to the people who love it, and official recognition of fan communities can be a good thing.&lt;sup id="fnref:recognition-good"&gt;&lt;a class="footnote-ref" href="#fn:recognition-good"&gt;1&lt;/a&gt;&lt;/sup&gt; 
Fan work can be elevated, talented creators can be brought on as part of official projects, etc.
Official recognition &lt;em&gt;can&lt;/em&gt; serve as a badge of honor and help platform and encourage talent and creativity in the community.&lt;sup id="fnref:recognition-danger"&gt;&lt;a class="footnote-ref" href="#fn:recognition-danger"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;But the deciding factor in whether the creator/fan relationship is healthy or exploitative is whether the community is &lt;em&gt;allowed&lt;/em&gt; to be independent. 
It’s fine for official spaces — fourms, Discord servers, etc. — to exist, so long as the purpose isn’t to capture and enclose a community. 
Media and fandom can have a symbiotic relationship, but as soon as the corporation tries to exercise &lt;em&gt;control&lt;/em&gt; over their fans, it turns into an ugly hostility.&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 07 Dec 2025 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2025-12-07:/blog/2025/12/07/fandom-and-the-freedom-motif/</guid><category>fandom</category><category>ip</category><category>fanwork</category><category>gaming</category><category>media-consumption</category><category>homestuck</category></item><item><title>Graph Paper Lindenmeyer Systems</title><link>https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;a href="https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/preview.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When I was a kid I learned about &lt;a href="https://lsystem.club"&gt;Lindenmeyer Systems&lt;/a&gt; and the fun tree patterns they create. I even followed a &lt;a href="https://x.com/LSystemBot/status/1283072526747238400"&gt;Twitter bot&lt;/a&gt; that generated and posted random pretty lsystem renders.&lt;/p&gt;
&lt;p&gt;These are similar to fractals, except unlike traditional fractals they don&amp;rsquo;t usually expand within a fixed space, they either continue to grow or loop back intersecting themselves.&lt;/p&gt;
&lt;p&gt;Meanwhile I spent most of my time in school and needed something to occupy my hands with. I did a lot of notebook doodling, except people &lt;em&gt;notice&lt;/em&gt; those.
But I did have graph paper. And graph paper gives you enough structure to draw lsystems by hand. So I did, a lot. &lt;/p&gt;
&lt;p&gt;&lt;img alt="graph paper photo" class="size-m" src="https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/graph.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;I probably went through a notebook every two years, and I can&amp;rsquo;t remember once ever drawing an actual graph.
This was when I was a child in childish ways and hadn&amp;rsquo;t yet learned about dot paper. Oh, misspent youth....&lt;/p&gt;
&lt;p&gt;There are a couple interesting things about this mathematically. &lt;/p&gt;
&lt;p&gt;First, there&amp;rsquo;s only really one interesting space-filling pattern to draw on graph paper, which is forking off in two 45 degree angles. Anything that doesn&amp;rsquo;t fit on the coordinate grid (like incrementally decreasing line lengths) becomes irregular very quickly. 
The main option to play with different patterns is by setting different starting conditions. 
(Seems like it&amp;rsquo;d get boring quick, right? I spent the rest of the time trying to apply the &lt;a href="https://en.wikipedia.org/wiki/Four_color_theorem"&gt;Four color theorem&lt;/a&gt; in an aesthetically satisfying way. Still haven&amp;rsquo;t solved that one.)&lt;/p&gt;
&lt;p&gt;Second, drawing on a coordinate grid means using &lt;a href="https://en.wikipedia.org/wiki/Chebyshev_distance"&gt;Chebyshev Geometry&lt;/a&gt;, where straight lines and diagonal lines are considered the same length. So a circle (points equally far apart from a center point) is a square. This is also sometimes called chessboard geometry, because it&amp;rsquo;s how pieces move on a grid.&lt;/p&gt;
&lt;p&gt;&lt;img alt="distances visualization" class="" size-m="" src="https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/Minkowski_distance_examples.svg.png"/&gt;&lt;sup id="fnref:wcred"&gt;&lt;a class="footnote-ref" href="#fn:wcred"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Also, because I&amp;rsquo;m drawing this by hand, I can only keep track of visible tips. So if tips collide I count them as &amp;ldquo;resolved&amp;rdquo;, even if mathmatically they&amp;rsquo;d pass through each other.&lt;/p&gt;
&lt;p&gt;But I kept hitting the end of the graph paper. &lt;/p&gt;
&lt;p&gt;I was bored in a work meeting this week and ended up doing the same thing, and it made me wonder about the properties of the pattern. Did it repeat? Did it reach points of symmetry? I thought it would be fun to whip up a tool to run my by-hand algorithm to see.&lt;/p&gt;
&lt;p&gt;There are lots of web toys for lsystems but none are designed with these graph paper constraints. So just as an exercise I built my own from scratch, and it&amp;rsquo;s pretty good at drawing my high-school pattern.&lt;/p&gt;
&lt;p&gt;&lt;img alt="generation animation" class="size-m" src="https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/lsys.gif"/&gt;&lt;/p&gt;
&lt;p&gt;The answer to the pattern question is: it depends on the starting position! If you start with one line you start to see radial symmetry, but if you start with two lines facing away from each other (as in the animation) it&amp;rsquo;s more interesting. Neat.&lt;/p&gt;
&lt;p&gt;Each generation is considered a state frame that keeps track of &lt;code&gt;lines&lt;/code&gt; (for rendering), &lt;code&gt;buds&lt;/code&gt; (for growing the next iteration), &lt;code&gt;bloomed_buds&lt;/code&gt; (for bud collision) and &lt;code&gt;squares&lt;/code&gt; (for line collision).&lt;/p&gt;
&lt;p&gt;For the Chebyshev geometry I just keep every line at a 1.0 length and let the trigonometry functions round up.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t actually implement a parser for formal Lindenmeyer syntax, I just defined everything recursively in pure Javascript, using a &lt;code&gt;definition&lt;/code&gt; to encapsulate details about the pattern:&lt;/p&gt;
&lt;div class="language-js highlight"&gt;&lt;table class="highlighttable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="normal"&gt; 1&lt;/span&gt;
&lt;span class="normal"&gt; 2&lt;/span&gt;
&lt;span class="normal"&gt; 3&lt;/span&gt;
&lt;span class="normal"&gt; 4&lt;/span&gt;
&lt;span class="normal"&gt; 5&lt;/span&gt;
&lt;span class="normal"&gt; 6&lt;/span&gt;
&lt;span class="normal"&gt; 7&lt;/span&gt;
&lt;span class="normal"&gt; 8&lt;/span&gt;
&lt;span class="normal"&gt; 9&lt;/span&gt;
&lt;span class="normal"&gt;10&lt;/span&gt;
&lt;span class="normal"&gt;11&lt;/span&gt;
&lt;span class="normal"&gt;12&lt;/span&gt;
&lt;span class="normal"&gt;13&lt;/span&gt;
&lt;span class="normal"&gt;14&lt;/span&gt;
&lt;span class="normal"&gt;15&lt;/span&gt;
&lt;span class="normal"&gt;16&lt;/span&gt;
&lt;span class="normal"&gt;17&lt;/span&gt;
&lt;span class="normal"&gt;18&lt;/span&gt;
&lt;span class="normal"&gt;19&lt;/span&gt;
&lt;span class="normal"&gt;20&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;definition&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;at&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bud&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lines&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;buds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;angle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;bud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;bud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.25&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rads&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;PI&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;angle&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;len&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;bud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;len&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;rads&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;len&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cos&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;rads&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chebyshev&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;round&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;buds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;push&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;xy&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;angle&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;lines&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;buds&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Then rendering is done recursively:&lt;/p&gt;
&lt;div class="language-js highlight"&gt;&lt;table class="highlighttable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="normal"&gt; 1&lt;/span&gt;
&lt;span class="normal"&gt; 2&lt;/span&gt;
&lt;span class="normal"&gt; 3&lt;/span&gt;
&lt;span class="normal"&gt; 4&lt;/span&gt;
&lt;span class="normal"&gt; 5&lt;/span&gt;
&lt;span class="normal"&gt; 6&lt;/span&gt;
&lt;span class="normal"&gt; 7&lt;/span&gt;
&lt;span class="normal"&gt; 8&lt;/span&gt;
&lt;span class="normal"&gt; 9&lt;/span&gt;
&lt;span class="normal"&gt;10&lt;/span&gt;
&lt;span class="normal"&gt;11&lt;/span&gt;
&lt;span class="normal"&gt;12&lt;/span&gt;
&lt;span class="normal"&gt;13&lt;/span&gt;
&lt;span class="normal"&gt;14&lt;/span&gt;
&lt;span class="normal"&gt;15&lt;/span&gt;
&lt;span class="normal"&gt;16&lt;/span&gt;
&lt;span class="normal"&gt;17&lt;/span&gt;
&lt;span class="normal"&gt;18&lt;/span&gt;
&lt;span class="normal"&gt;19&lt;/span&gt;
&lt;span class="normal"&gt;20&lt;/span&gt;
&lt;span class="normal"&gt;21&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;get_frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;throw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ne"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`Invalid generation &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;frames&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;structuredClone&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;get_frame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;old_buds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;buds&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;new_buds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;new_squares&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;old_buds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bloomed_buds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bloomed_buds&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;old_buds&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;squares&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;squares&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;new_squares&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;buds&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;prune_buds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;new_buds&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bloomed_buds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;frames&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frame&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;frames&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;generation&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;There&amp;rsquo;s a slight complication to doing this cheaply with lines: on paper, there are cases where lines intersect, and in those cases I stop at walls, even if it means drawing a partial line. Doing that kind of collision detection here in vector space would be very complicated! And without it the pattern loops back on itself and doesn&amp;rsquo;t look as good, and definitely doesn&amp;rsquo;t match my notebooks:&lt;/p&gt;
&lt;p&gt;&lt;img alt="missing collision" class="size-s" src="https://blog.giovanh.com/blog/2025/11/02/graph-paper-lindenmeyer-systems/lsys-collision-disabled.png"/&gt;&lt;/p&gt;
&lt;p&gt;The solution for this was very simple collision detection. The final program keeps tracks of which squares are &amp;ldquo;occupied&amp;rdquo; and breaks branches any time they&amp;rsquo;d collide.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://stash.giovanh.com/toys/lsys.html"&gt;I uploaded it to my stash&lt;/a&gt; if you want to play with it. As an added constraint I wrote everything by hand in one single-file html page. &lt;/p&gt;
&lt;p&gt;The one problem with the tool (besides being bare-bones) is it renders the output as an SVG instead of a bitmap on a canvas. This &amp;ldquo;feels right&amp;rdquo;: they&amp;rsquo;re lines, might as well make them vectors. But on high values browsers have performance issues rendering &lt;a href="https://x.com/giovan_h/status/1985054800891793705"&gt;very large quantities of DOM elements&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d rewrite the renderer to draw to a canvas instead except I like the idea of the infinite SVG canvas specifically. The point was to escape the edges of the graph paper, remember? &lt;/p&gt;
&lt;p&gt;But I&amp;rsquo;d already abstracted line drawing so the line coordinates were stored in state frames, so it was easy to write an alternate renderer using the canvas API. &lt;/p&gt;
&lt;aside class="cb update"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Leo reminded me that svg &lt;code&gt;path&lt;/code&gt;s don&amp;rsquo;t have to be continuous strokes and &lt;a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/d#path_commands"&gt;take path commands&lt;/a&gt;, so this could all be done in one DOM node. So the SVG renderer does that now, but I kept the canvas option. &lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;&lt;a href="https://stash.giovanh.com/toys/lsys.html"&gt;https://stash.giovanh.com/toys/lsys.html&lt;/a&gt;&lt;/p&gt;
&lt;iframe src="https://stash.giovanh.com/toys/lsys.html" style="
    width: 100%;
    height: 740px;
"&gt;&lt;/iframe&gt;

&lt;section class="section2"&gt;&lt;h2 id="related-reading"&gt;Related Reading&lt;/h2&gt;
&lt;div class="container related-reading"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lsystem.club"&gt;lsystem.club&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=_UtCli1SgjI"&gt;Terrific Toothpick Patterns - Numberphile&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="footnote"&gt;
&lt;hr/&gt;
&lt;ol&gt;
&lt;li id="fn:wcred"&gt;
&lt;p&gt;Illustration by &lt;a href="//commons.wikimedia.org/wiki/User:Cmglee" title="User:Cmglee"&gt;Cmglee&lt;/a&gt; - &lt;span class="int-own-work" lang="en"&gt;Own work&lt;/span&gt;, &lt;a href="https://creativecommons.org/licenses/by-sa/4.0" title="Creative Commons Attribution-Share Alike 4.0"&gt;CC BY-SA 4.0&lt;/a&gt;, &lt;a href="https://commons.wikimedia.org/w/index.php?curid=140170366"&gt;Link&lt;/a&gt;&amp;nbsp;&lt;a class="footnote-backref" href="#fnref:wcred" title="Jump back to footnote 1 in the text"&gt;&amp;larrhk;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 02 Nov 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-11-02:/blog/2025/11/02/graph-paper-lindenmeyer-systems/</guid><category>dev</category><category>personal</category><category>technical</category><category>writeup</category><category>design-patterns</category></item><item><title>a wholesome plane has hit the second cozy tower</title><link>https://blog.giovanh.com/blog/2025/10/22/a-wholesome-plane-has-hit-the-second-cozy-tower/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Here’s an advertisement I got from a game company named Rogue Duck Interactive.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1960931631600165117"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/rogueducknet/" title="Your Favorite Indie Strategy &amp;amp; Sim Games!  Out Now! 🔮 Witchy Business: https://t.co/HcAcZApRfJ  Makers of 🎲Dice &amp;amp; Fold  📦Cardboard Town ✈️ Lost But Found and more"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.jpg;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Rogue Duck Interactive&lt;/span&gt;&lt;span class="at"&gt;@rogueducknet&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Start your cozy airport security job!👮🏻‍♂️&lt;/p&gt;&lt;p&gt;Weigh and scan bags, ask passengers questions, and if you are not convinced, search their luggage for dangerous items.&lt;/p&gt;&lt;p&gt;Wishlist on Steam!&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/rogueducknet/status/1960931631600165117" target="_blank"&gt;Thu Aug 28 05:05:07 +0000 2025&lt;/a&gt;
&lt;/blockquote&gt;
&lt;img alt="" src="https://blog.giovanh.com/blog/2025/10/22/a-wholesome-plane-has-hit-the-second-cozy-tower/twitter-embed.png"/&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The game they’re advertising here — which they neglect to name outside the screenshot — is “&lt;a href="https://store.steampowered.com/app/3894850/Nothing_To_Declare/"&gt;Nothing to Declare&lt;/a&gt;.”&lt;sup id="fnref:name"&gt;&lt;a class="footnote-ref" href="#fn:name"&gt;1&lt;/a&gt;&lt;/sup&gt;
And it caught my eye, because there’s problems. &lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="papers-please"&gt;papers please&lt;/h2&gt;
&lt;p&gt;If you’ve been living under a rock for the last ten years you might not recognize this as the gameplay from Papers, Please.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://store.steampowered.com/app/239030/Papers_Please/"&gt;Papers, Please (2013)&lt;/a&gt;, of course, is the multi-million-selling dystopian bureaucracy simulator game where you work as an immigration enforcement officer for a despotic regime.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Papers&lt;/em&gt; is known as one of the games of all time. 
It uses the mechanics of rote bureaucracy — checking correctness of paperwork, matching dates, enforcing documentation requirements — to connect the player to a cruel and miserable world. 
The message and mechanics perfectly intertwine: the dystopia is entwined with the nature of the policing, which is both the setting and the game mechanic.&lt;/p&gt;
&lt;p&gt;It’s an intense, profound piece that prompts the player to think about the way political structures affect real human lives. 
It prompts introspection about the role and agency of the individual within a system and how morality responds when someone is faced with a hard reality: a political and economic moment where harming others for profit may be the only way to feed your own family.
&lt;em&gt;Papers&lt;/em&gt; is &lt;a href="https://arstechnica.com/gaming/2013/08/papers-please-review-paper-trail-of-tears/"&gt;“video games as true art”&lt;/a&gt;, &lt;a href="https://www.eurogamer.net/papers-please-review"&gt;“brilliantly written”&lt;/a&gt;, &lt;a href="https://www.newyorker.com/tech/annals-of-technology/the-best-video-games-of-2013"&gt;“grim yet affecting”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Rogue Duck hasn’t been living under a rock. They know their game “takes inspo” from Papers, Please, but it has its own “original take and ideas.”&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1964521907530977528"&gt;&lt;div class="header" data-reply="sensdertale/1961848791591522324"&gt;&lt;a href="https://twitter.com/rogueducknet/" title="Your Favorite Indie Strategy &amp;amp; Sim Games!  Out Now! 🔮 Witchy Business: https://t.co/HcAcZApRfJ  Makers of 🎲Dice &amp;amp; Fold  📦Cardboard Town ✈️ Lost But Found and more"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.jpg;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Rogue Duck Interactive&lt;/span&gt;&lt;span class="at"&gt;@rogueducknet&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;@sensdertale Team definitely likes and takes inspo from Papers, Please. But I think both games can exist together, and I guarantee we will have our own original take and ideas in it.&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/rogueducknet/status/1964521907530977528" target="_blank"&gt;Sun Sep 07 02:51:36 +0000 2025&lt;/a&gt;
&lt;/blockquote&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="but-cozy"&gt;but cozy&lt;/h2&gt;
&lt;p&gt;Now, I don’t care that Rogue Duck is iterating on &lt;em&gt;Papers&lt;/em&gt;. 
What’s hooked me here is this original take they’re so excited about. 
Because &lt;em&gt;Declare&lt;/em&gt; is more than a shameless clone: it has its own identity and it does have something to say.
Nothing to Declare comes on stage following &lt;em&gt;Papers&lt;/em&gt;, turns to the audience, and what it has to say is: “man, that guy was a &lt;em&gt;downer&lt;/em&gt;, am I right?”&lt;/p&gt;
&lt;p&gt;That fun new original idea Rogue Duck adds to the equation is that now the bureaucracy of immigration is fluffy and wholesome. A fun little action parallel to making postcards and pouring coffee.&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="https://blog.giovanh.com/blog/2025/10/22/a-wholesome-plane-has-hit-the-second-cozy-tower/steam-preview.png"/&gt;&lt;/p&gt;
&lt;p&gt;This isn’t even an interpretation, they shoehorn it right in their store description. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Wed, 22 Oct 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-10-22:/blog/2025/10/22/a-wholesome-plane-has-hit-the-second-cozy-tower/</guid><category>rp</category><category>enforcement</category><category>steam</category><category>literary-themes</category></item><item><title>A Hack is Not Enough</title><link>https://blog.giovanh.com/blog/2025/10/14/a-hack-is-not-enough/</link><description>&lt;!-- Bad news: Computers are regulable; we crossed that threshhold a long time ago. We can't keep relying on computers as being structurally resistant to hostile governmental or corprate abuse. Workarounds may simply not exist.  --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Recently we’ve seen sweeping attempts to censor the internet.
The UK’s “Online Safety Act” &lt;a href="https://www.usermag.co/p/the-uks-censorship-catastrophe-is"&gt;imposes sweeping restrictions on speech and expression&lt;/a&gt;.
It’s disguised a child safety measure, but its true purpose is (avowedly!) intentional control over &lt;a href="https://archive.ph/2025.08.13-190800/https://www.thetimes.com/comment/columnists/article/online-safety-act-botched-2xk8xwlps"&gt;“services that have a significant influence over public discourse”&lt;/a&gt;.
And &lt;a href="https://www.rollingstone.com/culture/culture-features/age-verification-legislation-united-states-online-safety-1235419895/"&gt;similar trends threaten the US&lt;/a&gt;, especially as lawmakers race to &lt;a href="https://www.404media.co/wyoming-and-south-dakota-age-verification-laws/"&gt;more aggressively categorize more speech as broadly harmful&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A common response to these restrictions has been to dismiss them as unenforceable: 
that’s not how the internet works, governments are foolish for thinking they can do this, and you can just use a VPN to get around crude attempts at content blocking.&lt;/p&gt;
&lt;p&gt;But this “just use a workaround” dismissal is a dangerous, reductive mistake. 
Even if you can easily defeat an attempt to impose a restriction right now, you can’t take that for granted. &lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="dismissing-technical-restrictions-as-unenforceable"&gt;Dismissing technical restrictions as unenforceable&lt;/h2&gt;
&lt;p&gt;There is a tendency, especially among technically competent people, to use the ability to work around a requirement as an excuse to avoid dealing with it. 
When there is a political push to enforce a particular pattern of behavior — discourage or ban something, or make something socially unacceptable — there is an instinct for clever people with workarounds to respond with “you can just use my workaround”.&lt;/p&gt;
&lt;p&gt;I see this a &lt;em&gt;lot&lt;/em&gt;, in a lot of different forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Geographic restrictions don’t matter, just use a VPN.”&lt;/li&gt;
&lt;li&gt;“Media preservation by the industry doesn’t matter, just use pirated copies.”&lt;/li&gt;
&lt;li&gt;“The application removing this feature doesn’t matter, just use this tool to do it for you.”&lt;/li&gt;
&lt;li&gt;“Don’t pay for this feature, you can just do it yourself for free.&lt;sup id="fnref:free"&gt;&lt;a class="footnote-ref" href="#fn:free"&gt;1&lt;/a&gt;&lt;/sup&gt;” &lt;/li&gt;
&lt;li&gt;“It’s “&lt;a href="https://www.vox.com/the-goods/22387601/smart-fridge-car-personal-ownership-internet-things"&gt;inevitable&lt;/a&gt;” that people will use their technology as they please regardless of the EULA.”&lt;/li&gt;
&lt;li&gt;“Issues with digital ownership? &lt;a href="https://www.reddit.com/r/Piracy/comments/suosam/i_havent_paid_for_a_3ds_game_since/"&gt;Doesn’t affect me, I just pirate&lt;/a&gt;.”&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Tue, 14 Oct 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-10-14:/blog/2025/10/14/a-hack-is-not-enough/</guid><category>cyber</category><category>enforcement</category><category>services</category><category>archival</category><category>piracy</category><category>user-agent</category><category>encryption</category><category>publication</category><category>tech-culture</category><category>design-patterns</category><category>software-architecture</category><category>antitrust</category><category>youtube</category></item><item><title>The Homestuck Union Was Always Fake</title><link>https://blog.giovanh.com/blog/2025/08/08/the-homestuck-union-was-always-fake/</link><description>&lt;!-- 
TODO blurb
Unfortunately the Homestuck Independent Creative Union is neither independent nor is it a union. Is that okay? Turns out, also no.
--&gt;&lt;!-- 
Ad: what if your union was your boss in a trenchcoat, and what your union did was extort you for him
--&gt;&lt;!-- MISSPELLING: fanwork --&gt;&lt;html&gt;&lt;head&gt;&lt;style&gt;
blockquote.discord {
    --icon-giovanh: url(/blog/2025/08/08/uhc-end/3165933377c9fe06ce183b238a2edda6.png) !important;
    --icon-bambosh: url(/blog/2025/08/08/uhc-end/f793a975f4a33a420335787e265caa98.png) !important;
    --icon-miles: url(/blog/2025/08/08/uhc-end/d6c23890ed9859e15b74d45c298e01c8.png) !important;
}
&lt;/style&gt;
&lt;/head&gt;&lt;body&gt;&lt;aside class="cb update"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Shortly after the publication of this article the Homestuck Independent Creative Union changed their name to “Furthest Ring Studios”:&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1981068916773274104"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/furthest0studio/" title="We make Homestuck: Beyond Canon"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.jpg;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Furthest Ring Studios&lt;/span&gt;&lt;span class="at"&gt;@furthest0studio&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;We are Furthest Ring Studios. &lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;a href="https://x.com/furthest0studio/status/1981068916773274104/photo/1" target="_blank"&gt;
&lt;img class="img count1" onerror="(async () =&amp;gt; {this.onerror=null;this.src=`https://web.archive.org/web/0/${this.src}`;})();" src="https://pbs.twimg.com/media/G34mUuxWEAAwpul.png"/&gt;
&lt;/a&gt;&lt;/div&gt;&lt;a href="https://twitter.com/furthest0studio/status/1981068916773274104" target="_blank"&gt;Wed Oct 22 18:43:30 +0000 2025&lt;/a&gt;
&lt;/blockquote&gt;
&lt;p&gt;So if you’re wondering about Furthest Ring Studios, this article is about them. Same people, same organization, freshly laundered label. &lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="oh-no"&gt;Oh no!&lt;/h2&gt;
&lt;p&gt;The Homestuck Independent Creative Union was announced in October 2023, claiming itself to be a “union” of creators working on Homestuck associated projects. 
The main selling point of this organization is that it was fully independent of Homestuck, Inc., Andrew Hussie, or any of the other existing management structures that had damaged their reputations. 
This was untrue from day one. 
The HICU was never a union and it was never independent of Andrew.
In fact Andrew doesn’t just have theoretical authority, they’re actively wielding power over projects in secret.&lt;/p&gt;
&lt;!-- It's been a sham, and somehow it only goes downhill from there. --&gt;
&lt;p&gt;I want to give a very important disclaimer for this “anti-HICU” looking article because I really, really don’t want to see blame misplaced because of this.
I think when most people familiar with it think of the HICU, the reaction is “oh, they’re doing better” or even “yeah, I’m on their side.”
I don’t fault you for this! 
Based on what they said about themselves many people — including me personally — gave the HICU a huge amount of good credit upfront, and they’ve done very little &lt;em&gt;publicly&lt;/em&gt; to hurt that image. 
So if you’re an HICU person — if you’re with FRAF, or DCRC, or even Beyond Canon — I am not attacking you with this! 
I am not against your “side.” The problem here is &lt;em&gt;not&lt;/em&gt; the creatives, it’s strictly management.
Whether you’re a fan or someone trying to work with the union, &lt;em&gt;you&lt;/em&gt; are the one at risk here and I want to help you most of all. &lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Around October 2023 Andrew Hussie “&lt;a href="https://beyondcanon.com/news/newspost-1704167374"&gt;restructured&lt;/a&gt;” Homestuck’s publishing agreement with Viz Media in order to reestablish their “control over the brand.” 
Homestuck then announced the relaunch of Homestuck^2: Beyond Canon, run by the also newly-announced &lt;strong&gt;Homestuck Independent Creative Union&lt;/strong&gt;. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Fri, 08 Aug 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-08-08:/blog/2025/08/08/the-homestuck-union-was-always-fake/</guid><category>fandom</category><category>homestuck</category><category>homestuck-postcanon</category><category>ip</category><category>homestuck-postcanon</category><category>unofficial-homestuck-collection</category></item><item><title>The Unofficial Homestuck Collection Takedown</title><link>https://blog.giovanh.com/blog/2025/08/08/uhc-end/</link><description>&lt;!-- 
Sad news: we did everything we could, but we couldn’t save The Unofficial Homestuck Collection. Here’s what’s been going on behind the scenes. Sorry in advance, it's real bad. 
--&gt;&lt;!-- The Assassination of The Unofficial Homestuck Collection by the Coward Andrew Hussie --&gt;&lt;!-- The Unofficial Homestuck Collection Taken Down --&gt;&lt;html&gt;&lt;head&gt;&lt;style&gt;
blockquote.discord {
    --icon-giovanh: url(./3165933377c9fe06ce183b238a2edda6.png) !important;
    --icon-bambosh: url(./f793a975f4a33a420335787e265caa98.png) !important;
    --icon-miles: url(./d6c23890ed9859e15b74d45c298e01c8.png) !important;
    --icon-james: url(./696f10c085e54a17dcf300de23fb39a0.png) !important;
    --icon-homestuckicu: url(./67439f59af44c01512ce242573db1aee.png) !important;
}
&lt;/style&gt;
&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/f793a975f4a33a420335787e265caa98.png"&gt;&lt;/a&gt;
&lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/3165933377c9fe06ce183b238a2edda6.png"&gt;&lt;/a&gt;
&lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/d6c23890ed9859e15b74d45c298e01c8.png"&gt;&lt;/a&gt;
&lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/696f10c085e54a17dcf300de23fb39a0.png"&gt;&lt;/a&gt;
&lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/67439f59af44c01512ce242573db1aee.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;aside class="cb update"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This is the originally-published report, including the relevant logs and blow-by-blow narrative. It is very long. If you’re just looking to hear what happened you would probably prefer the &lt;a href="https://blog.giovanh.com/blog/2026/04/02/homestuck-uhc-summary/?campaign=aside"&gt;summary&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="bottom-line-up-front"&gt;Bottom line up front&lt;/h2&gt;
&lt;p&gt;Since November 2023 The Unofficial Homestuck Collection has been entangled in legal discussions with Homestuck and Andrew Hussie.&lt;sup id="fnref:pronouns"&gt;&lt;a class="footnote-ref" href="#fn:pronouns"&gt;1&lt;/a&gt;&lt;/sup&gt;
This was quickly revealed to be a false pretext: in reality, Andrew Hussie used a fake offer of collaboration to launch a hostile takeover of the UHC.&lt;/p&gt;
&lt;!-- [^pronouns]
[^pronouns]: I'll be using he/him for Andrew since those are the pronouns James Roach, Miles, and Andrew's legal representation use for him. If Andrew actually lists his preferred pronouns somewhere I'll use them, but as far as I can tell he's never unambiguously done that.  --&gt;
&lt;p&gt;Andrew Hussie has sent the UHC maintainers (GiovanH and Bambosh) a series of takedown demands and persistently threatened this project with spurious lawsuits. 
Andrew demanded we turn over full control of the fan project to them, demanded we remove previous essays on Homestuck, and demanded we denounce some specific critics of theirs they have a personal grudge against.
They even threatened a lawsuit on the basis that we used the word “Homestuck” in the title “Unofficial Homestuck Collection”.&lt;/p&gt;
&lt;p&gt;As a result of this outrageous conduct, I am forced to take down The Unofficial Homestuck Collection’s web presence at Homestuck’s demand.
The current set of legal takedown demands does not affect the GitHub repository itself, so &lt;a href="https://github.com/GiovanH/unofficial-homestuck-collection/releases/tag/v2.7.0"&gt;releases of the reader are still available&lt;/a&gt; separate from the website takedown we were forced to act on. 
An outdated copy of the reader and some assets are currently also available from a copy Homestuck made of the collection against our wishes (&lt;code&gt;homestuck.github.io&lt;/code&gt;) — more on this later. 
However, the original team behind the collection (Bambosh and Gio) has been forced to stop supporting our work.&lt;/p&gt;
&lt;p&gt;This was not driven by copyright concern, but was Andrew Hussie attempting a hostile takeover of a fan project and demanding absolute control over not only the content of the archive but which fans and creators its contributors were allowed to associate with.
As I ultimately conclude: &lt;a href="https://blog.giovanh.com/blog/2025/08/08/uhc-end/#homestuck-is-radioactive"&gt;Homestuck is radioactive.&lt;/a&gt;&lt;/p&gt;
&lt;!-- 
::: aside
    There's been a lot of misinformation spread about this article, most of it spread as part of a coordinated push to keep people from reading it in the first place. 
--&gt;
&lt;section class="section3"&gt;&lt;h3 id="hostile-takeover"&gt;Hostile Takeover&lt;/h3&gt;
&lt;p&gt;In November 2023 Homestuck sent me and Bambosh (co-creators of the UHC) an offer to collaborate on The Unofficial Homestuck Collection. 
We initially engaged with this offer because it came with a commitment to respect the project’s independence and for the collaboration to be fully insulated from previous personal grievances.&lt;/p&gt;
&lt;p&gt;But this pretense of constructive collaboration turned out to be false almost immediately. 
For the entire period of time since the first communication — now multiple years — Homestuck has used threats, lies, legal shakedowns, and other psychological pressure tactics to attempt to seize control of The Unofficial Homestuck Collection in a hostile takeover. 
There was never a legal basis for Homestuck to control The Unofficial collection, and so they have been attempting to use extra-legal tactics to do so.&lt;/p&gt;
&lt;p&gt;While the archival impact is unfortunate, the main complaint here is &lt;strong&gt;not&lt;/strong&gt; that we were entitled to distribute Homestuck and it’s wrong that we’ve had to stop. 
We have no particular legal right to reproduce or distribute the copyrighted Homestuck material, and so did not feel entitled to continue doing it.
The fact that executing the takedown demands we’ve received results in material being inaccessible is a side effect of a deeper problem. &lt;/p&gt;
&lt;p&gt;The problem is that the way Andrew acted is completely unacceptable. 
They demanded control over work that was not theirs, demanded we denounce their personal enemies, demanded we recant previous criticisms, and more.
This was all done under a pretense of constructive collaboration with the community that turned out to be false from the beginning. 
Ultimately Andrew has demanded (in violation of their own assurances) that we denounce previous criticism of Homestuck management and give full managerial control over the independent Collection project over to Andrew and their chosen delegates. 
Under this extortion we would be required to participate in Andrew’s attempt to sweep their past professional misconduct under the rug, and we would remain subordinate to any other demands they made to use the project to attempt to control the fan community. &lt;/p&gt;
&lt;p&gt;We have not allowed this hostile takeover to happen to the UHC. 
Since Andrew has fully committed to hostility towards us and fan projects in general and demanded things we cannot give them, I’m choosing to disengage rather than face a perpetual series of baseless legal attacks and other harassment.&lt;/p&gt;
&lt;!-- If I said Andrew took down the collection over the same tired set of Hiveswap complaints they already humiliated himself on with Sarah Z, that would be true. But the full problem is much worse than this. --&gt;
&lt;/section&gt;&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Fri, 08 Aug 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-08-08:/blog/2025/08/08/uhc-end/</guid><category>fandom</category><category>homestuck</category><category>homestuck-postcanon</category><category>homestuck-postcanon</category><category>archival</category><category>fiasco</category><category>hiveswap</category><category>rug-pull</category><category>unofficial-homestuck-collection</category><category>ip</category></item><item><title>Can You Keep a Secret?</title><link>https://blog.giovanh.com/blog/2025/06/04/can-you-keep-a-secret/</link><description>&lt;!-- ## Deltarune puts weird burdens on people --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;em&gt;Deltarune&lt;/em&gt; came out! Weirdly, that’s kind of a problem? 
People who care about the game have this immediate need to stay off social media so as not to be spoiled. 
There is a rush to for anyone who ever wants to play the game to do so immediately, because if you don’t the Internet will ensure you don’t get a blind experience. 
You’re forced to binge it or be spoiled.&lt;/p&gt;
&lt;p&gt;I was just thinking about chapter 2, and how I would’ve loved to have found the secret twist for myself, even though it was hidden away a little. If the game has indicated there was something to find, people would have found it on their own. Instead, I’m willing to bet the experience for the vast majority of people was finding out online first and then reproducing what they saw for themselves.&lt;/p&gt;
&lt;aside class="cb spoiler-warning"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This talks about games that can be spoiled and categorizes a few games by genre, but is otherwise &lt;strong&gt;spoiler-free&lt;/strong&gt; (in the traditional sense....)&lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="narrative-spoilers"&gt;Narrative spoilers&lt;/h2&gt;
&lt;p&gt;But this is not a &lt;em&gt;Deltarune&lt;/em&gt; thing. For any narrative media, the experience depends on the work presenting the narrative flow it intends to. This includes reveals, this includes pacing, this includes characterization.&lt;/p&gt;
&lt;p&gt;Getting information out of turn spoils the game. 
It does this so aggressively that breaking narrative flow has become one of the definitions for the word “spoil”, as in “ruin”.
I have a much longer piece I want to write some day about information filtering in general, which is maybe the hardest problem ever?&lt;/p&gt;
&lt;p&gt;For games like &lt;em&gt;Deltarune&lt;/em&gt;, it’s taken for granted that people have at most a week of courtesy before the Internet is flooded with information. 
And of course there are some people out there who are eager to get that information as soon as possible; it is not universally true that people want to experience narrative as intended.&lt;/p&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="except-sometimes-we-care-a-lot"&gt;Except sometimes we care a lot&lt;/h2&gt;
&lt;p&gt;But is this a little silly? 
Is narrative purity so reverential that information should not flow through the normal channels by which ideas are pushed to us, like social media?&lt;/p&gt;
&lt;p&gt;Here’s what piqued my interest about this today: gaming &lt;em&gt;does&lt;/em&gt; have a reverence for not letting experiences be spoiled. It’s just very selective right now. 
We see this absolute demand that knowledge not be leaked, that games be allowed to communicate information to the player on their own terms. 
But beyond extremely new releases, we see this almost exclusively with regard to &lt;strong&gt;knowledge-based games&lt;/strong&gt; or &lt;strong&gt;metroidbrainias&lt;/strong&gt;, where knowledge is the gameplay mechanic.&lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Wed, 04 Jun 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-06-04:/blog/2025/06/04/can-you-keep-a-secret/</guid><category>fandom</category><category>utdr</category><category>media-consumption</category><category>ramble</category></item><item><title>SUPERHOT VR's Story was Removed. What?</title><link>https://blog.giovanh.com/blog/2025/05/14/superhot-vrs-story-was-removed-what/</link><description>&lt;!-- Back in 2021 SUPERHOT VR had its story patched out. I thought about it slightly too long and fell into rabbit hole. It doesn't make sense, it's bad that it happened, and it prompts a whole bunch of naval-gazing about Art.  --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;a href="https://blog.giovanh.com/blog/2025/05/14/superhot-vrs-story-was-removed-what/zxc.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;SUPERHOT VR&lt;/em&gt; released in 2017. 
Then in 2021 the game’s entire story was removed. &lt;/p&gt;
&lt;p&gt;What’s happened here is fascinating, but somehow nobody has talked about it seriously. 
Because it’s censorship in a video game — a topic the gaming community cannot be normal about — it is nearly impossible to even think about the issue through all the noise. 
Anyone aware of this topic at all seems to be screaming about Woke, or complaining about games becoming “political”, as if “political” is just a switch you can throw to make media worse.&lt;/p&gt;
&lt;p&gt;Wikipedia summarizes the discourse as:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The choice to remove these games led to the game getting &lt;a href="https://en.wikipedia.org/wiki/Review_bomb" title="Review bomb"&gt;review bombed&lt;/a&gt; on Steam, with some users claiming that Superhot Team was giving in to “&lt;a href="https://en.wikipedia.org/wiki/Snowflake_(slang)" title="Snowflake (slang)"&gt;snowflakes&lt;/a&gt;” and others believing it to be a form of &lt;a href="https://en.wikipedia.org/wiki/Virtue_signaling" title="Virtue signaling"&gt;virtue signaling&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But this is insane!
A historically significant VR game — one of the greatest of all time — had one of its defining characteristics removed, without any explanation or replacement. 
This isn’t some &lt;em&gt;Stellar Blade&lt;/em&gt; fake controversy, something &lt;strong&gt;weird&lt;/strong&gt; happened here. 
There are real, understandable things to object to, and none of them are right-wing culture war buzzwords. &lt;/p&gt;
&lt;aside class="cb spoiler-warning"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This article spoils &lt;em&gt;SUPERHOT&lt;/em&gt; (2016) and &lt;em&gt;SUPERHOT VR&lt;/em&gt; (2016), but not &lt;em&gt;SUPERHOT: Mind Control Delete&lt;/em&gt; (2020). Also, for some reason, &lt;em&gt;Virtual Virtual Reality&lt;/em&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="but-what-is-superhot"&gt;But what is SUPERHOT?&lt;/h2&gt;
&lt;p&gt;SUPERHOT was originally developed for the 2013 &lt;a href="https://web.archive.org/web/20140602015654/http://7dfps.com/?action=games&amp;amp;id=290"&gt;7 Day FPS Challenge game jam&lt;/a&gt; by Polish team “&lt;a href="https://web.archive.org/web/20140602015654/http://7dfps.com/?action=profile&amp;amp;id=453"&gt;The Bricky Blues&lt;/a&gt;”, directed by Piotr Iwanicki. 
In September 2013 &lt;a href="https://web.archive.org/web/20130829014129/http://blue-brick.com/SUPERHOT"&gt;it was released on the Blue Brick Software and Embedded Systems website&lt;/a&gt; in three separate “episodes” &lt;a href="https://www.gamedeveloper.com/business/the-origin-and-future-of-frozen-time-fps-hit-superhot-and-the-positive-crunching-behind-it"&gt;because the levels were developed in parallel in three separate unity projects for the jam.&lt;/a&gt; &lt;/p&gt;
&lt;!-- Some progress updates were posted on 7dfps, but those videos have since been made private on YouTube. --&gt;
&lt;!-- ![kickstarter progress](https://superhotgame.com/images/our-story/our-story-bg/timeline-6.avif) --&gt;
&lt;p&gt;After the demo received positive feedback, &lt;a href="https://www.kickstarter.com/projects/375798653/superhot"&gt;SUPERHOT went to Kickstarter&lt;/a&gt; (after they got Kickstarter to support Poland) and was successfully overfunded in June 2014.
(With the success of SUPERHOT, the Blue Brick company seems to have been abandoned.)
&lt;strong&gt;&lt;em&gt;SUPERHOT&lt;/em&gt; (2016)&lt;/strong&gt; was then released in February. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Wed, 14 May 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-05-14:/blog/2025/05/14/superhot-vrs-story-was-removed-what/</guid><category>gaming</category><category>vr</category><category>literary-themes</category><category>media-consumption</category><category>fiasco</category><category>personal</category><category>piracy</category></item><item><title>Why training AI can't be IP theft</title><link>https://blog.giovanh.com/blog/2025/04/03/why-training-ai-cant-be-ip-theft/</link><description>&lt;!-- Series: AI --&gt;&lt;!-- Latest essay: Artists are worried about having their work exploited by AI, but the idea that training the model on scraped work in the first place is a copyright violation is bunk, and here's why.  --&gt;&lt;!-- ## Intro --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;AI is a huge subject, so it’s hard to boil my thoughts down into any single digestible take. 
That’s probably a good thing. As a rule, if you can fit your understanding of something complex into a tweet, you’re usually wrong.
So I’m continuing to divide and conquer here, eat the elephant one bite at a time, etc. &lt;/p&gt;
&lt;!-- And -- to mix a metaphor -- a good way to find the truth is to chip away at all the parts that *aren't* an elephant, so let me remove from the conversation some ideas I'm confident are wrong.  --&gt;
&lt;p&gt;Right now I want to address one specific question: whether people have the right to train AI in the first place. 
The argument that they do &lt;em&gt;not&lt;/em&gt;&lt;sup id="fnref:the-argument"&gt;&lt;a class="footnote-ref" href="#fn:the-argument"&gt;1&lt;/a&gt;&lt;/sup&gt; goes like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When a corporation trains generative AI they have unfairly used other people’s work without consent or compensation to create a new product they own. 
Worse, the new product directly competes with the original workers. 
Since the corporations didn’t own the original material and weren’t granted any specific rights to use it for training, they did not have the right to train with it. 
When the work was published, there was no expectation it would be used like this, as the technology didn’t exist and people did not even consider “training” as a possibility. 
Ultimately, the material is copyrighted, and this action violates the authors’ copyright.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have spent a lot of time thinking about this argument and its implications. Unfortunately, even though I think that while this identifies a legitimate complaint, the argument is dangerously wrong, and the consequences of acting on it (especially enforcing a new IP right) would be disastrous. Let me work through why:&lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="the-complaint-is-real"&gt;The complaint is real&lt;/h2&gt;
&lt;!-- The problem people are trying to solve (art, labor) --&gt;
&lt;p&gt;Artists wanting to use copyright to limit the “right to train” isn’t the right approach, but not because their complaint isn’t valid. 
Sometimes a course of action is bad because the goal is bad, but in this case I think people making this complaint are trying to address a real problem. &lt;/p&gt;
&lt;!-- I'll talk more about why I agree with this sentiment at the end of the article when I talk about what better approaches for addressing it would look like because I think those ideas go hand-in-hand. --&gt;
&lt;p&gt;I agree that the dynamic of corporations making for-profit tools using previously published material to directly compete with the original authors, especially when that work was published freely, is “bad.”
This is also a real thing companies want to do. 
Replacing labor that has to be paid wages with capital that can be owned outright increases profits, which is every company’s purpose. And there’s certainly a push right now to do this. For owners and executives production without workers has always been the dream.
But even though it’s economically incentivized for corporations, the wholesale replacement of human work in creative industries would be disastrous for art, artists, and society as a whole. &lt;/p&gt;
&lt;!-- &gt; [Cory Doctorow, How To Think About Scraping](https://doctorow.medium.com/how-to-think-about-scraping-2db6f69a7e3d){: .cite}
&gt; Creative workers are justifiably furious that their bosses took one look at the plausible sentence generators and body-snatching image-makers and said, “Holy shit, we will never have to pay a worker ever again.”Our bosses have alarming, persistent, rock-hard erections for firing our asses and replacing us with shell-scripts. The dream of production without workers goes all the way back to the industrial revolution, and now — as then — capitalists aspire to becoming rentiers, who own things for a living rather than making things for a living. --&gt;
&lt;p&gt;So there’s a fine line to walk here, because I don’t want to dismiss the fear. The problem is real and the emotions are valid, but that doesn’t mean none of the reactions are reactionary and dangerous. 
And the idea that corporations training on material is copyright infringement is just that.&lt;/p&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="the-learning-rights-approach"&gt;The learning rights approach&lt;/h2&gt;
&lt;!-- (copyright) --&gt;
&lt;p&gt;So let me focus in on the idea that one needs to license a “right to train”, especially for training that uses copyrighted work. Although I’m ultimately going to argue against it, I think this is a reasonable first thought. It’s also a very serious proposal that’s actively being argued for in significant forums.&lt;/p&gt;
&lt;!-- ### This is a sensible thought --&gt;
&lt;p&gt;Copyright isn’t a stupid first thought. 
Copyright (or creative rights in general) intuitively seems like the relevant mechanism for protecting work from unauthorized uses and plagiarism, since the AI models are trained using copyrighted work that is licensed for public viewing but not for commercial use.
Fundamentally, &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;the thing copyright is “for” is making sure artists are paid for their work&lt;/a&gt;. &lt;/p&gt;
&lt;!-- If AI is able to use that work without paying for it to create a commercial product, that's bad.  --&gt;
&lt;!-- If it creates a substitute such that artists are *never* paid for their work, that's bad. --&gt;
&lt;p&gt;This was one of my first thoughts too. 
Looking at the inputs and outputs, as well as the overall dynamic of unfair exploitation of creative work, “copyright violation” is a good place to start. 
I even have a draft article where I was going to argue for this same point myself. 
But as I’ve thought through the problem further, that logic breaks down. 
And the more I work through it, every IP-based argument I’ve seen to try to support artists has massively harmful implications that make the cure worse than the disease.&lt;/p&gt;
&lt;section class="section3"&gt;&lt;h3 id="definition-proposals-assertions"&gt;Definition, proposals, assertions&lt;/h3&gt;
&lt;p&gt;The idea of a learning right is this: in addition to the traditional reproduction right copyright reserves to the author, authors should be able to prevent people from training AI on their work by withholding the right. &lt;/p&gt;
&lt;!-- gio :⁾: Another IP expansion push I've seen is the creation of a new "learning right", separate from publication. So people could be (implicitly) licensed to VIEW content, but not use it as part of a process that would eventually create new work --&gt;
&lt;!-- Being able to see something published online doesn't give you the right to use it in commercial work or produce your own copies of it. Even if you paid for a work and clearly have the rights to view it yourself you're not automatically entitled to freely reproduce it. In the same way, the learning rights argument goes, the right for someone to train an AI on a work should be separate and reservable.  --&gt;
&lt;!-- You would have the right to view any data you scraped off the internet (since it was already publicly published) but you wouldn't have the right to use it for this particular purpose.  --&gt;
&lt;p&gt;This learning right would be parallel to other reservable rights, like reproduction: it could be denied outright, or licensed separately from both viewing and reproduction rights at the discretion of the rightsholder.
Material could be published such that people were freely able to view it but not able to use it as part of a process that would eventually create new work, including training AI. 
The mechanical ability to train data is not &lt;strong&gt;severable&lt;/strong&gt; from the ability to view it, but the legal right would be.&lt;/p&gt;
&lt;p&gt;This is already being widely discussed in various forms, usually as a theory of legal interpretation or a proposal for new policy.&lt;/p&gt;
&lt;!-- ### Examples of real proposals and assertions --&gt;
&lt;section class="section4"&gt;&lt;h4 id="asserting-this-right-already-exists"&gt;Asserting this right already exists&lt;/h4&gt;
&lt;!-- and can be reserved --&gt;
&lt;p&gt;Typically, when the learning rights theory is seen in the wild it’s being pushed by copyright rightsholders who are asserting that the right to restrict others from training on their works already exists. &lt;/p&gt;
&lt;p&gt;A prime example of this is the book publishing company Penguin Random House, which asserts that the right to train an AI from a work is already a right that they can reserve:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="cite" href="https://www.thebookseller.com/news/penguin-random-house-underscores-copyright-protection-in-ai-rebuff"&gt;Penguin Random House Copyright Statement (Oct 2024)&lt;/a&gt;
No part of this book may be used or reproduced in any manner for the purpose of training artificial intelligence technologies or systems. In accordance with Article 4(3) of the Digital Single Market Directive 2019/790, Penguin Random House expressly reserves this work from the text and data mining exception.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the same story, the Society of Authors explicitly affirms the idea that AI training cannot be done without a license, especially if that right is explicitly claimed:&lt;/p&gt;
&lt;/section&gt;&lt;/section&gt;&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Thu, 03 Apr 2025 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2025-04-03:/blog/2025/04/03/why-training-ai-cant-be-ip-theft/</guid><category>cyber</category><category>AI</category><category>publication</category><category>IP</category><category>enforcement</category><category>prosthesis</category><category>rhetoric</category><category>plagiarism</category></item><item><title>The imperfections of Murder Drones</title><link>https://blog.giovanh.com/blog/2025/01/12/the-imperfections-of-murder-drones/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;aside class="cb spoiler-warning"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This spoils Murder Drones! I think Murder Drones is fun and you should watch and enjoy it! 
Take two and a half hours, &lt;a href="https://www.youtube.com/watch?v=mImFz8mkaHo&amp;amp;list=PLHovnlOusNLiJz3sm0d5i2Evwa2LDLdrg"&gt;go watch the whole series,&lt;/a&gt; and then come back.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;I love murder drones. I think they’re such great little guys. 
Bring me a robot maid and I am yours forever, etc.
But watching through the series itself actually took me a few stabs, and I think it’s due to a few design decisions that make following the plot unintuitive and add some friction to what’s otherwise a very fun show. 
So I want to talk a little bit about that friction, even though the entire thing is still a good time overall.&lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="indie-animation"&gt;Indie Animation&lt;/h2&gt;
&lt;p&gt;First, the obviously relevant context is that Murder Drones is made by Glitch, which is a small independent animation studio. And independent animation necessarily comes with constraints. 
It’s incredibly exciting that we have the technology for small teams to make work with this quality and scale, and I don’t at all want to take that for granted. 
But I think a lot of the friction I have to talk about comes from fundamental trade-offs that come from that setup. &lt;/p&gt;
&lt;p&gt;Since their resources are very limited and good animation is expensive work, there’s a pressure for everything to be compressed. Short episodes with short shots in an eight-episode miniseries mean the project is feasible, but it’s hard to get all your fun ideas in while still sufficiently paving the way for them to land properly. &lt;/p&gt;
&lt;!-- (Foreshadowing...) --&gt;
&lt;p&gt;&lt;img alt="get tunnel visioned on spooky corpse robot reveal, work backwards from there" src="https://blog.giovanh.com/blog/2025/01/12/the-imperfections-of-murder-drones/E08-19_07.webp"/&gt;&lt;/p&gt;
&lt;p&gt;Structurally, a small indie team also carries the risk of skill gaps. I don’t mean to make any criticisms of anyone in particular on the project here, but this kind of team might not necessarily have experienced television writers or producers. 
And, with a small independent team, there might not be enough of a test audience to catch things that could be improved, or not enough budget to re-iterate for minor improvements.
So those are all categories of things that can easily run into trouble. &lt;/p&gt;
&lt;p&gt;Independent serialized animation like this is a relatively new phenomenon, but these are going to be the same sorts of challenges projects like RWBY and Helluva Boss have. (Although I think Murder Drones is significantly better than both of those.)
So while there are common environmental factors that can make this kind of project a little extra rough, the way that roughness actually manifests is interesting.&lt;/p&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="its-not-glaringly-bad"&gt;It’s not glaringly bad&lt;/h2&gt;
&lt;p&gt;The reason I’m interested in talking about this at all is that I noticed the friction as part of my own experience, but it wasn’t linked to any obvious problems. 
In fact, the whole reason I’m writing this is Murder Drones felt like it should be &lt;em&gt;great&lt;/em&gt;, and I was surprised there were things that still weren’t quite clicking.
In re-watching the series to write this, slowing down and zooming in to catch every piece made the effect much harder to see. 
It’s hard to put my finger on exactly what caused the effect. 
Which is why I want to! The dynamics you can barely see are always the most interesting to understand.&lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 12 Jan 2025 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2025-01-12:/blog/2025/01/12/the-imperfections-of-murder-drones/</guid><category>fandom</category><category>writing</category><category>review</category><category>fiction-writing</category></item><item><title>FSE sprite compression</title><link>https://blog.giovanh.com/blog/2025/01/03/fse-sprite-compression/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;&lt;em&gt;&lt;a href="https://sponsus.org/u/1868204533008699392/p/1894588725451689984"&gt;This was originally published 2020-07-07 as a reward for sponsors of Befriendus&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A Domain-Specific Compression Algorithm — as I later found out this is called — is a compression algorithm that uses the specific nature of the target data as a way to efficiently compress it. 
The more you know about the structure of the data you’re compressing and what tools you have to reconstruct data, the more efficient the system can be. &lt;/p&gt;
&lt;p&gt;I wrote a script for the Fansim Engine that does this with character sprites. 
It takes character poses, identifies the parts that have changed and the parts that stay the same, and creates identical Ren’py displayables that take up dramatically less room. &lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Fri, 03 Jan 2025 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2025-01-03:/blog/2025/01/03/fse-sprite-compression/</guid><category>dev</category><category>python</category><category>renpy</category><category>technical</category><category>writeup</category><category>homestuck</category></item><item><title>Making Thanos work</title><link>https://blog.giovanh.com/blog/2024/12/17/making-thanos-work/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Did you know there are still people who think the MCU’s Thanos is a deep character with interesting motivations?
For all the CinemaSins “why didn’t he use his powers to end scarcity, is he stupid” types, there are still “Thanos did nothing wrong” chuds. &lt;/p&gt;
&lt;p&gt;This is stupid, of course. 
But after seeing people be wrong on the internet, it occurred to me recently that there are a couple of genuinely interesting ways to spin the character without changing his mechanical role in the story.
In fact, with just a tiny bit of re-framing, you can turn Thanos from a stupid dumb-dumb into a genuinely great villain. &lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="why-thanos-doesnt-work"&gt;Why Thanos doesn’t work&lt;/h2&gt;
&lt;p&gt;First, a super-quick summary of what I’m reacting to. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Tue, 17 Dec 2024 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2024-12-17:/blog/2024/12/17/making-thanos-work/</guid><category>fandom</category><category>writing</category><category>literary-themes</category></item><item><title>Verification on Bluesky is already perfect</title><link>https://blog.giovanh.com/blog/2024/12/03/verification-on-bluesky-is-already-perfect/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Bluesky has very quickly become a serious social media platform. This means it’s having to deal with all the problems social media platforms have to deal with, including impersonation. 
A lot of people flocked to Bluesky from Twitter, and so recreating something like Twitter’s verification system seems like a natural step. &lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true"&gt;&lt;div class="header"&gt;&lt;a href="https://bsky.app/profile/safety.bsky.app/"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;this.src=`https://web.archive.org/web/0/${this.src}`;})();" src="https://cdn.bsky.app/img/avatar/plain/did:plc:eon2iu7v3x2ukgxkqaf7e5np/bafkreih7mgyv6dugcguewqnuev64i7jsljhtrr6olfadmxq2dasfb7woam@jpeg"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Bluesky Safety&lt;/span&gt;&lt;span class="at"&gt;@safety.bsky.app&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;6/ We also hear your feedback: users want more ways to verify their identity beyond domain verification. We’re exploring additional options to enhance account verification, and we hope to share more shortly.&lt;/p&gt;&lt;/div&gt;&lt;a href="https://bsky.app/profile/safety.bsky.app/post/3lc4h7p6jvt25" target="_blank"&gt;2024-11-29T20:46:33.430Z&lt;/a&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But you don’t need to do that! Bluesky’s current verification system is actually very good and does what verification is supposed to do.&lt;/p&gt;
&lt;p&gt;In 2022 I wrote &lt;a href="https://blog.giovanh.com/blog/2022/11/01/the-failure-of-account-verification/"&gt;a retrospective essay about the “verified account” design pattern on Twitter&lt;/a&gt;, which tried to preempt this conversation a little bit, but unfortunately got bogged down a little with Elon breaking Twitter verification. 
This piece will talk about a lot of the same ideas, but applied more specifically to Bluesky’s ecosystem.&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Tue, 03 Dec 2024 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2024-12-03:/blog/2024/12/03/verification-on-bluesky-is-already-perfect/</guid><category>tech</category><category>platforms</category><category>design-patterns</category></item><item><title>The ambiguous "use"</title><link>https://blog.giovanh.com/blog/2024/11/15/the-ambiguous-use/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;I keep seeing people make this error, especially in social media discourse.
Somebody wants to “use” something. Except obviously, it’s not theirs, and so it’s absurd for them to make that demand, right?&lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="quick-examples"&gt;Quick examples&lt;/h2&gt;
&lt;p&gt;I’m not trying to pick on this person at all: they’re not a twitter main character, they’re not expressing an unusual opinion here, they seem completely nice and cool. But I think this cartoon they drew does a good job of capturing this sort of argument-interaction, which I’ve seen a lot:&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1837980202070430178"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/cuptoast/" title="all + it/its 🇻🇳 full of whimsy and joyus energy (please credit when reuploading art!) crumb@afkcreators.com"&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.jpg;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;crumb&lt;/span&gt;&lt;span class="at"&gt;@cuptoast&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;??? &lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;a href="https://x.com/cuptoast/status/1837980202070430178/photo/1" target="_blank"&gt;
&lt;img class="img count1" onerror="(async () =&amp;gt; {this.onerror=null;this.src=`https://web.archive.org/web/0/${this.src}`;})();" src="https://pbs.twimg.com/media/GYHRO-0b0AQ7XK1.png"/&gt;
&lt;/a&gt;&lt;/div&gt;&lt;a href="https://twitter.com/cuptoast/status/1837980202070430178" target="_blank"&gt;Sun Sep 22 22:20:02 +0000 2024&lt;/a&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’ve also seen the exact inverse of this: people getting upset at artists because once the work is “out there” anyone should be able to “use” it. (But I don’t have a cartoon of this.)&lt;/p&gt;
&lt;p&gt;There is an extremely specific error being made in both cases here, and if you can learn to spot it, you can save yourself some grief. What misuse is being objected to? What are the rights to “certain things” being claimed? &lt;/p&gt;
&lt;p&gt;The problem is that “use” is an extremely ambiguous word that can mean anything from “study” to “pirate” to “copy and resell”. It can also cover particularly sensitive cases, like creating pornography or editing it to make a political argument.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://webcomicname.com/post/190755895139"&gt;&lt;img alt="webcomicname: beliefs you do not agree with" src="https://64.media.tumblr.com/43f9dddc63380f91b6f499a0943122a4/c5cae598db87a8a9-89/s1280x1920/c3feb7993b017ade8497d548d14bb000d27aca9b.png"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But everything people do is “using” something. By itself, “use” is not a meaningful category or designation.
Say you buy a song — listening to it, sampling it, sharing it, performing it, discussing it, and using it in a video are all “uses”, but the conversations about whether each is appropriate or not are extremely distinct.
If you have an objection, it matters &lt;em&gt;a lot&lt;/em&gt; what specific use you’re talking about. &lt;/p&gt;
&lt;p&gt;But if you’re not specific, there are unlimited combinations of “uses” you could be talking about, and you could mean any of them. And when people respond, they could be responding to &lt;em&gt;any&lt;/em&gt; of those interpretations.
There’s no coherent argument in any sweeping statement about “use”; the only things being communicated are frustration and a team-sports-style siding with either “artists” or “consumers” (which is a terrible distinction to make!).&lt;/p&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="formal-logic"&gt;Formal logic&lt;/h2&gt;
&lt;p&gt;This is not a new problem. This is the &lt;strong&gt;Fallacy of Equivocation&lt;/strong&gt;, which is a subcategory of &lt;strong&gt;Fallacies of Ambiguity&lt;/strong&gt;.
This is when a word (in this case, “use”) has more than one meaning, and an argument uses the word in such a way that the entire position and its validity hinge on which definition the &lt;em&gt;reader&lt;/em&gt; assumes.&lt;/p&gt;
&lt;p&gt;The example of this that always comes to my mind first is “respect”, because this one tumblr post from 2015 said it so well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="cite" href="https://flyingpurplepizzaeater.tumblr.com/post/115216522824/sometimes-people-use-respect-to-mean-treating?source=share"&gt;flyingpurplepizzaeater&lt;/a&gt;
Sometimes people use “respect” to mean “treating someone like a person” and sometimes they use “respect” to mean “treating someone like an authority”&lt;/p&gt;
&lt;p&gt;and sometimes people who are used to being treated like an authority say “if you won’t respect me I won’t respect you” and they mean “if you won’t treat me like an authority I won’t treat you like a person”&lt;/p&gt;
&lt;p&gt;and they think they’re being fair but they aren’t, and it’s not okay.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;See, here the “argument” relies on implying a false symmetry between two clauses that use the same word but with totally different meanings. And, in disambiguating the word, the problem becomes obvious.&lt;/p&gt;
&lt;p&gt;Short-form social media really exacerbates the equivocation problem by encouraging people to be concise, which leads to accidental ambiguity. 
But social media also encourages people to take offense at someone else being wrong as the beginning of a “conversation”, which encourages people to use whatever definition of other people’s words makes them the wrongest. &lt;/p&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="copyright-examples"&gt;Copyright examples&lt;/h2&gt;
&lt;p&gt;Since I’m already aware that copyright is a special interest of mine, I try to avoid falling into the trap of modeling everything in terms of copyright by default, &lt;a href="https://x.com/afraidofwasps/status/1177301482464526337"&gt;Boss Baby style&lt;/a&gt;.
But this is literally the case of a debate over who has the “right” to various “uses” of things that are usually intangible ideas, so I think it’s unavoidably copyright time again. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Fri, 15 Nov 2024 00:00:00 -0600</pubDate><guid>tag:blog.giovanh.com,2024-11-15:/blog/2024/11/15/the-ambiguous-use/</guid><category>politics</category><category>language</category><category>rhetoric</category><category>ai</category><category>enforcement</category><category>ip</category></item><item><title>Game patent grab bag</title><link>https://blog.giovanh.com/blog/2024/09/18/game-patent-grab-bag/</link><description>&lt;!-- Seeing the insane pokemon patent news has reminded me to publish some cutting room floor notes I had about video game patents, and how they're categorically wrong. --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;This was originally something I was going to talk about in &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;&lt;em&gt;Corporations have Rejected Copyright&lt;/em&gt;&lt;/a&gt;, back when that series was going to just be one long post (really!).
But since I saw &lt;a href="https://www.nintendo.co.jp/corporate/release/en/2024/240919.html"&gt;Nintendo apparently sued Palworld today&lt;/a&gt;, I wanted to put this up as background information.&lt;/p&gt;
&lt;p&gt;You should definitely read &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;&lt;em&gt;You’ve Never Seen Copyright&lt;/em&gt;&lt;/a&gt; first, particularly the explanation of what patents are, because this conversation directly follows from that. 
The most important thing to pick up on is how the Doctrine of Equivalents lets companies use patents that are supposedly very specific to threaten other implementations that are similar, even if they aren’t using the patented design.&lt;/p&gt;
&lt;p&gt;Game patents are revelatory, because game rules as a category explicitly do not fall within the realm of patent rights, but companies have managed to file and defend fraudulent patents anyway. &lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Wed, 18 Sep 2024 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2024-09-18:/blog/2024/09/18/game-patent-grab-bag/</guid><category>politics</category><category>ip</category><category>feudalism</category><category>enforcement</category><category>buying-the-euphemism</category><category>nintendo</category></item><item><title>Is AI eating all the energy? Part 2/2</title><link>https://blog.giovanh.com/blog/2024/09/09/is-ai-eating-all-the-energy-part-2-of-2/</link><description>&lt;!-- Concluding my pair of articles on AI's energy use. If operational efficiency isn't the problem, where's all the energy going? --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;section class="section1"&gt;&lt;h1&gt;Part 2: Growth, Waste, and Externalities&lt;/h1&gt;
&lt;p&gt;The AI tools are efficient according to the numbers, but unfortunately that doesn’t mean there isn’t a power problem. 
If we look at the overall effects in terms of power usage (as most people do), there are some major problems.
But if we’ve ruled out operational inefficiency as the reason, what’s left?&lt;/p&gt;
&lt;p&gt;The energy problems aren’t coming from inefficient technology, they’re coming from inefficient &lt;em&gt;economics&lt;/em&gt;. 
For the most part, the energy issues are caused by the AI “arms race” and how irresponsibly corporations are pushing their AI products on the market.
Even with &lt;a href="https://blog.giovanh.com/blog/2024/08/18/is-ai-eating-all-the-energy-part-1-of-2/"&gt;operational efficiency ruled out as a cause,&lt;/a&gt; AI is causing two killer energy problems: &lt;strong&gt;waste&lt;/strong&gt; and &lt;strong&gt;externalities&lt;/strong&gt;.&lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Mon, 09 Sep 2024 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2024-09-09:/blog/2024/09/09/is-ai-eating-all-the-energy-part-2-of-2/</guid><category>cyber</category><category>AI</category><category>environmentalism</category><category>technical</category><category>big-tech</category></item><item><title>Is AI eating all the energy? Part 1/2</title><link>https://blog.giovanh.com/blog/2024/08/18/is-ai-eating-all-the-energy-part-1-of-2/</link><description>&lt;!-- misspelling: datacenter --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Recent tech trends have followed a pattern of being huge society-disrupting systems that people don’t actually want. 
Worse, it then turns out there’s some reason they’re not just useless, they’re actively harmful. 
While planned obsolescence means this applies to consumer products in general, the recent major tech fad hypes — cryptocurrency, “the metaverse”, artificial intelligence… — all seem to be &lt;em&gt;comically&lt;/em&gt; expensive boondoggles that only really benefit the salesmen. &lt;/p&gt;
&lt;p&gt;&lt;img alt="simpsons monorail screencap" class="size-m" src="https://blog.giovanh.com/blog/2024/08/18/is-ai-eating-all-the-energy-part-1-of-2/monorail2.jpg"/&gt;
&lt;em&gt;Monorail!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The most recent tech-fad-and-why-it’s-bad pairing seems to be AI and its energy use. 
This product-problem combo has hit the mainstream as an evocative illustration of waste, with headlines like &lt;a href="https://jalopnik.com/google-ai-uses-enough-electricity-in-1-second-to-charge-1851556899"&gt;Google AI Uses Enough Electricity In 1 Second To Charge 7 Electric Cars&lt;/a&gt; and &lt;a href="https://qz.com/chatgpt-requires-15-times-more-energy-than-a-traditiona-1851417343"&gt;ChatGPT requires 15 times more energy than a traditional web search&lt;/a&gt;.&lt;/p&gt;
&lt;!-- ![re: jalopnik jupy314: Reminding people to stop using this BS garbage, even for giggles.  - We need to overthrow this trend. These corporations want nothing more than to burn the world into the ground, and make us pay the price. Billionaires think the world owes them and is their playground. ENOUGH. https://t.co/vnLqJxIVFJ](https://twitter.com/jupy314/status/1805987274733084903) --&gt;
&lt;p&gt;It’s a narrative that’s very much in line with what a disillusioned tech consumer expects.
There is a justified resentment boiling for big tech companies right now, and AI seems to slot in as another step in the wrong direction.
The latest tech push isn’t just capital trying to control the world with a product people don’t want, it’s burning through the planet to do it. &lt;/p&gt;
&lt;p&gt;But, when it comes to AI, is that actually the case?&lt;/p&gt;
&lt;!-- And if it's sometimes good, when? --&gt;
&lt;p&gt;What are the actual ramifications of the explosive growth of AI when it comes to power consumption? 
How much more expensive is it to run an AI model than to use the next-best method? 
Do we have the resources to switch to using AI on things we weren’t before, and is it responsible to use them for that?
Is it worth it?&lt;/p&gt;
&lt;p&gt;These are really worthwhile questions, and I don’t think the answers are as easy as “it’s enough like the last thing that we might as well hate it too.”
There are proportional costs we have to weigh in order to make a well-grounded judgement, and after looking at them, I think the energy numbers are surprisingly good, compared to the discourse.&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 18 Aug 2024 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2024-08-18:/blog/2024/08/18/is-ai-eating-all-the-energy-part-1-of-2/</guid><category>cyber</category><category>AI</category><category>environmentalism</category><category>big-tech</category><category>technical</category></item><item><title>Copyright abusers lost their claim</title><link>https://blog.giovanh.com/blog/2024/07/14/copyright-abusers-lost-their-claim/</link><description>&lt;!-- My latest, the finale to my IP series. I've covered philosophy, I've hit case studies, now here's a takeaway: IP law's diverged so much from the philosophy that it's illegitimate, and we should treat it that way. --&gt;&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;or, &lt;em&gt;the many people who said movies like Coyote v. Acme that were killed for a tax write-off should be forced into the public domain were right, and here’s why&lt;/em&gt;&lt;/p&gt;
&lt;aside class="cb qualified"&gt;
&lt;div class="aside-header"&gt;&lt;span class="icon"&gt;&lt;/span&gt;&lt;span class="type"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This is the last post in a series. You can read this entry by itself, but for the full context, &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;start at the beginning&lt;/a&gt;.&lt;/p&gt;
&lt;/aside&gt;
&lt;section class="section2"&gt;&lt;h2 id="copyright-is-busted-now-what"&gt;Copyright is busted, now what?&lt;/h2&gt;
&lt;!-- Quickly re summarize part 1 --&gt;
&lt;p&gt;A healthy system of creative rights, including a balanced form of copyright, is &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;a reciprocal arrangement between creators, consumers, and the commons.&lt;/a&gt; 
Creators are granted some temporary exclusive rights by the government over qualifying intellectual work in order to incentivize creativity.
These privileges are granted in exchange for creating valuable new information — the existence of which is a contribution to the public good — and for providing it in such a way that others will be able to build on it in the future. It’s an incentive for providing a specific social good, one which the market alone might not reward otherwise.
Fortunately, this is actually how US copyright was designed; see &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;You’ve Never Seen Copyright.&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;The takeaway from that, though, is not just that there’s a fair version of copyright, but that copyright &lt;em&gt;must&lt;/em&gt; look like that fair model. 
The fact that such a thing as “good copyright” exists as a sound philosophy is not a broad defense of the word “copyright” itself, &lt;strong&gt;it’s an imperative requirement for the legitimacy of any system of power that claims to enforce copyright&lt;/strong&gt;. The soundness of the philosophy doesn’t legitimate the system of power that shares its name, it damns it for failing its requirements.&lt;/p&gt;
&lt;p&gt;When they invoke the philosophy of copyright to justify thuggery, it matters that they’re wrong.&lt;/p&gt;
&lt;!-- Allude to abuse examples --&gt;
&lt;p&gt;The requirements for &lt;strong&gt;reciprocity&lt;/strong&gt; intrinsic in copyright are how the system &lt;em&gt;must&lt;/em&gt; work, but it’s not what actually happens today.
In practice, corporations regularly violate the fundamental principles of creative rights — both in letter and in spirit — and use copyright protections to profit without showing the required reciprocity.&lt;/p&gt;
&lt;p&gt;I can’t possibly list all the stories of what these violations look like. 
Seriously, just the thought of me having to give a representative sample of companies abusing IP law made me &lt;em&gt;dread&lt;/em&gt; writing this series, it’s such a prolific problem. 
But I have shown a sample: &lt;a href="https://blog.giovanh.com/blog/2023/11/21/how-nintendo-misuses-copyright/?ref=pg_series"&gt;Nintendo using copyright to kill new creative work&lt;/a&gt;, &lt;a href="https://blog.giovanh.com/blog/2023/10/26/apples-trademark-exploit/?ref=pg_series"&gt;Apple using trademarks to keep competitors from conducting trade at all&lt;/a&gt;, &lt;a href="https://blog.giovanh.com/blog/2024/03/03/cdl-publishers-against-books/?ref=pg_series"&gt;book publishers trying to destroy the idea of buying and selling books&lt;/a&gt;… they’re all examples of how companies do everything they possibly can to get out of fulfilling their side of the bargain. &lt;/p&gt;
&lt;!-- So what does it all add up to? --&gt;
&lt;p&gt;Case studies are fun, but just listing out a bunch of horrors isn’t what I set out to do; that’s just groundwork for thinking about the problem. 
What’s important is that they’re a &lt;em&gt;representative sample&lt;/em&gt; of a kind of behavior. 
With all that established, you can read this with the knowledge that yes, they violate the purpose of the law as written and yes, violations are so regular they seem to define the practice.&lt;/p&gt;
&lt;p&gt;So what does it all add up to? &lt;/p&gt;
&lt;p&gt;Here’s what I say: If you want out of the deal, so be it. 
When someone won’t participate constructively — if they don’t work in good faith, or at least begrudgingly accept the limits the system of copyright puts on them — we stop respecting their claim to special privileges within it as legitimate, and understand it as the double-dealing overreach it is.&lt;/p&gt;
&lt;!-- ![giovan_h: Corps that abuse IP law to keep people from exercising their rights over media they own lose all moral claim to protect their IP. Poof. It&amp;#39;s gone. We gave you special exclusive rights, but you broke the contract, so you don&amp;#39;t get special protected status in the system anymore.](https://twitter.com/giovan_h/status/1639431213805887489)  --&gt;
&lt;p&gt;As self-evident as it sounds when I say it out loud, this argument is my nuclear option. 
This is what I would have to say if it ever got &lt;em&gt;this&lt;/em&gt; bad; if, between the two of them, the courts and the corps ever broke the system beyond my last bit of tolerance. 
And I’ll be damned if they haven’t done just that.&lt;/p&gt;
&lt;!-- What can I get out of this for you?
A better way of thinking about the problem, and an ethical system you can choose to incorporate into your decision-making. --&gt;
&lt;/section&gt;&lt;section class="section2"&gt;&lt;h2 id="legitimacy"&gt;Legitimacy&lt;/h2&gt;
&lt;p&gt;In &lt;a href="https://blog.giovanh.com/blog/2023/10/25/youve-never-seen-copyright/"&gt;You’ve Never Seen Copyright&lt;/a&gt;, I talked about how the word “copyright” can refer to two very different things: either a &lt;strong&gt;philosophical basis&lt;/strong&gt; that justifies copyright as a legal doctrine, or the &lt;strong&gt;system of power&lt;/strong&gt; that describes how copyright is actually enforced, what enforcement looks like, and who it benefits. &lt;/p&gt;
&lt;p&gt;But the fact that the power structure has diverged from the original philosophical intent doesn’t just create a communication issue. Yes, it becomes increasingly unclear what people who say “copyright” are talking about, but the legitimacy of the power structure depends &lt;em&gt;entirely&lt;/em&gt; on being an implementation of a sound legal doctrine. &lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Sun, 14 Jul 2024 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2024-07-14:/blog/2024/07/14/copyright-abusers-lost-their-claim/</guid><category>politics</category><category>manifesto</category><category>ip</category><category>enforcement</category><category>fanwork</category><category>piracy</category></item><item><title>Fake Twitter accounts</title><link>https://blog.giovanh.com/blog/2024/06/19/fake-twitter-accounts/</link><description>&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;Remember when Elon Musk was trying to weasel out of overpaying for Twitter?
During this very specific May 2022-Jul 2022 period, there was a very artificial discourse manufactured over the problem of “fake accounts” on Twitter. &lt;/p&gt;
&lt;p&gt;The reason it was being brought up was very stupid, but the topic stuck with me, because it’s deeply interesting in a way that the conversation at the time never really addressed. &lt;/p&gt;
&lt;p&gt;So this is a ramble on it. I think this is all really worth thinking about, just don’t get your hopes up that it’s building to a carefully-constructed conclusion. &lt;code&gt;;)&lt;/code&gt;&lt;/p&gt;
&lt;section class="section2"&gt;&lt;h2 id="argument-is-stupid"&gt;Argument is stupid&lt;/h2&gt;
&lt;p&gt;First, to be clear, what was actually being argued at the time was exceedingly stupid. I’m not giving that any credit.&lt;/p&gt;
&lt;p&gt;After committing to significantly overpay to purchase Twitter with no requirements that they do due diligence (yes, really!) Elon Musk tried to call off the deal. &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1517215066550116354"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/elonmusk/" title=""&gt;&lt;img onerror="(async () =&amp;gt; {this.onerror=null;const newsrc=`https://web.archive.org/web/0/${this.src}`;console.log(this, this.src, newsrc);this.src=newsrc;})();" src="data:image/.jpg;base64,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"/&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Elon Musk&lt;/span&gt;&lt;span class="at"&gt;@elonmusk&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;If our twitter bid succeeds, we will defeat the spam bots or die trying!&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/elonmusk/status/1517215066550116354" target="_blank"&gt;Thu Apr 21 18:53:55 +0000 2022&lt;/a&gt;
&lt;/blockquote&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1521524585090277379"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/elonmusk/" title=""&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Elon Musk&lt;/span&gt;&lt;span class="at"&gt;@elonmusk&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;That is why we must clear out bots, spam &amp;amp; scams. Is something actually public opinion or just someone operating 100k fake accounts? Right now, you can’t tell.&lt;/p&gt;&lt;p&gt;And algorithms must be open source, with any human intervention clearly identified.&lt;/p&gt;&lt;p&gt;Then, trust will be deserved.&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/elonmusk/status/1521524585090277379" target="_blank"&gt;1651594704000&lt;/a&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true" data-lang="en" data-nosnippet="true" data-tweetid="1525049369552048129"&gt;&lt;div class="header"&gt;&lt;a href="https://twitter.com/elonmusk/" title=""&gt;&lt;div class="vertical"&gt;&lt;span class="name"&gt;Elon Musk&lt;/span&gt;&lt;span class="at"&gt;@elonmusk&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Twitter deal temporarily on hold pending details supporting calculation that spam/fake accounts do indeed represent less than 5% of usershttps://www.reuters.com/technology/twitter-estimates-spam-fake-accounts-represent-less-than-5-users-filing-2022-05-02/ …&lt;/p&gt;&lt;/div&gt;&lt;div class="media" style="display: none;"&gt;&lt;/div&gt;&lt;a href="https://twitter.com/elonmusk/status/1525049369552048129" target="_blank"&gt;1652435078000&lt;/a&gt;
&lt;/blockquote&gt;
&lt;!-- ::: thread
    ![elonmusk: Free speech is essential to a functioning democracy. - Do you believe Twitter rigorously adheres to this principle?](https://twitter.com/elonmusk/status/1507259709224632344)
    ![lexfridman: @elonmusk Yes for bots.](https://twitter.com/lexfridman/status/1507270431916670988)
    ![elonmusk: @lexfridman 🤣🤣 especially crypto spam!!](https://twitter.com/elonmusk/status/1507484098822131717) --&gt;
&lt;p&gt;This was a pretty transparent attempt to get out of the purchase agreement after manipulating the price, and it was correctly and widely reported as such. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a class="cite" href="https://qz.com/2174898/inside-elon-musks-legal-strategy-for-ditching-his-twitter-deal"&gt;Scott Nover, “Inside Elon Musk’s legal strategy for ditching his Twitter deal”&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Elon Musk has buyer’s remorse. On April 25, the billionaire Tesla and SpaceX CEO agreed to buy Twitter for $44 billion, but since then the stock market has tanked. Twitter agreed to sell to Musk at $54.20 per share, a 38% premium at the time; today it’s trading around $40.&lt;/p&gt;
&lt;p&gt;That’s probably the real reason Musk is spending so much time talking about bots.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don’t want to get too bogged down in the details of why Elon was using this tactic, but fortunately other people wrote pages and pages about it, so I don’t have to.&lt;/p&gt;
&lt;/section&gt;&lt;/body&gt;&lt;/html&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">GiovanH</dc:creator><pubDate>Wed, 19 Jun 2024 00:00:00 -0500</pubDate><guid>tag:blog.giovanh.com,2024-06-19:/blog/2024/06/19/fake-twitter-accounts/</guid><category>cyber</category><category>platforms</category><category>user-agent</category><category>api</category><category>services</category><category>ramble</category><category>twitter</category><category>prosthesis</category></item></channel></rss>