arthurdenture
Joined 16 years ago
Joined 16 years ago
Major and minor keys use the same shapes / solfege system. The major scale is "fa, so, la, fa, so, la, mi, fa", while the minor scale uses the same syllables but starts on la. This means that the shapes always represent the same intervals (i.e. pattern of whole and half steps) whether a song is in a major or minor. It's hard to describe but makes sense when singing.
That's one reason shape notation never caught on; another reason is that the notation was introduced by publishers of American sacred music and not by, say, music conservatories.
[alias]
git = !sl
catches e.g. `git git status`, which I run shockingly often.Here's what it looks like to correctly annotate an array of objects with with class-validator and json-schema annotations:
@ApiProperty({ type: Foo, isArray: true })
@ValidateNested({ each: true })
@Type(() => Foo)
@IsArray()
items: Foo[];
It's not just that you have to define everything in triplicate, it's that the failure mode for forgetting any of the above is to silently not validate your data. Unless you're very careful, you don't get the safety benefits that were the whole point of using class-validator in the first place.If I were starting from scratch, I would instead consider either io-ts or a solution that involves a code generation step, where this entire category of risk is avoided.
I mean, I see why it's intuitively unappealing to you, but there are perfectly good reasons for the design.