Руководство по подготовке вашего MacBook к разработке машинного обучения

[Обновления от 3 июля 2022 г.: Добавлен раздел о расширениях Chrome]
[Обновления от 5 июля 2022 г.: Добавлены TunnelBlick, Obsidian , Rectangle и kubectx/kubens]
[Обновления от 2 августа 2022 г.: добавлено расширение «Картинка в картинке» для Chrome]

Для инженера персонализированная среда разработки абсолютно необходима для продуктивной работы. Это то, что я делаю, чтобы настроить свой MacBook в качестве инженера машинного обучения — не стесняйтесь выбирать то, что, по вашему мнению, может быть полезно для вашего рабочего процесса!

Эта статья вдохновлена ​​Винисиусом — ознакомьтесь с его статьей здесь!

Оглавление

MacOS System Preferences
  - Remap Caps Lock key to Esc key
  - Remove apps from Dock
  - Trackpad
Command Line Tools
  - Homebrew
  - iTerm2
  - Ohmyzsh + Powerlevel10k theme
  - Ohmyzsh plugins
  - Shell aliases
  - Other applications to install using Homebrew
Python Environment
  - pip
  - conda
  - pyenv
VSCode Setup
  - Extensions
  - Ohmyzsh compatibility
  - Themes, Icons and Fonts/Ligatures
3rd Party Apps
  - Magnet [Paid] / Rectangle [Free]
  - Postico
  - Postman
  - TunnelBlick
  - Others
Accessories
  - MX Master 3S
Chrome Extensions
  - Video Speed Controller
  - Vimium
  - Dark Reader
  - Authenticator
  - Picture-in-Picture

Системные настройки MacOS

Переназначить ключ Caps Lock на Esc key

Я делаю это для каждой клавиатуры, которую настраиваю, даже для встроенной клавиатуры MacBook. Чтобы переназначить, перейдите к System Preferences > Keyboard > Modifier Keys. Поскольку VIM использует Esc для выхода из режима, слишком неэффективно перемещать палец на клавишу Esc, поэтому я заменил ее на Caps Lock. Поверьте мне, это меняет жизнь.

Удалите все ненужные приложения из дока и скройте его

Ребята, Spotlight (⌘ space) может открыть все, что вам нужно. Нет необходимости нажимать на док-станцию. Вот как выглядит мой минималистичный док.

Трекпад

Я предпочитаю поддерживать скорость отслеживания примерно в 2 метках от самого правого (самого быстрого) выбора. Вы можете настроить эти параметры в System Preferences > TrackPad > Point & Click.

Инструменты командной строки

Домашнее пиво

Я не могу не подчеркнуть, насколько важно получить этот менеджер пакетов для MacOS. Он управляет (устанавливает, обновляет, удаляет) всеми необходимыми вам пакетами, которые Apple не установила для вас заранее.

Чтобы установить его, откройте Терминал и выполните:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

После установки теперь вы можете устанавливать пакеты, используя brew install <pkg_name>. Для обновления пакетов используйте brew upgrade <pkg_name> и, наконец, для удаления пакетов используйте brew uninstall <pkg_name>.

Мы будем использовать brew для установки некоторых пакетов ниже.

iTerm2

В своей статье Винисиус упомянул iTerm2 как дополнительную замену встроенному терминалу Mac. Честно говоря, для меня это обязательная замена. Ознакомьтесь с различиями:

Не знаю, как у вас, но правый терминал визуально выглядит намного сексуальнее, не говоря уже о том, как его использовать.

Для установки выполните в терминале следующее:

brew install --cask iterm2

С этого момента iTerm2 навсегда заменит приложение Terminal. Попрощайтесь с Терминалом.

Вы, должно быть, удивляетесь: «Эй, я установил iTerm2, но он нигде не такой сексуальный, как твой, Дэвид». Не волнуйся, дитя мое, вот что ты установишь дальше.

Oh My Zsh + тема Powerlevel10k

Есть причина, по которой у oh my zsh 147 тысяч звезд. Это абсолютно необходимо для любого разработчика, так как содержит сотни плагинов и тем для настройки вашего zsh.

Чтобы установить oh my zsh, запустите в iTerm2 следующее:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Далее установите тему powerlevel10k. (Да, я знаю, что существует множество тем, но я очень, очень, очень, оченьрекомендую эту!) Ее очень легко настроить, и она очень сексуальна на вашем терминале с красивыми шрифтами и значками.

