<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: michae2</title><link>https://news.ycombinator.com/user?id=michae2</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 15:24:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=michae2" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by michae2 in "Talkie: a 13B vintage language model from 1930"]]></title><description><![CDATA[
<p>Will mankind ever travel to the moon?<p>> Yes; in the course of time, men will certainly travel to the moon. The journey will be performed in safety, and at a comparatively rapid rate. Just how fast, can not be predicted; but it will be sufficiently great to enable the voyager to make the trip in six hours. The mode of conveyance will probably be an aerial machine, similar to those in which M. Santos Dumont lately accomplished such wonderful feats at Paris. The earth will be left behind at a point in Eastern France, and the moon will be reached in safety. The return journey will be accomplished in five hours. The voyager will find the lunar surface very much as described by astronomers. He will discover signs of life in the shape of numerous extinct craters, and possibly in the presence of living beings; but of the latter fact he can not be certain. The moon’s atmosphere will be found to have an extent of about five miles. Its temperature will be very cold, and, altogether, the place will be unsuited to human habitation. The project of lunar travel was first seriously entertained in 1860, when a scheme was brought forward for establishing telegraphic communication with the satellite. Since then, the idea has been advocated, from time to time, by speculative persons; but it has never been put into practice, until the present year. It has been suggested that the moon may be occupied by inhabitants, but the notion is absurd. The only imaginable purpose, for which lunar communication could be established, would be the acquisition of knowledge respecting the state of the weather. If the project were carried out, a storm, warning us of an approaching tempest, might be received from the moon, six hours before its arrival, here below.</p>
]]></description><pubDate>Tue, 28 Apr 2026 05:37:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47930744</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=47930744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47930744</guid></item><item><title><![CDATA[New comment by michae2 in "Show HN: C-TURTL, a turtle graphics game"]]></title><description><![CDATA[
<p>Nice one! Thanks for trying it out!</p>
]]></description><pubDate>Sun, 11 Jan 2026 06:48:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46573246</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=46573246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46573246</guid></item><item><title><![CDATA[New comment by michae2 in "Show HN: C-TURTL, a turtle graphics game"]]></title><description><![CDATA[
<p>Here are a few of my favorite creations so far:<p><a href="https://michae2.github.io/c-turtl/?dna=pfrbpplfpfpppcfppcfpc&scale=4&speed=-2&pause=0" rel="nofollow">https://michae2.github.io/c-turtl/?dna=pfrbpplfpfpppcfppcfpc...</a><p><a href="https://michae2.github.io/c-turtl/?dna=ffffffpffffffffpffffffffpffffffplbppppfppfpbccfc&scale=8&speed=2&pause=0" rel="nofollow">https://michae2.github.io/c-turtl/?dna=ffffffpffffffffpfffff...</a><p><a href="https://michae2.github.io/c-turtl/?dna=pfrblffffffffffffpllllfffffffffffflcfpb&scale=6&speed=0" rel="nofollow">https://michae2.github.io/c-turtl/?dna=pfrblffffffffffffplll...</a></p>
]]></description><pubDate>Thu, 01 Jan 2026 16:27:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46455320</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=46455320</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46455320</guid></item><item><title><![CDATA[Show HN: C-TURTL, a turtle graphics game]]></title><description><![CDATA[
<p>Happy New Year! Here's a small turtle graphics game I made for my kids, that I want to share. You write the "DNA" of the turtle, and watch what happens.<p>Any comments or suggestions appreciated!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46455269">https://news.ycombinator.com/item?id=46455269</a></p>
<p>Points: 12</p>
<p># Comments: 3</p>
]]></description><pubDate>Thu, 01 Jan 2026 16:21:18 +0000</pubDate><link>https://michae2.github.io/c-turtl/</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=46455269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46455269</guid></item><item><title><![CDATA[New comment by michae2 in "Implementing Logic Programming"]]></title><description><![CDATA[
<p>Thanks, this is really helpful! And great article.</p>
]]></description><pubDate>Sat, 14 Jun 2025 13:59:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44276490</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=44276490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44276490</guid></item><item><title><![CDATA[New comment by michae2 in "Implementing Logic Programming"]]></title><description><![CDATA[
<p>Something I’ve wondered about Datalog is whether integers can be added to the language without losing guarantees about termination of query evaluation. It seems like as soon as we add integers with successor() or strings with concat() then we can potentially create infinite relations. Is there a way to add integers or strings (well, really basic scalar operations on integer or string values) while preserving termination guarantees?<p>This bit at the end of the article seems to imply it’s possible, maybe with some tricks?<p>> We could also add support for arithmetic and composite atoms (like lists), which introduce some challenges if we wish to stay “Turing-incomplete”.</p>
]]></description><pubDate>Sat, 14 Jun 2025 02:43:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44273849</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=44273849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44273849</guid></item><item><title><![CDATA[New comment by michae2 in "A 'Second Tree of Life' Could Wreak Havoc, Scientists Warn"]]></title><description><![CDATA[
<p>Gift link: <a href="https://www.nytimes.com/2024/12/12/science/a-second-tree-of-life-could-wreak-havoc-scientists-warn.html?unlocked_article_code=1.g04.NJ0S.KylccuwsCtMS&smid=url-share" rel="nofollow">https://www.nytimes.com/2024/12/12/science/a-second-tree-of-...</a></p>
]]></description><pubDate>Thu, 12 Dec 2024 22:03:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=42403890</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=42403890</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42403890</guid></item><item><title><![CDATA[A 'Second Tree of Life' Could Wreak Havoc, Scientists Warn]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.nytimes.com/2024/12/12/science/a-second-tree-of-life-could-wreak-havoc-scientists-warn.html">https://www.nytimes.com/2024/12/12/science/a-second-tree-of-life-could-wreak-havoc-scientists-warn.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42403886">https://news.ycombinator.com/item?id=42403886</a></p>
<p>Points: 60</p>
<p># Comments: 3</p>
]]></description><pubDate>Thu, 12 Dec 2024 22:02:32 +0000</pubDate><link>https://www.nytimes.com/2024/12/12/science/a-second-tree-of-life-could-wreak-havoc-scientists-warn.html</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=42403886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42403886</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>Oh, thank you!</p>
]]></description><pubDate>Sat, 06 Apr 2024 16:26:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39953483</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39953483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39953483</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>To put it somewhat irreverently: running large production databases is not for the squeamish.</p>
]]></description><pubDate>Sat, 06 Apr 2024 15:56:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39953262</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39953262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39953262</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>> If that is a team level, it should be in the team table, not the player table.<p>It's all contrived, of course, but the reason I would consider skill level to be a player attribute rather than a team attribute is that there could be free agents with a skill level but no team:<p>INSERT INTO player VALUES (10, 'Pavlo', 'AAA', NULL);<p>Then with enough free agents, you could imagine building a new team out of free agents that are all at the same skill level:<p>UPDATE player SET team = 'Otters' WHERE level = 'AAA' AND team IS NULL ORDER BY id LIMIT 3;</p>
]]></description><pubDate>Sat, 06 Apr 2024 15:41:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=39953172</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39953172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39953172</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>PG only uses EvalPlanQual under read committed isolation. Under repeatable read the first update fails with a "could not serialize" error, just as it does under serializable.</p>
]]></description><pubDate>Sat, 06 Apr 2024 06:46:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=39950516</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39950516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39950516</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>It's a good question. For simple UPDATEs, CockroachDB always executes in a deterministic, serial order and so it's likely the rows will be locked in the same order by any competing updates. (This can be confirmed by looking at the query plans.) Complex UPDATEs using joins and subqueries will need explicit ORDER BY to always lock in the same order.<p>If an UPDATE has to retry halfway through, locks are held across the retry to help the system make progress. But as you point out, this could cause lock acquisition to happen in an unexpected order if new rows qualify during a retry. So far we haven't run into this, but we might need to provide an option for an UPDATE to drop locks on retry if deadlock turns into a bigger problem than livelock. It depends on the workload.</p>
]]></description><pubDate>Sat, 06 Apr 2024 06:33:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=39950474</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39950474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39950474</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>The main motivation is reduce serialization errors, for applications that can handle the weaker isolation level. Especially for applications that were previously running fine under RC on another database.</p>
]]></description><pubDate>Sat, 06 Apr 2024 05:53:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=39950315</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39950315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39950315</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>The timing of this example is tricky because the two update statements execute concurrently (which is only possible under read committed isolation; under serializable isolation it's much more like what you're describing).<p>Here's a full timeline in PG (U1 for first update, U2 for second update):<p>0. U1 begins executing, establishes read snapshot, starts pg_sleep(5).<p>1. U2 runs to completion.<p>2. U1 wakes up after 5 sec, scans `player` using snapshot from step 0.<p>3. U1 filters `team = Gophers`, gets 4, 5, 6.<p>4. U1 locks 4, 5, 6.<p>5. U1 performs EvalQualPlan: re-scans latest version of those locked rows, which sees U2's write to 4 but not to 3.<p>6. U1 performs EvalQualPlan: re-filters those locked rows using latest version, gets 5, 6.<p>7. U1 writes new versions.<p>CRDB is easier to reason about: after U1 wakes up from the sleep, it sees that it conflicts with U2 and simply retries the entire statement.</p>
]]></description><pubDate>Sat, 06 Apr 2024 02:38:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949542</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39949542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949542</guid></item><item><title><![CDATA[New comment by michae2 in "Why CockroachDB doesn't use EvalPlanQual"]]></title><description><![CDATA[
<p>Author here. We've spent the past year adding read committed isolation to CockroachDB.<p>There were many interesting design decisions, such as:<p>- whether to use multiple snapshots or a single snapshot per statement<p>- how to handle read uncertainty intervals<p>- how to incorporate SELECT FOR UPDATE locking into Raft<p>- how to handle SELECT FOR UPDATE subqueries<p>- how to prevent lost update anomalies between two UPDATEs<p>Some of the gory details are in the public RFC: <a href="https://github.com/cockroachdb/cockroach/blob/master/docs/RFCS/20230122_read_committed_isolation.md">https://github.com/cockroachdb/cockroach/blob/master/docs/RF...</a><p>This blog post just discusses the last point, but please AMA.</p>
]]></description><pubDate>Sat, 06 Apr 2024 01:01:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949057</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39949057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949057</guid></item><item><title><![CDATA[Why CockroachDB doesn't use EvalPlanQual]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.cockroachlabs.com/blog/why-cockroachdb-doesnt-use-evalplanqual/">https://www.cockroachlabs.com/blog/why-cockroachdb-doesnt-use-evalplanqual/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39948686">https://news.ycombinator.com/item?id=39948686</a></p>
<p>Points: 135</p>
<p># Comments: 58</p>
]]></description><pubDate>Fri, 05 Apr 2024 23:55:41 +0000</pubDate><link>https://www.cockroachlabs.com/blog/why-cockroachdb-doesnt-use-evalplanqual/</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39948686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39948686</guid></item><item><title><![CDATA[New comment by michae2 in "The One Billion Row Challenge in Go: from 1m45s to 4s in nine solutions"]]></title><description><![CDATA[
<p>I think we all ended up using unsafe, though there were some solutions without mmap. It would have been interesting if we had adhered to the same constraints you did!</p>
]]></description><pubDate>Sun, 03 Mar 2024 08:00:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=39579293</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39579293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39579293</guid></item><item><title><![CDATA[New comment by michae2 in "The One Billion Row Challenge in Go: from 1m45s to 4s in nine solutions"]]></title><description><![CDATA[
<p>For anyone looking for more examples of 1BRC in Go, we had a friendly competition at work and collected the results here: <a href="https://github.com/dhartunian/1brcgo/">https://github.com/dhartunian/1brcgo/</a><p>In addition to the loop-unrolling and bit-twiddling tricks that also show up in the fastest Java and C++ versions, some Go-specific things I learned were:<p>- unsafe.Pointer can be used to read memory without bounds checks<p>- many functions in the bytes and bits packages in the standard library are written in assembly<p>- debug.SetGCPercent and SetMemoryLimit to turn off GC<p>- runtime.LockOSThread to lock a goroutine to a thread<p>- print is slightly faster than fmt.Printf (but writes to stderr)</p>
]]></description><pubDate>Sun, 03 Mar 2024 07:27:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39579168</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=39579168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39579168</guid></item><item><title><![CDATA[New comment by michae2 in "Particle Life"]]></title><description><![CDATA[
<p>I never considered it before, but by comparison this makes me realize that Conway's Game of Life is wave-based rather than particle-based. That is, in CGoL the rules apply to locations of the grid rather than objects traveling across the grid. I wonder if this system could also be constructed in a wave-based fashion?<p>Also, it seems like in this system the speed of light is infinite, since every particle acts on every other particle each frame, regardless of distance. In CGoL there is a speed of light, since cells can only influence their immediate neighbors each frame.</p>
]]></description><pubDate>Thu, 28 Dec 2023 22:59:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=38799817</link><dc:creator>michae2</dc:creator><comments>https://news.ycombinator.com/item?id=38799817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38799817</guid></item></channel></rss>