• 0 Posts
  • 23 Comments
Joined 1 year ago
cake
Cake day: July 24th, 2023

help-circle



  • The details depend a bit on the audiostack of your distro, but they all have a cli program with which you can change inputs/outputs and volume; e.g. pactl for pulseaudio and wpctl for wireplumber.

    You’ll need a mechanism to find your triggers (I create a firefox tab with youtube/spotify, I have a music player active) and then you can act on it.

    Detecting voice in an audiostream is probably technically possible, but that sounds pretty hard to setup.





  • IIRC, within RHEL it goes fedora (next major) -> centos stream (next minor) -> RHEL (current major.minor).

    With Debian and its derivatives (e.g Ubuntu) this means that Debian-unstable corresponds to fedora, Debian-testing corresponds to CentOS stream and Debian-stable corresponds to RHEL. (Roughly of course).

    Ubuntu is based off of some flavor of Debian and is therefore downstream of it: Debian (unstable I think) -> Ubuntu -> Ubuntu LTS.

    But as far as which version has the newest packages then sure, your list is correct.





  • You can also do the following to prevent unwanted writes when something is not mounted at /mnt/thatdrive:

    # make sure it is not mounted, fails if not mounted which is fine
    umount /mnt/thatdrive
    
    # make sure the mountpoint exists
    mkdir -p /mnt/thatdrive
    
    # make the directory immutable, which disallows writing to it (i.e. creating files inside it)
    chattr +i /mnt/thatdrive
    
    # test write to unmounted dir (should fail)
    touch /mnt/thatdrive/myfile
    
    # remount the drive (assumes it’s already listed in fstab)
    mount /mnt/thatdrive
    
    # test write to mounted dir (should succeed)
    touch /mnt/thatdrive/myfile
    
    # cleanup
    rm /mnt/thatdrive/myfile
    

    From man 1 chattr:

    A file with the ‘i’ attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file, most of the file’s metadata can not be modified, and the file can not be opened in write mode.
    Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

    I do this to prevent exactly the situation you’ve encountered. Hope this helps!






  • It’s probably best to limit yourself to a used laptop.

    Reading and writing code is nothing more than reading and writing text, and for that you don’t need a fancy gpu or screen.

    What I would recommend you look for in a laptop is

    • an SSD instead of an HDD
    • more cpu cores (at least 4 cores)
    • more memory (RAM) (at least 8GB, preferably 16GB+)

    More memory and cores will help you with compiling and running your code.

    And make sure you take regular backups! You never know when your disk will fail.

    Also make sure to check linux compatibility before you buy. Laptops used to be a pain (10+ years ago), and it’s gotten a lot better, but it’s not always perfect. Just search for “[brand] [model] linux” or try to find the model on the archlinux wiki.



  • because bash isn’t always in /usr/bin/bash.

    On macOS the version on /usr/bin/bash is very old (bash 3 I think?), so many users install a newer version with homebrew which ends up in PATH, which /usr/bin/env looks at.

    Protip: I start every bash script with the following two lines:

    #!/usr/bin/env bash
    set -euo pipefail
    

    set -e makes the script exit if any command (that’s not part of things like if-statements) exits with a non-zero exit code

    set -u makes the script exit when it tries to use undefined variables

    set -o pipefail will make the exit code of the pipeline have the rightmost non-zero exit status of the pipeline, instead of always the rightmost command.