<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: pistoleer</title><link>https://news.ycombinator.com/user?id=pistoleer</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 00:12:36 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pistoleer" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pistoleer in "How to build 99.999% uptime payment systems"]]></title><description><![CDATA[
<p>Not technical/concrete (examples are missing!) enough for me to really understand what techniques the author is getting at. How would the author achieve all these exclusion mechanisms in a distributed system instead of letting the database engine handle that?</p>
]]></description><pubDate>Wed, 27 Nov 2024 14:03:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42256156</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42256156</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42256156</guid></item><item><title><![CDATA[New comment by pistoleer in "Show HN: I built a(nother) house optimized for LAN parties"]]></title><description><![CDATA[
<p>Those cat corridors are cool as shit. I love little doors and hidden hallways, it's almost victorian. I would only worry about "noise" leaking out of the bedrooms...</p>
]]></description><pubDate>Sun, 17 Nov 2024 11:37:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42163588</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42163588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42163588</guid></item><item><title><![CDATA[New comment by pistoleer in "How Chordcat works – a chord naming algorithm"]]></title><description><![CDATA[
<p>I don't understand how this is a relevant criticism of my system.<p>If you are already ignoring the actual chord "voicing" as written in the "classical" system, then just keep doing that in my system??<p>If you are already able to intuit that a note should go elsewhere, then keep doing that for your jazz sets? What's the issue again?<p>"Gsus4x5" is just as unreadable and ignorable and malleable as "G+5+4".</p>
]]></description><pubDate>Tue, 12 Nov 2024 19:42:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42118899</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42118899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42118899</guid></item><item><title><![CDATA[New comment by pistoleer in "How Chordcat works – a chord naming algorithm"]]></title><description><![CDATA[
<p>E-G is a 3 semitone interval and G-C is 5 semitones so it's an E+3+5 chord. If you wanna play it on piano, that means leave a gap of 2 keys and then a gap of 4 keys.<p>Known in western classical harmonization theory as "Em+" (E chord with minor third, augmented 5th). C first inv is actually Gsus4add6no5 or as I like to call it G+5+4. It has an incredibly warm and rich tone, nothing like C+4+3 (C major triad).<p>It works in C because all of its notes are also present in the C major scale, but that's just a coincidence. Calling it a C inverted chord is like making astrological or numerological conclusions.<p>And no, shifting up or down by octaves is not the same sound. It's close but not equal. You can probably get away with octave substitutions in a busy song but you can not say it sounds exactly the same. A 9th is not a 2nd. 11 not 4, 13 not 6. When you play La Campanella, is that your excuse for skipping those octave jumps? :)<p>As I said, unpopular opinion :)</p>
]]></description><pubDate>Tue, 12 Nov 2024 08:38:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42113797</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42113797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42113797</guid></item><item><title><![CDATA[New comment by pistoleer in "How Chordcat works – a chord naming algorithm"]]></title><description><![CDATA[
<p>Unpopular opinion: if it walks like a duck and quacks like a duck, then dude, it's a duck.<p>Inverted chords have, in my ears, never sounded anything like the chords they are supposedly an inversion of. It's like saying "10 is just really 3+7". It's true, and it's also useless. Let 10 be 10. Let 3 be 3. Etc.<p>Most composers don't even use this system as they compose, it's just for after the fact analysis. Composers hear a tune in their head and then transcribe it. Unless they're writing cookie cutter shit without inspiration, then they might synthesize some soulless crap that intentionally follows some well known chord progression as picked by a dart thrown at a poster of the circle of fifths.</p>
]]></description><pubDate>Tue, 12 Nov 2024 00:09:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42111599</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42111599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42111599</guid></item><item><title><![CDATA[New comment by pistoleer in "Trump wins presidency for second time"]]></title><description><![CDATA[
<p>Russia has plenty of meat for the grinder. Being embarrassed isn't gonna stop them.</p>
]]></description><pubDate>Wed, 06 Nov 2024 14:33:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42062862</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42062862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42062862</guid></item><item><title><![CDATA[New comment by pistoleer in "Ternary Operators"]]></title><description><![CDATA[
<p>After some thinking, the ternary conditional operator can be decomposed into 2 composing binary operators like such:<p>? takes a bool, a T, and returns option<T><p>true?b == Result b<p>false?b == None<p>: takes an Option<T> and a T and returns T<p>Result x : y == x<p>None : y == y<p>However, in most languages (looking at you php) the ?: act as a type of parenthesis: in a?b:c, any expression goes into b, no matter it's precedence.</p>
]]></description><pubDate>Tue, 05 Nov 2024 19:47:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=42054595</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42054595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42054595</guid></item><item><title><![CDATA[New comment by pistoleer in "Why shouldn't you give money to homeless people?"]]></title><description><![CDATA[
<p>> Your answer makes me not like you in fact it incites hatred.<p>Why are you so aggrieved? What's the big deal?</p>
]]></description><pubDate>Tue, 05 Nov 2024 15:50:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=42052424</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=42052424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42052424</guid></item><item><title><![CDATA[New comment by pistoleer in "Stupidity"]]></title><description><![CDATA[
<p>The second way is the antiquated british english meaning of the phrase.<p>It's got a kind of "all but" deal going on: two ways to interpret it.<p>Really annoying how the English language can't get quantifying phrases right.</p>
]]></description><pubDate>Wed, 30 Oct 2024 11:30:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=41993758</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41993758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41993758</guid></item><item><title><![CDATA[New comment by pistoleer in "Honda is testing a manual transmission for EVs"]]></title><description><![CDATA[
<p>The VW Golf manual does 4.7L/100km</p>
]]></description><pubDate>Wed, 30 Oct 2024 08:41:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41992967</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41992967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41992967</guid></item><item><title><![CDATA[New comment by pistoleer in "Using an 8K TV as a Monitor"]]></title><description><![CDATA[
<p>What makes for a good or bad virtual desktop implementation?</p>
]]></description><pubDate>Wed, 30 Oct 2024 08:39:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=41992959</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41992959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41992959</guid></item><item><title><![CDATA[New comment by pistoleer in "What Color is Your Function? (2015)"]]></title><description><![CDATA[
<p>> In Go or Rust, returning an error is also a “color” that spreads out to the top of the call stack.<p>That's wrong... Suppose A calls B and B returns a Result<T> (so it's colored as you say). A can match both the Some() and the Err() variants of B and return something other than the error in the latter case. So A can shed the color. There is no way to "shed" async-ness like that in javascript.</p>
]]></description><pubDate>Thu, 24 Oct 2024 17:52:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41937806</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41937806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41937806</guid></item><item><title><![CDATA[New comment by pistoleer in "Adding row polymorphism to Damas-Hindley-Milner"]]></title><description><![CDATA[
<p>Swift solves this by using witness tables. Witness table is a skeleton of the desired record shape. It records offsets of desired fields as found in the actual supplied record. Each function call the actual record is not passed, but its corresponding witness table instead.<p>For instance, if the "prototype" of the argument is {int foo, float bar}, and I supply {int foo, int baz, float bar}, the table will be {foo: base+0 bytes, bar: base+8 bytes}.</p>
]]></description><pubDate>Wed, 23 Oct 2024 08:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=41922870</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41922870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41922870</guid></item><item><title><![CDATA[New comment by pistoleer in "UndefinedBehaviorSanitizer's Unexpected Behavior"]]></title><description><![CDATA[
<p>Use a generic function signature that takes in a `void*`. Inside the specialized function bodies, cast the void* to an `actual_type*`, then dereference.</p>
]]></description><pubDate>Sun, 20 Oct 2024 13:23:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=41895214</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41895214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41895214</guid></item><item><title><![CDATA[New comment by pistoleer in "UndefinedBehaviorSanitizer's Unexpected Behavior"]]></title><description><![CDATA[
<p>For the same reason python is seen as easier: guardrails and checks are just an impediment right?</p>
]]></description><pubDate>Thu, 17 Oct 2024 09:40:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41867920</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41867920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41867920</guid></item><item><title><![CDATA[New comment by pistoleer in "UndefinedBehaviorSanitizer's Unexpected Behavior"]]></title><description><![CDATA[
<p>It's not well laid out. The examples are malformed/illegal and the ifdef thing is stupid.<p>The author admits to not being a C undefined behavior expert and yet acts like they might know better than a tool made by such experts.<p>Looking up the rules and verifying the shown snippets takes at most 30 minutes at a leisurely pace, the author could have saved themselves the embarrassment.<p>I'm not going to write a blog post about how I didn't expect a color spectrometer pointed at the sky to say "BLUE" because I thought it might have been purple, "although I'm not an expert in wave lengths".</p>
]]></description><pubDate>Thu, 17 Oct 2024 09:32:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41867882</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41867882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41867882</guid></item><item><title><![CDATA[New comment by pistoleer in "UndefinedBehaviorSanitizer's Unexpected Behavior"]]></title><description><![CDATA[
<p>It's worse than that. This guy takes a void* function and casts it to a char* function, then passes it a char**.<p><pre><code>    void (*name)(char *ptr);
    typedef void (*name_func)(char *ptr);

    void target(void *ptr)
    {
       printf("Input %p\n", ptr);
    }


    char *data = "string";
    name = (name_func)target; // Illegal: casting fn that takes void* to a fn that takes char*
    name(&data); // Illegal: passing a char** into a function that takes char*
</code></pre>
Before someone mentions qsort(): the comparator function really is supposed to take a void*, and inside the function, you re-cast the void* argument to a pointer type of your desire. If you don't do it in that order, you're using it wrong.</p>
]]></description><pubDate>Thu, 17 Oct 2024 09:25:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41867841</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41867841</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41867841</guid></item><item><title><![CDATA[New comment by pistoleer in "UndefinedBehaviorSanitizer's Unexpected Behavior"]]></title><description><![CDATA[
<p>Man rants about not expecting weird type system abuse that works on his machine to be undefined behavior</p>
]]></description><pubDate>Thu, 17 Oct 2024 09:20:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=41867812</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41867812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41867812</guid></item><item><title><![CDATA[New comment by pistoleer in "Why don't we use awnings anymore (2022)"]]></title><description><![CDATA[
<p>> A government paying for a thing does not in any way imply that the thing is a good use of money.<p>Agreed, nor is the inverse implied of course. But what is your point?<p>> How many decades of fabric replacements could you get from the savings of bolting on a simple metal frame as compared to an elaborate electromechanically actuated arm mechanism?<p>That's what I'm saying, fabric doesn't really need to get replaced in 15 years and going from personal experience. The mechanism is simple enough to be reliable as well.<p>Ultimately, it's impossible to analyze the cost benefits of this. It's a matter of personal taste and what the harshness of the local climate allows. I don't doubt that fixed awnings are cheaper - but actuating awnings fix their drawbacks, and the maintenance they introduce is minimal in my experience. And frankly, for the price of giving up a single vacation in 15+ years, it's not that expensive. Again, cheap enough that those in social housing can make the choice to get them installed.<p>ETA: my point of mentioning social housing is to say that people with lower income can still get them. The government doesn't pay for it. I just wanted to paint a picture of the relative cost.</p>
]]></description><pubDate>Wed, 16 Oct 2024 08:50:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=41856973</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41856973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41856973</guid></item><item><title><![CDATA[New comment by pistoleer in "Why don't we use awnings anymore (2022)"]]></title><description><![CDATA[
<p>In the Netherlands it costs around a grand, as for maintenance... Haven't needed to do any in more than 15 years. The actual screen retracts into a weather proof metal casing, so there's not that much that goes wrong, whereas fixed awnings are exposed to the full weather gamut 24/7.<p>Let me put it this way: it's cheap enough that a lot of social housing and other cheap forms of housing inhabited by the "lower class" feature them.</p>
]]></description><pubDate>Wed, 16 Oct 2024 08:00:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41856685</link><dc:creator>pistoleer</dc:creator><comments>https://news.ycombinator.com/item?id=41856685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41856685</guid></item></channel></rss>