<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: mikebelanger</title><link>https://news.ycombinator.com/user?id=mikebelanger</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 15 May 2026 18:09:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mikebelanger" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mikebelanger in "Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc"]]></title><description><![CDATA[
<p>Interesting that ports can be written so quickly with AI. But that aside, I  have to ask...why?  You want a super performant bundler/runtime/package manager written in rust with TS support, Deno has this already.</p>
]]></description><pubDate>Sat, 09 May 2026 21:49:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48078601</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=48078601</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48078601</guid></item><item><title><![CDATA[New comment by mikebelanger in "Kagi Translate now supports LinkedIn Speak as an output language"]]></title><description><![CDATA[
<p>Amazing!</p>
]]></description><pubDate>Tue, 17 Mar 2026 10:37:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47410847</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=47410847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47410847</guid></item><item><title><![CDATA[New comment by mikebelanger in "Rust implementation of Mistral's Voxtral Mini 4B Realtime runs in your browser"]]></title><description><![CDATA[
<p>Cool!  Thanks for the response, I'll give it a shot again sometime</p>
]]></description><pubDate>Fri, 20 Feb 2026 23:37:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47095613</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=47095613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47095613</guid></item><item><title><![CDATA[New comment by mikebelanger in "Web Components: The Framework-Free Renaissance"]]></title><description><![CDATA[
<p>I lean towards vanilla javascript and webcomponents myself, and eschew large frameworks in favor of lighter, or in some cases, no framework at all.<p>That said, this and many other webcomponent articles mischaracterize usage cases of webcomponents:<p>1. Being "Framework-free"<p>Frameworks can mean anything from something massive like NextJS, all the way to something very lightweight like enhance.dev or something more UI-focused like shoelace. To suggest being completely free of any kind of framework might give some benefits, depending on what kind of framework you're free of.  But there's still some main benefits of frameworks, such as enforcing consistent conventions and patterns across a codebase. To be fair, the article does mention frameworks have a place further down the article, and gets close to articulating one of the main benefits of frameworks:<p>"If you’re building something that will be maintained by developers who expect framework patterns, web components might create friction."<p>In a team, <i>any</i> pattern is better than no pattern. Frameworks are a great way of enforcing a pattern. An absence of a pattern with or without webcomponents will create friction, or just general spaghetti code.<p>2. Webcomponents and the shadow DOM go together<p>For whatever reason, most webcomponent tutorials start with rendering things in their shadow DOM, not the main DOM. While the idea of encapsulating styles sounds safer, it does mean parts of your page render after your main page, which can lead to DOM elements "flashing" unstyled content. To me, this janky UX negates any benefit of being able to encapsulate styles. Besides, if you're at a point where styles are leaking onto eachother, your project has other issues to solve. The Shadow DOM does have its use, but IMO it's overstated:<p><a href="https://enhance.dev/blog/posts/2023-11-10-head-toward-the-light-dom" rel="nofollow">https://enhance.dev/blog/posts/2023-11-10-head-toward-the-li...</a></p>
]]></description><pubDate>Fri, 20 Feb 2026 12:45:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47087335</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=47087335</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47087335</guid></item><item><title><![CDATA[New comment by mikebelanger in "Rust implementation of Mistral's Voxtral Mini 4B Realtime runs in your browser"]]></title><description><![CDATA[
<p>Neat, and neat to see the burn framework getting used.  I tried this on latest Chromium, but my system froze until my OS killed Chromium.  My VPN connection died right after downloading the model too. (it doesn't have a bandwidth cap either, so I'm not sure what's happening)</p>
]]></description><pubDate>Tue, 10 Feb 2026 12:44:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46958992</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=46958992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46958992</guid></item><item><title><![CDATA[New comment by mikebelanger in "Show HN: Why write code if the LLM can just do the thing? (web app experiment)"]]></title><description><![CDATA[
<p>Yeah that'd be really something. If you could just pay the cost up-front, rather than worry about how much every newer request cost, that really changes the game.  There's still many other issues to worry about, like security.  But as the author points out, we might be much closer than we think.</p>
]]></description><pubDate>Sun, 02 Nov 2025 14:03:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45790439</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=45790439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45790439</guid></item><item><title><![CDATA[New comment by mikebelanger in "We all dodged a bullet"]]></title><description><![CDATA[
<p>Artifactory works fairly well.  Although admittedly, when a user grabs a new dependency, they're downloading from the npmjs registry like anyone else.<p>Really, the killer combo would be to have some kind of LLM-based tool that would scan someone's artifactory. Something smart enough to notice that code changed, and there's code for accessing a crypto-wallet, etc.  This would be too expensive for npmjs to host for free, but I could see this happen to hosted artifactory dependencies.</p>
]]></description><pubDate>Wed, 10 Sep 2025 11:26:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=45196126</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=45196126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45196126</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>Bringing it back to the site, the author does describe implementations of context providers and signals:<p><a href="https://plainvanillaweb.com/blog/articles/2024-10-07-needs-more-context/" rel="nofollow">https://plainvanillaweb.com/blog/articles/2024-10-07-needs-m...</a>
<a href="https://plainvanillaweb.com/blog/articles/2024-08-30-poor-mans-signals/" rel="nofollow">https://plainvanillaweb.com/blog/articles/2024-08-30-poor-ma...</a><p>I haven't tried signals yet, but I couldn't see why you could pass in an object with multiple values.</p>
]]></description><pubDate>Sun, 11 May 2025 23:16:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43958105</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43958105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43958105</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>I really wish web components weren't promoted as a "framework alternative" and more of a standardization of custom display components. Frameworks like enhance.dev and lit.dev are good examples of this.</p>
]]></description><pubDate>Sun, 11 May 2025 20:39:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956953</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956953</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>So this isn't even a question about web workers, it's a question about how to prop-drill non-string/number data through multiple layers of web-components.<p>Tbh, I'm not sure there's a way for that. But why not just define a method in your target child component and pass the worker in there?</p>
]]></description><pubDate>Sun, 11 May 2025 20:22:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956832</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956832</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>>just adding a method to a class. OOP 101.<p>You're right, it is just a method call from a class. Nothing interesting or new. And that's exactly why I like it!  I like me FE code as boring, unimpressive and as simple as possible.</p>
]]></description><pubDate>Sun, 11 May 2025 20:09:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956734</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956734</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>Great resource! I particularly like the fact that their web component section doesn't use the shadow DOM. It's really too bad custom elements got associated with shadow DOM, as they're so useful beyond the more niche usage cases of the shadow DOM.</p>
]]></description><pubDate>Sun, 11 May 2025 19:02:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956141</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956141</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>You can invoke custom methods and pass in any kind of data into them.  As in<p><pre><code>  class SomeElement extends HTMLElement {
    constructor() {
      super();
    }

    someMethod(x) {
      this.innerHTML = `<h1>${x}</h1>`;
    }
  }

  // ignore registry stuff

  const customElement = document.getElementById('custom-element-id');

  customElement.someMethod(42);

