<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: irjoe</title><link>https://news.ycombinator.com/user?id=irjoe</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 23 Jun 2026 10:53:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=irjoe" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by irjoe in "An Honest Review of Go (2025)"]]></title><description><![CDATA[
<p>I always felt like go channels were more of a clever solution than a good one. Goroutines are a pleasure to work with though.</p>
]]></description><pubDate>Thu, 08 Jan 2026 17:24:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46543688</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=46543688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46543688</guid></item><item><title><![CDATA[New comment by irjoe in "Introducing command And commandfor In HTML"]]></title><description><![CDATA[
<p>Using document.addEventListener means it will work even if the DOM is updated without having to add new event listeners. If I'm not expecting the DOM to change I would be more inclined to do something like:<p><pre><code>  document.querySelectorAll('.menu-wrapper')).forEach(menuWrapper => {
    const button = menuWrapper.querySelector('.menu-opener');
    const content = menuWrapper.querySelector('.menu-content');

    if (!content || !button) {
      return;
    }

    button.addEventListener(() => {
      button.setAttribute('aria-expanded', 'true');
      menu.showPopover();
    });

    content.addEventListener('toggle', e => {
      // reset back to aria-expanded=false on close
      if (e.newState == 'closed') {
        button.setAttribute('aria-expanded', 'false');
      }
    });
  });
