分類
软件

去中心化的 XMPP 聊天系統初體驗

XMPP 的聊天系統就像電子郵件系統一樣,大家擁有不同的賬戶,卻可以相互通信。

一般使用

關於賬號,雖然可以自建 XMPP 服務器,但是輕度使用的話,我還是推薦 404.city 提供的免費服務。

關於客戶端,Linux 下推薦 Dino,Windows 下推薦 Psi+,安卓下推薦 Conversations。均支持 圖文消息,群組聊天及 OMEMO 端對端加密。Dino 正在開發語音和視頻聊天,Psi+ 不清楚,Conversations 應該是支持的,但是我沒用過。

一點資料

如果想用 Cloudflare 隱藏自己的服務器 IP,那麼在其上搭建 XMPP 服務將會面臨巨大挑戰,因為 Cloudflare 只代理 HTTP 協議的請求,不代理 XMPP 協議的請求。BOSH 是一種通過 HTTP 協議來中轉 XMPP 協議的解決方案,我試了下沒有成功。

分類
其它

使用自動電飯鍋煮雙人份的白粥

我非常喜歡吃白粥,做白粥卻是第一次,雖然簡單,還是記錄一下,使用的是飛利浦的一個自動電飯鍋。

首先從米罐中取兩人份白粥的大米,用電飯鍋自帶的量杯取 80 ML 左右即可,沒有量杯的話就大概一把。然後把米放進鍋里,用大概 150 ML 的清水洗米 30 秒。倒去洗米水,按照鍋內刻度接 500 ML 水用來煮粥,如果沒有刻度就街兩碗水應該也行。最後把鍋放入電飯鍋,設置「煮粥」,等待其完成即可。

在電飯鍋開始煮粥前,可以將米放在鍋里浸泡半小時到一小時,同等煮的時間下米粥會煮的更爛。如果不喜歡太爛的粥則可以設置較短的煮粥時間,這樣就能達到節能環保的目的。

小撇步二:如果家裡有糙米,煮白粥的時候放一勺會增加白粥的口感。

分類
其它

20090119

……

會議強調,要把「人」看住,把「物」控住,把「面」穩住,把「網」管住,找准並補足工作短板,切實提升應對處置暴恐風險的能力水平,着力打好主動仗、整體仗、持久仗,堅決防止暴恐活動在我縣蔓延滲透,堅決防止在我縣出現暴恐案(事)件。要堅持凡「恐」必打、露頭就打、打防結合、標本兼治,堅持系統治理、依法治理、綜合治理、源頭治理,持續鞏固我縣反恐怖鬥爭良好態勢,爲全面建成小康社會營造安全穩定的社會環境。要堅持立足當前、着眼長遠,標本兼治、綜合施策,在落實責任、強化措施、實戰實訓上下足功夫,確保反恐怖工作順利開展。要堅持統籌兼顧、整體推進,紮實抓好疫情防控和維護安全穩定各項工作,嚴防發生暴力恐怖和個人極端暴力案(事)件,嚴防公共衛生風險向社會穩定領域傳導。同時,要繼續加強公衆反恐宣傳教育,不斷增強廣大羣衆的防恐反恐安全意識,營造全民參與防恐反恐的氛圍。

……

分類
软件

简单使用影音管理軟件 digiKam

digiKam 是 KDE 家族的一款影音管理軟件,支持 Linux、Windows 和 Mac 平台。其主要特點有開源、輕鬆處理大量(大於十萬張)照片、高效的處理 raw 和 JPEG并發佈至社交媒體、查看和編輯媒體的元數據等。基於我的使用體驗,我認為 digiKam 確實是一款非常好用又功能強大的媒體管理編輯器。我目前主要使用了給照片和影片添加地理位置信息和批量縮放壓縮圖片這兩個功能,但是其媒體管理功能是操作系統自帶的文件管理器所不具備的,也很好用。自帶的人臉識別功能也挺好玩的。我是在 Windows 平台使用的 7.0.0 版本,繁體中文翻譯的有些問題,但我還是按照軟件里的顯示來記錄吧。

使用 digiKam 爲媒體添加地理位置信息

使用 GPX 文件自動爲媒體添加地理位置信息