</code></pre>
But you won't learn that from most mainstream custom element tutorials though, for whatever reason.</p>
]]></description><pubDate>Sun, 11 May 2025 18:52:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956051</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956051</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>>Perhaps nostalgia and the principle of KISS (and a few others) is clouding my judgement here, after all, frameworks are made for a reason. But it's difficult to imagine a new engineer having any more difficulty with vanilla than learning framework after framework.<p>I feel the same way. React and Angular (well an earlier version of Angular) were made prior to ES2015 being mainstream, so I do think they made sense to use when they were initially created.  Since then, I've become burned out from the constant churn of new frontend frameworks to learn.  Even within the world of React, there's different ways of writing components, and different state managers.</p>
]]></description><pubDate>Sun, 11 May 2025 18:46:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=43956001</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43956001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43956001</guid></item><item><title><![CDATA[New comment by mikebelanger in "Plain Vanilla Web"]]></title><description><![CDATA[
<p>The nice thing about the plain "vanilla" approach is it can be used to enhance a more traditional SSR-rendered site. And it doesn't need a complete rewrite in React or whatever.<p>The author of this article blog is describing some more advanced SPA-like scenarios, but those are completely optional</p>
]]></description><pubDate>Sun, 11 May 2025 18:40:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43955962</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43955962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43955962</guid></item><item><title><![CDATA[New comment by mikebelanger in "React Three Ecosystem"]]></title><description><![CDATA[
<p>> It’s doesn’t have to be especially onerous discipline if you embrace it, but it becomes considerably more onerous as it becomes more social: if some members of a team/contributors to a project embrace it more/less than others, that difference in commitment becomes a constant source of friction.<p>That's one of the stronger arguments for opinionated pre-processors/frameworks/libraries like Typescript/TSX/JSX/React in general.  Because it abstract away those things that only some team members would embrace, you effectively make <i>everyone</i> embrace them. That leads to less friction.<p>But this reduced friction comes at a cost: more complex abstractions and incidental bugs related to that complexity.  And as far as the procedural vs declarative: after a certain degree of complexity, I find myself introducing procedural codes within useEffects, useMemos anyways</p>
]]></description><pubDate>Sat, 10 May 2025 17:41:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43947434</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43947434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43947434</guid></item><item><title><![CDATA[New comment by mikebelanger in "Zed now predicts your next edit with Zeta, our new open model"]]></title><description><![CDATA[
<p>I've been using Zed for a few months now.  One thing I really like about Zed is its relatively discrete advertising of new features, like this edit prediction one.  Its just a banner shown in the upper-left, and it doesn't block me from doing other stuff, or force me to click "Got it" before using the application more.<p>This definitely counters the trend of putting speech balloons/modals/other nonsense that force a user to confirm a new feature. Good job, Zed team!</p>
]]></description><pubDate>Fri, 14 Feb 2025 12:27:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43047688</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=43047688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43047688</guid></item><item><title><![CDATA[New comment by mikebelanger in "3D-printed neighborhood nears completion in Texas"]]></title><description><![CDATA[
<p>> It seemed slightly more trouble to do modifications than a cinder block wall, but the quality and strength was much higher. I went with low expectations but I was impressed.<p>So the electricians and plumbers would all come in after the wall was printed, and saw through it all?  Sawing, adding and then filling it back in sounds like lots of work to me.  With stick-frame, wiring and plumbing are still a significant cost, but the actual hole-making part would be a small proportion of it.</p>
]]></description><pubDate>Tue, 07 Jan 2025 11:49:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42621485</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=42621485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42621485</guid></item><item><title><![CDATA[New comment by mikebelanger in "3D-printed neighborhood nears completion in Texas"]]></title><description><![CDATA[
<p>How would plumbing and wiring work? The article states that the wall is a semi-hollow, corduroy pattern, so do the printers leave openings in the walls so pipes/wiring get shoved into them after?</p>
]]></description><pubDate>Wed, 01 Jan 2025 12:58:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=42565750</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=42565750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42565750</guid></item><item><title><![CDATA[New comment by mikebelanger in "Building Effective "Agents""]]></title><description><![CDATA[
<p>> But I think that complex architectures are going to win out over the "just scale up with more data and more compute" approach.<p>I'm not sure about AGI, but for specialized jobs/tasks (ie having a marketing agent that's familiar with your products and knows how to copywrite for your products) will win over "just add more compute/data" mass-market LLMs. This article does encourage us to keep that architecture simple, which is refreshing to hear. Kind of the AI version of rule of least power.<p>Admittedly, I have a degree in Cognitive Science, which tended to focus on good 'ol fashioned AI, so I have my biases.</p>
]]></description><pubDate>Sat, 21 Dec 2024 17:11:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42480823</link><dc:creator>mikebelanger</dc:creator><comments>https://news.ycombinator.com/item?id=42480823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42480823</guid></item></channel></rss>