分類
程序

PHP 使用 Nominatim 的逆地理編碼

之前一直使用谷歌的逆地理編碼服務,多年來運行良好。但是谷歌畢竟是一家巨大的商業公司,所以我現在改用 Nominatim

Nominatim(來自拉丁語,“按名稱”)是一個通過名稱和地址搜索開放街圖數據,根據開放街圖點來生成合成地址(逆地理編碼)的工具。
<?php
header("Access-Control-Allow-Origin: *");
header('Content-type: text/json');
header("Cache-Control: no-cache, must-revalidate");

$lat=$_POST["lat"];
$lng=$_POST["lng"];
$lang=$_POST["lang"];

$url = "https://nominatim.openstreetmap.org/reverse?format=geojson&lat=".$lat."&lon=".$lng."&accept-language=".$lang;

$ch = curl_init(); 
//set your own agent name
$agent = 'location/0.2(ft.shaman.eu.org)';
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,20); 
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
$content = curl_exec($ch); 
curl_close($ch);

$content = json_decode($content);
$resultArray = array();
foreach($content->features[0]->properties->address as $key => $value) {
    //remove country_code and postcode
    if ($key=='country_code' or $key=='postcode'){            
    }else{
        array_push($resultArray,$value);
    }
}
echo implode(",",$resultArray);
?>	
curl -d 'lat=22.57776&lng=113.94849&lang=zh-TW' https://your.api.domain/api.php
西丽华昌大厦,西丽南路,松坪村,南山区,西丽街道,广东省,中国
分類
网站

本站域名變更:從 wupo 到 shaman

首先感謝 EU.org 提供的 free 二級域名,本站從即日起開始在新域名 https://ft.shaman.eu.org 下更新,原 https://ft.wupo.info 會在一天後跳轉到本站。 https://emanon.wupo.info 由於停更,所以本次不會遷移到新域名,但是會在明年域名到期後下線。Emanon 有一個自然觀察的 Youtube 頻道,裡面都是些常見物種記錄。


本次遷移域名遇到的小問題

由於不是很緊迫,所以我是在同一個服務器上複製了一份數據庫,然後又複製了一份 wordpress 文件夾,最後再複製一份 nginx 的配置文件就搞定了。如果遇到 nginx 500 錯誤,記得檢查文件權限。需要在數據庫里操作的幾處我列一下:

#如果只是修改域名,則只需執行下面兩行
update options set option_value="https://ft.shaman.eu.org" where option_name="siteurl";
update options set option_value="https://ft.shaman.eu.org" where option_name="home";

#如果要修改用戶的電子郵箱
update users set user_email='[email protected]' where user_login='user1';
#如果要修改管理員的電子郵箱
update options set option_value='[email protected]' where option_name='admin_email';

還有一個問題是,配置 cloudflare 時出現循環 301 Moved Permanently 跳轉。原因是 cloudflare 默認的 SSL/TLS 設置是 Flexible,這種模式意味着用戶到 cloudflare 是 https,而 cloudflare 到我的服務器卻是 http。但是我的服務器也配置了如果是 http 就重定向到 https。於是就循環請求了。解決辦法是把 cloudflare的 SSL/TLS 設置為 Full (strict) 模式。

