Skip Navigation

User banner
InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)LI
Posts
2
Comments
232
Joined
2 yr. ago

  • If they've been blind since birth, then their brain might not be capable of processing this completely new stimulus fast enough

    It'd be the equivalent of us being able to "see" magnetic flux using our nipples, for 30 seconds

  • The technology behind the registry is fine (which is what I think @VinesNFluff meant)

    But it's execution in Windows was ass

    In theory, a configuration manager with DB-like abilities (to maintain relationships, schematic integrity, and to abstract the file storage details), isn't a bad idea

    But the registry as it is today is pure pain

  • Sanity checks

    Always, always check if your assumptions are true

    • am i even running the function?
    • is this value what i think it is?
    • what is responsible for loading this data, and does it work as expected?
    • am i pointed at the right database?
    • is my configuration set and loaded in correctly?
  • Commit

    Jump
  • I mean, you just need to look at the conflicting files, fix up the code, then stage those changes and pop a new commit

    There's no "special" merge conflict resolution commit "type"


    As for fixing the code itself, I usually look at what changed between both versions, and then re-author the code such that both changes make "sense"

  • that is a little more complicated

    p.communicate() will take a string (or bytes) and send it to the stdin of the process, then wait for p to finish execution

    there are ways to stream input into a running process (without waiting for the process to finish), but I don't remember how off the top of my head

     python
        
    
    from shutil import which
    from subprocess import Popen, PIPE, run
    from pathlib import Path
    
    LS   = which('ls')
    REV  = which('rev')
    
    ls   = run([LS, Path.home()], stdout=PIPE)
    
    p = Popen([REV], stdin=PIPE, stdout=PIPE)
    stdout, stderr = p.communicate(ls.stdout)
    
    print(stdout.decode('utf-8'))
    
      
  • just use python instead.

    • wrap around subprocess.run(), to call to system utils
    • use pathlib.Path for file paths and reading/writing to files
    • use shutil.which() to resolve utilities from your Path env var

    Here's an example of some python i use to launch vscode (and terminals, but that requires dbus)

     python
        
    
    from pathlib import Path
    from shutil import which
    from subprocess import run
    
    def _run(cmds: list[str], cwd=None):
        p = run(cmds, cwd=cwd)
    
        # raises an error if return code is non-zero
        p.check_returncode()
    
        return p
    
    VSCODE = which('code')
    SUDO   = which('sudo')
    DOCKER = which('docker')
    
    proj_dir = Path('/path/to/repo')
    
    docker_compose = proj_dir / 'docker/'
    
    windows = [
      proj_dir / 'code',
      proj_dir / 'more_code',
      proj_dir / 'even_more_code/subfolder',
    ]
    for w in windows:
      _run([VSCODE, w])
    
    _run([SUDO, DOCKER, 'compose', 'up', '-d'], cwd=docker_compose)