GitHub API Note

這幾天因為開發 Dashboard 的關係,接觸了 Trello 和 GitHub 的 API,把一些資訊整理起來,如果你也有GitHub API 的使用需求,可以來讀讀這篇文章。GitHub 也是採用 RESTful HTTP API 的形式,開發起來十分簡單,對於有 HTTP API 串接經驗的人更是好上手;GitHub API 算是我看過數一數二的 API Friendly,文件十分好理解不說,API 也提供很完整的參數供選擇,甚至未來還會提供 GraphQL API,真是令人期待!

繼續閱讀 GitHub API Note

Trello API Note

今天因為在開發公司 Dashboard 的關係,需要寫程式去計算每天的開發點數,讓 Dashboard 能夠呈現每個月的開發點數變化,所以玩了 Trello API,簡單筆記在這裡。 前情提要,我們部門使用 Scrum 的點數方式來評估開發進度,幫每個 Issue 設定一個難度點數,搭配 Trello Scrum 外掛使用。

繼續閱讀 Trello API Note

bash: warning: setlocale: LC_ALL: cannot change locale

用 SSH 登入遠端伺服器時,看到「-bash: warning: setlocale: LC_ALL: cannot change locale」的錯誤訊息嗎? 會遇到它是因為 SSH 連線上遠端主機時,會自動將本機的 LC_* 變數(locale)傳送一份到遠端主機,如果伺服器上不支援你指定的語系,就會出現「-bash: warning: setlocale: LC_ALL: cannot change locale」錯誤啦!

繼續閱讀 bash: warning: setlocale: LC_ALL: cannot change locale

Python 3 在 Windows 命令提示字元輸出時遇到 CP950 錯誤

今天在教學弟妹寫程式時,用 Python 印出一段中文字到命令提示字元,卻遇到「UnicodeEncodeError: ‘cp950’ codec can’t encode character」這個錯誤,嘗試了各種方法都無法解決,最後爬了文章才搞懂是怎麼回事。

看到這段錯誤,有經驗的開發者直覺就會認定是字串裡面有特殊字元,立馬給它加上 ignore 參數卻沒有效果,我遇到的情況檢查後發現是一個日文字,但眾所皆知 Python 3 預設使用 Unicode 字串,不應該會有無法輸出的問題才對,又不是萬惡的 Big5…

繼續閱讀 Python 3 在 Windows 命令提示字元輸出時遇到 CP950 錯誤

解決 HTML Anchor 內文被選單遮住的問題

HTML 的 Anchor 錨點功能十分方便,當網頁過長時可以透過 Anchor 讓訪客快速的移到指定段落,這樣的手法在許多技術文件、部落格都有出現,如果你看到類似 https://coder.tw/?p=123#section1 的網址就是應用 HTML Anchor 的特性,這樣的特性雖然方便卻也帶來一些問題,最常見因為網頁最上方有浮動選單,當訪客點擊 Anchor 連結進到網頁後,雖然瀏覽器有自動捲到指定章節,但卻有部分文字被選單遮住,我始終很煩惱這問題,今天恰好在閱讀 Facebook 技術文件時發現他們的解法蠻不錯的。

繼續閱讀 解決 HTML Anchor 內文被選單遮住的問題

Google Analytics Exception Tracking

其實在 Google Analytics 有隱藏版例外追蹤的功能,透過 Google Analytics 搜集網站前後端(或 App)的例外訊息後加以分析,以我這次的應用場景舉例,當使用者填寫表單並送出後,我會驗證使用者填寫的資訊是否有錯誤,如果有忘記填某個欄位,就會將錯誤訊息送回 GA,之後到 GA 檢視錯誤訊息的出現次數,某種程度上可以猜測是否介面設計不好導致使用者漏了該欄位。

繼續閱讀 Google Analytics Exception Tracking

分享到臉書的網址總是不如預期的呈現嗎? 來看看該如何幫網站做好 Facebook 優化吧!

相信對每位站長而言,Facebook 都已成為和 Google 同樣重要的流量來源,過去我們為了搜尋引擎做了許多 SEO 優化,但你知道嗎? 其實 Facebook 也有推出一份《網站與行動應用程式的分享最佳作法》闡述該如何調整網頁,讓你的網頁被使用者分享到 Facebook 時可以用最佳的方式呈現,在這篇文章中會分享我在個人部落格所做的嘗試。

繼續閱讀 分享到臉書的網址總是不如預期的呈現嗎? 來看看該如何幫網站做好 Facebook 優化吧!

How to Prevent JS Input onFocus Event Fire After Page onFocus

最近的工作是在網站中置入 Google Analytics 的使用者事件追蹤程式碼,我透過 HTML Event 的做法將程式碼掛在 Input 上面,只要使用者點擊特定的欄位、按鈕就會發送一筆記錄到 Google Analytics,這樣的做法沒有什麼問題,但我發現當使用者點擊 Input 欄位後如果切換到其他網頁(Chrome Tabs),當使用者在切換回我的頁面(Page onFocus)時,Input onFocus 事件卻被自動觸發了!

繼續閱讀 How to Prevent JS Input onFocus Event Fire After Page onFocus

Visual Studio Code – 貼上程式碼後自動整理縮排

從 Sublime Text 切換到 Visual Studio Code ( 以下簡稱 VS Code ) 的開發者想必都很懷念「Paste and Indent」的功能吧! 寫程式時不可免的需要複製貼上程式碼,貼上後縮排往往會亂掉,必須要手動在整理一次,而在 Sublime Text 有提供所謂的 Paste and Indent 功能可以讓你貼上的程式碼自動符合當前檔案的縮排方式,而 VS Code 也有類似功能,但原理不太一樣且需要到設定檔上開啟。

繼續閱讀 Visual Studio Code – 貼上程式碼後自動整理縮排

JavaScript 判斷變數是否等於 NaN

在 JavaScript 實在有太多奇怪的眉眉角角了,今天因為把字串轉數字用到 parseFloat,如果進去的參數無法轉成數字則會回應 NaN (Not a Number),我就寫了如下語法來判斷:

var score = parseFloat(prompt("Score:"));

if(score === NaN) {
    console.log("Not a Number");
} else {
    console.log(score);
}

這段程式碼乍看之下理所當然,就像 undefined、null 一樣可以直接相等運算,誰知道完全不如預期。

繼續閱讀 JavaScript 判斷變數是否等於 NaN