Skip to content

Instantly share code, notes, and snippets.

@matoous
Created December 6, 2019 18:37
Show Gist options
  • Save matoous/7f5fddb56047b68b476e1492a54ce729 to your computer and use it in GitHub Desktop.
Save matoous/7f5fddb56047b68b476e1492a54ce729 to your computer and use it in GitHub Desktop.
id title
tools
The coolest tools

Generic Essentials

  • Git: The version control system we use
    • macOS: brew install git
    • Linux: it's best to install git using your OS package manager
  • Slack: We chat on here :yay:
  • Docker for Mac: We run almost everything on Docker
    • macOS: brew cask install docker
    • Linux: follow the docs for your distribution (select the distribution in the left menu)
  • docker-compose: Manages Docker containers, many projects have their containers defined in docker-compose
    • macOS: brew install docker-compose
    • Linux: see the installation instruction, on Ubuntu you can run sudo apt install docker-compose if you have installed Docker from a PPA repository

macOS Essentials

  • Homebrew: Package manager for macOS (has git, docker, etc.)
    • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • iTerm 2: A macOS terminal emulator with awesome features
    • brew cask install iterm2

Python Essentials

  • Python 3: Obviously :D
    • macOS: brew install python3
    • Linux: chances are you already have Python 3 pre-installed, if not, use your distribution's package manager, or you can always install Python from source
  • PyCharm: Our heavily-recommended code editor for Python (of course, you can use whichever editor anyway)
    • macOS: brew cask install pycharm
    • Linux: you can install PyCharm with snap (on Ubuntu) - sudo snap install [pycharm-professional|pycharm-community] --classic, check your package manager for other distributions or download PyCharm from the official site
  • Setuptools & Pip: Two most important Python packages
    • you should already have pip and setuptools if you installed Python from source or via Homebrew (for macOS), however, it may not be available on Linux if installed using your OS package manager and needs to be installed separately
  • pip-tools: We use the pip-compile command from this project to lock Python dependencies, more info in How to Manage Python Dependencies
    • pip3 install pip-tools
  • tox: Many projects use tox to easily run CI checks locally
    • pip3 install tox

CLI

  • ag (the silver searcher): A code searching tool that is crazy fast

    • macOS: brew install the_silver_searcher
  • tmuxinator: Creates/resumes terminal sessions based on yaml config files, written in Ruby

    • gem install tmuxinator
  • tmuxp: The same as tmuxinator, but written in python - compatible config structure + per pane startup script and more

    • pip install --user tmuxp
  • joe: The easiest way to create gitignore files

    • pip3 install joe
  • cowsay: Like echo, but with more cows

    • macOS: brew install cowsay
  • fasd: Keeps track of most used files/directories for easily finding paths (type z tra to change into the Trash directory for instance)

    • macOS: brew install fasd
  • jq: Parse and query JSON, such as .locations[].id to get a list of location IDs from a locations API response

    • macOS: brew install jq
  • HTTPie: A better client for making web requests (instead of curl)

    • macOS: brew install httpie
  • colordiff: Syntax highlighting for diff output

    • macOS: brew install colordiff
  • fast-cli: Simple tool for checking bandwidth

    • yarn global add fast-cli
  • git-cal: git-cal is a simple script to view commits calendar (similar to github contributions calendar) on command line with vairous filter options

  • exa: ls with more features and better defaults written in Rust.

    • macOS: brew install exa
  • fzf: general-purpose command-line fuzzy finder.

    • macOS: brew install fzf

    • example usage for search in history and directories (with zsh):

      # fd - cd to selected directory
      fd() {
        local dir
        dir=$(find ${1:-.} -path '*/\.*' -prune \
                        -o -type d -print 2> /dev/null | fzf +m) &&
        cd "$dir"
      }
      
      # fh - search in your command history and execute selected command
      fh() {
        eval $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed 's/ *[0-9]* *//')
      }
  • grpcurl: curl but for GRPC

    • macOS: brew install grpcurl
  • noti: Monitor a process and trigger a notification when it finishes (good for long running tests)

    • macOS: brew install noti
  • tldr: Simple and short man pages

    • macOS: brew install tldr
  • Mackup: Keep your macOS application settings (read dotfiles) in sync.

    • macOS: brew install mackup

GUI / Web

  • Dash: Documentation browser
    • macOS: brew cask install dash
  • Alfred: macOS Spotlight alternative, customizable and powerful (does Google search, etc.)
  • Numi: Calculator alternative, also does conversions such as currency or weight
    • macOS: brew cask install numi
  • Spectacle: Resizing/moving windows with hotkeys
  • Monosnap: Screenshot app that uploads to imgur/SFTP/etc.
  • Join: Notification syncing between your computer and your phone
  • Unclutter: "A place on your desktop for storing notes, files and pasteboard clips"
  • Bartender: Bartender helps you organize your macOS menu bar icons
  • Caffeine: A simple button in your menu bar that keeps your Mac from going to sleep
    • macOS: brew cask install caffeine
  • keybase.io: Encryption made easy
    • macOS: brew cask install keybase
  • Airflow: A better cron daemon, with a web UI
    • pip3 install airflow
  • Wakatime: Time tracking for developers, can track time spent per commit, per file, per editor, etc.
  • reveal.js: Framework for nice presentations that you can write in HTML
    • yarn add reveal.js
  • Insomnia: API requests client you will love. ✨ (instead of Postman)
    • macOS: brew cask install insomnia
  • Itsycal: Tiny menu bar calendar. 📅
    • macOS: Download from https://www.mowglii.com/itsycal/ or run curl https://itsycal.s3.amazonaws.com/Itsycal.zip -o Itsycal.zip && unzip Itsycal.zip -d ~/Applications/

Python libraries

  • arrow: Better dates and times
    • pip3 install arrow
  • addict: Easier handling of nested dictionaries
    • pip3 install addict
  • tqdm: Awesome progress bars with one line of code
    • pip3 install tqdm
  • hypothesis: Automatically parametrizes tests to find edge cases that break
    • pip3 install hypothesis
  • laboratory: Deploy two versions of the same code, this library runs both and reports on the runtime differences
    • pip3 install laboratory
  • boltons: A really useful extension of the standard library with tons of utility functions
    • pip3 install boltons
  • structlog: A logging replacement that can keep track of context and give you JSON output to be indexed in ELK
    • pip3 install structlog
  • zeep: The best SOAP client, hands down. Has asyncio support too, and very active development even in 2017.

Vim plugins

  • pathogen: Makes it super easy to install plugins and runtime files in their own private directories
  • ale: Plugin for providing linting in NeoVim and Vim 8
  • ctrlp: Full path fuzzy file, buffer, mru, tag, ... finder for Vim.
  • fugitive: a Git wrapper so awesome, it should be illegal
  • gundo: Visualize your Vim undo tree.
  • airline: Nice status/tabline
  • commentary: Comment stuff out

Chrome extensions

  • Vimium: Vimium is a Chrome extension that provides keyboard-based navigation and control of the web in the spirit of the Vim editor
  • JSON Editor: A tool to view, edit, format, and validate JSON

Setup

Useful aliases and .zshrc/.bashrc config

  • weather info in terminal:
    weather(){
            if [ $# -eq 0 ]; then http wttr.in; else http "wttr.in/$1"; fi
    }
    Then you can use weather for weather in your current location or weather brno or any other location for weather elsewhere
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment