• 0 Posts
  • 20 Comments
Joined 2 years ago
cake
Cake day: June 10th, 2023

help-circle
rss
  • I’ve never used Rust or Zig, but for Go: (disclaimer: this is all from memory, so there may be inaccuracies or out-of-date information here)

    Go does not allow circular references between modules. That restriction allows the compiler, when compiling a module, to not only put the compiled machine code in the resulting object file for that module but also the information that in C would be required to be in a header file (i.e. type definitions, function signatures, and even complete functions if they’re considered candidates for inlining, etc.). When compiling a module that imports others, the compiler reads that stuff back out of those files. Essentially a compiled Go library has it’s auto-generated “header file” baked-in.

    In older versions this was actually human-readable: an early part of the object file would essentially look like trimmed-down Go when opened in a text editor. IIRC they’ve switched to a binary serialization format for this some years back, but AFAIK it still essentially works the same.

    I guess when comparing to C or C++, you could compare this to automatically generating pre-compiled headers for every module, except the headers themselves are also auto-generated (as you alluded to in your post).

    If by “shared library” you mean a dynamically linked one: IIRC Go does allow shared libraries to be used, but by default all Go code is linked statically (though libraries written in other languages may be dynamically linked by default, if you import a module that requires it).






  • And, interestingly, they lost $91 million last year. If the CEO had instead earned $100 million last year, the company have made a multi-million dollar profit (if only just). If it had been $10 million (still way overpaid for any single person, I’d argue), they’d be nearing the hundreds-of-millions-per-year profit scale.

    I’ll never understand companies paying their CEOs hundreds of millions while they’re losing money hand over fist…


  • If this is something you run into often, it’s likely still only for a limited number of servers? ssh and scp both respect .ssh/config, and I suspect (but haven’t tested) that sftp does too. If you add something like this to that file:

    Host host1 host2
      Port 8080
    

    then SSH connections to hosts named in that first line will use port 8080 by default and you can leave off the -p/-P when contacting those hosts. You can add multiple such sections if you have other hosts that require different ports, of course.







  • I have a similar setup.

    Getting the DNS to return the right addresses is easy enough: you just set your records for subdomain * instead a specific subdomain, and then any subdomain that’s not explicitly configured will default to using the records for *.

    Assuming you want to use Let’s Encrypt (or another ACME CA) you’ll probably want to make sure you use an ACME client that supports your DNS provider’s API (or switch DNS provider to one that has an API your client supports). That way you can get wildcard TLS certificates (so individual subdomains won’t still leak via Certificate Transparency logs). Configure your ACME client to use the Let’s Encrypt staging server until you see a wildcard certificate on your domains.

    Some other stuff you’ll probably want:

    • A reverse proxy to handle requests for those subdomains. I use Caddy, but basically any reverse proxy will do. The reason I like Caddy is that it has a built-in ACME client as well as a bunch of plugins for DNS providers including my preferred one. It’s a bit tricky to set this up with wildcard certificates (by default it likes to request individual subdomain certificates), but I got it working and it’s been running very smoothly since.
    • To put a login screen before each service I’ve configured Caddy to only let visitors through to the real pages (or the error page, for unconfigured domains) if Authelia agrees.




  • PerhytetoPiracy@lemmy.mlPiracy > resellers
    link
    fedilink
    English
    32 years ago

    Many piracy sites run ads though, don’t they? Unless everyone visiting runs ad blockers (unlikely) the people running those are making at least some money. Presumably it at least covers the cost of running the sites.

    It’s probably just as the comment you replied to said: “stuff bought with stolen credit cards (and resold on those sites) actually costs us money, as opposed to piracy which merely ‘costs’ us money”.


  • PerhytetoProgrammer Humor@lemmy.mlCorrection
    link
    fedilink
    English
    82 years ago

    If you’re using OpenSSH, the IdentityFile configuration directive selects the SSH key to use.

    Add something like this to your SSH config file (~/.ssh/config):

    Host github.com
      IdentityFile ~/.ssh/github_rsa
    
    Host gitlab.com
      IdentityFile ~/.ssh/gitlab_rsa
    

    This will use the github_rsa key for repositories hosted at github.com, and the gitlab_rsa key for repositories hosted at gitlab.com. Adjust as needed for your key names and hosts, obviously.


  • I’m from Europe (and studied CS there). My classes for some courses were about a third Indian, a third Chinese, with locals and other foreigners combined being the final third.

    Of course, I’m pretty sure this photo wasn’t taken anywhere near me either. For me, the clue to that was the Cyrillic on the slides.