</code></pre>
The React example seems a little odd as well, if the "open" callback actually called "showPopover()" instead of only calling "setIsOpen" then the "useEffect" could be entirely redundant. The resulting code would be a lot clearer imo.</p>
]]></description><pubDate>Fri, 07 Mar 2025 22:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=43295267</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=43295267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43295267</guid></item><item><title><![CDATA[New comment by irjoe in "Try thinking and learning without working memory (2008)"]]></title><description><![CDATA[
<p>I don't recall the exact numbers but I had a very similar experience, scoring very highly on spatial reasoning almost to the detriment of everything else.<p>I remember a close friend getting frustrated administering a working memory test on me. She couldn't believe how far removed from the norm my working memory capacity was given everything else she knew about me.</p>
]]></description><pubDate>Wed, 19 Feb 2025 10:52:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43100764</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=43100764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43100764</guid></item><item><title><![CDATA[New comment by irjoe in "I tasted Honda's spicy rodent-repelling tape and I will do it again (2021)"]]></title><description><![CDATA[
<p>I imagine the red blood was very noticeable on the white snow. I might be wrong though.</p>
]]></description><pubDate>Tue, 11 Feb 2025 22:11:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43019025</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=43019025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43019025</guid></item><item><title><![CDATA[Internet Archive Service Availability]]></title><description><![CDATA[
<p>Article URL: <a href="https://archive.org/">https://archive.org/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41842042">https://news.ycombinator.com/item?id=41842042</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 14 Oct 2024 21:08:59 +0000</pubDate><link>https://archive.org/</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=41842042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41842042</guid></item><item><title><![CDATA[New comment by irjoe in "Who Killed the World?"]]></title><description><![CDATA[
<p>I assume you're referring to Kowloon Walled City?</p>
]]></description><pubDate>Thu, 18 Jul 2024 10:45:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=40994328</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=40994328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40994328</guid></item><item><title><![CDATA[New comment by irjoe in "Tougher rules for sellers of internet-enabled devices in the UK"]]></title><description><![CDATA[
<p>I'm not sure that's entirely true in the UK. The Polish plumber taking British jobs is a fairly common trope in far-right discourse. I believe this is prevalent across Western Europe in general.</p>
]]></description><pubDate>Tue, 30 Apr 2024 09:43:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=40209020</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=40209020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40209020</guid></item><item><title><![CDATA[New comment by irjoe in "Shell scripting with Elixir"]]></title><description><![CDATA[
<p>You can also use anonymous functions if you find the module syntax a little terse or clunky for shell scripting.<p><pre><code>    double = fn a -> add.(a, a) end
    double.(4)
</code></pre>
It starts to look a bit like a weird untyped OCaml / F# if you use pattern matching:<p><pre><code>    f = fn
      x, y when x > 0 -> x + y
      x, y -> x * y
    end</code></pre></p>
]]></description><pubDate>Tue, 13 Feb 2024 10:02:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=39356170</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=39356170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39356170</guid></item><item><title><![CDATA[New comment by irjoe in "Requirements (2007)"]]></title><description><![CDATA[
<p>Would Be Nice Ifs, maybe?</p>
]]></description><pubDate>Sun, 28 May 2023 12:59:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=36103615</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=36103615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36103615</guid></item><item><title><![CDATA[New comment by irjoe in "It's time to stop texting"]]></title><description><![CDATA[
<p>It was already fairly popular in the UK prior to being acquired by Facebook.</p>
]]></description><pubDate>Wed, 11 Jan 2023 20:20:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=34344061</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=34344061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34344061</guid></item><item><title><![CDATA[New comment by irjoe in "I don't usually wear a bike helmet. Does that make me an idiot?"]]></title><description><![CDATA[
<p>I live in a smaller city in the UK so my experience is likely much different from those living in larger cities.<p>I never wear a helmet when riding a bike and used to commute daily. I've never had an accident involving traffic and have come off my bike less than a handful of times commuting. It seems like the odds of me coming off my bike and hitting my head is very low.<p>I'm not averse to helmets I just don't think wearing one makes sense for my commute. I'd rather wear a woolen hat. I do wear a helmet when I go rock climbing and would probably wear one if I was commuting in London.</p>
]]></description><pubDate>Tue, 20 Dec 2022 11:50:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=34064620</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=34064620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34064620</guid></item><item><title><![CDATA[New comment by irjoe in "Ask HN: Preferred word to describe “Unnecessarily complainsome grumpy person”?"]]></title><description><![CDATA[
<p>curmudgeon</p>
]]></description><pubDate>Tue, 20 Dec 2022 10:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=34064171</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=34064171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34064171</guid></item><item><title><![CDATA[New comment by irjoe in "Emacs 29 is nigh"]]></title><description><![CDATA[
<p>> 2. Any advice about automatic whitespace/indentation handling with Emacs?<p>I use prettier-mode and editorconfig-mode. Everything is formatted on save so works well for me.</p>
]]></description><pubDate>Tue, 29 Nov 2022 16:40:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=33789770</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=33789770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33789770</guid></item><item><title><![CDATA[New comment by irjoe in "To make programming easier, first be conscious of what makes it hard (2014)"]]></title><description><![CDATA[
<p>There's an inherent difficulty in making difficult things easy. I think we're more likely to improve the ergonomics of writing software rather than make it easier for others to translate business logic into code.<p>I like to think that making software easier to write will just free up more capital to be spent on other software problems. I haven't seen many software projects where the client doesn't compromise features due to budget or time.</p>
]]></description><pubDate>Fri, 13 Aug 2021 23:40:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=28176220</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=28176220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28176220</guid></item><item><title><![CDATA[New comment by irjoe in "Where in the HypeCycle is GraphQL?"]]></title><description><![CDATA[
<p>I really wish the GraphQL alias syntax supported something like:<p><pre><code>  query {
    users {
      email: contact.email
    }
  }</code></pre></p>
]]></description><pubDate>Tue, 13 Jul 2021 15:24:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27822096</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=27822096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27822096</guid></item><item><title><![CDATA[New comment by irjoe in "On Repl-Driven Programming"]]></title><description><![CDATA[
<p>Interesting. I do the same thing in Elixir where I'll attach an iex session to a Phoenix application so I can interrogate modules and APIs as I'm building them out.<p>I'm slightly disappointed that it's already something I do day to day. I had hoped that the power of the REPL wasn't overstated.</p>
]]></description><pubDate>Sun, 03 Jan 2021 17:17:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=25623117</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=25623117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25623117</guid></item><item><title><![CDATA[New comment by irjoe in "On Repl-Driven Programming"]]></title><description><![CDATA[
<p>Is there a simple way to get code I write in a lisp REPL back into my editor? That's the part missing for me and why I usually only use interactive shells (REPL or otherwise) for testing APIs or small pieces of code.<p>I can't imagine writing a program in its entirety in a REPL.</p>
]]></description><pubDate>Sun, 03 Jan 2021 17:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=25622990</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=25622990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25622990</guid></item><item><title><![CDATA[New comment by irjoe in "Deploying front-end websites to S3 with CloudFront"]]></title><description><![CDATA[
<p>I've found a fairly workable solution is to have an origin for the API in CloudFront and a behaviour to route /api/* to that origin. Saves any CORS headaches. Obviously this won't work in all cases.</p>
]]></description><pubDate>Sat, 15 Feb 2020 21:42:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=22338193</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=22338193</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22338193</guid></item><item><title><![CDATA[New comment by irjoe in "Programming Patterns I Like"]]></title><description><![CDATA[
<p>Quite the opposite :) My preference would be to rely on pattern matching (unification) in the function head:<p><pre><code>    def transform_data([_|[]]) do: []
</code></pre>
I just wanted an example of using guard clauses. It does depend on the actual code though, there's probably a more elixiry solution.</p>
]]></description><pubDate>Sun, 30 Jun 2019 09:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=20317225</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=20317225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20317225</guid></item><item><title><![CDATA[New comment by irjoe in "Programming Patterns I Like"]]></title><description><![CDATA[
<p>You're right, they're not really "early returns" but for me at least they are often in similar fashion to the "early exit" pattern in the article:<p><pre><code>    def transform_data(raw_data) when length(raw_data) == 1, do: []
    def transform_data(raw_data) do
        # actual function code goes here
    end
</code></pre>
That said, I wouldn't want to see the above snippet in my team's codebase :)</p>
]]></description><pubDate>Sat, 29 Jun 2019 13:36:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=20312489</link><dc:creator>irjoe</dc:creator><comments>https://news.ycombinator.com/item?id=20312489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20312489</guid></item></channel></rss>