• 9 Posts
  • 108 Comments
Joined 11 months ago
cake
Cake day: March 28th, 2025

help-circle




  • I would highly recommend the Framework 13. I’ve had it for a bit more than a year now. The only problem I’ve faced was that the WiFi card was a bit unstable in EndeavourOS. But that was fixed by replacing wpa_supplicant with iwd. (I hear that it was only an issue for the AMD version, and that it’s fixed now.) Battery life is fine for me. I limit charging at 70%, and that usually lasts me the whole day.

    I love how Linux friendly it is. On my last laptop (an HP), it was pretty much impossible to upgrade the BIOS from inside Linux. Now it’s trivial. There’s also good support available when you face issues. (Both from Framework, and community members.) The hardware is pretty nice. I actually like how it’s MacBook-like, because it just looks nice in most settings. It’s portable too, I really hope they don’t make it bulkier like some folks here seem to demand.









  • SinTan1729@programming.devOPtoProgrammer Humor@programming.devRust bad Jai good
    link
    fedilink
    English
    arrow-up
    15
    arrow-down
    2
    ·
    2 months ago

    You’re spot on. The same people complain endlessly about Rust being used in the Linux kernel, even though the actual experts are happy with it. It’s just culture war bullshit.

    I didn’t know how much of a change Lunduke had had until recently, when I watched a video by Nicco. I used to watch his Linux Sucks videos 4-5 years ago, and he genuinely seemed like a chill dude.


  • Good work, but this can be done in a more efficient way by utilizing the qBittorrent API in more places. Also, you may wanna utilize gluetun’s VPN_PORT_FORWARDING_UP_COMMAND for calling the script.

    Here’s my script. I used bash since the gluetun container doesn’t have Python in it.

    Code
    #!/bin/sh
    
    # Adapted from https://github.com/claabs/qbittorrent-port-forward-file/blob/master/main.sh
    
    # set -e
    
    qbt_username="${QBT_USERNAME}"
    qbt_password="${QBT_PASSWORD}"
    qbt_addr="${QBT_ADDR:-http://localhost:8085/}"
    
    if [ -z ${qbt_username} ]; then
        echo "You need to provide a username by the QBT_USERNAME env variable"
        exit 1
    fi
    
    if [ -z ${qbt_password} ]; then
        echo "You need to provide a password by the QBT_PASSWORD env variable"
        exit 1
    fi
    
    port_number="$1"
    if [ -z "$port_number" ]; then
        port_number=$(cat /tmp/gluetun/forwarded_port)
    fi
    
    if [ -z "$port_number" ]; then
        echo "Could not figure out which port to set."
        exit 1
    fi
    
    wait_time=1
    tries=0
    while [ $tries -lt 10 ]; do
        wget --save-cookies=/tmp/cookies.txt --keep-session-cookies --header="Referer: $qbt_addr" --header="Content-Type: application/x-www-form-urlencoded" \
          --post-data="username=$qbt_username&password=$qbt_password" --output-document /dev/null --quiet "$qbt_addr/api/v2/auth/login"
    
        listen_port=$(wget --load-cookies=/tmp/cookies.txt --output-document - --quiet "$qbt_addr/api/v2/app/preferences" | grep -Eo '"listen_port":[0-9]+' | awk -F: '{print $2}')
    
        if [ ! "$listen_port" ]; then
            [ $wait_time -eq 1 ] && second_word="second" || second_word="seconds"
            echo "Could not get current listen port, trying again after $wait_time $second_word..."
            sleep $wait_time
            [ $wait_time -lt 32 ] && wait_time=$(( wait_time*2 )) # Set a max wait time of 32 secs
            tries=$(( tries+1 ))
            continue
        fi
    
        if [ "$port_number" = "$listen_port" ]; then
            echo "Port already set to $port_number, exiting..."
            exit 0
        fi
    
        echo "Updating port to $port_number"
    
        wget --load-cookies=/tmp/cookies.txt --header="Content-Type: application/x-www-form-urlencoded" --post-data='json={"listen_port": "'$port_number'"}' \
          --output-document /dev/null --quiet "$qbt_addr/api/v2/app/setPreferences"
    
        echo "Successfully updated port"
        exit 0
    done
    
    echo "Failed after 10 attempts!"
    exit 2
    

    For the auto-exit stuff, you may wanna check out docker’s healthcheck functionality.

    Not trying to put you down or anything here, it’s great to learn to do things by yourself. Just giving you some pointers.