<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: sixbrx</title><link>https://news.ycombinator.com/user?id=sixbrx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Apr 2026 09:12:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=sixbrx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by sixbrx in "Prisma Postgres – Runs on bare metal and unikernels"]]></title><description><![CDATA[
<p>Better tell wikipedia: "The format indicates the first word starting with either case,'<p><a href="https://en.wikipedia.org/wiki/Camel_case" rel="nofollow">https://en.wikipedia.org/wiki/Camel_case</a></p>
]]></description><pubDate>Mon, 04 Nov 2024 03:54:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=42038286</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=42038286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42038286</guid></item><item><title><![CDATA[New comment by sixbrx in "Prisma Postgres – Runs on bare metal and unikernels"]]></title><description><![CDATA[
<p>Thats not particular to postgres, that's the same in Oracle (or any other db following ISO case handling I believe), just with true (quoted) table name being all uppercase instead for the latter but with same error.<p>You can quote the table name in the create statement to get the camelcase table name.  Just remember to quote in both creation and usage or neither, is a good rule of thumb</p>
]]></description><pubDate>Sun, 03 Nov 2024 22:27:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=42036594</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=42036594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42036594</guid></item><item><title><![CDATA[New comment by sixbrx in "Prisma Postgres – Runs on bare metal and unikernels"]]></title><description><![CDATA[
<p>Nah - camel's head can be tall just like the hump.</p>
]]></description><pubDate>Sun, 03 Nov 2024 12:24:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42032663</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=42032663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42032663</guid></item><item><title><![CDATA[New comment by sixbrx in "Porffor: A from-scratch experimental ahead-of-time JS engine"]]></title><description><![CDATA[
<p>Here's an example I constructed after reading the TS docs [1] about flow-based type inference and thinking "that can't be right...".<p>It yields no warnings or errors at compile stage but gives runtime error based on a wrong flow-based type inference.  The crux of it is that something can be a Bird (with "fly" function) but can also have any other members, like "swim" because of structural typing (flying is the <i>minimum</i> expected of a Bird).  The presence of a spurious "swim" member in the bird causes tsc to infer in a conditional that checks for a "swim" member that the animal must be a Fish or Human, when it is not (it's just a Bird with an unrelated, non-function "swim" member).<p><pre><code>    type Fish = { swim: () => void };
    type Bird = { fly: () => void };
    type Human = { swim?: () => void; fly?: () => void };

    function move(animal: Fish | Bird | Human) {
      if ("swim" in animal) {
        // TSC infers wrongly here the presence of "swim" implies animal must be a Fish or Human
        onlyForFishAndHumans(animal); 
      } else {
        animal;
      }
    }

    function onlyForFishAndHumans(animal: Fish | Human) {
      if (animal.swim) {
        animal.swim(); // Error: attempt to call "not-callable".
      }
      // (receives bird which is not a Fish or Human)
    }

    const someObj = { fly: () => {}, swim: "not-callable" };
    const bird: Bird = someObj;

    move(bird);

    // runtime error: [ERR]: animal.swim is not a function
</code></pre>
[1] <a href="https://www.typescriptlang.org/docs/handbook/2/narrowing.html#the-in-operator-narrowing" rel="nofollow">https://www.typescriptlang.org/docs/handbook/2/narrowing.htm...</a></p>
]]></description><pubDate>Tue, 30 Jul 2024 23:10:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=41115020</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=41115020</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41115020</guid></item><item><title><![CDATA[New comment by sixbrx in "How to escape Honda's privacy hell"]]></title><description><![CDATA[
<p>full time cleaners aren't cheap either</p>
]]></description><pubDate>Mon, 06 May 2024 21:20:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=40279637</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=40279637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40279637</guid></item><item><title><![CDATA[New comment by sixbrx in "Functional semantics in imperative clothing"]]></title><description><![CDATA[
<p>I'm pretty sure the thunk would be tagged by the effects of the inner function, so couldn't be called from an external context not declaring those effects. That's what the effect tracking is for.</p>
]]></description><pubDate>Tue, 30 Apr 2024 12:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=40210327</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=40210327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40210327</guid></item><item><title><![CDATA[New comment by sixbrx in "Serious flaws in SQL (1990)"]]></title><description><![CDATA[
<p>invented the relational model rather</p>
]]></description><pubDate>Thu, 25 Apr 2024 13:52:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40157600</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=40157600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40157600</guid></item><item><title><![CDATA[New comment by sixbrx in "Embeddings are a good starting point for the AI curious app developer"]]></title><description><![CDATA[
<p>i get triggered that the norm vars aren't ever really the norms but their squares</p>
]]></description><pubDate>Thu, 18 Apr 2024 21:59:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40081210</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=40081210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40081210</guid></item><item><title><![CDATA[New comment by sixbrx in "Unison Cloud"]]></title><description><![CDATA[
<p>Unison looks like a neat functional language. Do abilities subsume the role of type classes also (without any "effects")? If so, would there be a loss of efficiency for using pure abilities in this way (since a "handler" needs to interpret the ops)?  Sorry I've only had a brief look so I'm not sure this makes sense.<p>Edit: Shorter: do you have type classes</p>
]]></description><pubDate>Thu, 08 Feb 2024 00:31:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=39296252</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=39296252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39296252</guid></item><item><title><![CDATA[New comment by sixbrx in "Global CO2 Levels"]]></title><description><![CDATA[
<p>The vast majority of that time had neither modern humans nor anything like our civilization, so wouldn't really be relevant though. Hell at 600 million years ago there were just the first "complex" (not individually microscopic) life forms emerging.<p>Also the ups and downs in temperatures happened over a far longer period of time than what we're experiencing now, giving life more time to adapt.</p>
]]></description><pubDate>Mon, 30 Oct 2023 22:35:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=38076904</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=38076904</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38076904</guid></item><item><title><![CDATA[New comment by sixbrx in "The Case of a Curious SQL Query"]]></title><description><![CDATA[
<p>some databases such as Oracle do not support boolean literals or boolean at all  as a user accessible type</p>
]]></description><pubDate>Thu, 26 Oct 2023 02:00:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=38020805</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=38020805</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38020805</guid></item><item><title><![CDATA[New comment by sixbrx in "Nushell 0.86"]]></title><description><![CDATA[
<p>Great news!</p>
]]></description><pubDate>Fri, 20 Oct 2023 23:48:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=37962752</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37962752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37962752</guid></item><item><title><![CDATA[New comment by sixbrx in "Nushell 0.86"]]></title><description><![CDATA[
<p>One advantage or Powershell though is that in it you can put something into the pipeline from anywhere in your code, even within imperative code like in the middle a loop, just by mentioning a bare value at nearly any spot. And traditional shells are the same way (though they only support byte streams output), where you can send stuff to stdout/err at any point.<p>But in nu, it's more like you're just dealing with collections as in most programming languages. If your collection isn't amenable to being generated by a simple expression like a map or fold, then you have to create a collection, prep the collection to be what you want it to be, then you return it.<p>In that sense it's really different from both Powershell and traditional shells, and more like just using a traditional programming language. So in Nu I miss being able to just "yield" a value from anywhere without staging into a temporary collection first.</p>
]]></description><pubDate>Wed, 18 Oct 2023 12:26:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=37927634</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37927634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37927634</guid></item><item><title><![CDATA[New comment by sixbrx in "Omnigres: Postgres as a Platform"]]></title><description><![CDATA[
<p>Yes I believe this is often used as part of Oracle's APEX (Application Expresss) tool which has similar goals to Omnigres.  It's used to put together internal business CRUD and reporting apps very quickly for some orgs I've worked for.</p>
]]></description><pubDate>Mon, 16 Oct 2023 12:32:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=37898941</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37898941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37898941</guid></item><item><title><![CDATA[New comment by sixbrx in "A climate model approximation that could change the climate movement"]]></title><description><![CDATA[
<p>It's not the saturation at the peak absorbtion frequencies that is driving the warming, it's the <i>widening</i> of the curves which raises absorbtion levels in nearby frequencies. The "saturated" argument was one of the first objections when the science was poorly understood. Krauss's book Physics of Climate CHange has a good account of this history. Check IPCC summaries to see how many models from the literature predict flattening at 0.7C additional warming if we don't curb emissions (spoiler alert: slim to none with many positing 5C or more additional warming in the 2100's if emissions aren't curbed).</p>
]]></description><pubDate>Wed, 04 Oct 2023 22:36:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=37772724</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37772724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37772724</guid></item><item><title><![CDATA[New comment by sixbrx in "Upsert in SQL"]]></title><description><![CDATA[
<p>Good article, but I wouldn't characterize MERGE as strictly better than the older "ON CONFLICT ..." for Postgres, because MERGE doesn't support any sort of RETURNING clause.</p>
]]></description><pubDate>Mon, 25 Sep 2023 13:58:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=37643892</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37643892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37643892</guid></item><item><title><![CDATA[New comment by sixbrx in "Show HN: Nue – A React/Vue/Vite/Astro Alternative"]]></title><description><![CDATA[
<p>I'd say it's JSX doing that because those attributes are clearly on the declarative/markup side of the divide, not the procedural/imperative dom manipulation side.</p>
]]></description><pubDate>Sat, 16 Sep 2023 20:52:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=37538581</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37538581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37538581</guid></item><item><title><![CDATA[New comment by sixbrx in "Lean 4.0"]]></title><description><![CDATA[
<p>It seems general programming is more in focus now, but for context, the "Programming in Lean" book was only completed recently as compared to the multiple theorem proving documents which have been around for a while.  The Christiansen book looks worth waiting for though and I really hope Lean can gain popularity as a general purpose language.</p>
]]></description><pubDate>Sat, 09 Sep 2023 17:24:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=37447774</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=37447774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37447774</guid></item><item><title><![CDATA[New comment by sixbrx in "The shell and its crappy handling of whitespace"]]></title><description><![CDATA[
<p>Powershell is good, but one downside is that you have to explicitly check the exit code of each external program called and stop the script yourself for non-zero exit codes if that's what you want to do. Ie. there's no "set -e".<p>You can make a helper function or commandlet of course, but it obfuscates the code and is a pain to distribute around always where needed. They argue that non-zero exit codes for errors in external programs is a convention that doesn't exist consistently where Powershell is used. OK, but all the programs I use do follow that convention and so I find that very painful.</p>
]]></description><pubDate>Wed, 02 Aug 2023 12:17:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=36969827</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=36969827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36969827</guid></item><item><title><![CDATA[New comment by sixbrx in "Time to subsidize e-bikes?"]]></title><description><![CDATA[
<p>Similar thing noticed when visiting Korea as US natives. My wife was in a group that all headed off to the restroom at a restaurant just after getting a table, with a couple of in-laws who live there leaving their purses on the table.  My wife exclaimed that they were forgetting their purses, to which they replied that it was on purpose and how else would they make sure somebody doesn't get their table!?</p>
]]></description><pubDate>Tue, 27 Jun 2023 13:05:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=36492158</link><dc:creator>sixbrx</dc:creator><comments>https://news.ycombinator.com/item?id=36492158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36492158</guid></item></channel></rss>