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

help-circle





  • sus@programming.devtoProgrammer Humor@programming.devToo Many Acronyms
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    edit-2
    22 days ago

    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.


  • Video has general VPN background info:

    A VPN is ultimately just someone else’s computer that routes traffic through it, and there is nothing stopping you from starting your own VPN company, promising you’re not logging anything, and then logging everything you can. You are almost certainly never going to be punished in any way for lying to your customers as long as you put in a minimal amount of effort.

    Some VPN companies like to make ridiculous claims like “the vpn will prevent you from getting hacked” which is not true

    For 95-99% of internet users (at least in western countries) a VPN doesn’t really help with privacy at all since your browser is most likely still easily fingerprintable. UBlock origin or similar things help but are not even close enough to stop all fingerprinting, you need something like tor browser with javascript disabled to actually get your browser privacy to the level where a VPN is relevant. (Though it does have other benefits like circumventing some geoblocking, making unencrypted websites slightly safer, etc)

    You ought to manually configure DNS, possibly even try to self-host

    touched upon in the video but not directly explained, almost all VPN companies just rent from cloud services instead of hosting it themselves so even if they didn’t personally log anything, all the network traffic is likely actually still being logged by amazon etc

    governments and police can just get court orders to get all the data from VPNs, or even force them to start logging if they didn’t already, though this is probably not a problem for you if you’re not considered an exceptionally interesting person

    generally trusted VPNs are mullvad, IVPN, ProtonVPN, the only one I’ll personally point out is mullvad who have cohosted servers which should bypass the cloud related issues, though you had to manually select a non-cloud server last time I checked

    As for more or less unique info specific to this video, it claims that VPNs lying about not collecting user data is indeed very common and done by ad companies that buy out VPN companies etc, and government spying agencies also operating VPN companies as honeypots




  • 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



  • And most of those cases are of course using the word sarcastically

    collapsed list of them
    The next function to implement is called, amazingly, next(); its job is to
    move the iterator forward to the next position in the sequence.
    
    if (lc->sync == NOSYNC)
    	for (i = lc->header.nr_regions; i < lc->region_count; i++)
    		/* FIXME: amazingly inefficient */
    		log_set_bit(lc, lc->clean_bits, i);
    else
    	for (i = lc->header.nr_regions; i < lc->region_count; i++)
    		/* FIXME: amazingly inefficient */
    		log_clear_bit(lc, lc->clean_bits, i);
    
    /*
     * Amazingly, if ehv_bc_tty_open() returns an error code, the tty layer will
     * still call this function to close the tty device.  So we can't assume that
     * the tty port has been initialized.
     */
    
     *   this header was blatantly ripped from netfilter_ipv4.h
     *   it's amazing what adding a bunch of 6s can do =8^)
    
    /*
     * I studied different documents and many live PROMs both from 2.30
     * family and 3.xx versions. I came to the amazing conclusion: there is
     * absolutely no way to route interrupts in IIep systems relying on
     * information which PROM presents. We must hardcode interrupt routing
     * schematics. And this actually sucks.   -- zaitcev 1999/05/12
    
     * corresponding ABS_X and ABS_Y events. This turns the Twiddler into a game
     * controller with amazing 18 buttons :-)
    
     * In an amazing feat of design, the Enhanced Features Register (EFR)
     * shares the address of the Interrupt Identification Register (IIR).
     * Access to EFR is switched on by writing a magic value (0xbf) to the
     * Line Control Register (LCR). Any interrupt firing during this time will
     * see the EFR where it expects the IIR to be, leading to
     * "Unexpected interrupt" messages.
    
     * Thanks BUGabundo and Malmostoso for your amazing help!
    


  • It’s a technicality about the pointer type. You can cast the type away which typically doesn’t change the actual value (but I’m pretty sure that causes undefined behavior)

    For your example, int x = 0xDEADBEEF; signifies the integer -559038737 (at least on x86.)

    char *p = (char*)0xDEADBEEF; on the other hand may or may not point to the real memory address 0xDEADBEEF, depending on factors like if the processor is using virtual or real addressing, etc


  • Lots of em-dash usage

    Service goes down after emitting an event but before persisting internal state—causing partial failures that are hard to roll back.
    Subscribe to an existing event and start processing—no changes to publishers.
    Helps track a request across multiple services—even through async events.
    We once had a refund service consume OrderCancelled events—but due to a config typo, it ignored 15% of messages.
    Takeaway: fire-and-forget works—until someone forgets to monitor.
    Use it when the domain fits—fan-out use cases, audit logs, or workflows where latency isn’t critical.

    combined with other chatgpt-isms like the heavy reliance on lists, yeah safe to say it’s mostly AI generated