Git 小技巧 - 使用 git rebase --onto 實現任意剪接
分享前陣子新學到的 Git 小技巧,假設我有 Git 分支狀態如下: 從 fetaureA 開了分支 featureX 做了四次 Commit (Commit-X1 ~ Commit-X4),現在想將 featureX 改成從 featureB 分支出來,如下圖: 要在分支上完成這種移花接木動作... Read More
View Article重新認識 C# [4] - C# 4 dynamic、選擇性參數及 Generic Variance
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 C# 4 帶來的一大改變是 dynamic,讓靜態型別語言也能享受動態型別語言獨有的福利,再加上 Optional Parameter,簡化了與 COM+ 世界溝通的成本。而 Gereric Variance (官方翻譯是泛型... Read More
View Article行車記錄器 SD 記憶卡異常處理與使用壽命問題
車上的行車紀錄器已服役近十年。說來也妙,一年多前換前擋隔熱紙重裝後吸盤老吸不住,三天兩頭掉,換到後來支架塑膠也老化碎裂,原本要換新,但歷經我研究改良數次,最後用信用卡、強力膠加手機玻璃貼 DIY 修好,念在花了這麼多時間,又變成捨不得丟,就接著用下去。 行車紀錄器有顆鋰電池維持系統基本運作,熄火 ... Read More
View Article用 Jupyter Notebook 寫 Python 筆記
前陣子試玩了 Azure AI 服務,開始看一些機器學習的東西,不知不覺,水愈來愈深(抖),但眼界也開始開闊起來(從井口擴大到噴水池的程度吧),我感到充實而欣慰。 Python 有個很酷的東西叫 Jupyter Notebook,簡單說是一份可以直接在上面跑敲指令跑程式的網頁文件(後來微軟也做了類似... Read More
View Article用 VSCode 寫 Jupyter Notebook 學 Python
前文發表後,許多讀者提醒我 VSCode 本身就支援 Jupyter Notebook 編輯。靠! 這才發現自己差點錯過好東西。 關於 VSCode 對 Jupyter Notebook 的支援說明可參考官方文件,這裡簡單總結一下。 VSCode 要先安裝 Jupyter 擴充套件 要在 Jup... Read More
View Article重新認識 C# [5] - C# 5,走向非同步時代
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 C# 5 帶來非同步函式 Asynchronous Function 的概念 - 加了 async 修飾詞的方法或匿名函式、Lambda Expression,並在其中使用 await 運算子執行 Await Expressi... Read More
View Article在 VSCode 使用 Cmder 做為終端機介面
講到 Git 分支管理,我不愛用 GUI 工具,是個鐵桿指令派。慣用做法是在 VSCode 開啟 Git Graph,按 Ctrl+Shift+` 在下方開個終端機,下指令整理分支或執行合併,下完指令馬上從 Git Graph 線圖驗證結果是否符合預期。 我愛用指令的一大原因是方便與團隊成員溝通,... Read More
View Article【茶包射手日記】 VS2022 編譯 Web Site Project 發生「未將物件參考設定為物件執行個體」錯誤
紀念花了我一個半小時的茶包。 某個古蹟 ASP.NET Web Site 專案,使用 IIS 測試 OK,在 VS2022 按 F5 Debug 時卻編譯不過,噴出 Build (web): 並未將物件參考設定為物件的執行個體。/Object reference not set to an inst... Read More
View ArticleJavaScript 小技 - XML 字串縮排顯示與互動檢視
這些年在 JavaScript 處理 XML 的機會愈來愈少,但從事古蹟翻新與維護難免遇到。最近想為老系統增加一個編輯及檢視 XML 的小工具,有兩個小需求: 想讓 <textarea> 輸入的 XML 內容依標準縮排規則排版 提供可以展開、縮合 XML 節點的互動式 XML 檢視器 ... Read More
View Article重新認識 C# [6] - C# 6 大勢底定,錦上添花
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 (筆記跳過書本第六章 Async Implementation,該章深入剖析編譯器將 async/await 展開產生的狀態機程式實作細節,議題獨立且對日常開發幫助不太,未來有需要再看) 依我個人觀點,C# 2.0 加入泛型、... Read More
View Article用 Jupyter Notebook 寫 C# / PowerShell / JavaScript 筆記 - .NET Interactive
上週介紹了 好用的 Jupyter Notebook 可以邊寫筆記邊測 Python 程式,但我很快發現 VSCode 才是最棒的 Jupyter Notebook 編輯軟體。研究 Jupyter 時得知微軟也做了類似的嘗試,包含可以內嵌網頁中跑 C# 程式的 Try .NET,以及在 VSCode... Read More
View Article使用 OAuth 認證存取 Office 365 雲端 Exhange 收發信
前情提要:之前寫程式存取 Exchange 收發信,我都是用 EWS API,用 AD 整合式驗證(企業環境)或應用程式密碼(Internet 線上版)執行作業,但 2022/10/1 起微軟停用了雲端 Exchange (Office 365 信箱)的 HTTP 基本驗證,後者已不能再用密碼存取 ... Read More
View Article【茶包射手日記】IE 開新視窗遲遲無反應
使用者投訴,某審核作業網頁,點選超連結應另開視窗,卻遲遲無反應,懷疑我們系統有狀況,效能出了問題。 依直覺推論,超連結顯示出來了代表後端處理已完成,開新視窗不是用 showModalDialog 就是 window.open(),都發生在瀏覽器端,應與伺服器端效能無關;超連結網頁來自其他系統位於不同... Read More
View Article設定 Chrome/Edge 自動登入 Windows 驗證網站
有使用者反映 Chrome/Edge 無法自動登入使用 Windows 整合驗證 IIS 網站,會彈出登入對話框,敲完 AD 帳號密碼才能登入,有一部分使用者則可以用登入 Windows 的 AD 帳號自動登入,不需要敲密碼。 原以為跟上回一樣是 AD 傳輸被擋造成,但本次案例 URL 是用 IP,... Read More
View ArticleLambda Expression 應用 - 用強型別動態指定欄位名稱
研讀 C# in Depth 之餘想到的點子:需要傳入欄位名稱當參數的場合,用 Lambda Expression o => o.PropName 取代名稱字串。 直接用範例展示。 假設我有個 Player 物件陣列: public class Player { public str... Read More
View Article新工作機報到 - i7 迷你旗艦
現任小黑 T470p 服役滿五年了,設備狀況還不錯,只有電池年久撐不到半小時,但平時都插電使用,幾乎無感。就算要處理,T470p 的電池可抽換,買顆新電池就搞定了。 前幾個月,陸續換了手機、把家裡文書機升級成 Intel NUC 迷你電腦,還幫小木頭買了 i7 新筆電,深深被新一代的 CPU、SSD... Read More
View ArticleSSD 降溫大作戰 EP1 - 使用 C# 查詢 SSD/CPU 溫度
這次入手 i7 迷你旗艦,滿滿的 RAM 跟又快又大的 SSD 是重點,我選了號稱能 7GB/s 讀寫的 2TB PCIe gen4 M.2 SSD。 一試果然驚人,實測最高速飆上 6.5GB/s! 但高速是有代價的,溫度也非常驚人! 裝機搬移資料連續 Copy 了數十 GB 資料,溫度飆上 70... Read More
View Article重新認識 C# [7] - C# 7 ValueTuple
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 Tuple 從 C# 4 開始就有,可用 new Tuple<int, int>(v1, v2) 建立臨時性物件一次傳遞多個值,但缺點是存取名稱為 Item1、Item2、Item3... 無法自訂。而 C# 4 ... Read More
View Article【茶包射手日記】Windows 11 當機事件 - igdkmdn64.sys
新工作機還在磨合期,今天 Windows 11 22H2 發生無預警重啟。身為資深茶包射手,立即啟動調查 SOP。 檢查事件檢視器,所幸當機時有留下 Memory Dump 可供事後分析。 取得 MEMORY.DMP 檔,原本想試傻瓜分析工具 - Debug Diagnostics Tools,因... Read More
View ArticleSSD 降溫大作戰 EP2 - ESP32 程式控制風扇轉速
前情提要 能用程式讀取 CPU 及 SSD 溫度後,再來我需要一個可控制的外部冷卻裝置。依我的技能樹ESP 開發板(延伸閱讀:也來玩物聯網:窮人的原子彈 - ESP 開發板)自然是控制單元的首選,至於冷卻裝置,翻箱倒櫃找到我第一代工作機 XPC 留下的風扇,廢物利用先。 散熱風扇有兩種,右邊的插頭... Read More
View Article