The incident management steps I have in mind when being on-call and getting an alert are:
- Verify the issue
- Triage
- Communicate and scalate if needed
- Mitigate
| ### | |
| ### [2023-06-19] UPDATE: Just tried to use my instructions again on a fresh install and it failed in a number of places. | |
| ###. Not sure if I'll update this gist (though I realise it seems to still have some traffic), but here's a list of | |
| ###. things to watch out for: | |
| ### - Check out the `nix-darwin` instructions, as they have changed. | |
| ### - There's a home manager gotcha https://github.com/nix-community/home-manager/issues/4026 | |
| ### | |
| # I found some good resources but they seem to do a bit too much (maybe from a time when there were more bugs). | |
| # So here's a minimal Gist which worked for me as an install on a new M1 Pro. |
Someone asked in chat (paraphrased) "I am coming from synchronous online systems, and now am going to work on a queue-based system. What should I be aware of?" This is a (somewhat freely-associated) collection of thoughts, based on my experience at SoundCloud.
| # When you SSH into a server for the first time it prompts you if you trust the remote server's host key | |
| # To validate that they key you received is the same as the server you just logged into you can check | |
| # the fingerprint of the host key on the remote server itself. | |
| # Output fingerprint of system's host key | |
| ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub | |
| # You can fingerprint both the private and public key from a file | |
| # They should both produce the same fingerprint value. | |
| ssh-keygen -l -f ~/.ssh/id_ed25519.pub |
Webpack 4 automatically polyfilled many Node APIs in the browser. This was not a great system, because it could lead to surprisingly giant libraries getting pulled into your app by accident, and it gave you no control over the exact versions of the polyfills you were using.
So Webpack 5 removed this functionality. That means you need to make changes if you were relying on those polyfills. This is a quick reference for how to replace the most common patterns.
For each automatically-polyfilled node package name on the left, this shows the name of the NPM package that was used to polyfill it on the right. Under webpack 5 you can manually install these packages and use them via resolve.fallback.
| #replace "<PAT TOKEN>" with your github PAT token, tested with "Update ALL user data" PAT token. | |
| curl -q https://rms-support-letter.github.io/ | grep "href" | grep "github.com" | grep -v "\/\[" | awk -F "https://github.com/" '{ print $2 }' | awk -F "\"\>" '{ print $1 }' | sed 's/\///g' | sed '/^$/d' | xargs -I USER curl -i -X PUT -H "Authorization: token <pat token here>" -H "Accept: application/vnd.github.v3+json" https://api.github.com/user/blocks/USER |
| # The definition of color schemes. | |
| schemes: | |
| gruvbox_material_hard_dark: &gruvbox_material_hard_dark | |
| primary: | |
| background: '0x1d2021' | |
| foreground: '0xd4be98' | |
| normal: | |
| black: '0x32302f' | |
| red: '0xea6962' | |
| green: '0xa9b665' |
| # Instructions for fresh install | |
| $ sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume --daemon | |
| # reboot | |
| $ source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh | |
| $ echo 'export NIX_PATH=darwin-config=$HOME/.nixpkgs/darwin-configuration.nix:$HOME/.nix-defexpr/channels${NIX_PATH:+:}$NIX_PATH' | tee -a ~/.zshrc | |
| $ echo 'source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh' | tee -a ~/.zshrc | |
| $ nix-channel --add https://nixos.org/channels/nixpkgs-unstable | |
| $ nix-channel --add https://github.com/LnL7/nix-darwin/archive/master.tar.gz darwin | |
| $ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager |
| #!/bin/bash | |
| # export LICENSE_ID="" | |
| # export PASSWORD="" | |
| [[ -z "$LICENSE_ID" ]] && echo "Please Set LICENSE_ID Environment Variable" && exit 1 | |
| [[ -z "$PASSWORD" ]] && echo "Please Set PASSWORD Environment Variable" && exit 1 | |
| b64_password=$(echo -n ${PASSWORD} | base64) |