<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: panstromek</title><link>https://news.ycombinator.com/user?id=panstromek</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 15 May 2026 18:27:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=panstromek" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by panstromek in "Tell HN: Docker pull fails in Spain due to football Cloudflare block"]]></title><description><![CDATA[
<p>Yea, when there's a match, our app stops playing videos in Spain and we get some bad reviews. It's pretty annoying.</p>
]]></description><pubDate>Mon, 13 Apr 2026 07:01:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47748636</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47748636</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47748636</guid></item><item><title><![CDATA[New comment by panstromek in "Bouncer: Block "crypto", "rage politics", and more from your X feed using AI"]]></title><description><![CDATA[
<p>I will join the others and say you should just leave twitter: <a href="https://yoyo-code.com/you-should-delete-twitter/" rel="nofollow">https://yoyo-code.com/you-should-delete-twitter/</a></p>
]]></description><pubDate>Sun, 12 Apr 2026 20:26:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47744094</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47744094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47744094</guid></item><item><title><![CDATA[New comment by panstromek in "JSON formatter Chrome plugin now closed and injecting adware"]]></title><description><![CDATA[
<p>That makes sense, because JWT is base64 encoded, and those base64 tokens are bigger and more expensive. JWT has 3 parts, so it's 3x more expensive, obviously.</p>
]]></description><pubDate>Sat, 11 Apr 2026 09:36:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47729060</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47729060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47729060</guid></item><item><title><![CDATA[New comment by panstromek in "Starfling: A one-tap endless orbital slingshot game in a single HTML file"]]></title><description><![CDATA[
<p>Also, the game is much faster on desktop, looks like it's maybe not framerate independent?</p>
]]></description><pubDate>Sat, 11 Apr 2026 08:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47728747</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47728747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47728747</guid></item><item><title><![CDATA[New comment by panstromek in "Starfling: A one-tap endless orbital slingshot game in a single HTML file"]]></title><description><![CDATA[
<p>The game is pretty fun. Page height is a bit wrong on mobile, you probably need some dvh height?</p>
]]></description><pubDate>Sat, 11 Apr 2026 08:34:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47728715</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47728715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47728715</guid></item><item><title><![CDATA[New comment by panstromek in "JSON formatter Chrome plugin now closed and injecting adware"]]></title><description><![CDATA[
<p>Depends on how many JSON tokens you need to format. I recommend getting JSON ForMAX+ with 200k tokens and 100k sign in bonus.</p>
]]></description><pubDate>Fri, 10 Apr 2026 20:03:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47722989</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47722989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47722989</guid></item><item><title><![CDATA[New comment by panstromek in "Post Mortem: axios NPM supply chain compromise"]]></title><description><![CDATA[
<p>Actually, from the OP, the timeline is:<p>> March 31, 00:21 UTC: axios@1.14.1 published with plain-crypto-js@4.2.1 injected<p>> March 31, around 01:00 UTC: axios@0.30.4 published with the same payload<p>> March 31, around 01:00 UTC: first external detections<p>> March 31, around 01:00 UTC: community members file issues reporting the compromise. The attacker deletes them using the compromised account.<p>So it was found out almost immediately.</p>
]]></description><pubDate>Sat, 04 Apr 2026 07:10:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47636667</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47636667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47636667</guid></item><item><title><![CDATA[New comment by panstromek in "Post Mortem: axios NPM supply chain compromise"]]></title><description><![CDATA[
<p>Well, the hack didn't survive more than 2-3 hours if I'm not mistaken. I don't think that counts as "nobody acted on it."</p>
]]></description><pubDate>Sat, 04 Apr 2026 07:05:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47636628</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47636628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47636628</guid></item><item><title><![CDATA[New comment by panstromek in "Solar and batteries can power the world"]]></title><description><![CDATA[
<p>As far as I understood it, it only talks about electricity, so that doesn't seem like a contradiction to me. I think some electrification of heating is expected in 2030, but not that much bigger than it is now.</p>
]]></description><pubDate>Fri, 03 Apr 2026 15:18:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47627688</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47627688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47627688</guid></item><item><title><![CDATA[New comment by panstromek in "Significant Raise of Reports"]]></title><description><![CDATA[
<p>The parent comments references real world data from Google: <a href="https://security.googleblog.com/2024/09/eliminating-memory-safety-vulnerabilities-Android.html" rel="nofollow">https://security.googleblog.com/2024/09/eliminating-memory-s...</a></p>
]]></description><pubDate>Thu, 02 Apr 2026 13:10:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47613995</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47613995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47613995</guid></item><item><title><![CDATA[New comment by panstromek in "Claude wrote a full FreeBSD remote kernel RCE with root shell"]]></title><description><![CDATA[
<p>The talk "Black-Hat LLMs" just came out a few days ago:<p><a href="https://www.youtube.com/watch?v=1sd26pWhfmg" rel="nofollow">https://www.youtube.com/watch?v=1sd26pWhfmg</a><p>Looks like LLMs are getting good at finding and exploiting these.</p>
]]></description><pubDate>Wed, 01 Apr 2026 10:07:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47598915</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47598915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47598915</guid></item><item><title><![CDATA[New comment by panstromek in "Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller"]]></title><description><![CDATA[
<p>Yea, passing `-movflags +faststart` to ffmpeg when processing the file should be enough.</p>
]]></description><pubDate>Wed, 25 Mar 2026 09:42:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47515209</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47515209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47515209</guid></item><item><title><![CDATA[New comment by panstromek in "Show HN: I took back Video.js after 16 years and we rewrote it to be 88% smaller"]]></title><description><![CDATA[
<p>If you don't need to switch versions at runtime (ABR), you don't even need to chunk it manully. Your server has to support range requests and then the browser does the reasonable thing automatically.<p>The simplest option is to use some basic object storage service and it'll usually work well out of the box (I use DO Spaces with built-in CDN, that's basically it).</p>
]]></description><pubDate>Wed, 25 Mar 2026 08:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47514864</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47514864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47514864</guid></item><item><title><![CDATA[New comment by panstromek in "The three pillars of JavaScript bloat"]]></title><description><![CDATA[
<p>That's good and arguably the right default for most websites.</p>
]]></description><pubDate>Sun, 22 Mar 2026 13:20:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47477246</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47477246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47477246</guid></item><item><title><![CDATA[New comment by panstromek in "The three pillars of JavaScript bloat"]]></title><description><![CDATA[
<p>Yea, honestly you probably just don't understand. FE frameworks solve a specific problem and they don't make sense unless you understand that problem. That TSoding video is a prime example of that - it chooses a trivial instance of that problem and then acts like the whole problem space is trivial.<p>To be fair, React is especially wasteful way to solve that problem. If you want to look at the state od the art, something like Solid makes a lot more sense.<p>It's much easier to appreciate that problem if you actually try to build complex interactive UI with vanilla JS (or something like jQuery). Once you have complex state dependency graph and DOM state to preserve between rerenders, it becomes pretty clear.</p>
]]></description><pubDate>Sun, 22 Mar 2026 07:31:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47475278</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47475278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47475278</guid></item><item><title><![CDATA[New comment by panstromek in "Vite 8.0 Is Out"]]></title><description><![CDATA[
<p>> Most integration tests are not thread safe and make assumptions about running against an empty database. Which if you think about it, is exactly how no user except your first user will ever use your system.<p>Yea, cypress has this in their anti-patterns:<p><a href="https://docs.cypress.io/app/core-concepts/best-practices#Using-after-Or-afterEach-Hooks" rel="nofollow">https://docs.cypress.io/app/core-concepts/best-practices#Usi...</a><p>Dangling state is useful for debugging when the test fails, you don't want to clean that up.<p>This has been super useful practice in my experience. I really like to be able to run tests regardless of my application state. It's faster and over time it helps you hit and fixup various issues that you only encounter after you fill the database with enough data.</p>
]]></description><pubDate>Fri, 13 Mar 2026 15:30:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47365794</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47365794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47365794</guid></item><item><title><![CDATA[The key insight for programming with LLMs effectively]]></title><description><![CDATA[
<p>Article URL: <a href="https://yoyo-code.com/the-key-insight-for-programming-with-llms-effectively/">https://yoyo-code.com/the-key-insight-for-programming-with-llms-effectively/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47265729">https://news.ycombinator.com/item?id=47265729</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 05 Mar 2026 18:59:15 +0000</pubDate><link>https://yoyo-code.com/the-key-insight-for-programming-with-llms-effectively/</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47265729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47265729</guid></item><item><title><![CDATA[New comment by panstromek in "Agentic Engineering Patterns"]]></title><description><![CDATA[
<p>>  It feels a little tricky to square these up sometimes.<p>In my experience, this heavily depends on the task, and there's a massive chasm between tasks where it's a good and bad fit. I can definitely imagine people working only on one side of this chasm and being perplexed by the other side.</p>
]]></description><pubDate>Wed, 04 Mar 2026 10:14:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47245441</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47245441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47245441</guid></item><item><title><![CDATA[New comment by panstromek in "Ladybird adopts Rust, with help from AI"]]></title><description><![CDATA[
<p>> There must be a really good reason for this, such as Rust doesn’t interop well with C++<p>Yea, I'd bet it's that. Ideally, you'd want to stop writing C++ and continue with Rust on all new code, but Rust has stricter semantics, so the interop is somewhat "easy" in one direction, but very hairy in the other direction.<p>This means that in practice, you want to start porting from leaf components and slowly grow closer to the root, which stays in C++ for quite some time and just calls into Rust through C API (or something close to it).<p>If you're curious about the topic, there's a interop library called Zngur (<a href="https://hkalbasi.github.io/zngur/" rel="nofollow">https://hkalbasi.github.io/zngur/</a>), which is built on this assumption. They have a pretty good explanation of the concrete problems on the homepage.</p>
]]></description><pubDate>Wed, 25 Feb 2026 09:45:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47149455</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47149455</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47149455</guid></item><item><title><![CDATA[New comment by panstromek in "Ladybird adopts Rust, with help from AI"]]></title><description><![CDATA[
<p>Lot of DOM APIs are like that. You have methods like element.[parent|children]() which implies circular structure, and then you have APIs like element.click(), which emits a click event that bubbles through the DOM - which means that element has to have some mutable reference to the DOM state. Or even element.remove(), which seems like a super weird api to have on an element of a collection, from Rust API design point of view.<p>You can model these with reference counting, but this turned out unfeasible in browsers. There's a great talk from when Blink (Chrome) transitioned from reference counting to GC, which provides a lot more details about these problems in practice: <a href="https://www.youtube.com/watch?v=_uxmEyd6uxo" rel="nofollow">https://www.youtube.com/watch?v=_uxmEyd6uxo</a><p>> I'd get it if they were writing the UI in this, but the rest of this post is about the JS engine.<p>I think this might be the reason they started with the JS engine and not with some more fundamental browser structures. JS object model has these problems, too, but the engine has to solve them in more generic way. All JS objects can just be modeled as some JSObject class/struct where this is handled on the engine level.<p>DOM and other browser structures are different because the engine has to understand them, so the browser developers have to interact with the GC manually and if you watch the talk above, you'll see that it's quite involved to do even in C++, let alone in Rust, which puts a bunch of restrictions on top of that.</p>
]]></description><pubDate>Tue, 24 Feb 2026 07:08:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47133820</link><dc:creator>panstromek</dc:creator><comments>https://news.ycombinator.com/item?id=47133820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47133820</guid></item></channel></rss>