<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: AltruisticGapHN</title><link>https://news.ycombinator.com/user?id=AltruisticGapHN</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 16:29:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=AltruisticGapHN" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by AltruisticGapHN in "MacBook Neo and how the iPad should be"]]></title><description><![CDATA[
<p>> No more keyboards or mouse support for iPads.<p>Pretty sure there are students at Uni using iPads with keyboard. It's smaller form factor than a laptop.</p>
]]></description><pubDate>Sat, 25 Apr 2026 10:06:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47900175</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47900175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47900175</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "ChatGPT Images 2.0"]]></title><description><![CDATA[
<p>This is insanely good. But wow, prompting to get any one of these images is way more complicated than prompting Claude Code. There is a ton of vocabulary that comes with it relating to the camera, the lighting, the mood etc.</p>
]]></description><pubDate>Wed, 22 Apr 2026 09:01:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47860953</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47860953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47860953</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "The first 40 months of the AI era"]]></title><description><![CDATA[
<p>I agree. I think of AI as a search engine on steroids.<p>But I think it IS the best way to search for information, to be able to put a question in natural language. I'm always amazed just how exactly on-point the answer is.<p>I mean even the best of docs out there that have a great search bar like the Vue docs still only matches your search term and surfaces relevant topics.</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:42:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561693</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47561693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561693</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "When do we become adults, really?"]]></title><description><![CDATA[
<p>I'm 51 now and I feel like I will never be an adult. Looking around I see a lot of broken people, each in their own peculiar ways. Everyone has some coping mechanisms, triggers, and behaviours rooted in childhood. I don't see it in a bad light, I think it is just humanity.</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:25:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561617</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47561617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561617</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "The three pillars of JavaScript bloat"]]></title><description><![CDATA[
<p>"some people apparently exist who need to support ES3 - think IE6/7, or extremely early versions of Node.js"<p>Seriously what kind of business today needs to support ES3 browsers? Even banking sites should refuse to run on such old devices out of security concerns.</p>
]]></description><pubDate>Sun, 22 Mar 2026 10:41:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47476165</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47476165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47476165</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Emacs and Vim in the Age of AI"]]></title><description><![CDATA[
<p>You can have Vim bindings in vscode.</p>
]]></description><pubDate>Sat, 14 Mar 2026 11:12:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47375467</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47375467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47375467</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Modern CSS Code Snippets: Stop writing CSS like it's 2015"]]></title><description><![CDATA[
<p>BEM is actually not hell, since the whole point is to have classes with a specificity of 1, making precedence of CSS rules easy to figure out.<p>Non-BEM CSS with ids and multi-classes everywhere was hell.</p>
]]></description><pubDate>Mon, 16 Feb 2026 14:24:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47035334</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=47035334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47035334</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Google AI Studio is now sponsoring Tailwind CSS"]]></title><description><![CDATA[
<p>That's not the full picture.<p>If you're a senior CSS developer you will invariably reach a point of using "object oriented CSS" which is where you combine classes to an effect.<p>At that point you're not far off Tailwind. TW just took it all the way.</p>
]]></description><pubDate>Fri, 09 Jan 2026 14:14:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46554034</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=46554034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46554034</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Web development is fun again"]]></title><description><![CDATA[
<p>I'm trying to catch up with AI but it's difficult because most articles I find are kinda vague and there is a lack of clear examples.<p>It's always about prompting or how AI "is great" yadi yada but hardly any step by step examples.<p>I can easily ask gemini CLI to produce code for example. But how to work with AI in an existing codebase isn't obvious at all.<p>It seems also that for any serious use you need a paid subscription? It seems like the free models just can't handle large codebases.</p>
]]></description><pubDate>Mon, 05 Jan 2026 15:48:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46500187</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=46500187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46500187</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Show HN: Minimalist editor that lives in browser, stores everything in the URL"]]></title><description><![CDATA[
<p>I love this. Great little html page to refresh on Javascript.<p>For fun I put it in chatgpt and asked if there are bugs.<p>It warned about fromBase64() and toBase64() not existing in main browsers. It is supported but is indeed a new "baseline 2025"feature. It suggested more compatible code using two small functions to convert characters manually.<p>"deflate-raw is not consistently supported." It suggested using 'deflate' instead.</p>
]]></description><pubDate>Thu, 25 Dec 2025 10:59:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46383662</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=46383662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46383662</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "People with blindness can read again after retinal implant and special glasses"]]></title><description><![CDATA[
<p>I believe fish oil / omega 3 helps.<p><a href="https://www.ncbi.nlm.nih.gov/books/NBK11888/" rel="nofollow">https://www.ncbi.nlm.nih.gov/books/NBK11888/</a></p>
]]></description><pubDate>Sat, 25 Oct 2025 12:26:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45703360</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=45703360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45703360</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Cash: A small jQuery alternative for modern browsers"]]></title><description><![CDATA[
<p>I created a similar `$()` utility function for my projects albeit with 10 times less functionality.<p>I used the same basic signature for the `$()` function. However I found that 95% of the time I don't need to use the chain method on a <i>collection</i>. There's almost no scenario in which I want to do <collection>.addClass() etc. There's practically ZERO situations in which I would use something like attach an event to a collection of nodes, since event delegation is more elegant (attach a single event and check for event.type and event.target).<p>So TLDR I made $() always select a single element with `querySelector()`, which means I could remove the collection/loop from every chained method like addClass() or css() or toggle().<p>Point unless you write bad code to begin with, you can probably make this significantly smaller by removing the collection handling. The 1% of the time it is warranted to do an addClass() or something else on a bunch of nodes you can just go native and if the collection is small enough just call $() on each element.<p>PS: I guess the subtext also to my post is sometimes something looks logically elegant, like the ability for any chained method to act on the collection selected by $(), but it may not make any sense in the real world.</p>
]]></description><pubDate>Sat, 02 Nov 2024 22:38:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42029730</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=42029730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42029730</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Why VR Games Still Haven't Taken Off"]]></title><description><![CDATA[
<p>There's really cool / chill experiences on PCVR like a kayak game, but I can't spend money on a PCVR only headset. I have a Quest 3 and it's such a hassle to set up Oculus Link on top of the PC running - that I end up playing Quest games only.<p>Which is where I am a bit mystified by the article's claim of "hyper realistic" games. Even on PCVR the quality of PC VR games in general is quite low. We're a far cry from hyper realistic experiences. Typically either the graphics suffer and you have smooth FPS or the graphics are great and you have bad FPS, or you are a rich person that owns an RTX 4090 etc.<p>For me it's only a matter of a few more years. Most games on Quest atm to me look like cheap mobile games. I hate those low poly / untextured styled games with a passion.<p>The author perhaps does not understand that to make truly immersive, relaxing experiences in VR you need a LOT more power. There 's nothing very relaxing about being in a forest made of low poly trees, shitty looking water and distant scenery that looks blurry AF.<p>Even on YouTube at the best quality I can find, there is hardly anything truly relaxing or immersive. Take a random video of the Grand Canyon in VR and everything in the distance is just flat.<p>Colours is also a huge problem. Watch a VR video of someone walking on the beach : the sky is blue yes but a weird half light blue that is nowhere near anything like the kind of brightness of the real sky. It's all deadened and flat.<p>The technology just isn't there. So right now, violent, in your face action is where VR shines. Typically anything that moves, and anything that comes close to the camera gives a much better sense of immersion. I find myself often times almost putting my nose to everything because it's when things are up close that you get that sense of 3D the most. Anything taht is even a couple meters away becomes flat and featureless.<p>Anyway I could just rant on and on. VR is great. The kind of games that currently do well on it do so for a reason. I'd love to just travel in VR, to be immersed on some remote island, basking in the sun, or to listen to the crickets and watch the starry sky.. all those things currently are awful experiences in VR due to the technical limitations.</p>
]]></description><pubDate>Tue, 10 Sep 2024 22:25:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41506221</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=41506221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41506221</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "VanillaJSX.com"]]></title><description><![CDATA[
<p>Thanks I created a custom directive, it's just ten lines of code and it works beautifully. Simply grabbed the `part.parentNode` property. I did the same for a `transition` directive that does something similar to using `appear` in Vue transition to have a nice fade in on first load.</p>
]]></description><pubDate>Tue, 20 Aug 2024 13:54:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=41300108</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=41300108</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41300108</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "VanillaJSX.com"]]></title><description><![CDATA[
<p>I'm having fun using lit-html with vanillajs, after I saw a tweet from Marc Grabanski suggesting he didn't use the full Lit library. Admittedly I am then not taking advantage of all the reactivity goodness, but I also really dislike the decorators syntax and 95% of the time I just don't need the reactivity after the first render.<p>It works great! I was amazed at how you can do so much in templates, it's pretty much everything I could do in Vue templates, though a little more verbose.<p>I built my own `VanillaComponent` class, which has a mount() method which calls the render() function which I define on the child class.<p>My VanillaComponent class looks like this:<p><pre><code>    import { html, render } from "lit-html";
    
    abstract class VanillaComponent {
      abstract render(): ReturnType<typeof html>;
    
      private _mountPoint?: HTMLElement;
    
      mount(this: VanillaComponent, target: HTMLElement) {
        target.textContent = '';
        this._mountPoint = target;
        this._update();
      }
    
      _update() {
        let templateResult = this.render();
        let rootPart = render(templateResult, this._mountPoint!);
      }
    }

</code></pre>
So I can write something like<p><pre><code>    class MyComponent extends VanillaComponent {
      constructor(props: { label: string }) {
        this._props = props;
      }
      
      render() {
        return html`<button>${this._props.foo}</button>`;
      }
    }
</code></pre>
Then I can instance like so:<p><pre><code>    let myComponent = new MyComponent({ label: "I am a button" });
    let target = document.querySelector("#demo");
    myComponent.mount(target);

</code></pre>
The base class stores the root node (target), so later I can do<p><pre><code>    myComponent.update()
</code></pre>
to re-render, taking advantage of lit-html's "diffing" logic.<p>However something I have not been able to solve with lit-html only, is when I compose parent and child components I have to do something like :<p><pre><code>    class MyDialog extends VanillaComponent {
      render() {
        let childComponent ...  // another VanillaComponent previously instanced
        return html`
          <div>
            ${childComponent.render()}
          </div>

</code></pre>
So the child component I need to explicitly call render() to get the TemplateResult for the parent template.<p>But this means I can not do `childComponent.update()`  because I don't know the root element of child component, since I did not mount it explicitly myself.<p>I mean technically because of the lit-html optimizations, I can do `.update()` on myDialog (the parent component) after any child component's props changes, and it will only re-render what is necessary... but let's say my child component has like 1000 cards... it seems very wasteful and it would be ideal if I could re-render only the child.<p>I wonder if there is a trick to get around that with just lit-html?</p>
]]></description><pubDate>Sat, 17 Aug 2024 11:11:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=41273594</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=41273594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41273594</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "VanillaJSX.com"]]></title><description><![CDATA[
<p>Have you looked into lit-html?<p>Coming from Vue I was really surprised it does a lot of what Vue templating does, including attaching events, with just vanilla JS templates. And when you use VSCode lit extension, you get syntax highlighting and full type checking inside the templates.<p>I learned about lit-html after a tweet from Marc Grabanski, where he said he used lit-html with vanillajs, not Lit.<p>After some experimenting I found it works great and it seems like you are trying to solve something very similar.<p>When you use the lit-html template package you can do basically evetything that is described in the Templates chapter<p><a href="https://lit.dev/docs/templates/overview/" rel="nofollow">https://lit.dev/docs/templates/overview/</a><p>... without all the other abstraction of components that are part of lit-element.<p><a href="https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates" rel="nofollow">https://lit.dev/docs/libraries/standalone-templates/#renderi...</a></p>
]]></description><pubDate>Sat, 17 Aug 2024 10:54:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=41273477</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=41273477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41273477</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "A most profound video game: a good cognitive aid for research"]]></title><description><![CDATA[
<p>If you replace "WALL" "IS" "STOP" with icons/images, it's not that interesting anymore imho.<p>At the very least, Captain Blood would come to mind.<p><a href="https://www.abandonware-france.org/ltf_abandon/ltf_galeries.php?id=1696&galerie=9" rel="nofollow">https://www.abandonware-france.org/ltf_abandon/ltf_galeries....</a><p>You have sequences of symbols, with attached mechanics. Arrange the blocks in different order, to get different outcomes.<p>Maybe I'm just grumpy today, I don't see how the game is "profound".<p>edit: I guess what I have in mind is if anything, the fact we can create meaning out of any collection of symbols, and decide waht it means, shows that language is really empty and intelligence is completely outside of language. Language is just a tool.</p>
]]></description><pubDate>Sun, 16 Jun 2024 09:29:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=40695800</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=40695800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40695800</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "London–Calcutta Bus Service"]]></title><description><![CDATA[
<p>Bah I wouldn't be surprised it is actually safer today. Problem is today there are far, far more rules and regulations.</p>
]]></description><pubDate>Tue, 11 Jun 2024 21:13:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=40651560</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=40651560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40651560</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "London–Calcutta Bus Service"]]></title><description><![CDATA[
<p>A damn shame such a cool article has no photos.</p>
]]></description><pubDate>Tue, 11 Jun 2024 21:12:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=40651550</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=40651550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40651550</guid></item><item><title><![CDATA[New comment by AltruisticGapHN in "Vulkan1.3 on the M1 in one month"]]></title><description><![CDATA[
<p>And I think the point is they will then be able to support DXVK to run Direct3D games.</p>
]]></description><pubDate>Wed, 05 Jun 2024 18:25:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=40588496</link><dc:creator>AltruisticGapHN</dc:creator><comments>https://news.ycombinator.com/item?id=40588496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40588496</guid></item></channel></rss>