分類
其它

修復 LibreOffice 的滾動條在使用 Wacom 數位板時無效的問題

我升級到了最新版 LibreOffice,然後右側和下面的滾動條就失效了,無法通過拖拽它們挪動表格的位置(被 Emanon 罵)。經過測試只要關閉 Windows Ink 功能,滾動條就能恢復為普通的「滑鼠點擊」模式。

首先打開 「Wacom 數位板內容」。在「應用程式」欄位中,點擊 右側的「+」號,手動將 LibreOffice (如 soffice.bin 以及表格應用) 加入。然後選擇剛剛加入的 LibreOffice 應用,切換到 對應 (Mapping) 分頁。最後取消勾選 左下角的 「使用 Windows Ink」(Use Windows Ink)就可以了。

分類
陰陽怪氣

260303

🏠 【溫馨告知】居住登記小提醒
親愛的居民朋友們:
爲更好地服務大家,保障您的各項權益,現將居住登記相關事宜溫馨提醒如下:

1️⃣ 如有新入住、親友暫住7天以上、換房,請及時告知我更新信息。
2️⃣ 家中新生寶寶,請記得登記(出生證、身份證或戶口本均可)。
3️⃣ 如搬離此處,請及時告知刪除居住信息。
4️⃣ 業主、租戶請主動配合網格員做好居住登記。
5️⃣ 身份證戶籍信息有變更,可發給網格員更新。

💡 小提醒:
居住登記關係到孩子入學、居住證、社保醫保、異地就醫、駕照業務、銀行辦理、社區便民服務等多項事宜,及時登記更安心、更便利。

感謝大家的理解與配合,我們用心做好服務~
📞 網格員電話&微信:1**********

分類
說說

260206

Emanon 旅行時拍得視頻,今天發現被我不小心刪除了(其實是複製到的沒有複製全,遺漏了一部分)。Emanon 非常生氣,因為本月已經發生過一次視頻數據遺失,那是去年中旬的視頻,我也不知道為什麼會消失。雖然這些文件我都保存兩份,以防止硬件故障,但是兩份數據又確實都缺失了。以後要儘快按順序處理完旅行後的媒體文件,免得中斷後夜長夢多。

分類
方法

旅行不丟東西小撇步

住宿不丟東西的訣竅--恢復原狀。離店前簡單整理下床鋪,把遙控器放回原位,關掉燈和空調,帶走產生的垃圾。然後只需回望一眼房間即可確定自己所有物品已經帶齊。

出門不落東西的訣竅--預留充足的時間。如果出門前需要在家裡做飯吃飯,就留兩個小時;如果不吃飯,就留一個小時。在這一個小時裡完成洗漱以及未完成的打包,如最後才裝包的手機充電器和電腦。只要能避免慌張出門,就能大大降低出門落東西的概率。

出門不丟手機的訣竅……這個真的很難!以我丟手機的經驗來說,發生次數最多的是遺落在公交車上,遺落在轎車上以及遺落在沙灘上(在國外旅行痛失兩部手機的慘痛記憶)。我常年穿迪卡儂的一款速幹長褲,其口袋帶拉鍊,只需輕輕一拉,手機便萬無一失,遺憾的是我經常不拉。我目前的做法就是「記得拉拉鍊」,養成放在固定可靠地方的習慣。由於遺失手機,我們在很多地方都遇到好心人幫忙,也不失為一種旅行體驗。當然我們也撿到過兩三次手機,不過我們並沒有見過失主,我們最多將其放在更顯眼的位置,希望失主能順利尋回。

既然說到遺失手機,自然就帶來遺失數據的問題,這個其實比較簡單--及時備份。從大公司到開源軟件,選擇有不少。有些軟件也有自己的備份方法,要儘早多加利用,莫等珍貴資料遺失才追悔莫及。注意:本機備份等於沒有備份,一定要保存至另一個設備或雲端才算數。手機遺失通常還會伴隨 SIM 卡的遺失,像微信這種以「安全」為由,在新設備登錄必須短信驗證就廢了。此時一個備用的聯繫方式就很必要,這裡我強烈推薦下 DeltaChat(端對端加密、提供默認服務器方便註冊且不驗證個人資料、中國可用)。最近出國試了下 eSim.sm (使用我的鏈接有 5% 優惠)發現方便不少,價格和中國移動境外包差不多,但是數據不過牆。而且可以按量付費,非常適合我們這種不刷視頻,只是看看地圖的低流量用戶。手機遺失的時候也只需在網上註銷那張卡,然後重新申領一張就行了。

本文更新於 2026/02/10。

分類
软件

在 Alma Linux 9 上安裝和使用 Docker

安裝

sudo dnf update -y
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io

#Start and Enable Docker
sudo systemctl start docker
#sudo systemctl enable docker

#Verify Installation
sudo docker run hello-world

sudo usermod -aG docker YOUR_USER
sudo systemctl enable docker

更換 Docker 源

時間來到 2024 年,默認的軟件源不是{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}就是Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 192.168.1.42:55114->54.236.113.205:443: read: connection reset by peer.,可以通過修改軟件源比如 https://docke.eu.org 來解決。

sudo nano /etc/docker/daemon.json
#內容為:
{
    "registry-mirrors": ["https://docke.eu.org"]
}

#然後重啟服務
sudo systemctl restart docker

使用代理

如果更換 Docker 源也不行,還有一個簡單的辦法,就是使用代理。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=socks5://127.0.0.1:44082"
Environment="HTTPS_PROXY=socks5://127.0.0.1:44082"
Environment="NO_PROXY=localhost,127.0.0.1,::1"

#restart docker
sudo systemctl daemon-reload
sudo systemctl restart docker