Чтобы установить его, мы снова будем использовать brew (есть много других вариантов установки, перечисленных в репозитории git):

brew install romkatv/powerlevel10k/powerlevel10k
echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc

Чтобы настроить p10k для достижения вышеуказанного вида, запустите в iTerm2 следующее и следуйте инструкциям мастера установки, чтобы настроить его по своему вкусу:

p10k configure

О, мои плагины Zsh

Сила oh my zsh заключается во всех плагинах, которые можно добавить в вашу оболочку. Вот что я бы минимально установил:

zsh-autosuggestions — Каждый день мы запускаем сотни команд в командной строке. Этот плагин помогает автоматически предлагать команды, которые вы ранее использовали ранее, и вы можете принять предложение с помощью клавиши →. Это особенно полезно, когда вы не можете вспомнить точную команду или у вас есть длинная команда, которую вы хотите изменить. Установить:

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

zsh-syntax-highlighting — Этот плагин добавляет цвет к командам, которые вы вводите. Попрощайтесь со скучным белым текстом, установив его с помощью:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

После установки пользовательских плагинов мы можем включить их, добавив их в список плагинов для загрузки в $HOME/.zshrc:

Примечание. Пользовательские подключаемые модули устанавливаются по адресу $HOME/.oh-my-zsh/custom/plugins.

Псевдонимы оболочки

Для ускорения команд на терминале нам всегда нужны псевдонимы. Это уменьшает количество нажатий клавиш и делает разработчиков более эффективными. Я пишу все свои псевдонимы в $HOME/.local/include и включаю этот фрагмент в $HOME/.zshrc.

