• 0 Posts
  • 95 Comments
Joined 11 months ago
cake
Cake day: August 2nd, 2023

help-circle





  • And memory bugs are only a subset of bugs that can be exploited in a program. Pretending Rust means no more exploitation is stupid.

    This is facile.

    According to Microsoft, about 70% of security bugs they see are memory safety issues.

    Yes: if you introduce memory safety, there’s still those 30% of security bugs left. But, well, I’d rather worry about 30% of issues than 100%…

    Similarly, I use libraries that eliminate SQL injections unless you really go out of your way.






  • One important thing to realize is that different dialects of English have slightly different grammars.

    One place where different dialects differ is around negation. Some dialects, like Appalachian English or West Texas English, exhibit ‘negative concord’, where parts of a sentence must agree in negation. For example, “Nobody ain’t doin’ nothing’ wrong”.

    One of the most important thing to understanding a sentence is to figure out the dialect of its speaker. You’ll also notice that with sentences with ambiguous terminology like “he ate biscuits” - were they cookies, or something that looked like a scone? Rules are always contextual, based on the variety of the language being spoken.



  • No.

    There’s two types of grammar rules. There’s the real grammar rules, which you intuitively learn as a kid and don’t have to be explicitly taught.

    For example, any native English speaker can tell you that there’s something off about “the iron great purple old big ball” and that it should really be “the great big old purple iron ball”, even though many aren’t even aware that English has an adjective precedence rule.

    Then there’s the fake rules like “ain’t ain’t a real word”, ‘don’t split infinitives’ or “no double negatives”. Those ones are trumped up preferences, often with a classist or racist origin.



  • Vav is a product of ashkenaszi pronunciations due to yiddish. Originally it’s Waw.

    Vav has nothing to do with Yiddish.

    The pronunciation shift occurred in a large number of groups that didn’t speak Yiddish, and shifts like that also aren’t uncommon cross-linguistically.

    The exact same shift happened in Italian, as well: v in classical Latin made a w sound, but morphed to a v in most romance languages.

    Pronunciation shifts don’t have to come out of influence of other languages, they just kinda happen normally on their own. Sometimes this causes spelling changes (such as the many Spanish words with an h that came from a Latin f, like hablo or hijo), other times it changes the sound of the letter, such as how the Greek phi went from an aspirated p to an f sound, or a j went from a y sound to an English j.

    And the multiple names for God thing comes from Kaballah

    Kabbalah talks about the multiple names of god, but the Torah itself uses a number of different names for god.

    For that matter, look at Hebrew names. You have names like Matityahu (gift of god), Daniel (god is my judge), and eliyahu (god is my god), using different names of god. Why do biblical Hebrew names use both el and yahu to refer to god, if multiple names was a kabbalistic innovation?


  • Ish.

    There’s precisely zero skill involved in e.g. roulette.

    Poker, fantasy football, and horse betting though, are influenced by skill. But they’re all clearly still gambling.

    The important thing in those 3 is that you’re not betting against the house. You’re betting against other players, and that you’re the smart enough to come out on top even after the house takes their cut. Unless you’re Nate Silver, though, chances are you’re not the smartest person in the room.




  • Symbols display with friendly string-y names in a number of languages. Clojure, for example, has a symbol type.

    And a number of languages display friendly strings for enumy things - Scala, Haskell, and Rust spring to mind.

    The problem with strings over enums with a nice debugging display is that the string type is too wide. Strings don’t tell you what values are valid, strings don’t catch typos at compile time, and they’re murder when refactoring.

    Clojure symbols are good at differentiation between symbolly things and strings, though they don’t catch typos.

    The other problem the article mentions is strings over a proper struct/adt/class hierarchy is that strings don’t really have any structure to them. Concatenating strings is brittle compared to building up an AST then rendering it at the end.

    Edit: autocorrect messed a few things up I didn’t catch.