樂園日記
相關資料統計表
向量浮屠
大航海時代online手札
2022年1月10日,星期一
12:44:5

最近忙網站上線事宜,酷弟天氣已經出槌多天,剛剛才發現。

修正InsecureRequestWarning: Unverified HTTPS request is being made的錯誤,增加下面程式碼:

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

增加try catch,修正KeyError: 'WindSpeed'。


2022年1月2日,星期日
22:1:27

最近因為要協助備份Youtube頻道的影片,發現下載的速度緩慢,拿出舊的小白來一起下載。

只是,小白跑的是windows xp,一直沒升級,裝上python 3.4.4,想使用pip3 install,結果告知pip的模組太舊了,要升級。可是升級之後,更悲慘的事情發生了,跑出一堆錯誤訊息,應該是python新的語法…只好,從另外一台已經安裝過該模組的python34目錄覆蓋,再使用一些額外的方法,總算讓小白加入下載影片的行列。

Happy New Year.


2021年12月17日,星期五
20:17:27

自11月以後,Youtube API的配額一直不足,經過多達一個多月的調校,問題一直仍沒得到改善!

於是,只好從配額的消耗來著手,暫停某部分節目上傳。之所以選擇暫停早晚課節目的原因,主要是因為來源伺服器不是很穩定,常斷線,造成單一節目有多個上傳檔案,而且也不完整。

本想使用trigger來控制,藉由copyrightLock欄位,寫入Y來控制,但後來的實作,則改成在上傳程式的select語句中,增加條件,追加了title not like '%早課%' and title not like '%晚課%'。

從資料庫的手段變成程式碼的手法,原因是方便性的問題,因為改程式碼比較快。而就意義上來說,資料庫的手段,具有紀錄性意義,把copyrightLock延伸為另類的不上傳,讓此欄位具備了二義性。想起某大廠,在下定決心翻寫整個核心程式碼的經歷,有很多地方就是將以往具備二義甚是多義的欄位,強制分割成不同的欄位,便於日後的統計與分析。


2021年11月28日,星期日
17:39:10

釋出批次圖檔轉JPG格式,並建立相對影像尺寸減半、四分之一、八分之一的檔案,便於日常應用。

img2jpg-resize執行檔的下載網頁

1:27:39

這個年代,連下載自己網站寫的應用程式,都要被瀏覽器質疑有問題!而要回報這個檔案是安全的,還要填隱私權政策!!!

好吧,就多個隱私政策的頁面吧…


2021年11月24日,星期三
20:58:11

今天轉了幾個png的檔案,雖然轉檔的工具蠻多的,但如果每次都要這樣手動轉,還真是辛苦~

於是,用python的pillow函式庫,把這個轉檔的動作批次化處理,可以下一個指令,就把需要的圖檔,轉成jpg、png、webp的格式,而且依照尺寸分門別類地放到子目錄,並且把長寬減半,減半再減半和八分之一的大小,通通轉好,這樣想要使用的時候,直接選用適合的尺寸即可。

這幾支分別是img2jpg-resize.py,img2png-resize.py和img2webp-resize.py,只要把原始圖檔放到ori的目錄下,執行上述三支程式,就會自動建立jpg、png與webp的子目錄,分門別類的轉存。

說起webp,雖然今年Safari號稱支援了這個格式,但測試了一下,還是無法顯示。查資料,說是Partial Support!如此看來,要在網站端使用新一代的影像格式,還是有不少的苦功要做啊~

對於已經支援的瀏覽器,可以直接在img標籤的src直接帶入webp的圖檔,如果遇到不支援的瀏覽器,就要使用img的onerror事件,呼叫jpg或png。需要特別注意的是,為了避免onerror仍然讀不到圖檔而造成無限迴圈的錯誤,最好能使用jquery的one函式包裝處理,如下範例:

$("img").one("error", function(e){
     $(this).attr("src", "default.gif");
});

2021年11月20日,星期六
15:43:3

早些時間,因為把MX Ergo的螺絲都鬆開卻打不開外殼,靠著Google的威力下,找到了iFix的相關資料。

原來裡面有個卡榫,需要用點技巧扳開,才可以打開外殼!

參考網址:Logitech Ergo Mx Disassembly - iFixit Repair Guide

14:2:18

昨天起,Logitech MX Ergo就怪怪的,一直滾的很不順,長達兩年的使用前,把滾輪大力滑一滑的策略失效!

懷疑是沒有帶上驅動程式,結果裝了Options的驅動程式之後,還是怪怪的…懷疑是作業系統的問題,換到MacOS的環境,仍舊是那個鳥樣!

今天想說,把六角螺絲起子拿出來,準備要把Mx Ergo打開清潔,螺絲都鬆開後,才發現根本打不開外殼,裡面好像有啥卡住了!

最後,祭出Google搜尋,查詢 Logitech Mx Ergo Clean,果然就有Youtube的教學影片,啥,只要用一支筆,把滾球凸出即可清潔。

感謝How to Channel,影片連結如下:

How to Clean Logitech Trackball Mouse MX Ergo - YouTube

