Vue 2 升級 Vue 3 之全域元件註冊問題
在我專案裡 Vue.js 主要用來處理 MVVM,用 <script> 載入 vue.js,寫幾行 JavaScript 搞定,走不寫模組,不用 TypeScript,免編譯打包的「輕前端」模式,但常用邏輯還是會寫成元件(Component)方便共用。 在 Vue 2 時代,我習慣在網頁... Read More
View Article當心 Windows KB5018410、KB5018418 更新導致 TLS/SSL 相關應用程式異常
學新東西時最怕有其他系統問題來亂,你通常先檢討自己程式沒寫好或漏掉什麼關鍵,查又查試了又試,依然連簡單到靠北的範例都做不出來,沮喪到懷疑人生... 這幾天在練習寫 Azure AI 程式,便遇上了這種狀況。 照著 PowerShell 跟 C# 範例初步測試成功,陸續加了邏輯也順利執行,但改一改 C... Read More
View Article程式整合 Azure 文字轉語音服務 - PowerShell / C# 範例
上回試玩了 Azure AI 照片分析有些意猶未盡,繼續試試文字轉語音。 文字轉語音(Text-To-Speech, TTS)的功能很早就有了,Windows 從早期版本便已內建 SAPI (Speech API),也有 Balabolka 之類的免費軟體能將中文文字轉成語音,但當年技術還不夠成熟,... Read More
View ArticleHTML5 自閉標籤(Self-Closing Tag)誤用案例
踩到一個地雷。從舊專案搬了網頁到新專案,有些文字顯示不出來,花了點時間追查,發現是因為某 jQuery 元件用了 <span class="..." /> 這種不合法寫法,舊專案為相容 IE 還在用 jQuery 用 1.12 版,搬到改用 jQuery 3.6 的新... Read More
View Article掌握 Windows 更新第一手消息
10/12 的 Windows 安全更新造成一些 TLS 相關的應用程式異常,新學 Azure AI SDK 時就遇上系統問題來亂,身處搖滾區特別有感。 (說實在話,自己也在寫程式,對「系統更新搞壞東西」這事兒比較能用平常心看待,因為我也常幹(掩面),大家將心比心默默改變社會風氣,輪我出包時可望... Read More
View Article【笨問題】防止 .NET 編譯產生不需要的多語系資源檔
針對需要支援多語系的場合,.NET 標準做法是為各語系建立專屬資源檔,放入該語系的文字翻譯、專用圖示,Visual Studio 會將這些資源檔編譯成衛星組件(Satellite Assembly)。如此,執行時可依環境彈性載入,有專屬資源就用,沒有就用英文;開發時也可依需求逐步增加新語系,很方便。... Read More
View Article重新認識 C# [3] - C# 3,為成就 LINQ 而生
【本系列是我的 C# in Depth 第四版讀書筆記,背景故事在這裡】 讀書記筆晃晃悠悠來到 C# 3 惹。C# 3 的改良重點集中在 LINQ,許多新特性算是配合 LINQ 而生。以今天的角度來看,心得可能會是「靠,這還要講?」,請用溫故知新的心態面對,哈。 筆記附上各特性的原文術語,未來 Go... Read More
View ArticleGit 小技巧 - 使用 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