[料理佳餚] 在 ASP.NET Core MVC 自訂 HTTP 狀態碼頁面

商業網站通常都會自訂自己的 HTTP 狀態碼頁面,先前有寫兩篇文章介紹在 ASP.NET MVC 如何來做這件事?

現在環境換到了 ASP.NET Core,我們來看一下怎麼處理自訂 HTTP 狀態碼頁面?

...繼續閱讀 »

[廚餘回收] 只是要裝個 Cloud Monitoring agent 到 CentOS 7 上也會踩到雷

GCP(Google Cloud Platform)預設是不會幫我們監控 VM 的記憶體使用率磁碟空間使用率,需要在 VM 裡面多安裝 Cloud Monitoring agent 才看得到,我的 VM 作業系統是 CentOS 7.9,照著官方文件一步一步弄,最終我得到了一個錯誤訊息:

https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for google-cloud-monitoring'.

...繼續閱讀 »

[廚餘回收] iOS 與 Android 對於已快取的 Request 處理方式不一樣

以前聽過有個笑話是這樣說的:

某A:聽說 iOS 在瀏覽網頁的時候很省電
某B:對,因為它什麼事都沒做。

原來這件事是真的,根據 RFC 7234 5.2.1.4 的定義,如果我們在發送 Request 的時候,加上 cache-control: no-cache,在沒有從伺服器成功取得內容之前,不得使用已儲存的快取來滿足目前的 Request,但是 iOS 它連 Request 都沒送,自然就不需要理會這個定義。

...繼續閱讀 »

[食譜好菜] C# 複製 HTML 格式的文字到剪貼薄中

部落格的文章我一直是用 Markdown Monster 寫完後,直接 Ctrl + Shift + C,Markdown Monster 會直接幫我將文章轉成 HTML 內容寫入到剪貼薄中,接著在點部落的編輯器上切換原始碼,再把 HTML 內容貼上去,但是最近點部落的編輯器改版了,沒辦法直接貼上 HTML 原始碼,可是 Markdown Monster 複製的 HTML 內容居然貼得上去,這其中必有緣故。

...繼續閱讀 »

[小菜一碟] 如何依據網頁內容變換網址但不必重新整理網頁

自從 AJAX 問世之後,由於節省頻寬、提升網頁回應速度的效果顯著,被大量採用,甚至發展出了 SPA,但是這樣反而出現了一個副作用,就是我們無法將網頁最終呈現的結果透過 URL 分享出去,不利於 SEO,我們就來看一下,怎麼在都是用非同步請求取得網頁內容的情況下,變換網址。

...繼續閱讀 »

[小菜一碟] 在 TortoiseGit 用 merge --squash 做部分合併(Partial Merge)

在使用 Git 做版本控制的過程當中,無論是個人開發,還是團隊開發,偶爾會面臨到我們另外開分支所開發的實驗性功能或除錯結果,需要合併回主線的時候,有很大的可能我們只會需要合併其中幾個檔案而已,git merge --squash xxx 可以協助我們完成這件事,不過我一直都是使用 TortoiseGit,我們就來看看 TortoiseGit 怎麼做 Squash Merge?

...繼續閱讀 »

[創意料理] 用 IL Code 來做一個簡易版本的 FastMember

最近 IL Code 寫得比較多,主要是在練習,目的是希望自己將來遇到效能議題的時候,還有招數可以施展,剛開始練習寫 IL Code 的時候,是先從存取一個 instance 的公開或私有的屬性及欄位開始,這讓我想到一個套件 - FastMember,作者已經至少有 2 年沒有更新了,既然會一點 IL Code,那我能不能弄一套屬於自己的 Chef.FastMember 呢?

...繼續閱讀 »

[料理佳餚] 在執行時期(Runtime)憑空捏造一個型別(Type)

先前的文章有提到過「在執行時期憑空捏造一個組件」這件事,我是用在自己打造的 Library 之中,而做這件事的最主要目的是在執行時期產生一個類別,用來產生使用端類別的替身,或是用來做一些特殊的識別,我們就來看一下,要在執行時期產生一個類別,需要做哪些事情?

...繼續閱讀 »