<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: wasmperson</title><link>https://news.ycombinator.com/user?id=wasmperson</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 24 May 2026 22:48:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=wasmperson" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by wasmperson in "Don't Roll Your Own"]]></title><description><![CDATA[
<p>> WHY javascript code is even allowed to see all these actions of the user?<p>scrolling: used by games, maps, image viewers<p>link navigation: used for client-side routing (youtube/twitch, any website with a chat window)<p>text selection and copy/paste: word processors, spreadsheet editors, forum software, etc.<p>I'm not sure if your question was sincere or if you were trying to say that the web should not support these use cases.</p>
]]></description><pubDate>Sun, 24 May 2026 01:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48253434</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=48253434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48253434</guid></item><item><title><![CDATA[New comment by wasmperson in "Frontier AI has broken the open CTF format"]]></title><description><![CDATA[
<p>Ludum Dare 59 just wrapped up last week, and both first and second place were won by developers using "Agentic" coding tools, something the community there is still discussing:<p><a href="https://ldjam.com/events/ludum-dare/59/setidream/about-ai-arguments" rel="nofollow">https://ldjam.com/events/ludum-dare/59/setidream/about-ai-ar...</a><p>For what it's worth, the non-AI-coded entries were still quite good relative to the winners, so it's not so obvious that AI use confers an unbeatable advantage.</p>
]]></description><pubDate>Sun, 17 May 2026 00:09:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48164943</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=48164943</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48164943</guid></item><item><title><![CDATA[New comment by wasmperson in "Google broke reCAPTCHA for de-googled Android users"]]></title><description><![CDATA[
<p>Bots are usually very stupid and will bail on any captcha system they don't recognize, so anything you make that's custom and requires javascript will cull 99% of them.  This may change at some point with LLMs but for now my websites at least are still holding strong.</p>
]]></description><pubDate>Sun, 10 May 2026 21:54:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48088502</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=48088502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48088502</guid></item><item><title><![CDATA[New comment by wasmperson in "Forking the Web"]]></title><description><![CDATA[
<p>Most "web fork" ideas try to either ditch the web as a sandboxed application distribution platform or to ditch the web as a hypertext-based front-end for networked systems.  IMO a good from-first-principles solution wouldn't abandon one or the other but instead split them into discrete components.  I suspect this would simplify things a lot vs. the HTML/CSS/JS status quo.<p>We kinda sorta almost had that for a short period with Flash (and Java, I guess): a webpage either didn't use flash and was secure and efficient like opening a document, or it did use flash and was featureful and interactive like an application.  Users and system administrators could block Flash or enable it conditionally while expecting most of the web to continue to work, which in hindsight was actually pretty nice from a security perspective.</p>
]]></description><pubDate>Sun, 10 May 2026 01:48:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48080199</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=48080199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48080199</guid></item><item><title><![CDATA[New comment by wasmperson in "Our commitment to Windows quality"]]></title><description><![CDATA[
<p>It's been a while but from what I remember the easiest way to block this was by disallowing outbound network requests from search/the start menu in the firewall settings.  It worked across all versions of Windows I tried it on.</p>
]]></description><pubDate>Mon, 23 Mar 2026 23:59:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47496839</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47496839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47496839</guid></item><item><title><![CDATA[New comment by wasmperson in "How to Review an AUR Package"]]></title><description><![CDATA[
<p>> I mean 99.9% of the problems can be averted by just not installing some random new aur package with 0 votes or popularity.<p>Piracy websites use a similar system.  It's not nothing, but it's not enough for me to install pirated software.</p>
]]></description><pubDate>Sat, 21 Feb 2026 17:55:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47103030</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47103030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47103030</guid></item><item><title><![CDATA[New comment by wasmperson in "How to Review an AUR Package"]]></title><description><![CDATA[
<p>> How is that an unacceptable threat model for a repo of packages that are optional and user-made? One that clearly says, "DISCLAIMER: AUR packages are user produced content. Any use of the provided files is at your own risk." (1)<p>The AUR is an official part of Arch Linux.  It's hosted on the archlinux.org domain with a prominent link to it from the main page.  You enable package installation from it either using one of the many transparent pacman wrappers recommended in arch community spaces and on the arch wiki, or by ticking a checkbox in a graphical package manager like pamac.  IMO a one-line disclaimer on the aur main page doesn't fix the problem at all.<p>Security isn't about the trustworthiness of the code you're running, it's about the trustworthiness of the person who's <i>giving you</i> the code.  No matter how good you are at auditing bash scripts, there's a malicious bash script that will slip by you, even if you're diligent (which most aren't, even among so-called "power users").  With official packages, I have to trust the people who distribute my OS.  With vendor-distributed software (Windows software, PPA, curl | sh) I have to trust the person who wrote the software.  With the AUR, I have to trust the first person to park the name of the package.</p>
]]></description><pubDate>Sat, 21 Feb 2026 17:51:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47102994</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47102994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47102994</guid></item><item><title><![CDATA[New comment by wasmperson in "How to Review an AUR Package"]]></title><description><![CDATA[
<p>"End-users need to read and understand shell scripts to make sure they're safe" is a completely unacceptable threat model.  The way I see it installing software from the AUR is about as safe as installing software from the pirate bay.  Nevertheless, this distribution keeps getting discussed and recommended to people, with the AUR often cited as a reason to use it.</p>
]]></description><pubDate>Sat, 21 Feb 2026 02:04:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47096727</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47096727</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47096727</guid></item><item><title><![CDATA[New comment by wasmperson in "JavaScript-heavy approaches are not compatible with long-term performance goals"]]></title><description><![CDATA[
<p>> I think the biggest problem is that the DOM was built for documents, not apps.<p>The world wide web was invented in 1989, Javascript was released in 1995, and the term "web application" was coined in 1999.  In other words: the web has been an application platform for most of its existence.  It's wrong to say at this point that any part of it was primarily designed to serve documents, unless you completely ignore all of the design work that has happened for the past 25 years.<p>Now, whether it was designed <i>well</i> is another issue...</p>
]]></description><pubDate>Mon, 16 Feb 2026 17:15:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47037564</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47037564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47037564</guid></item><item><title><![CDATA[New comment by wasmperson in "JavaScript-heavy approaches are not compatible with long-term performance goals"]]></title><description><![CDATA[
<p>> Instead of slow React renders (50ms?), every interaction is a client-server round trip.<p>This is true only if you use <i>zero</i> javascript, which isn't what the article is advocating for (and even with zero javascript there's quite a bit of client-side interactivity built-in to CSS and HTML).  Besides: in practice most interactions in an SPA also involve network round trips, <i>in addition</i> to that slow react render.</p>
]]></description><pubDate>Mon, 16 Feb 2026 17:03:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47037438</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47037438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47037438</guid></item><item><title><![CDATA[New comment by wasmperson in "A header-only C vector database library"]]></title><description><![CDATA[
<p>The idea that it does nothing is a persistent myth.  Both GCC and Clang heed it although neither treats it as a mandate:<p><a href="https://tartanllama.xyz/posts/inline-hints/" rel="nofollow">https://tartanllama.xyz/posts/inline-hints/</a><p>This library seems to have the annotation on <i>every</i> function, though, so it's possible the author is just following a convention of always using it for functions defined in header files (it'd be required if the functions weren't declared `static`).</p>
]]></description><pubDate>Sun, 15 Feb 2026 01:02:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47020111</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47020111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47020111</guid></item><item><title><![CDATA[New comment by wasmperson in "Juggling Information Service"]]></title><description><![CDATA[
<p>I was reminded of this website by the recent slinging.org discussion:<p><a href="https://news.ycombinator.com/item?id=46951430">https://news.ycombinator.com/item?id=46951430</a></p>
]]></description><pubDate>Sat, 14 Feb 2026 19:51:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47017724</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47017724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47017724</guid></item><item><title><![CDATA[Juggling Information Service]]></title><description><![CDATA[
<p>Article URL: <a href="http://juggling.org">http://juggling.org</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47017723">https://news.ycombinator.com/item?id=47017723</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Sat, 14 Feb 2026 19:51:05 +0000</pubDate><link>http://juggling.org</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=47017723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47017723</guid></item><item><title><![CDATA[New comment by wasmperson in "Simplifying Vulkan one subsystem at a time"]]></title><description><![CDATA[
<p>My understanding of API standards that need to be implemented by multiple vendors is that there's a tradeoff between having something that's easy for the programmer to use and something that's easy for vendors to implement.<p>A big complaint I hear about OpenGL is that it has inconsistent behavior across drivers, which you could argue is because of the amount of driver code that needs to be written to support its high-level nature.  A lower-level API can require less driver code to implement, effectively moving all of that complexity into the open source libraries that eventually get written to wrap it.  As a graphics programmer you can then just vendor one of those libraries and win better cross-platform support for free.<p>For example: I've never used Vulkan personally, but I still benefit from it in my OpenGL programs thanks to ANGLE.</p>
]]></description><pubDate>Tue, 10 Feb 2026 23:25:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46968516</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46968516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46968516</guid></item><item><title><![CDATA[New comment by wasmperson in "Why is the sky blue?"]]></title><description><![CDATA[
<p>Another great example of "structural" blue that can be created artificially by heating steel:<p><a href="https://www.youtube.com/watch?v=NhjiIPohUyw" rel="nofollow">https://www.youtube.com/watch?v=NhjiIPohUyw</a></p>
]]></description><pubDate>Tue, 10 Feb 2026 01:53:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46954344</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46954344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954344</guid></item><item><title><![CDATA[New comment by wasmperson in "I write games in C (yes, C) (2016)"]]></title><description><![CDATA[
<p>For every person who says on the internet that you can just use a C++ subset, there's another who insists that C is the <i>bad</i> C++ subset.  So compiling C code with a C++ compiler promotes your code from "good C code" to "bad C++ code" (most C code isn't "exception safe," for example).<p>It's arguably irrational to evaluate a language based on this, but you can think of "this code could be better" as a sort of mild distraction.  C++ is <i>chock full</i> of this kind of distraction.</p>
]]></description><pubDate>Sat, 07 Feb 2026 22:42:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46928982</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46928982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46928982</guid></item><item><title><![CDATA[New comment by wasmperson in "I write games in C (yes, C) (2016)"]]></title><description><![CDATA[
<p>I think I get what you're trying to say, but you may have picked a bad example, here:<p><pre><code>  #define foo(a) a = 12</code></pre></p>
]]></description><pubDate>Sat, 07 Feb 2026 22:40:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46928957</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46928957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46928957</guid></item><item><title><![CDATA[New comment by wasmperson in "Why I Always End Up Going Back to C"]]></title><description><![CDATA[
<p>You appear to be making assumptions about immediate mode UI limitations based on some implementations you've worked with and not based on what's actually dictated by the interface itself.  You touch on this somewhat by claiming that it's possible to be fast as long as the UI is merely a "thin veneer" over something more stateful, but that isn't a distinction I care about.<p>I'm not a good advocate for IMGUI; there are resources available online which explain it better than I can.  I'm just trying to point out that the claim that immediate mode GUIs are some sort of CPU hog isn't really true.  That's what I meant by "doesn't necessarily sacrifice performance," not that there is literally zero overhead (although I wouldn't be surprised if that were the case!).<p>> ...The browser's task manager shows this tab never goes idle...<p>As far as I can tell, the demo you linked appears to be bugged.  You can see from poking around in a profiler (and from the frame timer under the "backend" popout) that the UI code does in fact go idle, but the requestAnimationFrame loop is never disabled for some reason.  Regardless, even if this particular GUI library has problems going idle, that's not an inherent problem with the paradigm. I get the impression you understand this already, so I'm not sure why you've brought it up.</p>
]]></description><pubDate>Sat, 31 Jan 2026 01:15:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46832284</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46832284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46832284</guid></item><item><title><![CDATA[New comment by wasmperson in "Why I Always End Up Going Back to C"]]></title><description><![CDATA[
<p>I don't think most of the recent essays we're seeing defending C are coming from experienced C veterans, but instead from much younger programmers who were introduced to "The C Way" of doing things by Handmade Hero.<p>It's surprising the number of people for whom that series appears to have completely rewritten their understanding of programming.  It's almost like when someone reads Karl Marx or Richard Dawkins for the first time and finds themselves questioning everything they thought they knew about the world.  It's such an outsized impact for such a seemingly straightforward tutorial series.</p>
]]></description><pubDate>Fri, 30 Jan 2026 22:29:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46830837</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46830837</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46830837</guid></item><item><title><![CDATA[New comment by wasmperson in "Why I Always End Up Going Back to C"]]></title><description><![CDATA[
<p>Immediate mode UI doesn't require a powerful CPU and was invented in 2002, so about 24 years ago.  I think the belief that it necessarily sacrifices performance is somewhat of a misconception.<p>Compare a hypothetical "Immediate Mode" counter:<p><pre><code>  void render_and_handle_button_click(struct ctx *ctx){
      draw_text(ctx, "Count: %d", ctx->count);
      if(draw_button(ctx, "Increment")){
          ctx->count++;
      }
  }
</code></pre>
To the equivalent "Retained" counter:<p><pre><code>  void render(struct ctx *ctx){
     set_textbox_text(ctx->textbox, "Count: %d", ctx->count);
  }

  void handle_button_click(void *ctx_in){
     struct ctx *ctx = ctx_in;
     ctx->count++;
     render(ctx);
  }

  void init(struct ctx *ctx){
      ctx->textbox = create_textbox(ctx);
      ctx->button = create_button(ctx);
      set_button_text(ctx->button, "Increment");
      set_button_click_handler(ctx->button, ctx, handle_button_click);
      render(ctx);
  }
</code></pre>
The only difference I see here is whether the stateful "cache" of UI components (ctx->textbox and ctx->button) is library-side or application-side.</p>
]]></description><pubDate>Fri, 30 Jan 2026 21:51:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46830432</link><dc:creator>wasmperson</dc:creator><comments>https://news.ycombinator.com/item?id=46830432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46830432</guid></item></channel></rss>