清潔之後的 Mx Ergo,果真如新買的時候好用。


2021年11月17日,星期三
13:14:15

到外地忙了幾天,結果主機掛了,雖然遠端重啟後,服務大部分都恢復了,但是資料庫的服務一直無法啟動!

今天終於有時間來找這個問題,找了老半天,才忽然想起,前幾天收到的LINE Notify說雲端主機空間不足,意識到應該是硬碟空間用盡的緣故,趕緊把檔案刪一刪,資料庫就可以啟動了。


2021年11月9日,星期二
18:36:49

Youtube Data API配額超量的問題,還是持續發生,只得祭出試算表,算一算這筆帳!

從資料庫拉出相關的上傳、影片標題更新數量,與後台的數值比對後,還真是有莫名其妙的差額!為了避免無資料而誤動作,也修改了雲端的排程,讓每個小時更新兩次影片標題的程式降為一次,也把本地端拉頻道影片清單的程式,由每小時兩次降低到每天一次。

不細算還真不知道,原來之前Google後台的數值還偏低了,難道是要回補平衡?

經過了相關的調整之後,終於計算出來的數值與Google後台的數值較為接近了,雖然還有些誤差,但應該可控制在配額數量內。

繼續比較觀察,期待明天超額問題能解決。


2021年11月7日,星期日
18:35:1

最近這幾天,莫名地用盡Youtube Data API的配額,只能手動把crond停止,然後在指定的時間,再重啟。

等待倒數計時器,手動重啟,別有樂趣,只是忙起來的時候,就……

於是,寫一個簡單的Shell Script,配合nohup來重啟crond,就不怕分身乏術。

以 vi startCrond.sh 建立一個startCrond.sh,內容如下:

#!/usr/bin/bash
sleep 15h
/usr/bin/systemctl start crond

儲存後,以 chmod 755 ./startCrond.sh 變更檔案的相關執行權限,再以 nohup ./startCrond.sh & 背景執行並且登出後仍執行之。

補充說明:

  1. sleep 後面接的15h,表示等15小時。如果需要以分鐘為單位,則把h改為m,如果以天為單位,則使用d,預設為秒,也就是s,如果省略,就是以秒為單位。
  2. /usr/bin/systemctl start crond 為centos系列的方法,如果其他發行的版本,請依該發行版本調整之。

2021年11月6日,星期六
20:40:57

自動排除惡意ip地址,運行一段時間之後,除了微調判斷的條件之外,有時候出現意外的狀況,會把自己ban掉,還要手動下刪除指令,真是很不方便。

於是,增加資料表來記錄動態ip的白名單資料表是必要的,並自動恢復白名單的ip,如此困擾就解決啦~


2021年11月3日,星期三
17:41:30

移機的壞處,尤其是換了不同的作業系統,明明都是Linux,但是就是有不一樣的地方,造成了許多的不方便!

常用的samba server就是一個例子,Raspbian與ubuntu都是debian系列的,但是samba server的權限設定就不通用。

解決方案,詳細可以參考下面的幾篇文章:

https://unix.stackexchange.com/questions/206309/how-to-create-a-samba-share-that-is-writable-from-windows-without-777-permission
How to share apache /var/www using samba server in ubuntu - Server Fault

16:1:0

過去都以網路單介面跑伺服器,上個星期,因為rb3b32g的SD卡壞了,只得移機到rb4b4g250,而這台新的機器上跑了兩個網路介面,預設的情況下,只有一個網路介面能正常回應透過防火牆的網際網路呼叫。

解決這個問題的方法,在於路由表。因為預設的情況下,路由表的metric數值,會影響介面回應外部呼叫後,由哪個介面傳回資料。手動加入兩條metric皆為0的路由後,兩個介面都可以正常服務透過防火牆的Internet呼叫。

以下為參考參考指令:

sudo route add -net default gw 192.168.1.1 netmask 0.0.0.0 dev eth0 metric 0
sudo route add -net default gw 192.168.2.1 netmask 0.0.0.0 dev eth1 metric 0


2021年11月2日,星期二
18:4:27

因為side project緣故,多了一個Google Cloud的帳戶,也就多了一個帳號的配額,這個月起,可以新增支援12個語文,有希望能把Youtube翻譯計畫,提前完成。

原計畫應於2022/05完成,在新帳號的支援下,可提前到2022/03完成。


2021年11月1日,星期一
16:7:1

Google Cloud Translate 支援的語文翻譯,與Youtube支援的,不盡相同,雖然都是Google旗下的,但各自為政。

Youtube Data API也沒有很完整地告知支援的語文項目,只能從其他的實作上得知,認為Google Cloud Translate有支援的語文,Youtube也支援,是造成此次錯誤最大的主因!雖有錯誤訊息,但卻沒告知該語文沒被支援,致使認為是長度的問題,更是推延偵錯時間的癥結。

0:24:7

原來上個月之新增的語言之所以出錯的原因在於Youtube不支援!這個沒被支援的語文是宿霧文,ISO代碼是ceb。

