<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: gabes</title><link>https://news.ycombinator.com/user?id=gabes</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 02 Jul 2026 00:13:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gabes" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gabes in "Parse, Don't Validate – In a Language That Doesn't Want You To"]]></title><description><![CDATA[
<p>I think this misses what is undeniably the best part about zod. Yes, you could define all of your types this way, but it’s only necessary at the boundary of the program. Internal functions don’t need to validate inputs if the caller is trusted.<p>Being able to define a loose input schema at the boundary and then transform it into a shape that your program actually needs is extremely useful.</p>
]]></description><pubDate>Tue, 30 Jun 2026 17:46:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48736388</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=48736388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48736388</guid></item><item><title><![CDATA[New comment by gabes in "I am a person who will look at the Steam Machine and cry"]]></title><description><![CDATA[
<p>The entitlement of the gaming “community” is next to none.<p>I did what you said last year and it’s been a delight.</p>
]]></description><pubDate>Tue, 23 Jun 2026 18:34:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48649344</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=48649344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48649344</guid></item><item><title><![CDATA[Building a Robust Documentation Agent with DigitalOcean Gradient AI Platform]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.digitalocean.com/blog/documentation-agent">https://www.digitalocean.com/blog/documentation-agent</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47756191">https://news.ycombinator.com/item?id=47756191</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 13 Apr 2026 18:38:38 +0000</pubDate><link>https://www.digitalocean.com/blog/documentation-agent</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=47756191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47756191</guid></item><item><title><![CDATA[New comment by gabes in "OpenAI looked at buying Cursor creator before turning to Windsurf"]]></title><description><![CDATA[
<p>This is exactly what I would do too if AGI was just around the corner.</p>
]]></description><pubDate>Fri, 18 Apr 2025 01:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43723923</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=43723923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43723923</guid></item><item><title><![CDATA[New comment by gabes in "Litdb – type safe SQL for JavaScript/TS"]]></title><description><![CDATA[
<p>What does a migration look like with something like this?</p>
]]></description><pubDate>Fri, 06 Dec 2024 01:44:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=42335204</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=42335204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42335204</guid></item><item><title><![CDATA[New comment by gabes in "Amazon to invest another $4B in Anthropic"]]></title><description><![CDATA[
<p>Meta doesn’t buy competition?</p>
]]></description><pubDate>Fri, 22 Nov 2024 21:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=42217357</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=42217357</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42217357</guid></item><item><title><![CDATA[New comment by gabes in "Most of what you read on the internet is written by insane people (2018)"]]></title><description><![CDATA[
<p>You should have read the post before commenting.</p>
]]></description><pubDate>Mon, 19 Sep 2022 14:11:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=32898571</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=32898571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32898571</guid></item><item><title><![CDATA[React Facade: Strongly typed dependency injection for your React hooks]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/garbles/react-facade">https://github.com/garbles/react-facade</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31914915">https://news.ycombinator.com/item?id=31914915</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 29 Jun 2022 00:23:49 +0000</pubDate><link>https://github.com/garbles/react-facade</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=31914915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31914915</guid></item><item><title><![CDATA[Notes on maintaining an internal React component library]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.gabe.pizza/notes-on-component-libraries/">https://www.gabe.pizza/notes-on-component-libraries/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31766429">https://news.ycombinator.com/item?id=31766429</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 16 Jun 2022 14:25:57 +0000</pubDate><link>https://www.gabe.pizza/notes-on-component-libraries/</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=31766429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31766429</guid></item><item><title><![CDATA[New comment by gabes in "Britain being forced to go cashless 'against its will'"]]></title><description><![CDATA[
<p>I was asking because American right wing news has frequently lied about what was happening here in Canada. To my knowledge there hasn’t been a single report of a frozen bank account over a donation except for some debunked tweet by a Canadian conservative politician.<p>Thus, I asked for a source.</p>
]]></description><pubDate>Sun, 03 Apr 2022 13:11:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=30896623</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=30896623</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30896623</guid></item><item><title><![CDATA[New comment by gabes in "Britain being forced to go cashless 'against its will'"]]></title><description><![CDATA[
<p>> Even people who donated to the truckers before the crackdown got targeted in the bank account freezes.<p>Source?</p>
]]></description><pubDate>Thu, 31 Mar 2022 06:03:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=30864279</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=30864279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30864279</guid></item><item><title><![CDATA[New comment by gabes in "Ask HN: Why can't await be used from non-async functions?"]]></title><description><![CDATA[
<p>This isn't _exactly_ true. JS will await on anything that is Promiselike (an object with a `then` function that accepts a callback). See the TS definition of Promiselike.</p>
]]></description><pubDate>Mon, 28 Feb 2022 18:03:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=30502885</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=30502885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30502885</guid></item><item><title><![CDATA[Cloud Design Patterns]]></title><description><![CDATA[
<p>Article URL: <a href="https://docs.microsoft.com/en-us/azure/architecture/patterns/">https://docs.microsoft.com/en-us/azure/architecture/patterns/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29848566">https://news.ycombinator.com/item?id=29848566</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 08 Jan 2022 04:14:56 +0000</pubDate><link>https://docs.microsoft.com/en-us/azure/architecture/patterns/</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=29848566</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29848566</guid></item><item><title><![CDATA[New comment by gabes in "Show HN: Concave, a lens-like state management library for React"]]></title><description><![CDATA[
<p>I've both personally and professionally worked on builder-type applications in the past and found that lenses are always the most elegant way to do state management. Over the past month I decided to hack on a general purpose library for React and lenses with the end goal of coming up with something that felt _good_ to use. Cheers!</p>
]]></description><pubDate>Mon, 27 Dec 2021 16:37:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=29703920</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=29703920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29703920</guid></item><item><title><![CDATA[Show HN: Concave, a lens-like state management library for React]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/garbles/concave">https://github.com/garbles/concave</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29703919">https://news.ycombinator.com/item?id=29703919</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Mon, 27 Dec 2021 16:37:47 +0000</pubDate><link>https://github.com/garbles/concave</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=29703919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29703919</guid></item><item><title><![CDATA[New comment by gabes in "React Facade: Dependency injection for React hooks"]]></title><description><![CDATA[
<p>I think this suggestion highlights why I'm not a fan of the module-level mocking approach. It puts the onus on the developer to ensure that type checks are present where they wouldn't otherwise be. On larger teams, I've found that stuff like that is too easy to forget about or choose not to do.</p>
]]></description><pubDate>Mon, 05 Jul 2021 16:06:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=27739332</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=27739332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27739332</guid></item><item><title><![CDATA[New comment by gabes in "React Facade: Dependency injection for React hooks"]]></title><description><![CDATA[
<p>Yeah that’s fair. Not sure about you, but in the past I’ve struggled with keeping Jest module-level mocks in sync with their actual interface. Was playing around with how I could get around it and this is something I came up with.</p>
]]></description><pubDate>Mon, 05 Jul 2021 03:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27734329</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=27734329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27734329</guid></item><item><title><![CDATA[React Facade: Dependency injection for React hooks]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/garbles/react-facade">https://github.com/garbles/react-facade</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27733346">https://news.ycombinator.com/item?id=27733346</a></p>
<p>Points: 2</p>
<p># Comments: 4</p>
]]></description><pubDate>Sun, 04 Jul 2021 23:07:50 +0000</pubDate><link>https://github.com/garbles/react-facade</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=27733346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27733346</guid></item><item><title><![CDATA[New comment by gabes in "The 'Fuck You' Pattern"]]></title><description><![CDATA[
<p>Ah of course. Shows how I hold my bias toward Facebook :facepalm:</p>
]]></description><pubDate>Tue, 29 Jun 2021 03:49:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=27671544</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=27671544</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27671544</guid></item><item><title><![CDATA[New comment by gabes in "The 'Fuck You' Pattern"]]></title><description><![CDATA[
<p>Speaking of fuck you patterns, has anyone else been part of the A/B test where navigating to an Instagram page prevents you from using the back button? They somehow clean my tab history so that I can’t go back to Google. It’s been happening to me for months!</p>
]]></description><pubDate>Mon, 28 Jun 2021 20:38:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=27667744</link><dc:creator>gabes</dc:creator><comments>https://news.ycombinator.com/item?id=27667744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27667744</guid></item></channel></rss>