Avatar 💻

recca0120 技術筆記

Software Developer / 技術筆記

  1. 首頁
  2. 彙整
  3. 分類
  4. 標籤
  5. 搜尋
  6. 關於我
    1. 夜晚模式

紀錄

2026 50
2024 3
2023 11
2022 13
2020 15
更多

分類

PHP Laravel Testing Frontend DevOps Database Tools AI Python MacOS

標籤雲

Laravel Php Testing Javascript PHPUnit Python Sqlite Typescript Ai-Agent Claude-Code Composer Linux Aws Blade Developer-Tools Devops Docker Guzzle MCP Mockery
Featured image of post sslh:443 port 同時跑 HTTPS 和 SSH,一個 port 多個服務
Tools

sslh:443 port 同時跑 HTTPS 和 SSH,一個 port 多個服務

sslh 是 protocol multiplexer,讓 SSH、HTTPS、OpenVPN 共用同一個 port。最常見的用途是把 SSH 藏在 443,穿透只開放 HTTP/HTTPS 的嚴格防火牆。

2026 年 3 月 28 日
English
Sslh Ssh Networking Security Linux
Featured image of post reverse_ssh:用標準 SSH 語法管理反向連線,穿透防火牆不需要 VPN
Tools

reverse_ssh:用標準 SSH 語法管理反向連線,穿透防火牆不需要 VPN

reverse_ssh 把 SSH 反向:目標機主動連回 server,operator 再用原生 SSH 語法連進去。支援 HTTP/WebSocket/TLS 多種 transport 穿防火牆,SCP/SFTP/port forwarding 全部可用。

2026 年 3 月 27 日
English
Ssh Reverse-Shell Security Networking Golang Firewall Tunnel
Featured image of post yazi:Rust 寫的終端機檔案管理器,vim 鍵位、圖片預覽、Alacritty 解法
Tools

yazi:Rust 寫的終端機檔案管理器,vim 鍵位、圖片預覽、Alacritty 解法

yazi 是 Rust 寫的非同步終端機檔案管理器,vim 鍵位、圖片預覽、Lua 外掛、整合 fzf/zoxide。Alacritty 不支援圖片協議,macOS 用 Chafa,Linux 用 Überzug++ 搭配 X11/Wayland。

2026 年 3 月 26 日
English
Yazi Terminal Rust File-Manager Alacritty
Featured image of post reptyr:SSH 忘開 tmux 也救得回來,把 process 移進去
Tools

reptyr:SSH 忘開 tmux 也救得回來,把 process 移進去

reptyr 用 ptrace 把已在執行的 process 重新附加到新的 terminal。SSH 忘開 tmux 就跑了長時間任務,或者想把 background process 移進 screen,reptyr 一個指令搞定。

2026 年 3 月 25 日
English
Reptyr Linux Terminal Tmux Ssh Process Rescue
Featured image of post SQL NULL 的兩個陷阱:JOIN 撈不到資料、UNIQUE 限制失效
Database

SQL NULL 的兩個陷阱:JOIN 撈不到資料、UNIQUE 限制失效

各資料庫對 NULL 的解釋不同,衍生兩個常見問題:JOIN 欄位都是 NULL 時資料撈不到,以及 UNIQUE 欄位允許多筆 NULL 導致限制失效。MySQL、PostgreSQL、SQLite、SQL Server 行為各不同。

2026 年 3 月 24 日
English
Sql MySQL Postgresql Sqlite Database
Featured image of post ky + p-limit:並發控制加上內建 retry,批次請求的完整解法
Frontend

ky + p-limit:並發控制加上內建 retry,批次請求的完整解法

ky 處理單一請求的 retry、timeout、auth hook,p-limit 控制同時執行的數量。兩個工具各司其職,批次打 100 個 API 不怕 429 也不怕網路抖動。

2026 年 3 月 23 日
English
Ky Typescript Javascript Concurrency P-Limit Api Rate-Limiting
Featured image of post fetch 並發控制:用 p-limit 限制同時請求數量,避免打爆 API
Frontend

fetch 並發控制:用 p-limit 限制同時請求數量,避免打爆 API

Promise.all 同時發出 100 個請求,server 很容易回 429 或直接掛掉。用 p-limit 搭配 fetch 限制同時執行的請求數量,只需要一行設定,不需要自己寫 semaphore。

2026 年 3 月 22 日
English
Fetch Javascript Typescript Concurrency P-Limit Api Rate-Limiting
Featured image of post auto-venv:Fish Shell 自動啟用 Python 虛擬環境,cd 進去就好
Python Tools

auto-venv:Fish Shell 自動啟用 Python 虛擬環境,cd 進去就好

auto-venv 是 Fish shell plugin,切換目錄時自動啟用和關閉 Python venv,支援 .venv、venv、.env、env 四種命名,用 git root 判斷範圍,相容 z、zoxide 等跳轉工具。

2026 年 3 月 21 日
English
Fish Python Venv Automation Shell Virtualenv
Featured image of post Fish Shell + Laravel Valet:自動切換 PHP 版本和 Composer v1/v2
PHP Tools

Fish Shell + Laravel Valet:自動切換 PHP 版本和 Composer v1/v2

用 fish shell alias 和 function 讓 php、composer、phpunit 自動跟著 Laravel Valet 的 PHP 版本走。解決舊專案需要 Composer v1 的問題,智慧判斷用 composer.phar 還是系統 composer。

2026 年 3 月 20 日
English
Fish Laravel Valet Php Composer Shell Version-Manager
Featured image of post Python Mock 踩坑:patch 要指向被測模組,不是原始模組
Python Testing

Python Mock 踩坑:patch 要指向被測模組,不是原始模組

Python unittest.mock.patch 的最常見誤區:mock utils.sum 但測試還是跑真的邏輯。原因是 from utils import sum 在被測模組建立了自己的 binding,patch 要指向被測模組的命名空間,不是函式的原始定義位置。

2026 年 3 月 19 日
English
Python Testing Mock Unittest Patch Pytest
1 2 3 4 5 6 7 10
© 2020 - 2026 recca0120 技術筆記
recca0120 on GitHub
使用 Hugo 建立
主題 Stack 由 Jimmy 設計