<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-08-20T22:41:38Z</updated>
  <generator>https://yabu.me</generator>

  <title>Nostr notes by Screwtapello</title>
  <author>
    <name>Screwtapello</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://yabu.me/npub18eedjkzfyggqa7pwjpyn0xcj8wmh648hd0m8kmw4urc2n99ym0gs0w5xqg.rss" />
  <link href="https://yabu.me/npub18eedjkzfyggqa7pwjpyn0xcj8wmh648hd0m8kmw4urc2n99ym0gs0w5xqg" />
  <id>https://yabu.me/npub18eedjkzfyggqa7pwjpyn0xcj8wmh648hd0m8kmw4urc2n99ym0gs0w5xqg</id>
  <icon>https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/accounts/avatars/109/322/627/844/964/226/original/7a91270753e684de.png</icon>
  <logo>https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/accounts/avatars/109/322/627/844/964/226/original/7a91270753e684de.png</logo>




  <entry>
    <id>https://yabu.me/nevent1qqsxlm5mu4d4sh2f0yltcgr8nqextamy6r624qjw8ns0vmzalxqm67gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz3mpt7t</id>
    
      <title type="html">Sometimes, when I write a little tool, I am responsible enough to ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxlm5mu4d4sh2f0yltcgr8nqextamy6r624qjw8ns0vmzalxqm67gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz3mpt7t" />
    <content type="html">
      Sometimes, when I write a little tool, I am responsible enough to write some tests. When it&amp;#39;s a Python tool, I can use Python&amp;#39;s excellent built-in test harness (`python -m unittest`), but when I&amp;#39;m using some other language — or worse, a combination of languages — it would be nice to have a similar tool available.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve discovered Perl&amp;#39;s `prove` command - it looks for executable scripts matching `t/*.t`, it runs them (possibly in parallel), interprets their output according to a very straight-forward plain-text protocol ( &lt;a href=&#34;https://testanything.org/&#34;&gt;https://testanything.org/&lt;/a&gt; ), and shows a summary of the results. Very nice!&lt;br/&gt;&lt;br/&gt;Unfortunately, when a test fails, it doesn&amp;#39;t actually tell you *which* test failed. You can run `prove -f` which runs the tests again and prints the name of failing tests, but *only* the name. If they printed out some helpful diagnostics or logging, it&amp;#39;s lost. You can also add verbose mode with `prove -f -v` to print all the diagnostics tests produce - but it shows *all* the diagnostics, even the ones from passing tests, not just the failed tests.&lt;br/&gt;&lt;br/&gt;This seems... suboptimal.&lt;br/&gt;&lt;br/&gt;#perl #tap
    </content>
    <updated>2026-04-18T09:16:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsv5zf90jmhsp8ajykcgy425s29qw494gph2j7uujkxk2m8j0j0vcszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazsc0e25</id>
    
      <title type="html">I&amp;#39;ve been enjoying some Fancy Tea I got for Christmas. I ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv5zf90jmhsp8ajykcgy425s29qw494gph2j7uujkxk2m8j0j0vcszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazsc0e25" />
    <content type="html">
      I&amp;#39;ve been enjoying some Fancy Tea I got for Christmas. I don&amp;#39;t know much about Fancy Tea, but my impression was that black tea is generally served with milk, and green tea or things with lemon do not go so well.&lt;br/&gt;&lt;br/&gt;So it&amp;#39;s weird to me that the Fancy Tea with oolong (approximately black tea) specifically says &amp;#34;serve without milk&amp;#34;, but the Fancy Tea that includes green tea, lemongrass and lemon balm says &amp;#34;serve with milk if you want&amp;#34;.&lt;br/&gt;&lt;br/&gt;(yes, I know that lemongrass and lemon balm aren&amp;#39;t actually made from lemons)
    </content>
    <updated>2026-01-21T02:58:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfsu5czjgs4qk4d26h5f058wkcxpgksyug8hnccm6w583usyufyuszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhym5d4</id>
    
      <title type="html">As famously described by Banach and Tarski.</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfsu5czjgs4qk4d26h5f058wkcxpgksyug8hnccm6w583usyufyuszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhym5d4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqmzkfe7acmf7wuf3ul65dphjscz0p5mpd7y398n2pfs79cd2xhxq6dch06&#39;&gt;nevent1q…ch06&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;As famously described by Banach and Tarski.
    </content>
    <updated>2026-01-08T05:24:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqzdkrxcqzyrruulcxlwxkxd6cf009f4l7q448qway0nphwf4h09szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazmufw67</id>
    
      <title type="html">That&amp;#39;s bash&amp;#39;s &amp;#34;process substitution&amp;#34; feature. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqzdkrxcqzyrruulcxlwxkxd6cf009f4l7q448qway0nphwf4h09szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazmufw67" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2lhkdj2wzcvkpjm9d7zyehj8uvmn95n0zn0gg3lwevf37jgy59dgez033z&#39;&gt;nevent1q…033z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s bash&amp;#39;s &amp;#34;process substitution&amp;#34; feature. It&amp;#39;s not POSIX, but it&amp;#39;s still very useful!
    </content>
    <updated>2025-12-18T01:03:16Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9p50t2tppd0duk9avgmramxu6qsh9fhvxkdskql8thekuqhfsqwszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazedrdln</id>
    
      <title type="html">Mathematicians occasionally uses &amp;#34;tack&amp;#34; symbols, ⊥ and ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9p50t2tppd0duk9avgmramxu6qsh9fhvxkdskql8thekuqhfsqwszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazedrdln" />
    <content type="html">
      Mathematicians occasionally uses &amp;#34;tack&amp;#34; symbols, ⊥ and ⊤, for various purposes. They&amp;#39;re called that because they look like thumb-tacks from the side. But if you need a particular tack, what do you call it? Is &amp;#34;⊥&amp;#34; the &amp;#34;up&amp;#34; tack, because the pointy bit is up? Or is &amp;#34;⊤&amp;#34; the &amp;#34;up&amp;#34; tack, because it&amp;#39;s the normal, safe orientation for using a thumb-tack?&lt;br/&gt;&lt;br/&gt;Today I learned that not only do people disagree about this, the two approaches are delightfully named the &amp;#34;London&amp;#34; and &amp;#34;Bosworth&amp;#34; conventions.&lt;br/&gt;&lt;br/&gt;Even better, the symbols in Unicode were initially named according to the Bosworth convention, then renamed to the London convention, BUT NOT ALL OF THEM! So U&#43;234E APL FUNCTIONAL SYMBOL DOWN TACK JOT is actually an up-tack, and vice-versa. Nothing can ever be simple. :)&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.math.uwaterloo.ca/~ljdickey/apl-rep/tables/note1.html&#34;&gt;https://www.math.uwaterloo.ca/~ljdickey/apl-rep/tables/note1.html&lt;/a&gt;
    </content>
    <updated>2025-09-19T13:14:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd9cs8xl6ydlq79f0v9ks4p07ycym52eu9z3mnh5ky6njcmjanuaqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazpa0qdr</id>
    
      <title type="html">This is the bit I&amp;#39;ve actually been working towards. As I ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd9cs8xl6ydlq79f0v9ks4p07ycym52eu9z3mnh5ky6njcmjanuaqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazpa0qdr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs032kezlapaap538krrwk7jcmctcwwensqy4seu8akk2m656y399gg7qu2d&#39;&gt;nevent1q…qu2d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is the bit I&amp;#39;ve actually been working towards. As I think I mentioned before, on the 42S some buttons have a shifted function with a shaded background. Those functions open a menu, rather than performing an action immediately (a bit like the &amp;#34;...&amp;#34; suffix on menu items in GUIs). In previous screenshots, I used a black background, but that always seemed too high-contrast and eye-catching, so I was looking for something less blatant.&lt;br/&gt;&lt;br/&gt;This was one of my first attempts, but trying different design ideas by painstakingly redrawing all the buttons in GIMP was just too tedious, so I&amp;#39;ve spent months writing this tool to automatically lay out a keypad, so I could test a bunch of different ideas quickly.&lt;br/&gt;&lt;br/&gt;And now I have that tool, and I&amp;#39;ve tried a bunch of different ideas, and I still like this one best.&lt;br/&gt;&lt;br/&gt;(I still appreciate the tool allowing me to quickly adjust the horizontal and vertical spacing)&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/115/101/096/741/382/659/original/ec9c0040041dc12a.gif&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-08-27T14:16:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfej4ls0wqac29c87h733lfa7u2te0sr25cuve2523erjg6lpladqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2rkp2d</id>
    
      <title type="html">has a small-but-flexible website engine called &amp;#34;kiki&amp;#34; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfej4ls0wqac29c87h733lfa7u2te0sr25cuve2523erjg6lpladqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2rkp2d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0k4t9w7ljez8cnrv77w33x9an0fz7a28vca3rt5fuyjala0f990ghyqzja&#39;&gt;nevent1q…qzja&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;has a small-but-flexible website engine called &amp;#34;kiki&amp;#34; that seems like a nice compromise between &amp;#34;designed by somebody with taste&amp;#34; and &amp;#34;it&amp;#39;s possible for other people to extend&amp;#34;, which seems important from a permacomputing perspective.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://tomodashi.com/kiki&#34;&gt;https://tomodashi.com/kiki&lt;/a&gt;
    </content>
    <updated>2025-08-21T09:12:27Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf03ww7r87sqn6j89gntmsk79ar23t928eycqt3zd22lvk4a4hzlczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazs0dfsn</id>
    
      <title type="html">I didn&amp;#39;t realise Microsoft had leaned so hard into custom ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf03ww7r87sqn6j89gntmsk79ar23t928eycqt3zd22lvk4a4hzlczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazs0dfsn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq72f07424g5f0t9ag5navyp2cv0ysg0k4qxpmh84q9z4qwnhe83swwuu06&#39;&gt;nevent1q…uu06&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I didn&amp;#39;t realise Microsoft had leaned so hard into custom title-bars in the Win3.1 days. I assumed that was an Office 95 affectation.
    </content>
    <updated>2025-08-12T03:10:46Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfw684prnrlmlxw00wfdvp93gc4z25vd6d2366nemtg98m8urkuxczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazp8h368</id>
    
      <title type="html">I assume so! I haven&amp;#39;t tried to calculate it, but ResEdit ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfw684prnrlmlxw00wfdvp93gc4z25vd6d2366nemtg98m8urkuxczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazp8h368" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspvmrz0pmfjyk4rwd3sjjkkd00k8w3u46x2zas3vds6ra562de6cgg7sv7x&#39;&gt;nevent1q…sv7x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I assume so! I haven&amp;#39;t tried to calculate it, but ResEdit will let you create a dialog-layout resource, draw a button on it, and set the top/left/bottom/right coordinates to arbitrary values, so I guess one could probably reverse-engineer it.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s how I proved to myself that the radius is relative to the button size. Also, it&amp;#39;s relative to the smaller axis, not necessarily the height.
    </content>
    <updated>2025-08-06T13:21:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfyvay0w0nftz9g6s9zdellmvkcz9wg2tkaej55929kqkfcuwsq2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfswfu4</id>
    
      <title type="html">I assumed they were all the same, because Steve Jobs was famously ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfyvay0w0nftz9g6s9zdellmvkcz9wg2tkaej55929kqkfcuwsq2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfswfu4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2d8svtqzk3f7zucsy97z3cux69jvxkst82nfq2250z9q9d7yjltg6mmd8a&#39;&gt;nevent1q…md8a&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I assumed they were all the same, because Steve Jobs was famously picky about consistency and polish. How wrong I was!
    </content>
    <updated>2025-08-06T13:04:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqszhtj0cluwpmf73zyfc5stjly5e5srcdg3dsluu9ajlp9dlfmh7aczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz88g0nd</id>
    
      <title type="html">Even less obvious than that, I changed the way the corners of the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqszhtj0cluwpmf73zyfc5stjly5e5srcdg3dsluu9ajlp9dlfmh7aczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz88g0nd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs032kezlapaap538krrwk7jcmctcwwensqy4seu8akk2m656y399gg7qu2d&#39;&gt;nevent1q…qu2d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Even less obvious than that, I changed the way the corners of the buttons are drawn. Although I originally copied them from a screenshot of System 6, I was recently playing with System 6 in an emulator, and noticed that the buttons looked a little bit different.&lt;br/&gt;&lt;br/&gt;On Windows 3.1, the borders of a button are always 3px thick, so the corners are always the same size no matter what size the button is.&lt;br/&gt;&lt;br/&gt;On System 6, buttons have rounded corners, where the radius is calculated from the button size. So a very small button might be drawn with a 1px or 2px corner radius, but a very large button might have a 50px corner radius.&lt;br/&gt;&lt;br/&gt;With Decker&amp;#39;s font metrics, I&amp;#39;m generating 20px buttons, so I changed the corners to reflect the border-radius used by the original System 6 buttons at that size.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/981/007/014/126/394/original/7a3dcded9a0b666e.png&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/981/025/017/472/737/original/7925ec1001b05e38.png&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/981/045/041/895/062/original/16ea90d38b202c82.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-08-06T09:13:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs032kezlapaap538krrwk7jcmctcwwensqy4seu8akk2m656y399gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlg7zdj</id>
    
      <title type="html">A less-obvious change is that I replaced the three &amp;#34;tab&amp;#34; ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs032kezlapaap538krrwk7jcmctcwwensqy4seu8akk2m656y399gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlg7zdj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf02w9wmvggvt9au50ky226yttfaguxc2jnktpqwks89canwnwmcct9n7y3&#39;&gt;nevent1q…n7y3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A less-obvious change is that I replaced the three &amp;#34;tab&amp;#34; style buttons with something that looks a bit more... tablike. That&amp;#39;s a custom widget I made, that gives me a single source of truth for which widgets live on which tabs, instead of each button having to know about all the widgets on every tab (leading to lots of copy/paste errors).
    </content>
    <updated>2025-08-06T08:53:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf02w9wmvggvt9au50ky226yttfaguxc2jnktpqwks89canwnwmcczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlfjgfu</id>
    
      <title type="html">A number of changes since the last post: - I added more room at ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf02w9wmvggvt9au50ky226yttfaguxc2jnktpqwks89canwnwmcczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlfjgfu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0nuqmnqhyz9n8pyq2889rumpksew78dapvvcwu9x2zjuse3qrxqg9mafs0&#39;&gt;nevent1q…afs0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A number of changes since the last post:&lt;br/&gt;&lt;br/&gt;- I added more room at the top of the grid, leaving room for annunciators and the display&lt;br/&gt;- we now draw the grid of &amp;#34;pressed&amp;#34; button images beside the unpressed ones, as Plus42 expects&lt;br/&gt;- Not shown here, but the &amp;#34;layout&amp;#34; tab now contains (most of) the skin layout declarations that Plus42 requires&lt;br/&gt;- The &amp;#34;Export Canvas&amp;#34; and &amp;#34;Export Layout&amp;#34; buttons at the bottom offer to export the contents of those tabs. If you save them with the same basename, but &amp;#34;.gif&amp;#34; and &amp;#34;.layout&amp;#34; extensions, you&amp;#39;ll have a valid Plus42 skin!&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/980/940/922/503/902/original/2a9bd518c1e59df1.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-08-06T08:50:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp7jg3yaz5j6zz6z5nshhhffmzdud9p8pgfd0an0g2z9y89rh0fgqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz04q7fe</id>
    
      <title type="html">I remember the episodes of Double Fine Adventure talking about ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp7jg3yaz5j6zz6z5nshhhffmzdud9p8pgfd0an0g2z9y89rh0fgqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz04q7fe" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0ecj8kndv7xtdj97d6fwpxr3qfg2wy5xy5yflx8u7g279zradhqqrf4dk7&#39;&gt;nevent1q…4dk7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I remember the episodes of Double Fine Adventure talking about creating the sound track, where they were interviewing Peter McConnell in his studio. The walls were lined with all kinds of musical instruments I&amp;#39;d never heard of, and he&amp;#39;d occasionally pick one up and effortlessly play a little ditty.&lt;br/&gt;&lt;br/&gt;I am not at all surprised that he plays the violin really well. :)
    </content>
    <updated>2025-07-24T02:22:43Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0nuqmnqhyz9n8pyq2889rumpksew78dapvvcwu9x2zjuse3qrxqgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazks6g7y</id>
    
      <title type="html">After a little confusion and a lot of yak shaving, I now think ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0nuqmnqhyz9n8pyq2889rumpksew78dapvvcwu9x2zjuse3qrxqgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazks6g7y" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvz3q5v6nsk9n08lj00kujs2vzg5qp0j5xgk24h0q772at79gukkserwy2t&#39;&gt;nevent1q…wy2t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;After a little confusion and a lot of yak shaving, I now think I&amp;#39;ve ironed out all the issues I had in text measurement and rendering. There&amp;#39;s no invisible whitespace pushing things to the left, the &amp;#34;0.5px&amp;#34; rounding errors that come from centering text are no longer compounding, and I even made it round pixel coordinates *right* instead of *left* to compensate for the visual weight of capital letters.&lt;br/&gt;&lt;br/&gt;This is a little unfortunate for the &amp;#34;Backspace&amp;#34; key, whose label is uniquely right-heavy rather than left-heavy. But I&amp;#39;m going to have to fix that manually is an image editor afterward, because I think I&amp;#39;ve automated about as much as I can.&lt;br/&gt;&lt;br/&gt;Maybe next I&amp;#39;ll be able to iterate on coming up with button artwork that looks nice.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/891/317/953/447/564/original/02a7b8ffbd1e824b.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-07-21T13:02:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqcmmhzcqfr03h6gnq24al5r06n2n75fuepp4r5hl494vj8quvp8szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu8scd4</id>
    
      <title type="html">Ah, I see! I remember getting confused by some of the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqcmmhzcqfr03h6gnq24al5r06n2n75fuepp4r5hl494vj8quvp8szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu8scd4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsddvd5h7dfx02qpy3r2ztze3rt0azvfger454rla0dk5quc5qhewgey8k57&#39;&gt;nevent1q…8k57&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ah, I see!&lt;br/&gt;&lt;br/&gt;I remember getting confused by some of the descriptions in the WDC 65C02 data sheet, like the way that the &amp;#34;Absolute&amp;#34; addressing mode is described as taking 4 cycles, but JMP with the &amp;#34;Absolute&amp;#34; addressing mode takes only 3.&lt;br/&gt;&lt;br/&gt;I spent a bunch of time comparing the Synertek 6502 programming manual with the WDC&amp;#39;s docs, and various &amp;#34;differences between 6502 and 65C02&amp;#34; descriptions to figure out what was actually going on, and compiled the result into a machine-readable table:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://gitlab.com/Screwtapello/isa65xx/-/blob/68464350f4ec4414b956f25ea0d6fd8fd93531eb/opcodes_expected.tsv&#34;&gt;https://gitlab.com/Screwtapello/isa65xx/-/blob/68464350f4ec4414b956f25ea0d6fd8fd93531eb/opcodes_expected.tsv&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;(it doesn&amp;#39;t have the Rockwell bit-twiddling instructions, or WDC&amp;#39;s STP or HLT, though)
    </content>
    <updated>2025-07-20T08:31:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqagqtxepuf5m8d4mvy8n5w5ukn2dwfv3f2mxhce0h0k24y8ny6gszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazua5424</id>
    
      <title type="html">Out of curiosity, where did you get authoritative cycle counts?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqagqtxepuf5m8d4mvy8n5w5ukn2dwfv3f2mxhce0h0k24y8ny6gszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazua5424" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs25fswngw9urgzqztcy9h69xr5tt9azzff60u3ww8lh82yjfhtr2g6hn2qa&#39;&gt;nevent1q…n2qa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Out of curiosity, where did you get authoritative cycle counts?
    </content>
    <updated>2025-07-20T07:57:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf6z37n46zc05r4wyt9p627r49fwjn82vfr6uanw96qcj4ns6x6kczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazdn4r62</id>
    
      <title type="html">From a 1982 text adventure, &amp;#34;Marooned&amp;#34; (h/t ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf6z37n46zc05r4wyt9p627r49fwjn82vfr6uanw96qcj4ns6x6kczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazdn4r62" />
    <content type="html">
      From a 1982 text adventure, &amp;#34;Marooned&amp;#34;&lt;br/&gt;&lt;br/&gt;(h/t &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1aasp2uw68e6d76un5d3569j5s8cd8lxpzj3jk62ts7ecd7vw6fysfpchan&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Jason Dyer&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1aas…chan&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;)&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/845/217/138/170/649/original/227c5d0b743d1e64.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-07-13T09:31:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstm3vlj4ay0a4f4qwjmfk3jp0e7cn7pcvngan47pjtemmwkknvhggzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlcyttt</id>
    
      <title type="html">It&amp;#39;s hard for me to imagine what a 1-bit CPU would be good ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstm3vlj4ay0a4f4qwjmfk3jp0e7cn7pcvngan47pjtemmwkknvhggzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlcyttt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8akffp9hapr05rc0tuw7d6r38nscf6ratw8xqqxqngp70fmvqlvgk4ncyc&#39;&gt;nevent1q…ncyc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s hard for me to imagine what a 1-bit CPU would be good for if *not* a bit-slicing arrangement. We switched from 8-bit to 16-bit CPUs because &amp;#34;counting past 255&amp;#34; happened often enough to justify hardware support; there must be very few applications where you never need to count past 1.
    </content>
    <updated>2025-06-25T04:06:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsgdqttl97esnwqy2vwl8ljmgychl34ujzn527uxx0wcr4ctt4cwdqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaza2agee</id>
    
      <title type="html">How would a bit-slicing CPU differ from the MC14500B? Would it ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsgdqttl97esnwqy2vwl8ljmgychl34ujzn527uxx0wcr4ctt4cwdqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaza2agee" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0h000fdl4elrzgustf38f2uzdts9hmgd6xg6jyfxmhf7u6w2j6aqhg9a2d&#39;&gt;nevent1q…9a2d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;How would a bit-slicing CPU differ from the MC14500B? Would it just have more pins for cascading values to/from the parallel CPUs?
    </content>
    <updated>2025-06-25T03:59:45Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvz3q5v6nsk9n08lj00kujs2vzg5qp0j5xgk24h0q772at79gukkszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgkzs7r</id>
    
      <title type="html">Tonight I finally got around to investigating the button-spacing ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvz3q5v6nsk9n08lj00kujs2vzg5qp0j5xgk24h0q772at79gukkszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgkzs7r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxr85f0y5w9tvmr95aulqxxjuse8esxc7uqx30e7kzvmdlhasa8eg0xsdva&#39;&gt;nevent1q…sdva&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Tonight I finally got around to investigating the button-spacing issue.&lt;br/&gt;&lt;br/&gt;Turns out that in #Decker a font has a &amp;#34;space&amp;#34; value that controls how many pixels are left between each character. If you ask Decker to measure the dimensions of the string &amp;#34;zzz&amp;#34;, you&amp;#39;ll get a width that is three times the width of the &amp;#34;z&amp;#34; glyph, plus three times the &amp;#34;space&amp;#34; value. If you are assembling a line of text, that&amp;#39;s great - you&amp;#39;ll wind up with even spacing no matter how many chunks the text is broken into. On the other hand, if you are trying to render a short label, the extra spacing can be an appreciable proportion of the total length. If you&amp;#39;re trying to *centre* the label, that extra width makes everything subtly unbalanced.&lt;br/&gt;&lt;br/&gt;So now whenever I measure text, I take care to subtract the font space value from the result.&lt;br/&gt;&lt;br/&gt;I think there&amp;#39;s still some source of unevenness I haven&amp;#39;t ironed out; the &amp;#34;View&amp;#34; button on the second row still looks a bit odd. But if you flip between these images and look at the &amp;#34;7&amp;#34; key, you&amp;#39;ll see the newer one looks better.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/710/612/846/086/252/original/4108a2e3b6430ff6.png&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/710/613/563/168/477/original/5b17a5bd3d99bd86.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-06-19T15:23:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstphk5dp7dh83hgp73l3ytfqksqxpqt6pc06xdknjlthp9gr4lrkgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazqddm3g</id>
    
      <title type="html">Can you plug a Sentinel 65X cartridge into a Mega Drive and have ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstphk5dp7dh83hgp73l3ytfqksqxpqt6pc06xdknjlthp9gr4lrkgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazqddm3g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsztmp27yl50rlqup5959lssv96fp8pskafkm79f59mseslpp708gsnasxm6&#39;&gt;nevent1q…sxm6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Can you plug a Sentinel 65X cartridge into a Mega Drive and have it survive? Are they 5V tolerant, or is there some keying system to prevent them being inserted?&lt;br/&gt;&lt;br/&gt;Or do you just have to be careful and not do that?
    </content>
    <updated>2025-06-06T01:25:53Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxr85f0y5w9tvmr95aulqxxjuse8esxc7uqx30e7kzvmdlhasa8egzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazf25yj7</id>
    
      <title type="html">I finally wrote the code that combines the &amp;#34;button ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxr85f0y5w9tvmr95aulqxxjuse8esxc7uqx30e7kzvmdlhasa8egzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazf25yj7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq9r34uu0nmm89kdkj4nqret4ffwav5dhy30egh3h29j4paxa6y6ckxmhkx&#39;&gt;nevent1q…mhkx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I finally wrote the code that combines the &amp;#34;button definitions&amp;#34; and &amp;#34;button grids&amp;#34; and &amp;#34;button shape&amp;#34; data to draw the actual Plus42 keys graphic.&lt;br/&gt;&lt;br/&gt;My first attempt is not pictured; some of the table rows that put a button in a grid used a numeric button ID, while the table rows that define buttons use a string button ID. As a result, when I joined the two tables, half the buttons failed to show up.&lt;br/&gt;&lt;br/&gt;The two big problems here are that the numeric keypad buttons are vertically shorter than the others (they should be the same height) and the keypad grid should be aligned with the right-edge of the main grid.&lt;br/&gt;&lt;br/&gt;After that, I don&amp;#39;t like how some of the text is centered within each button (check &amp;#34;View&amp;#34;, second from the end of the right-hand row). I bet there&amp;#39;s some spacing I&amp;#39;ve forgotten to account for, or double-counted.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/540/419/458/632/643/original/b932c47135f120d9.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-05-20T13:35:01Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvecwu8y37ffcdqpnwhpyvtuhrharx3uc3v5j3zun8gp63pcjehaszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazznqn3q</id>
    
      <title type="html">I really like the &amp;#34;A&amp;#34; that is used as a base for all the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvecwu8y37ffcdqpnwhpyvtuhrharx3uc3v5j3zun8gp63pcjehaszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazznqn3q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqyh73r6s2asckwl95tdpqnu3mekxwj0de4v73tsz97n4glld7fss9k8zxy&#39;&gt;nevent1q…8zxy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I really like the &amp;#34;A&amp;#34; that is used as a base for all the accented variants, the standalone &amp;#34;A&amp;#34; looks a bit thin by comparison.
    </content>
    <updated>2025-05-08T13:12:05Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp7p6xam4htcq85ps426p5qsx6ljac9zrgxzyyt4mhjppc8xhnltgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazzfe8j6</id>
    
      <title type="html">Is this based on some other font, or completely your own work?</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp7p6xam4htcq85ps426p5qsx6ljac9zrgxzyyt4mhjppc8xhnltgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazzfe8j6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg6ljprek2yh8f0q3jxfzuk89fd5ynh8a78wt646qnkhnlmv7zrqqp7jntu&#39;&gt;nevent1q…jntu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Is this based on some other font, or completely your own work?
    </content>
    <updated>2025-05-08T13:06:26Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsq9r34uu0nmm89kdkj4nqret4ffwav5dhy30egh3h29j4paxa6y6czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfqhaf3</id>
    
      <title type="html">You might also notice a &amp;#34;Back&amp;#34; button below the grid item ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsq9r34uu0nmm89kdkj4nqret4ffwav5dhy30egh3h29j4paxa6y6czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfqhaf3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxfyx3c4lv687nj8ww3sa4rmx6u43g92gud2uk2psh0dgjk9hqyqsc0zmh0&#39;&gt;nevent1q…zmh0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You might also notice a &amp;#34;Back&amp;#34; button below the grid item list. Although Decker has a &amp;#34;Card&amp;#34; menu that lets you flip between cards manually, and even a &amp;#34;Card List&amp;#34; dialog that gives you a list of cards with thumbnails, it seemed more in the spirit of Decker and Hypercard generally to have the first card in the deck have buttons to take you to the others, and each card to have a &amp;#34;back&amp;#34; button. Maybe it&amp;#39;s a bit superfluous, but I&amp;#39;ve already been using it, and it was super-easy to set up.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/432/309/256/924/777/original/32c8640d897822a2.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-05-01T11:21:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxfyx3c4lv687nj8ww3sa4rmx6u43g92gud2uk2psh0dgjk9hqyqszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazga6uzx</id>
    
      <title type="html">You might wonder what that big 5 by 4 &amp;#34;button&amp;#34; is at the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxfyx3c4lv687nj8ww3sa4rmx6u43g92gud2uk2psh0dgjk9hqyqszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazga6uzx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2vzvczphz2dnaalv99hvgjkufckm9jl3x8s7lzrxn8k5242udr2cvd7dsa&#39;&gt;nevent1q…7dsa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You might wonder what that big 5 by 4 &amp;#34;button&amp;#34; is at the bottom right of the grid. The HP 42s uses slightly larger buttons for the numeric keys than for all the other function buttons, and so they live on a slightly different grid. Plus42&amp;#39;s default layout copies that style (though it adds a few more rows of buttons at the top, compared to the 42s), so my grid can&amp;#39;t just be a grid of buttons, it has to be a grid where most things are buttons, and one thing is an independent subgrid.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/432/279/329/055/237/original/f4bcfd0f690027bf.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-05-01T11:13:34Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2vzvczphz2dnaalv99hvgjkufckm9jl3x8s7lzrxn8k5242udr2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz0jnq8k</id>
    
      <title type="html">Another step on the journey: I now have a table that defines the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2vzvczphz2dnaalv99hvgjkufckm9jl3x8s7lzrxn8k5242udr2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz0jnq8k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf2w2karspgrqma2xfxpra3kh3mq83tak3llcpdup5t9eyjr48w6q76wj2r&#39;&gt;nevent1q…wj2r&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Another step on the journey: I now have a table that defines the size and position of each button in a grid, so I can lay out the buttons as necessary. As a visualisation, I also made a canvas that draws each button in its relative size and shape, and highlights the currently-selected button.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/432/241/901/872/746/original/bd3c971d5c4c9f35.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-05-01T11:04:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrmy8vth6aet6audrm8rxm4wqra4cfazl5r5l5xuyut9lhjha639czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazr5v4h4</id>
    
      <title type="html">Wizards of the Coast did as they promised, and released a System ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrmy8vth6aet6audrm8rxm4wqra4cfazl5r5l5xuyut9lhjha639czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazr5v4h4" />
    <content type="html">
      Wizards of the Coast did as they promised, and released a System Reference Document (that is, the basic rules and game mechanics) for the 2024 edition of Dungeons &amp;amp; Dragons under an extremely open Creative Commons (CC-BY-4.0) licence.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.dndbeyond.com/srd&#34;&gt;https://www.dndbeyond.com/srd&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;D&amp;amp;D isn&amp;#39;t necessarily the game for *you*, but it *is* historically significant and still extremely popular, and I think it&amp;#39;s cool that any part of it is available under such a licence.
    </content>
    <updated>2025-04-23T02:29:46Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsf2w2karspgrqma2xfxpra3kh3mq83tak3llcpdup5t9eyjr48w6qzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazwkqruy</id>
    
      <title type="html">Decker&amp;#39;s font system is a bit more limited than most bitmap ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsf2w2karspgrqma2xfxpra3kh3mq83tak3llcpdup5t9eyjr48w6qzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazwkqruy" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfr7gyxe37gpsn62ll0tlrtukxq2c9paqrxcgzvfvvzkksvzlwyucr4twsn&#39;&gt;nevent1q…twsn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Decker&amp;#39;s font system is a bit more limited than most bitmap font renderers, because it adds a fixed number of &amp;#34;padding&amp;#34; pixels after the strike of each glyph. If a font says it needs 2px of padding between glyphs, then you&amp;#39;ll get 2px between &amp;#34;ML&amp;#34; and 2px between &amp;#34;&amp;gt;&amp;lt;&amp;#34; — even though those glyphs have much less visual weight, therefore need to be squished closer together to look right.&lt;br/&gt;&lt;br/&gt;Traditional bitmap font renderers give each glyph an &amp;#34;advance&amp;#34; width that can be less than the number of columns of pixels that it draws, so each glyph can have a spacing appropriate to its shape. It makes for nicer text, but I suppose it also makes the rendering code more complex, so I can understand why Decker made the tradeoff it did.
    </content>
    <updated>2025-04-22T08:34:44Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfr7gyxe37gpsn62ll0tlrtukxq2c9paqrxcgzvfvvzkksvzlwyuczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu4407q</id>
    
      <title type="html">Here&amp;#39;s a view of my &amp;#34;Chicago Math&amp;#34; font which adds ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfr7gyxe37gpsn62ll0tlrtukxq2c9paqrxcgzvfvvzkksvzlwyuczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu4407q" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstzjcx5n0cfrc2ec9csxqrhrxd2yj048h23ce5hg8ef7pdc8pqq9sc72tz6&#39;&gt;nevent1q…2tz6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s a view of my &amp;#34;Chicago Math&amp;#34; font which adds the mathematical symbols I need. In particular, I&amp;#39;m proud of the script &amp;#34;x&amp;#34;, script &amp;#34;y&amp;#34;, and script &amp;#34;e&amp;#34; glyphs replacing &amp;#34;{&amp;#34;, &amp;#34;}&amp;#34; and &amp;#34;~&amp;#34;. It wasn&amp;#39;t easy to make a thing that looked like a classic mathematical script &amp;#34;x&amp;#34; but *also* fit with Chicago&amp;#39;s strict angular style. Maybe there&amp;#39;s a better version out there, but I think I did OK.&lt;br/&gt;&lt;br/&gt;I also like that I got to include the Macintosh (well, ISO) symbols for &amp;#34;Shift&amp;#34; and &amp;#34;Backspace&amp;#34;. The HP 42S has a backspace key but uses a generic &amp;#34;left arrow&amp;#34; for it. The HP 42s&amp;#39;s shift key is just an orange block, to make it clearly associated with the orange text above every button. But without the luxury of colour-coding, I had to pick something more graphic to represent &amp;#34;shift&amp;#34;, and what better choice than the glyph that the Mac used to represent the shift modifier in keyboard shortcuts?&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/380/636/846/184/893/original/b92f1a128e976967.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-04-22T08:20:12Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstzjcx5n0cfrc2ec9csxqrhrxd2yj048h23ce5hg8ef7pdc8pqq9szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz02lgaj</id>
    
      <title type="html">I&amp;#39;ve made a table with all the button IDs that Plus42 ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstzjcx5n0cfrc2ec9csxqrhrxd2yj048h23ce5hg8ef7pdc8pqq9szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz02lgaj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy2k9vhpd4m7xex4cpdym24ht4hplwsz2zr7v6kn2zp0cc6ggk9sqjkr87w&#39;&gt;nevent1q…r87w&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve made a table with all the button IDs that Plus42 supports, the label of each button, the shifted label, and whether the shifted function is a submenu. Unfortunately, Decker&amp;#39;s default character set does not include all the symbols that appear on Plus42&amp;#39;s keys, such as superscripts, various arrows, and Greek letters, so I&amp;#39;ve had to repurpose a bunch of unused ASCII punctuation to represent those.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/380/594/404/826/571/original/31bae71de2b9764f.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-04-22T08:09:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsy2k9vhpd4m7xex4cpdym24ht4hplwsz2zr7v6kn2zp0cc6ggk9sqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazsfa0ql</id>
    
      <title type="html">Another day&amp;#39;s work, and now I have a function that renders a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsy2k9vhpd4m7xex4cpdym24ht4hplwsz2zr7v6kn2zp0cc6ggk9sqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazsfa0ql" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsywcq3m3649pwej5jpctecw0addeq8p5mm0jh6pya9yrz60ur50sgm60x7t&#39;&gt;nevent1q…0x7t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Another day&amp;#39;s work, and now I have a function that renders a custom button. Now there&amp;#39;s four button templates at the top-left, for every combination of &amp;#34;normal vs. pressed&amp;#34; and &amp;#34;the shifted function executes a command vs. the shifted function opens a submenu&amp;#34;.&lt;br/&gt;&lt;br/&gt;In the test area at the bottom right, I can type a label (that appears on the button&amp;#39;s face) and a shifted label (that appears above the button). The button automatically sizes to fit the longer of the two strings (respecting the configured margins around each string) and keeps the shorter string centred. There&amp;#39;s also a checkbox called &amp;#34;Menu&amp;#34; that marks the shifted function as opening a submenu, and clicking on the button displays the &amp;#34;pressed&amp;#34; version.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m a little bit alarmed that so many inputs are required to render a button, but it *is* kind of cool to have them all in one place, and to get immediate visual feedback after changing each one.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/364/055/166/786/098/original/f6ad6e5dfc72e6c1.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-04-19T10:03:16Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfsq6m8zzjgs79ss4le0ledgdx0anynyryd24u2sc48zghm3ftx4gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazjtflew</id>
    
      <title type="html">It does make me wonder what a tool closer to the Unixy end of the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfsq6m8zzjgs79ss4le0ledgdx0anynyryd24u2sc48zghm3ftx4gzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazjtflew" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx93lwryljy5ssyrzk2lae7vyd6z7p3al9fqf89s3qczpcayg6zdcna2q84&#39;&gt;nevent1q…2q84&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It does make me wonder what a tool closer to the Unixy end of the spectrum (&amp;#34;mechanism, not policy&amp;#34;) might look like, but I can&amp;#39;t fault the guy for having a clear aesthetic vision and a determination to limit scope creep.&lt;br/&gt;&lt;br/&gt;I think the model for sharing data between cards is that you put the data in a field, then you can access it from anywhere with `deck.cards.cardname.widgets.fieldname.value`. If you don&amp;#39;t want it to be exposed to the &amp;#34;user&amp;#34;, you can make the field invisible, or just stick it on a &amp;#34;global variables&amp;#34; card that no other cards link to. This is a bit like, on a spreadsheet, hiding your data in the ZZ99 cell.&lt;br/&gt;&lt;br/&gt;For a Product, that&amp;#39;s not enough, you need to keep the implementation hidden behind the interface. But I don&amp;#39;t think that&amp;#39;s what Decker is going for; one of the taglines it shows at startup is &amp;#34;an interactive sketchbook&amp;#34;, and I think the Brutalist exposure of the inner workings is part of the point.
    </content>
    <updated>2025-04-15T13:14:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsd35az93dmlc8ewp8h35zqkgkz76hgp00265pjf0u2ppgl0mqkx2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz7maeny</id>
    
      <title type="html">I&amp;#39;m probably not going to make Decker my primary development ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsd35az93dmlc8ewp8h35zqkgkz76hgp00265pjf0u2ppgl0mqkx2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz7maeny" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsywcq3m3649pwej5jpctecw0addeq8p5mm0jh6pya9yrz60ur50sgm60x7t&#39;&gt;nevent1q…0x7t&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m probably not going to make Decker my primary development environment for everything in the future, but it&amp;#39;s been an interesting ride so far and I&amp;#39;m glad I gave it a try.
    </content>
    <updated>2025-04-15T08:59:19Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsywcq3m3649pwej5jpctecw0addeq8p5mm0jh6pya9yrz60ur50sgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazefyw6h</id>
    
      <title type="html">Here&amp;#39;s how far I got after a few hours&amp;#39; messing about. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsywcq3m3649pwej5jpctecw0addeq8p5mm0jh6pya9yrz60ur50sgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazefyw6h" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvtsfgkkkmsqqg564j8y40hgjmhct4pwuceskpqgeas07r8rqsv2crqgdhm&#39;&gt;nevent1q…gdhm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s how far I got after a few hours&amp;#39; messing about. Although Decker has a &amp;#34;canvas&amp;#34; widget, it&amp;#39;s really for code to draw on, rather than the user. However, the user is allowed to draw directly on the background of each card, so on the left I have little boxes that represent the images I want to use for buttons.&lt;br/&gt;&lt;br/&gt;On the right are a bunch of fields - the &amp;#34;Normal&amp;#34; fields describe the size and location (on the card background) of the &amp;#34;normal&amp;#34; image of the button; the &amp;#34;Pressed&amp;#34; fields describe the location of the &amp;#34;pressed&amp;#34; image (it&amp;#39;s assumed to be the same size). Below that, we have margins around the button that describe which parts of the image can be stretched to fit around the text that must fit within it. Then formatting: text on a normal button is rendered in colour 47 (black) while text on a pressed button will be color 32 (white), and the button label should be drawn with the &amp;#34;menu&amp;#34; font.&lt;br/&gt;&lt;br/&gt;At the very bottom, the &amp;#34;Test&amp;#34; pane shows the resulting button drawn around the text &amp;#34;Hello&amp;#34;. Whenever I change any field on the right, the test pane redraws to take my changes into account, so I can very quickly tweak all the settings to get to a button I like. The actual button drawing is in a separate function so I can re-use it to render the entire Plus42 skin later.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/341/150/828/649/443/original/2eded1a7a27bd081.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-04-15T08:58:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvtsfgkkkmsqqg564j8y40hgjmhct4pwuceskpqgeas07r8rqsv2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgmnr2y</id>
    
      <title type="html">So I created a deck with the intention that it would just contain ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvtsfgkkkmsqqg564j8y40hgjmhct4pwuceskpqgeas07r8rqsv2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgmnr2y" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrj5sex55vh2vnlz2px79ymgw8jezsclmwhqftgws5udg0s3490tgskf5f5&#39;&gt;nevent1q…f5f5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;So I created a deck with the intention that it would just contain the widgets and resources I needed to render the calculator skin, and then I&amp;#39;d just automate it with Lilt. But as I started messing around, I got a better idea of how Decker *wants* to be used.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure what I expected; maybe something like Visual Basic, which is just a regular programming language except it has a graphical editor for some of its data structures. Turns out it&amp;#39;s a lot closer to something like a spreadsheet: if you want to do a calculation, you plop down some input fields and an output field, and write some code to calculate the output field when the inputs change. It&amp;#39;s not a template that gets instantiated when you compile and run, that&amp;#39;s the data - if you change the value in an input field, it stays changed forever.&lt;br/&gt;&lt;br/&gt;If your program has a bunch of data structures it needs to work with, that will persist from one invocation to another, instead of writing a bunch of constants in a header file, you plop fields on a card and type the data into them. As a result, writing a program *is* creating a GUI for it. Maybe not a polished GUI, maybe not the one you&amp;#39;d make if you could wave a magic wand, but it lets you describe, arrange and annotate things much more fluidly than traditional plain-text source.
    </content>
    <updated>2025-04-15T08:47:25Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrj5sex55vh2vnlz2px79ymgw8jezsclmwhqftgws5udg0s3490tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazucl4gh</id>
    
      <title type="html">Unfortunately, it turns out there&amp;#39;s some significant ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrj5sex55vh2vnlz2px79ymgw8jezsclmwhqftgws5udg0s3490tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazucl4gh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxfzxnapvlf7u9cjlvzqcwerxxmxwpk66vswzhwgf6rmkw9d5nnxgfl0vad&#39;&gt;nevent1q…0vad&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Unfortunately, it turns out there&amp;#39;s some significant limitations to Decker, and Lilt even moreso. I&amp;#39;m sure most of these are deliberate, to keep Decker&amp;#39;s API easy to learn and implementation easy to maintain, and to stick firmly within the &amp;#34;ditherpunk&amp;#34; aesthetic it&amp;#39;s going for, but they caught me by surprise, so I wanted to make note of them.&lt;br/&gt;&lt;br/&gt;- Although Lilt can do everything Decker can do (you can literally load a Decker deck, send it events which can trigger arbitrary code, and read back the results), most of that functionality is not available to Lilt itself. For example, in Decker you can plop a Canvas widget on a card and then write code to manipulate it, but you can&amp;#39;t create a &amp;#34;headless&amp;#34; Canvas widget in Lilt, short of loading a deck that already has one.&lt;br/&gt;&lt;br/&gt;- Although GIF files are limited to 256 colours, on import Decker dithers them to black-and-white, or posterises them to a 16-colour palette. Lilt can read GIF files, but it&amp;#39;s even more limited - it only supports Decker&amp;#39;s default 16-colour palette, it doesn&amp;#39;t let you choose a different one.&lt;br/&gt;&lt;br/&gt;- Like widgets and palettes, fonts are only available within the context of a deck. Since my whole goal was to make an image with text labelling buttons, this was a show-stopper.
    </content>
    <updated>2025-04-15T08:34:54Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsxfzxnapvlf7u9cjlvzqcwerxxmxwpk66vswzhwgf6rmkw9d5nnxgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz928jed</id>
    
      <title type="html">Then I remembered I&amp;#39;ve been wanted to look at Decker for a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsxfzxnapvlf7u9cjlvzqcwerxxmxwpk66vswzhwgf6rmkw9d5nnxgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz928jed" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqhq28ge6k0d6lyuf9futpl690up9szw0mz3h4fpqgwvvnhwhlrpg9x5nkk&#39;&gt;nevent1q…5nkk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Then I remembered I&amp;#39;ve been wanted to look at Decker for a long time. Or rather, since I wasn&amp;#39;t super-interested in a GUI development environment, I wanted to look at Lilt, the command-line interpreter for Decker&amp;#39;s scripting language. It has functions, it can read and write GIF files, let&amp;#39;s go!&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://beyondloom.com/decker/&#34;&gt;https://beyondloom.com/decker/&lt;/a&gt;
    </content>
    <updated>2025-04-15T08:16:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqhq28ge6k0d6lyuf9futpl690up9szw0mz3h4fpqgwvvnhwhlrpgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz0cfnwr</id>
    
      <title type="html">I&amp;#39;ve been messing around with a Plus42 skin just as a design ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqhq28ge6k0d6lyuf9futpl690up9szw0mz3h4fpqgwvvnhwhlrpgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz0cfnwr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8een5kyyx2fze7exh70y4njyznc204r6jd0kd7vtgt9msthqssecahzqry&#39;&gt;nevent1q…zqry&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been messing around with a Plus42 skin just as a design exercise, but despite the handy web-based tool above for annotating a skin image, I got heartily sick of making a minor change to the layout and then having to adjust the size and spacing of all the buttons, and trying to recenter the text in each one. This seems like an excellent job for automation!&lt;br/&gt;&lt;br/&gt;But what tool to use? Browsers are very flexible, but they make it really difficult to get information *out* of them. I looked at &lt;a href=&#34;https://love2d.org/&#34;&gt;https://love2d.org/&lt;/a&gt; but although has good support for graphics and interactivity (it&amp;#39;s a game engine) it doesn&amp;#39;t support reading or writing GIF files, while Plus42 *only* supports GIF files. Sure, I could add a conversion step, but I&amp;#39;d rather not.
    </content>
    <updated>2025-04-15T08:14:29Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsv063k53zrspee6pq5s6n7ndeay8cegfn389v4vf27khksmf2f8cczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhqkvuh</id>
    
      <title type="html">A free download of a password-protected zip file. :/</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsv063k53zrspee6pq5s6n7ndeay8cegfn389v4vf27khksmf2f8cczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhqkvuh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszjavx72pr5sgg3nkde9ls3q7m8qawgjtygmfuuufs2945nuhc5hcl0ul33&#39;&gt;nevent1q…ul33&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;A free download of a password-protected zip file. :/
    </content>
    <updated>2025-04-02T00:25:38Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8een5kyyx2fze7exh70y4njyznc204r6jd0kd7vtgt9msthqsseczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz23hrdd</id>
    
      <title type="html">Free42, the Free Software re-implementation of the classic HP 42s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8een5kyyx2fze7exh70y4njyznc204r6jd0kd7vtgt9msthqsseczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz23hrdd" />
    <content type="html">
      Free42, the Free Software re-implementation of the classic HP 42s RPN calculator, supports using custom skins, a bit like WinAmp skins but more complex - instead of just a bunch of bitmaps, you get to define the size and location of each button and graphical element.&lt;br/&gt;&lt;br/&gt;I have discovered that it its parsing of the layout file is not very strict, so I can wrap some HTML, CSS, and JavaScript around it and get a polyglot file that I can load into Free42 to test, and also load into a browser to visualise the coordinates as I edit them.&lt;br/&gt;&lt;br/&gt;(the attached screenshot depicts a skin for Free42&amp;#39;s slightly more capable cousin Plus42, but the skin files are interchangeable)&lt;br/&gt;&lt;br/&gt;#free42 #hp42s #hpcalc&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/114/255/963/175/805/524/original/0ba9b151173bf959.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-03-31T07:54:03Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvyv9lk6fq40sptlthlrm7t68s4pscawjtmgarmpxguknjmyaezdgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazknm3f4</id>
    
      <title type="html">As a professional programmer, I don&amp;#39;t have much cause to use ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvyv9lk6fq40sptlthlrm7t68s4pscawjtmgarmpxguknjmyaezdgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazknm3f4" />
    <content type="html">
      As a professional programmer, I don&amp;#39;t have much cause to use a desktop calculator when I&amp;#39;m sitting in front of a computer with a squillion times more processing power and a richer, more versatile interface. But I came across this video of somebody running the firmware of the HP 50g graphing calculator inside an emulator on Windows, with keyboard shortcuts for all the calculator keys, and I&amp;#39;m honestly impressed.&lt;br/&gt;&lt;br/&gt;I still don&amp;#39;t actually need to do calculations or solve equations on a regular basis, but if I ever do, I might try to figure out a similar setup.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=lzPsaVvyQqM&#34;&gt;https://www.youtube.com/watch?v=lzPsaVvyQqM&lt;/a&gt;
    </content>
    <updated>2025-03-15T13:11:56Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsvrjztk3snaam5yvv453gvuskeqrhvrdv6cxhvusp7fsymmkjepuqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu20kwh</id>
    
      <title type="html">All your apps have Mac-style titlebars now - is that being ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsvrjztk3snaam5yvv453gvuskeqrhvrdv6cxhvusp7fsymmkjepuqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazu20kwh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9kzu833c9ga6uakgzj45ynn5v7w8pgqdp9mng346we3s3e6rggmgneryjq&#39;&gt;nevent1q…ryjq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;All your apps have Mac-style titlebars now - is that being provided by some kind of window manager, or is each app drawing its own?
    </content>
    <updated>2025-03-09T06:17:24Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs0urq6p0chlppjunq47yhpp8fetu7q6te7tr9xmhujcmj2kec8rjgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazcd52d4</id>
    
      <title type="html">When you say &amp;#34;so much effort was put into making it ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs0urq6p0chlppjunq47yhpp8fetu7q6te7tr9xmhujcmj2kec8rjgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazcd52d4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs030f5ly0sa4ddu5dac0cjpjsr0jd3cwxck8xqqgf90jtppp20fvcmgxk3v&#39;&gt;nevent1q…xk3v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;When you say &amp;#34;so much effort was put into making it hypercard-like by intentionally stripping away features&amp;#34;, do you mean *you* had to put in effort, which was discouraging, or the creator of Decker had put in effort that you had to work around?&lt;br/&gt;&lt;br/&gt;I kind of like how hermetically-sealed Decker decks are, so I can download a deck off the Internet and be pretty confident it isn&amp;#39;t going to ransack my browser cookies, and I can give a deck to somebody else and be confident I haven&amp;#39;t left any links to `file://C|/Users/MyName/` that will be broken on their machine. But I&amp;#39;m thinking of things like Celsius/Fahrenheit converters or adventure games; if you wanted to make an app that read documents from disk and saved them back out, I can imagine that would be a pain, yeah.
    </content>
    <updated>2025-02-16T00:33:23Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsdjqs3ev228nf9ptr2tyexzyxz0c9hy70a7x7zlm5vl26w5fnjq5szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazee4jd7</id>
    
      <title type="html">Makes me wish Decker had a native Android runtime. ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsdjqs3ev228nf9ptr2tyexzyxz0c9hy70a7x7zlm5vl26w5fnjq5szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazee4jd7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsylfpjr5vhtex6kedj4qf8c7jw223t73gwjj5x3mx9hq7x3rf96tgu0h9wy&#39;&gt;nevent1q…h9wy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Makes me wish Decker had a native Android runtime.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://beyondloom.com/decker/&#34;&gt;https://beyondloom.com/decker/&lt;/a&gt;
    </content>
    <updated>2025-02-15T09:46:37Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsylfpjr5vhtex6kedj4qf8c7jw223t73gwjj5x3mx9hq7x3rf96tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2m0mtc</id>
    
      <title type="html">I&amp;#39;m watching Bill Atkinson talking about 25 years of ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsylfpjr5vhtex6kedj4qf8c7jw223t73gwjj5x3mx9hq7x3rf96tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2m0mtc" />
    <content type="html">
      I&amp;#39;m watching Bill Atkinson talking about 25 years of Hypercard and being simultaneously impressed and depressed. I&amp;#39;ve definitely felt the joy of making a little software widget that did exactly what I wanted, and also the frustration that there&amp;#39;s not really anything like that today—at least not without a custom build and deployment system, a quarter-gigabyte runtime, and ten-second startup.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://dialup.cafe/@vga256/114004724719847054&#34;&gt;https://dialup.cafe/@vga256/114004724719847054&lt;/a&gt;
    </content>
    <updated>2025-02-15T09:38:17Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsylt96t6f9sqg6eaauauy2p0enh05yrelw3lcl6fratxxtr0r8v7czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz79r7eu</id>
    
      <title type="html">I had a similar experience with IRC and Usenet - discovering ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsylt96t6f9sqg6eaauauy2p0enh05yrelw3lcl6fratxxtr0r8v7czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz79r7eu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8d7tktanj6gfsc9gjtvppnkgyr0fqx5c773mgd8wyz78mfgpkw5q7j24pc&#39;&gt;nevent1q…24pc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I had a similar experience with IRC and Usenet - discovering people of different ages from all walks of life chatting about things that interested me, and learning about who I was outside the expectations of my parents and teachers. In a way, although I was born in the real world, I grew up on the Internet.&lt;br/&gt;&lt;br/&gt;Rather than 4chan-style anonymity, where nobody can be identified or distinguished, I think pseudonymity is important for people discovering themselves—giving (good faith) actors the ability to build a reputation and have something to worth defending, encouraging them to continue to act in good faith.
    </content>
    <updated>2025-02-09T06:05:10Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9qkk0cmvpdfdmje9sdtdkx0n4r8mr2vcrt0y2lf0mxdmx3cywkzgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazkc8apx</id>
    
      <title type="html">Good luck with finding the font! For a completely unknown ROM ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9qkk0cmvpdfdmje9sdtdkx0n4r8mr2vcrt0y2lf0mxdmx3cywkzgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazkc8apx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq6naqp9fhl9glddpatzgh7xu8w9ld5q8ke44c7pw8xmvd2ky34ngu3lm45&#39;&gt;nevent1q…lm45&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Good luck with finding the font!&lt;br/&gt;&lt;br/&gt;For a completely unknown ROM image, you might want to start with a tool that shows individual bits in the dump, and lets you change the start and wrapping width to look for patterns that line up. If you happen to already know the dimensions of each character, that&amp;#39;ll help a lot.
    </content>
    <updated>2025-01-25T00:14:58Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfk9g7tfx65rhca4nyt495r779x02gnuscg8eudnuh45pzk47d2ggzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazl968n7</id>
    
      <title type="html">The 6809 was in the Tandy Color Computer; I believe the original ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfk9g7tfx65rhca4nyt495r779x02gnuscg8eudnuh45pzk47d2ggzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazl968n7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8rtu7eh22vr7pjrpqc7e3fv9aategzu92ljqecqeugg5945qxhtqqjv248&#39;&gt;nevent1q…v248&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The 6809 was in the Tandy Color Computer; I believe the original Tandy TRS-80 used a Z-80, but given that RadioShack seemed to slap the &amp;#34;TRS-80&amp;#34; brand on anything with a CPU regardless of compatibility, I guess there might be 6809-based TRS-80s out there somewhere.
    </content>
    <updated>2025-01-25T00:09:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs25srpezk8vpw35amgxkjysqsdr673k5sa39ldmdwqay5auzqamcszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhu6hl6</id>
    
      <title type="html">I don&amp;#39;t have a complete answer, but I think part of the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs25srpezk8vpw35amgxkjysqsdr673k5sa39ldmdwqay5auzqamcszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhu6hl6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfz8uzmap7tgf096a5rhhuwrgrv8jef4wv4elrcxxd33ym5jzp8xgl6z4qp&#39;&gt;nevent1q…z4qp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t have a complete answer, but I think part of the answer is &amp;#34;friction&amp;#34;. I think the lesson of the original Usenet, email, Twitter, and Facebook is that if you allow any person in the world to effortlessly communicate with any other person in the world, what you get is a whole lot of noise. Even systems like Reddit have problems with &amp;#34;brigading&amp;#34; where, because somebody with a Reddit account can interact with any subreddit at any time, people in one group can talk amongst themselves and decide they&amp;#39;re all going to visit some other group and harass them.&lt;br/&gt;&lt;br/&gt;At the same time, it&amp;#39;s incredibly valuable to be able to communicate with and learn from other people with different perspectives and experiences, and not to be discarded lightly.&lt;br/&gt;&lt;br/&gt;And so, friction. Don&amp;#39;t make communication impossible, just put up some hurdles to clear. Maybe that&amp;#39;s rate-limiting for sign-ups or posts. Maybe that&amp;#39;s an &amp;#34;enforced lurking&amp;#34; period where you have to spend some time reading before you can post. Maybe that&amp;#39;s a &amp;#34;sponsor&amp;#34; system where a new member must be invited by an existing member of good standing. Maybe that&amp;#39;s a sign at the entrance of the alleyway saying &amp;#34;no tourists&amp;#34;. Maybe every tomo community should be able to choose their own.&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t know what the correct answer is, or if there even is one, but I&amp;#39;m pretty sure friction will be part of it.
    </content>
    <updated>2025-01-23T01:04:11Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqzg4sy6cz6nvjayv8pazpcvrwkj5jyyplemy7vk4td904hfs5tdczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazulqh0t</id>
    
      <title type="html">If you&amp;#39;ve ever wondered what it would be like to be inside a ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqzg4sy6cz6nvjayv8pazpcvrwkj5jyyplemy7vk4td904hfs5tdczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazulqh0t" />
    <content type="html">
      If you&amp;#39;ve ever wondered what it would be like to be inside a bag of cornflakes, Wikipedia provides a 360° panoramic photograph to inspire you:&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://en.wikipedia.org/wiki/File:Inside_a_cornflakes_bag_%E2%80%93_360%C2%B0_photo.jpg&#34;&gt; 
    </content>
    <updated>2025-01-18T11:07:51Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswq2wtcfhxwjqk9ymnpf90gw07nj3n64mck2nr4xncaan273720sszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazjd7ekx</id>
    
      <title type="html">Fascinating! The original VT320 fonts are 15x12 or 9x12, and ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswq2wtcfhxwjqk9ymnpf90gw07nj3n64mck2nr4xncaan273720sszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazjd7ekx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsys70qp3e3x6k3pyknyddl4vlr0247z72hnza58t2h2352sktl3fcg4395d&#39;&gt;nevent1q…395d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Fascinating! The original VT320 fonts are 15x12 or 9x12, and neither of those measurements match any of the ones in your screenshot. I wonder what makes those &amp;#34;VT320&amp;#34; fonts, then? Is it just the character set? The encoding?&lt;br/&gt;&lt;br/&gt;If you want to mess with converting fonts, I recommend the Java tool &amp;#34;Bits &amp;#39;n&amp;#39; Picas&amp;#34;; it&amp;#39;s what I&amp;#39;ve been using for converting BDF to crisp, pixelly TTF files.
    </content>
    <updated>2025-01-18T07:49:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqstf8zrfafgssp2nyclntdkeec9sf27vkvxqjhyze5s0cezn6g3lkczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazr7gaca</id>
    
      <title type="html">Are you nostalgic for using a CRT terminal in the 90s? Or maybe ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqstf8zrfafgssp2nyclntdkeec9sf27vkvxqjhyze5s0cezn6g3lkczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazr7gaca" />
    <content type="html">
      Are you nostalgic for using a CRT terminal in the 90s? Or maybe curious about what things looked like before high-DPI displays and true-colour graphics? I&amp;#39;ve extracted the fonts from the firmware of the DEC VT320, a CRT terminal first produced in 1987, and turned them into crisp TrueType fonts you can use today.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://gitlab.com/Screwtapello/vt320-font-extractor/-/blob/main/README.md?ref_type=heads&#34;&gt;https://gitlab.com/Screwtapello/vt320-font-extractor/-/blob/main/README.md?ref_type=heads&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Includes fonts from both firmware v1.1 and v1.2; both the 80-column and (condensed) 132-column variants; and both &amp;#34;aspect-corrected&amp;#34; versions (that will work nicely in a terminal emulator or word-processor), and &amp;#34;raw&amp;#34; versions with the exact original pixels (so you can do the aspect-correction yourself with GPU shaders or Photoshop or whatever). The raw fonts are also available in BDF format if you want the *exact* original pixels.&lt;br/&gt;&lt;br/&gt;#retrocomputing #typography&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/848/235/769/867/655/original/d3a82252f1a02a9e.jpg&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-01-18T07:43:36Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsfznuhp2ssa4hh4zzsuxes0wr2tmmdn00slknwreq97ghca80lduszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfztja5</id>
    
      <title type="html">Incidentally, from that screenshot we can demonstrate that ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsfznuhp2ssa4hh4zzsuxes0wr2tmmdn00slknwreq97ghca80lduszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfztja5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2trg047vkquyv320v8xycmj4wnpknjp6zrx37t6a39f2964wxqqqzjxru0&#39;&gt;nevent1q…xru0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Incidentally, from that screenshot we can demonstrate that LGR&amp;#39;s VT320 has firmware v1.1, since the bottom of &amp;#34;t&amp;#34; is slightly curved. On firmware v1.2, it&amp;#39;s a crisp right-angle.
    </content>
    <updated>2025-01-18T05:30:27Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2trg047vkquyv320v8xycmj4wnpknjp6zrx37t6a39f2964wxqqqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazmjvzms</id>
    
      <title type="html">I found some close-up shots of a real VT320 in ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2trg047vkquyv320v8xycmj4wnpknjp6zrx37t6a39f2964wxqqqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazmjvzms" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs03v5yxxqnutqt53r40dplpfztpfna07csxwnx7ntha8k7lqnl7vga2q9hg&#39;&gt;nevent1q…q9hg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I found some close-up shots of a real VT320 in &lt;a href=&#34;https://www.youtube.com/watch?v=RuZUPpmXfT0&#34;&gt;https://www.youtube.com/watch?v=RuZUPpmXfT0&lt;/a&gt; at 9:31.&lt;br/&gt;&lt;br/&gt;You can *just about* see a gap in the top scanlines of &amp;#34;r&amp;#34; and &amp;#34;n&amp;#34;, and between the bottom of the bowl of &amp;#34;g&amp;#34; and the stem.&lt;br/&gt;&lt;br/&gt;Looking at the same text in the font extracted from the firmware, we can see that those gaps are 1px wide, so I&amp;#39;m pretty confident it didn&amp;#39;t use pixel doubling.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/847/707/802/263/426/original/2da986ad0f061ff4.png&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/847/707/800/261/165/original/ed7dffb7f00a49bd.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-01-18T05:29:20Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9v4yraldlxehg5wukuu6htd5sadg60ysp0u5e80nvfh0atzxgahczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz8pjexl</id>
    
      <title type="html">I don&amp;#39;t think that applies to the VT320. For one, it&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9v4yraldlxehg5wukuu6htd5sadg60ysp0u5e80nvfh0atzxgahczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz8pjexl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs932wsxh85c6dp33e4wxa60hmpued2c8sds2kd6ce74pkl6h29wkq3qg66d&#39;&gt;nevent1q…g66d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t think that applies to the VT320. For one, it&amp;#39;s not mentioned on the page. For two, the VT220 glyphs are drawn with single pixel lines and need to be doubled to be legible; the VT320 glyphs are already drawn with two pixel lines.&lt;br/&gt;&lt;br/&gt;I&amp;#39;d love to see a close up picture of an actual VT320&amp;#39;s textual output.
    </content>
    <updated>2025-01-17T23:38:31Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsyqgws2p9apse44eeljyqht9lkvxpthu8n7d2urj3gz5eqmavkwuczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazdj80j7</id>
    
      <title type="html">To help out @npub1yqw…ywz8 I&amp;#39;m writing a program to extract ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsyqgws2p9apse44eeljyqht9lkvxpthu8n7d2urj3gz5eqmavkwuczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazdj80j7" />
    <content type="html">
      To help out &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1yqwma5z0g73y9gvf0smayl9gfzakj7et7ldhc8km89gjs6vsgczqayywz8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;vga256&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1yqw…ywz8&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;  I&amp;#39;m writing a program to extract the font from the DEC VT320 firmware. It&amp;#39;s going pretty well, I&amp;#39;ve got all the glyphs for the 80-column mode, and I figured out how to correct for the VT320&amp;#39;s extremely non-square pixels, so it looks quite readable.&lt;br/&gt;&lt;br/&gt;#retrocomputing #typography #pixelfonts&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/838/078/894/117/460/original/941673e3566213c8.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-01-16T12:40:35Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs93n0ds63frsalnw60f3sx68sy2cq84gufjhrq5rqfqdlfc2yqxzczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz5ftvjf</id>
    
      <title type="html">I can load all the glyphs from both firmware revisions, in both ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs93n0ds63frsalnw60f3sx68sy2cq84gufjhrq5rqfqdlfc2yqxzczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz5ftvjf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs82hwjc75u4uqjmna8dsrqj2635klvxalu3nezyrundmnfdc2j6sq4752p5&#39;&gt;nevent1q…52p5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I can load all the glyphs from both firmware revisions, in both sizes, and both glyph tables, and I&amp;#39;ve figured out how to map them to Unicode code-points.&lt;br/&gt;&lt;br/&gt;Next step is writing out a BDF file, but right now I&amp;#39;ve got to sleep.&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/826/707/362/003/824/original/14e0d7b8feb153ac.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2025-01-14T12:28:39Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs82hwjc75u4uqjmna8dsrqj2635klvxalu3nezyrundmnfdc2j6sqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazxjsuw0</id>
    
      <title type="html">The vt100.net page that vga256 found seems to describe the ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs82hwjc75u4uqjmna8dsrqj2635klvxalu3nezyrundmnfdc2j6sqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazxjsuw0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsydcpjwmrfc7v0s2zd6w94hc8vuq936yd94u76aa23l078sh8ryzgtd36jl&#39;&gt;nevent1q…36jl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The vt100.net page that vga256 found seems to describe the compression method, I&amp;#39;m going to try it and see what I get.
    </content>
    <updated>2025-01-14T09:15:07Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs2q8eu626dwyf5mcjpd0uh040sz7cuwc2wlew5agds3rl0d5fhggqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz8gu5de</id>
    
      <title type="html">Here&amp;#39;s the data in a machine-readable format: ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs2q8eu626dwyf5mcjpd0uh040sz7cuwc2wlew5agds3rl0d5fhggqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz8gu5de" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp3mlp7540zs3erqfqzj3ng45l54k5hj0s6cvwgjxlkn2643xk8pcqt2evq&#39;&gt;nevent1q…2evq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s the data in a machine-readable format: &lt;a href=&#34;https://github.com/robhagemans/hoard-of-bitfonts/blob/master/dec/vt320.yaff&#34;&gt;https://github.com/robhagemans/hoard-of-bitfonts/blob/master/dec/vt320.yaff&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;d be surprised if there were a separate font for the 132 column mode, I&amp;#39;d expect it to use the same glyphs but change the pixel clock to fit more pixels per line.
    </content>
    <updated>2025-01-13T23:11:50Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs9jkqdjdrvlc9t650h6wjja6s469jqtc6kavkyaks8eu5r838kmaczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazc5xtl3</id>
    
      <title type="html">eXiGY seems pretty cool, but I&amp;#39;m *really* curious about Tomo.</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs9jkqdjdrvlc9t650h6wjja6s469jqtc6kavkyaks8eu5r838kmaczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazc5xtl3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstal9tt94j3u97hskkhg7g6m29568cuceayzqhje9qnwjm8mqarsc5l2qh5&#39;&gt;nevent1q…2qh5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;eXiGY seems pretty cool, but I&amp;#39;m *really* curious about Tomo.
    </content>
    <updated>2025-01-05T05:44:58Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsp3py3297rycqcq3qfexngarqasd3wezrhwt5d9zl5vf45gfvt5mszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhluwz7</id>
    
      <title type="html">&amp;#34;util-linux (2.40.2-11) unstable; urgency=medium The mesg(1) ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsp3py3297rycqcq3qfexngarqasd3wezrhwt5d9zl5vf45gfvt5mszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhluwz7" />
    <content type="html">
      &amp;#34;util-linux (2.40.2-11) unstable; urgency=medium&lt;br/&gt;&lt;br/&gt;The mesg(1) and write(1) programs are no longer provided. It is believed chatting between users is nowadays done using more secure facilities.&amp;#34;&lt;br/&gt;&lt;br/&gt;End of an era.
    </content>
    <updated>2024-11-16T04:44:40Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsqhv4xpxzl4kkvk6glmezu3nmtacu72l9495qkxvk7yh0l69nddqszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazxpgpqu</id>
    
      <title type="html">Today I learned that the first Super Mario Bros. romhack was ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsqhv4xpxzl4kkvk6glmezu3nmtacu72l9495qkxvk7yh0l69nddqszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazxpgpqu" />
    <content type="html">
      Today I learned that the first Super Mario Bros. romhack was released not in the 2000s, or the 1990s, but in 1987—two years after the game&amp;#39;s original release. It was called &amp;#34;Tonkachi Mario&amp;#34;. It wasn&amp;#39;t a modified EEPROM in a custom cartridge, it was a hacked version of the Famicom Disk System port of Super Mario Bros. Being stored on magnetic media made it a lot easier to edit.&lt;br/&gt;&lt;br/&gt;But wait, the Famicom Disk System used custom proprietary disks, how are you going to edit those?&lt;br/&gt;&lt;br/&gt;It turns out that Tonkachi Mario was actually the bundled demo that came with Tonkachi Editor, which was an unlicensed third-party tool that was basically a primitive hex editor for Famicom Disk System disks, operated by the regular Famicom controller.&lt;br/&gt;&lt;br/&gt;The Famicom Disk System came out in 1986, so within a year of it&amp;#39;s release, somebody reverse-engineered the drive, reverse-engineered the Famicom, wrote a toolchain to make their own custom programs, wrote a hex-editor, reverse-engineered Super Mario Bros. and made their own custom version. Oh, and Tonkachi Mario requires speedrunning tricks like glitching through walls to complete, so the creator had to have those skills too.&lt;br/&gt;&lt;br/&gt;I wouldn&amp;#39;t be surprised at somebody doing that *today* now that we have resources like the NESDev wiki and YouTube videos about how to get good at speedrunning tricks. But in 1987? Wow.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://glitchcat7.com/the-complete-history-of-kaizo-mario/&#34;&gt;https://glitchcat7.com/the-complete-history-of-kaizo-mario/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#retrogaming #romhacking #homebrew
    </content>
    <updated>2024-11-10T14:10:32Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqsrze9acw7mglk44myyt694927s92093p4var2vn67jk7gfdgzwavgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz3ndyte</id>
    
      <title type="html">The Video-Master&amp;#39;s Guide to Pac-Man, by Sykora and Birkner, ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqsrze9acw7mglk44myyt694927s92093p4var2vn67jk7gfdgzwavgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz3ndyte" />
    <content type="html">
      The Video-Master&amp;#39;s Guide to Pac-Man, by Sykora and Birkner, 1982&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://archive.org/details/book_vmg_pac-man/page/n1/mode/2up&#34;&gt;https://archive.org/details/book_vmg_pac-man/page/n1/mode/2up&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;#retrogaming&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/458/139/012/289/187/original/6dee92f9fdf854ab.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-11-10T10:16:52Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqswhywetm2ud3xh0x69pzz2yvnqmt4kefr3dgl00xspjcu0yrjllkczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazpqk3qe</id>
    
      <title type="html">When I was a kid, I played a game called *Keen Dreams* — a game ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqswhywetm2ud3xh0x69pzz2yvnqmt4kefr3dgl00xspjcu0yrjllkczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazpqk3qe" />
    <content type="html">
      When I was a kid, I played a game called *Keen Dreams* — a game in the Commander Keen series that Id Software did not publish through Apogee, so it didn&amp;#39;t get an official number. Keen gets sent to bed because he refused to eat his vegetables, and winds up in a nightmare facing all kinds of vegetable-themed enemies. The &amp;#34;BROCOLASH&amp;#34; is clearly a head-banging broccoli, the &amp;#34;TOMATOOTH&amp;#34; is just a tomato with teeth, etc. However, there&amp;#39;s one enemy I still don&amp;#39;t recognise, FRENCHY.&lt;br/&gt;&lt;br/&gt;I was going to guess &amp;#34;candy corn&amp;#34;, but the colours are wrong and that&amp;#39;s not really a vegetable. It might be &amp;#34;French Fry&amp;#34;, but what&amp;#39;s with the green bit? And all the other vegetables are fresh/unprocessed. And I think it lobs grenades or something? MELON LIPS spits melon seeds, which is very melon-themed; I don&amp;#39;t know why a French Fry would lob grenades.&lt;br/&gt;&lt;br/&gt;#retrogaming #commanderkeen #dosgaming&lt;br/&gt; &lt;img src=&#34;https://us-southeast-1.linodeobjects.com/teh-entar-net-mastodon-media/media_attachments/files/113/401/785/671/782/456/original/088200cde29b1bfd.png&#34;&gt; &lt;br/&gt;
    </content>
    <updated>2024-10-31T11:25:28Z</updated>
  </entry>

  <entry>
    <id>https://yabu.me/nevent1qqs8prjm6hxzvt9qrpjykkux724wp7p9qaz679jlpmtqlgeek2et67czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazaamyz3</id>
    
      <title type="html">The Dig was an iMuse game, I think? So the sound track should ...</title>
    
    <link rel="alternate" href="https://yabu.me/nevent1qqs8prjm6hxzvt9qrpjykkux724wp7p9qaz679jlpmtqlgeek2et67czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazaamyz3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvy49egcrm268xw2vcwnp9670ddtc3nhg6lj8frl9ej7g8t5uw7hgsrlpn5&#39;&gt;nevent1q…lpn5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The Dig was an iMuse game, I think? So the sound track should have been MIDI data, and probably designed to loop. Anyone who could extract the data could render it to audio for as long as they wanted.
    </content>
    <updated>2024-10-11T02:26:24Z</updated>
  </entry>

</feed>