<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: gf000</title><link>https://news.ycombinator.com/user?id=gf000</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 23:59:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gf000" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>> Most OSS only supports as many distros as people are willing to test<p>Linux distros don't differ too significantly from each other nowadays (systemd plus a different package manager most of the time), so I'm almost sure this is not the source of problems.<p>Nonetheless, I can only add that we have ridiculous slowdowns in some standard library network calls on Linux, and at that point it is just not true that it will "seamlessly run on Linux", unfortunately.</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:59:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47700207</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47700207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47700207</guid></item><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>> that a union must preserve the structural hierarchy of the united types, e.g. a union of unions must be different from a union of all types included in the component unions, and the same for a union of optional types, where an optional type is equivalent with a union between the void/null type and the non-optional type<p>This is exactly the difference between simple union types and discriminated unions. This c# feature is what typescript has, not what Haskell/java/f#, etc.</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:45:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47700106</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47700106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47700106</guid></item><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>I don't think these are discriminated. From the docs:<p>> Union types — exhaustive matching over a closed set of types<p>> Closed hierarchies — exhaustive matching over a sealed class hierarchy<p>> Closed enums — exhaustive matching over a fixed set of enum values<p>I believe the last one would be sum types (disc. unions). This one allows overlapping types.</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:43:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47700094</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47700094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47700094</guid></item><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>I think your "sealed" is misleading here, as that is used for <i>sum types</i> in similar languages (java).<p>As the language designer notes in the comments, these are named unions, as opposed to anonymous ones, but they are also working on the latter.<p>"Sealed" is probably not the correct word to use here, as it would be sealed in both case (it doesn't really make sense to "add" a type to the A | B union). The difference is that you have to add a definition and name it.</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:37:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47700059</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47700059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47700059</guid></item><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>But now you can only call methods that are available for both T and IEnumerable<T>, you have no way of knowing which it actually is. (You would know if it were sum types)</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:30:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47700006</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47700006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47700006</guid></item><item><title><![CDATA[New comment by gf000 in "Union types in C# 15"]]></title><description><![CDATA[
<p>Careful not to mix unions with sum types, though. The key distinction is that the latter are disjunct sets, even if you "sum" together the same type twice, you can always tell which "way" you went.<p>An example that may show the difference: if you have a language with nullable types, then you basically have a language with union types like String|Null, where the Null type has a single value called `null` and String can not be null.<p>Now if you pass this around a function that itself may return `null`, then your type coalesces to String|Null still (you still get a nullable string, there is no doubly nullable). This is not true for Maybe/Option whatever you call types, where Some(None) (or Optional.of(Optional.empty())) is different from None only.<p>Rich Hickey once made a case that sort of became controversial in some FP circles, that the former can sometimes be preferred (e.g. at public API surfaces), as in for a parameter you take a non-nullable String but for returns you return a String|Null. In this case you can have an API-compatible change widening the input parameters' type, or restricting the return type - meanwhile with sum types you would have to do a refactor because Maybe String is not API compatible with String.</p>
]]></description><pubDate>Thu, 09 Apr 2026 06:22:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47699947</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47699947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47699947</guid></item><item><title><![CDATA[New comment by gf000 in "Teardown of unreleased LG Rollable shows why rollable phones aren't a thing"]]></title><description><![CDATA[
<p>It slides behind a glass panel on the back, so I don't think that's true.</p>
]]></description><pubDate>Wed, 08 Apr 2026 19:43:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47695282</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47695282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47695282</guid></item><item><title><![CDATA[New comment by gf000 in "Project Glasswing: Securing critical software for the AI era"]]></title><description><![CDATA[
<p>Well, just prompt it to fix the issue!<p>/s</p>
]]></description><pubDate>Tue, 07 Apr 2026 21:59:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47681866</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47681866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47681866</guid></item><item><title><![CDATA[New comment by gf000 in "Microsoft hasn't had a coherent GUI strategy since Petzold"]]></title><description><![CDATA[
<p>Sure, but you could have had a uniform design language for the last 3 or so frameworks.</p>
]]></description><pubDate>Mon, 06 Apr 2026 07:10:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47657802</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47657802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47657802</guid></item><item><title><![CDATA[New comment by gf000 in "Lisette a little language inspired by Rust that compiles to Go"]]></title><description><![CDATA[
<p>These are all great qualities of rust, but they would not have been enough to make a dent.<p>Being memory safe without being managed is what makes rust a truly novel and interesting language for which it rightfully gets the hype.</p>
]]></description><pubDate>Sun, 05 Apr 2026 12:40:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47648793</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47648793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47648793</guid></item><item><title><![CDATA[New comment by gf000 in "Lisette a little language inspired by Rust that compiles to Go"]]></title><description><![CDATA[
<p>There are an endless number of modern MLs that do the same thing. That's not a novelty - Rust was novel in making it part of a low-level language.</p>
]]></description><pubDate>Sun, 05 Apr 2026 08:42:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47647394</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47647394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47647394</guid></item><item><title><![CDATA[New comment by gf000 in "Claude Code's source code has been leaked via a map file in their NPM registry"]]></title><description><![CDATA[
<p>I think it's a very reasonable tradeoff, getting 99% of true positives at the fraction of cost (both runtime and engineering).<p>Besides, they probably do a separate analysis on server side either way, so they can check a true positive to false positive ratio.</p>
]]></description><pubDate>Tue, 31 Mar 2026 13:17:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47586932</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47586932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47586932</guid></item><item><title><![CDATA[New comment by gf000 in "Bird brains (2023)"]]></title><description><![CDATA[
<p>There is a difference between a problem being complex and you try to find a solution to it (hard), vs a program being complex. The latter is trivial to <i>execute</i>, but that is entirely different from analysing it.</p>
]]></description><pubDate>Tue, 31 Mar 2026 11:20:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47585728</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47585728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47585728</guid></item><item><title><![CDATA[New comment by gf000 in "Coding agents could make free software matter again"]]></title><description><![CDATA[
<p>Well, GPL is good but I think this setup would still be a local optimum for gigacorps, were it MIT or so. They are using plenty of MIT libraries, e.g. Harfbuzz.<p>It would just simply not make sense for them to let other companies' improvements go out of the window, unless they can directly monetize it. So it doesn't apply to every project, but especially these low-lying ones would be safe even without any sensible license.</p>
]]></description><pubDate>Tue, 31 Mar 2026 07:44:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583989</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47583989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583989</guid></item><item><title><![CDATA[New comment by gf000 in "Bird brains (2023)"]]></title><description><![CDATA[
<p>Moving a complex system of muscles so that they can just stand upright is already very very complex, let alone intercepting a prey's movement mid-flight by just controlling all those muscles.<p>People way overestimate the actually intelligent part of LLMs vs simply being good at recalling context-related stuff from the training data.</p>
]]></description><pubDate>Tue, 31 Mar 2026 07:41:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583968</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47583968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583968</guid></item><item><title><![CDATA[New comment by gf000 in "Bird brains (2023)"]]></title><description><![CDATA[
<p>Except there are like 600 million cats worldwide..</p>
]]></description><pubDate>Tue, 31 Mar 2026 07:35:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583930</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47583930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583930</guid></item><item><title><![CDATA[New comment by gf000 in "Bird brains (2023)"]]></title><description><![CDATA[
<p>That's oversimplifying the topic to some catchy lyrics' lines level.<p>Birds burn a <i>ton</i> of energy flying (at least the birds in question here, other birds can glide for long times), it's not something they would willingly do to no ends.</p>
]]></description><pubDate>Tue, 31 Mar 2026 07:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583897</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47583897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583897</guid></item><item><title><![CDATA[New comment by gf000 in "Coding agents could make free software matter again"]]></title><description><![CDATA[
<p>Well, is slightly modified regurgitated code a copy or not? We have yet to have it answered in the age of AI, but e.g. I could not be selling Mickey Mouse merch with a simple color filter on for long.</p>
]]></description><pubDate>Mon, 30 Mar 2026 09:39:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47572295</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47572295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47572295</guid></item><item><title><![CDATA[New comment by gf000 in "Coding agents could make free software matter again"]]></title><description><![CDATA[
<p>Yeah, the funny thing that Linux being open-source is absolutely in line with capitalism. Just look at the list of maintainers - they are almost all paid employees of gigacorps.<p>It is just an optimization that makes sense -- writing an OS that is compatible with all sorts of hardware is hard, let alone one that is performant, checked for vulnerabilities, etc.<p>Why would each gigacorp waste a bunch of money on developing their own, when they could just spend a tiny bit to improve a specific area they deeply care about, and benefit from all the other changes financed by other companies.</p>
]]></description><pubDate>Mon, 30 Mar 2026 09:35:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47572268</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47572268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47572268</guid></item><item><title><![CDATA[New comment by gf000 in "Cocoa-Way – Native macOS Wayland compositor for running Linux apps seamlessly"]]></title><description><![CDATA[
<p>Yeah, why stick to the inferior kernel used by macs with a worse package manager? Like something like nix is just superior in every sense.</p>
]]></description><pubDate>Sat, 28 Mar 2026 19:58:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47557696</link><dc:creator>gf000</dc:creator><comments>https://news.ycombinator.com/item?id=47557696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47557696</guid></item></channel></rss>