Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)DM
Doc Avid Mornington @ docAvid @midwest.social
Posts
0
Comments
252
Joined
2 yr. ago

  • Self awareness would be an apology, not "Huck Huck I don't care who dies as long as they aren't rich like me, lol". We see real self awareness from more leftist Congress critters all the time, although the capitalist media tends to paint it as bad, somehow. I'm glad you only "almost respect" this tone deaf statement.

  • No baby was aborted, ever, by definition.

    Pregnancies are aborted.

    Aborting a pregnancy involves destroying a blastocyst or embryo, in most cases.

    At no point is a baby involved.

    But I'll bet that some actual children who were orphaned when those 1200 women died wound up dying as well.

  • Biden isn't doing exactly the things I want. He's doing some things I kind of want, or at least strongly prefer over what I might have expected him to do, and vastly prefer over what Trump would do, while also doing some things I think are very bad. He's probably the most progressive president of my lifetime, but that's more an indictment of politics in my lifetime than an endorsement of Biden. He not only isn't doing, but has actively opposed doing what the best science available tells us we need to do in order to prevent the worst outcomes of the climate crisis, which is pretty terrifying. Ultimately, he could literally kill more people than any world leader in history, yet he's still the best viable option. So yep, you got me: we gotta vote for him, even if he sucks.

  • I interpret it a bit differently. After all, a variable declared with var isn't really more capable of being rebound, or bound to more values, than one declared with let. However, it is possible, with var, that setting a variable in one place could change it unexpectedly in another, so Rose Noble coming out as trans could cause Jordan Peterson to also suddenly be a woman.

  • There are two kinds of "null" that are often called out as mistakes, you may be thinking of. One is the null reference, as found in languages like C and Java, which Tony Hoare, who created it for ALGOL back in the sixties, has called his "billion dollar mistake". The other is the three-valued-logic of null in SQL, which is almost as bad.

    There's nothing wrong with "null", necessarily, in other contexts, although I do think a more clear name for whatever it means in any given context might be better.

  • A scripting language is certainly a programming language. In fact, it can be hard to even draw a line at all. PHP is just-in-time compiled, and has static analysis tools that can catch errors that are normally considered "compile-time" - scripting language or no? Is Typescript compiled? Are JVM bytecode and WASM just very low level scripting languages? Can you write a powerful web application using BASH? What even is Lisp, in this context? "Scripting language" is a poor abstraction, really.

  • I mean, that's just a bad library interface. With a halfway decent interface, you can do something like

     
        
    query('insert into foo (status, name) values (:status, :name)', ent)
    
    
      

    No orm required. With tagged templates in JS, you can do

     
        
    q`insert into foo (status, name) values (${ent.status}, ${ent.name})`
    
    
      

    Even wrap it in a function with destructuring to get rid of ent:

     
        
    const addFoo = (q, {status, name}) =>
        q`insert into foo (status, name) values (${status}, ${name})`
    
    
      

    Typescript can add type safety on top of that, of course. And there's the option to prepare a query once and execute it multiple times.

    Honestly, the idea of manipulating XML queries, if you mean anything more fancy than the equivalent of parameter injection, sounds over-complicated, but I'd love to see a more concrete example of what you mean by that.

  • Postgres has the having clause. If it didn't, that wouldn't work, as you can't use aggregates in a where. If you have to make do without having, for some reason, you can use a subquery, something like select * from (select someCalculatedValue(someInput) as lol) as stuff where lol > 42, which is very verbose, but doesn't cause the sync problem.

    Also, I don't think they were saying the capability having gives is bad, but that a new query language should be designed such that you get that capability without it.

  • I'm not sure how including a final semicolon can protect against an injection attack. In fact, the "Bobby Tables" attack specifically adds in a semicolon, to be able to start a new command. If inputs are sanitized, or much better, passed as parameters rather than string concatenated, you should be fine - nothing can be injected, regardless of the semicolon. If you concatenate untrusted strings straight into your query, an injection can be crafted to take advantage, with or without a semicolon.