包含標籤 w3HexSchool 的文章

Feedly —— 用 RSS 訂閱來主動篩選資訊吧

「你看,我認為人的腦子本來就像一間空空的小閣樓,應該有選擇地把傢俱放進去,傻瓜才會把他見到的所有破爛一古腦兒的裝進去。這樣一來,那些對他有用的知識反而被擠了出來;或者,最多不過是和許多其他的東西摻雜在一起,在取用的時候也會很困難。所以一個會工作的人,在要把一些東西裝進他那間小閣樓似的頭腦中的時候,確實是非常小心謹慎的。」

  ——《福爾摩斯探案記:血字的研究》

在咱們寫程式這行中,幾乎所有人都必須要在網路上找尋資料;而就算非這一行的朋友們,也會在網路上多方攝取資源。隨著時間的累積,都會開始有一份列表,諸如一些崇拜的大神或是固定追蹤的部落格,又或是文風比較喜歡、素質感覺比較高的新聞或評論等等。

然而列表越來越長,就算加到書籤也總不能沒事就逛一大圈,也常常逛到不知道到底在幹嘛囧。因此把多個資訊來源集中起來整理就成了面對資訊爆炸的關鍵一步。

Feedly 就是一個協助資訊來源管理的工具,可以很方便地把不同訂閱來源整理在一起,例如你可能追隨了五六個大神的部落格,只要這些大神都有提供 RSS 訂閱,Feedly 就會將大神更新的文章收集到平台上。

每天只需要上去 Feedly 看一下有沒有哪位大神更新,就可以化主動為被動,穩定接收新資訊。並且由於集中管理的關係,也可以檢視是否有哪個資料來源,如新聞網站,實際上更新的文章並不太合你胃口,或是哪些已經停止更新了,就可以進行剪枝的動作,建立自己的篩選機制。

……

閱讀全文


EPPlus —— 輕鬆處理 Excel

前陣子工作需要匯出一些資料表,因此用到了 EPPlus 這套工具來把資料匯出成 Excel。由於這需求似乎會挺常遇到的,決定記一下。

目標:稍微紀錄一下這次碰到 EPPlus 的用法。

EPPlus 是在 .NET Framework 或 .NET Core 上提供控制 Excel 的元件,操作簡單好懂,當有需要在網頁上讓人將表格資料下載成 Excel 的功能時就可以試著使用。常常一併被提起的還有另一個一樣老牌的相似功能元件 NPOI,不過我個人只用過 EPPlus 便不再贅述。關於更詳細的介紹,可以參閱黑暗執行緒的這篇 比 NPOI 更討喜的 Excel 元件 - EPPlus!,儘管是有些久遠的文章但仍能迅速了解 EEplus 的賣點和差異。

我在使用 EPPlus 時主要的參考來自於 EPPlus 的 Wiki,每個功能都有說明及範例,同時也有範例專案可以下載,寫得相當詳細。另外還找了如 導出 Excel 之 Epplus 使用教程 - Wico’s Blog使用 EPPLUS 操控 Excel - 碼農的學習日誌 這些有逐步說明的文章,在此感謝。

……

閱讀全文


我要訂便當 (3): 用 Python + Line Notify 傳送通知

前情提要:

我要訂便當(1) —— 用 Python + Selenium 控制瀏覽器取得訂單 中,我們嘗試了用 Selenium 控制瀏覽器去取回訂便當團購網的訂單內容

而在 我要訂便當(2) —— 用 Python + Sqlite 儲存訂單 中,我們使用 Sqlite 達到將訂單儲存起來以判斷是否有新的訂單,因此這邊的下一步就是需要進行通知。

目標:使用 Line Notify,當有新訂單的時候就發送通知

Line Notify 是 Line 上面的通知服務,不像 Line@ 一樣可以有品牌有互動等等,Line Notify 純粹就是訊息通知;但同時對比 Line@ 最近吵得沸沸揚揚的收費和大量跳槽,Line Notify 則是免費的服務。

