<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: susam</title><link>https://news.ycombinator.com/user?id=susam</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 04:28:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=susam" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Andromeda Invaders: A retro-style game written in HTML5, Canvas and Web Audio]]></title><description><![CDATA[
<p>Article URL: <a href="https://codeberg.org/susam/invaders">https://codeberg.org/susam/invaders</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47732983">https://news.ycombinator.com/item?id=47732983</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Sat, 11 Apr 2026 18:44:34 +0000</pubDate><link>https://codeberg.org/susam/invaders</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47732983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47732983</guid></item><item><title><![CDATA[New comment by susam in "Bitmap fonts make computers feel like computers again"]]></title><description><![CDATA[
<p>A few years ago, when I wrote my own Invaders-like game [1], I was quite unhappy with the rendering quality of the HTML Canvas fillText() method. The antialiasing introduced multiple shades of green, whereas I wanted to render the text in a solid monochrome green while the glyphs retained their crisp, jagged edges.  Although `canvas { image-rendering: pixelated }` improved the crispness and jaggedness, it could not entirely eliminate the multiple shades of green.<p>I finally decided to take the matter into my own hands. I looked for IBM PC OEM fonts [2] and similar ones [3], stored the bitmaps as integer arrays within my code [2], and used them to render each character cell by cell.  I am very happy with the results.<p>It was a childhood dream of mine to write a game like this, but I did not have sufficient access to computers as a child.  So I could fulfil this dream only as an adult, a few years ago.  The implementation is very simple, and everything on the canvas, including the text, is drawn using fillRect().<p>By the way, if you happen to do something similar, I have made all the bitmaps available as integer arrays in a separate, standalone project [5].<p>[1] <a href="https://susam.net/invaders.html" rel="nofollow">https://susam.net/invaders.html</a><p>[2] <a href="https://int10h.org/oldschool-pc-fonts/fontlist/" rel="nofollow">https://int10h.org/oldschool-pc-fonts/fontlist/</a><p>[3] <a href="https://www.dafont.com/modern-dos.font" rel="nofollow">https://www.dafont.com/modern-dos.font</a><p>[4] <a href="https://codeberg.org/susam/invaders/src/branch/main/invaders.html#L1284-L1378" rel="nofollow">https://codeberg.org/susam/invaders/src/branch/main/invaders...</a><p>[5] <a href="https://codeberg.org/susam/pcface#readme" rel="nofollow">https://codeberg.org/susam/pcface#readme</a></p>
]]></description><pubDate>Thu, 09 Apr 2026 21:02:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47710057</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47710057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47710057</guid></item><item><title><![CDATA[The Hubble Space Telescope Optical Systems Failure Report (1990) [pdf]]]></title><description><![CDATA[
<p>Article URL: <a href="https://ntrs.nasa.gov/api/citations/19910003124/downloads/19910003124.pdf">https://ntrs.nasa.gov/api/citations/19910003124/downloads/19910003124.pdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47709083">https://news.ycombinator.com/item?id=47709083</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 09 Apr 2026 20:07:41 +0000</pubDate><link>https://ntrs.nasa.gov/api/citations/19910003124/downloads/19910003124.pdf</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47709083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47709083</guid></item><item><title><![CDATA[Wander Console 0.4.0]]></title><description><![CDATA[
<p>Article URL: <a href="https://susam.net/code/news/wander/0.4.0.html">https://susam.net/code/news/wander/0.4.0.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47646881">https://news.ycombinator.com/item?id=47646881</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 05 Apr 2026 07:03:18 +0000</pubDate><link>https://susam.net/code/news/wander/0.4.0.html</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47646881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47646881</guid></item><item><title><![CDATA[The Importance of Accurate Color Values (2019)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.outdoorpainter.com/accurate-color-values/">https://www.outdoorpainter.com/accurate-color-values/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47645323">https://news.ycombinator.com/item?id=47645323</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 05 Apr 2026 01:36:47 +0000</pubDate><link>https://www.outdoorpainter.com/accurate-color-values/</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47645323</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47645323</guid></item><item><title><![CDATA[New comment by susam in "The Indie Internet Index – submit your favorite sites"]]></title><description><![CDATA[
<p>Great to see another IndieWeb project on the HN front page. The more the merrier.  At this point, it almost feels like we need a meta-directory to keep track of them all.  For others like me who are fond of these projects, here are a few other directories and indices worth checking out:<p><a href="https://blogroll.org/" rel="nofollow">https://blogroll.org/</a><p><a href="https://blogs.hn/" rel="nofollow">https://blogs.hn/</a> (by @surprisetalk)<p><a href="https://hnpwd.github.io/" rel="nofollow">https://hnpwd.github.io/</a> (I am one of the maintainers)<p><a href="https://indieblog.page/" rel="nofollow">https://indieblog.page/</a> (by @splitbrain)<p><a href="https://kagi.com/smallweb/" rel="nofollow">https://kagi.com/smallweb/</a> (by @freediver)<p><a href="https://marginalia-search.com/" rel="nofollow">https://marginalia-search.com/</a> (by @marginalia_nu)<p><a href="https://minifeed.net/" rel="nofollow">https://minifeed.net/</a> (by @freetonik)<p><a href="https://susam.net/wander/" rel="nofollow">https://susam.net/wander/</a> (I developed this)<p><a href="https://text.blogosphere.app/" rel="nofollow">https://text.blogosphere.app/</a> (announced by @ramkarthikk on 'Show HN' yesterday)<p><a href="https://wiby.me/" rel="nofollow">https://wiby.me/</a></p>
]]></description><pubDate>Sat, 04 Apr 2026 21:25:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47643588</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47643588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47643588</guid></item><item><title><![CDATA[Wander Console 0.4.0]]></title><description><![CDATA[
<p>Article URL: <a href="https://susam.net/code/news/wander/0.4.0.html">https://susam.net/code/news/wander/0.4.0.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47640168">https://news.ycombinator.com/item?id=47640168</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 04 Apr 2026 15:56:52 +0000</pubDate><link>https://susam.net/code/news/wander/0.4.0.html</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47640168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47640168</guid></item><item><title><![CDATA[New comment by susam in "Artemis II crew take “spectacular” image of Earth"]]></title><description><![CDATA[
<p>Much higher quality images are available on the NASA Image Library:<p>Dark Side of the Earth: <a href="https://www.nasa.gov/image-detail/amf-art002e000193/" rel="nofollow">https://www.nasa.gov/image-detail/amf-art002e000193/</a><p>Hello World: <a href="https://www.nasa.gov/image-detail/fd02_for-pao/" rel="nofollow">https://www.nasa.gov/image-detail/fd02_for-pao/</a><p>On images-assets.nasa.gov, we can find the 5567x3712 resolution versions of these pictures:<p>Dark Side of the Earth: <a href="https://images-assets.nasa.gov/image/art002e000193/art002e000193~orig.jpg" rel="nofollow">https://images-assets.nasa.gov/image/art002e000193/art002e00...</a><p>Hello World: <a href="https://images-assets.nasa.gov/image/art002e000192/art002e000192~orig.jpg" rel="nofollow">https://images-assets.nasa.gov/image/art002e000192/art002e00...</a></p>
]]></description><pubDate>Fri, 03 Apr 2026 21:55:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47632844</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47632844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47632844</guid></item><item><title><![CDATA[New comment by susam in "Big-Endian Testing with QEMU"]]></title><description><![CDATA[
<p>I wrote a similar post [1] some 16 years ago.  My solution back then was to install Debian for PowerPC on QEMU using qemu-system-ppc.<p>But Hans's post uses user-mode emulation with qemu-mips, which avoids having to set up a whole big-endian system in QEMU.  It is a very interesting approach I was unaware of.  I'm pretty sure qemu-mips was available back in 2010, but I'm not sure if the gcc-mips-linux-gnu cross-compiler was readily available back then.  I suspect my PPC-based solution might have been the only convenient way to solve this problem at the time.<p>Thanks for sharing it here.  It was nice to go down memory lane and also learn a new way to solve the same problem.<p>[1] <a href="https://susam.net/big-endian-on-little-endian.html" rel="nofollow">https://susam.net/big-endian-on-little-endian.html</a></p>
]]></description><pubDate>Fri, 03 Apr 2026 16:59:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47629141</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47629141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47629141</guid></item><item><title><![CDATA[New comment by susam in "Show HN: I built a frontpage for personal blogs"]]></title><description><![CDATA[
<p>This is a very nice project! Thank you for creating it and sharing it here on HN. I like the minimal version more but the modern version is quite nice too. I would probably stick to the minimal version but since it seems to lack the search feature I end up using the modern version for that.<p>By the way, some minor issues I found:<p>1. In the minimal version, when browsing the list of blogs I cannot get past page 12. The last page the UI lets me navigate to is <a href="https://text.blogosphere.app/blogs-12" rel="nofollow">https://text.blogosphere.app/blogs-12</a> which shows blogs up to names starting with 'M'.  I can reach page 13 by manually editing the URL to <a href="https://text.blogosphere.app/blogs-13" rel="nofollow">https://text.blogosphere.app/blogs-13</a> which shows two blogs starting with 'N'.  However, pages 14 and beyond just load the home page.  Surely there are more blogs with names starting with 'O', 'P', etc.?<p>2. The modern version at <a href="https://blogosphere.app/" rel="nofollow">https://blogosphere.app/</a> uses infinite scroll, which makes it impossible to reach the footer.  Each time I scroll down, more content loads and pushes the footer further away.  I was only able to view the footer by modifying the DOM in the browser's developer tools.  It would be nice if there were a straightforward way to access the footer.</p>
]]></description><pubDate>Fri, 03 Apr 2026 16:31:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47628762</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47628762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47628762</guid></item><item><title><![CDATA[The Genuine Sieve of Eratosthenes (2009) [pdf]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf">https://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47608973">https://news.ycombinator.com/item?id=47608973</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Apr 2026 01:31:25 +0000</pubDate><link>https://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47608973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47608973</guid></item><item><title><![CDATA[ASCII Might Fly]]></title><description><![CDATA[
<p>Article URL: <a href="https://adelfaure.net/artware/ascii_might_fly/">https://adelfaure.net/artware/ascii_might_fly/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47580252">https://news.ycombinator.com/item?id=47580252</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 30 Mar 2026 22:01:00 +0000</pubDate><link>https://adelfaure.net/artware/ascii_might_fly/</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47580252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47580252</guid></item><item><title><![CDATA[Why Island Hop on the Classic Web?]]></title><description><![CDATA[
<p>Article URL: <a href="https://cornbreadjournals.com/web/">https://cornbreadjournals.com/web/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47555429">https://news.ycombinator.com/item?id=47555429</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 28 Mar 2026 15:23:37 +0000</pubDate><link>https://cornbreadjournals.com/web/</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47555429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47555429</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>@dvh Done as part of <<a href="https://codeberg.org/susam/wander/commit/8e901ce" rel="nofollow">https://codeberg.org/susam/wander/commit/8e901ce</a>>.  Thank you for the great suggestion.</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:57:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479525</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47479525</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479525</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>Hello @deanebarker, This was implemented in <<a href="https://codeberg.org/susam/wander/commit/f952fe4" rel="nofollow">https://codeberg.org/susam/wander/commit/f952fe4</a>>.  If you visit <<a href="https://susam.net/wander/" rel="nofollow">https://susam.net/wander/</a>> now, you should see an 'Open' button that opens the recommended website in a new tab.  Thank you for the great suggestion!</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:52:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479471</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47479471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479471</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>To add to this fine suggestion, I'd like to highlight that Wander supports customising the appearance of the user interface.<p>The section <a href="https://codeberg.org/susam/wander#customise-your-console" rel="nofollow">https://codeberg.org/susam/wander#customise-your-console</a> describes how someone setting their own /wander URL can customise how their console looks and behaves.  I have seen a few consoles already using this feature to change their theme.<p>So while I will keep my console as it is, because that is how I prefer it, with large buttons occupying the full header width, others who prefer a different layout can do so by adding custom CSS as described in the link above.</p>
]]></description><pubDate>Sun, 22 Mar 2026 16:49:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47479426</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47479426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47479426</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>Thank you.  This makes a lot of sense.  I need to think it through since 'let' is one of the things about modern JavaScript that I quite like, so I need to decide whether I really want to go back to using 'var' again.<p>To be honest, I resisted adopting ES6 features for quite a long time because I was concerned about exactly this kind of situation, where a modern feature might not work in an older browser that is still in use.  However, in 2022, prompted by ESLint's no-var rule [1], I began using ES6 features in my code [2].  Now I find myself wondering whether my earlier, more conservative approach to JavaScript might have been the better approach.<p>In any case, thank you very much for following up on this thread.  It has given me something to think about.<p>[1] <a href="https://eslint.org/docs/latest/rules/no-var" rel="nofollow">https://eslint.org/docs/latest/rules/no-var</a><p>[2] <a href="https://codeberg.org/susam/texme/commit/8e31dbf" rel="nofollow">https://codeberg.org/susam/texme/commit/8e31dbf</a></p>
]]></description><pubDate>Fri, 20 Mar 2026 00:54:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47448839</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47448839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47448839</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>Hello @superkuh, if you happen to revisit this, could you let me know which browser and version you were using? It would help me decide how far back I should support.</p>
]]></description><pubDate>Fri, 20 Mar 2026 00:17:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47448476</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47448476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47448476</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>> If that's not desirable, it could be avoided by having the client keep a running list of all the consoles it has discovered this session and choosing from that list at random.<p>Implemented in <<a href="https://codeberg.org/susam/wander/commit/f4d95fa" rel="nofollow">https://codeberg.org/susam/wander/commit/f4d95fa</a>>. Thanks again for the discussion!</p>
]]></description><pubDate>Thu, 19 Mar 2026 05:05:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47435181</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47435181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47435181</guid></item><item><title><![CDATA[New comment by susam in "Wander – A tiny, decentralised tool to explore the small web"]]></title><description><![CDATA[
<p>If you are on a computer, you might be able to see the previous links that were loaded in your web browser's Developer Tools > Console.  The Wander console tool writes logs there to describe what it is doing internally.</p>
]]></description><pubDate>Thu, 19 Mar 2026 03:04:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47434395</link><dc:creator>susam</dc:creator><comments>https://news.ycombinator.com/item?id=47434395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47434395</guid></item></channel></rss>