Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / 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
#!/usr/bin/env python3
from collections.abc import Buffer, Generator
from typing import TypeAlias
import re
Token: TypeAlias = int | bytes | str
Result: TypeAlias = int | bytes | list['Result'] | dict[bytes, 'Result']
regexp = re.compile(rb'([del])|i(-?\d+)e|(\d+):')
@zhangyoufu
zhangyoufu / steamguard_otp.sh
Created March 12, 2025 06:09
calculate SteamGuard OTP in shell script (standard TOTP, last step use base26 charset, truncate to 5 chars)
#!/bin/bash
tohex() { od -An -t x1 | tr -d '[:space:]'; }
fromhex() { printf %b "$(echo "$1" | sed 's/../\\x&/g')"; }
steamguard_otp() {
SECRET_HEX=$(base32 -d <<<"$1" | tohex)
DIGEST_HEX=$(fromhex "$(printf "%016x" "$(($(date +%s)/30))")" | openssl dgst -sha1 -mac HMAC -macopt hexkey:"${SECRET_HEX}" -binary | tohex)
OFFSET=$((0x${DIGEST_HEX:39:1}))
X=$((0x${DIGEST_HEX:$((OFFSET*2)):8}&0x7FFFFFFF))
# dmidecode -t 0
Vendor: SeaBIOS
Version: e623647
Release Date: 04/01/2014
# cat /proc/iomem
000c0000-000c91ff : Video ROM # https://gitlab.com/qemu-project/qemu/-/blob/3257fc8383b13856e6719d1390655ce24bafd071/pc-bios/vgabios-cirrus.bin
000c9800-000cbbff : Adapter ROM # https://gitlab.com/qemu-project/qemu/-/blob/3257fc8383b13856e6719d1390655ce24bafd071/pc-bios/kvmvapic.bin
fffc0000-ffffffff : Reserved # dd if=/dev/mem bs=1024 skip=4194048 count=256 of=seabios.bin
@zhangyoufu
zhangyoufu / bypass-windows-setup-compatibility-check.reg
Created February 25, 2025 11:58
setupcompat.dll ConX::Compatibility::CCompatibilityCheckerFactory::CreateCompatibilityChecker
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup]
"MoSetupTests"=dword:00000001
"CompatCheckTestHookCategory"=dword:00000000