Coding Toolbox

Randy Widialaksono · February 19, 2020

Editor

Visual Studio Code

Extensions:

  • Remote Development (SSH): this is game changer, not only do you get the text editor, you also get terminal shells and file explorer. No more juggling between Putty/MobaTerm, WinSCP/Samba. Under the hood this spawns a server on the host. One may face installation issues on older Unix OS, otherwise it’s seamless. Note the remote server binary is not open source.
  • Python Interactive: another game changer, this makes it almost seamless developing in sandbox mode and packaging into proper Python scripts/modules. I no longer use Jupyter Notebook/Lab with this (I connect to a Jupyter kernel instead). Basically you can develop in a hybrid mode, in which it’s a Python script but has the concept of cells. Cells are delimited with #%% , pressing Shift+Enter on a cell would automatically spawn the Jupyter interactive window/kernel connection.
  • Vim: of course :)

Tips:

  • In a terminal shell, to open a file in the IDE use “code ". 'code' is aliased to an agent that forwards the file to current window.

Useful Keybindings:

In the past I wouldn’t have guessed Microsoft would create an open-source text editor, times have changed :)

Dashboard

Streamlit

This is an amazing tool, I would recommend for fast deployment. Each widget element is just one line of Python code. Only limitation is that it’s not that flexible and hesitates on allowing custom HTML/JS code (for security). To address customization they will likely enable plugins soon.

Dash by Plotly

Allows creating dashboards with pure Python and basic HTML structure. Uses React.js for its widgets and allows custom HTML/CSS tweaks.

ML / Data Science

XGBoost, Scikit-Learn

It’s wonderful that XGBoost can directly work with Pandas Dataframes. De facto libray for gradient boosting in Python.

Docker

I’ve used Docker for AMD ROCM, Jekyll server (Github Pages), ML workspace. Favorites:

  • https://github.com/ml-tooling/ml-workspace
  • https://github.com/EthicalML/awesome-production-machine-learning
  • https://github.com/NVAITC/ai-lab

Twitter, Facebook