<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: rand_r</title><link>https://news.ycombinator.com/user?id=rand_r</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 22:17:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rand_r" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rand_r in "Nano Banana 2: Google's latest AI image generation model"]]></title><description><![CDATA[
<p>> When I watch a movie, I don't care about the artist's life. I care about character life, that's very different.<p>It may seem like this, but up to now, you haven't been able to divorce a story from its creator because every story has an author, whether it's a novel like Harry Potter or a movie that has a writer and director. When you're experiencing the story, in the back of your mind, you always know that there is someone who created the story to tell you some kind of message. And so you can't experience something like a movie without trying to figure out what the actual message behind the movie was. It is always the implicit message behind the story that makes it valuable versus just the elements of the story.<p>The story has more weight because it is the distillation of somebody else's life and most likely, if it's a successful story or book, it is the most important lesson from that person's life and that's what makes it more valuable compared to the random generation of words from a computer.<p>The food analogy is that a cookie baked and given to you by a friend is going to taste far better than anything you buy in a store.</p>
]]></description><pubDate>Fri, 27 Feb 2026 04:16:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47176430</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=47176430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47176430</guid></item><item><title><![CDATA[New comment by rand_r in "OpenAI's cash burn will be one of the big bubble questions of 2026"]]></title><description><![CDATA[
<p>Only in as much as their product is a pure commodity like oil. Like yes it’s trivial to get customers if you sell gas for half the price, but I don’t think LLMs are that simple right now. ChatGPT has a particular voice  that is different from Gemini and Grok.</p>
]]></description><pubDate>Wed, 31 Dec 2025 14:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46444103</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=46444103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46444103</guid></item><item><title><![CDATA[New comment by rand_r in "Crimes with Python's Pattern Matching (2022)"]]></title><description><![CDATA[
<p>There is no difference between “def f(x={})” and “def f(x=dict())”, unless you have shadowed the dict builtin. They both have exactly the same subtle bug if you are mutating or return x later.</p>
]]></description><pubDate>Mon, 25 Aug 2025 03:27:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45009912</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=45009912</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45009912</guid></item><item><title><![CDATA[New comment by rand_r in "Crimes with Python's Pattern Matching (2022)"]]></title><description><![CDATA[
<p>You can use “set()”. Introducing more weird special cases into the language is a bad direction for Python.</p>
]]></description><pubDate>Fri, 22 Aug 2025 04:16:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44980944</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=44980944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44980944</guid></item><item><title><![CDATA[New comment by rand_r in "The Fed says this is a cube of $1M. They're off by half a million"]]></title><description><![CDATA[
<p>This is something you see in movies. Cash is by nature not traceable, so invalidating notes after issue would make it impossible to trust any cash transaction.</p>
]]></description><pubDate>Thu, 03 Jul 2025 00:47:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44450435</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=44450435</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44450435</guid></item><item><title><![CDATA[New comment by rand_r in "The Fed says this is a cube of $1M. They're off by half a million"]]></title><description><![CDATA[
<p>> to see if the serial numbers are out of circulation.<p>Cash cannot be invalidated like this. It would ruin the value of all cash since you could no longer trust cash from anyone. Only damaged notes are taken out and replaced by the government.</p>
]]></description><pubDate>Wed, 02 Jul 2025 19:16:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44447722</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=44447722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44447722</guid></item><item><title><![CDATA[New comment by rand_r in "Discovering a JDK Race Condition, and Debugging It in 30 Minutes with Fray"]]></title><description><![CDATA[
<p>Not sure what you mean!? Locks, at their core, are not implemented by languages. They’re feature of a task runtime e.g. Postgres advisory locks or kernel locks in a Posix OS.</p>
]]></description><pubDate>Mon, 09 Jun 2025 01:17:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44220638</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=44220638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44220638</guid></item><item><title><![CDATA[New comment by rand_r in "Discovering a JDK Race Condition, and Debugging It in 30 Minutes with Fray"]]></title><description><![CDATA[
<p>Race conditions are generally solved with algorithms, not the language. For example, defining a total ordering on locks and only acquiring locks in that order to prevent deadlock.<p>I guess there there are language features like co-routines/co-operative multi-tasking that make certain algorithms possible, but nothing about Java prevents implementing sound concurrency algorithms in general.</p>
]]></description><pubDate>Sun, 08 Jun 2025 11:17:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44216233</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=44216233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44216233</guid></item><item><title><![CDATA[New comment by rand_r in "$20K Bounty Offered for Optimizing Rust Code in Rav1d AV1 Decoder"]]></title><description><![CDATA[
<p>Yes, exactly. Latency is the killer feature. Doing a video call with extra 50ms of latency is noticeable.</p>
]]></description><pubDate>Wed, 14 May 2025 16:15:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=43986275</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=43986275</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43986275</guid></item><item><title><![CDATA[New comment by rand_r in "Three Observations"]]></title><description><![CDATA[
<p>This is a great point. Life is tough because we are all competing in a game. Tweaking the rules of the game so that each basket is worth more points doesn’t make the game easier for any player.<p>From Henry George:<p>> Now, to produce wealth, two things are required: labor and land. Therefore, the effect of labor-saving improvements will be to extend the demand for land. So the primary effect of labor-saving improvements is to increase the power of labor. But the secondary effect is to extend the margin of production. And the end result is to increase rent.<p>> This shows that effects attributed to population are really due to technological progress. It also explains the otherwise perplexing fact that laborsaving machinery fails to benefit workers</p>
]]></description><pubDate>Sun, 09 Feb 2025 22:19:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=42994641</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=42994641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42994641</guid></item><item><title><![CDATA[New comment by rand_r in "Justin Trudeau promises to resign as PM"]]></title><description><![CDATA[
<p>I don’t know why they couldn’t do the friggen obvious move of asking the police to unblock the roads by force, and impounding the vehicles for repeat offences. Going after bank accounts was a coward move that never made sense. If I just sat down in the middle of a subway tunnel, I would be removed by force immediately, no matter what I was protesting. They created problems for themselves by not doing the obvious solution.<p>Blocking a road is a fire hazard and should never have been tolerated by local police for that reason alone. You cannot impede transit in a city.</p>
]]></description><pubDate>Mon, 06 Jan 2025 19:21:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=42614363</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=42614363</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42614363</guid></item><item><title><![CDATA[New comment by rand_r in "Lies we tell ourselves to keep using Golang (2022)"]]></title><description><![CDATA[
<p>Nothing prevents explicit error handling in Python either. Forcing explicit error handling just creates verbosity since no system can functionally prevent you from ignoring errors.</p>
]]></description><pubDate>Wed, 27 Nov 2024 01:52:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42252154</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=42252154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42252154</guid></item><item><title><![CDATA[New comment by rand_r in "Lies we tell ourselves to keep using Golang (2022)"]]></title><description><![CDATA[
<p>> never handled correctly<p>I’ve seen this argument, but if you look at real golang code and examples, it’s just a bunch of “if err <> nill” copy pasta on every line. It’s true that handling errors is painstaking, but nothing about golang makes that problem easier. It ends up being a manual, poor-man’s stack-trace with no real advantage over an automatically generated one like in Python.</p>
]]></description><pubDate>Tue, 26 Nov 2024 08:57:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42243777</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=42243777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42243777</guid></item><item><title><![CDATA[New comment by rand_r in "MVCC – the part of PostgreSQL we hate the most (2023)"]]></title><description><![CDATA[
<p>Interesting! I wonder how this plays into AWS pricing. They charge a flat fate for MBps of IO. But I don’t know if they have a rule to round up to nearest 4K, or they actually charge you the IO amount from
the storage implementation by tracking write volume on the drive itself, rather what you requested.</p>
]]></description><pubDate>Mon, 21 Oct 2024 13:42:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=41904085</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41904085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41904085</guid></item><item><title><![CDATA[New comment by rand_r in "Upgrading Uber's MySQL Fleet"]]></title><description><![CDATA[
<p>I know what you mean, and you’re probably right, but there’s a deeper problem, which is the overuse of adjectives and overall wordiness. It’s quite jarring because it reads like someone trying to impress rather than get an important message across.<p>Frankly, ChatGPT could have written this better with a simple “improve the style of this text” directive.<p>Example from the start:<p>> MySQL v8.0 offered a compelling proposition with its promise of substantial performance enhancements.<p>That could have just been “MySQL v8.0 promised substantial performance improvements.”</p>
]]></description><pubDate>Mon, 14 Oct 2024 14:44:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=41838023</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41838023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41838023</guid></item><item><title><![CDATA[New comment by rand_r in "Optimizing Postgres table layout for maximum efficiency"]]></title><description><![CDATA[
<p>This is sort of an aside, but a very interesting thing about Postgres is that it can efficiently combine independent column indexes together, so there is much less of a need, compared to older databases, to even create multi-column indexes. It's a feature from 8.1 called "Bitmap Scan". Basically, if you create an index on column X and an index on column Y, it can use them  to do queries involving either or both columns pretty efficiently (for any number of columns).<p>It's not as fast as a multi-column index, but the savings of not having to worry about all the combinations of columns that can be queried together could well be worth it.<p>- <a href="https://www.postgresql.org/docs/release/8.1.0/" rel="nofollow">https://www.postgresql.org/docs/release/8.1.0/</a><p>- <a href="https://www.postgresql.org/docs/current/indexes-bitmap-scans.html" rel="nofollow">https://www.postgresql.org/docs/current/indexes-bitmap-scans...</a></p>
]]></description><pubDate>Tue, 08 Oct 2024 03:17:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=41773526</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41773526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41773526</guid></item><item><title><![CDATA[New comment by rand_r in "Swift 6"]]></title><description><![CDATA[
<p>Something I’ve been curious about recently, is how did Linux get away with straight C for so long, considering how complex of a project it is. Did they end up reimplementing a bunch of C++ features?<p>Actually, regarding sophisticated projects, there’s quite some complicated projects that succeed without C++ power, like Postgres and Python.</p>
]]></description><pubDate>Wed, 18 Sep 2024 02:37:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41575173</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41575173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41575173</guid></item><item><title><![CDATA[New comment by rand_r in "Chain of Thought empowers transformers to solve inherently serial problems"]]></title><description><![CDATA[
<p>Using hardware floating point types is not suitable if mathematical correctness matters, and is largely a deprecated practice. Check out Python’s fraction module for example, for exact arithmetic[0].<p>[0]: <a href="https://www.geeksforgeeks.org/fraction-module-python/" rel="nofollow">https://www.geeksforgeeks.org/fraction-module-python/</a></p>
]]></description><pubDate>Tue, 17 Sep 2024 11:29:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41566551</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41566551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41566551</guid></item><item><title><![CDATA[New comment by rand_r in "Finding and optimizing N+1 queries on a relational database"]]></title><description><![CDATA[
<p>It is true that DB compute is relatively expensive, but doing a join on the DB itself is obscenely more efficient vs doing it manually in a nested loop on an app server.<p>Also, the DB is generally a lot smarter than doing quadratic operations. The usual worst case is a Merge Join which involves sorting both tables first, to do an efficient join in nlogn time. It’s just not feasible to compete with the DB for efficiency without reimplementing a DB, which is pretty yikes.<p>See <a href="https://www.cybertec-postgresql.com/en/join-strategies-and-performance-in-postgresql/" rel="nofollow">https://www.cybertec-postgresql.com/en/join-strategies-and-p...</a></p>
]]></description><pubDate>Wed, 11 Sep 2024 23:08:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=41516084</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41516084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41516084</guid></item><item><title><![CDATA[New comment by rand_r in "Distributed Locks with Redis (2014)"]]></title><description><![CDATA[
<p>Yes, exactly! We found out the hard way just how unreliable Redis-based locks are, and switched to Postgres locks. It works reliably since our code is already in a Postgres transaction.<p>Created a “lock” table with a single string key column, so you can “select key for update” on an arbitrary string key (similar UX to redis lock). I looked at advisory locks, but they don’t work when the lock key needs to be dynamically generated.</p>
]]></description><pubDate>Thu, 22 Aug 2024 08:54:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=41318131</link><dc:creator>rand_r</dc:creator><comments>https://news.ycombinator.com/item?id=41318131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41318131</guid></item></channel></rss>