My MacBook setup for web development 2022
My Macbook started to perform slowly. For some random reason, I decided to format my MacBook. Here is a step of mine to set it up, hope this might help you a little bit :)
First of all, I backup all files to an external hard disk and then follow the step below.
Hardware
My normal workstation is minimal, just a computer and 1 monitor.
When I connect my MacBook to the monitor, my external monitor seem to display a bit differently e.g. brightness. So I need to re-adjust it.
System Preferences
I usually open or take the screenshot of my setting of the old one beside then just copy/follow one by one.
- Dock & Menu Bar
- Mission Controrl
- Spotlight
- Notifications & Focus
- Internet Accounts
- Trackpad
- Sharing
- Keyboard
- Finder
- New Finder windows show: Downloads
- View > Show View Options > Always open in view list (Use as Defaults)
Ordering
Order Dock, Sidebar, and organize Launchpad
SSH
Setup a new SSH key for the Git repository which depends on the registry you use. We can use the old existing SSH key, but I do follow the security practice that suggest to generate new one for each machine.
- Bitbucket, Set up an SSH key
- GitHub, Generating a new SSH key and adding it to the ssh-agent
- GitLab, Use SSH keys to communicate with GitLab
Program
- Git, install, and setup globally
# setup
git config --global user.name "Nathachai Thongniran"
git config --global user.email "inid3a@gmail.com"git config --list
git config --global user.name
git config --global user.email
- XCode
- VSCode, install, setup global
settings.json
andkeybindings.json
- Drive: Google Drive, One Drive, Dropbox
- Jetbrains toolbox and install DataGrip, PyCharm, and IntelliJ IDEA
- Sourcetree, Git client
- Google Chrome, a web development browser with great debugging tools. install, import bookmark, and setup
chrome://settings/syncSetup/advanced
chrome://settings/content
- VLC, free and open-source, portable, cross-platform media player software and streaming media server
- Docker, a tool for container technology
- Postman, API testing platform
- Lens, UI client for Kubernetes
- Cyberduck, a cross-platform UI client for file storage servers
- Messaging Channel: Slack, Microsoft Teams, Discord, Telegram
- The Unarchiver, compress and uncompress files
VSCode Extensions
My Best IDE ever. General programming language of mine is JavaScript and Python. So these extensions are generally around it.
- ESLint, a lining tool for JavaScript
- Helm Intellisense, Syntax Highlighter for Helm
- Jupyter, it is required to install the Python extension
- One Dark Pro, my only theme
- Prettier, code formatting for many programming languages
- Python, a feature-rich extension for Python
- Remote-SSH, allow using remote machine via SSH
- Live Server, local server with live reload feature
- StandardJS, another listing tool for JavaScript
- Conda Cheatsheet, open the Conda cheatsheet inside the editor
Terminal
Terminal setup is simple iterm2
+ ohmyzsh
and here is the tutorials
- How to Configure your macOs Terminal with Zsh like a Pro
- iTerm2 + Oh My Zsh + Solarized color scheme + Source Code Pro Powerline + Font Awesome + [Powerlevel10k] — (macOS)
- iTerm2 + zsh + oh-my-zsh The Most Power Full Terminal on macOS
Command-line interface (CLI) Program
Here is a list of CLI tools
- Homebrew, and also install
brew help
brew update
brew upgrade# wget, tool for retrieving files over HTTP
# nmap, network scanner
# telnet, provide a bidirectional interactive text communication
# k6, load testing
# wrk, load testing (another one)
# jq, command-line JSON processor
# kubectl, CLI to interact with Kubernetes clusters
brew install wget nmap telnet k6 wrk jq kubectl
- Cloud Provider CLI: Install the gcloud CLI, Installing or updating the latest version of the AWS CLI
- Node Version Manager (NVM), install and set the default NodeJS version
nvm ls
nvm ls-remote
nvm install 16.15.0
nvm alias default 16.15.0
nvm use default 16.15.0
- Conda, Python package management. I do prefer Miniconda
conda -V
conda search python
conda create — name base3.10.4 python=3.10.4
conda activate base3.10.4
- Commitizen, defines a standard way for Git commit message
npm install -g commitizen
npm install -g cz-conventional-changelog
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
- chromepass, password generation which runs 100% locally
npm install -g chromepass
chromepass
- httpie, command-line HTTP client
python -m pip install --upgrade httpie
Thank you so much for your time, see ya!