Line Notify 的運作上分為發送訊息和接受訊息。當我們使用 Line 帳號申請 Line Notify 的服務後就可以得到一個 Access Token,藉由這組 Access Token 就能夠讓我們的程式和服務去發送通知。這些通知會由一個叫做 LINE Notify 的官方帳號發送給有訂閱這個通知的人。

基於這個工作原理,像是需要經營品牌的服務就不太適合 Line Notify,反之像是伺服器斷線、設備超載等等這些個人通知性質比較高的服務就很適合使用 Line Notify。這點從 Line Notify 網頁 下方的示意圖也可以略知一二。

當然像我們這次的需求是「如果有新的團購便當 就 通知我」,相當符合使用場景,因此這邊就嘗試使用看看並記錄下來。

如果需要更多 Line Notify 的說明,保哥的這篇 上手 LINE Notify 不求人:一行代碼都不用寫的推播通知方法 介紹的更為完整,推薦參閱。當然,也可以閱讀 Line Notify 官方文件。那麼,我們開始吧~

……

閱讀全文


Visual studio 環境設定 —— 字型、套件、快捷鍵

目標:整理一下自己用的字型、插件和快捷鍵

今天在工作時寫到一半突然藍屏,重開機之後俺的地表最強編譯器 Visual Studio 整個就開始鬧脾氣,打開專案整排都是 Error,連 System.Object 都找不到,差點往生。還好用了修復功能之後一切恢復正常,但是載入的插件和一些個人設定就這樣重置了……

為了之後可能還會遇到相同的事情,這邊就先將平常的 Visual Studio 環境用到的設定做一份紀錄,之後遇到新插件或是什麼功能也可以回來更新這篇文,如此一來下次又被洗白的時候就可以回來參考了。

這邊主要會記錄三個部分,並隨時可能更新。主要是字型、使用的插件以及常用的快捷鍵。

不過我的 Visual Studio 也被洗白了所以這篇會跟著找回失落插件的歷程慢慢補上QQ

字型

字型部分必定、絕對要使用等寬字型,這是必要的前提也是絕對的共識,畢竟你不會希望有什麼神秘空白,或是推個版就排版大炸裂之類的。

推薦先參閱 換個好字型讓程式開發有效率

(2021/1/27) 補充:字型也可以看 devfonts 。裡面直接放了超多 Coding 常用字型,也可以貼上 Code 直接進行比較,相當貼心。想逛一下挑個順眼字型的朋友直接試試唄。

Consolas

內建就有的字體,個人認為在不想另外下載字體的時候是相當優質的選擇。

看起來粗粗圓圓的很放鬆。

FiraCode

FiraCode,整體看起來就是乾淨優雅,尤其是連字能使得整個 Code 更有滑順的感覺,十分推薦。

然而,FiraCode 雖然陪伴我一段不短的時間,但還是有一個致命的缺陷:不支援中文!

於是後來我基本上都使用下面介紹的這款

更紗黑體

更紗黑體 除了同樣支援連字以外,更支援多國語系。例如繁中就是有標註 TC 的字形,看見中英文都套用上去就是一陣舒服。是現在我的主力。

至於不想用等寬字體的朋友,都看到這裡了,沒關係。下面這套推薦給你們

Ink Free

就是這麼直接!這麼舒服!如果你的同事要過來 Code Review,不要猶豫字體直接換下去!

……

閱讀全文


SikuliX —— 針對圖形介面寫自動化腳本的小幫手

最近因緣際會下開始玩一些自動化測試的小工具,發現即使不是用在正規的測試時也相當實用,畢竟我們這行能讓電腦自動幫我們省事就是一種樂趣嘛。正巧這禮拜比較忙,無法準時推出訂便當系列的續集,因此決定直接紀錄一下試玩 Sikulix 的過程,以後有需要自動化的時候也方便回來參考。

