Skip to content

Instantly share code, notes, and snippets.

View LiutongZhou's full-sized avatar
🏠
Working

Liutong Zhou LiutongZhou

🏠
Working
  • Apple
  • New York
View GitHub Profile
@LiutongZhou
LiutongZhou / git_tips.md
Last active January 26, 2024 13:38
Git Tips
  1. Squash commits into a single commit and rebase feature branch onto upstream/develop

    git fetch upstream && git rebase -i $(git merge-base feature_name upstream/develop)
  2. Cleanup git repository aggressively

    use bfg https://rtyley.github.io/bfg-repo-cleaner/

    java -jar bfg.jar --delete-files your_unwanted_files
@LiutongZhou
LiutongZhou / Customized Keyboard Shortcut for Jupyter-lab.json
Last active February 12, 2021 08:51
Keyboard Shortcut for JupyterLab
{
// For a full list of commands, refer
// https://github.com/jupyterlab/jupyterlab/blob/master/packages/notebook-extension/src/index.ts
"shortcuts":[
{
"command":"notebook:run-all-above",
"keys":[
"F5"
],
"selector":".jp-Notebook:focus"
@LiutongZhou
LiutongZhou / config.txt
Last active February 10, 2021 02:01
Useful External Tools for Pycharm
# pip install autopep8 pylint flake8 black blackcellmagic yapf
Program: autopep8
Arguments: --in-place --aggressive --aggressive $FilePath$
Working Directory: $ProjectFileDir$
Regular expression to match output:$FILE_PATH$:$LINE$:$COLUMN$:.*
Program: pylint
Arguments: "--msg-template='{abspath}:{line}: [{msg_id}({symbol}), {obj}] {msg}'" --output-format=colorized "$FilePath$"
Working directory: $ProjectFileDir$
@LiutongZhou
LiutongZhou / install_dev_toolset.bash
Last active July 20, 2018 04:06
Development Environment Quick Setup on CentOS
sudo yum --enablerepo=extras install centos-release-scl;
sudo yum install devtoolset-7;
scl enable devtoolset-7 bash
@LiutongZhou
LiutongZhou / Remote_Jupyter.config
Last active November 18, 2019 17:30
Start Remote Jupyter on Boot
# Add to ~/.bash_aliases
alias port_forward='nohup ssh -N -f -L localhost:8889:localhost:8889 username:password@remote_server_ip'
alias remote_notebook_start='nohup ssh -f username:password@remote_server_ip "cd rne; conda activate env_name; jupyter notebook --no-browser --port=8889"; port_forward'
alias remote_notebook_stop='ssh username:password@remote_server_ip "pkill -u username jupyter"'
# Add this to crontab -e
@reboot cd /home/{username}; source ./.bashrc; ./miniconda3/envs/{env_name}/bin/jupyter-lab >> ./cronrun.log 2>&1
import functools
from typing import Any, Mapping
def singleton(cls):
'''a class decorator that wraps class definition so that only one class instance can exist'''
existing_instances = dict()
@functools.wraps(cls)
def singleton_class(*args, **kwargs):
if cls not in existing_instances:
@LiutongZhou
LiutongZhou / s3client.py
Last active February 8, 2022 02:39
S3Client
# Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: LicenseRef-.amazon.com.-AmznSL-1.0
# Licensed under the Amazon Software License http://aws.amazon.com/asl/
"""S3 Client
A helper class which wraps boto3's s3 service
"""
__author__ = "Liutong Zhou"
@LiutongZhou
LiutongZhou / remote_jupyter_setup.md
Last active April 7, 2024 16:50
Setup Cloud9 on EC2 and remote Jupyter

Setup Cloud9 on EC2 and remote Jupyter

Create an EC2 instance on AWS

  • Launch: t3.2xlarge ($0.33/h) / m5d.4xlarge ($0.904) / g4dn.4xlarge ($1.2/h) / p3.2xlarge ($3.02/h)
  • Image: Deep Learning AMI (Ubuntu 22.04)
  • Configure Security Group:
    • open custom TCP and port 9999
    • open HTTPS, HTTP to anywhere
  • Attach an Elastic IP to the instance

ssh into EC2 from MobaXterm and run

@LiutongZhou
LiutongZhou / sampling.py
Created February 9, 2021 05:48
Time-and-Space-Efficient Sampling Methods
""" Time-and-Space-Efficient Sampling Methods"""
from typing import Iterable
from random import random, randint, seed
from math import exp, log, floor
from itertools import islice
__author__ = "Liutong Zhou"
def take(iterable, n: int) -> list:
"""UnionFind (Disjoint Sets)"""
from typing import Optional, Iterable, Hashable, Any
class UnionFind:
def __init__(
self, initial_disjoint_items: Optional[Iterable[Hashable]] = None
):
"""Initialize a UnionFind of disjoint sets"""