<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: rfgplk</title><link>https://news.ycombinator.com/user?id=rfgplk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Jul 2026 22:17:55 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rfgplk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rfgplk in "Building a Fast Lock-Free Queue in Modern C++ from Scratch"]]></title><description><![CDATA[
<p>Nice article. There a few issues with your code however from a cursory glance; your dtor seems to allow for spurious/double frees due to custom deleter support (you wanna check up on that), you also seem to use seq_cst far too much even if not needed (you want to avoid them is queues as much as possible), lastly class FastQueueNodeSlot.. isn't aligned (plus 64b alignment is only a thing for amd64 cpus, apple silicon is larger).</p>
]]></description><pubDate>Mon, 27 Jul 2026 12:22:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49068632</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=49068632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49068632</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++"]]></title><description><![CDATA[
<p>C++ is actually obscenely complex, I don't deny that. Just mastering object lifetime rules is crazy difficult due to all the edge cases, but it comes with the territory.</p>
]]></description><pubDate>Sat, 13 Jun 2026 17:00:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48519122</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48519122</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48519122</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>But isn't this a problem with all code? Looking at a Rust function signature how can you be sure that it does what it says it does? Or python?</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:58:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48519101</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48519101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48519101</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>The standard library implements really do suck (in some cases), but this should be separated from C++ (the language). Even the standard splits the language grammar from the standard library cleanly.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:57:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48519094</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48519094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48519094</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>Not yet, I might one day.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:18:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518687</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518687</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>This is gonna be a long critique, I'll try to keep it concise.<p>> C-like C++ is good start, if code doesn’t require more complexity don’t add unnecessary C++ complexities.<p>C is almost obsolete nowadays. Not to mention that C++ is effectively a strict superset of C (nearly 99% of the C standard is in C++) and the few features that aren't are included as compiler extensions (VLA, restrict keyword, nested functions). There are a handful of C features that aren't in C++, and for very good reason (most of them suck). 
When was the last time you ran into a C library that a pure C++ compiler couldn't compile? Only if someone decided to spam the new keyword all over the codebase (or something similar).<p>> In general case code should be readable to anyone who is familiar with C language.<p>Most C++ already is? Even very template heavy C++.<p>> Don’t do this, the end of “design rationale” in Orthodox C++ should be immedately after “Quite simple, and it is usable. EOF”.<p>A lot of the methods in that document are necessary to make C++ shine, especially template metaprogramming.<p>> Don’t use exceptions.<p>Optional but irrelevant.<p>> Don’t use RTTI.<p>.. Why? Reimplementing RTTI in C will give you almost the same overhead.<p>> Don’t use C++ runtime wrapper for C runtime includes (<cstdio>, <cmath>, etc.), use C runtime instead (<stdio.h>, <math.h>, etc.)<p>.. Why? Those wrappers all include the "raw C runtime" under the hood (literally they do #include <stdio.h|xx>. Near 0 compiletime overhead?<p>> Don’t use stream (<iostream>, <stringstream>, etc.), use printf style functions instead.<p>This is a design decision.<p>> Don’t use metaprogramming excessively for academic masturbation. Use it in moderation, only where necessary, and where it reduces code complexity.<p>There are many programs that are _impossible_ to write in a finite time without metaprogramming. How will you (with zero runtime overhead) dispatch a function with a variable arity of random types to a handler that requires exactly that type of function? Arbitrarily? In C++ it's possible, in C it isn't.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:18:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518679</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518679</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>One thing I've noticed about a lot of these "strict C" developers is that quite often they actually refuse to learn C++. One of the most common complaints of C developers regarding C++ is "it does things behind the scenes/performs magic", often with regards to operator overloading. When they refuse to actually look at the implementation (y'know you can check if an operator has been overloaded) AND they refuse to acknowledge that a huge chunk of "pure C" does HEAPS of magic behind the scenes (that the developer has no idea about) unless they've actually studied the spec in detail. Malloc and memory allocation methods are at least 10k+ lines of code for instance.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:04:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518557</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518557</guid></item><item><title><![CDATA[New comment by rfgplk in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>I've developed a style that I legitimately call Heterodox C++ (mainly due to the popularity of Orthodox C++), it is effectively a purely functional & metaprogramming heavy style of C++. Quite the opposite of this, not everyones cup of tea, and it won't fit into every codebase but it is incredibly powerful. The template metaprogramming C++ offers is the most powerful of any imperative language, and (subjective opinion) is second only to Lisp, but few people make use of it. With some of C++26 features you can almost even replicate most of Rusts safety features in pure C++ (via function tagging + reflection)</p>
]]></description><pubDate>Sat, 13 Jun 2026 15:56:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518485</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518485</guid></item><item><title><![CDATA[New comment by rfgplk in "AI OSS tool repo goes archived over night after raising $7.3M Seed"]]></title><description><![CDATA[
<p>A few comments.<p>> VCs think, 'Apps are risky, infrastructure is safe,' so they invested in AI infra.<p>First off, this isn't even infra in the infra sense of the word. Infrastructure implied something physical, a pure software product can almost never be considered 'infra'. A tool maybe, but not 'infra'.<p>VCs can also be irrational and driven primarily by personal connections rather than reason. I didn't do a deep dive in this project/leadership, but often who you know is some important than what you produced. There's a reason why a lot of VCs go for the old motto of "I'd rather invest in an A team with a C product; than invest in a C team with an A product".</p>
]]></description><pubDate>Sat, 13 Jun 2026 15:06:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518034</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518034</guid></item><item><title><![CDATA[New comment by rfgplk in "AI OSS tool repo goes archived over night after raising $7.3M Seed"]]></title><description><![CDATA[
<p>> The calculus in “buy or build” has shifted for me over the last six months especially. If I can make an agent build it, I get the version that’s tailored for me.<p>I feel like this is really going to change the software industry moving forwards. Historically it was tedious and time consuming to actually develop tailored dev tools which is why so many organizations relied on third party solutions. When nowadays you can easily half bake something in a few hours and get it working, tailored _specifically_ to your needs.</p>
]]></description><pubDate>Sat, 13 Jun 2026 15:03:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518007</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48518007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518007</guid></item><item><title><![CDATA[New comment by rfgplk in "AI OSS tool repo goes archived over night after raising $7.3M Seed"]]></title><description><![CDATA[
<p>$7m actually isn't a whole lot, especially if they hired a (larger) engineering team. Assuming their cali based, that's easily 150-200k per engineer, a team of 20 easily eats through that. Idk the specifics, but I don't the organization was fradulent, it could also be that they're going commercial and no longer want to maintain their oss stack</p>
]]></description><pubDate>Sat, 13 Jun 2026 14:56:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48517950</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48517950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48517950</guid></item><item><title><![CDATA[New comment by rfgplk in "FPS.cob: A first person shooter in COBOL"]]></title><description><![CDATA[
<p>Made me laugh. Thanks :)</p>
]]></description><pubDate>Thu, 11 Jun 2026 18:32:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48494512</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48494512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48494512</guid></item><item><title><![CDATA[New comment by rfgplk in "FPS.cob: A first person shooter in COBOL"]]></title><description><![CDATA[
<p>> Like OK someone vibecoded an FPS in COBOL or Pokémon emerald in a web browser with web assembly? Ok good for them, piss off karma farmer.<p>Sorry, but most of these discussions reek of extreme gatekeeping. First off, neither of these things are <i>impossibly difficult</i> and are easily doable with some dedication by hand. LLMs simply accelerate the process, the human still has to come up with the architecture, _idea_ and plan to do something like this.</p>
]]></description><pubDate>Thu, 11 Jun 2026 17:43:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48493712</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48493712</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48493712</guid></item><item><title><![CDATA[New comment by rfgplk in "FPS.cob: A first person shooter in COBOL"]]></title><description><![CDATA[
<p>> It's not impressive that Claude wrote it, it was impressive if you have written it, OP.<p>Do you have evidence that it's Claude written? Looking through the source it isn't clear to me, at all. Plus, even if it _was_ Claude/LLM assisted, why does that take away from the project?</p>
]]></description><pubDate>Thu, 11 Jun 2026 17:39:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48493650</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48493650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48493650</guid></item><item><title><![CDATA[New comment by rfgplk in "Claude Fable 5"]]></title><description><![CDATA[
<p>Meaningless and easily bypassable. Will actually try coding up a tensor library with it, see if it sabotages anything.</p>
]]></description><pubDate>Tue, 09 Jun 2026 18:11:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48465100</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48465100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48465100</guid></item><item><title><![CDATA[New comment by rfgplk in "Claude Fable 5"]]></title><description><![CDATA[
<p>If the claimed capabilities are true, Fable 5 is already at a superhuman level. We might see genuine unprecedented leaps in technology now, across all fields.</p>
]]></description><pubDate>Tue, 09 Jun 2026 17:19:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48464165</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48464165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48464165</guid></item><item><title><![CDATA[New comment by rfgplk in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p>I'm actually working on something similar to this. Basically works as an additional preprocessed layer over C++. You can get some crazy results, but it's tricky to integrate with existing build tools without causing havoc.</p>
]]></description><pubDate>Tue, 09 Jun 2026 15:12:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48462180</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48462180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48462180</guid></item><item><title><![CDATA[New comment by rfgplk in "The beauty and simplicity of the good old C-style void* in C++"]]></title><description><![CDATA[
<p>> void DoSomething(const void* p, size_t numBytes)<p>would be something like<p>template <typename T>
void DoSomething (const T& ref) or void DoSomething(const T& ref, size_t numBytes) or C++20-y void DoSomething (const auto& ref)<p>If the class you're passing in already qualifies a size like member fn,
template<typename T> requires requires(T t){ t.size(); } void DoSomething(const T& x){ ... x.size(); }<p>> void DoSomething(const uint8_t* p, size_t numBytes)<p>This is awful you lose type info irreversibly.<p>> template <typename T>
void DoSomething(std::span<T> data)<p>You can do this but the above examples work just as well.<p>> Or maybe something even more complicated, like this?<p>template <typename T, std::size_t N>
void DoSomething(std::span<T, N> data)<p>// Or this?
template <typename T, std::size_t N>
void DoSomething(std::span<const T, N> data)<p>This is more explicit, not more complicated...<p>> In this way, we still keep the clarity and simplicity of the function invocation:
> DoSomething(&data, sizeof(data));<p>Stripping types is not a good idea, especially because you'll run into object lifetime issues _REALLY QUICKLY_. You need to guarantee that the object is trivially copyable.</p>
]]></description><pubDate>Tue, 09 Jun 2026 14:59:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48462041</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48462041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48462041</guid></item><item><title><![CDATA[New comment by rfgplk in "Show HN: Gravity – Interactive solar-system simulator, from Newton to Einstein"]]></title><description><![CDATA[
<p>Very nice, fairly efficient too.<p>I don't like the explicit split of Newtonian and relativistic gravity, this is often how it's presented in educational content, but it creates too much confusion; for instance it gives the illusion that they are somehow separate theories even though Newtonian gravity is a limiting case of Einsteinian gravity when v << c and gravitational fields are weak (see Poissons eq for Newtons gravitational potential.<p>Lastly, you should consider rendering spacetime similar to Alessandro Roussels spacetime visualization <a href="https://www.youtube.com/watch?v=wrwgIjBUYVc" rel="nofollow">https://www.youtube.com/watch?v=wrwgIjBUYVc</a>; probably the best and most innovative one I've seen.</p>
]]></description><pubDate>Tue, 09 Jun 2026 14:42:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48461809</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48461809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48461809</guid></item><item><title><![CDATA[New comment by rfgplk in "Cleaning up after AI rockstar developers"]]></title><description><![CDATA[
<p>>  the result is some massive crap in nextjs that needs 10GB mem to compile, has 1000s of lint errors, dev logs in git (very noisy ones) and so on.<p>The anti-LLM propaganda is getting ridiculous at this point. No project "needs 10GB" to compile, unless you're working with astronomically massive repos, and _no_ LLM will _ever_ generate that. Lint errors (depending on cause) are either meaningless or a result of poor prompt engineering. If you want your project linted/formatted a certain way make it clear to the LLM.</p>
]]></description><pubDate>Tue, 09 Jun 2026 14:08:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48461355</link><dc:creator>rfgplk</dc:creator><comments>https://news.ycombinator.com/item?id=48461355</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48461355</guid></item></channel></rss>