2021年6月27日 星期日

tesseract

tesseract 是一套 OCR library 含 command line

CentOS 8 套件安裝法
因為有相依性,需先 enable PowerTools
dnf config-manager --set-enabled powertools
dns -y install tesseract tesseract-langpack-chi_tra tesseract-langpack-chi_sim
(後兩個是繁體及簡體的語言包)

編譯安裝法:
需要較新版的 GCC,請先參考 CentOS upgrade GCC 安裝新版的 GCC
# 切到 GCC9 環境
scl enable devtoolset-9 bash
wget http://www.leptonica.org/source/leptonica-1.81.1.tar.gz
tar zxvf leptonica-1.81.1.tar.gz
cd leptonica-1.81.1
./configure && make && make install
# 安裝編譯 tesseract 需要的圖檔 devel 套件
dnf -y install libtiff-devel libjpeg-devel libpng-devel
git clone https://github.com/tesseract-ocr/tesseract
cd tesseract
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure && make && make install
# 下載語言包
cd /usr/local/share/tessdata
wget https://github.com/tesseract-ocr/tessdata/raw/master/eng.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_tra.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_tra_vert.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim.traineddata
wget https://github.com/tesseract-ocr/tessdata/raw/master/chi_sim_vert.traineddata

2021年6月24日 星期四

Traccar SMS Gateway

Traccar SMS Gateway
這個 Android App 是少數可以把手機建立一個 Web Service,用 HTTP API 去傳送簡訊,
(大部份的應用都是收到簡訊後去 Trigger Webhook)
雖然市面上已經有許多發簡訊的 API 服務,但是無法帶自己的號碼
用這個就可以使用自己的手機批次發送簡訊
在 Gateway Start 服務即可,畫面上會出現一個八碼的 Random API key
然後就可以 用 HTTP API 控制了

官方的「文件」有一些 entry tag,不確定是幹嘛用,
試了一下,把 Authorization: API key 放 Header,BODY 用 JSON,兩個欄位,
to: 電話
message: 簡訊文字
例:
curl -H 'Authorization: 90d8c6b8' -sd'{"to": "09xxxxxxxx","message": "Your Messages"}' http://192.168.0.55:8082
這個 App 還有開源 https://github.com/traccar/traccar-sms-gateway

2021年6月22日 星期二

PHP uniqid() algorithm

uniqid() 是 PHP 內建用取唯一 id 的方法,它是 Time Base,官方不保證唯一,因為時間有可能會因為校時而異動
它組成分成兩部分,前面的部分單算單位是秒,後面的部分(最後5碼)計算單位是微秒(microsecond,10E-6秒)
例如 1624333020.999999
1624333020 十六進位是 60d15adc
999999 十六進位是 f423f
這個時間點的 uniqid() 就是 60d15adcf423f

2021年6月12日 星期六

Linux systemd console autologin

編輯 /usr/lib/systemd/system/getty@.service
把原來的 ExecStart 改成
ExecStart=-/sbin/agetty -a root %I $TERM
-a 表示 autologin
若不想要用 root ,可改用其他 user

單行設定指令
sed -i 's/ExecStart.*/ExecStart=-\/sbin\/agetty -a root %I \$TERM/' /usr/lib/systemd/system/getty@.service

2021年6月8日 星期二

CentOS send hostname to DHCP server

CentOS DHCP client 要使用 hostnamect set-hostname 設定過才會正常送出 DHCP Option (12) Host Name






DNS negative cache

在查詢一個域名時,若當資料不存在,會出現 NXDOMAIN DNS 也會 cache 這個查不到的結果,其預設的 TTL 跟 DNS 及 Zone 的 SOA TTL 有關 例如 BIND 的 max-ncache-ttl 預設是 10800 秒 當 SOA 中的 TTL 小於 ...