Skip to content

Instantly share code, notes, and snippets.

View schnell18's full-sized avatar

Justin Zhang schnell18

View GitHub Profile
@schnell18
schnell18 / replace_netcat.sh
Last active September 6, 2025 02:17
The nc included in the busybox of Alpine can't be used to do health check reliably as it reports exit code 1 when the server closes immediately (because no data was sent). If you need nc -z to behave “as expected,” replace BusyBox with OpenBSD netcat This gist shows how.
# nc included in the busybox of Alpine can't be used to do health check as it
# reports exit code 1 when the server closes immediately (because no data was sent).
# If you need nc -z to behave “as expected,” replace BusyBox with OpenBSD netcat:
apk add netcat-openbsd # Alpine
apt install netcat-openbsd # Debian/Ubuntu
# Then nc -z localhost 31311 will succeed if the connect() call works.
@schnell18
schnell18 / diag_fix_ath12k_wifi7_driver.sh
Created August 31, 2025 01:03
Fix Ubuntu 24.04 Wifi7 driver issue
sudo dmesg | grep ath12k
# [ 6.100088] ath12k_pci 0000:06:00.0: BAR 0 [mem 0x81200000-0x813fffff 64bit]: assigned
# [ 6.100107] ath12k_pci 0000:06:00.0: enabling device (0000 -> 0002)
# [ 6.100266] ath12k_pci 0000:06:00.0: MSI vectors: 16
# [ 6.100270] ath12k_pci 0000:06:00.0: Hardware name: wcn7850 hw2.0
# [ 6.264622] mhi mhi0: Direct firmware load for ath12k/WCN7850/hw2.0/amss.bin failed with error -2
# [ 6.264640] ath12k_pci 0000:06:00.0: failed to set mhi state: POWER_ON(2)
# [ 6.264642] ath12k_pci 0000:06:00.0: failed to start mhi: -110
# [ 6.264643] ath12k_pci 0000:06:00.0: failed to power up :-110
@schnell18
schnell18 / youtube-video-index-latex.py
Last active May 17, 2025 15:56
This script generates a three-column long table that runs over multiple pages in LaTeX given a two-column time and description text file.
#!/usr/bin/env python
import re
import sys
HEADER = r"""
\documentclass{article}
\usepackage{booktabs,makecell,multirow,threeparttable,diagbox}
\usepackage{longtable}
\usepackage{fancyvrb}
@schnell18
schnell18 / gen_youtube_video_jump_table.py
Created May 9, 2025 05:20
This Python script generate a three-part table in LaTeX to allow user jump to specific point of any long Youtube videos.
#!/usr/bin/env python
import re
import sys
HEADER = r"""
\documentclass{article}
\usepackage{booktabs,makecell,multirow,threeparttable,diagbox}
\usepackage{caption}
@schnell18
schnell18 / create-lima-k8s.sh
Created May 6, 2025 14:25
Start a minimal Kubernetes cluster with lima
#!/bin/bash
# limactl start \
# --name=k8s \
# --cpus=6 \
# --memory=8 \
# --vm-type=vz \
# --rosetta \
# --mount-type=virtiofs \
# --mount-writable \
@schnell18
schnell18 / k8s.yaml
Created May 6, 2025 14:21
Customized lima k8s template to work-around docker image block due to firewall
# Review and modify the following configuration for Lima instance "k8s".
# - To cancel starting Lima, just save this file as an empty file.
# Deploy kubernetes via kubeadm.
# $ limactl start ./k8s.yaml
# $ limactl shell k8s kubectl
# It can be accessed from the host by exporting the kubeconfig file;
# the ports are already forwarded automatically by lima:
#
@schnell18
schnell18 / filter.py
Created April 26, 2025 08:24
Find string difference
#!/usr/bin/env python
import re
import requests
url = "https://raw.githubusercontent.com/rshkarin/mason-nvim-lint/910dadb99cb2bf0d5176026c7a4ab1861c4e561f/lua/mason-nvim-lint/mapping.lua"
if __name__ == "__main__":
try:
@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