VitaBox AD

2023年9月9日 星期六

[MySQL]同一張資料表的日期欄位相減_派生表(dervied table)的應用

 以往對於MySQL數據庫的應用,大多是基本的增刪改查步驟,因此MySQL大多停留在基本語法階段。然而在實際的數據應用上,若能從數據庫直接運算和抽取運算結果,同時不需要在MySQL中額外建立一個實體表,再好不過。

在MySQL中,虛擬表可符合上述需求,其中虛擬表包含臨時表(temporary table)、派生表(derived table)等等。臨時表的語法需注意嵌入以CREAT TEMPORARY TABLE...為開頭;派生表類似臨時表,語法為在SELECT...FROM中嵌入子查詢語句,同時須注意使用派生表必須具有別名,避免MySQL報錯。

2023年9月2日 星期六

[C#]MDI父窗體新增背景圖片,並隨父窗體縮放

在C#的人機介面應用,多重文件介面(MDI, Multiple-Document Interface)是一個常用的容器,在表單屬性中,將IsMdiContainer設定為true即可生成容器。

然而,生成容器後,父窗體背景的預設值為灰色,在人機介面的視覺效果,實在不親民。因此如何利用Resources.resx新增背景圖片資源,並在程式碼中調用該背景圖片,同時該背景圖片可隨著父窗體縮放,為本文主題。

2023年8月20日 星期日

[Python]視窗軟件的自動化測試工具_pyautogui


軟件測試是確認軟件質量的重要流程之一,一般藉由撰寫自動化測試程序來實現。視窗程式的自動化測試原理也很容易,其利用螢幕像素點作為定位參考,並以程式碼使滑鼠和鍵盤做動,如點擊或輸入文字等動作,使其可模擬人類操作視窗程式,最後自動化執行上千次或上萬次,以確保程式的可靠性。

2023年8月18日 星期五

[Open-source tool] 可搭配PHP和SQL的表單開源工具_Form tools(2):Add Form by External Direct Type

可搭配PHP和SQL的表單開源工具_Form tools(2):Add Form by External Direct Type

延續<[Open-source tool] 可搭配PHP和SQL的表單開源工具_Form tools(1):簡介和建置>一文,完成建置後,接著是在Form tools管理後台內新增表單(Add Form),方便管理不同的回填表單。新增表單分別有Internal, External和Form Builder三種型態供挑選,同時External又可區分為Direct和Code兩種方式,其中Direct是以指向Form tools內process.php的方式進行; Code則是以Form tools API方式引入。由於External方式較為彈性且靈活,本文以External Direct Type來建立表單,同時以報名表網頁為範例來測試。

2023年8月17日 星期四

[Open-source tool] 可搭配PHP和SQL的表單開源工具_Form tools(1):簡介和建置

可搭配PHP和SQL的表單開源工具_Form tools(1):簡介和建置

Form tools是一套可搭配PHP和SQL的表單開源工具,可讓開發者靈活運用,同時其有數個表單模板和應用模組供挑選,方便且彈性。Form tools已開發超過20年,為不同領域的需求者或開發者提供一個自由和開放的平台,使他們可建構自定義的數據表單和格式,並透過網站發布,以及在Form tools管理後台或者MySQL中取得回填表單。另外,可藉由Form tools管理後台設定的資料可視化模組(Data   Visualization Module),讓需求者可實時監看和管理回填表單的狀態,如下兩圖所示。看到這裡,是不是迫不及待想玩玩這個開源工具了呢?  

2023年8月6日 星期日

[LabVIEW]圖像內的物件計算_Count objects

[LabVIEW]圖像內的物件計算_Count objects


NI雖然是以賣硬件為主的公司,但其在軟件(LabVIEW)的著墨也相當深厚,尤其是各類應用模組的更新速度和對應功能。 每每不經意地碰觸到新版本的LabVIEW,都會不由自主地翻閱和嘗試新增模組。

本文藉由兩個模組串接簡易製作一支圖像計數程式,兩個模組分別為<IMAQ Count Objects>和<IMAQ ExtractSingleColorPlane>,流程架構為"讀取圖像"->"圖像格式轉換"->"計算圖像內的物件個數",其中"圖像格式轉換"由<IMAQ ExtractSingleColorPlane>將32bit圖像轉成8bit圖像,再交由<IMAQ Count Objects>執行"計算圖像內的物件個數"。

2023年7月30日 星期日

[Raspberry Pi]如何用VNC遠端控制樹莓派(Ubuntu desktop 23.04)?

如何用VNC遠端控制樹莓派(Ubuntu desktop 23.04)?

之前曾利用VMware探索CentOS,熟悉Linux操作系統的指令和配置運作方式,後來在樹莓派價格飛漲的時期,遇到貴人贈送Raspberry Pi 4 model B / 8GB,這下工具到位了,索性跳過樹莓派官方系統(Raspberry Pi OS),直接裝起Ubuntu做實機測試和應用。

當時利用Ubuntu 22.04做了些簡單的應用,包含配置Apache和MySQL等等伺服器,並讓使用者在BS架構(Bowser-server)下,可用網頁簡易操作開發版並取得感測器數據。近期打算用樹莓派做一個通信協定的模擬數據測試,其在開關機的過程出現死當,剛好可以重做映像檔,試試Ubuntu 23.04。

[Linux]如何配置定期任務腳本,並將執行結果寄到外部郵箱? (下)

 ​延續[Linux]如何配置定期任務腳本,並將執行結果寄到外部郵箱? (上)文章,當了解任務腳本和定期任務的設置後,接續了解該如何使任務執行結果自動寄到外部信箱,讓用戶掌握任務執行狀態。

在Linux中,mailx 是配置郵件的服務,若無該服務,可用yum install mailx -y來安裝。安裝後,使用vim /etc/mail.rc 編輯,將下列的配置指令新增到mail.rc文件的末段。

2023年7月22日 星期六

[Linux]如何配置定期任務腳本,並將執行結果寄到外部郵箱? (上)

在Linux系統中,cron是用於定期執行任務的服務,其中crontab是配置定期任務的管理命令。關於定期執行任務,cron提供系統級和用戶級的配置服務,說明如下:

1.系統級:常用於備份系統數據或是清除系統緩存文件等週期性任務。系統級的最小運作週期是以小時為單位,可將任務腳本置於/etc/cron.hourly路徑中定時執行。另外,相較於用戶級,系統級可避免某個應執行任務被錯過。

2.用戶級:在Linux的不同用戶可依自行需求,設置週期性任務,如每天上午8:00啟動MySQL服務器並於晚上12:00關閉MySQL服務器,或者每三個小時執行一次Python程序。用戶級的最小運作週期是可達到分鐘為單位。

2023年6月22日 星期四

[Excel VBA]如何批量產出QRcode?


QRcode常應用於產品上,不論是為了控管產品工序節點、或是控管產品售後質量,甚至是為了觸及更多消費者的行銷推廣活動。然而,QRcode標籤的產出往往受制於標籤設備的應用程式(當然也有不少方式可以解,例如透過DLL調用),因此經資料查找,可藉由API接口網址來生成,如此一來,方便許多。

2023年6月4日 星期日

[書籍]思考的框架

 圖片來源:博客來書店


《思考的框架》是一本極具啟發性和實用性的書籍,它以系統性和綜合性的方式引導讀者運用跨學科思維來解決問題和拓展思維視野。作者巧妙地整合了來自不同領域的思想家和學者的觀點,從心理學到經濟學,從哲學到科學等,為我們打開了一扇通往智慧和創造力的大門。

2023年5月12日 星期五

[Python]Pipenv虛擬環境的嘗試與Bug解除

 


项目背景:

原項目經打包後,執行檔(.exe)過於龐大,經解讀網路資料後,在pipenv虛擬環境打包可有效縮小執行檔的大小。原因也易理解,因在pipenv中的安裝包可視該項目導入的包需求來安裝,可降低其他無關的安裝包一併被打包成執行檔,換言之,可將pipenv視為一個迷你版的python作業環境。

[Python]Debug for “IndexError: list index out of range“ error message

 這算是debug代碼的紀錄,只求此次碰過的坑,下次可以繞道而過,紀錄,也供分享。

下列兩個簡單的代碼段都會看到IndexError: list index out of range錯誤訊息,其實問題來自於data1[5]和data2[0]無法被print出來,原因是data1是一個1~5的list,而其序號是由0開始計數,即data1[0]=1....data1[4]=5,所以找不到data1[5]。以此類推,data2是一個empty list,自然連data2[0]都沒有元素。

2023年4月23日 星期日

[Excel VBA]ListView和真偽亂數的應用_Pickup


因應業務需求,簡易做一個pickup的VBA介面程式,供使用者易於操作。

撰寫該程式過程中,個人認為有兩個重點,分別為ListView視窗指令和VBA中的真偽亂數(Randomize and Rnd),一併紀錄,也供分享。