<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: opticfluorine</title><link>https://news.ycombinator.com/user?id=opticfluorine</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 19 Jun 2026 11:32:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=opticfluorine" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by opticfluorine in "Where Did Earth Get Its Oceans? Maybe It Made Them Itself"]]></title><description><![CDATA[
<p>Wow, what a portfolio! This one in particular caught my eye: <a href="https://adazshen.com/Viral-Placenta" rel="nofollow">https://adazshen.com/Viral-Placenta</a><p>I have little artistic ability myself, but I am continuously in awe of what artists create. It makes me hope for the optimistic outlook of AI where UBI frees people to pursue creative and intellectual pursuits, rather than constantly trying to push a stock price uphill.</p>
]]></description><pubDate>Fri, 12 Jun 2026 17:42:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48507134</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=48507134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48507134</guid></item><item><title><![CDATA[New comment by opticfluorine in "4 billion if statements (2023)"]]></title><description><![CDATA[
<p>I wonder if you could generate it via a Roslyn incremental source generator instead of as a file to bypass this limit. I'm guessing not, but it does sound like fun.</p>
]]></description><pubDate>Fri, 12 Dec 2025 12:59:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46243704</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=46243704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46243704</guid></item><item><title><![CDATA[New comment by opticfluorine in "First device based on 'optical thermodynamics' can route light without switches"]]></title><description><![CDATA[
<p>Minor nit, Joule-Thomson is not just the ideal gas law - it is a separate thermodynamic effect entirely. Case in point, for certain gases the change in temperature due to Joule-Thomson has the opposite sign that you would predict from the ideal gas law alone.<p>This has interesting applications. For example, you can exploit this with dilute metal vapor in an expanding helium gas to cool the metal vapor to very low temperature - the Joule-Thomson expansion of helium increases the helium's temperature by converting the energy of the intermolecular forces into heat. This draws out energy from the metal vapor. If done in a vacuum chamber, then in the region before the shockwave formed by the helium, the supercooled metal atoms will form small van der Waals clusters that can be spectroscopically probed in the jet. This was an interesting area of study back in the 80s that advanced our understanding of van der Waals forces.</p>
]]></description><pubDate>Tue, 14 Oct 2025 13:36:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45579889</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=45579889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45579889</guid></item><item><title><![CDATA[New comment by opticfluorine in "What's New in C# 14: Null-Conditional Assignments"]]></title><description><![CDATA[
<p>I have occasionally, just for fun, written benchmarks for some algorithm in C++ and an equivalent C# implementation, them tried to bring the managed performance in line with native using the methods you mention and others. I'm always surprised by how often I can match the performance of the unmanaged code (even when I'm trying to optimize my C++ to the limit) while still ending up with readable and maintainable C#.</p>
]]></description><pubDate>Thu, 18 Sep 2025 12:06:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45288605</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=45288605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45288605</guid></item><item><title><![CDATA[New comment by opticfluorine in "Open Source Maintenance Fee"]]></title><description><![CDATA[
<p>I personally think this last sentence from my quote makes it unclear:<p>"In short, if you use this project to generate revenue, the Open Source Maintenance Fee is required."<p>Perhaps I'm being too semantic, but I don't feel that is an accurate representation of the license terms involved here.</p>
]]></description><pubDate>Thu, 24 Jul 2025 13:43:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44670605</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=44670605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44670605</guid></item><item><title><![CDATA[New comment by opticfluorine in "Open Source Maintenance Fee"]]></title><description><![CDATA[
<p>I came across this a few months ago when I was evaluating open source installer options for my own open source project. I have no issue with charging for binaries while the source is available under an OSI license, but this from the README rubbed me the wrong way:<p>"To ensure the long-term sustainability of this project, use of the WiX Toolset requires an Open Source Maintenance Fee. While the source code is freely available under the terms of the LICENSE, all other aspects of the project--including opening or commenting on issues, participating in discussions and downloading releases--require adherence to the Maintenance Fee.<p>In short, if you use this project to generate revenue, the Open Source Maintenance Fee is required."<p>I'll give the benefit of the doubt and assume this is just a difficult concept to succinctly explain in a short paragraph. But that summary - that revenue-generating use requires payment - feels misleading to me. Under their license, nothing stops me from creating my own build from source and using it per the terms of the MS-RL license, including for commercial purposes. So to me it feels like a scare tactic to coerce commercial users into becoming sponsors for the project.<p>I certainly understand the challenges faced by open source maintainers today, but the specific approach taken here just doesn't feel ethical to me. I ended up passing on WiX for that reason even though I'm not a commercial user.</p>
]]></description><pubDate>Thu, 24 Jul 2025 13:39:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=44670559</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=44670559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44670559</guid></item><item><title><![CDATA[New comment by opticfluorine in "Wayland is growing up. and now we don't have a choice"]]></title><description><![CDATA[
<p>Wasn't suggesting at all that you use my distro or that you can't use X11 as your solution. Debian is great and I use it for all of my servers. I'm just responding to the assertion that Wayland doesn't work with NVIDIA today, which is really only true if you are using older packages for a more stable distro. Nothing wrong with that, but it's not accurate to represent the current state of Wayland based on a distro known for using older packages.</p>
]]></description><pubDate>Fri, 20 Jun 2025 22:37:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44332754</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=44332754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44332754</guid></item><item><title><![CDATA[New comment by opticfluorine in "Wayland is growing up. and now we don't have a choice"]]></title><description><![CDATA[
<p>I have an RTX 4060 with latest drivers, KDE, and Arch. Wayland works perfectly for me. Maybe Debian has some outdated packages that haven't caught up yet?</p>
]]></description><pubDate>Fri, 20 Jun 2025 13:34:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44327608</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=44327608</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44327608</guid></item><item><title><![CDATA[New comment by opticfluorine in "Writing Toy Software Is a Joy"]]></title><description><![CDATA[
<p>This definitely resonates with me. One of my favorite pasttimes is to code away on a 2D multiplayer RPG engine, and I've ended up doing at least a few of the projects on this list as part of that (ECS framework, voxel renderer, physics engine). Integration with a scripting engine like Lua is another fun one for a list like this, especially if you try to do it in an idiomatic way for your main programming language and/or leverage code generation and metaprogramming.<p>One thing I've found I enjoy is working on a larger-scope toy project composed of many loosely coupled systems. It works well for me because no matter what type of project I'm interested in working on, I can usually find something applicable within the larger project. Currently on my to-do list are behavior trees and procedural terrain generation, and honestly I don't know how I'm going to decide which to do first.</p>
]]></description><pubDate>Sun, 15 Jun 2025 20:05:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44284641</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=44284641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44284641</guid></item><item><title><![CDATA[New comment by opticfluorine in "How Flash games shaped the video game industry (2020)"]]></title><description><![CDATA[
<p>I wonder, how close does Godot get with its web export support? The "authoring tool" seems pretty good, and it exports to WASM.</p>
]]></description><pubDate>Sun, 02 Mar 2025 12:14:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43229676</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=43229676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43229676</guid></item><item><title><![CDATA[New comment by opticfluorine in "Lua Is So Underrated"]]></title><description><![CDATA[
<p>Especially when one of the language's main purposes is to be embedded in applications written in other languages (which are predominantly zero based) - and so you tend to have a lot of back-and-forth integration between these two styles that can get confusing. Even from the C API side, for example, the Lua stack is one-based but addressed exclusively from the host language which is likely zero-based.</p>
]]></description><pubDate>Fri, 27 Dec 2024 00:30:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=42518988</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=42518988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42518988</guid></item><item><title><![CDATA[New comment by opticfluorine in "Lua is so underrated"]]></title><description><![CDATA[
<p>It is funny, isn't it? I always wonder how the language would be perceived had they gone with zero based indexing from the start.<p>I'm a big fan of Lua, including for the reasons you mention. I suspect the reason this one thing is always brought up is twofold: it's easy to notice, and it's very rare these days outside of Lua (if you consider VB.NET to be a legacy language, anyway). Other criticisms take more effort to communicate, and you can throw a rock and hit ten other languages with the same or similar issues.</p>
]]></description><pubDate>Fri, 27 Dec 2024 00:27:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42518975</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=42518975</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42518975</guid></item><item><title><![CDATA[New comment by opticfluorine in "Lua is so underrated"]]></title><description><![CDATA[
<p>Having just gone through the exercise of integrating Lua with a custom game engine over the past few weeks, I have to echo how clean the integration with other languages is.<p>It's also worth noting that the interface is clean in such a way that it is straightforward to automatically generate bindings. In my case, I used a handful of Roslyn Incremental Source Generators to automatically generate bindings between C# and Lua that matched my overall architecture. It was not at all difficult because of the way the interface is designed. The Lua stack together with its dynamic typing and "tables" made it very easy to generate marshallers for arbitrary data classes between C# and Lua.<p>That said, there are plenty of valid criticisms of the language itself (sorry, not to nitpick, but I am really not a fan of one-based indexing). I'm thinking about designing an embedded scripting language that addresses some of these issues while having a similar interface for integration... Would make for a fun side project one of these days.</p>
]]></description><pubDate>Fri, 27 Dec 2024 00:00:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42518848</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=42518848</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42518848</guid></item><item><title><![CDATA[New comment by opticfluorine in "We shrunk our Javascript monorepo git size"]]></title><description><![CDATA[
<p>To add to this, there are also official Microsoft extensions to VSCode which add absurdly useful capabilities behind subtle paywalls. For example, the C# extension is actually governed by the Visual Studio license terms and requires a paid VS subscription if your organization does not qualify for Visual Studio Community Edition.<p>I'm not totally sold on embrace-extemd-extinguish here, but learning about this case was eyebrow raising for me.</p>
]]></description><pubDate>Sun, 27 Oct 2024 14:18:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41962782</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=41962782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41962782</guid></item><item><title><![CDATA[New comment by opticfluorine in "Intel Solidifies $3.5B Deal to Make Chips for Military"]]></title><description><![CDATA[
<p>When I used to work in defense contracting, this is precisely what we (the contractor) did. We would buy up all available stock of any difficult-to-replace parts (often specific SBCs) when the manufacturer announced end of life.</p>
]]></description><pubDate>Sat, 14 Sep 2024 00:05:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=41536346</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=41536346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41536346</guid></item><item><title><![CDATA[New comment by opticfluorine in "How French Drains Work"]]></title><description><![CDATA[
<p>I've ruled out several properties in my current homebuying search for this exact reason. Having lived next to the neighborhood collection pond once before (a rental thankfully), I'm extra paranoid about stormwater and drainage now.<p>I've seen a number of homes in my area where the builder received special permission to build right where the drainage needs to go. Some were beautiful and I was tempted to give it a shot, but your story reminds me that I need to trust my gut on this issue and head for high ground.</p>
]]></description><pubDate>Wed, 07 Aug 2024 18:59:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41184247</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=41184247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41184247</guid></item><item><title><![CDATA[New comment by opticfluorine in "Computer models suggest modern plate tectonics due to blobs left by collision"]]></title><description><![CDATA[
<p>My organic chemistry professor always liked to point out that while CO2 is a gas that is easily dealt with following metabolism, SiO2 - silica/quartz - is most decidedly not a gas. Add that to the list of challenges for silicon-based lifeforms. Not to say that it isn't possible, but it does constrain the solution space somewhat.</p>
]]></description><pubDate>Fri, 10 May 2024 16:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=40320990</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=40320990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40320990</guid></item><item><title><![CDATA[New comment by opticfluorine in "How hard can generating 1024-bit primes be?"]]></title><description><![CDATA[
<p>Out of curiosity, if it is known that the nth bit is set, don't I also have the same risk but in (n-1) bits? Genuinely curious here.<p>Edit: Ah, nevermind, I see now why I don't have that issue. It's because I can't easily iterate the primes in that domain even though I can iterate the reduced number of bits. Thanks!</p>
]]></description><pubDate>Fri, 03 May 2024 20:43:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=40252183</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=40252183</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40252183</guid></item><item><title><![CDATA[New comment by opticfluorine in "How hard can generating 1024-bit primes be?"]]></title><description><![CDATA[
<p>For the purposes of key generation, however, wouldn't you want the full n bits of entropy? Otherwise the search space for a brute force factorization (haha right) is 2^(n-1) instead of 2^n, or half as many possibilities. The domain of the product is still [0..2^(2n)] so the resulting key is the desired 2^(2n) bits.<p>I guess another way to pose my question would be: is there an issue with sampling the entire 2^n space that makes us only take the highest 2^(n-1) subset of integers instead when selecting factors for a key?</p>
]]></description><pubDate>Fri, 03 May 2024 20:34:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40252088</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=40252088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40252088</guid></item><item><title><![CDATA[New comment by opticfluorine in "How hard can generating 1024-bit primes be?"]]></title><description><![CDATA[
<p>> The random number returned is OR-ed with 0b1000000000000001 to set its first and last bit to 1. The last bit set to 1 makes it an odd number and the first bit set to 1 ensures that it is a sufficiently large number which covers the entire range of bits I need.<p>I can understand setting the low bit to 1 since an even number will never be a prime (edit: obviously except 2). But why set the high bit to 1 as well? Admittedly I don't know much about prime numbers or crypto, but it seems to me like this is just giving up a bit of entropy unnecessarily. What am I missing here?</p>
]]></description><pubDate>Fri, 03 May 2024 20:25:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=40251995</link><dc:creator>opticfluorine</dc:creator><comments>https://news.ycombinator.com/item?id=40251995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40251995</guid></item></channel></rss>