cultural reviewer and dabbler in stylistic premonitions

  • 241 Posts
  • 701 Comments
Joined 3 years ago
cake
Cake day: January 17th, 2022

help-circle














  • This add-on is not actively monitored for security by Mozilla. Make sure you trust it before installing.

    It’s pretty lame that Mozilla’s addons site still doesn’t show source code which is guaranteed to correspond to the binary you’re installing.

    Anyway, I went and read the source on github (which probably corresponds to the extension one can install) and while this part seems very straightforward this other part exceeds my understanding 😂 (i’m not suggesting it is malicious, i just don’t understand everything it is doing there or why it is necessary).

    What I was really looking at the source for was to see if they were simulating keystrokes (and inserting plausible delays between them) to defeat a more determined anti-pasting adversary, or if they were simply suppressing the hostile website’s onPaste handler so that pastes can happen as normal. And: they are doing the latter.

    I wonder if any paste-blocking websites detect and defeat this extension yet?





  • Arthur Besse@lemmy.mlto196@lemmy.blahaj.zonefirefox rule
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    12 days ago

    I work in tech, and I don’t understand people’s obsession with having all their RAM free at all times.

    If you don’t use it, why do you have it?

    Windows (not the best OS, but the one I know the most about), will lie to you about how much memory you have that’s free. It puts data in RAM as cache. In the event you need that data, it’s already loaded in RAM. Usually this is stuff like DLLs and executables for programs.

    There’s a difference between “free” memory, and “available” memory.

    Linux and macOS do the same, although I wouldn’t call it lying per se :)

    There is certainly a lack of understanding of the difference between free and available RAM. TLDR: yes, free RAM is indeed wasted RAM.

    If you actually have a lot of free RAM, it’s probably because you either booted or freed a lot of RAM very recently. After using your computer for a while, most of your available RAM should not be free but rather being used for page cache and other caches.

    After a program has just read and/or written more data from disk than will fit in available RAM, the kernel’s page cache (which is typically the bulk of that not-free-but-available memory) should be mostly populated by the most recent of those operations. This means that if that program (or any other program) reads those files again, before they are evicted from cache by other things, they will not need to wait for the disk and will get them back much faster.

    However, managing all of this is the kernel’s job, and the not-free-but-available RAM being used for page cache is not (in any OS, as far as I know, though I mostly know Linux) attributed to the program(s) responsible for putting things there.

    So, when people are complaining about an application using 40% of their RAM it is not necessarily due to them misunderstanding free-vs-available RAM. The used number for an application does not include the portion of the system’s not-free-but-available RAM which the application is also responsible for occupying.

    (If you want to know which programs and/or which files are responsible for occupying your page cache… on Linux at least, it is not really possible without instrumenting your kernel. The kernel is just tracking blocks. There several tools which will let you see which blocks of a given file are cached, but there isn’t a reverse mapping from blocks to files.)




  • (disclaimer: this information might be years out of date but i think it is still accurate?)

    SSH doesn’t have a null cipher, and if it did, using it still wouldn’t make an SSH tunnel as fast as a TCP connection because SSH has its own windowing mechanism which is actually what is slowing you down. Doing the cryptography at line speed should not be a problem on a modern CPU.

    Even though SSH tunnels on your LAN are probably faster than your internet connection (albeit slower than LAN TCP connections), SSH’s windowing overhead will also make for slower internet connections (vs rsync or something else over TCP) due to more latency exacerbating the problem. (Whenever the window is full, it is sitting there not transmitting anything…)

    So, to answer OP’s question:

    • if you want to rsync over SSH, you usually don’t need a daemon (or to specify --rsh=ssh as that is the default).
    • if you the reason you want to use the rsync daemon is performance, then you don’t want to use SSH. you’ll need to open a port for it.
    • besides performance, there are also some rsync features which are only available in “daemon mode”. if you want to use those, you have at least 3 options:
      • open a port for your rsync daemon, and don’t use SSH (bonus: you also get the performance benefit. downside, no encryption.)
      • setup an SSH tunnel and tell the rsync client it is connecting to a daemon on localhost
      • look at man rsync and read the section referred to by this:
        • The remote-shell transport is used whenever the source or destination path contains a single colon (:) separator after a host specification. Contacting an rsync daemon directly happens when the source or destination path contains a double colon (::) separator after a host specification, OR when an rsync:// URL is specified (see also the USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION section for an exception to this latter rule).

    HTH.