• 7 Posts
  • 76 Comments
Joined 2 years ago
cake
Cake day: July 16th, 2023

help-circle

  • sus@programming.devtoProgrammer Humor@programming.devTeams
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    2 months ago

    “You want to use teams a bit? We have a session here” “I’d be happy to, actually. Not really, but it wouldn’t be bad” “Not really? If you say so, I have a teams session ready right here” “No. No. I’m not stupid” “People use it every day.” “Tell the truth” “It’s a good user experience.” “So are you ready to use it? For 5 minutes?” “No, I’m not an idiot.”









  • The oxford that says this?

    Acronym

    1. A group of initial letters used as an abbreviation for a name or expression, each letter or part being pronounced separately; an initialism

    or the merriam webster that says this?

    Some people feel strongly that acronym should only be used for terms like NATO, which is pronounced as a single word, and that initialism should be used if the individual letters are all pronounced distinctly, as with FBI. Our research shows that acronym is commonly used to refer to both types of abbreviations.




  • We can avoid expensive branches (gasp) by using some bitwise arithmetic to achieve the so-called “absolute value”, an advanced hacker technique I learnt at Blizzard. Also unlike c, c# is not enlightened enough to understand that my code is perfect so it complains about “not all code paths returning a value”.

    private bool IsEven(int number)
    {
        number *= 1 - 2*(int)(((uint)number & 2147483648) >> 31);
        if (number > 1) return IsEven(number - 2);
        if (number == 0) return true;
        if (number == 1) return false;
        throw new Exception();
    }
    




  • So I think it’s still probably unclear to people why “mix of keywords and identifiers” is bad: it means any new keyword could break backwards compatibility because someone could have already named a type the same thing as that new keyword.

    This syntax puts type identifiers in the very prominent position of “generic fresh statement after semicolon or newline”

    …though I’ve spent like 10 minutes thinking about this and now it’s again not making sense to me. Isn’t the very common plain “already_existing_variable = 5” also causing the same problem? We’d have to go back to cobol style “SET foo = 5” for everything to actually make it not an issue



  • I think this is talking about basic functionality, eg. can you do basic stuff with a clean install without everything immediately breaking

    There’s a lot of programming tools that are primarily developed for and on linux, and “windows support” is an afterthought which will result in linux being a very frictionless experience but windows being a minefield of problems and requiring careful manual setup


  • I actually kind of looked at (jpeg) compression artifacts, and it’s indeed true to the extent that if you compress the image bad enough, it eventually makes it impossible to determine if the color was originally flat or not.

    (eg. gif and dithering is a different matter, but it’s very rare these days and you can distinguish it from the “AI noise” by noticing that dithering forms “regular” patterns while “AI noise” is random)

    Though from a few tests I did, compression only adds noise to comic style images near “complex geometry”, while removing noise in flat areas. This tracks with my rudimentary understanding of the discrete cosine tranform jpeg uses*, so any comic with a significantly large flat area is detectable as AI based on this method, assuming the compression quality setting is not unreasonably low

    *(which should basically be a variant of the fourier transform)

    I recreated most of the comic image by hand (using basic line and circle drawing tools, ha) and applied heavy compression. The flat areas remain perfectly flat (as you’d expect as a flat color is easier to compress)

    But the AI image reveals a gradient that is invisible to the human eye (incidentally, the original comic does appear heavily jpeg’d, to the point I suspect it could actually be chatgpt adding artificial “fake compression artifacts” by mistake)

    there’s also weird “painting” behind the texts which serves no purpose (and why would a human paint almost indistinguishable white on white for no reason?)

    the new ai generated comic has less compression, so the noise is much more obvious. There’s still a lot of compression artifacts, but I think those artifacts are there because of the noise, as noise is almost by definition impossible to compress


  • The thing missing here is that usually when you do texture, you want to make it visible. The AI ‘watercolor’ is usually extremely subtle, only affecting the 1-2 least significant bits of the color, to the point even with a massive contrast increase it’s hard to notice, and usually it varies pixel by pixel like I guess “white noise” instead of on a larger scale like you’d expect from watercolor

    (it also affects the black lines, which starts being really odd)

    I guess it isn’t really a 100% proof, but it’s at least 99% as I can’t find a presumed-human made comic that has it, yet every single “looks like AI” comic seems to have it


  • I also noticed how it suddenly went from great to crap.

    But the real reason I think is ironically AI. It used to be that you could easily crawl the web, but after the AI craze, images suddenly became valuable to crawl and every website gets bombarded by scrapers, and are adding more and more countermeasures to make it more difficult, so tineye’s own image scraper probably can’t compete with them and so can’t find any new images