Recent submissions

Comment · 1 year ago
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?
Comment · 1 year ago
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...
Comment · 1 year ago
I don't understand how this is a relevant criticism of my system.

If you are already ignoring the actual chord "voicing" as written in the "classical" system, then just keep doing that in my system??

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?

"Gsus4x5" is just as unreadable and ignorable and malleable as "G+5+4".

Comment · 1 year ago
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.

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).

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.

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? :)

As I said, unpopular opinion :)

Comment · 2 years ago
Unpopular opinion: if it walks like a duck and quacks like a duck, then dude, it's a duck.

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.

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.

Comment · 2 years ago
Russia has plenty of meat for the grinder. Being embarrassed isn't gonna stop them.
Comment · 2 years ago
After some thinking, the ternary conditional operator can be decomposed into 2 composing binary operators like such:

? takes a bool, a T, and returns option<T>

true?b == Result b

false?b == None

: takes an Option<T> and a T and returns T

Result x : y == x

None : y == y

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.

Comment · 2 years ago
> Your answer makes me not like you in fact it incites hatred.

Why are you so aggrieved? What's the big deal?

Comment · 2 years ago
The second way is the antiquated british english meaning of the phrase.

It's got a kind of "all but" deal going on: two ways to interpret it.

Really annoying how the English language can't get quantifying phrases right.

Comment · 2 years ago
The VW Golf manual does 4.7L/100km
Comment · 2 years ago
What makes for a good or bad virtual desktop implementation?
Comment · 2 years ago
> In Go or Rust, returning an error is also a “color” that spreads out to the top of the call stack.

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.

Comment · 2 years ago
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.

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}.

Comment · 2 years ago
Use a generic function signature that takes in a `void*`. Inside the specialized function bodies, cast the void* to an `actual_type*`, then dereference.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton