分類
软件

简单使用影音管理軟件 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 檔」載入。然後按下右下角的「關聯」,程序就會自動將地理位置信息關聯到照片中了。左下角的媒體列表可供檢查,沒有問題的話的就按右下角的「 Apply 」將位置信息保存到媒體。如果沒有關聯到則有兩個辦法處理,一是調教關聯的參數,參考官方幫助文檔 The Correlator ,二是手動給文件指定地理位置。

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

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

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

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

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

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 > 收藏。點擊「本機收藏」後面的「加入收藏」按鈕。

分類
软件

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)

最後為了方便使用,在 bash_profile 中添加別名

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

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+"\'")
分類
软件

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

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

分類
网站

WordPress 使用 OTP 增強站點安全性

一次性密碼 (One-time password)又稱動態密碼或單次有效密碼,是指計算機系統或其他數位裝置上只能使用一次的密碼,有效期為只有一次登入會話或交易。OTP 避免了一些與傳統基於密碼認證相關聯的缺點;一些實作還納入了雙因素認證,確保單次有效密碼需要存取一個人有的某件事物以及一個人知道的某件事物。——維基百科

本站使用的開源 OTP 插件是 WP-OTP。安裝啟用後在「使用者」>「個人資料」頁面,會有二維碼出現,用自己喜歡的 OTP 客戶端掃描後輸入生成的密碼就開啟了網站的 OTP 登錄。

我使用的 OTP 軟件是開源的 andOTP。安裝後會提示給 andOTP 客戶端自己設置個密碼,以保護動態密碼的安全。設置好後點擊主界面右下角的「+」,掃描 WordPress 個人資料頁的二維碼,將出現的數字填入 WordPress 後台就完成了所有的設置。

平常使用的場景是:打開 WordPress 的登錄頁,輸入賬號密碼。打開手機上的 andOTP 查看當前的動態密碼( 6 位數字)。將動態密碼也輸入登錄頁,完成登錄。

分類
软件

[18+] Hendroid 同人與變態漫畫瀏覽器

發現一個令人墮落的應用( ͡° ͜ʖ ͡°) Hendroid:Doujinshi & Hentai-Manga archiving and viewing app.

分類
软件

安卓手機使用 dnscrypt proxy

目的:未 root 的安卓 8 手機在 WiFi 和 4G 下使用 dnscrypt-proxy 2 避免 DNS 污染。

跑起來

使用 Termux 來運行 dnscrypt-proxy 2,配置方法參考Fedora使用DNSCrypt。由於手機未 root ,所以無法監聽 53 端口,可以用 5353 替代。配置成功後 dig ft.wupo.info -p 5353 @127.0.0.1 應該可以能正確返回 DNS 查詢。

使用 DNSfilter去 F-droid 下載)實現的本地 VPN 來修改系統的DNS查詢,它同時還能攔截廣告。配置非常簡單,只需要在DNS配置欄選中禁用 DNS 服務器查找,並在輸入框中輸入下面一行即可。

127.0.0.1::5050::UDP

日常使用

新建文件 /data/data/com.termux/files/home/scripts/dns.sh 並給予執行權限。

startDns(){
  nohup /data/data/com.termux/files/home/opt/dnscrypt/dnscrypt-proxy -config /data/data/com.termux/files/home/opt/dnscrypt/dnscrypt-proxy.toml&
  echo "starting dns"
  sleep 10
  am start --user 0 -n  dnsfilter.android/.DNSProxyActivity
  sleep 2
}
stopDns(){
  am start --user 0 -n  dnsfilter.android/.DNSProxyActivity
  sleep 8
  pkill dnscrypt-proxy
  echo "killed dns"
}

status(){
  vt1="$(ps -ef | grep dnscrypt-proxy | wc -l)"
  vt2=" "
  if [[ $vt1 = "2" ]]; then
    dnsproxyStatus="1"
    vt2="$(dig -p 5353 +short www.v2ex.com @127.0.0.1)"
  else
    dnsproxyStatus="0"
  fi  
}
if [[ $1 = "1" ]]; then
  echo "start"          
  startDns
elif [[ $1 = "2" ]]; then
  echo "restart"  
  stopDns         
  sleep 3           
  startDns  
elif [[ $1 = "0" ]]; then
  echo "stop"
  stopDns
elif [[ $1 = "s" ]]; then
  status
  echo "dns: $dnsproxyStatus | $vt2"   
fi

在 ~/.bash_profile 中增加快捷命令

alias d1='/data/data/com.termux/files/home/scripts/dns.sh 1'
alias d0='/data/data/com.termux/files/home/scripts/dns.sh 0'
alias dt='/data/data/com.termux/files/home/scripts/dns.sh s'

使用的時候,運行 d1 即可啟動 dnscrypt-proxy 服務,並且拉起 DNSfilter。運行 d0 則會先拉起 DNSfilter,此時需要手動點下 Close 退出 APP,然後會關閉 dnscrypt-proxy 服務。

分類
软件

火狐开启 DoH 和 ESNI

DNS over HTTPS

DNS (Domain Name Server) 查詢是指將域名轉換成 IP 地址的過程。比如將你要訪問 www.douban.com,DNS查詢後,會告訴瀏覽器豆瓣的服務器IP是162.14.6.67。

普通的 DNS 查詢是明文傳輸的,這意味着你的互聯網服務提供商或者其他監聽網絡的人可以知道你正在訪問什麼網站。

火狐瀏覽器支持加密的 DNS 請求,但這不是默認的開啟的。(比如英國政府就要求它是禁用的,因為它會削弱他們屏蔽一些網站的能力)。

有兩種方法在火狐中啟用DoH,第一種是在 偏好設定 > 一般 > 網路設定 > 開啟 DNS over HTTPS ,開啟即可。第二種是在地址欄輸入

about:config

搜索「trr.mode」,雙擊修改數值為 2:如果 DoH 失敗則用普通 DNS 查詢;或 3:全部使用 DoH 查詢。

network.trr.mode    2

除了默認的 Cloudflare DNS,也可以嘗試使用 OpenDNS 的 DoH 服務,其網址是:https://doh.opendns.com/dns-query 。友情提示:OpenDNS 現在是 Cisco 旗下的了。

Encrypted SNI

當瀏覽器在發起一個 TLS 請求的時候(比如 HTTPS 請求), Server Name Indication (SNI) 會暴露你要連接到域名。你可以通過啟用火狐中的 encrypted SNI 來避免這一點。

在地址欄輸入

about:config

搜索「esni」,雙擊修改數值為 true 。

network.security.esni.enabled    true

可以在 Cloudflare ESNI Checker 進行檢測。如果設置成功,不僅能提升隱私保護,還可以解決由 DNS 污染導致的網絡問題。比如 Medium 和 一些啟用了 Cloudflare CDN 的站點就可以直連了。