Avatar 💻

recca0120 技術筆記

Software Developer / 技術筆記

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

紀錄

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

分類

PHP Laravel Frontend Testing Database DevOps Tools MacOS Windows Python

標籤雲

Laravel Php Testing JavaScript PHPUnit Sqlite Typescript Linux AWS Blade Composer Developer-Tools Guzzle Mockery Mysql Sql.js Validation Devops Docker MacOS
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 8
© 2020 - 2026 recca0120 技術筆記
recca0120 on GitHub
使用 Hugo 建立
主題 Stack 由 Jimmy 設計