Skip to content

Instantly share code, notes, and snippets.

View yuchen-xue's full-sized avatar
🏔️
Nature Lover

Yuchen Xue yuchen-xue

🏔️
Nature Lover
View GitHub Profile
@yuchen-xue
yuchen-xue / gist:9454fe6595c425f6e878409fe8482b90
Created November 14, 2024 21:13
This function is useful for printing out multiple passport photos. It duplicates the input image and produces a 3*3 duplication of the input image.
import cv2
import numpy as np
WHITE = (255, 255, 255)
def dup_img_9(
file_in: str, file_out: str, pad_horizontal: int = 10, pad_vertical: int = 10
):
"""
@yuchen-xue
yuchen-xue / Dockerfile
Last active February 2, 2024 06:48
Dockerfile for building pytorch, pyplot & cv2
##############################################################################
# Dockerfile for building an image with non-root privilege as default
# In addition, it's capable of displaying images created by
# `cv2.imshow()` and `plt.show()`
# In order to use the full functionality, one should
#
# 1. Run the command `xhost +local:docker`
#
# 2. build an image by including
@yuchen-xue
yuchen-xue / Dockerfile
Created February 1, 2024 12:52
Build opencv inside a docker image
# ref:
# https://github.com/Valian/docker-python-opencv-ffmpeg/blob/master/Dockerfile-py3-cuda
ARG CUDA_VERSION="10.0"
ARG FLAVOR="runtime"
FROM nvidia/cuda:${CUDA_VERSION}-cudnn7-${FLAVOR}-ubuntu16.04
ARG OPENCV_VERSION="4.1.0"
# Install all dependencies for OpenCV
RUN apt-get -y update && \
@yuchen-xue
yuchen-xue / main.py
Created February 1, 2024 12:50
ImportDocstring
import mymodule
print(mymodule.__doc__)
print(mymodule.f.__doc__)
@yuchen-xue
yuchen-xue / nested_mapping_serializer.py
Created December 9, 2023 09:55
A generator function that flattens a nested `Mapping` object.
from typing import Any, TypeAlias, TypeVar, Union
from collections.abc import MutableSequence, Iterable, Mapping, Iterator
import copy
MS = TypeVar("MS", bound=MutableSequence)
Nested: TypeAlias = Mapping[Any, Union[Iterable, "Nested"]]
def nested_mapping_serializer(
@yuchen-xue
yuchen-xue / IndexableNamespace.py
Last active January 31, 2024 18:25
An extension of the SimpleNamespace type, where the members of whose IndexableNamespace instance can also be accessed and modified by indexing.
from types import SimpleNamespace
from typing import Any
from collections.abc import MutableSequence
class IndexableNamespace(SimpleNamespace, MutableSequence):
"""
An extension of the SimpleNamespace type.
The members of an IndexableNamespace instance can also be
accessed and modified by indexing.
@yuchen-xue
yuchen-xue / Julia-learning.ipynb
Created November 27, 2023 09:06
Get started with Julia using Jupyter Notebook
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@yuchen-xue
yuchen-xue / Dockerfile
Created June 17, 2020 15:49
Yumdownloader Dockerfile
# docker image to download yum rpms via dependencies
# these are the centos tags you can use below if you want to use a different version of centos
#latest, centos7, 7 (docker/Dockerfile)
#centos6, 6 (docker/Dockerfile)
#centos5, 5 (docker/Dockerfile)
#centos7.1.1503, 7.1.1503 (docker/Dockerfile)
#centos7.0.1406, 7.0.1406 (docker/Dockerfile)
#centos6.7, 6.7 (docker/Dockerfile)
#centos6.6, 6.6 (docker/Dockerfile)
#centos5.11, 5.11 (docker/Dockerfile)
###### Get docker machine ip ######
# able to resolve docker ip for both Docker Toolbox and Docker Desktop
if [[ -z "${DOCKER_HOST_IP-}" ]]; then
docker_host_ip=$(docker run --rm --net host alpine ip address show eth0 | awk '$1=="inet" {print $2}' | cut -f1 -d'/')
# Work around Docker for Mac 1.12.0-rc2-beta16 (build: 9493)
if [[ $docker_host_ip = '192.168.65.2' ]]; then
docker_host_ip=$(/sbin/ifconfig | grep -v '127.0.0.1' | awk '$1=="inet" {print $2}' | cut -f1 -d'/' | head -n 1)
fi
export DOCKER_HOST_IP=$docker_host_ip
@yuchen-xue
yuchen-xue / remove_android_studio.sh
Created July 12, 2019 04:07
Remove Android Studio on MacOS
# https://stackoverflow.com/questions/17625622/how-to-completely-uninstall-android-studio/18458893#18458893
# with small modification
rm -Rf /Applications/Android\ Studio.app
rm -Rf ~/Library/Preferences/AndroidStudio*
rm -Rf ~/Library/Preferences/com.google.android.*
rm -Rf ~/Library/Preferences/com.android.*
rm -Rf ~/Library/Application\ Support/AndroidStudio*
rm -Rf ~/Library/Android/*
rm -Rf ~/Library/Logs/AndroidStudio*
rm -Rf ~/Library/Caches/AndroidStudio*