<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: wa1987</title><link>https://news.ycombinator.com/user?id=wa1987</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 17 May 2026 10:39:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=wa1987" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by wa1987 in "A Formal Theory of Spaghetti Code"]]></title><description><![CDATA[
<p>State charts / FSM's work wonders in these situations.</p>
]]></description><pubDate>Sat, 12 Mar 2022 20:52:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=30654772</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=30654772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30654772</guid></item><item><title><![CDATA[New comment by wa1987 in "Advice on JSX Conditionals"]]></title><description><![CDATA[
<p>For these situations I often use IFFEs with if-statements and early returns inside.</p>
]]></description><pubDate>Wed, 09 Mar 2022 18:47:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=30618447</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=30618447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30618447</guid></item><item><title><![CDATA[New comment by wa1987 in "Code optimizations when using async/await"]]></title><description><![CDATA[
<p>What's the pros/cons vs Promise.all([...])?</p>
]]></description><pubDate>Tue, 04 Jan 2022 15:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=29795718</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=29795718</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29795718</guid></item><item><title><![CDATA[New comment by wa1987 in "Racket 8.1"]]></title><description><![CDATA[
<p>There's Clojure too.</p>
]]></description><pubDate>Fri, 07 May 2021 10:49:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=27074488</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=27074488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27074488</guid></item><item><title><![CDATA[New comment by wa1987 in "Starting a TypeScript Project in 2021"]]></title><description><![CDATA[
<p>> Please stop spreading this misnomer.<p>That's a fairly… direct way of putting it :-)<p>Anyway:<p>1. What are the key differences in terms of usage and use cases?<p>2. Why isn't Deno a 'wholesale' replacement for Node?<p>3. In which respect are the vastly differently inner workings relevant in regards to usage of both products?</p>
]]></description><pubDate>Wed, 21 Apr 2021 14:12:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=26889945</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=26889945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26889945</guid></item><item><title><![CDATA[New comment by wa1987 in "I Am Bezos"]]></title><description><![CDATA[
<p>"Money earned"</p>
]]></description><pubDate>Mon, 22 Feb 2021 09:47:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=26222572</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=26222572</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26222572</guid></item><item><title><![CDATA[New comment by wa1987 in "What color was “Apple Beige”?"]]></title><description><![CDATA[
<p>One of your best bets might be the vintage keyboard community:<p>- <a href="https://www.modelfkeyboards.com/" rel="nofollow">https://www.modelfkeyboards.com/</a><p>- <a href="https://deskthority.net/" rel="nofollow">https://deskthority.net/</a><p>- <a href="https://geekhack.org/" rel="nofollow">https://geekhack.org/</a></p>
]]></description><pubDate>Wed, 27 Jan 2021 15:02:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=25929001</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25929001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25929001</guid></item><item><title><![CDATA[New comment by wa1987 in "Run More Stuff in Docker"]]></title><description><![CDATA[
<p>There’s no need to in my situation. 99% of the files are dependencies installed through Composer (PHP) while building the Dockerfile. The few directories I need to work on directly are bind mounts and don’t have much impact on overall runtime performance.</p>
]]></description><pubDate>Sun, 27 Dec 2020 02:08:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=25548211</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25548211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25548211</guid></item><item><title><![CDATA[New comment by wa1987 in "Run More Stuff in Docker"]]></title><description><![CDATA[
<p>> On a Mac, there is a major performance hit whenever you do disk IO in a bind mount (i.e. voluming a directory of the host system into the container). Working without bind mounts is extremely limiting. [..] If you’re using Docker on a Mac and you’ve never tried it on Linux, you owe it to yourself to try it on Linux.<p>Or use named volumes. I'm running a dockerized WordPress dev environment on my MacBook with average TTFB's of 40 ms.</p>
]]></description><pubDate>Sat, 26 Dec 2020 23:56:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=25547485</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25547485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25547485</guid></item><item><title><![CDATA[New comment by wa1987 in "A Modern JavaScript Tutorial"]]></title><description><![CDATA[
<p>> - for in loop - for of loop<p>It's 2020 and you still use loops? ;-)<p>source: <a href="https://github.com/buildo/eslint-plugin-no-loops" rel="nofollow">https://github.com/buildo/eslint-plugin-no-loops</a></p>
]]></description><pubDate>Mon, 07 Dec 2020 19:04:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=25335787</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25335787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25335787</guid></item><item><title><![CDATA[New comment by wa1987 in "A Modern JavaScript Tutorial"]]></title><description><![CDATA[
<p>Agreed. I find myself using a pretty small subset of the language which definitely doesn't include the class keyword. Doubt I'll ever find it useful.</p>
]]></description><pubDate>Mon, 07 Dec 2020 18:57:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=25335692</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25335692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25335692</guid></item><item><title><![CDATA[New comment by wa1987 in "A Modern JavaScript Tutorial"]]></title><description><![CDATA[
<p>Often times operations are order-independent. Specifying those as sequential `await`-s does not make a lot of sense in those situations. I guess less fine grained control is desirable under such circumstances :-)<p>There's also other useful utilities such as Promise.all(), Promise.any() and Promise.race().</p>
]]></description><pubDate>Mon, 07 Dec 2020 18:44:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=25335492</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25335492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25335492</guid></item><item><title><![CDATA[New comment by wa1987 in "A Modern JavaScript Tutorial"]]></title><description><![CDATA[
<p>Well, it's complicated :-)<p><a href="https://stackoverflow.com/questions/36419713/are-es6-classes-just-syntactic-sugar-for-the-prototypal-pattern-in-javascript" rel="nofollow">https://stackoverflow.com/questions/36419713/are-es6-classes...</a></p>
]]></description><pubDate>Mon, 07 Dec 2020 18:34:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=25335375</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25335375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25335375</guid></item><item><title><![CDATA[New comment by wa1987 in "macOS unable to open any non-Apple application"]]></title><description><![CDATA[
<p>> Well, how interesting that Apple's software is going to be bypassing Little Snitch, making it harder to discover and fix this sort of issue.<p>Source?</p>
]]></description><pubDate>Thu, 12 Nov 2020 23:07:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=25076499</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=25076499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25076499</guid></item><item><title><![CDATA[New comment by wa1987 in "The - -var: ; hack to toggle multiple values with one custom property"]]></title><description><![CDATA[
<p><a href="https://every-layout.dev/" rel="nofollow">https://every-layout.dev/</a> is downright amazing for learning how to write robust layouts</p>
]]></description><pubDate>Wed, 14 Oct 2020 09:55:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=24774899</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24774899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24774899</guid></item><item><title><![CDATA[New comment by wa1987 in "Thinking About Recursion"]]></title><description><![CDATA[
<p>Recursion never really clicked and felt intimidating <i>until</i> I read "How to Design Programs":<p><a href="https://htdp.org/2020-8-1/Book/part_two.html" rel="nofollow">https://htdp.org/2020-8-1/Book/part_two.html</a><p>By far the greatest educational piece I've come across on this subject matter.</p>
]]></description><pubDate>Sun, 11 Oct 2020 13:38:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=24745685</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24745685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24745685</guid></item><item><title><![CDATA[New comment by wa1987 in "Applying “make invalid states unrepresentable”"]]></title><description><![CDATA[
<p>Related video on this subject: <a href="https://www.youtube.com/watch?v=IcgmSRJHu_8" rel="nofollow">https://www.youtube.com/watch?v=IcgmSRJHu_8</a></p>
]]></description><pubDate>Mon, 05 Oct 2020 09:03:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=24685874</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24685874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24685874</guid></item><item><title><![CDATA[New comment by wa1987 in "Open-source self-hosted comments systems for static websites"]]></title><description><![CDATA[
<p>> I usually modify HTML forms so that they won’t work and fix them with javascript. This gives me almost zero spam.<p>Interesting. One would assume that most spammers use automated browsers with JavaScript enabled.</p>
]]></description><pubDate>Sun, 04 Oct 2020 10:43:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=24677885</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24677885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24677885</guid></item><item><title><![CDATA[New comment by wa1987 in "An Honest Review of Gatsby"]]></title><description><![CDATA[
<p>> If a static site generator put my images in the wrong place and required a gigantic JSON file to be loaded by the client for no reason I would not think twice to get rid of it.<p>Incorrect DOM-output is likely caused by common mistakes (e.g. conditional rendering based on `typeof window !== 'undefined'`) which screw up rehydration. Dealt with it in the past and seen a lot of developers struggle with it. This article describes it well:<p><a href="https://joshwcomeau.com/react/the-perils-of-rehydration/" rel="nofollow">https://joshwcomeau.com/react/the-perils-of-rehydration/</a><p>Gigantic page-data.json files are caused by querying more data than necessary to render a given template/component. Let's say you define a component named `EmployeeCard` that renders a name and photo given an `employeeId`. Now you need to query <i>all</i> employees and render the right one using `.find()`. All this data (including base64 thumbnails) ends up in page-data.json, even if you need to render a only single employee.<p>This is solved by querying only the relevant employee(s) in the template and provide the data (name + photo) directly to the `EmployeeCard` component as props.<p>I've developed quite a few websites using Gatsby (mostly backed by various GraphQL API's such as WPGraphQL and Strapi) and while there's lots to learn, it's been an enjoyable experience so far.</p>
]]></description><pubDate>Sat, 03 Oct 2020 18:43:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=24673871</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24673871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24673871</guid></item><item><title><![CDATA[New comment by wa1987 in "Why is OOP still so widely spread?"]]></title><description><![CDATA[
<p>Maybe he's referring to closures.</p>
]]></description><pubDate>Thu, 03 Sep 2020 08:29:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=24361935</link><dc:creator>wa1987</dc:creator><comments>https://news.ycombinator.com/item?id=24361935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24361935</guid></item></channel></rss>