• 0 Posts
  • 33 Comments
Joined 2 years ago
cake
Cake day: July 24th, 2023

help-circle
  • In the end I’ve used the first command you wrote, because KISS, but I appreciate your explanation

    There’s no shame in combining multiple tools, that’s what pipelines are all about 😄.

    Also there’s a different tool that I would use if I want to output a specific column: awk

    df -h —output=avail,source | awk ‘/\/dev\/dm-2/ {print $1}’
    

    For lines matching /dev/dm-2 print the first column. awk splits columns on whitespace by default.

    But I would probably use grep+awk.

    Sed is definitely a very powerful tool, which leads to complex documentation. But I really like the filtering options before using the search/replace.

    You can select specific lines, with regex or by using a line number; or you can select multiple lines by using a comma to specify a range.

    E.g. /mystring/,100s/input/output/g: in the lines starting from the first match of /mystring/ until line 100, replace input with output


  • The easiest way is probably without sed, which you mentioned:

    df -h --output=avail /dev/dm-2| tail -n1
    

    But purely with sed it would be something like this:

    df -h --output=avail,source | sed -n ‘/\/dev\/dm-2/s!/dev/dm-2!!p’
    

    -n tells sed to not print lines by default

    /[regex]/ selects the likes matching regex. We need to escape the slashes inside the regex.

    s/// does search-and-replace, and has a special feature: it can use any character, not just a slash. So I used three exclamation points instead , so that I don’t need to escape the slashes. Here we replace the device with the empty string.

    p prints the result

    Check the sed man page for more details: https://linux.die.net/man/1/sed



  • That would be block storage like glusterfs or ceph, or object storage like minio or rook.

    You could also use ZFS to provide PVCs for your Pods, with openebs.

    If the mini-servers don’t have hardware redundancy, I’d stick to Replicated Volumes only…

    If you go the openebs+ZFS route, you can make a kubernetes service (DaemonSet because it should run on every node) that makes and sends/exposes ZFS snapshots.


  • Here’s an article that does this: https://iridakos.com/programming/2018/03/01/bash-programmable-completion-tutorial

    I have done this for one of my own tools ta, which is a function that switches to a tmux session, or creates it if it doesn’t exist:

    # switch to existing tmux session, or create it.
    # overrides workdir if session name is "Work"
    function ta() {
            case "$1" in
                    Work) workdir="${HOME}/Work/" ;;
                    *) workdir="${HOME}" ;;
            esac
            if tmux has-session -t "$@" &>/dev/null; then
                    tmux switch-client -t "$@"
            else
                    tmux new-session -A -D -d -c "${workdir}" -s "$@"
                    tmux switch-client -t "$@"
            fi
    }
    
    # complete tmux sessions
    # exclude current session from completion
    function _ta_completion() {
            command="${1}"
            completing="${2}"
            previous="${3}"
            [[ "${command}" != 'ta' ]] && return
            current_session="$(tmux display-message -p '#S')"
            IFS=$'\a' COMPREPLY=( $(tmux list-sessions -F '#{session_name}' | grep -i "^${completing}" | grep -v "^${current_session}$"| tr '\n' '\a' ) )
    }
    # enable completion for ta function
    complete -F _ta_completion ta
    

    Usage

    $ tmux (starts session "0" by default)
    $ ta Personal # create session "Personal" because it doesn't exist
    $ ta Work # create session "Work" because it doesn't exist
    $ ta <tab> 
    0 Personal
    $ ta P<tab> -> $ta Personal
    $ ta <tab>
    0 Work
    

  • Artists will probably have their own setup, software and workflow that they are comfortable with. I’d recommend letting them use their own workflow, and just discussing the interface, so to speak: what file format(s) to use and such. I think GLTF is used for assets, but I’m definitely not an expert.

    As for other devs, most required tooling (e.g. Unity or Pycharm or whatever) are one-time installs that you can list somewhere. And language libraries/dependencies are a solved problem (e.g. pipenv, cargo, yarn).

    But if you really want to set this up, nix (or lix) is probably your best bet for a total devenv that is exactly reproducible, assuming that works for WSL (or no one uses windows).

    Otherwise docker/podman or devenv will probably be doable as well.













  • I see you point; but not even 200 years ago the people couldn’t imagine most people working in other “industries” than agriculture.

    Historically, most people worked in agriculture. (I’m not sure of the percentage, but it was >80% IIRC, but we can take a low estimate at 50%).

    Nowadays less than 5% of the world population works in agriculture, due to increases in automation (machinery that can plow and harvest), and better understanding of the process (more efficient use of land).

    While some of that turned out to be bad for the environment (who knew biodiversity is good, actually?), it did free up most of the population to do other things.

    I hope it’s not “AI” that will automate the future (because of the huge energy costs to the environment), but automation more generally could help us free more time for passionate pursuits.

    Jobs like software engineer didn’t even exist a century ago, and who knows what kind of new jobs will be created in the next 100?