<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: SebastianKra</title><link>https://news.ycombinator.com/user?id=SebastianKra</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Jul 2026 23:20:10 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=SebastianKra" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by SebastianKra in "Advertise in ChatGPT"]]></title><description><![CDATA[
<p>When I walk around my increasingly billboard-infested hometown. I observe that almost every ad actually nudges me in some way: whether I should switch internet providers, whether my financial strategy is fine, what kind of scam this tabloid newspaper is running, etc...<p>I believe most people are influenced by these constant micro-impressions far more than they realize.<p>My best defense is to build a resentment towards the companies being advertised.</p>
]]></description><pubDate>Wed, 22 Jul 2026 11:10:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49004857</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=49004857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49004857</guid></item><item><title><![CDATA[New comment by SebastianKra in "If you want to create a button from scratch, you must first create the universe"]]></title><description><![CDATA[
<p>Standard practice in every decent frontend framework has been to create a component, that wraps the <button> without rendering its own dom node. This avoids the typical downsides of inheritance.<p>Can we not just do `:host { display: contents }` and use the same approach?</p>
]]></description><pubDate>Thu, 16 Jul 2026 08:10:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48931633</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48931633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48931633</guid></item><item><title><![CDATA[New comment by SebastianKra in "Your 'app' could have been a webpage (so I fixed it for you)"]]></title><description><![CDATA[
<p>1. You can download & install PWAs for offline use too.<p>2. This isn't true for apps anymore. Server driven ui is a thing.<p>3. JS runs locally. You can inspect the network traffic more easily than you can with an app.<p>4. You can audit OSS websites too.<p>5. Your personal preferences have nothing to do with the fact that Apple makes tons of money from apps but not websites.</p>
]]></description><pubDate>Wed, 15 Jul 2026 20:27:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48926606</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48926606</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48926606</guid></item><item><title><![CDATA[New comment by SebastianKra in "Show HN: Ant – A JavaScript runtime and ecosystem"]]></title><description><![CDATA[
<p>Whenever I'm bored, I go to the ant-design site to see how long it takes to find the first gross accessibility violation. This time it was the dropdown just above the fold, which wasn't keyboard controllable.</p>
]]></description><pubDate>Sun, 12 Jul 2026 08:42:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48879447</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48879447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48879447</guid></item><item><title><![CDATA[New comment by SebastianKra in "Resetting Xbox"]]></title><description><![CDATA[
<p>It's a combination of two things that never should have been normalized:<p>- Steam forces game updates, even for single player games.<p>- terrible delta updates. Baldurs Gate 3 had 8 patches in 3 Years. That's 800GB of updates.<p>If a patch drops on the afternoon you planned with your friends, you're not playing that night (actually happened to us). Both decisions should have caused outcries, but I guess people would rather overpay for fast internet contracts.</p>
]]></description><pubDate>Tue, 07 Jul 2026 13:52:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48817872</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48817872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48817872</guid></item><item><title><![CDATA[New comment by SebastianKra in "Parse, Don't Validate – In a Language That Doesn't Want You To"]]></title><description><![CDATA[
<p>I wonder what you're doing that you need to type it so often. I almost never use it in application code (outside of tests and generic utilities).<p>There are some techniques that aren't immediately obvious. Look into...<p>- type guards<p>- pushing constraints up: `function print(i: Invoice & { issueDate: string })` is better than `assert(i.issueDate)`<p>- discriminated unions</p>
]]></description><pubDate>Tue, 30 Jun 2026 17:37:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48736252</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48736252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48736252</guid></item><item><title><![CDATA[New comment by SebastianKra in "What was nice about the UI of Windows 2000"]]></title><description><![CDATA[
<p>Depends on the app, but mostly they're better than in the past.</p>
]]></description><pubDate>Fri, 19 Jun 2026 10:55:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48597139</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48597139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48597139</guid></item><item><title><![CDATA[New comment by SebastianKra in "What was nice about the UI of Windows 2000"]]></title><description><![CDATA[
<p>> I would have no idea, but I could discover the answer with a little bit of exploration and a good understanding of how UIs are supposed to work.<p>I don't get this. Many things like changing the IP or audio devices were so unintuitive that I just memorized them. They're still burned into my brain. In Win 11, you just search for 'IP', click 'Ethernet-Settings', done.<p>Same for the signifiers: In the Win 11 Settings, give me an example of an element that is not obviously clickable. Everything has button shapes, or step-in indicators.<p>To be clear, I'm neutral towards that settings app. But UI back then was nowhere near as good as claimed here, and flat design (at least the current iteration) isn't to blame for Teams being bad.</p>
]]></description><pubDate>Thu, 18 Jun 2026 22:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48592713</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48592713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48592713</guid></item><item><title><![CDATA[New comment by SebastianKra in "Lettera: A Refined Markdown Document Editor"]]></title><description><![CDATA[
<p>This is a side-project by the team behind Bear, a notes app with the least annoying ~~wysiwyg markdown editor~~. Least annoying rich text editor.<p>It took them ~4 years to ship this editor, and it shows. They managed to find the perfect balance between formatting markdown as you type and minimizing content shift. It's feature-rich while still providing the interoperability I expect from Markdown.</p>
]]></description><pubDate>Thu, 18 Jun 2026 18:43:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48589669</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48589669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48589669</guid></item><item><title><![CDATA[New comment by SebastianKra in "Siri AI"]]></title><description><![CDATA[
<p>Thx, I'll switch to that. Somehow "everywhere" works on my phone but not my watch.</p>
]]></description><pubDate>Wed, 10 Jun 2026 11:04:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48474498</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48474498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48474498</guid></item><item><title><![CDATA[New comment by SebastianKra in "Siri AI"]]></title><description><![CDATA[
<p>"Siri, lights out everywhere" - "okay, which room".<p>"Siri, start a stopwatch" - runs the App "Stopwatch" without starting it<p>Such errors happen maybe 50% of the time. You can never just ask something without double-checking afterwards.</p>
]]></description><pubDate>Tue, 09 Jun 2026 06:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457312</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48457312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457312</guid></item><item><title><![CDATA[New comment by SebastianKra in "Apple WWDC 2026"]]></title><description><![CDATA[
<p>If you view it like that, any argument against openness could be made in the name of privacy. With that interpretation, the Mac is terrible for privacy as you could just chose to install an app that reads your hard drive.<p>"We can't bring Time Machine to Europe, because we would have to allow other backup solutions, and that would mean other backups would have unrestricted access to your data"<p>Maybe there's more to it, but I'm not giving Apple the benefit of the doubt after their hostile strategy regarding third-party app stores.</p>
]]></description><pubDate>Mon, 08 Jun 2026 18:41:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48449562</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48449562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48449562</guid></item><item><title><![CDATA[New comment by SebastianKra in "Conventional Commits encourages focus on the wrong things"]]></title><description><![CDATA[
<p>Whatever describes the change better. Sometimes the issue is easier to describe "fix: car steers in slalom". Where the solution would have been subtle interaction between 3 different components that only occurs in 3rd gear.</p>
]]></description><pubDate>Sat, 06 Jun 2026 12:47:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48424563</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48424563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48424563</guid></item><item><title><![CDATA[New comment by SebastianKra in "Conventional Commits encourages focus on the wrong things"]]></title><description><![CDATA[
<p>yep. I'm on the fence about types generally, but "fix:" saves/standardizes a bunch of phrases like "fix an issue where", "prevent" or having to invert the message by describing the solution instead.</p>
]]></description><pubDate>Fri, 05 Jun 2026 16:22:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48414708</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48414708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48414708</guid></item><item><title><![CDATA[New comment by SebastianKra in "Does anybody like React?"]]></title><description><![CDATA[
<p>Maybe it's a me-thing, but when I see the creators of a system I trust basically deprecate it, then I try to re-evaluate my viewpoint. Also, when I read the post a few years back, I honestly thought that it must have been a product of its time.<p>> Every UI is <i>always</i> some mapping of the state.<p>Sure, but it previously wasn't described as such. It was described as a list of imperative operations "if x do that" (unless the developer just gave up and had a giant refreshEverything() function).
IIRC, at the time, MVC had a common problem of controller bloat, precisely because it was trying to perform the reconciliation between view and model imperatively rather than simply describing it as a function. MVVM solved this partially with data-binding, but depending on the framework, you still had lackluster handling of derived state inside the view-model.<p>> What does "pure representation" mean to you?<p>I mean that, the render function of the component is a 100% pure function of the state that the framework injects. By "render function" I mean everything except the statements beginning with `use...`. Those are just React's syntax for defining the component. Another framework such as SwiftUI might have defined them outside the function.<p>> But can you elaborate the <i>specific</i> advantages you believe the react approach gives us over, say, MVC?<p>There are so many resources on this, so I don't know what I can say to convince you, but I'll try:<p>* The Compiler. Regardless of whether you think it’s self-inflicted complexity (I don’t), functional patterns generally are easier to statically analyze and transform.<p>* Transitions, concurrent rendering, suspense, & time-slicing. All of these are possible by rendering components with outdated state. A low priority update may trigger a loading state and defer its commit. Meanwhile, high priority updates can continue to work as usual. In the past ~2 years, this is easily where I've seen the most UX & DX gains in frontend.<p>* Most importantly: readability. Even if components are only 90% pure, I still see side-effects and state clearly marked. Even in MVVM, I've seen so much spaghetti from my coworkers. In  React & post-React frameworks, when debugging a component, I have a much narrower range of things I need to check. For example, I don't have to worry that an object I'm reading from is being mutated by a component on a completely different route.<p>Overall, the reason why this post rubs me the wrong way, is that you took a theoretical design document, misunderstood it for the actual, practical implementation and snarked at the authors for not going with the "obviously correct" solution of OOP. Not seeing the bigger picture in 2018 is understandable, but now it's... interesting.</p>
]]></description><pubDate>Tue, 26 May 2026 16:44:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48282218</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48282218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48282218</guid></item><item><title><![CDATA[New comment by SebastianKra in "Does anybody like React?"]]></title><description><![CDATA[
<p>Interesting that you still stand by that, even after Apple moved to the exact same model with Swift UI.<p>Narrowmindedly worrying about syntactical differences is contributing nothing to the conversation. The point is relinquishing control of state to the framework (be it via props, hooks or @State), and drawing the UI as a pure representation of whatever the framework tells you. Hence ui = f(state). This gets you a metric ton of advantages, which is why every modern framework is doing it.<p>Classes, by themselves, are inadequate as containers for state unless that state must only exist in memory and never be observed, synchronized or serialized. You can attempt to patch that with decorators, ORMs or whatever, but now you're doing the same thing as React is doing with functions.</p>
]]></description><pubDate>Tue, 26 May 2026 10:51:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48277920</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48277920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48277920</guid></item><item><title><![CDATA[New comment by SebastianKra in "On The <dl> (2021)"]]></title><description><![CDATA[
<p>I don't want that. I don't want to care about screen readers (unfortunately I have to). I want a system where I can pick well-defined rules and then css can style it, screen readers will understand it, automations can parse it, keyboard navigation is free.<p>Obviously thats not what we got, but I feel like the set of established UI patterns is manageable enough that it <i>could</i> be built.<p>A great example is the new <select> styling that developers styled in all kinds of creative ways. Now give me that for comboboxes, trees, data-grids etc...</p>
]]></description><pubDate>Sat, 23 May 2026 18:24:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48249938</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48249938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48249938</guid></item><item><title><![CDATA[New comment by SebastianKra in "Cursor Introduces Composer 2.5"]]></title><description><![CDATA[
<p>It seems obvious that they plan to eventually drop VSCode. 
I'd be willing to take them up on that offer. Their agent window is genuinely better as a starting point.<p>What annoys me is how little they want to integrate with ...anything. Wanna open a link in your default browser? Use our built-in chromium fork, we insist. Wanna open a location in Zed? No, please use our half-baked editor re-implementation. Wanna open a location in <i>Cursors own vscode-based editor</i>? You can't. Managed to work around that somehow? We changed your files to "Worktree TS", disabling all your language servers. It's like programming on an iPhone.</p>
]]></description><pubDate>Tue, 19 May 2026 17:52:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48196697</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48196697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48196697</guid></item><item><title><![CDATA[New comment by SebastianKra in "I’ve banned query strings"]]></title><description><![CDATA[
<p>You're conflating correctly targeted ads and useful information.<p>If you sell gambling ads to an addicted gambler, the gambler doesn't get useful information.<p>Niche interests might get a pass. But then again: if I’m getting an ad for a 3D printing product on a 3D printing review site, its very likely that the advertised product wasn’t actually the best and is just artificially pushed on me.</p>
]]></description><pubDate>Mon, 11 May 2026 07:00:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48091866</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48091866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48091866</guid></item><item><title><![CDATA[New comment by SebastianKra in "I’ve banned query strings"]]></title><description><![CDATA[
<p>Textbook marketing speak: “Don't you <i>want</i> more relevant ads?”.<p>It assumes that “ads” = useful information, but that's rare at best. Most ads focus on stealing your attention and creating a fear of missing out. NordVPN isn't educating you. They just manufacture a need and then hope that you won't invest time in researching a better option.<p>Why would I give them more leverage to do that?</p>
]]></description><pubDate>Sun, 10 May 2026 14:43:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084407</link><dc:creator>SebastianKra</dc:creator><comments>https://news.ycombinator.com/item?id=48084407</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084407</guid></item></channel></rss>