<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: mg</title><link>https://news.ycombinator.com/user?id=mg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 05 Oct 2026 00:35:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mg in "Why don't more developers “use the platform”?"]]></title><description><![CDATA[
<p>The great thing with software is you can write your own functions. It would look something like this:<p><pre><code>    function html(strings, ...values) {
      let result = strings[0];
      for (let i = 0; i < values.length; i++) {
        result += escapeHtml(values[i]);
        result += strings[i + 1];
      }
      return result;
    }</code></pre></p>
]]></description><pubDate>Sun, 04 Oct 2026 10:34:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49952596</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49952596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49952596</guid></item><item><title><![CDATA[New comment by mg in "Why don't more developers “use the platform”?"]]></title><description><![CDATA[
<p>> If you interpolate it, you have to escape manually<p>Well, for some definition of "manually".<p>If you have untrusted variables to interpolate, you can do<p><pre><code>    this.innerHTML = html`Hello ${name}!`
</code></pre>
Where html is a function that escapes the variables.<p>The arguments brought forward against web components all seem to fall under "But it does not contain every functionality you want to use out of the box". Personally, I don't think browsers should provide more and more functionality, but rather a good base to build upon.</p>
]]></description><pubDate>Sun, 04 Oct 2026 08:49:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49951938</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49951938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49951938</guid></item><item><title><![CDATA[New comment by mg in "Why don't more developers “use the platform”?"]]></title><description><![CDATA[
<p>What do you not like about WebComponents?<p>Say we want to make an icon that when clicked shows how often it was clicked. The webcomponent code seens quite sane to me:<p><pre><code>   class HelloIcon extends HTMLElement {
      connectedCallback() {
        this.clickCount = 0;

        this.innerHTML = `
          <button class="icon">:)</button>
          <dialog>
            <p>Hello, I was clicked 0 times</p>
            <button class="close">Close</button>
          </dialog>
        `;

        const icon = this.querySelector('.icon');
        const dialog = this.querySelector('dialog');
        const closeBtn = this.querySelector('.close');
        const dialogText = this.querySelector('p');

        icon.addEventListener('click', () => {
          this.clickCount++;
          dialogText.textContent = `Hello, I was clicked ${this.clickCount} times`;
          dialog.showModal();
        });

        closeBtn.addEventListener('click', () => dialog.close());
      }
    }
</code></pre>
Try it here:<p><a href="https://plnkr.co/edit/0XUOLyM52xfFiIBu?open=index.html&preview" rel="nofollow">https://plnkr.co/edit/0XUOLyM52xfFiIBu?open=index.html&previ...</a></p>
]]></description><pubDate>Sun, 04 Oct 2026 06:19:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49951172</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49951172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49951172</guid></item><item><title><![CDATA[New comment by mg in "Can gzip be a language model?"]]></title><description><![CDATA[
<p><p><pre><code>    give it a normal text prompt, and it
    continues that prompt by searching
    for the byte sequences that compress
    best.
</code></pre>
One moment, how are we supposed to know how well that search was done? There is no way to search a meaningful part of the search space.<p>So the result only gives us some lower bound of how well gzip works as a "plausibility tester" of a continuation of a text. The space of possible sequences is many orders of magnitude larger than what was searched. So there might be sequences in there that compress much better.<p>The text mentions beamsearch, but I don't see a discussion about how well beamsearch performs in finding the global optima when it comes to gzip compressibility of a text?</p>
]]></description><pubDate>Tue, 22 Sep 2026 07:40:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49797823</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49797823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49797823</guid></item><item><title><![CDATA[New comment by mg in "Waymo in Singapore"]]></title><description><![CDATA[
<p><p><pre><code>    For business profits to rise, people need
    to to have disposable income
</code></pre>
Does it matter, if the business pays employees who then use their salary to buy goods from the business or if the government collects taxes and uses that to pay for the goods? The government could also give the taxes to the people, so they have disposable income.<p>Imagine an island with two people on it and there is one tree that grows apples. And every other day, one of the two people climbs the tree and picks apples so they both have something to eat. Then the next day, the other person owes to climb on the tree because they are in debt to the first person.<p>Now, let's say one day, one of them discovers, hey, we can just give the tree a kick and the apples fall down on their own!<p>With the perspective you are proposing, the other one would have to say: Oh my God, don't do it! We will be out of work and starve!</p>
]]></description><pubDate>Fri, 18 Sep 2026 07:42:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49751278</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49751278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49751278</guid></item><item><title><![CDATA[New comment by mg in "Show HN: Capsule – Single-file web apps that save their data into SQLite"]]></title><description><![CDATA[
<p>Taking that logic of protecting users from themselves to the extreme, a website should not be able to display text either. Because it can use text to ask the user to open their explorer and delete the files manually.<p>I think the flow of Chrome where the user has to select a file from disk and then acknowledge a prompt that the site will have access to that file until they close the window is fine. But if Mozilla wanted to protect users from themselves even more, they could make it as strong as they like. For example, by requiring to turn the functionality on in about:config.<p>Not giving the user the choice at all, if they want a cloud only browser or a browser that lets them work with local files is the wrong way.</p>
]]></description><pubDate>Fri, 18 Sep 2026 07:37:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49751257</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49751257</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49751257</guid></item><item><title><![CDATA[New comment by mg in "Waymo in Singapore"]]></title><description><![CDATA[
<p>As AI becomes more and more capable and integrated into our lives, we will see this across many industries.<p>In theory, as things get cheaper to produce, business profits should rise and governments should be able to raise more taxes. So the government then has more means to provide goods and services for free to people who need them.</p>
]]></description><pubDate>Fri, 18 Sep 2026 07:18:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49751128</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49751128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49751128</guid></item><item><title><![CDATA[New comment by mg in "Show HN: Capsule – Single-file web apps that save their data into SQLite"]]></title><description><![CDATA[
<p>Firefox unfortunately does not support the File System Access API. You can try by calling the most fundamental function, the one that asks the user to select a file:<p><pre><code>    window.showOpenFilePicker()
</code></pre>
What Firefox supports is a "File System API" which creates something similar to the other old ways of storing data in a browser, like cookies and indexeddb. You cannot use it to edit normal files on your disk.<p>This is my main gripe with Firefox. They force their users to either store everything in the cloud or go through the arcane "download" workflow where you have to manually save files.</p>
]]></description><pubDate>Wed, 16 Sep 2026 09:38:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49724029</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49724029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49724029</guid></item><item><title><![CDATA[New comment by mg in "Show HN: Capsule – Single-file web apps that save their data into SQLite"]]></title><description><![CDATA[
<p>> but trying to save data required hosting it somewhere<p>With the File System Access API, webpages nowadays can read and write local files just like desktop applications:<p><a href="https://developer.chrome.com/docs/capabilities/web-apis/file-system-access" rel="nofollow">https://developer.chrome.com/docs/capabilities/web-apis/file...</a><p>Try this text editor for example:<p><a href="https://googlechromelabs.github.io/text-editor/" rel="nofollow">https://googlechromelabs.github.io/text-editor/</a><p>It works nicely on Desktop and Mobile.</p>
]]></description><pubDate>Tue, 15 Sep 2026 16:18:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49714845</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49714845</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49714845</guid></item><item><title><![CDATA[New comment by mg in "Ask HN: Can we please limit the AI news flood?"]]></title><description><![CDATA[
<p>For me, the appeal of HN is the DIY attitude.<p>In that regard AI fits the bill well. Because many of the AI related posts are about tools one can immediately tinker with.<p>While a new type of laptop cooling might become interesting once the laptops come out, the news is not as interesting to me as a new LLM or agent that I can experiment with right away.</p>
]]></description><pubDate>Fri, 11 Sep 2026 13:51:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49658425</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49658425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49658425</guid></item><item><title><![CDATA[New comment by mg in "WebMCP: Teaching Your Website to Talk to AI Agents"]]></title><description><![CDATA[
<p>> Here’s a book_table tool. It takes a date, a time, and a party size. Call it.<p>Why not offer a simple form that humans and AI can use alike?<p><pre><code>    <form action=book_table>
      <input type=date name=date>
      <input type=time name=time>
      <input type=number name=party_size>
      <input type=submit value="Book table">
    </form></code></pre></p>
]]></description><pubDate>Wed, 26 Aug 2026 15:31:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49450908</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49450908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49450908</guid></item><item><title><![CDATA[New comment by mg in "Ask HN: How do you keep up with HN these days?"]]></title><description><![CDATA[
<p>I use the bookmarklet below.<p>It jumps to the newest story on the frontpage. And when I click the bookmarklet again (or press "n") it jumps to the next. So I just click it until I land on a story I have already seen and know I have seen them all.<p>If you want to use it, you can convert the code into a bookmarklet with my bookmarklet editor:<p><a href="https://www.gibney.org/bookmarklet_editor" rel="nofollow">https://www.gibney.org/bookmarklet_editor</a><p>The bookmarklet:<p><pre><code>    if (!location.href.match('ycom'))
        location.href='https://news.ycombinator.com';

    doTheMagic = function() {
        if (typeof e!=='undefined')
            e.style.background='#c0c0c0';
        e=Array.from(
            document.querySelectorAll(
                '.age a:not(.seen)')
        ).sort().at(-1);
        e.style.background='#ff0';
        e.classList.add('seen');
        e.scrollIntoView({
            behavior:"smooth",
            block:"center",
            inline:"nearest"
        });
    }

    function addShortcuts() {
        document.addEventListener("keydown", function(evnt) {
            if (evnt.key === "n") doTheMagic();
        });
    }

    function addStyle() {
       let style = document.createElement('style');
        style.type = 'text/css';
        style.textContent = `
            .noshow {
                display: initial;
            }
        `;
        document.head.appendChild(style);
    }

    if (typeof theMagicIsActive=='undefined') {
        addShortcuts();
        addStyle();
        theMagicIsActive = true;
    }

    doTheMagic();</code></pre></p>
]]></description><pubDate>Sat, 15 Aug 2026 10:23:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49309387</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49309387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49309387</guid></item><item><title><![CDATA[New comment by mg in "Go is an ideal language for AI-assisted software engineering"]]></title><description><![CDATA[
<p>My expectation is that AI will give us a way to nicely quantify how productivity is impacted by choice of language. Because we can rerun the same request as often as we like and compare the results.<p>And I expect that it will turn out Python is the most productive. As it is most easy to reason about. It allows for the most elegant expression of the idea behind a program.<p>The first tests I have seen seem to confirm this. One recent example:<p><a href="https://danluu.com/pl-tokens/" rel="nofollow">https://danluu.com/pl-tokens/</a></p>
]]></description><pubDate>Tue, 11 Aug 2026 18:01:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49262082</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49262082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49262082</guid></item><item><title><![CDATA[New comment by mg in "The original URL for this prediction will no longer be available in 11 years (2011)"]]></title><description><![CDATA[
<p>It is actually pretty easy to keep alive URLs if there is a will to do so. Just have tests in place so you can't mess them up accidentally. And convert things that are not changing anymore to static html.<p>One of my first web projects involved a music forum and I have been keeping the URLs alive for 24 years now:<p><a href="https://www.gnoosic.com/discussion/" rel="nofollow">https://www.gnoosic.com/discussion/</a><p>I feel like I owe it to the people who participated to keep it online forever. Also as a document of history.</p>
]]></description><pubDate>Sun, 09 Aug 2026 06:19:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=49228893</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49228893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49228893</guid></item><item><title><![CDATA[New comment by mg in "Some car companies are operating without regard for a declining customer base"]]></title><description><![CDATA[
<p>Cars that are idle 95% of the time are replaced less than once in a decade.<p>Cabs are replaced something like 3x more often than privately owned cars. And when they run 24/7 because of self-driving, that factor will even increase.</p>
]]></description><pubDate>Wed, 05 Aug 2026 05:31:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178923</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49178923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178923</guid></item><item><title><![CDATA[New comment by mg in "Some car companies are operating without regard for a declining customer base"]]></title><description><![CDATA[
<p><p><pre><code>    Because a single autonomous vehicle operating in a shared
    fleet can replace multiple privately owned cars, the
    widespread adoption of this technology can’t help but
    reduce new-car sales volumes.
</code></pre>
The old "Thing will become more useful so we'll make less of it" argument. No mention of Jevons Paradox?<p>If we can travel and send stuff around from point A to point B cheaply and instantly by dropping ourselves or an item into an ocean of cars roaming our streets autonomously, there is a lot more demand for rides.<p>Also comfortably traveling longer distances might alter where we live. If we can walk out the door, sit down in a comfortable robotaxi right away and exit in the city center 10 minutes later, we might not have to live right in the city center anymore. Another driver for more demand.</p>
]]></description><pubDate>Wed, 05 Aug 2026 05:03:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178751</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=49178751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178751</guid></item><item><title><![CDATA[New comment by mg in "EU Exempts Apple Watch and AirPods from Battery Removal Requirements"]]></title><description><![CDATA[
<p>Wouldn't a "toxic waste tax" be better than all these individual regulations?<p>Have a sales tax on each product that corresponds to the toxicity of its components.<p>Exempt recycled materials from the tax so companies have an incentive to collect old parts and recycle them, preventing them from going to a landfill.</p>
]]></description><pubDate>Mon, 20 Jul 2026 08:53:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48976027</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=48976027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48976027</guid></item><item><title><![CDATA[New comment by mg in "Don't trust large context windows"]]></title><description><![CDATA[
<p>From the SOTA model providers, I only use OpenAI and Google. And between gpt-5.5 and gemini-3.1-pro-preview, gpt-5.5 is currently leading.</p>
]]></description><pubDate>Sun, 14 Jun 2026 09:21:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48525548</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=48525548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48525548</guid></item><item><title><![CDATA[New comment by mg in "Don't trust large context windows"]]></title><description><![CDATA[
<p>Agreed that it is not linear.<p>I wrote my own agent, and it sends data to LLMs in this order: "General Prompts (How to write good code)" + "The Code" + "The Feature Request". This means the KV cache will be used even when the feature request changes.<p>And output tokens are usually way less than the input tokens.<p>So I think that my approach is very lightweight on token usage compared to an interactive session.<p>It would be interesting to measure it for the other agents out there. Sending a feature request two times vs an interactive session.</p>
]]></description><pubDate>Sun, 14 Jun 2026 08:48:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48525416</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=48525416</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48525416</guid></item><item><title><![CDATA[New comment by mg in "Don't trust large context windows"]]></title><description><![CDATA[
<p>It is the other way round.<p>In an interactive session, adding "Fine, but make the button red" after the model generated a first solution more than doubles the tokens used. As the model now not only gets the original code and the feature request but also the updated code plus the change request as input tokens.<p>Sending a feature request to an LLM and then sending the feature request again with "The button shall be red" only doubles the tokens used.</p>
]]></description><pubDate>Sun, 14 Jun 2026 08:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48525261</link><dc:creator>mg</dc:creator><comments>https://news.ycombinator.com/item?id=48525261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48525261</guid></item></channel></rss>