<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: troad</title><link>https://news.ycombinator.com/user?id=troad</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 21 Jun 2026 09:27:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=troad" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by troad in "We are Poles, so, of course, we print in Latin"]]></title><description><![CDATA[
<p>Very interesting, thank you for the thoughtful explanation!</p>
]]></description><pubDate>Thu, 28 May 2026 07:21:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48305737</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48305737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48305737</guid></item><item><title><![CDATA[New comment by troad in "Search engines alternatives now that Google isn't Google anymore"]]></title><description><![CDATA[
<p>I note the rule reminder, but I very respectfully raise one hell of an eyebrow at the implication that discussions about ranking the significance of dead children by skin colour ought to be conducted curiously, dispassionately and substantively.</p>
]]></description><pubDate>Thu, 28 May 2026 07:16:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48305708</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48305708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48305708</guid></item><item><title><![CDATA[New comment by troad in "Green card seekers must leave U.S. to apply, Trump administration says"]]></title><description><![CDATA[
<p>I imagine this will continue being walked back into nothingness. It's probably not even legal.</p>
]]></description><pubDate>Wed, 27 May 2026 23:55:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48302411</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48302411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48302411</guid></item><item><title><![CDATA[New comment by troad in "We are Poles, so, of course, we print in Latin"]]></title><description><![CDATA[
<p>Why would the Papacy be exasperated with the Latin Mass movement if it's merely celebrating one of the allowable options?<p>(Genuine question, I'm sure I lack all context.)</p>
]]></description><pubDate>Wed, 27 May 2026 23:38:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48302285</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48302285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48302285</guid></item><item><title><![CDATA[New comment by troad in "Search engines alternatives now that Google isn't Google anymore"]]></title><description><![CDATA[
<p>[flagged]</p>
]]></description><pubDate>Wed, 27 May 2026 23:31:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48302217</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48302217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48302217</guid></item><item><title><![CDATA[New comment by troad in "Tunecat: Simple Internet Radio"]]></title><description><![CDATA[
<p>Haha, I'm not too young for that, but I think that was a fairly fringe use case even then. Most people were never on IRC.<p>In the late 90s / early 2000s Internet radio would probably have made me think of RealPlayer, and shortly thereafter actual radio stations' own websites with embedded streams. Then I'd think of aggregators like the original iTunes, and now TuneIn.</p>
]]></description><pubDate>Wed, 27 May 2026 23:28:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48302192</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48302192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48302192</guid></item><item><title><![CDATA[New comment by troad in "Tunecat: Simple Internet Radio"]]></title><description><![CDATA[
<p>It appears to take a folder of .opus music files and serve some kind of Opus live stream, and it is controllable via IRC (as in, you can tell it to queue or skip songs over IRC). Or at least that's my best guess based on the linked demo instance.<p>It would certainly benefit from a single line atop the README that clearly stated what this actually does. I certainly don't think of IRC when I think of Internet radio.</p>
]]></description><pubDate>Wed, 27 May 2026 06:53:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48290639</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48290639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48290639</guid></item><item><title><![CDATA[New comment by troad in "Search engines alternatives now that Google isn't Google anymore"]]></title><description><![CDATA[
<p>The US attacks on Iran is a different event altogether from the Israeli genocide in Gaza. You're conflating discrete conflicts with different parties and different modes of engagement.<p>The US attack on that school is atrocious and I condemn it. While possibly a war crime, it does not meet the definition of genocide, unlike Israel's conduct in Gaza, which certainly does. There's no evidence of recent US conduct amounting to genocide (much historical evidence vis-a-vis American Indians though).<p>To the extent you wish to penalise complicity in genocide, go for it, but I will notice if you're oddly selective in which genocides you apply that standard to, and which you don't. (Which countries traded with Burma during the Rohingya genocide? Do you know? Do you care?)<p>> brown children<p>What does the children's colour have to do with anything at all? Do we grade the severity of war crimes by the (perceived? assigned?) race of the victim? Horrific thought.</p>
]]></description><pubDate>Wed, 27 May 2026 03:53:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48289419</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48289419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48289419</guid></item><item><title><![CDATA[New comment by troad in "Search engines alternatives now that Google isn't Google anymore"]]></title><description><![CDATA[
<p>[flagged]</p>
]]></description><pubDate>Wed, 27 May 2026 02:47:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48288920</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48288920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48288920</guid></item><item><title><![CDATA[New comment by troad in "Search engines alternatives now that Google isn't Google anymore"]]></title><description><![CDATA[
<p>Russian is a nationality, not a race. You can say prejudiced, but not racist. In this case it's not even a person, but a product.<p>It's not <i>pre</i>judice when it's based on a <i>post</i>-facto assessment of the Russian government's mobilisation of their companies for obscene and evil goals like clamping down on free speech, persecuting LGBT people, or trying to destroy Ukraine.<p>"It's Russian and therefore it's out" is a valid stance in light of all the known consequences of using a Russian product. If Russian people do not like this, they are welcome to break their links to the Russian state by emigrating and founding companies elsewhere, <i>or</i> stay and overthrow their government. Either works for me.<p>Many Russians have learnt to keep quiet about politics so they can get ahead in Russia, and they seem to harbour some deep-seated delusion that everyone from abroad should play along with this for their own convenience and profit. They whisper 'no war' to one another, by which they mean Ukraine should surrender already, so that this whole unpleasantness (to them) blows over, and the rest of the world goes back to accepting their blood money. <i>No.</i><p>Germany has been grappling with its own horrific genocide for a hundred years and still hasn't quite figured it out. Russia is, as of the time of writing, currently undertaking one. Come back in a hundred years, maybe we can talk about Russian products then.</p>
]]></description><pubDate>Wed, 27 May 2026 02:17:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48288654</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48288654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48288654</guid></item><item><title><![CDATA[New comment by troad in "Big tech's anti-labor playbook has come for Wikipedia"]]></title><description><![CDATA[
<p>The perfect ought not be the enemy of the good - the question isn't whether Wikipedia has solved all prejudice, the question is whether it is doing better on that question than its peers. And I'd say it is, relatively speaking. I'm always happy for it to do better, though.<p>Spending money to get people into editing Wikipedia that would never otherwise have done so seems like a very worthy goal to me.</p>
]]></description><pubDate>Wed, 27 May 2026 00:40:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48287989</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48287989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48287989</guid></item><item><title><![CDATA[New comment by troad in "Big tech's anti-labor playbook has come for Wikipedia"]]></title><description><![CDATA[
<p>Internal DEI initiatives are very helpful for an organisation trying to create a comprehensive knowledge base without falling to any group's bias. That requires diverse perspectives.<p>I don't care about internal DEI if the job is managing sewerage systems, but this is a perfect example of a context where fostering diverse engagement is both rational and improves the end product.</p>
]]></description><pubDate>Wed, 27 May 2026 00:13:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48287774</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48287774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48287774</guid></item><item><title><![CDATA[New comment by troad in "Netherlands blocks US takeover of vital digital supplier"]]></title><description><![CDATA[
<p>More broadly, I think it's "let's not hand over essential infrastructure to <i>any</i> foreign state". Friendly or not, it doesn't matter.<p>Private companies ought to have the freedom to do business with whomever they like, but for essential public services, better to assume essential public infrastructure simply must not be offshored at all.</p>
]]></description><pubDate>Tue, 26 May 2026 23:59:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48287644</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48287644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48287644</guid></item><item><title><![CDATA[New comment by troad in "Nobody cracks open a programming book anymore"]]></title><description><![CDATA[
<p>Did anyone actually like StackOverflow?<p>Any question asked would be edited beyond recognition (and usually into brash rudeness). Half the answers were demanding ever increasing proof of work, and the other half told the OP that they shouldn't even be trying to do what they're doing. The only useful thing were opinion based posts from people with domain expertise, and SO kept trying to ban and remove those. It was the least helpful place online, but the most accessible, and it survived for lack of alternatives.<p>I'm no AI booster, but answering simple questions about well understood topics is a perfect fit for it. Good riddance to StackOverflow.</p>
]]></description><pubDate>Tue, 26 May 2026 00:09:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48273380</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48273380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48273380</guid></item><item><title><![CDATA[New comment by troad in "Migrating from Go to Rust"]]></title><description><![CDATA[
<p>Perhaps it would help if stdlibs were be versioned, with the chosen version declared in the project file. For existing languages, a lack of version would simply indicate the original stdlib, meaning nothing should break.<p>I definitely don't think stdlibs should be changed <i>often</i>, but it seems fairly damaging to a language when things may be added to a stdlib but never removed, no matter how broken or misconceived (see C++).<p>Rust is a great language, but the poor stdlib + overreliance on crates + explosion of unvetted transient dependencies makes it a hard sell for a lot of projects.</p>
]]></description><pubDate>Mon, 25 May 2026 03:57:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48263271</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48263271</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48263271</guid></item><item><title><![CDATA[New comment by troad in "On The <dl> (2021)"]]></title><description><![CDATA[
<p>No no, dead earnest. I'm a big believer in honest compliments, where merited.<p>Please start writing a blog, if you don't already. If I could compose a blog roll of people writing fun CS histories, I would replace my HN bookmark with it.</p>
]]></description><pubDate>Mon, 25 May 2026 03:27:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48263157</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48263157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48263157</guid></item><item><title><![CDATA[New comment by troad in ".NET (OK, C#) finally gets union types"]]></title><description><![CDATA[
<p>Having reviewed as instructed, I stand by everything I said here. Let's review the action replay.<p>I began by noting that TS has literals and set theoretic types, and that this makes sense for a post-facto type system bolted on top of a dynamic language. Jaen showed up to inform me that TS has literals and set theoretic types, implying he hadn't read my post.<p>I noted that typed string literals are not generally considered desirable within strictly typed environments. "Parse, don't validate", etc. Jaen seemed to follow this up by aggressively trying to prove that TS is somehow "better" than Haskell. His arguments comprised the fact that TS has literals and set theoretic types (again, yes, this was is in my initial post), and a mixture of personal insults and just straight up nonsense (I wasn't the one to bring Zod into a discussion of type systems... ). At that point I did have a little fun with things, since it had become clear Jaen was not a constructive or good faith interlocutor.<p>Jaen's central misapprehensions seem to be that (a) I don't understand literals and set theoretic types, despite this whole thread being in reply to a post where I give examples of them in TS; and (b) that I care which type system is "better".<p>As I repeated a number of times above, TS' type system makes sense for a type system bolted onto a dynamic language. It's extremely useful when the underlying language has oodles of untyped structs flying every which way. Conversely, Haskell's type system makes sense within a holistic strictly typed environment. Structural typing would be a gaping hole in Haskell's strict type safety, which is kind of Haskell's whole thing. Neither system is better, each has its use. Different strokes for different folks.<p>I don't usually put much stock in upvotes, but I do note I seem to have the edge there. Seems that our esteemed panel of armchair referees respectfully dissent from your narrative, nvlled. :)</p>
]]></description><pubDate>Mon, 25 May 2026 02:43:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48262958</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48262958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48262958</guid></item><item><title><![CDATA[New comment by troad in "Green card seekers must leave U.S. to apply, Trump administration says"]]></title><description><![CDATA[
<p>It's not. The US green card process takes years, and being forced to be outside the country while the process is ongoing makes it very hard to continue working for a US employer, which is how most people are actually sponsored for a GC in the first place.<p>If you're looking for some objective rationale for this change, you're not going to find one. This is simply designed to make GCs much, much harder to get and dissuade prospective immigrants. That's the only goal.</p>
]]></description><pubDate>Sun, 24 May 2026 23:47:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48262177</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48262177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48262177</guid></item><item><title><![CDATA[New comment by troad in ".NET (OK, C#) finally gets union types"]]></title><description><![CDATA[
<p>I believe I was promised a respite from this.<p>Everything I said to you prior to my last message was fairly gentle. I'm not sure what response you were expecting to what you wrote at that point, which was to accuse me of disingenuous strawman arguments and ignorance. Perhaps you yourself would have benefited from a rule refresher?<p>> You seem to know what I'm doing better than I am<p>Apparently so! Trust me, it gives me no pleasure, and I'd rather I didn't.<p>> Again, I wasn't talking about runtime schemas, but types. I only mentioned runtime as a counterpoint to the false statement that TypeScript doesn't enforce this. Only reducing this to runtime checking is a fallacy, again.<p>My dear friend, this is almost completely incoherent.<p>I wish to strictly type myself as a function at this point, whereby your messages are my input, and void is my output. Zod, activate!</p>
]]></description><pubDate>Sun, 24 May 2026 14:43:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48257660</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48257660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48257660</guid></item><item><title><![CDATA[New comment by troad in ".NET (OK, C#) finally gets union types"]]></title><description><![CDATA[
<p>Haha, I knew you'd bring up Go. I even considered pre-emptively dropping Rust and Zig as counterexamples. I think most people who favour static typing consider the duck-typed interfaces of Go to be a mistake. Personally, I consider all of Go to be a mistake.<p>> these type system features were added by multiple experienced language designers for a reason<p>Oooh, an appeal to authority, where that authority isn't even named. I'll have you know a famous queen told me you're wrong on this, also for "a reason".<p>> TypeScript has several runtime-safe advanced validators based on its type system (most well-known being Zod), capable of enforcing types similar to what I provided.<p>Right, so TS typing is so amazing it requires runtime parser libraries from NPM, and Haskell is less sophisticated because it's not stringly typed.<p>You realise the entire, complete, exhaustive runtime schema for your zero-first non-empty integer array example looks like this in Haskell, right?<p><pre><code>    sch (0:_) = True
    sch _ = False
</code></pre>
That's a complete function that somehow manages to work without pulling in NPM dependencies. The best JavaScript minds of our generation remain baffled.<p>> The Person/Wine example is a pointless strawman<p>> I didn't give practical examples to save space, obviously, it was just to disambiguate what I meant.<p>So when you use illustrative examples, it is to "disambiguate what you meant" (huh?), and when I do it, they're "pointless strawmen". A little hypocritical, no?<p>> a bit ignorant<p>Honestly, I don't think you know what you're talking about at all. You clearly hadn't even read my comment when you started replying with Python and TS examples... that were already in my comment.<p>It also <i>really</i> sounds like you're using string literals to type input without properly parsing it, which is just a terrible idea. Haskell's type system is designed precisely to protect you from this sort of mistake. [0] No, you're not always going to get what you expect. No, your JS program will never let you know that's the case. No, a sane type system does not require mainlining runtime parser libraries from the biohazardous oceans of NPM. A schema in Haskell is going to be significantly shorter and sounder than anything in Zod, and you don't need a library for it.<p>As I said above, TS' type system makes sense for a type system bolted onto a dynamic language post facto. TS needs to more tightly link (even mildly conflate) values and types, since it needs to do a lot of clever narrowing to figure out what mad ball of JS it is dealing with at any given time. Haskell does not operate under any such constraint.<p>> I don't see a productive continuation to this discussion.<p>Phew. Timesaver.<p>Of course the irony of all this is that I use TS daily, and Haskell quite rarely.<p>[0] <a href="https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/" rel="nofollow">https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va...</a></p>
]]></description><pubDate>Sun, 24 May 2026 12:52:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48256887</link><dc:creator>troad</dc:creator><comments>https://news.ycombinator.com/item?id=48256887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48256887</guid></item></channel></rss>