Skip to content

Instantly share code, notes, and snippets.

View schnell18's full-sized avatar

Justin Zhang schnell18

View GitHub Profile
@schnell18
schnell18 / burn-boot-drive-usb.sh
Created January 27, 2024 01:51
make bootable usb drive
sudo dd if=xxx.iso of=/dev/sdX bs=4M conv=fsync oflag=direct status=progress
@schnell18
schnell18 / install-pyenv-python-deps.sh
Last active January 9, 2024 13:28
install pyenv on ubuntu 20 and dependencies
curl https://pyenv.run | bash
sudo apt install -y \
wget \
build-essential \
libreadline-dev \
libncursesw5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
@schnell18
schnell18 / check_cert.sh
Created January 2, 2024 02:29
Examine SSL certificate
openssl s_client -connect www.example.com:443 </dev/null 2>/dev/null | openssl x509 -inform pem -text
@schnell18
schnell18 / consistent_harshing.md
Last active December 26, 2023 04:23
consistent hashing

gist of consistent hashing

Resolve rebalance problem of dynamic cluster. Key techniques:

  • determine hash space, eg 2 * PI or 16K like redis
  • map keys and nodes to the same hash space using hash function(s)
  • keys are placed on the first node with hash value greater than the key, or on the first node
  • use binary search tree to speed up locating the node for a paticular key
  • when new node joins, move keys with hash value smaller than the new node from its successor to the node
  • when existing node leaves, move keys on this node to its successor
# virtualbox 6.1.36 and vagrant 2.3.0 are broken
# instruction to downgrade to working versions
curl https://archive.archlinux.org/packages/v/virtualbox/virtualbox-6.1.32-2-x86_64.pkg.tar.zst -o virtualbox-6.1.32-2-x86_64.pkg.tar.zst
sudo pacman -U virtualbox-6.1.32-2-x86_64.pkg.tar.zst
curl https://archive.archlinux.org/packages/v/virtualbox-guest-iso/virtualbox-guest-iso-6.1.32-1-any.pkg.tar.zst -o virtualbox-guest-iso-6.1.32-1-any.pkg.tar.zst
sudo pacman -U virtualbox-guest-iso-6.1.32-1-any.pkg.tar.zst
curl https://archive.archlinux.org/packages/v/vagrant/vagrant-2.2.19-2-x86_64.pkg.tar.zst -o vagrant-2.2.19-2-x86_64.pkg.tar.zst
Jobs or pipelines run unexpectedly when using changes:
You might have jobs or pipelines that run unexpectedly when using rules: changes
or only: changes without
merge request pipelines.
Pipelines on branches or tags that don't have an explicit association with a merge request
use a previous SHA to calculate the diff. This calculation is equivalent to git diff HEAD~
and can cause unexpected behavior, including:
The changes rule always evaluates to true when pushing a new branch or a new tag to GitLab.

Problem statement

The command "mvn dependency:resolve" and "mvn dependency:resolve-plugins" fails on internal dependency on a multi-module project. It defeats the attempt to create a dependency layer and increase docker build speed when only application code is changed.

COPY pom.xml .

COPY powerjob-server-remote/pom.xml powerjob-server-remote/pom.xml

@schnell18
schnell18 / errorcode-prop-conv.md
Created May 23, 2021 03:15
Vim macro to convert ErrorCode to .properties file

The vim macro:

ea.��ýaldf(f,r=ldf";D0guw

converts ErrorCode:

SYSTEM_ERROR                              (1, "系统错误"),
DB_ERROR                                  (2, "数据库错误"),
PARAM_ERROR                               (10, "参数错误"),

OPTIMISTIC_LOCK_ERROR (100, "并发乐观锁错误"),

@schnell18
schnell18 / tmux-template
Last active April 1, 2023 05:31
tmux template
#!/bin/sh
# Check to see if we're already running the session
tmux has-session -t main &> /dev/null
if [ $? != 0 ] ; then
# Create overall tmux session
tmux new-session -d -s main -n java > /dev/null
tmux split-window -v
@schnell18
schnell18 / fix-grub-win-missing.md
Created March 12, 2021 14:42
fix grub Windows entry missing problem

Grub got some needed security updates 62. Note that os-prober is now disabled by default for security reasons: broken patch 36; fixed patch 57. More infos about it here 167. To restore the old behavior, open a terminal and issue

sudo echo GRUB_DISABLE_OS_PROBER=false >> /etc/default/grub && sudo update-grub