![]() |
樂園日記
|
![]() |
這篇算是2020-10-05把樹莓派弄掛的後續處理。
因為是安裝ClamAV的關係,導致系統太忙碌的問題,所以把ClamAV的啟動移除掉,即可。方法就是,找個Linux平台或是在Windows、MACOS下掛載該SD卡,把ClamAV相關的檔案,從掛載的目錄下移除(/etc/systemd/system/multi-user.target.wants),再把該SD卡移回樹莓派,問題就解決了。
![]() |
為了讓ClamAV可以在3310埠上運作,結果把整個樹莓派弄掛了!
還好之前有備份的SD卡,直接把備份的SD換上,不然光是環境設定,大概又要花掉一整天。
只是上次備份後,樹莓派的環境還是有些小變動,還是需要手動把這些變動完成。
![]() |
隨著mail server的架設完成,舊有的論壇功能也隨著恢復起來,能發email是很重要的,因為論壇的身份認證都依賴電子郵件。
雖然PHP Mail函式不支援新一代的電子郵件認證等規格,雖然可以使用PHPMailer來支援新一代的電子郵件服務,但需要改寫程式碼!想抄捷徑,方法就是設定區網,讓區網內可以不需要認證寄信,也就是Open Relay。
郵件伺服器2020設定重點:
這與1995那個年代,只要把DNS伺服器MX搞定,郵件伺服器域名、帳號設定好加上避免Open Relay,多了很多細節。最主要的目的在於避免垃圾郵件,強化管理與安全。
![]() |
PHPMailer 6.1,在中文的使用上有幾點需要注意的,避免亂碼:
這樣利用Gmail來發信,中文就正確無誤了,只不過在Gmail內要先設定為低安全應用程式,才可正確送信!免費的Gmail帳號,每日可發送500封,G Suite的付費帳號每日2000封。如果需要更大的發送數量,可以考慮和Google搭配的Mailgun或其他第三方的服務,像是Sendgrid。如果發送的數量實在龐大,又不想付費的話,那就需要固定IP,把DNS反解設好,自己架Mail Server啦。
![]() |
昨天才剛說Blank Page的問題,今日就發現問題點,排除了!
問題出在php的執行記憶體的大小,用預設值,因為不夠用,要刷新多次後,才能觸發記憶體釋放的動作,把php的執行記憶體往上調,問題就解決了。
當然啦,會發生這樣的問題,另一個因素是直接使用3rd的元件,沒注意到該元件太消耗記憶體。
再加上把error_reporting設為0!因此,發生了什麼樣的錯誤都不知道,只看到一個空白的頁面,這就是Blank Page的原因。
如果資料表龐大,有時候要抓出問題點還真不容易,這時候,就要把所有新增、修改與刪除的資料通通都記錄下來!
只是資料表眾多,欄位眾多,手動寫程式碼來抓,還真的不知道哪年哪月呢?於是,自動產生紀錄資料的的程式碼產生器誕生了。
針對MariaDB或MySQL,只要指定好資料庫的名稱,就會產生對應的紀錄資料庫與所有的程式碼,這樣一來,不管是哪一筆資料被新增、修改或刪除,在紀錄資料庫內都可以看得清清楚楚。
當然,如果您需要Oracle、MS-SQL、或是PostgreSQL類似的紀錄資料庫功能,歡迎來信詢問。
嘗試以ProxyReverse多機的方式,恢復以前舊有的論壇服務。
![]() |
不知道是不是樹莓派計算能量的問題,還是設定檔的問題,總是有Blank Page的問題!
於是,只好把youtubelist移回Apache2,由Apache2來服務。
在資料層就把一些相關的資料邏輯處理完畢,是最直接不過的,比如說,當某個資料表的欄位有更新時,就要把對應的時間欄位也跟著更新一下。
以下是一個MariaDB(MySql)建立觸發器(Trigger)的樣板:
DELIMITER $
CREATE TRIGGER `trgUpdateTableNameAnditsField` AFTER UPDATE ON `theTableName`
FOR EACH ROW BEGIN
UPDATE `theTable` SET `theField` = NOW() WHERE `keyField` = keyFieldValue;
END
$
DELIMITER ;
![]() |
翻譯的字典資料同步自動化,之前因為需要了解各項翻譯資料的準確性,手動同步了好一段時間,今天正式將之自動化。
當然,人工確認翻譯資料的正確性,還是需要的,本項自動化的目的在於降低人工維護多主機的字典資料的繁瑣,無論何時字典檔資料有更新,其他電腦也能隨之自動更新,不需要手動匯出與匯入。
![]() |
Google Cloud 使用 curl 來進行 ftps 檔案上傳時,會發生「NSS錯誤-5938(PR_END_OF_FILE_ERROR)」
解決辦法如下:
sudo yam install gcc
sudo yum install wget
sudo yum install gnutls gnutls-devel libssh2 libssh2-devel
wget https://curl.haxx.se/download/curl-7.54.0.tar.gz
tar -xvzf curl-7.54.0.tar.gz && cd curl-7.54.0/ ./configure --with-gnutls --with-libssh2 --prefix=/usr/local
make
sudo make install
sudo rm /usr/bin/curl
sudo ln -s /usr/local/bin/curl /usr/bin/curl
Python把「共用變數放到同一個檔案」
1.建立一個叫做「dbConfig.py」的檔案,內容如下:
#!/usr/bin/env python3
HOST = "yourComputerIPOrName"
USER = "dbUser"
PASSWORD = "dbPassword"
DATABASE = "dbName"
2.在需要引入上面建立的檔案,可用:
from dbConfig import *
來引入所有在「dbConfig.py」所有的變數,
這種引入的方式,可以直接使用變數名稱。
3.另一種引入的方式,如下:
import dbConfig
但這種方式,在需要使用變數名稱時,需要再加上
dbConfig. 的前綴,就就是變成
dbConfig.HOST
dbConfig.USER
當然,可以使用AS來簡化前綴,如下範例:
import dbConfig as db
要使用變數的名稱,則可簡化為:
db.HOST
db.USER
![]() |
看到螢幕上噴出來的錯誤,才想起目前資料庫的watch code是另外一個頻道的,就是當初測試自動轉錄上傳的頻道!
趕緊修正資料庫的相關欄位和程式碼。
![]() |
EEE64變更網路連線方式。
雲端主機新增一支程式,用來重設上傳失敗的轉錄檔案,若已經重設,則刪除該轉錄檔案。
每次只要雲端主機出問題,手動重新上傳檔案自是免不了,只是每天有上傳額度的限制,需要計算好重傳的檔案數,才不會出問題。檔案數量一多,就變成天天要定時手動重傳!
在這樣的情況下,乾脆寫支程式來克服這個問題。
![]() |
EEE變更網路連線方式,其中一個wifi網卡連線改為有線網路,保持穩定性。
有時候,還是只能用回老方法,才是最穩定的。
![]() |
把 ubuntu 20.04 desktop 當作桌面,發現了一些問題。其中最嚴重的問題,就是使用一段時間後,滑鼠會當掉!
查了資料之後,原來這是藍牙的問題,使用下面指令來修正:
sudo rmmod btusb
sudo modprobe btusb
sudo /etc/init.d/bluetooth start
sudo systemctl enable bluetooth
以上的指令就是把藍芽模組先移除,再重新掛上、重新啟動藍芽的服務並開機時啟動之。
果真,滑鼠再也不當了。
![]() |
ubuntu 20.04 以下列指令安裝音效輸入切換之後,就有聲音了:
sudo apt-add-repository ppa:yktooo/ppa -y && sudo apt-get update && sudo apt-get install indicator-sound-switcher -y
![]() |
樹莓派2B自啟用以來,SSH與XRDP伺服器會掛點,是件很討厭的事情,不過也沒時間去找問題,直到最近。
原來,這個問題在早期的樹莓派上很常見,原因在韌體與核心的搭配。那就更新一下,應該再也不會出現問題了吧!
更新指令參考如下:
sudo apt-get install rpi-udate
sudo rpi-update
sudo shutdown -r now
![]() |
樹莓派4B4G,早在一開始出來的時候,就已經購買,但卻一直沒想好要拿它來做啥,因此就一直放著,一直到最近想要把Youtube的字幕自動化,才把它拿出來。
樹莓派隨著社群廣泛的應用,也不是當年的阿蒙,兩年前的安裝方式,說真的已經不適用!因為官網已經針對三大平台,MacOS、Linux、Windows提供了應用程式,只需下載該應用程式,就可以很容易初始化SD卡,將需要的作業系統寫入,省去了下載第三方應用程式與下指令的瑣事,這是很大的方便。
再者,只要把寫入Raspian的SD卡,加上ssh與wpa_supplicant.conf兩個檔案,就可以使用遠端ssh方式連入,方便度更是大幅度提升,不需要刻意另外找螢幕、鍵盤、滑鼠。
ssh檔案的內容可以是空的,只要SD卡上有ssh這個檔案即可。
以下是的範例檔案:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW
network={
ssid="這邊改成您的無線分享器名稱"
psk="這邊改成該無線分享器的密碼"
key_mgmt=WPA-PSK
}
如果使用5G的頻道,wpa_supplicant.conf範例如下:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=TW
freq_list=5745
network={
ssid="這邊改成您的5G無線分享器名稱"
psk="這邊改成該5G無線分享器的密碼"
key_mgmt=WPA-PSK
}
如果上述的5G頻率與無線分享器不一樣的話,可以先連到非5G的SSID,然後再以下面的指令確定5G頻道的使用頻率:
sudo iw wlan0 scan | grep -A5 'freq: 5'
確認5G的頻率之後,再把freq_list改為上面指令查到的數值。
可以改用USB SSD開機,對於有支援USB3的樹莓派4B來說,不再受限SD卡侷限的空間之外,更提升了存取的效能,對於一些需要效能與空間的應用,像是萃取影片字幕檔的應用,真是太棒了。不過,在轉換SD為SSD開機的過程中,有一點需要注意的就是,寫入開機韌體時,必須要把外接的SSD拔除,特別要注意這一點。
![]() |
最近這幾天發現某台伺服器的CPU負荷竟高達100%,查了查,才發現是因為天氣預報的程式,因為SSL的更新,造成無法連線的問題而懸置!
雖然調整了程式碼,但一直出現 dh key too small 的問題,只好用python重新寫過。因為VSCode對python的cli偵錯很方便,但PHP就沒這麼便利。
好笑的是,在macos與windows下,新寫的python程式碼可以正確運行,但只要換到reaspian上,一樣是dh key too small!
還好python還找得到方法,可以克服dh key too small的問題,請參考https://www.coder.work/article/367421。
![]() |
Apple Vision Framework終於克服一些小細節,可以在MACOS上做文字辨識。
但很可惜的是,目前只支援["en-US"],不過,可以當成另類的車牌辨識的核心喔~(測試車牌圖片來自Google圖片搜尋車牌)
![]() |
這幾天都在測試OCR的方案,像是被視為已經老舊的tesseract(正確性不高,若要實際應用,需要自行訓練與標記),到Google的Vision API(需要花費,前一千次免費,之後每千次,1.5美金),再到Apple的Vision Framework(僅限iOS與MacOS),試圖找出一個正確性高,成本低廉且跨平台的解決方案方案。
![]() |
接下去,一方面要趕著寫影片自動上字幕檔的程式,一方面要與Youtube Data API Quota Team的增額打交道,衝啊~~~
![]() |
昨天深夜,上線新的翻譯模組,因為更新了相依的libraries,反而造成了無法正確上傳的錯誤!而反覆測試的結果,用光了每天上傳的額度。以是之故,停機十來小時,不停機的話,雲端的硬碟空間有限,會把硬碟空間耗盡。沒有考慮擴增硬碟空間的原因是每天上傳的額度是固定的,即使硬碟空間增加,也沒有多餘的額度可以上傳!
![]() |
昨天晚上完成英文和簡體中文標題、敘述的資料,跑Youtube Data API更新,跑著跑著,出現了一連串的Failure,才驚覺API Quota爆了!
查了一下API Cost,Update竟然比Insert還多50個Cost,難怪一下子就把配額用光了。這下又要提出擴增配額的申請了。
算一算,三個頻道如果都要提供英文和簡體中文的話,還需要27000000的配額,比起上次申請的數字,多出好多,不知道是否會通過?如果沒能通過申請的話,要分天來完成的話,約要100天才能全部更新。
上次申請的時候,第八天通過。不知道這次申請,需要花多少天?
拭目以待吧。
![]() |
今天終於把3451個生命電視台使用的字典資料表校對過一遍。
![]() |
讓眼睛休息了一個星期,接下去來做影片自動翻譯的架構。
![]() |
更新到MACOS 10.15.6,
這次更新,估計花費37分鐘,實際上用了31分鐘多一些。連帶XCode也要需要一起更新。
本頁執行共花了: 0.022675037384033秒