<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: felixfbecker</title><link>https://news.ycombinator.com/user?id=felixfbecker</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 31 Aug 2026 12:07:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=felixfbecker" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by felixfbecker in "Any application that can be written in a system language, eventually will be"]]></title><description><![CDATA[
<p>The author makes the argument that in the age of LLMs more type safe languages will be more successful than less type safe ones. But how does that support the claim that Go is more suitable than JavaScript? TypeScript is more type safe than Go: Go doesn’t validate nil pointers, it doesn’t enforce fields to be set when initializing structs, it has no support for union types. All those things can cause runtime errors that are caught are caught at compile time in TypeScript.</p>
]]></description><pubDate>Tue, 27 Jan 2026 03:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46775348</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=46775348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46775348</guid></item><item><title><![CDATA[New comment by felixfbecker in "The browser is the sandbox"]]></title><description><![CDATA[
<p>That is like saying the kernel/sandbox hypervisor can access those things. The point is that the sandboxed code cannot. In browsers, code from one origin cannot access those things from another origin unless explicitly enabled with CORS.</p>
]]></description><pubDate>Mon, 26 Jan 2026 07:23:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46762788</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=46762788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46762788</guid></item><item><title><![CDATA[New comment by felixfbecker in "MCP Specification – version 2025-06-18 changes"]]></title><description><![CDATA[
<p>MCP doesn't force models to output JSON, quite the opposite. Tool call results in MCP are text, images, audio — the things models naturally output. The whole point of MCP is to make APIs digestable to LLMs</p>
]]></description><pubDate>Thu, 19 Jun 2025 07:37:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44316382</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=44316382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44316382</guid></item><item><title><![CDATA[New comment by felixfbecker in "SVG favicons in action"]]></title><description><![CDATA[
<p>An SVG doesn't need to support scripting. When you load an SVG through an <img> tag for example, no <script>s run either (only if you use <iframe>,  <object>, or inline in HTML5). When you serve the SVG (or the HTML it is inlined in) with a CSP that doesn't allow inline scripts, no scripts run. It's totally possible to render an SVG without scripts (most SVGs do not contain scripts) and various mechanisms for this are already implemented in browsers.</p>
]]></description><pubDate>Tue, 27 May 2025 23:40:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=44111589</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=44111589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44111589</guid></item><item><title><![CDATA[New comment by felixfbecker in "IETF setting standards for AI preferences"]]></title><description><![CDATA[
<p>OpenAI and Anthropic respect robots.txt afaik</p>
]]></description><pubDate>Sat, 22 Mar 2025 18:05:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43447471</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=43447471</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43447471</guid></item><item><title><![CDATA[New comment by felixfbecker in "A look at Firefox forks"]]></title><description><![CDATA[
<p>Microsoft contributes a lot of web standard implementations upstream to Chromium. They are not just letting Google do all the work as your comment makes it sound like. They could have chosen to do the same with Firefox, which means the reason to fork Chromium and not Firefox had other reasons.</p>
]]></description><pubDate>Sun, 16 Mar 2025 01:30:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=43376344</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=43376344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43376344</guid></item><item><title><![CDATA[New comment by felixfbecker in "What If Data Is a Bad Idea?"]]></title><description><![CDATA[
<p>Right, I use a browser extension that automatically declines consent.<p>On my personal homepage I also use anonymous, privacy-preserving, GDPR-compliant analytics that doesn't require prompts. Other websites made a choice.</p>
]]></description><pubDate>Thu, 22 Aug 2024 19:37:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=41323714</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=41323714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41323714</guid></item><item><title><![CDATA[New comment by felixfbecker in "I avoid async/await in JavaScript (2022)"]]></title><description><![CDATA[
<p>That's basically how goroutines work in Go. You opt into concurrency with the `go` keyword, while it's blocking by default. While in JS it's concurrent by default and you opt-in to blocking with the `await` keyword. (Except in Go you have true parallelism for CPU-bound tasks too, while in JS it's only for I/O)<p>Both have their pros and cons. I've seen problems in Go codebases where some I/O operation blocks the main thread because it's not obvious through the stack that something _should_ best be run concurrently and it's easy to ignore until it gets worse (at which point it's annoying to debug).</p>
]]></description><pubDate>Tue, 13 Aug 2024 23:07:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41240781</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=41240781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41240781</guid></item><item><title><![CDATA[New comment by felixfbecker in "Fake job interviews are securities fraud"]]></title><description><![CDATA[
<p>Any public information eventually is priced into the stock price by the market.<p>Say you buy the stock even though you didn't read the DEI statement, but other people bought the stock before you having read it. Their purchases drove up the stock price, so you had to pay more for the stock. You got defrauded of the delta. Especially if now it comes out, the price goes down, and you make losses.</p>
]]></description><pubDate>Wed, 31 Jul 2024 04:03:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=41116332</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=41116332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41116332</guid></item><item><title><![CDATA[New comment by felixfbecker in "Node.js adds experimental support for TypeScript"]]></title><description><![CDATA[
<p>I think the kind of teams that always stay on top of the latest TypeScript version and use the latest language features are also more likely to always stay on top of the latest Node versions. In my experience TypeScript upgrades actually more often need migrations/fixes for new errors than Node upgrades.
Teams that don't care about latest V8 and Node features and always stay on LTS probably also care less about the latest and greatest TypeScript features.</p>
]]></description><pubDate>Thu, 25 Jul 2024 17:23:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=41071127</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=41071127</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41071127</guid></item><item><title><![CDATA[New comment by felixfbecker in "Node.js adds experimental support for TypeScript"]]></title><description><![CDATA[
<p>This is true, but in other cases they added keywords in ways that could work with type stripping. For example, the `as` keyword for casts has existed for a long time, and type stripping could strip everything after the `as` keyword with a minimal grammar.<p>When TypeScript added const declarations, they added it as `as const` so a type stripping could have still worked depending on how loosely it is implemented.<p>I think there is a world where type stripping exists (which the TS team has been in favor of) and the TS team might consider how it affects type stripping in future language design. For example, the `satisfies` keyword could have also been added by piggy-backing on the `as` keyword, like:<p><pre><code>    const foo = { bar: 1 } as subtype of Foo
</code></pre>
(I think not using `as` is a better fit semantically but this could be a trade-off to make for better type stripping backwards compatibility)</p>
]]></description><pubDate>Thu, 25 Jul 2024 17:21:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=41071098</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=41071098</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41071098</guid></item><item><title><![CDATA[New comment by felixfbecker in "Responsive bar charts in HTML and CSS"]]></title><description><![CDATA[
<p>> In SVG, all shapes are absolutely positioned. Text does not wrap automatically.<p>This is not really true — you can position elements inside the SVG coordinate system using percentages and you can mix absolute coordinates and percentages. This allows you to have elements grow and shrink in reaction to width and height without distortion.<p>Wrapping text is possible with <foreignObject>, simply let HTML/CSS do the text layout wherever you need text within the SVG.<p>However it is still true that you usually want to do a bunch of calculations in JS based on the width to know how many chart ticks you want, how many labels, etc. But that is pretty easy to compute with the helpers from D3.</p>
]]></description><pubDate>Sat, 13 Jul 2024 03:21:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40951503</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40951503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40951503</guid></item><item><title><![CDATA[New comment by felixfbecker in "YouTube embeds are heavy and it’s fixable"]]></title><description><![CDATA[
<p>I continue to be baffled how many websites rely on YouTube embeds to show videos, especially marketing/brand websites where you don't usually want other unrelated logos on the page. It's really not that hard to self-host and embed videos, there has been native support since HTML5.</p>
]]></description><pubDate>Mon, 08 Jul 2024 01:42:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40901965</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40901965</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40901965</guid></item><item><title><![CDATA[New comment by felixfbecker in "SVG: The Good, the Bad, and the Ugly (2021)"]]></title><description><![CDATA[
<p>If you just use it in the browser, <svg> is all you need. The browser is smart enough to parse it as SVG based on the context (e.g. if it's embedded inside HTML, if it's linked from an <img>, or if it's served as Content-Type: image/svg+xml). And you can omit the version.</p>
]]></description><pubDate>Sat, 22 Jun 2024 18:39:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=40761140</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40761140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40761140</guid></item><item><title><![CDATA[New comment by felixfbecker in "SVG: The Good, the Bad, and the Ugly (2021)"]]></title><description><![CDATA[
<p>> In SVG land, there is no way to orient around a multiline text box's corners, you can only align the baseline of the first line of text. In fact, there is no way to set a width on a box and have text wrap to the next line when it hits said width. Etc., etc.<p>You can use <foreignElement> and just include HTML text with all CSS text layout capabilities to achieve that. It won't work in Illustrator or Figma, but it's fine for the web. I honestly am somewhat okay with that, let HTML+CSS handle what it's already best at instead of duplicating functionality into SVG.<p>The z-index is somewhat annoying for accessibility though, because the DOM order also determines the accessibility tree order, so it's not always possible to reorder the DOM to re-arrange the z-order without breaking screen reader order.</p>
]]></description><pubDate>Sat, 22 Jun 2024 00:38:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40755239</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40755239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40755239</guid></item><item><title><![CDATA[New comment by felixfbecker in "SVG: The Good, the Bad, and the Ugly (2021)"]]></title><description><![CDATA[
<p>It would be amazing if browsers just implemented all the features that were already specified in SVG2. Currently it seems like any new spec work on features that would be amazing for the web (e.g. SVG connectors) has been completely paused because browsers haven't even implemented what has already been spec'ed over a decade ago.</p>
]]></description><pubDate>Sat, 22 Jun 2024 00:34:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=40755218</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40755218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40755218</guid></item><item><title><![CDATA[New comment by felixfbecker in "SVG: The Good, the Bad, and the Ugly (2021)"]]></title><description><![CDATA[
<p><script> in SVGs is also not a concern nowadays if you use a CSP (even for user-uploaded content).</p>
]]></description><pubDate>Sat, 22 Jun 2024 00:31:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=40755210</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40755210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40755210</guid></item><item><title><![CDATA[New comment by felixfbecker in "Why we no longer use LangChain for building our AI agents"]]></title><description><![CDATA[
<p>On top of that, if you use the TypeScript version, the abstractions are often... weird. They feel like verbatim ports of the Python implementations. Many things are abstracted in ways that are not very type-safe and you'd design differently with type safety in mind. Some classes feel like they only exist to provide some structure in a language without type safety (Python) and wouldn't really need to exist with structural type checking.</p>
]]></description><pubDate>Fri, 21 Jun 2024 20:16:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=40753355</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=40753355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40753355</guid></item><item><title><![CDATA[New comment by felixfbecker in "Why can't my mom email me?"]]></title><description><![CDATA[
<p>I personally think S/MIME is better than PGP. The "key exchange problem" is solved more pragmatically and user-friendly (send an unencrypted but signed email once, your/their client will automatically remember keys for encryption afterwards). And most pre-installed email clients support S/MIME natively (e.g. Apple Mail, Outlook, even the web email apps).<p>The only annoyance is that it's too difficult to acquire a certificate as an individual, but e.g. Actalis [1] will issue one for free.<p>[1] <a href="https://www.actalis.com/s-mime-certificates.aspx" rel="nofollow">https://www.actalis.com/s-mime-certificates.aspx</a></p>
]]></description><pubDate>Thu, 11 Apr 2024 03:03:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=39998010</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=39998010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39998010</guid></item><item><title><![CDATA[New comment by felixfbecker in "What even is a JSON number?"]]></title><description><![CDATA[
<p>and different currencies have different default precisions. So if you're dealing with multiple currencies, now you need both client and server to have a map of all currency precisions for formatting purposes that they agree on.<p>What's worse is that these things can also change over time and there is sometimes disagreement over what the canonical value is.<p>E.g. ISO 4217 (used by Safari, Firefox and NodeJS) will say that the Indonesian Rupiah (IDR) uses 2 decimal digits, while Unicode CLDR (used by Chrome) will say that they use 0 decimal digits. The former is the more "legalistic" definition, while the latter matches how people use the currency in reality.<p>This is not a real issue if you transfer amounts as decimal strings and then pass those to the Intl API for formatting (the formatting will just be different but still <i>correct</i>), but it's catastrophic if you use scaled-up integers (all amounts will be off by magnitudes).<p>For this reason I would always store currency amounts in an appropriate DECIMAL type in the DB and send currency amounts as strings over the wire.</p>
]]></description><pubDate>Tue, 02 Apr 2024 02:11:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=39901664</link><dc:creator>felixfbecker</dc:creator><comments>https://news.ycombinator.com/item?id=39901664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39901664</guid></item></channel></rss>