#verify the setting
systemctl show docker | grep -i proxy

postgres Docker

#file:docker-compose.yml
services:
  db:
    image: postgres
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    ports:
      - "5432:5432"
    volumes:
      - ./docker-data-pg:/var/lib/postgresql/data     
    deploy:
      resources:
        limits:
          cpus: ${POSTGRES_CPU_LIMIT}
          memory: ${POSTGRES_MEM_LIMIT}
    restart: ${POSTGRES_RESTART_POLICY}
#file:.env
POSTGRES_USER=userp
POSTGRES_PASSWORD=passwordp
POSTGRES_DB=dbname
#restart | no
POSTGRES_RESTART_POLICY=no
POSTGRES_CPU_LIMIT=2.0
POSTGRES_MEM_LIMIT=1024M 
#啟動 docker
sudo docker compose up -d

在網上看到有人提醒說,compose 文件中的資源限制(CPU、內存)會導致容器內服務重啟。推薦的做法是在容器內服務中配置硬件限制。

遷移 Docker 與數據

在舊電腦上:

#查看 docker 名字
docker ps
#導出所有數據庫數據
docker exec -t <container_name> pg_dumpall -U <username> > all_databases.sql

複製 docker-compose.yml 和 all_databases.sql 到新電腦上,然後:

#啟動 docker
sudo docker compose up -d
#導入所有數據庫數據(方法一)
sudo docker exec -i <container_name> psql -U <username> -d postgres < all_databases.sql
#導入所有數據庫數據(方法二)
sudo docker cp all_databases.sql <container_name>:/tmp/all_databases.sql
sudo docker exec -i <container_name> psql -U <username> -d postgres -f /tmp/all_databases.sql

Docker 常用命令

#build new docker
docker compose up -d --build
#查看 docker 名字
docker ps
#進入 docker 容器
docker exec -it DOCKER_NAME bash

#If You Change environment, volumes, ports, or depends_on (data safe)
docker compose up -d
#If You Change the Dockerfile or build Settings
docker compose up -d --build

#stop and remove docker container cleanly
docker compose down
#remove everything even data
docker compose down -v
#If you've removed services or images and want to reclaim disk space
docker system prune
分類
記事

251103

站點升級:服務器升級到 2GB 內存。數據庫和 WordPress 放到了 Docker 里。v2fly 在 Cloudflare 的中轉下速度仍然不錯。

分類
程序 软件

將 flightradar24 航班位置記錄轉換為 gpx 文檔

前幾天坐飛機,一覺醒來看到壯麗的雪山。拍了不少照片,但是並不清楚雪山的大概位置。想要給飛機上拍攝的照片加上地理位置,需要 gpx 文檔,然後用 digiKam 就可以標記照片的位置。怎麼取得航班的位置呢?有兩個方法。

第一個是 FlightAware。搜索到航班的歷史記錄如這個 ZH8960。頁面上有個「+ Google Earth」的圖標,點擊後會得到一個 kml 檔案。然後到 kml2gpx.com 即可將文檔轉換為所需要的 gpx 文檔。但是這個方法的問題在於 FlightAware 的數據會有一部分是直線,看起來就是沒有 GPS 數據,所以我最終使用的方法二。

第二個略複雜,是用 flightradar24 的數據。搜索結果頁也有 kml 檔案下載按鈕,但是需要成為會員才能使用。所以點擊旁邊的回放按鈕,來到回放頁面。然後找到包含 GPS 數據的網絡請求:按 F12 按鈕打開瀏覽器開發者工具 > 切換到「網絡」標籤 > 刷新頁面 > 在過濾請求的輸入框里填寫 flight-playback.json 即可看到所需要的請求 > 在請求上右鍵 > 選擇「保存回應為(Save Response As)即可獲得包含 GPS 數據的 json 文檔。然後使用我的這個 Python 腳本即可將 json 文檔轉換為 gpx 文檔。

######################
#file json2gpx.py
# convert json file from www.flightradar24.com to gps file.
# get the json file by open the web page: https://www.flightradar24.com/data/flights/zh8960#3a6f819a
# then save the request https://api.flightradar24.com/common/v1/flight-playback.json?flightId=3a6f819a&timestamp=1747838700 as flight-playback.json
# run python json2gpx.py, and get output.gpx
######################

import json
import xml.etree.ElementTree as ET
from datetime import datetime, timezone

#read json from file
with open('flight-playback.json', 'r') as f:
    data_all = json.load(f)
data = data_all['result']['response']['data']['flight']['track']

# Create GPX root
gpx = ET.Element("gpx", version="1.1", creator="JSON-to-GPX Converter", xmlns="http://www.topografix.com/GPX/1/1")
trk = ET.SubElement(gpx, "trk")
trkseg = ET.SubElement(trk, "trkseg")

# Add track points
for point in data:
    trkpt = ET.SubElement(trkseg, "trkpt", lat=str(point["latitude"]), lon=str(point["longitude"]))
    ET.SubElement(trkpt, "ele").text = str(point["altitude"]["meters"])
    timestamp_iso = datetime.fromtimestamp(point["timestamp"], tz=timezone.utc).isoformat().replace("+00:00", "Z")
    ET.SubElement(trkpt, "time").text = timestamp_iso

# Write to GPX file
tree = ET.ElementTree(gpx)
with open("output.gpx", "wb") as f:
    tree.write(f, encoding="utf-8", xml_declaration=True)

print("GPX file created as 'output.gpx'")

值得留意的是,flightradar24 僅為非會員提供一周內的免費數據。如果你要查詢的航班資料大於一周,就要付費了。

本文更新於 2025/10/26。