<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-07-27T17:31:49&#43;02:00</updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by Screwtapello</title>
  <author>
    <name>Screwtapello</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub18eedjkzfyggqa7pwjpyn0xcj8wmh648hd0m8kmw4urc2n99ym0gs0w5xqg.rss" />
  <link href="https://nostr.ae/npub18eedjkzfyggqa7pwjpyn0xcj8wmh648hd0m8kmw4urc2n99ym0gs0w5xqg" />
  <id>https://nostr.ae/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://nostr.ae/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://nostr.ae/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-21T03:58:11&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-27T16:16:50&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfej4ls0wqac29c87h733lfa7u2te0sr25cuve2523erjg6lpladqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2rkp2d</id>
    
      <title type="html">has a small-but-flexible website engine called &amp;#34;kiki&amp;#34; ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-21T11:12:27&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf03ww7r87sqn6j89gntmsk79ar23t928eycqt3zd22lvk4a4hzlczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazs0dfsn</id>
    
      <title type="html">I didn&amp;#39;t realise Microsoft had leaned so hard into custom ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-12T05:10:46&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqszhtj0cluwpmf73zyfc5stjly5e5srcdg3dsluu9ajlp9dlfmh7aczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz88g0nd</id>
    
      <title type="html">Even less obvious than that, I changed the way the corners of the ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-06T11:13:05&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsf02w9wmvggvt9au50ky226yttfaguxc2jnktpqwks89canwnwmcczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazlfjgfu</id>
    
      <title type="html">A number of changes since the last post: - I added more room at ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-06T10:50:31&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs0nuqmnqhyz9n8pyq2889rumpksew78dapvvcwu9x2zjuse3qrxqgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazks6g7y</id>
    
      <title type="html">After a little confusion and a lot of yak shaving, I now think ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-21T15:02:53&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsqagqtxepuf5m8d4mvy8n5w5ukn2dwfv3f2mxhce0h0k24y8ny6gszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazua5424</id>
    
      <title type="html">Out of curiosity, where did you get authoritative cycle counts?</title>
    
    <link rel="alternate" href="https://nostr.ae/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-20T09:57:11&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvz3q5v6nsk9n08lj00kujs2vzg5qp0j5xgk24h0q772at79gukkszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgkzs7r</id>
    
      <title type="html">Tonight I finally got around to investigating the button-spacing ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-19T17:23:05&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsxr85f0y5w9tvmr95aulqxxjuse8esxc7uqx30e7kzvmdlhasa8egzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazf25yj7</id>
    
      <title type="html">I finally wrote the code that combines the &amp;#34;button ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-20T15:35:01&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-01T13:21:10&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-19T12:03:16&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-15T15:14:37&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsd35az93dmlc8ewp8h35zqkgkz76hgp00265pjf0u2ppgl0mqkx2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz7maeny</id>
    
      <title type="html">I&amp;#39;m probably not going to make Decker my primary development ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-15T10:59:19&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-15T10:58:23&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsvtsfgkkkmsqqg564j8y40hgjmhct4pwuceskpqgeas07r8rqsv2czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazgmnr2y</id>
    
      <title type="html">So I created a deck with the intention that it would just contain ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-15T10:47:25&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsrj5sex55vh2vnlz2px79ymgw8jezsclmwhqftgws5udg0s3490tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazucl4gh</id>
    
      <title type="html">Unfortunately, it turns out there&amp;#39;s some significant ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-15T10:34:54&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-15T10:16:56&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-15T10:14:29&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsv063k53zrspee6pq5s6n7ndeay8cegfn389v4vf27khksmf2f8cczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazhqkvuh</id>
    
      <title type="html">A free download of a password-protected zip file. :/</title>
    
    <link rel="alternate" href="https://nostr.ae/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-02T02:25:38&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8een5kyyx2fze7exh70y4njyznc204r6jd0kd7vtgt9msthqsseczyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz23hrdd</id>
    
      <title type="html">Free42, the Free Software re-implementation of the classic HP 42s ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-31T09:54:03&#43;02:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsdjqs3ev228nf9ptr2tyexzyxz0c9hy70a7x7zlm5vl26w5fnjq5szyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazee4jd7</id>
    
      <title type="html">Makes me wish Decker had a native Android runtime. ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-15T10:46:37&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsylfpjr5vhtex6kedj4qf8c7jw223t73gwjj5x3mx9hq7x3rf96tgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndaz2m0mtc</id>
    
      <title type="html">I&amp;#39;m watching Bill Atkinson talking about 25 years of ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-15T10:38:17&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs9qkk0cmvpdfdmje9sdtdkx0n4r8mr2vcrt0y2lf0mxdmx3cywkzgzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazkc8apx</id>
    
      <title type="html">Good luck with finding the font! For a completely unknown ROM ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-25T01:14:58&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-23T02:04:11&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqsfznuhp2ssa4hh4zzsuxes0wr2tmmdn00slknwreq97ghca80lduszyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazfztja5</id>
    
      <title type="html">Incidentally, from that screenshot we can demonstrate that ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-18T06:30:27&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs2trg047vkquyv320v8xycmj4wnpknjp6zrx37t6a39f2964wxqqqzyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazmjvzms</id>
    
      <title type="html">I found some close-up shots of a real VT320 in ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-18T06:29:20&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-18T00:38:31&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/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://nostr.ae/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-31T12:25:28&#43;01:00</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs8prjm6hxzvt9qrpjykkux724wp7p9qaz679jlpmtqlgeek2et67czyql89k2cfy3pqrhc96gyjdumzgamwl257a4lv7md6hs0p2v55ndazaamyz3</id>
    
      <title type="html">The Dig was an iMuse game, I think? So the sound track should ...</title>
    
    <link rel="alternate" href="https://nostr.ae/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-11T04:26:24&#43;02:00</updated>
  </entry>

</feed>