DataRaccoon

Machine

Macbook Pro, 2018 edition, 15.6 inch!


Terminal Config

  • Uses zsh instead of bash. (Note, newer macbooks all comes with zsh)
  • Using Iterm2.
    • Mainly because of the tabs and panels

Oh-my-zsh

  • On top of zsh, i am using this to manage my zsh config.

The main reason for using this is the plugins management.

These are my current plugins:

plugins=(
    git
    git-prompt
    docker
    iterm2
    zsh-autosuggestions
    zsh-syntax-highlighting
    )

Powerlevel10k

Cli-tools

Tree

For writing nice documentation and/or checking my files organization, i like to use tree

In tests, you usually try to mirror your src directory. Rather than using ls (list files), you can:

tree .

├── src
│   ├── __init__.py
│   └── hello.py
└── tests
    ├── __init__.py
    └── test_hello.py

2 directories, 4 files

Or if you only one level down,

tree - L 1 (Feel free to change the level of files to show)

.
├── src
└── tests

2 directories, 0 files

the_silver_searcher

Github repo

Suppose within the current directory you want to search for lines of code, you can ag <code> <dir>. For eg:

ag hello_world .

❯ ag hello_world .
tests/test_hello.py
1:def test_hello_world(x):

src/hello.py
1:def hello_world(x):

CDPATH

To navigate to a directory, you would typically open your terminal in $HOME, and cd dir1/folder1. If you then want to navigate to another in another project, you would then cd ../dir2/folder2.

Tired of changing paths and managing directory? give CDPATH a try. Add these to your .zshrc:

CDPATH=:$HOME/dir1:$HOME/dir2
export CDPATH

And you will be able to cd folder1 and cd folder2 from anywhere in terminal!

Launch IDE via cli

I have also enabled cli for the following commands:

command purpose
code launch vs code in directory
charm launch pycharm
subl open files in sublime text

Note: other commands are added to your path as part of installation, such as Anaconda.


Editors

These are my current text editors and markdown editors.

Sublime

Download here

MacDown

This is my markdown editor that has some pretty neat plugins. You can download it here. Unfortunately, it is only for mac users. I also enable the following two plugins in MacDown.

  • Mathjax
  • Graphviz

Programming

R

No explanation required!

Python (Anaconda)

My friend (yxtay) and I wrote this guide as part of setting up python environment. You can check it out here.

Because of Anaconda recent licensing changes, I decided to switch over to miniforge, I found this guide to be useful!


IDE

Pycharm

I am generally a fan of jetbrain products and if your company provides the professional license, awesome!

Download here

Vscode

Download here

I recently check out vscode again in 2020 and decided to seriously consider switching to Vscode as my main ide.

This is mainly because of the remote development plugin.

The support remote intepreter is one of the top requested features. The Vscode team released this in 2019, featuring on the vscode blog and ms devblog.

UPDATE! - There is now a realpython post on advance python usage with vscode, and it also mentiones about remote development with vscode using docker!

Here is a short gist to illustrate:

Show gist

Vscode extensions

These are the vscode extensions that I am currently using:

Extensions
bastienboutonnet.vscode-dbt
batisteo.vscode-django
bierner.markdown-mermaid
bpruitt-goddard.mermaid-markdown-syntax-highlighting
ckolkman.vscode-postgres
eamodio.gitlens
ecmel.vscode-html-css
esbenp.prettier-vscode
foam.foam-vscode
goessner.mdmath
golang.go
henriblancke.vscode-dbt-formatter
kortina.vscode-markdown-notes
ms-azuretools.vscode-docker
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-wsl
ms-vscode-remote.vscode-remote-extensionpack
njpwerner.autodocstring
philipbe.theme-gray-matter
pkosta2005.heroku-command
samuelcolvin.jinjahtml
shd101wyy.markdown-preview-enhanced
streetsidesoftware.code-spell-checker
tchayen.markdown-links
tomoki1207.pdf
VisualStudioExptTeam.vscodeintellicode
yzane.markdown-pdf
yzhang.markdown-all-in-one

To easily install the extensions, just create a extensions.txt with the extensions you need, and run this bash script:

#!/usr/bin/env bash

cat extensions.txt | while read extension || [[ -n $extension ]];
do
  code --install-extension $extension --force
done

Rstudio

No explanation required!


Engineering related

Docker

Containers are awesome!

Download here

Postman

I mainly use postman because of the collection features and the nice UI formatting.

Download here


Productivity

Rectangle

Allows me to move and resize my windows with ease, especially when you need to look at documenation and coding at the same time.

Download here