nginx 和 cloudflare 設置 301 跳轉都很簡單,這裡寫下用 cloudflare 設置跳轉的方法。在 Page Rule 中新建一條(免費用戶最多可以創建三條)Page Rule。URL matches 填「*ft.wupo.info/*」,接着的兩個下拉框分別選「Forwarding URL」和「301 - Permanent Redirect」,最後一個輸入框填「https://ft.shaman.eu.org/$2」。保存並啟用就可以了。

本文更新於 2020/11/04。

分類
其它

英文單詞 ubiquitous

ubiquitous

[ju:ˈbɪkwɪtəs] adjective

[usually before noun] (formal or humorous) seeming to be everywhere or in several places at the same time; very common(似乎)普遍存在的, 無處不有的

e.g. the ubiquitous shared bicycle. his ubiquitous influence was felt by all the family.

mid 19th cent.: from modern Latin ubiquitas (from Latin ubique 'everywhere', from ubi 'where') + -ous.

分類
软件

VLC 使用小撇步

無論是在 PC 上還是手機上,VLC 都是我默認播放器。作為一款自由開源的跨平台多媒體播放器,我就無需介紹了,這裡記錄一些我在使用中常用的功能和一些問題的解決辦法。

常用快捷鍵

快捷键的配置在 VLC 的 工具 > 偏好設定 > 熱鍵。下面除了「字幕位置」是我修改的,其他都是預定義的快捷鍵。

  • 字幕位置上移 Ctrl+Shift+h
  • 字幕位置下移 Ctrl+Shift+g
  • 從視頻頂端裁剪一個像素 Alt+r
  • 從視頻頂端還原一個像素 Alt+Shift+r
  • 字幕提前 50 毫秒 g
  • 字幕延遲 50 毫秒 h
  • 短程向前跳轉 Alt+Left
  • 中程向前跳轉 Ctrl+Left
  • 下一幀畫面 e

設置 socks 網絡代理

打開 VLC 的 工具 > 偏好設定,然後選擇左下角的「全部」。然後點擊「輸入/編解碼器」,在右側中部即可找到 Socks 代理的配置輸入框,填入格式如 127.0.0.1:4444。

把在線流媒體保存到本地

打開 VLC 的 媒體 > 開啟網絡串流,輸入串流的鏈接。然後點擊「播放」右側的向下指的小三角,選擇轉換。這裡就可以設置要轉換成音頻還是視頻,以及保存的文件位置。如果想邊觀看邊保存,就勾選上「顯示輸出」。最後點「開始」就開始了。

用手機遙控電腦上的 VLC

VLC 開啟遠程控制

打開 VLC 的 工具 > 偏好設定,然後選擇左下角的「全部」。 Click on Tools > Preferences > All(left bottom).

點擊 介面 > 主介面,然後勾選「遠端控制介面」和「Web」。 Click on Interface > Main Interfaces and then check the Remote control interface and Web option.

點擊 介面 > 主介面 > Lua,在「密碼」輸入框中輸入自定義的密碼。 Click on Interface > Main Interfaces > Lua and then enter your password in the Password input box.

重啟 VLC。從瀏覽器訪問 http://127.0.0.1:8080/ ,如果出現「Password for Web interface has not been set.」即代表 VLC 設置成功。Restart VLC.

手機上的設置項

安卓手機下載並安裝 VlcFreemote(根據問題列表所見,VlcFreemote 在安卓 10 似乎有問題,我是安卓 8,運行良好)。 輸入 VLC 所在機器的局域網 IP ,端口是默認 8080 無需改動,按「USE THIS」即可遠程控制 VLC 播放器了。目前能用的功能有:播放/暫停、上一曲/下一曲、快近/快退、音量大小、啟動/退出全屏。

之後使用時按下最近使用過的連接,就可以迅速控制了。

參考自:How to Remote Control VLC

使用 VLC 同時加載兩個字幕

下面方法可能有些繁瑣,效果亦可能不甚理想。如果你像我一樣想要同時播放兩個語言的字幕,也可以通過在線字幕合成工具 Merge two subtitles in different languages 來將兩個語音的字幕合併成一個。

從版本 4 開始,VLC 才開始加入雙字幕支持,所以現在就想使用使用的話需要到 https://nightlies.videolan.org/ 下載測試中的預覽版來體驗。Fedora 安裝 VLC 4 預覽版稍嫌麻煩,步驟如下:

#安裝 snapd
sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
#安裝 VLC 4 預覽版
sudo snap install ./vlc_4.snap --dangerous
#運行 VLC 4 預覽版
snap run vlc

安裝好後打開 偏好設定 > 字幕。把 Dual Subtitles 中的 Align 設置爲第二字幕想要的位置,比如「底部」然後保存。由於是測試版,雙字幕的設置需要用到如下快捷鍵:

  • 切換到第二字幕控制 Ctrl+Shift+v
  • 循环切换字幕 v
  • Cycle subtitle track in reverse order Alt+v
  • Toggle subtitles Shift+v

比如我們現在在同一個文件夾下有一個視頻文件 A.Good.Film.mkv ,以及兩個字幕文件 A.Good.Film.srt 和 A.Good.Film.zh.src 。打開視頻文件,按 v ,切換到字幕軌道 0,應該會自動選擇上面的第一個字幕文件。然後按 Ctrl + Shift + v 會提示「Secondary subtitle control」,這時右鍵選擇第二字幕。最後如果雙字幕沒有出現,可嘗試多按幾次 v 就可以調用出雙字幕了。

VLC 播放(在線)音視頻時卡住的調校嘗試

打開 VLC 的 工具 > 偏好設定,然後選擇左下角的「全部」。

  • 然後點擊『輸入/編解碼器』,在 Advanced 部分的 File Caching、Network Caching 都可以給予雙倍時間 2000。
  • 在左上角搜索欄搜索『FFmpeg』,在 Decoding 部分的 Hardware decoding 設置爲 Disable。Skip the loop filter for H.264 decoding 也可以嘗試設置爲 All。
  • 點擊左側以及設置目錄下的 Video,勾選右側的 Drop late frames 和 Skip frames。
  • 在左上角搜索欄搜索『Video output module』,嘗試修改選項爲 Automatic 以外的選項如 DirectX DirectDraw 或 Open GL video output。

本文更新於 2023/08/29。

分類
软件

分析磁盤空間占用

Fedora 使用 ncdu 查看磁盤空間占用

sudo dnf install ncdu
ncdu
#如果不願安裝軟件,也可使用預裝的 du 命令:
#以文件夾大小排序,顯示最大的15個
du -hsx * | sort -rh | head -15

Android 使用 X-plore

有能力付費者請至谷歌市場下載正版:X-plore File Manager - Apps on Google Play。打開 X-plore文件管理器,點擊工具欄的 「Disk map」即可。

Windows 使用 WinDirStat

WinDirStat 是一款可以運行在多個微軟系統上的具有磁盤使用分析和清理功能的開源軟件。

分類
软件

去中心化的 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 水用來煮粥,如果沒有刻度就街兩碗水應該也行。最後把鍋放入電飯鍋,設置「煮粥」,等待其完成即可。

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

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