Skip to content

Instantly share code, notes, and snippets.

@zhangyoufu
zhangyoufu / detect-x86-64-abi-version.sh
Created December 12, 2025 02:05
detect x86-64 ABI version on Linux, using /proc/cpuinfo
#!/bin/bash
# Note on hybrid CPUs (P-cores/E-cores):
# Linux /proc/cpuinfo reports only features common to ALL cores.
# This script will correctly detect the lowest ISA level supported
# across all core types, which matches glibc's behavior.
get_x86_64_abi_version() {
local FLAGS
local DETECTED_LEVEL
@zhangyoufu
zhangyoufu / log_init.go
Created November 12, 2025 09:54
if stdout is tty: log text to stderr; else: log json to stdout
import "github.com/mattn/go-isatty"
func init() {
if isatty.IsTerminal(os.Stdout.Fd()) {
slog.SetDefault(slog.New(slog.NewJSONHandler(os.Stdout, nil)))
}
}
#!/bin/bash
shopt -s nullglob
cd /sys/class/nvme
for CTRL in *; do
echo "removing ${CTRL}"
echo 1 >"${CTRL}/device/remove"
done
@zhangyoufu
zhangyoufu / gist:065f0afb3875f01e6e24354b777d275d
Last active October 23, 2025 21:46
When did XXX trust ISRG Root X1 (Let's Encrypt root CA)?
microsoft: 2018-07-31
https://social.technet.microsoft.com/wiki/contents/articles/31680.microsoft-trusted-root-certificate-program-updates.aspx#july18
https://gallery.technet.microsoft.com/Trusted-Root-Program-d17011b8/file/205887/1/Trusted%20Root%20Program%20Participants%20As%20of%20July%2031%202018.xlsx
jdk7: 7u151 (2017-07-18)
https://www.oracle.com/java/technologies/javase/7u151-relnotes.html#CERTS
jdk8: 8u141 (2017-07-18)
https://www.oracle.com/java/technologies/javase/8u141-relnotes.html#CERTS
https://hg.openjdk.java.net/jdk8u/jdk8u-dev/jdk/file/c3057fb0470e/make/data/cacerts/letsencryptisrgx1
mozilla:
NSS: 3.26 (2016-08-05)
@zhangyoufu
zhangyoufu / userChrome.css
Created October 22, 2025 15:19
Firefox UI Customization: Compact Vertical Tab Bar
@media -moz-pref("sidebar.verticalTabs") {
:root {
--tab-block-margin: 0 !important;
--tab-min-height: 24px !important;
}
}
#tabbrowser-tabs[orient="vertical"] {
.tabbrowser-tab {
padding-block: 0 !important;
@zhangyoufu
zhangyoufu / 99-replica-set.sh
Created June 10, 2019 11:07
ugly hack to initialize replica set for MongoDB docker container, put under /docker-entrypoint-initdb.d/
#!/bin/bash
: "${FORKED:=}"
if [ -z "${FORKED}" ]; then
echo >&2 'mongod for initdb is going to shutdown'
mongod --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --shutdown
echo >&2 'replica set will be initialized later'
FORKED=1 "${BASH_SOURCE[0]}" &
unset FORKED
mongodHackedArgs=(:) # bypass mongod --shutdown in docker-entrypoint.sh
@zhangyoufu
zhangyoufu / cksum.sh
Created September 14, 2025 08:05
Calculate multiple checksum for a single file
#!/bin/bash
echo -n 'Size: '
if [[ $OSTYPE == darwin* ]]; then
stat -f %z "$1"
else
stat -c %s "$1"
fi
(tee < "$1" > /dev/null \
@zhangyoufu
zhangyoufu / getgo.sh
Last active September 11, 2025 15:34
Download latest Go release and extract to /opt
#!/bin/sh
not_available() { echo -- "$1 is not available"; exit 1; }
unknown_arch() { echo -- "unknown architecture"; exit 1; }
ensure_command_available() { which -- "$1" >/dev/null && return; not_available "$1"; }
ensure_gnu_tar() { tar --version | grep -F 'GNU tar' >/dev/null || not_available 'GNU tar'; }
ensure_command_available curl
ensure_command_available jq
ensure_gnu_tar
@zhangyoufu
zhangyoufu / aliyun-cs-credential.sh
Last active August 8, 2025 15:25
使用阿里云OpenAPI获得Kubernetes集群kubeconfig的用户证书(长期/临时),依赖jq、yq、aliyun-cli
#!/bin/bash
set -euo pipefail
: $CLUSTER_ID
: ${PRIVATE:=false} # auto use private IP if public IP not available
: ${MINUTES:=60} # defaults to 1 hour
: ${SHOW_CLUSTER:=}
: ${REGION_ID:=cn-shanghai} # choose nearest region as OpenAPI endpoint, don't need to match ACK cluster location
echo >&2 '+ aliyun cs DescribeClusterUserKubeconfig'
@zhangyoufu
zhangyoufu / mt76_tx_hang_reset
Created August 2, 2025 00:36
/etc/init.d/mt76_tx_hang_reset chmod +x / enable / start
#!/bin/sh /etc/rc.common
START=90
STOP=01
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /bin/sh -c 'while :; do read < /sys/kernel/debug/ieee80211/phy1/mt76/tx_hang_reset; [ "$REPLY" -eq 0 ] || break; sleep 5; done; reboot'
procd_close_instance