Skip to content

Instantly share code, notes, and snippets.

View thomasaarholt's full-sized avatar

Thomas Aarholt thomasaarholt

View GitHub Profile
@thomasaarholt
thomasaarholt / branch.sh
Created March 21, 2023 20:41
git branch change using fzf in lovely color
branch () {
branches=$(git for-each-ref --sort=-committerdate refs/heads/ --format='%(color:cyan)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:magenta)%(authorname)%(color:reset)' --color=always|column -ts'|') &&
branch=$(echo "$branches" | fzf --multi --ansi --height=20%)
if [ -z "${branch}" ];
then return 0
else git switch $(echo "$branch" | sed "s/ .*//")
fi
}
@thomasaarholt
thomasaarholt / venv.sh
Created November 6, 2022 15:22
Bash function for creating virtual environments that are automatically (de)activated upon cd entry(exit).
venv () {
RED='\033[0;31m'
NC='\033[0m' # No Color
# create virtualenv
if [ ! -d .venv ] # if venv does not exist already
then
python -m venv .venv --system-site-packages
else
echo -e "${RED}.venv${NC} already exists!"
return 0
@thomasaarholt
thomasaarholt / train_test_split_polars.py
Created July 24, 2022 13:06
Train and test split function for polars dataframes
def train_test_split(
df: pl.DataFrame, train_fraction: float = 0.75
) -> Tuple[pl.DataFrame, pl.DataFrame]:
"""Split polars dataframe into two sets.
Args:
df (pl.DataFrame): Dataframe to split
train_fraction (float, optional): Fraction that goes to train. Defaults to 0.75.
@thomasaarholt
thomasaarholt / lightgbm_gpu.sh
Last active July 24, 2022 11:01
Building lightgbm with GPU support from source on Red Hat with mload
module load CUDA/11.0 CMake/3.21.1-GCCcore-11.2.0 Boost/1.74.0-GCC-10.2.0
pip install lightgbm --install-option=--gpu
# If running from notebook, ensure that the following contains Boost:
# import os
# os.environ["LD_LIBRARY_PATH"].split(":")
@thomasaarholt
thomasaarholt / xgboost_gpu.sh
Last active July 24, 2022 11:01
Building XGBoost with GPU support from source on Red Hat with mload
# must not use gcc version > 10
module load CUDA/11.0 CMake/3.21.1-GCCcore-11.2.0
# Clone with recursive! Otherwise you get dmlc error later on!
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost/python-package
# clean out any old build files that may break things if try to recompile
rm -rf build
@thomasaarholt
thomasaarholt / docker_terminal.sh
Created June 6, 2022 08:23
Instructions for building a docker image and logging into its bash terminal
# From a directory with a Dockerfile
# Example Dockerfile with "Dockerfile" as filename
FROM python:3.10-slim-buster
RUN pip install numpy
# Then, run the following
docker build -t your_image_name .
@thomasaarholt
thomasaarholt / cmap.py
Created January 26, 2022 13:16
Linear colormap from one rgb color to another
from matplotlib.colors import LinearSegmentedColormap
def black_to_color(high_color: tuple, low_color: tuple = (0,0,0), name: str = "my_color", steps=256):
"Get linear colormap from one rgb color to another, defaulting from black"
r1,g1,b1 = low_color
r2,g2,b2 = high_color
cdict = {
'red': [(0.0, r1, r1),
@thomasaarholt
thomasaarholt / gist:4c63d9f15a6895a4153e9bfa98f75360
Created September 27, 2021 10:24
jupyter lab settings with auto closing brackets enabled in docker image
cat /root/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings
{
// Notebook
// @jupyterlab/notebook-extension:tracker
// Notebook settings.
// **************************************
// Code Cell Configuration
// The configuration for all code cells.
"codeCellConfig": {
@thomasaarholt
thomasaarholt / check_docker_running.sh
Created August 24, 2021 08:10
Simple bash script to test if Docker is running
if docker info > /dev/null 2>&1; then
: # pass
else
echo "Docker Daemon is not running. Please open it and retry."
exit -1
fi
@thomasaarholt
thomasaarholt / dask_inv_bench.py
Created August 1, 2021 18:01
Benchmarking dask linalg inv on nd arrays
import numpy as np
import dask.array as da
x = da.random.random((120,500,500), chunks=(40, 500, 500)) # 80 MB chunks
X = x.compute()
@da.as_gufunc(signature="(n,n)->(n,n)", output_dtypes=float, vectorize=True)
def gufunc(x):
return np.linalg.inv(x)