timmy / Python 單例模式實作

0 likes
0 forks
1 files
Last active 3 months ago
此 Python 程式碼實作了單例(Singleton)設計模式,確保一個類別在整個應用程式生命週期中只會有一個實例。透過覆寫 __new__ 方法,它保證每次創建該類別的物件時,都將返回同一個已存在的實例,避免重複創建。
1 class Singleton:
2 _instance = None
3
4 def __new__(cls):
5 if cls._instance is None:
6 cls._instance = super().__new__(cls)
7 return cls._instance
8
9
10 a = Singleton()
Last active 3 months ago
此腳本用於顯示 Kubernetes 環境中 Pod、Service、NodePort、Ingress 的狀態與連線資訊,並列出 PVC,方便快速掌握服務部署與存取方式。特別適用於 k3s + Traefik 環境。
1 #!/usr/bin/env bash
2 # 用途:查看 Kubernetes 服務狀態與實際連線方式
3 # 包含:Pod、Service(NodePort)、Ingress(HTTP/HTTPS)、PVC
4 # 適用:k3s + Traefik
5
6 set -euo pipefail
7
8 echo
9 echo "=== Pods ==="
10 kubectl get pods -o wide

timmy / Kubernetes PVC 檢查與救援 Pod

0 likes
0 forks
1 files
Last active 3 months ago
此 Kubernetes Pod 定義用於掛載指定的 PersistentVolumeClaim (PVC),並啟動一個 Alpine 容器長時間運行。其目的是提供一個臨時環境,讓使用者能夠進入容器內部,檢查、修改或救援 PVC 中的資料,並可選地啟用 root 權限來處理權限問題。它設定為 restartPolicy: Never 以避免自動重啟。
1 apiVersion: v1
2 kind: Pod
3 metadata:
4 name: pvc-inspector
5 labels:
6 app: rescue-tool
7 spec:
8 # 因為是臨時救援用,跑完或出錯不需要自動重啟
9 restartPolicy: Never
10 volumes:

timmy / Temporary Directory Management

0 likes
0 forks
2 files
Last active 3 months ago
此組合功能包括一個 Python 腳本和一個 Shell 腳本。Python 腳本用於創建和管理臨時目錄,以存放中間產物;Shell 腳本負責下載指定 URL 的檔案並解壓縮,並在執行完畢後自動清理臨時目錄,確保資源釋放。
1 tmpdir="$(mktemp -d)"
2 trap 'rm -rf "$tmpdir"' EXIT
3 curl -fsSL "$URL" -o "$tmpdir/input.tar.gz"
4 tar -xzf "$tmpdir/input.tar.gz" -C "$tmpdir"

timmy / 移除mp4檔案的元數據和章節

0 likes
0 forks
1 files
Last active 3 months ago
此腳本使用FFmpeg工具從指定的MP4文件中移除所有元數據和章節,並將結果保存到新的MP4文件中。這有助於減少文件大小或保護隱私。
1 ffmpeg -i input.mp4 -map 0 -c copy -map_metadata -1 -map_chapters -1 output.mp4

timmy / Docker 配置檔案 for Python App

0 likes
0 forks
2 files
Last active 7 months ago
此 Dockerfile 用於建立一個基於 Python 3.12 的輕量級 Docker 映像,從 Debian 12 (bookworm) 開始,安裝必要的依賴,並使用 uv 工具來管理 Python 環境和執行應用。它包括多階段構建以優化映像大小和安全性,並設置非 root 使用者來執行應用。
1 .git
2 __pycache__/
3 *.pyc
4 *.pyo
5 *.pyd
6 *.swp
7 .env
8 .venv
9 .uv/
10 dist/

timmy / 查找可用端口的函數

0 likes
0 forks
1 files
Last active 7 months ago
此程式碼定義了一個函數 find_free_port(),使用 socket 建立一個暫時的連接來查找可用的端口號,並返回該端口號。主程式中示範了如何在 Flask 應用中使用此函數以隨機分配可用端口來運行應用。
1 import socket
2 from contextlib import closing
3
4 def find_free_port():
5 # 建立一個暫時的 socket 來偵測可用的 port
6 with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
7 # bind 到 0 表示讓系統隨機分配一個可用的 port
8 s.bind(('', 0))
9 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
10 # 回傳那個被分配到的 port 號

timmy / Vim 配置檔案

1 likes
0 forks
1 files
Last active 7 months ago
此配置檔案設定 Vim 的基本編碼、UI、搜尋行為、縮排、剪貼簿及滑鼠控制。它啟用語法高亮、行號顯示及搜尋高亮,並調整縮排規則以使用空格代替 Tab,適合開發環境使用。
1 " ===== 基本編碼 =====
2 set encoding=utf-8
3 set fileencoding=utf-8
4 set fileencodings=utf-8,ucs-bom
5
6 " ===== 基本 UI =====
7 syntax on " 啟用語法高亮
8 set number " 顯示行號
9 set cursorline " 高亮游標所在行
10 set background=dark " 適合深色背景終端機