# .zshrc
for file in $HOME/.local/include/*;
  do source $file
done

В папку $HOME/.local/include вы можете включать сценарии оболочки с вашими псевдонимами. В качестве примера:

# File: my_aliases.sh
# Apple system related
alias turnonbt='blueutil --power 1'
alias turnoffbt='blueutil --power 0'
alias turnoffsleep='sudo pmset -a sleep 0; sudo pmset -a hibernatemode 0; sudo pmset -a disablesleep 1'
alias turnonsleep='sudo pmset -a sleep 1; sudo pmset -a hibernatemode 3; sudo pmset -a disablesleep 0'
# Git
alias gpom='git pull origin master'
alias gmo='git merge origin'
alias gc='git checkout'
alias gs='git status'
alias gcm='git commit -m'
alias ga='git add'
alias gb='git branch'
alias gf='git fetch'
alias gp='git pull'
alias gr='git restore'
alias push='git push origin'
alias pull='git pull origin'
alias stash='git stash'
alias sapply='git stash apply'
# Docker
alias di='docker images list'
alias dcp='docker container prune -f'
alias di='docker images'
alias dpa='docker ps -a'
alias dp='docker pull'
alias drf='docker rmi -f'
alias dsp='docker system prune -f'
# Other examples
alias tf='terraform'
alias kcl='kubectl'
...

БОНУС: Как подключить MacBook к внешнему дисплею с закрытой крышкой экрана БЕЗ подключения адаптера питания:

Я не уверен, что вы, ребята, пытались подключить свой закрытый ноутбук к внешнему без адаптера питания, но я точно пытался. Эта команда была настоящим спасением:

sudo pmset -a sleep 0; sudo pmset -a hibernatemode 0; sudo pmset -a disablesleep 1

Хитрость здесь заключается в том, чтобы отключить сон. Это сделает невозможным спящий режим вашего ноутбука, что позволит вам закрыть ноутбук и подключить его к внешнему дисплею:

Чтобы сделать вашу жизнь проще, давайте превратим его в псевдоним, чтобы отключать и включать его всякий раз, когда вам нужно:

# to disable sleep
alias turnoffsleep='sudo pmset -a sleep 0; sudo pmset -a hibernatemode 0; sudo pmset -a disablesleep 1'
# to enable sleep
alias turnonsleep='sudo pmset -a sleep 1; sudo pmset -a hibernatemode 3; sudo pmset -a disablesleep 0'

Другие приложения для установки с помощью Homebrew

  • Docker: brew install --cask docker (для Apple Silicon Mac загрузите его здесь)
  • Гит: brew install git
  • кубектл: brew install kubectl
  • kubectx и kubens: brew install kubectx
    Очень удобный инструмент, который обязательно нужно установить вместе с kubectl. kubectx позволяет вам легко управлять контекстом K8s, в то время как kubens делает то же самое для ваших пространств имен.
# Get current context and lists all contexts
kubectx
# Switch context
kubectx <context_name>
# Switch back to previous context
kubectx -
# For namespaces, simply replace `kubectx` with `kubens`
  • VScode: brew install --cask visual-studio-code. Теперь вы можете открыть VSCode из командной строки, используя code <dir>. Например, чтобы открыть VSCode в текущем каталоге, используйте code ..
  • Blueutil: brew install blueutil
    Этот отличный инструмент поможет вам управлять системой Bluetooth через интерфейс командной строки! Если вы похожи на меня, кто хочет делать все с помощью клавиатуры, вам это обязательно понадобится.
  • htop: brew install htop
    Это интерактивное средство просмотра процессов, которое позволяет вам увидеть, какие процессы выполняются в вашей системе. Он показывает вам PID, память, использование процессора и многое другое!

Окружающая среда Python

Пип

pip (менеджер пакетов Python) уже должен быть установлен в вашей системе. Чтобы обновить его:

pip install -U pip

Конда

Мне также нравится устанавливать conda, потому что некоторые другие проекты управляют зависимостями, используя conda. Чтобы установить, перейдите на его официальный сайт здесь, так как он содержит разные версии для Intel и Apple Silicon Mac.

Пьенв

Поскольку мы не хотим использовать встроенный в систему Python2, я обычно устанавливаю другой менеджер среды Python, например pyenv. Однако будьте осторожны, так как установка нескольких из них попытается изменить вашу переменную $PATH.

brew update
brew install pyenv

Всегда проверяйте, какой интерпретатор Python вы используете, если не уверены.

which python

Чтобы установить определенные версии Python, используйте:

pyenv install <py_version>
pyenv global <py_version>  # set global version

Настройка VSCode

Расширения

Вот неполный список расширений, которые я должен установить для своей повседневной работы:

  • Докер [ms-azuretools.vscode-docker]
  • GitLens [eamodio.gitlens]
  • Джинджа [wholroyd.jinja]
  • Юпитер [wholroyd.jinja]
  • Kubernetes [ms-kubernetes-tools.vscode-kubernetes-tools]
  • Pylance [ms-python.vscode-pylance]
  • Remote-ssh [ms-vscode-remote.remote-ssh]
  • Удаленные контейнеры [ms-vscode-remote.remote-containers]
  • Клиент Thunder [rangav.vscode-thunder-client]
  • VIM [vscodevim.vim]
  • YAML [redhat.vscode-yaml]
  • HashiCorp Terraform [4ops.terraform]
  • autoDocstring — генератор строк документации Python [njpwerner.autodocstring]

Совместимость с Oh My Zsh

Поскольку мы используем zsh в качестве оболочки по умолчанию, нам нужно внести некоторые изменения в настройки, чтобы просмотреть шрифт и значки на терминале VSCode.

Откройте Файл → Настройки → Настройки (ПК) или Код → Настройки → Настройки (Mac), введите terminal.integrated.fontFamily в поле поиска в верхней части Настройки вкладку и установите значение ниже на MesloLGS NF[3]. См. GIF ниже для краткого руководства.

Темы, иконки, шрифты/лигатуры

  • One Dark Pro [zhuangtongfa.material-theme]
  • Материальная тема [Equinusio.vsc-material-theme] — Я использую это!
  • Значки тем материалов [equinusio.vsc-material-theme-icons] — Я использую это!
  • Шрифт Fira Code (поставляется с лигатурами!) в качестве семейства шрифтов редактора. Посмотрите, как это выглядит ниже:

Чтобы установить Fira Code, выполните следующие команды:

brew tap homebrew/cask-fonts
brew install --cask font-fira-code

После чего включите этот шрифт в VSCode:

  1. Включение лигатур — измените editor.fontLigatures в settings.json на true
  2. Изменение editor.fontFamily на Fira Code

Сторонние приложения

Магнит [Платные] / Прямоугольник [Бесплатные]

Единственное платное приложение, которое вам когда-либо понадобится на Mac, и оно изменит вашу жизнь. Он просто защелкивает окна на место. Да, в Windows эта функция есть бесплатно, но мы — пользователи Apple. Должен заплатить эту премию.

Изменить. Мне сообщили, что на самом деле существует эквивалентное бесплатное приложение под названием Rectangle! Скачать его здесь.

Теперь давайте посмотрим на это в действии.

Постико

Мой переход к клиенту базы данных для PostgreSQL. Установите его здесь.

ТуннельБлик

Это обязательный VPN-коннектор для OpenVPN, бесплатный и простой в использовании. Это удивительно, потому что позволяет одновременно подключаться к нескольким VPN.

Почтальон

Мой другой клиент для тестирования API, помимо Thunder Client (установлен выше как расширение VSCode). Установите его здесь и выберите версию для Mac.

Другие

Аксессуары

МХ Мастер 3S

Обычно я вообще не рекламирую железо, но я пользуюсь мышками серии MX Master около 5 лет (да, я так долго пользуюсь 2S!), и это полностью изменило мою жизнь, особенно если у вас есть Mac.

Если есть какое-то аппаратное обеспечение, которое вам нужно для сопровождения вашего Mac, это должно быть оно.

Три пальца для смахивания влево/вправо, четыре пальца, прокрутка двумя пальцами и другие жесты трекпада — это слишком хлопотно, особенно когда ваш MacBook подключен к монитору и использует внешнюю клавиатуру/мышь.

С помощью MX Master все жесты Mac можно назначить мыши. Вот как я настраиваю свой:

  1. Используйте кнопки «Назад» и «Вперед» для переключения между окнами рабочего стола.
  2. Используйте кнопку жеста, чтобы смахнуть существующие окна
  3. Подключайтесь к нескольким компьютерам/устройствам для передачи файлов (курсор также перемещается с одного компьютера на другой! Также известен как Flow)

Конечно, есть и другие функции, которые очень элегантны, включая беспроблемное переключение между свободной прокруткой и построчной прокруткой, возможность работать практически на всех поверхностях, горизонтальную прокрутку и многое другое.

Я определенно с нетерпением жду своего перехода с MX Master 2S на MX Master 3S.

Расширения Chrome

Контроллер скорости видео

Как инженеры (а также для отдыха 🙂), просмотр видео позволяет нам быстро учиться. Это расширение позволяет вам контролировать скорость воспроизведения видео в вашем браузере (включая YouTube) с помощью клавиатуры.

d: Ускорить видео на 0,1
s: Замедлить видео на 0,1

Вимиум

Для товарищей по Vim n3rd это просто необходимо. Обратите внимание, что на некоторых веб-страницах (например, Google Docs) вы можете отключить это расширение — вы можете сделать это, добавив его в список исключений.

Темный читатель

Это расширение позволяет превратить ЛЮБУЮ веб-страницу в темный режим. Кому не нравится темный режим, верно?

Аутентификатор

Удобный доступ к кодам в приложении для проверки подлинности в браузере.

Картинка в картинке

Если вы, как и я, любите учиться на YouTube или просто любите смотреть видео на YouTube, теперь вы можете делать это в режиме многозадачности! Функция «Картинка в картинке» создает ненавязчивое плавающее окно YouTube, которое вы можете свободно перемещать. Прощай, неудобное окно с одной вкладкой только для видео на YouTube.

Заключительные слова

Что необходимо сделать при настройке нового MacBook? Дай мне знать в комментариях!

Благодарим Рэйми Карима за обзор и то, что он поделился некоторыми из его советов и приемов!

Поддержите меня! — Если вам нравится мой контент и вы не подписаны на Medium, рассмотрите возможность поддержать меня и подписаться по моей реферальной ссылке здесь. (ПРИМЕЧАНИЕ: часть ваших членских взносов будет отнесена мне в качестве реферальных вознаграждений). В противном случае, оставление 👏🏻 аплодисментов или 💬 комментария также помогает алгоритму!

Рекомендации

[1] Sourabh Bajaj — Настройка Mac
[2] Как настроить Mac для веб-разработки в 2021 году
Vinicius De Antoni
[3] Руководство по установке Powerlevel10k GitHub