湊整數實作思路與方法

前陣子在嘖嘖看到「湊整數」功能,比如結帳時 1359 元,按下湊整數按鈕後會變成 1400 元,這其實是個蠻有趣的功能,但實作時才發現湊整數並不好做,有很多非技術面的顧慮,這邊就紀錄我在實作所遇到的問題、過程以及最後的解法吧!

繼續閱讀 湊整數實作思路與方法

Ngrok – 讓本機也可以開發 webhook 免部署環境的神器

Ngrok 是後端開發者必備的神器,每次在本機 localhost 開發網站時,遇到 webhook、API Callback、OAuth 都會很頭痛,以之前開發 Mandrill Webhook 接收開信、發信事件為例,因為要設定網址在 Mandrill 後台才能測試,所以程式寫完後要上傳到伺服器才能知道結果,對於開發速度會造成蠻大的影響,而 Ngrok 就是為了解決這樣的問題而誕生!

繼續閱讀 Ngrok – 讓本機也可以開發 webhook 免部署環境的神器

覺得輸入檔案路徑很麻煩嗎? 讓 Sublime Text Package – AutoFileName 幫你解決問題!

在寫程式時最討厭的事情,輸入檔案路徑絕對可以排上前幾名,每次要輸入檔案路徑,例如在 HTML 裡面載入 JS、CSS、或是用 Python 開啟檔案時,都要切換視窗到 Finder 去複製檔案名稱,但如果你跟我一樣是 Sublime Text 愛好者,用 Sublime Text 打遍各種程式語言,那麼,讓 AutoFileName 來當你的好幫手吧!

繼續閱讀 覺得輸入檔案路徑很麻煩嗎? 讓 Sublime Text Package – AutoFileName 幫你解決問題!

Siege – HTTP 網站壓力測試好幫手

身為一個後端工程師,偶爾想幫網站做一下壓力測試也沒什麼好意外的,透過壓力測試我們可以了解伺服器架構的穩定度,以及在某種層面上觀察程式的效能,常見的工具有 ab、jMeter 等等,我想應該沒有人是選擇用人工來做壓力測試的吧(抖),今天要跟大家介紹 Siege,、它是個功能蠻完善但又簡單的 HTTP 壓力測試工具,用命令列的方式執行,透過 Siege 可以幫助你測試網站、API 的負載能力,但也要注意效能測試是很多層面的事情,並非壓力測試通過就萬無一失哦!

繼續閱讀 Siege – HTTP 網站壓力測試好幫手

如何測試網站是否成功設定 CORS

透過 Cross-Origin Resource Sharing(以下簡稱 CORS)的設定可以讓 JavaScript 突破瀏覽器同源政策,存取不同網域的資源(API),但每次設定完 CORS 都很頭痛要如何判斷伺服器真的有設定成功,因為有時候瀏覽器針對 CORS 會做快取,導致伺服器設定無誤,但不管你怎麼重新整理網頁都失敗的現象。這邊教大家用 cURL 直接檢視 header 是否有啟用 CORS 囉!

繼續閱讀 如何測試網站是否成功設定 CORS

JavaScript Page Load、Focus、UnFocus、Exit Event

用 JavaScript 記錄使用者何時進入網頁我想大家都會,但你有想過如何判斷使用者「關閉」網頁嗎? 甚至現在的瀏覽器都是用 Tab 的形式呈現多個網頁,有沒有可能使用者其實是在看別人的網頁,而你的頁面只是掛著呢? 例如 Youtube 就常遇到這問題,使用者把頁面放著聽歌,但實際上卻是在看 Facebook…。

今天這邊簡單記錄用 JS 頁面的載入、關閉事件,以及進入頁面(focus)、離開頁面(unfocus)事件,透過這些事件,可以記錄使用者的操作狀況供分析,甚至是當使用者跳離網頁時停止播放音樂等行為都可以達成。

繼續閱讀 JavaScript Page Load、Focus、UnFocus、Exit Event

Python Global Exception Handler

一般來說例外處理不會是全域性質的,因為當我們將例外處理套用到全域時,我們很難確認問題發生在哪裡並處理,但少數情況下我們會需要撰寫出這樣的程式碼,以這次為例,我用 Python 撰寫程式去處理 webhook,但因為伺服器那邊送來的資訊太多樣化,我需要在將任何例外發生的時候,能夠把當環境資料印出來,方便事後除錯,這種時候就確實該使用 Global Exception Hook 的技巧。

繼續閱讀 Python Global Exception Handler

Mac OS 螢幕截圖快捷鍵、格式與儲存位置設定

我喜歡使用 Mac 的其中一個原因,就是它本身內建了許多好用的功能,例如螢幕截圖、圖片編輯等等,雖然 Windows 也有內建這些功能,但實在是雞肋的很,最後還是需要去安裝一堆應用程式;今天這邊要告訴你,其實 Mac OS 已經內建很強大的螢幕截圖功能囉! 甚至可以設定截圖後的儲存位置、格式等等!

繼續閱讀 Mac OS 螢幕截圖快捷鍵、格式與儲存位置設定

如何安裝未經驗證的應用程式到 macOS Sierra

有時當我們安裝應用程式到 Mac OS 時,會遇到系統提示「無法打開 OOO 因為它來自未未識別的開發者」,過去我們都知道,只要到系統偏好設定的「安全性與隱私」設定允許任何來源下載的 App 即可,但在 macOS Sierra 之後,這個「任何來源」的選項卻神秘消失了! 其實,是 Apple 為了避免使用者安裝到惡意程式,所以將這個選項隱藏起來,但事實上並非未經驗證的應用程式就是惡意程式,很多好用的 App 因為某些原因不被 Apple 認證,例如某些 App 使用到系統權限,或是開發者沒有購買開發方案(因為要錢阿!!!)就不會被 Apple 認證,但只因為這樣就不讓我們使用它說不過去吧!

繼續閱讀 如何安裝未經驗證的應用程式到 macOS Sierra

AES Encrypt/Decrypt File on Mac OS

當你要透過 Facebook、Email 傳送機密性較高的資料時,例如 Google API Token、公司年度帳務等資料時,你真的信任這些網路服務嗎?就我來說我是不信任的,因為有太多的可能性,從被駭客攻擊到該公司內控不佳導致員工可以檢視客戶資料,種種的可能性讓我其實不太敢把機密資料放在網際網路上傳送,但現在這時代,不透過 Email、Facebook Messenger 這些網路服務傳送資料幾乎不可能,這時候你可以選擇使用 AES 把檔案加密,並透過你信任的管道把密碼告知對方,例如電話、實體溝通等等,或最起碼透過不同管道傳送密碼來降低被一網打盡的風險。

繼續閱讀 AES Encrypt/Decrypt File on Mac OS