/images/avatar.png

A Toolbox I Actually Reopen

Every few months I dump a folder of saved links into a post like this. Some entries are battle-tested; others are “I used this once and it saved a weekend.” I dropped EssayKiller_V2 from my draft list – it was a fun GPT-2-era experiment, but in 2026 you already have better options on your desk.

Bookmark the page, steal what you need, ignore the rest.

Translation & language

  • DeepL – Still the translator I reach for when Google feels too literal and ChatGPT feels too chatty.
  • pinyin-pro – Pinyin conversion and matching for Chinese text in apps and scripts.

Homelab & network

  • dynip.dev – Dynamic DNS that actually updates in about a minute, with RFC 2136 TSIG for routers and a generous free tier. Homelab DNS without the 30-minute stale-record ritual.
  • dnspeep – Spy on DNS queries your machine is making. Julia Evans wrote a nice walkthrough when it launched; the repo is the thing to install.
  • HTTP Toolkit – Intercept, inspect, and mock HTTP(S) traffic without wrestling mitmproxy config every time.

Terminal & remote access

  • sshx – Share a live terminal in the browser. Fast, collaborative, surprisingly handy for “can you see this error?”
  • termpair – View and control a terminal from a browser with end-to-end encryption.
  • webssh – Web-based SSH client when you cannot install a native client but still need a shell.

PDF & documents

  • Stirling-PDF – Self-hosted PDF toolkit: merge, split, compress, OCR, the usual suspects. Run it at home if you do not want files on a random website.
  • PDFReal – Fast online PDF utilities when you need something quick and do not want to spin up a container.

Cloud native & observability

  • awesome-cloud-native – Rootsongjc’s curated list of cloud-native projects. Good starting point when you are lost in the CNCF catalog.
  • Netdata – Real-time monitoring with minimal setup. Nice on a single node or a small cluster.

Data & databases

  • DBeaver – Universal database client. Not pretty at 2 a.m., but it opens everything.

Shell & scripting

  • pure-bash-bible – Bash snippets you will grep more than you expect.
  • Bash-Oneliner – Another solid collection of one-liners and small scripts.
  • ShellCheck – Lint your shell scripts before they lint you.

Security, crypto, and regex pain

  • CyberChef – The “what encoding is this?” Swiss Army knife from GCHQ.
  • regex-vis – Visualize and debug regexes when your eyes glaze over at ^(?=(.*[a-z])).

Comments (lightweight)

  • Cusdis – Lightweight, privacy-friendly comment widget. The author’s free hosted service is gone; self-host or embed on your own site. Still beats loading Disqus on a personal blog.

IoT & casting

  • Arkadiko (Docker) – Docker image related to the Arkadiko IoT/game stack; useful if you are poking at that ecosystem.
  • catt – Cast audio and video to Chromecast from the command line. catt cast beats opening another GUI.

Music, scores, and MIDI

  • Kunst der Fuge – Classical MIDI files and scores. A rabbit hole if you like reading music on a screen.
  • pianoplayer – Play along with a MIDI keyboard; visual feedback on what to press next.
  • 中华古籍资源库 – National Library of China digitized ancient books and related resources. Serious archive, not a quick click.

Chinese classics & text

  • ctext.org – Chinese Text Project: classical Chinese texts with search and parallel editions.
  • copybook-generator – Generate Chinese copybook practice sheets (字帖).

Math, code, and learning

  • awesome-math – Curated math learning resources.
  • Blockly – Visual block programming; still useful for teaching and quick prototypes.
  • PathPlanning – Path planning algorithms with visual demos.

Fitness, handwriting, and doodles

Games & Go

Weather

  • ultra-weather – Actionable, human-readable weather forecasts in a clean UI.

Reading & ebooks

  • bibi – EPUB reader you can embed on a website.
  • DeDRM_tools – Tools for managing DRM on ebooks you already own. Legal territory varies by country; use only on content you have the right to back up.

Last updated: 2026-08-02. Send me a link if something here rotted or if I missed your favorite wrench.

Kubernetes Cluster Installation

To learn some of the details about the kubeadm toolbox, the best way is to use it to manage a k8s cluster. This includes the whole life cycle management: new installation (HA), scale up/down, and upgrade. All information was current as of May 2022.

Preparations

You will need these preparations on all of your nodes.

  1. https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin I use terraform to setup 5 Ubuntu 20.04 nodes (2 vCPU, 6Gi RAM).

Kubernetes (k3s) Certs Expired

There is a bug in some older k3s releases that causes certificate auto-renewal to fail.

kubectl --insecure-skip-tls-verify=true delete secret -n kube-system k3s-serving
stop k3s
remove/backup /var/lib/rancher/k3s/server/tls/dynamic-cert.json
remove/backup /etc/rancher/k3s/k3s.yaml
restart k3s

Add Missing Indices After Nextcloud Upgrade

Upgrade Nextcloud

  1. Remove all other folders except /config and /data (due to an unsuccessful major version jump upgrade).
  2. Upgrade one major version at a time (cannot jump upgrade two major versions).

System Warning About Missing Indices

kubectl exec -it -n nextcloud nextcloud-6864c47cf4-58vrl -- /bin/sh
# sudo -u www-data php occ db:add-missing-indices
/bin/sh: 1: sudo: not found
# su www-data
This account is currently not available.
# id
uid=0(root) gid=0(root) groups=0(root),33(www-data)

# su www-data -s /bin/sh
$ php occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Adding additional size index to the filecache table, this can take some time...
Filecache table updated successfully.
Adding additional size index to the filecache table, this can take some time...
Filecache table updated successfully.
Adding additional path index to the filecache table, this can take some time...
Filecache table updated successfully.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Adding cards_abiduri index to the cards table, this can take some time...
cards table updated successfully.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Adding properties_pathonly_index index to the oc_properties table, this can take some time...
oc_properties table updated successfully.
Check indices of the oc_jobs table.
Adding job_lastcheck_reserved index to the oc_jobs table, this can take some time...
oc_properties table updated successfully.
$ exit
# exit

Install AdGuardHome on Asus Router (AC56U)

Download and Flash Asuswrt-Merlin Firmware (v384.6)

https://www.asuswrt-merlin.net/ https://sourceforge.net/projects/asuswrt-merlin/files/RT-AC56U/Release/RT-AC56U_384.6_0.zip/download

Prepare USB Drive

  1. Login to router via SSH (ssh admin@router_ip)
  2. fdisk /dev/sda
  3. mkfs.ext3 /dev/sda[1,2]

Enable JFFS Custom Scripts and Configs

Administration -> System -> Persistent JFFS2 partition -> Enable JFFS custom scripts and configs (‘yes’)

Execute Entware-Setup to Enable /opt Mount on USB Drive

The newly flashed firmware (v384.6) has entware-setup.sh included already. FYI: https://github.com/RMerl/asuswrt-merlin/blob/master/release/src/router/others/entware-setup.sh

Update Post-Mount Script

/opt/etc/init.d/rc.unslung start is the line added; not sure if it’s necessary. :)