Sikulix 是一款針對圖形介面編寫腳本達到自動操作的軟體,操作上相當方便。主要是將目標的圖示等畫面擷取下來,再編寫程式對目標進行操作。它編寫腳本時使用的語言是 Jython —— 用 Java 實現的 Python,關於 Jython 的基本操作可以參見 Wiki 教程:Jyhton,對於「實現 Python?」這句話感到疑惑的朋友可以參見 知乎:各種 Python 實現的簡單介绍與比較

此外,本篇對於 Sikulix 的參考主要來自於【測試】圖形化的自動測試 Sikuli / SikuliX 的相關技巧以及 Sikulix 圖形辨識自動化測試開發工具兩篇,特此感謝。

……

閱讀全文


我要訂便當 (2): 用 Python + Sqlite 儲存訂單

前情回顧:上一集在 我要訂便當(1) —— 用 Python + Selenium 控制瀏覽器取得訂單 中,我們藉由自動化套件 Selenium 控制 Chrome 成功從訂便當網站裡取得訂單資訊了。但只能夠取得現在的訂單,和原本有新訂單的時候才通知的目標仍然有點差距,那麼,如何判斷有沒有新訂單呢?只要和上一次讀取時的訂單相比就能知道了。

目標:將訂單儲存起來,判斷有沒有新訂單。

這一篇主要的做法主要參考自 大數軟體 - 如何透過 Line 發送最新一集的漫畫 中,關於如何判斷是否有最新一集漫畫的部分。這系列的影片步驟明瞭,說明直接,同時標題也很對我胃口(我就喜歡把工具拿來生活周遭玩的感覺),因此這邊也推薦一下,有興趣的可以去看看。

回歸正題,這篇的第一部分就是要使用 Sqlite 將抓到的訂單儲存起來。Sqlite 顧名思義就是 SQL + Lite 的感覺,主打小巧輕便。它會將資料儲存在一個檔案中,並且支援精簡的 SQL 指令,可以說是相當方便。

在 Python 要對 Sqlite 做操作主要是藉由 sqlite3 這個包,因此在接下來的步驟前,請先安裝這個包。關於 Sqlite3 的基本操作,可以參閱 菜鳥教程的 SQLite - Python 教學。

……

閱讀全文


我要訂便當 (1): 用 Python + Selenium 控制瀏覽器取得訂單

2024.10 更新: Line Notify 將於 2025 年 3 月停止服務(LINE Notify 結束服務公告),有看到這篇的朋朋請選擇一組新的通知服務來串吧 QQ

前言:

這是參加六角鼠年全馬的第一篇,主要是希望能夠養成寫部落格的習慣。由於我本身並沒有主要技能,因此這次參賽文章會以我最近玩的玩具、使用的套件或是遇到的問題做紀錄。

希望能夠派上用場。

目標:使用 PythonSelenium 連線到訂便當網站,自動輸入帳號密碼登入後,取回網站上的訂單資訊

(2020/12/4) 更新: 由於訂便當網站改版,所以程式碼已經不能照抄了。但有興趣的朋友還是能自己摸索做點變動,也能夠照常進行喔,加油~

最近在公司的時候有個莫大的煩惱,就是關於辦公室團購這回事兒。現在待著的公司主要是從 Dinbendon 這套系統來揪團購,舉凡品客、火鍋等都在上面訂過,據我觀察最受歡迎出現最多次的當屬雞排了。煩惱就在於,每次都會錯過雞排的團購,光在辦公室聞著四面八方傳來的雞排香味,就令人無法忍受!因此趁著這個機會,來嘗試能不能像之前的 PTT 一樣來弄出一個通知,順便玩玩最近看到的工具。這系列的文章會分成多個部分,主要是以使用的工具來分集。

由於在從團購網取得訂單的過程中需要跟網頁進行互動,因此這次要使用的工具是 Selenium

Selenium 是一個對網頁做自動化測試的工具,但我個人比較常在爬蟲的時候用到XD。它能夠經由腳本或錄製的方式對瀏覽器進行操作,並且也支援相當多語言可以使用,例如我同事便使用 C# 和 Hangfire 來完成訂便當的目標(對,這麼無聊的人不只我一個),而我則用相對比較熟悉的 Python 來實作。

……

閱讀全文