如何使用 Python Tkinter 製作 GUI 應用程式入門教學

前言除了 Web 和 Mobile App 之外,桌面應用程式(Desktop Application)也是使用者常使用的應用程式圖形化使用者介面(GUI)。透過 GUI 可以讓一般使用者透過比較直覺的方式來和程式互動(畢竟要讓一般的使用者使用 Command Line 來操作程式是挺難的),也可以讓整個使用者行為更為簡便。許多程式語言都有提供 GUI 的函式庫,讓開發者可以透過常見的元件,例如:按鈕、文字方塊、下拉式選單等方式來設計

Read More...

使用 Prometheus 和 Grafana 打造 Flask Web App 監控預警系統

前言身為一個開發者,當我們部屬一個 Web service 時,不是射後不理,而是需要透過監控預警系統去 monitor server 的運行狀況,並在緊急狀況即時通知相關人員作對應處理。所以透過好的 monitoring/alert system 了解目前 server 硬體系統使用狀況(CPU/Memory usage)和整個 service 的網路 networking 狀況是非常重要的一件事情。若是有經驗的讀者,可能過去曾經使

Read More...

使用 Python 資料分析和視覺化上市櫃公司薪資公開資料

前言 證交所今(28)日在公開資訊觀測站公布上市公司申報之107年度「非擔任主管職務之全時員工薪資」資訊。藉由提升員工薪酬資訊透明度,讓摳門老闆無所遁形。 根據新聞媒體的報導 證交所公布上市公司非主管全時員工薪資,讓我們可以一窺近兩千家(853 + 733)上市櫃公司的薪資水準,也可以看看哪些公司薪資水準相對較低(順便看看各種逗趣的理由?本文 cover 圖即是將低薪公司的理由放入 wordcloud 產生器產生的圖片!),當作我們

Read More...

如何使用 K8S 自動化定期 CronJob 抓網路公開資料

前言有使用 Linux 的讀者就知道,若是有定期需要執行的程式就可以 Crontab 把寫好的 script 透過定期的 scheduler 定期執行節省人力。一般常見的使用範疇就是定期更新檔案資料或是網路爬蟲等。今天我們則是要介紹,如何使用 Kubernetes(k8s) 的 CronJob 來自動化抓取網路公開資料(這邊我們使用政府公開資料的雨量資料 JSON 檔案),我們想要的定期執行程式的效果。好的,那就讓我們開始吧! 環境設

Read More...

如何使用 Python 和 Locust 進行 Load testing 入門教學

前言身為一個開發者在開發完 Web 應用程式時往往會需要透過 Load testing 和 Profiling 評估目前系統的性能和是否需要繼續優化和估算所需的運營的成本並了解系統的性能邊界,以建立高可用、高穩定性的網路服務。目前市面上有許多可以用來進行 Load testing 的工具,例如老牌的 Jemeter、LoadRunner、Apache Bench(ab)、wrk 等。若是你想找一個可以不用操作複雜的 UI/XML 和可

Read More...

如何使用 Python 進行字串格式化

前言在開發應用程式時我們往往會需要把變數進行字串格式化,也就是說把字串中的變數替換成變數值。事實上,在 Python 中有許多方式可以進行,其中最常見的有四種方式(斯斯有三種,但 Python 字串格式化方式竟然有四種!): 舊式字串格式化 新式字串格式化 字串插值 樣板字串 字串插值是在 Python 3.6 之後有支援的方法,若是你的版本是在 Python 3.6 之後的話建議可以使用。若是需要讓使用者可以輸入變數來轉換成字串

Read More...

如何使用 Python 實現 LRU Cache 快取置換機制

前言由於電腦記憶體空間(memory)的限制,無法容納所有資料和文件,所以當有新的文件要被置換進入快取(cache)時,必須根據一定的規則來取代掉適合的文件,這就是所謂的快取文件置換機制。 一般來說常見的快取文件置換機制有: FIFO(First In, First Out)先進先出算法 LFU(Least Frequently Used)最近最不常使用算法 LRU(Least Recently Used)最近最少使用算法 NMRU

Read More...

如何使用 Python 程式操作 Excel 試算表

前言Excel 幾乎是所有職場工作者最常使用的 Office 軟體工具,小至同事間訂便當、飲料,大到進出貨訂單管理,應收應付賬款的財務報表等都有它的身影。在一般工作上,你可能常常需要在不同表單中複製貼上許多的欄位,或是從幾百個列表中挑選幾列依照某些條件來更新試算表內容等。事實上,這些工作很花時間,但實際上卻沒什麼技術含量。你是否曾想過但使用程式語言來加快你的工作效率,減輕瑣碎的重複性無聊工作但又不知道如何開始? 別擔心,這邊我們就要使

Read More...

Nginx + Flask 動態與靜態頁面分離入門教學

前言Nginx(發音:engine x)是一個非同步的 Web 伺服器,也可以用作反向代理,負載平衡器和 HTTP 快取等功能。Flask 則是一個使用 Python 編寫的輕量級 Web 應用框架。 有些讀者可能是學生或是事業剛起步的 startup,往往為了省錢或是開發方便會需要將 web 前後端都放在同一台機器上,本文希望透過簡單範例來建立一個前後端放在同一台 server 的入門教學,其中靜態檔案由 nginx 來負責 se

Read More...

如何在 Windows 打造 Python 開發環境設定基礎入門教學

前言如何設定開發環境應該是每個初學程式設計者的痛(即便是老手有時也會覺得苦惱),尤其當你需要在終端機(terminal)輸入指令(command)來操控你的指令時(好吧,若你完全只走圖形化介面,習慣 GUI 操作就另當別論,但若你有志於往程式設計領域發展,建議還是熟悉一下指令碼)。 要在 Linux、Mac OS 這種屬於類 Unix 系統(指各種 Unix 的衍生系統,而 Unix 指的是一種電腦作業系統,具有多工、多使用者的特色,是

Read More...