• 1 Post
  • 136 Comments
Joined 1 year ago
cake
Cake day: August 15th, 2023

help-circle


  • Most places seem to issue Mac's now for the role. I just create a 90% cpu & memory Linux VM on them and work from within that, with the exception of teams or zoom meetings being native on the Mac (no echo cancellation on linux VM's, it seems). Works mostly well, but it is arm64 based linux, as the Mac's currently are M series.

    Ended up going with Arch for arm64, as it had the simplest way to add widevine support to my browsers.

    Much better than being native on the Mac... Mac doesn't give me the two select&paste linux 2nd copy buffer, doesn't provide focus follows mouse, no auto-raise, and type in partially covered windows without raise. Essential for my workflow.









  • PseudoSpock@lemmy.dbzer0.comtoLinux@lemmy.mlbash coding standards?
    ·
    edit-2
    4 months ago

    Don't know about everyone else, but here are some of mine:

    • Stick to posix compliance shell code, wherever possible
    • Please wrap your variables with { }. Just please.
    • Global variables being exported in all caps
    • Local variables in lower case
    • $() instead of ` `
    • Comment anything complicated, comment what section, comment usage
    • Include usage output if options are not recognized
    • Use case instead of if / elif, where possible
    • 80 characters or less per line, where possible
    • HERE docs in designated section, marked by comment blocks
    • Comment your functions immediately above it's definition
    • Add comment "#End of function Xyz" at line immediately below a function, with replacing Xyz with name of that function
    • 2 space indentation
    • Multi-line strings: First line open with quote and first line of string, followed by a backslash , subsequent lines properly indented and backslashed. Last line, properly indented and close quoted.
    • Break up multiple piping of commands with |\ and a new line where it makes sense to look nice, assisting readability
    • Echo what the script is doing once in a while if the user will be waiting for a while
    • Please don't do shar archives, or byte located binary extractions, make a script and a separate tarball - Helps a ton if we have to change it, like say... swapping out a bundled java runtime built for x86_64 with one for aarch64
    • If the script will run for a very long time, check for tmux or screen and also the TMOUT variable... Give a warning to the user their connection might time out before the script is done if they don't unset TMOUT, and try using tmux or screen to allow the script to continue in the background, even if you do get disconnected
    • Make use of logger
    • I try to organize a script this way: 1. Shebang, 2. Initial variable definitions, 3. Functions, 4. runtime execution code, which might be best outside of a function, and calling functions. 5. Clean-up (remove pid and lock files, tmp files, etc etc.)