Canadian software engineer living in Europe.

  • 2 Posts
  • 80 Comments
Joined 1 year ago
cake
Cake day: June 7th, 2023

help-circle








  • That’s an interesting thought. There’s a lot of cases you see where people have stripped a comic’s name from the bottom of the image, but that’s not really what this project was designed for. Aletheia will guarantee you that the person/company sharing the media is who they say they are, but critically it won’t prevent infringement.

    The example I give in my talk is that InfoWars could take a BBC news story and say “we made this”, but it wouldn’t let them modify that story and claim that “the BBC made this”. The goal is to be able to re-connect what someone is saying with the reputation of the person saying it, with the hope that we can start delegating our trust to individuals and organisations again.





  • Daniel Quinn@lemmy.catoLinux@lemmy.mlStopping a badly behaved bot the wrong way.
    link
    fedilink
    English
    arrow-up
    25
    arrow-down
    1
    ·
    edit-2
    2 months ago

    Not throwing any shade, just some advice for the future: try to always consider the problem in the context of the OSI model. Specifically, “Layer 3” (network) is always a better strategy for routing/blocking than “Layer 5” (application) if you can do it.

    Blocking traffic at the application layer means that the traffic has to be routed through (bandwidth consumption) assembled and processed (CPU cost) before a decision can be made. You should always try to limit the stuff that makes it to layer 5 if you’re sure you won’t want it.

    The trouble with layer 3 routing of course is that you don’t have application data there. No host name, no HTTP headers, etc., just packets with a few bits of information:

    • source IP and port
    • destination IP and port
    • A few other firewall-specific bits of information like whether this packet is part of an established connection (syn) etc.

    In your case though, you already knew what you didn’t want: traffic from a particular IP, and you have that at the network layer.

    At that point, you know you can block at layer 3, so the next question is how far up the chain can you block it?

    Most self-hosters will just have their machines on the open internet, so their personal firewall is all they’ve got to work with. It’s still better than letting the packets all the way through to your application, but you still have to suffer the cost of dropping each packet. Still, it’s good enough™ for most.

    In your case though, you had setup the added benefit of Cloudflare standing between you and your server, so you could move that decision making step even further away from you, which is pretty great.





  • If you really want an app-like interface, you could make use of Epiphany’s “Install as Web App” feature. Just open Epiphany, go to your Lemmy instance, login, and then select “Install as Web App” from the main menu. Like magic, you get a “Lemmy App” that you can bring up like any other app.

    This is my experience in GNOME. Presumably though, it’d work with any desktop environment that respects the XDG standards.





  • Daniel Quinn@lemmy.catoLinux@lemmy.mlGeneral Advice for shell scripts
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    3 months ago

    I recommend writing everything in Bourne shell (/bin/sh) for a few reasons:

    • Bash is more capable, which is nice, but if you’re fiddling with complex data structures, you probably should be using a more maintainable language like Python.
    • Bash is in most places, but crucially not everywhere. Docker-based deployments for example often use Ash which is very similar to Bash, but lacks support for arrays and a few other things.
    • Bourne’s limitations force you to rethink your choices regularly. If you find yourself hacking around a lack of associative arrays for example, it’s probably time to switch to a proper language.

    Also two bits of advice.

    1. Use shellcheck. There’s a website that’ll check your script for you as well as a bunch of editor extensions that’ll do it in real time. You will absolutely write better, safer code with it.
    2. If your script exceeds 300 lines. Stop and rewrite it in a proper language. Your future self will thank you.