首先選中要添加地理位置的媒體,然後在菜單欄選擇 Item > Edit Geolocation(或者按下快捷鍵 Ctrl + Shift + G),之後 Geolocation 編輯器會打開。在地理位置編輯器中,地圖的左下方有一個地球的圖示,在這裏可以選擇地圖爲開放街圖。挨著的兩個圖標是拉近或推遠地圖。GPX 檔案通過最右邊的「 GPS 相關器」中的「載入 GPX 檔」載入。選擇相機時區(如 +8 ),最大時間間隔用默認記得即可(越小越精確,但是可能會匹配不到),然後按下右下角的「關聯」,程序就會自動將地理位置信息關聯到照片中了。左下角的媒體列表可供檢查,沒有問題的話的就按右下角的「 Apply 」將位置信息保存到媒體。如果沒有關聯到則有兩個辦法處理,一是調教關聯的參數,參考官方幫助文檔 The Correlator ,二是手動給文件指定地理位置。

手動爲媒體添加地理位置信息

選擇媒體并按下快捷鍵 Ctrl + Shift + G 打開 Geolocation 編輯器后,放大地圖,將地圖中心設置到目標位置,然後右鍵選擇「複製坐標」,最後在左下角的照片上右鍵,選擇「貼上坐標」。重複上面步驟待所有照片都添加位置信息后就可以按右下角的「 Apply 」將信息寫入文件了。

給媒體添加反向地理定位信息

所謂反向地理定位是指把經緯度轉化為日常使用的城市街道名等。還是在 Geolocation 編輯器中,右側選擇「反向地理定位」,服務的話建議選擇「Open Street Map」,因為 Geonames 沒有開放街圖准。如果是第一次添加反向地理定位,需要為其增加一個根標籤:在標籤樹空白處右鍵,按「新增標籤」,取個名字比如叫「 Location 」,然後在「 Location 」上右鍵,選擇「新增所有地址元素」。然後按下右下角的「Process reverse geocoding」,成功後就可以看到標籤列表中增加了包含國家城市等地名的標籤。當然也可以自定義地理標籤,比如只保留國家和城市。最後不要忘記按下「 Apply 」把信息寫入媒體。

GPS 僅出現在 digiKam 中而沒有保存到文件中?

先選擇要保存地理位置信息的圖片,然後在菜單欄選擇 Item > Write Metadata to file 即可。為什麼要有這麼一步呢,那是因為第一次打開 digiKam 的時候按照推薦,當問及是否要將 digiKam 保存的元數據寫入文件中時,選擇了「什麼也不做(Do nothing)」。如果選擇了「Add infomation to files」應該就無需這一步了,但是 digiKam 提醒說這樣回減慢照片的操作速度,所以我還是每次手動寫入下文件。另外值得一提的是 digiKam 不支持往視頻文件寫入地理位置信息。

執行了 Write Metadata to file 後照片中仍然沒有位置信息?可以檢查下 Settings > Configure digiKam > 左邊 Metadata > Behavior 標籤頁 > Write This Information to the Metadata 中勾上 Geolocaton information (GPS)。

批量自動調整顏色和縮放照片

Emanon 看書的時候用手機拍攝了很多書頁,但是手機拍出來的照片尺寸和文件大小都很大,有些甚至超過 10 MB,對於書頁來說是不必要的。經過 digiKam 自帶的影像編輯器將尺寸縮放 50% 後文件大小能縮小到 1 MB 以內,節省了很多空間,畫質也幾乎看不到變化(畢竟主要是白紙黑字)。但是一共有快兩千張這樣的文件,於是就要用到批處理了。

先選擇要進行批處理的照片,可以從「相簿」頁面直接選取,也可以從「搜尋」頁面搜尋後選取。由於 Emanon 的書頁都是手機拍攝的,我就可以只搜索「讀書筆記」相簿中,相機製造商為「 Sony 」的照片。選中照片後,按下菜單欄 Tools > 批次佇列管理器(或按下快捷鍵 Shift + B)打開批次佇列管理器窗口。需要對照片進行的操作可以通過雙擊右下角的「基本工具」中的對應工具,將其選擇到「指定的工具」中。然後在「指定的工具」中單擊後,就可以在「工具設定值」中調教工具的參數。比如我的這個操作用到兩個動作:顏色自動矯正>標準化和調整大小>使用自訂長度> Use Percentage > 50% 。設置好操作步驟,就可以在左下角的「佇列設定值」中設置保存文件相關的參數。由於我是要覆蓋保存,所以「目標」選擇「使用原始專輯」,「檔案重新命名」選擇「使用原始檔名」,行為中「如果目標檔案已存在」選擇「自動覆寫」並取消勾選「 Save image as a newly created branch 」。「儲存影像」標籤頁可以設置圖片的品質,我在默認值的基礎上將其調高了,JPEG 品質改為 85% 仍然獲得很好的壓縮效果。這些做完後就可以按工具欄的「執行」來處理佇列了。如果想要復用剛才設定的工作流,可以按菜單欄的 Queues > 儲存工作流,下次只需要在「工作流」標籤頁選擇就可以用了。

