[廚餘回收] Jenkins 的 Git Plugin 設定 Polling ignores commits in certain paths 套用在中文檔名上失效?

幾天前同事回報,他 merge 完 push 之後 Jenkins 為何沒有建置? 我目前所在的公司所有原始碼是湊在一起的,但是每一個建置作業又只需要建置某一個專案及其相依的專案,所以除了使用 Sparse Checkout paths 之外還搭配 Polling ignores commits in certain paths 來讓建置作業能夠控制在需要建置時建置,所以這問題肯定出在這兩個地方。

...繼續閱讀 »

[小菜一碟] 用 URL Rewrite 解決 SEO 要求網址全小寫及有無斜線結尾的問題

為了讓搜尋引擎多認識我們的網站、提昇搜尋結果的排名,大都會做 SEO(Search Engine Optimization),其中有一條規則是要讓網址保持一致性,避免相同的網頁內容使用不同的網址,導致網頁的瀏覽量被分散,因而讓搜尋引擎認為我們的網頁內容沒什麼人要瀏覽,使得該網頁的權重下降而影響排名,如果是全新的網站,我們大可配合 SEO 來調整設計,可是如果是已經被蹂躪過的已存在網站,又剛好是 Host 在 IIS 上,該怎麼辦?

...繼續閱讀 »

[小菜一碟] 偽造 ClaimsIdentity 為 Controller Action 做有身份識別的單元測試

我在之前的專案有使用過 ASP.NET Identity 來幫我做驗證的工作,ASP.NET Identity 的出現為驗證身份的方式帶來了更大的彈性,不過如何使用不是這道菜的重點,這道料理要展現的是,當我們為 Controller Action 做有身份識別的單元測試時,我們要如何偽造不同的身份來滿足測試情境?

...繼續閱讀 »

[料理佳餚] 使用 Redis-Sentinel 打造 Redis 的 HA

Redis 到目前為止都還是以單執行緒的方式在執行,要多個 Redis 就要多設定幾個 instance,這樣如果 Redis crash 了怎麼辦?預設我們可以從 master 的設定檔去設定 slave 是誰,但是 slave 預設是 read-only,而且當 master crash 的時候,不手動做 master、slave 的身份互換,slave 是無法接手 master 的工作,這時候我們可以利用 Redis 內建的 Redis-Sentinel 的工具來解決 failover 的問題。

...繼續閱讀 »