<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: knlam</title><link>https://news.ycombinator.com/user?id=knlam</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 09 Sep 2026 22:57:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=knlam" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by knlam in "Pnpm 12.0"]]></title><description><![CDATA[
<p>just why pnpm? you are stable, you are loved by the community. Now you feel the need to throw it away to rewrite for what? Can anybody give me a good explaination</p>
]]></description><pubDate>Thu, 27 Aug 2026 06:56:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49460860</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=49460860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49460860</guid></item><item><title><![CDATA[New comment by knlam in "App Store Rejection of the Week: Dark Hours"]]></title><description><![CDATA[
<p>You are dealing with unreasonable party here. Like the game theory, you have to think what is the next best move. I bet you have not deal with appstore review before, I remember last time even mention google or android in privacy policy will get your app rejected</p>
]]></description><pubDate>Sat, 08 Aug 2026 06:40:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49219399</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=49219399</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49219399</guid></item><item><title><![CDATA[Why the future is local app]]></title><description><![CDATA[
<p>Article URL: <a href="https://getapps.cafe/blog/why-the-future-is-local-app">https://getapps.cafe/blog/why-the-future-is-local-app</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49105924">https://news.ycombinator.com/item?id=49105924</a></p>
<p>Points: 41</p>
<p># Comments: 76</p>
]]></description><pubDate>Thu, 30 Jul 2026 03:44:38 +0000</pubDate><link>https://getapps.cafe/blog/why-the-future-is-local-app</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=49105924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49105924</guid></item><item><title><![CDATA[New comment by knlam in "Ask HN: What Are You Working On? (July 2026)"]]></title><description><![CDATA[
<p>I created a setapp alternative at <a href="https://getapps.cafe" rel="nofollow">https://getapps.cafe</a>. 40 local-first apps and counting and yes I use claude code to help building all these apps (and I do read the code). It is so much easier now to start and create small, self contained apps and I do the future is local/privacy by default apps</p>
]]></description><pubDate>Mon, 13 Jul 2026 02:18:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887069</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=48887069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887069</guid></item><item><title><![CDATA[Show HN: Getapps.cafe – I built 40 native Mac apps under one subscription]]></title><description><![CDATA[
<p>For the past while my launch strategy has been: start drafting this post, decide the catalog needs one more app before it's ready, go build that instead. That worked about 40 times in a row. This post is what running out of excuses looks like.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48833427">https://news.ycombinator.com/item?id=48833427</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 08 Jul 2026 15:41:33 +0000</pubDate><link>https://getapps.cafe/</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=48833427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48833427</guid></item><item><title><![CDATA[New comment by knlam in "Native all the way, until you need text"]]></title><description><![CDATA[
<p>Thanks for this post. This will be my bible for the "electron bad" crowd</p>
]]></description><pubDate>Mon, 18 May 2026 03:24:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48175221</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=48175221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48175221</guid></item><item><title><![CDATA[New comment by knlam in "Local AI needs to be the norm"]]></title><description><![CDATA[
<p>you know what is the hard part about local ai? Supporting it cross platform. The OP get it easy by playing in Apple ecosystem but when you need to support local AI to both iOS/Android the approach is completely different. Even get the users to download the smallest models can be a challenge</p>
]]></description><pubDate>Mon, 11 May 2026 02:54:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48090574</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=48090574</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48090574</guid></item><item><title><![CDATA[New comment by knlam in "Adobe modifies hosts file to detect whether Creative Cloud is installed"]]></title><description><![CDATA[
<p>Yearly reminder that Adobe CC is malware. Open your Activity Monitor on your Mac and see how much craps CC run on your computer</p>
]]></description><pubDate>Tue, 07 Apr 2026 02:27:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47670043</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=47670043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47670043</guid></item><item><title><![CDATA[New comment by knlam in "Don't Build Multi-Agents"]]></title><description><![CDATA[
<p>The best one is google ADK, I must say they are quite thoughful of all the use cases</p>
]]></description><pubDate>Tue, 02 Sep 2025 09:37:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45100837</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=45100837</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45100837</guid></item><item><title><![CDATA[New comment by knlam in "Don't Build Multi-Agents"]]></title><description><![CDATA[
<p>You want to use multiple providers, so if I am not happy with result from gpt, I can switch to perplexity or something else. The power of plug and play is very powerful when you are building agent/subagent systems</p>
]]></description><pubDate>Tue, 02 Sep 2025 09:36:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45100829</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=45100829</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45100829</guid></item><item><title><![CDATA[New comment by knlam in "The current state of LLM-driven development"]]></title><description><![CDATA[
<p>Opening the essay with ~~Learning how to use LLMs in a coding workflow is trivial.~~ and closing with suggestion ~~ Copilot ~~ for AI agent is the worst take of LLM coding I ever saw</p>
]]></description><pubDate>Mon, 11 Aug 2025 06:32:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44861288</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=44861288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44861288</guid></item><item><title><![CDATA[New comment by knlam in "How we built Bluey’s world"]]></title><description><![CDATA[
<p>Thank you, such a good episode. I adore bluey writing</p>
]]></description><pubDate>Tue, 05 Aug 2025 06:32:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44794924</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=44794924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44794924</guid></item><item><title><![CDATA[New comment by knlam in "The hidden cost of AI coding"]]></title><description><![CDATA[
<p>Copilot is just plain bad. The result is day and night compare with cursor + gemini 2.5 (of course with good prompting)</p>
]]></description><pubDate>Thu, 24 Apr 2025 15:30:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43783973</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=43783973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43783973</guid></item><item><title><![CDATA[New comment by knlam in "Everyone knows all the apps on your phone"]]></title><description><![CDATA[
<p>Actually you can via private API, which Apple app use all the time but forbid other app to use<p><a href="https://blog.verichains.io/p/technical-analysis-improper-use-of" rel="nofollow">https://blog.verichains.io/p/technical-analysis-improper-use...</a></p>
]]></description><pubDate>Sun, 30 Mar 2025 08:28:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43522434</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=43522434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43522434</guid></item><item><title><![CDATA[Word-like HTML inline edit with design mode]]></title><description><![CDATA[
<p>Article URL: <a href="https://til.secretgeek.net/google/chrome_design_mode.html">https://til.secretgeek.net/google/chrome_design_mode.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41833820">https://news.ycombinator.com/item?id=41833820</a></p>
<p>Points: 19</p>
<p># Comments: 10</p>
]]></description><pubDate>Mon, 14 Oct 2024 02:58:07 +0000</pubDate><link>https://til.secretgeek.net/google/chrome_design_mode.html</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=41833820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41833820</guid></item><item><title><![CDATA[New comment by knlam in "Hezbollah hand-held radios detonate across Lebanon, sources say"]]></title><description><![CDATA[
<p>In the other thread, HN said Israel can only pull this trick only once and they just did it the second time</p>
]]></description><pubDate>Wed, 18 Sep 2024 15:36:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=41581117</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=41581117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41581117</guid></item><item><title><![CDATA[New comment by knlam in "After 6 years, I'm over GraphQL"]]></title><description><![CDATA[
<p>Working with GraphQL over 6 years, I have seen (and created) many mistakes mentioned in the article. GraphQL is not great but it has worked well for me, you just need to adapt & change mindset to create better interface for your graphQL endpoint.<p>For example, having nested queries more than 2 levels is a no go for me (just like having nested inheritance is basically anti pattern)<p>Focus more on your interface. One way to avoid N+1 and nested query is to required parameter for related fields. For example<p>```<p>user(id: $userId) { {<p><pre><code>  id

  friends {

    id

    ...

  }
</code></pre>
```<p>to<p>```<p>user(id: $userId) {<p><pre><code>  id

  friends(id: $userId) {

    id

    ...

  }
</code></pre>
```</p>
]]></description><pubDate>Thu, 30 May 2024 14:28:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40524170</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=40524170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40524170</guid></item><item><title><![CDATA[New comment by knlam in "What happened with the Web Monetization API?"]]></title><description><![CDATA[
<p>I love crypto. I even built an SDK to make crypto payment easy [0]
However, KYC is there for a reason. Personally, I don't touch any crypto on/offramp service without proper KYC<p>[0] <a href="https://1pay.network" rel="nofollow">https://1pay.network</a></p>
]]></description><pubDate>Wed, 07 Feb 2024 07:51:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=39285744</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=39285744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39285744</guid></item><item><title><![CDATA[New comment by knlam in "StreamDiffusion: A pipeline-level solution for real-time interactive generation"]]></title><description><![CDATA[
<p>Now as a frontend developer I understand how folks complain the frontend landscape change so fast that it is impossible to keep up</p>
]]></description><pubDate>Sun, 24 Dec 2023 03:53:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=38750949</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=38750949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38750949</guid></item><item><title><![CDATA[New comment by knlam in "Show HN: Heynote – A dedicated scratchpad for developers"]]></title><description><![CDATA[
<p>Love this! You just need to add auto evaluate code and done</p>
]]></description><pubDate>Sat, 23 Dec 2023 06:56:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=38742243</link><dc:creator>knlam</dc:creator><comments>https://news.ycombinator.com/item?id=38742243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38742243</guid></item></channel></rss>