<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: bitwizeshift</title><link>https://news.ycombinator.com/user?id=bitwizeshift</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 09:25:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bitwizeshift" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bitwizeshift in "Vibe-Coded Ext4 for OpenBSD"]]></title><description><![CDATA[
<p>Paywalled article on something vibe-coded? That seems like a bold strategy.</p>
]]></description><pubDate>Fri, 27 Mar 2026 19:11:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47546963</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=47546963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47546963</guid></item><item><title><![CDATA[New comment by bitwizeshift in "When compilers surprise you"]]></title><description><![CDATA[
<p>Thank you, bumholes</p>
]]></description><pubDate>Wed, 24 Dec 2025 20:49:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46379083</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=46379083</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46379083</guid></item><item><title><![CDATA[New comment by bitwizeshift in "I couldn't find a logging library that worked for my library, so I made one"]]></title><description><![CDATA[
<p>Aside from what some other users have said, logging is fundamentally an observable side-effect of your library. It’s now a behavior that can become load-bearing — and putting it in library code forces this exposed behavior on the consumer.<p>As a developer, this gets frustrating. I want to present a clean and coherent output to my callers, and poorly-authored libraries ruin that — especially if they offer no mechanism to disable it.<p>It’s also just _sloppy_ in many cases. Well-designed library code often shouldn’t even need to log in the first place because it should clearly articulate each units side-effects; the composition of which should become clear to understand. Sadly, “design” has become a lost art in modern software development.</p>
]]></description><pubDate>Wed, 17 Dec 2025 23:16:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46306948</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=46306948</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46306948</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Show HN: Pegma, an open-source version of the classic Peg solitaire"]]></title><description><![CDATA[
<p>You definitely are not alone in feeling this way, it’s happening everywhere now and it’s driving me nuts too.<p>I have the same complaint at work, where coworkers are using it for writing pull request descriptions, and it pumps out slop buzzwords like “streamlined the documentation”. Like, you didn’t streamline anything, you ran prettier on a markdown file!<p>On top of this type of description being useless marketing jargon, the writing style risks to train future LLMs to devolve their writing styles further into this. More frighteningly, how long until the excess amount of LLM-generated slop text like this starts training future humans reading it? People tend to model how they speak off of what they hear and read, and it’s everywhere now.</p>
]]></description><pubDate>Fri, 14 Nov 2025 13:05:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45926349</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=45926349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45926349</guid></item><item><title><![CDATA[New comment by bitwizeshift in "The Timmy Trap"]]></title><description><![CDATA[
<p>I hit send too early;
Meant to say that it just knows words and that’s effectively it.<p>It’s cool technology, but the burden of proof of real intelligence shouldn’t be “can it answer questions it has great swaths of information on”, because that is the result it was designed to do.<p>It should be focused on whether it can truly synthesize information and know its limitations - something any programmer using Claude, copilot, Gemini, etc will tell you that it fabricates false information/apis/etc on a regular basis and has no fundamental knowledge that it even did that.<p>Or alternatively, ask these models leading questions that have no basis in reality — and watch what it comes up with. It’s become a fun meme in some circles to ask for definitions of nonsensical made up phrases to models, and see what crap it comes up with (again, without even knowing that it is).</p>
]]></description><pubDate>Sat, 16 Aug 2025 16:21:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44924765</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=44924765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44924765</guid></item><item><title><![CDATA[New comment by bitwizeshift in "The Timmy Trap"]]></title><description><![CDATA[
<p>I don’t really think one needs to define intelligence to be able to acknowledge that inability to distinguish fact from fiction, or even just basic cognition and awareness of when it’s uncertain, telling the truth, or lying — is a glaring flaw in claiming intelligence. Real intelligence doesn’t have an effective stroke from hearing a username (token training errors); this is when you are peeling back the curtain of the underlying implementation and seeing its flaws.<p>If we measure intelligence as results oriented, then my calculator is intelligent because it can do math better than me; but that’s what it’s programmed/wired to do. A text predictor is intelligent at predicting text, but it doesn’t mean it’s general intelligence. It lacks any real comprehension of the model or world around it. It just know words, and</p>
]]></description><pubDate>Sat, 16 Aug 2025 16:13:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44924700</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=44924700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44924700</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Zig's Lovely Syntax"]]></title><description><![CDATA[
<p>Why “perma goodbye”?<p>Go has a similar function declaration, and it supports anonymous functions/lambdas.<p>E.g. in go, an anonymous func like this could be defined as<p>foo := func(x int, _ int) int {
    …
}<p>So I’d imagine in Zig it should be feasible to do something like<p>var foo = fn(x: i32, i32) i32 {
   …
}<p>unless I’m missing something?</p>
]]></description><pubDate>Sun, 10 Aug 2025 23:02:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44859134</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=44859134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44859134</guid></item><item><title><![CDATA[New comment by bitwizeshift in "AI killed the tech interview. Now what?"]]></title><description><![CDATA[
<p>Tech interviews in general need to be overhauled, and if they were it’d be less likely that AI would be as helpful in the process to begin with (at least for LLMs in their current state).<p>Current LLMs can do some basic coding and stitch it together to form cool programs, but it struggles at good design work that scales. Design-focused interviews paired with soft-skill-focus is a better measure of how a dev will be in the workplace in general. Yet, most interviews are just “if you can solve this esoteric problem we don’t use at all at work, you are hired”. I’d take a bad solution with a good design over a good solution with a bad design any day, because the former is always easier to refactor and iterate on.<p>AI is not really good at that yet; it’s trained on a lot of public data that skews towards worse designs. It’s also not all that great at behaving like a human during code reviews; it agrees too much, is overly verbose, it hallucinates, etc.</p>
]]></description><pubDate>Thu, 20 Feb 2025 14:54:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43115401</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=43115401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43115401</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Fast, Correct Answers Do Matter in Mathematics"]]></title><description><![CDATA[
<p>This is a good read on how to commit concepts to long-term memory and building skills.<p>I think there is a typo in the article though; there is a point that says:<p>> work out the problem by computing 6 × 5 = 5 + 5 + 5 + 5 + 5 + 5 = 30 (or 6 + 6 + 6 + 6 + 6 = 21)<p>The second parenthetical statement should be 30, unless I’m missing something?</p>
]]></description><pubDate>Wed, 02 Oct 2024 16:02:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41722013</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=41722013</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41722013</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Bots, so many bots"]]></title><description><![CDATA[
<p>The article never talked about bot-generated products, only bot generated comments and upvotes. How does manual review address this exactly?</p>
]]></description><pubDate>Wed, 02 Oct 2024 10:14:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41718970</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=41718970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41718970</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Brackets are awesome, don't use them"]]></title><description><![CDATA[
<p>What a strange and subjective take… I am genuinely struggling to understand the author’s viewpoint here, and why this post needed to exist at all.<p>The author proposes that braces are somehow subjectively harder to read for matching, and then says to just use a different delimiter of “end”. At which point, when you read nested code, you just see lots of “end” statements which are no different visually to seeing “}” closing braces, so what problem was solved exactly…?<p>I’m not saying it’s bad, it just doesn’t solve any practical problem, and it doesn’t improve anything objectively. This is just like debating why call a builtin type is “int” instead of “Int”. Most language-nerds I know tend to discuss more important details that can theoretically improve a language, and this is just stating a preference for Ruby “end” over C-style braces.<p>I feel like this needs to be reposted on April 1st</p>
]]></description><pubDate>Sun, 29 Sep 2024 16:35:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=41688502</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=41688502</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41688502</guid></item><item><title><![CDATA[New comment by bitwizeshift in "Ask HN: Why is ChatGPT so bad at electronics?"]]></title><description><![CDATA[
<p>This hasn’t been my experience at all in the slightest.<p>Been programming since I was in elementary school, and current Copilot, OpenAI and even Gemini models generate code at a very very junior level. It might solve a practical problem, but it can’t write a decent abstraction to save its life unless you repeatedly prompt it to. It also massively struggles to retain coherence when it has more moving parts; if you have different things being mutated, it often just forgets it and will write code that crashes/panics/generates UB/etc.<p>When you are lucky and you get something that vaguely works, the test cases it writes are of negative value. Test cases are either useless cases that don’t cover edge cases, are incorrect entirely and fail, or worse yet — look correct and pass, but are semantically wrong. LLM models have been absolutely hilariously bad at this, where it will generate passing cases for the code as written, but not for the semantics of the code being written. Writing it by hand would catch it quickly, but a junior dev using these tools can easily miss this.<p>Then there is Rust; most models don’t do rust well. In isolation they are kind of okay, but overall it frequently generates borrowing issues that fail to compile.</p>
]]></description><pubDate>Sun, 29 Sep 2024 09:37:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=41686110</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=41686110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41686110</guid></item><item><title><![CDATA[New comment by bitwizeshift in "NY Senate Bill S5474 proposing a universal single payer health plan for NYers"]]></title><description><![CDATA[
<p>Are you from Canada, or was that just an uncanny description of Canadian healthcare?</p>
]]></description><pubDate>Mon, 09 May 2022 21:09:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=31319791</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=31319791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31319791</guid></item><item><title><![CDATA[C++20: `unique_ptr` does not satisfy `equality_comparable_with` `nullptr_t`]]></title><description><![CDATA[
<p>Article URL: <a href="https://stackoverflow.com/q/66937947/1678770">https://stackoverflow.com/q/66937947/1678770</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26706126">https://news.ycombinator.com/item?id=26706126</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 05 Apr 2021 23:41:13 +0000</pubDate><link>https://stackoverflow.com/q/66937947/1678770</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=26706126</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26706126</guid></item><item><title><![CDATA[Reflecting over Members of an Aggregate with Standard C++17]]></title><description><![CDATA[
<p>Article URL: <a href="https://bitwizeshift.github.io/posts/2021/03/21/reflecting-over-members-of-an-aggregate/">https://bitwizeshift.github.io/posts/2021/03/21/reflecting-over-members-of-an-aggregate/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26532217">https://news.ycombinator.com/item?id=26532217</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 21 Mar 2021 17:39:23 +0000</pubDate><link>https://bitwizeshift.github.io/posts/2021/03/21/reflecting-over-members-of-an-aggregate/</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=26532217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26532217</guid></item><item><title><![CDATA[New comment by bitwizeshift in "C++ “result” type based on modern languages like Swift and Rust"]]></title><description><![CDATA[
<p>Hey everyone, I created a C++ "`result`" monad type with functionalities and behaviours much like Swift or Rust's equivalent `Result` type.<p>I've been working on this project for quite some time, and just wanted to share it with everyone because it's at a point that i feel is complete for a 1.0 release.<p>A little bit about it:<p>It's completely zero-overhead (no paying for what you don't use), constexpr supported, C++11 compatible (with more constexpr in newer versions), it optimizes extremely well (<a href="https://godbolt.org/z/TsonT1" rel="nofollow">https://godbolt.org/z/TsonT1</a>), it's extremely well-tested (<a href="https://coveralls.io/github/bitwizeshift/result?branch=master" rel="nofollow">https://coveralls.io/github/bitwizeshift/result?branch=maste...</a>) both for static validation and runtime validation, and despite being based on the feature-sets from other modern languages, the design has kept a focus on keeping this idiomatic for modern C++<p>The design was originally based on the P0323 `std::expected` proposals, and over time grew into a standalone type that better modelled `result` in the end.</p>
]]></description><pubDate>Fri, 12 Mar 2021 13:56:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=26435825</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=26435825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26435825</guid></item><item><title><![CDATA[C++ “result” type based on modern languages like Swift and Rust]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/bitwizeshift/result">https://github.com/bitwizeshift/result</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26435811">https://news.ycombinator.com/item?id=26435811</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Fri, 12 Mar 2021 13:55:14 +0000</pubDate><link>https://github.com/bitwizeshift/result</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=26435811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26435811</guid></item><item><title><![CDATA[C++: Getting an Unmangled Type Name at Compile Time]]></title><description><![CDATA[
<p>Article URL: <a href="https://bitwizeshift.github.io/posts/2020-03-09/getting-an-unmangled-type-name-at-compile-time/">https://bitwizeshift.github.io/posts/2020-03-09/getting-an-unmangled-type-name-at-compile-time/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26416855">https://news.ycombinator.com/item?id=26416855</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 10 Mar 2021 21:58:28 +0000</pubDate><link>https://bitwizeshift.github.io/posts/2020-03-09/getting-an-unmangled-type-name-at-compile-time/</link><dc:creator>bitwizeshift</dc:creator><comments>https://news.ycombinator.com/item?id=26416855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26416855</guid></item></channel></rss>