Author: Gati Aher
Created: September 25, 2022 macOS Monterey, MacBook Pro, Apple M1 Max
- How to Set up an Apple Mac for Software Development by Stuart Ellis
- macOS Setup Guide by Sourabh Bajaj
- Zettelkasten by Artem Kirsanov
- Zotero hacks: unlimited synced storage and its smooth use with rmarkdown by ilya.kashnitsky
- xcode, homebrew, autocompletion of commands
- git, ssh keys
- neovim + initalization - hyperextensible Vim-based text editor
- Amethyst - tiling window manager for macOS
- Prettier - formatting for Markdown
- VS Code Prettier - formatting for Markdown
- pre-commit - multi-language package manager for pre-commit hooks
-
Obsidian + iPhone App + iCloud Sync
- Admonition - adds admonition block-styled content to Obsidian.md
- Citations - Insert literature note references from Zotero Library
-
Zotero + iPhone App + Zotero Account Sync
- Firefox Contector - browser plugin
- Zotero Better Bibtex - faculties for generating citekeys
- [Zotfile](http://zotfile.com/ - manage attachments: automatically rename, move, and attach PDFs
- Level up your terminal game with iTerm2’s Hotkey Window and text settings - very helpful guide to improving usability of iTerm2
- A Quick and Easy Guide to tmux
- Code like a Hacker: Another Neovim Terminal Setup
- iTerm2 + Oh-My-Zsh: Supercharge Your Mac Terminal by Caitlin Pit
- Vim and Tmux on your Mac
- iTerm2 - better terminal for MacOS
- tmux - terminal multiplexer, window manager within the terminal (like screen)
- oh-my-zsh - framework for managing Zsh configuration
- zsh-autosuggestions - Fish-like autosuggestions for zsh
- zsh-syntax-highlighting - Fish shell like syntax highlighting for Zsh. Note: manual install into
~/.oh-my-zsh/plugins/
- autojump - weighted cd shortcut command (
j code
forcd ~/Documents/Code
)
- Powerlevel10k - popular zsh theme
- thefuck - corrects previous command
- ! fasd - shortcuts for terminal commands
- tldr - simplified man pages
- tree - visualize recursive directory structure
- shellcheck - lint Bash scripts
- shfmt - format Bash scripts
- bats - unit testing Bash scripts
- Hypermodern Python - poetry by Claudio Jolowicz, recommended by Eamon
- Hypermodern Python Chapter 2: Testing
- Hypermodern Python Chapter 3: Linting
- Hypermodern Python Chapter 4: Typing
- Hypermodern Python Chapter 5: Documentation
- Hypermodern Python Chapter 6: CI/CD
- How to use black, flake8, isort, and pre-commit framework to format Python codes
- AsyncIO Complete Walkthough - RealPython Tutorial
- Logging HOWTO - Python Docs
- Logging in Python
- How to set up Anaconda and Jupyter Notebook the right way
- Attention: You always need to run jupyter notebook in the base environment. Run
conda deactivate
to leave your current environment and return to the base one.
- Attention: You always need to run jupyter notebook in the base environment. Run
-
mambaforge - reimplementation of the conda package manager in C++, part of a bigger ecosystem to make scientific packaging more sustainable
-
asyncio - write concurrent IO-bound network code using async/await syntax, use with Python asynchronous frameworks
-
logging - write logging messages correctly and concisely, part of Python's standard library
-
Initialize conda environment using
mamba env create -n m1mac_tf_env tf-metal-arm64.yaml
- What is the proper way to install TensorFlow on Apple M1 in 2022
tensorflow-deps
: dependencies to run TensorFlow on arm64, downloaded from-c apple
tensorflow-macos
: TensorFlow does not officially support the Mac M1, so I have to use thetensorflow-macos
package maintained by Apple.tensorflow-metal
: To let TensorFlow leverage the GPU of the M1 Mac, Apple uses a specific plugin in Tensorflow to make the framework compatible with Metal, the graphics stack of MacOS.
- black - python uncompromising code formatter
- flake8 - python code linter (comments, docstrings, etc.)
- flake8-import-order - checks the ordering of your imports
- flake8-bugbear - find more bugs and design problems
- flake8-bandit - find common security issues in python code
- flake8-black - run black for checking Python coding style (If you are using
pre-commit
configure it to call black and/or flake8 directly - you do not needflake8-black
at all) - flake8-docstring - pydocstyle and flake8 for combined linting and reporting
- darglint - functional docstring linter which checks whether a docstring's description matches the actual function/method implementation (expects docstrings to be formatted using the Google, Sphinx, or Numpy style guide) (can pull configuration from Flake8)
- Google Python Style Guide - rules by Google
- Sphinx - python documentation generator
- ! safety - checks dependencies for known security vulnerabilities
- ! isort - python, isort your imports, so you don’t have to
- pyright - Microsoft, static type checker for python
- pytest - testing framework
- nox - automates testing in multiple Python environments
- nox-poetry - use poetry inside Nox sessions