原本預計要新增支援16個語文,因為重複的疏失,加上Youtube不支援的宿霧文,所以只新增了11個,分別是加泰羅尼亞文(ca)、科西嘉文(co)、克羅地亞文(hr)、世界文(eo)、愛沙尼亞文(et)、芬蘭文(fi)、弗里斯蘭文(fy)、加利西亞文(gl)、格魯吉亞文(ka)、古吉拉特文(gu)、海地克里奧爾文(ht),累計支援56個語文。


2021年10月31日,星期日
19:7:55

上個月因為重複翻譯了已經翻譯過的語文,加上放到正式環境執行時出了錯誤,所以上個月沒有公布新的翻譯進度,一直拖到今天,想說,再不處理的話,這個月免費的配額就要浪費了,才趕緊處理一下新的語文翻譯,真是怠慢了…

連同上個月的,新增語言翻譯12個,原本應該是16個的,但因為重複翻譯了四個,所以就不列入。晚一點,整個都執行過沒問題之後,再公布新增支援的語文。


2021年10月28日,星期四
16:32:14

雲端轉錄上傳的問題,今天花了點時間去查,才發現原來是記憶體用盡,連下個指令都很困難,一堆無用的process佔住記憶體,只好將機器關閉後重開。

詭異的是,另一台雲端主機也是一模一樣的情況,也是在重開之後,才恢復正常。

是否應發展自我監視的程式,避免這種情況再度發生呢?


2021年10月27日,星期三
14:25:22

昨天晚上起一直到今天中午前,雲端的上傳一直出現重啟伺服器,上傳失敗的訊息。檢查了伺服器,也找不出問題點…

留個紀錄,等日後再查。


2021年10月19日,星期二
13:31:2

Youtube多國語言翻譯出現問題,原因是因為一個詞沒翻譯到!

以此之故,在SOP增加一條項目,避免這個問題。

11:22:33

Google Play越來越機車,最近又忙著把幾本被下架的電子書,重新上架!

10:11:57

rb4b4g250升級到21.10。

升級後,大致上都沒有問題,只是重新啟動後,wifi連不上,處理的指令如下:
sudo netplan --debug try
sudo netplay --debug generate
sudo netplan --debug apply

這時候,再以 sudo ifconfig 來檢查,則可以看到已經連上原設定的wifi。


2021年10月15日,星期五
17:22:20

運動時除了流失水分,電解質也隨著汗水流失,例如:鈉、鉀離子。 來一杯含電解質的飲品,迅速補充水分及電解質。

配方: 水 500cc 砂糖 10~20g 鹽 1~2g


2021年10月14日,星期四
11:29:56

BadIPs增加ipfw.sh,支援MacOS;firewall-cmd.sh,支援centos。這一次壓縮檔內的檔案,已經支援作業系統換行符號的不同,不需要手動變更換行符號。

Windows下,請以系統管理員開啟命令列視窗,把BadIPs.7z下在解壓縮之後,執行netsh-advfirewall或點選netsh-advfirewall.bat,再按滑鼠右鍵,選擇系統管理員執行。

MacOS下,解壓縮之後,請先執行chmod 755 ipfw.sh,再執行ipfw.sh。

Linux下,解壓縮後,請先執行chmod 755 *.sh,再視系統情況,執行iptables.sh、ufw-dey.sh、ufw-reject.sh或firewall-cmd.sh(擇一執行即可)。

如果僅使用於網頁伺服器,Apache則可把.htaccess放到對應的目錄下,Nginx則是把badips.conf放到/etc/nginx/sites-enabled目錄下,重啟nginx。


2021年10月13日,星期三
21:12:44

這幾天來,來自他國駭客的攻擊頻率增加,搞得伺服器與路由器相當不穩定!因此,寫了反制的程式,自動把這些IP通通Ban掉!

您也可以下載這些BadIPs,約6253筆。請依照平台,執行對應的批次檔或是Shell Script,將這些IP加到防火牆的黑名單。


2021年10月5日,星期二
17:52:49

eee、eee64、MarioW10HLemel1、MarioW10和MacbookAir的Windows 10都更新為21H1。

其中比較需要說明的是eee、MarioW10HLemel1、MarioW10,這三台都是32位元,之前都無法執行安全更新,但這次卻成功地更新。


2021年8月30日,星期一
23:30:21

先把欄位長度加長到150,然後完成ro(羅馬尼亞文)、sq(阿爾巴尼亞文)、am(阿姆哈拉文)、hy(亞美尼亞文)、az(阿塞拜疆文)、eu(巴斯克文)、bs(波斯尼亞文)和bg(保加利亞文)的支援,累計共支援45個語文。


2021年8月1日,星期日
13:20:10

完成mn(蒙古文)、da(丹麥文)、el(希臘文)、hi(印地文)、hu(匈牙利文)、cs(捷克文)、af(南非文)、is(冰島文)的支援,累計共支援37個語文。這次也沒例外,欄位長度都加長到150。


2021年7月5日,星期一
6:35:16

降低伺服器端的負載,計數器改用前端繪圖,後端只負責送出統計人數。

過往的日記

本頁執行共花了: 0.44706296920776秒