<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: marcianx</title><link>https://news.ycombinator.com/user?id=marcianx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 09:07:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=marcianx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by marcianx in "A beginner's guide to split keyboards"]]></title><description><![CDATA[
<p>I do type Z with little finger, etc, because that's how the typing software I used long, long time ago taught it. But I don't accommodate by messing up my wrists, which are still in a natural position. My fingers just adapted to the needed flexibility. My left pinky hitting the Z is trivial and less effort, IMO, than my right index finger hitting Y.
And yes, I use a conventional straight keyboard, not an ergonomic one.</p>
]]></description><pubDate>Fri, 20 Feb 2026 18:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47091650</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=47091650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47091650</guid></item><item><title><![CDATA[New comment by marcianx in "Is Rust faster than C?"]]></title><description><![CDATA[
<p>I was confused by this at first since `&T` clearly allows aliasing (which is what C's `restrict` is about). But I realize that Steve meant just the optimization opportunity: you can be guaranteed that (in the absence of UB), the data behind the `&T` can be known to not change in the absence of a contained `UnsafeCell<T>`, so you don't have to reload it after mutations through other pointers.</p>
]]></description><pubDate>Wed, 14 Jan 2026 15:00:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46616784</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=46616784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46616784</guid></item><item><title><![CDATA[New comment by marcianx in "AI generated music barred from Bandcamp"]]></title><description><![CDATA[
<p>So, I'm not pretending that certain kinds of jobs aren't going to be obsoleted. Lots of responsibilities went by the wayside as a lot of things were automated with technology and algorithms - I mean, this is not just an AI thing. But I also see it as many people not even executing certain creative visions that would be out of reach due to the mechanical (not creative) cost of doing things. That's where Jevons Paradox really shines and I do think that's where the explosion will happen. Of the (very few) people I know who do editing and have to rotoscope, rotoscoping is one of the things they really don't enjoy, but they do it anyway.</p>
]]></description><pubDate>Tue, 13 Jan 2026 22:23:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46609187</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=46609187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46609187</guid></item><item><title><![CDATA[New comment by marcianx in "AI generated music barred from Bandcamp"]]></title><description><![CDATA[
<p>I think it makes some sense to allow leeway for intelligent "signal processing" using AI (separating out individual tracks, clean-up, etc) vs generating new content with AI.<p>Similarly, say, for video editors, using AI to more intelligently rotoscope (especially with alpha blending in the presence of motion blur - practically impossible to do it manually), would be a great use of AI, removing the non-creative tedium of the process.<p>It's not clear where the line is though. I was quite impressed with Corridor Crew's (albeit NVidia+Puget-sponsored) video [1] where they photographed dolls, motion-captured human actors moving like the dolls, and transferred the skeletal animation and facial expressions to those dolls using GenAI. Some of it required nontrivial transformative code to accommodate a skeleton to a toy's body type. There's a massive amount of tedium being removed from the creative process by GenAI without sacrificing the core human creative contribution. This feels like it should be allowed -- I think we should attempt to draw clearer lines where there are clearly efficiency gains to be had to have less "creative" uses be more socially acceptable.<p>[1]: <a href="https://youtu.be/DSRrSO7QhXY" rel="nofollow">https://youtu.be/DSRrSO7QhXY</a></p>
]]></description><pubDate>Tue, 13 Jan 2026 20:40:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46607598</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=46607598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46607598</guid></item><item><title><![CDATA[New comment by marcianx in "Doxers posing as cops are tricking big tech firms into sharing people's data"]]></title><description><![CDATA[
<p>Can people register a subdomain of fl.us willy-nilly though? Isn't the root domain owned by the state?</p>
]]></description><pubDate>Sat, 13 Dec 2025 12:16:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46254046</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=46254046</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46254046</guid></item><item><title><![CDATA[New comment by marcianx in "Show HN: Gemini Pro 3 imagines the HN front page 10 years from now"]]></title><description><![CDATA[
<p>If the past is any indication, it's more likely that it'd get reset to "Office One".</p>
]]></description><pubDate>Tue, 09 Dec 2025 19:18:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46209262</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=46209262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46209262</guid></item><item><title><![CDATA[New comment by marcianx in "Steam Machine"]]></title><description><![CDATA[
<p>Agreed about POP Shop being slow. I recently learned that they were working on its replacement: "COSMIC store" (written in Rust + Iced), and it's super-fast. You can try it with `sudo apt install cosmic-store`.</p>
]]></description><pubDate>Thu, 13 Nov 2025 01:20:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45909260</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=45909260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45909260</guid></item><item><title><![CDATA[Typst's Math Mode Problem]]></title><description><![CDATA[
<p>Article URL: <a href="https://laurmaedje.github.io/posts/math-mode-problem/">https://laurmaedje.github.io/posts/math-mode-problem/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45697450">https://news.ycombinator.com/item?id=45697450</a></p>
<p>Points: 124</p>
<p># Comments: 54</p>
]]></description><pubDate>Fri, 24 Oct 2025 18:12:10 +0000</pubDate><link>https://laurmaedje.github.io/posts/math-mode-problem/</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=45697450</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45697450</guid></item><item><title><![CDATA[New comment by marcianx in "Garbage collection for Rust: The finalizer frontier"]]></title><description><![CDATA[
<p>When you have a strong pointer, you already have a positive ref count. Only once the strong pointer is destructed, is the reference count decremented.</p>
]]></description><pubDate>Thu, 16 Oct 2025 15:47:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45606863</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=45606863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45606863</guid></item><item><title><![CDATA[New comment by marcianx in "Garbage collection for Rust: The finalizer frontier"]]></title><description><![CDATA[
<p>Reference counted pointers can deference an object (via a strong pointer) without checking the reference count. The reference count is accessed only on operations like clone, destruction, and such. That being said, access via a weak pointer does require a reference count check.</p>
]]></description><pubDate>Wed, 15 Oct 2025 22:26:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45599053</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=45599053</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45599053</guid></item><item><title><![CDATA[New comment by marcianx in "Ergonomic errors in Rust: write fast, debug with ease, handle precisely"]]></title><description><![CDATA[
<p>And also the issue with checked exceptions is that one can't be generic over the checked exception, at least in Java. So it's impossible to write out a universally useful function type that's strictly typed on the error. This definition of `ThrowingFunction` for Java [1] needs just have `throws Exception`, allowing just about anything to be thrown.<p>Most functional-inspired languages would just have a single `f: T -> Result<U, E>` interface, which supports both (1) a specific error type `E`, which can also be an uninhabited type (e.g. never type) for an infallible operation, and (2) where `U` can be the unit type if the function doesn't return anything on success. That's about as generic as one can get with a single "interface" type.<p>[1]: <a href="https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/util/function/ThrowingFunction.html" rel="nofollow">https://docs.spring.io/spring-framework/docs/current/javadoc...</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 02:06:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45000695</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=45000695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45000695</guid></item><item><title><![CDATA[New comment by marcianx in "The Core of Rust"]]></title><description><![CDATA[
<p>There are further bugs:<p>`for path in paths`<p>should be<p>`for (const path of paths)`<p>JS will immediately error on the lack of parens, but the `in` vs `of` iterates over indexes, not values, and those indexes are unfortunately converted to strings (since `for-in` is object field-name iteration). So even TypeScript would not have caught it when the (stringified) index is used as the first argument of `fs.watch()`.</p>
]]></description><pubDate>Thu, 21 Aug 2025 19:06:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44976777</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=44976777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44976777</guid></item><item><title><![CDATA[New comment by marcianx in "Tiny, removable "mini SSD" could eventually be a big deal for gaming handhelds"]]></title><description><![CDATA[
<p>I've found this to be a common Americanism, but it's still incorrect, I believe. When I moved to the US in my teens, I was surprised at the sheer disregard of English grammar rules in common vernacular here, to the point that some folks (though not my English teachers) think their incorrect use is correct. :) The most marked case I saw was in a Dodo video where the person correctly said "lying", but The Dodo's captions "corrected" it to "laying".<p>But I digress.</p>
]]></description><pubDate>Wed, 20 Aug 2025 12:24:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44961252</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=44961252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44961252</guid></item><item><title><![CDATA[New comment by marcianx in "Auf Wiedersehen, GitHub"]]></title><description><![CDATA[
<p>Major subsidiaries within a large company can and do have separate CEOs. For example, YouTube also has a separate CEO (previously Susan Wojcicki, and now Neal Mohan) under Sundar Pichai.</p>
]]></description><pubDate>Mon, 11 Aug 2025 15:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44865353</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=44865353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44865353</guid></item><item><title><![CDATA[New comment by marcianx in "The borrowchecker is what I like the least about Rust"]]></title><description><![CDATA[
<p>To make sure I understand correctly: did you want to read a `String` and have lots of references to slices within the same string without having to deal with lifetimes? If so, would another variant of `Rc<str>` which supports substrings that also update the same reference count have worked for you? Looking through crates.io, I see multiple libraries that seem to offer this functionality:<p>[1]: <a href="https://crates.io/crates/arcstr" rel="nofollow">https://crates.io/crates/arcstr</a>
[2]: <a href="https://crates.io/crates/imstr" rel="nofollow">https://crates.io/crates/imstr</a></p>
]]></description><pubDate>Sat, 19 Jul 2025 23:57:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44620618</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=44620618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44620618</guid></item><item><title><![CDATA[New comment by marcianx in "ICE's Supercharged Facial Recognition App of 200M Images"]]></title><description><![CDATA[
<p>To add to it, I crossed the border into the US via train recently, and for the first time (I've done this trip many, many times) they took my photo on their cell phone after scanning my paperwork, as they did with everyone else. So they are further expanding with more/recent data.</p>
]]></description><pubDate>Fri, 18 Jul 2025 01:41:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44600317</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=44600317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44600317</guid></item><item><title><![CDATA[New comment by marcianx in "Careless People"]]></title><description><![CDATA[
<p>A less unflattering interpretation might be that once they saw the level of skill required to contribute to a field, they switched to a field that they could more meaningfully contribute to.</p>
]]></description><pubDate>Thu, 24 Apr 2025 12:01:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43781676</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=43781676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43781676</guid></item><item><title><![CDATA[New comment by marcianx in "You are not dumb, you just lack the prerequisites"]]></title><description><![CDATA[
<p>So, fun fact from calculus (though you can easily prove this with basic algebra as I do below):<p>- You want to compare two products: in this case 6x9 and 7x8.<p>- And in each product, if you add the two numbers together, you get the same result. In this case, 6+9 = 7+8.<p>Then the product will be larger for the pair of numbers that are closer together. So 7x8 > 6x9. That might help you remember which is 56 and which is 54.<p>You typically see this in a word problem where you are given a fixed amount of fence and you have to enclose the largest rectangular area. The answer is to use a square area (two sides being equal). If the problem has constraints that prevent the sides from being equal, then you pick the length and width to be as close to each other as possible.<p>In case you want to transfer the geometric intuition to an algebraic proof: If the sum of the two side lengths is 2m, then the two side lengths can be written as (m+n) and (m-n) for some positive n. If you multiply the two, you get (m+n)(m-n) = m²-n². To maximize the product, you need n to be as close to 0 as possible - i.e. for both sides to be as close to each other as possible.</p>
]]></description><pubDate>Tue, 27 Aug 2024 03:50:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41364421</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=41364421</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41364421</guid></item><item><title><![CDATA[New comment by marcianx in "The evolution of Ruby's Range class"]]></title><description><![CDATA[
<p>I immediately see the logic in this API. When slicing, I look at indexes as being between elements or at the start (0) or end (length). This gives an in-bounds starting index between 0 and length, inclusive. So if the starting index is in bounds, you get a substring. If it's not, you get no result.<p>And your answer for Python is not quite correct: "" is falsy in Python, and both of the last two when translated to Python give "null".</p>
]]></description><pubDate>Tue, 30 Jul 2024 01:23:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41105296</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=41105296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41105296</guid></item><item><title><![CDATA[New comment by marcianx in "Just Be Rich (2021)"]]></title><description><![CDATA[
<p>How would you impose these limits on wealth? Where would the extra money go? To the government? If so, would you be okay with the government saying that _all_ future earnings if yours went straight to them because you have too much money already? Would you give anyone that power?</p>
]]></description><pubDate>Mon, 15 Jul 2024 02:04:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=40964730</link><dc:creator>marcianx</dc:creator><comments>https://news.ycombinator.com/item?id=40964730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40964730</guid></item></channel></rss>