<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: cyco130</title><link>https://news.ycombinator.com/user?id=cyco130</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 11 Sep 2026 09:55:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cyco130" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cyco130 in "Show HN: Sfotty Pie – A browser-based Atari 8-bit emulator in TypeScript"]]></title><description><![CDATA[
<p>I've heard of it, of course! And of course they're years ahead of my little hobby project.<p>But there's an important difference: They run on the browser via WebAssembly, the project is in Rust. Sfotty Pie is pure TypeScript, so, hopefully, easier to hack for a greater number of people. Also harder to make performant but why do we have all this CPU power if not to emulate 1.79 MHz machines using high-level languages :)</p>
]]></description><pubDate>Sat, 11 Jul 2026 15:57:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48873153</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48873153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48873153</guid></item><item><title><![CDATA[Show HN: Sfotty Pie – A browser-based Atari 8-bit emulator in TypeScript]]></title><description><![CDATA[
<p>Hi HN! This is my little tribute to the machine that started it all for me. I first shared it publicly some five years ago when it was only able to run Atari BASIC. Today it's in a much more usable state where most games work with highly accurate video and audio, even on a phone.<p>Highlights:<p>* Almost every component is cycle-exact. The CPU passes the SingleStepTests/65x02 suite with a perfect score and the emulator scores 53/57 on Altirra's Acid800 suite. The biggest gap is serial I/O, which is currently emulated by trapping calls to the OS. Other than that, the emulation is pretty "literal", favoring code clarity over performance.<p>* It ships with open-source replacement ROMs from the Altirra and Atari++ projects, so it boots to a working machine without copyrighted Atari firmware. You can drop your own ROMs and disk images into the library. They stay entirely in your browser (IndexedDB), nothing is uploaded anywhere. It's a completely static site.<p>* It emulates the entire Atari 8-bit family (400/800, XL/XE, XEGS, but not 5200) with configurable RAM size. All the components (ANTIC, GTIA, POKEY, PIA) are emulated and cycle-exact. You can select between NTSC and PAL with customizable palettes for each. False colors (artifacting) are not emulated yet.<p>* Emulates the keyboard (BEWARE, it steals a lot of browser shortcuts), joysticks (via keyboard, gamepad, or an on-screen touch joystick for mobile), most types of cartridges, and non-copy-protected disk images (.atr, only disk 1 for now). It can also directly boot executables (.xex) by generating a boot disk on the fly.<p>* The UI is still rough and largely vibe-coded. It includes a command palette, custom shortcuts, and a "couch picker" to launch games from your library with a gamepad without leaving the couch.<p>It's MIT-licensed with all source available on GitHub.<p>Getting started: <a href="https://a8.aygun.me/a8/docs" rel="nofollow">https://a8.aygun.me/a8/docs</a>
GitHub: <a href="https://github.com/cyco130/sfotty-pie" rel="nofollow">https://github.com/cyco130/sfotty-pie</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48871669">https://news.ycombinator.com/item?id=48871669</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Sat, 11 Jul 2026 12:58:35 +0000</pubDate><link>https://a8.aygun.me</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48871669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48871669</guid></item><item><title><![CDATA[New comment by cyco130 in "Does anybody like React?"]]></title><description><![CDATA[
<p>I can see where the arguments for React's alternatives like Preact, Vue, Svelte, Solid, etc. come from. All of them are better than React at least in one aspect and React's dominance is mostly due to inertia: Developers (and now LLMs) know it better and the ecosystem is richer.<p>But having built websites and apps since before jQuery times, I strongly disagree with manual DOM manipulation as an alternative. Declarative, component-based approach won for a reason. These frameworks allow you to tell how the UI should look based on the state and manages the transition (either via virtual DOM diffing or fine-grained reactivity) for you. DOM manipulation requires you to write some code for every single state transition (instead of every _state_). And, in practice, it becomes unmanageable very fast, and you give up, and start writing code like `element.innerHTML = ...`, causing problems with focus and event management. It's fine for small widgets, even enjoyable, but only until you need to manage a complex UI. Then, you end up with a mess of code that is hard to maintain and debug.<p>I know some still feel web is not the right platform for building complex UIs but that battle was lost more than two decades ago. Web is good. It comes with accessibility features (like zooming) and works everywhere. As someone with age-related farsightedness, I hate native apps that don't allow me to zoom in with a passion (which is, almost all of them). Of course I hate websites that don't allow me to zoom even more because they had to go out of their way to disable a basic browser feature. But getting decent accessibility is harder with native apps. You basically have to build everything yourself. Web gets you 90% there for free.<p>React might not be the best out there and might be, one day, replaced by one of the competitors or something new. But declarative, component-based UI development is not going anywhere.</p>
]]></description><pubDate>Tue, 26 May 2026 09:27:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48277239</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48277239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48277239</guid></item><item><title><![CDATA[An AI system to help scientists write expert-level empirical software]]></title><description><![CDATA[
<p>Article URL: <a href="https://arxiv.org/abs/2509.06503">https://arxiv.org/abs/2509.06503</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48236239">https://news.ycombinator.com/item?id=48236239</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 22 May 2026 14:21:03 +0000</pubDate><link>https://arxiv.org/abs/2509.06503</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48236239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48236239</guid></item><item><title><![CDATA[Tailwind: Suffering from Success]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.sebin-nyshkim.net/posts/tailwind-suffering-from-success/">https://blog.sebin-nyshkim.net/posts/tailwind-suffering-from-success/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48221711">https://news.ycombinator.com/item?id=48221711</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 21 May 2026 12:40:28 +0000</pubDate><link>https://blog.sebin-nyshkim.net/posts/tailwind-suffering-from-success/</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48221711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48221711</guid></item><item><title><![CDATA[New comment by cyco130 in "Incident Report: May 19, 2026 – GCP Account Suspension"]]></title><description><![CDATA[
<p>And this is Railway, a big enough name to top the HN main page and presumably find someone from Google to intervene at some point. I would have zero recourse if it was some little product that I built.</p>
]]></description><pubDate>Wed, 20 May 2026 18:36:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48212091</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=48212091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48212091</guid></item><item><title><![CDATA[New comment by cyco130 in "The GNU libc atanh is correctly rounded"]]></title><description><![CDATA[
<p>tanh is a very pleasant sounding overdrive function for audio, for example.</p>
]]></description><pubDate>Sat, 18 Apr 2026 10:10:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47814654</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=47814654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47814654</guid></item><item><title><![CDATA[New comment by cyco130 in "Everything Should Be Typed: Scalar Types Are Not Enough"]]></title><description><![CDATA[
<p>One neat trick for TypeScript branded types is to use { "~brand": "SOME BRAND" } instead of { __brand: "SOME BRAND" }. __brand shows up at the top of the autocomplete keys where "~brand" shows at the bottom.</p>
]]></description><pubDate>Tue, 14 Apr 2026 12:46:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47764965</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=47764965</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47764965</guid></item><item><title><![CDATA[New comment by cyco130 in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>Axios has maxContentLength and maxBodyLength options. I would probably go with undici nowadays though (it also has maxResponseSize).</p>
]]></description><pubDate>Tue, 31 Mar 2026 15:24:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47588736</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=47588736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47588736</guid></item><item><title><![CDATA[New comment by cyco130 in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>I'm not sure fetch is a good server-side API. The typical fetch-based code snippet `fetch(API_URL).then(r => r.json())` has no response body size limit and can potentially bring down a server due to memory exhaustion if the endpoint at API_URL malfunctions for some reason. Fine in the browser but to me it should be a no-no on the server.</p>
]]></description><pubDate>Tue, 31 Mar 2026 13:32:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47587131</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=47587131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47587131</guid></item><item><title><![CDATA[New comment by cyco130 in "Vocal Guide – belt sing without killing yourself"]]></title><description><![CDATA[
<p>Thanks for the articles, great sources.</p>
]]></description><pubDate>Sun, 08 Feb 2026 13:29:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46934019</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46934019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46934019</guid></item><item><title><![CDATA[New comment by cyco130 in "Vocal Guide – belt sing without killing yourself"]]></title><description><![CDATA[
<p>> Current literature does not distinguish between head voice and falsetto.<p>Hmm, are you sure about this? I thought chest voice and head voice were understood to be a single register called the modal register. And falsetto was fundamentally different.</p>
]]></description><pubDate>Sat, 07 Feb 2026 19:49:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46927076</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46927076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46927076</guid></item><item><title><![CDATA[New comment by cyco130 in "Vocal Guide – belt sing without killing yourself"]]></title><description><![CDATA[
<p>Anecdotal evidence from my own singing at 20 compared to 40 seems to point to the opposite.</p>
]]></description><pubDate>Sat, 07 Feb 2026 13:52:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46923886</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46923886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46923886</guid></item><item><title><![CDATA[New comment by cyco130 in "Is Rust faster than C?"]]></title><description><![CDATA[
<p>It is indeed part of the standard. It says "Within a structure object, the non-bit-field members and the units in which bit-fields reside have
addresses that increase in the order in which they are declared"[1] which doesn't allow implementations to reorder fields, at least according to my understanding.<p>[1] <a href="https://open-std.org/JTC1/SC22/WG14/www/docs/n3220.pdf" rel="nofollow">https://open-std.org/JTC1/SC22/WG14/www/docs/n3220.pdf</a> section 6.7.3.2, paragraph 17.</p>
]]></description><pubDate>Wed, 14 Jan 2026 13:35:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46615904</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46615904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46615904</guid></item><item><title><![CDATA[New comment by cyco130 in "Why is there a tiny hole in the airplane window? (2023)"]]></title><description><![CDATA[
<p>If history is any indication, it would only mean more passengers in the plane.</p>
]]></description><pubDate>Fri, 09 Jan 2026 15:04:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46554618</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46554618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46554618</guid></item><item><title><![CDATA[New comment by cyco130 in "Why is calling my asm function from Rust slower than calling it from C?"]]></title><description><![CDATA[
<p>Natural languages are much more complex.<p>Complex for humans: I can learn a new programming language in an afternoon and be reasonably productive in it within a week or two. I wish I could say the same for natural languages.<p>Complex for computers: We’ve had good compilers since the 50s. Satisfactory language models are less than five years old.</p>
]]></description><pubDate>Tue, 30 Dec 2025 10:57:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46431954</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46431954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46431954</guid></item><item><title><![CDATA[New comment by cyco130 in "C/C++ Embedded Files (2013)"]]></title><description><![CDATA[
<p>My very first open source project[1] aimed to solve the same problem. Nice to see it still has quite a few weekly downloads.<p>[1] <a href="https://sourceforge.net/projects/bin2c/" rel="nofollow">https://sourceforge.net/projects/bin2c/</a></p>
]]></description><pubDate>Fri, 26 Dec 2025 20:05:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46395660</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46395660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46395660</guid></item><item><title><![CDATA[New comment by cyco130 in "Archiving Git branches as tags"]]></title><description><![CDATA[
<p>Not the gp but I can't live without co/ci/br now.</p>
]]></description><pubDate>Fri, 26 Dec 2025 11:24:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46391134</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46391134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46391134</guid></item><item><title><![CDATA[New comment by cyco130 in "Prove It All Night: With no fame or fortune, what keeps a band onstage? (1999)"]]></title><description><![CDATA[
<p>I celebrated my 25th year on stage almost three years ago. Mostly playing covers in bars.<p>There was a time when we were hoping to “make it” and we did release an album but it wasn’t very successful, of course. That band broke up a few years later but I kept going with different bands.<p>I can’t do it every week anymore, let alone every night. It’s very physically demanding, so once a month is plenty in my age.<p>But it’s still fun. A lot of fun. I can’t imagine ever stopping it until I can’t physically do it. It’s part of who I am. Long live rock’n roll \m/</p>
]]></description><pubDate>Thu, 11 Dec 2025 21:50:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46237687</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46237687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46237687</guid></item><item><title><![CDATA[New comment by cyco130 in "Compiler Design Lectures [video]"]]></title><description><![CDATA[
<p>I've watched the SSA-related parts of these lectures and, despite the low video quality, I've found the quality of the content to be very high. Lecture notes can be found here: <a href="https://nptel.ac.in/courses/106108052" rel="nofollow">https://nptel.ac.in/courses/106108052</a></p>
]]></description><pubDate>Sat, 06 Dec 2025 12:59:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46172987</link><dc:creator>cyco130</dc:creator><comments>https://news.ycombinator.com/item?id=46172987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46172987</guid></item></channel></rss>