digiKam 其他小撇步

添加新的文件夾到 digiKam

菜單欄 Settings > 設定 digiKam > 收藏。點擊「本機收藏」後面的「加入收藏」按鈕。

Fedora 使用 AppImage 版 digiKam 提示沒有 libnsl.so.1

190909 直接從 dnf 安裝是 7.1.0 版本,安裝大小接近 1GB,但是 AppImage 是最新版 7.3.0 才只有 215 MB。下載 AppImage 後,在文件屬性裏勾選「可執行」,正常雙擊即可啓動。但是卻沒反應,於是用命令行直接運行 ./digiKam-7.3.0-x86-64.appimage 就提示「digikam: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory」。只需要安裝 libnsl 就可以了——sudo dnf install libnsl。

本文更新於 2024/11/10。

分類
软件

Linux 使用 Python 操作剪切板

還是那個簡繁轉換的需求, zhconv 似乎不能直接給它傳一段文字來轉換,只能轉換文件或者在 Python 中調用。

Fedora

先安裝 xclip 依賴,再安裝 pyperclip:

sudo dnf install xclip
sudo pip3 install pyperclip

然後新建一個 Python 腳本 /home/[YOURNAME]/scripts/s2t.py:

import pyperclip
from zhconv import convert

clipString = pyperclip.paste()
clipStringTC = convert(clipString, 'zh-hant')
pyperclip.copy(clipStringTC)

最後為了方便使用,給腳本設置一個別名

alias t='python3 /home/[YOURNAME]/scripts/s2t.py'

但是如果想讓別名保存下來,以後每次都能用,Fedora 需要把別名加到家目錄的 .bashrc 文件裏:

nano ~/.bashrc
alias t='python3 /home/[YOURNAME]/scripts/s2t.py'

Termux

Termux 無法使用 pyperclip 來操作剪切板,但是可以通過 Termux API 來操作。對應的 Python 這樣:

import subprocess
from zhconv import convert

clipString = subprocess.getoutput("termux-clipboard-get")
clipStringTC = convert(clipString, 'zh-hant')
subprocess.getoutput("termux-clipboard-set \'"+clipStringTC+"\'")

本文更新於 2022/07/29。

分類
软件

安卓手機把短信導出成 JSON 文本

本來打算用 Termux API 中的讀取短信功能,結果官方說谷歌不允許,所以後來找到了 hydrargyrum 開發的 Epistolaire。 Epistolaire 可以把本機的短信和彩信全部導出到 JSON 文本中,使用非常簡單。

本文更新於 2020/08/09。

分類
网站

嘗試攔截來自 Cloudflare IP 的密碼猜解

我的 WordPress 安裝了 Limit Login Attempts 插件,其中可以設置輸入錯誤密碼 m 次封鎖這個 IP n 小時,並記錄下這個 IP。本站最近有很多來自 Cloudflare IP 的錯誤登錄嘗試,於是我試圖使用下面兩個方法攔截,可惜結果證明無效。於是我使用了 OTP (One-time password)來增加暴力破解的難度,直到再次找到可行的攔截方法。我還安裝了一個修改 WordPress 登錄頁網址的插件 WPS Hide Login,應該也能有些作用。

Cloudflare Firewall

免費 Cloudflare 用戶可以創建 5 個防火牆規則,我建立了如下兩條:

(http.host in {"ft.wupo.info"} and ip.geoip.asnum in {13335})
(ip.src in {173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/12 172.64.0.0/13 131.0.72.0/22} and http.host eq "ft.wupo.info")

我隨便查了幾個 Cloudflare IP 的 AS 編號都是 13335,所以第一條就是如果 IP 的 AS 編碼是 13335 就攔截。順便推薦個我經常用的查 IP 的網站 IP-API

第二條是根據 IP 地址來封鎖,從這裡獲得 Cloudflare 的 IP

(ip.geoip.country ne "KP" and http.host eq "ft.wupo.info")

如果想根據 IP 所在國家來限制訪問也是可以的,上面的便是限制了北韓以外 IP 的訪問本站。

在 Limit Login Attempts 插件中限制 IP

這個就是一行一個填已經攔截的 IP 就可以了,可以把所有 IP 複製下來,然後粘貼到 LibreOffice Calc 中,按需要進行排序後複製出 IP 列貼回插件中就可以了。