.NET JSON 轉 Excel 範例
被問到有沒有 JSON 轉 Excel 的 .NET 範例,雖然是柴米油鹽級的簡單任務,一查還真沒寫過,念在這也算常遇到的應用場景,順手補上唄~ 假設有 JSON 如下: [ { "Name": "John Doe", "Age&... Read More
View ArticleFortran 風雲再起?
這是篇老人才有感,年輕同學會「蛤?」的程式閒聊。 Fortran 是我在學校學的第一門程式語言,當年為工專必修程式語言(商專則是 COBOL),號稱科學計算必備。當時我已自學過 BASICA 也開始接觸 PASCAL,這兩種程式語言可以在 PC 搞出超多好玩的花樣(像是自己寫迷宮遊戲、俄羅斯方塊),... Read More
View Article史上最遙遠的遠端修電腦,遠在太陽系外的航海家一號被 NASA 工程師修好惹
史上最遙遠(沒有之一)的遠端偵錯 (Remote Debugging),從 240 億公里之外射茶包! 昨天 Fortran 風雲再起? 的留言有朋友提到:在太空流浪 46 年,已飛出太陽系統的「航海家一號內部運作是用 Fortran」。考證了一下,更完整說法是: 探測器上共有三個系統:AACS、... Read More
View ArticleGit 小技巧 - 切換為特定 Github 帳號維護專案
這個小技巧適用於在一台電腦上同時使用多個 Github 帳號的情境,像是開發 Side Project 時都用個人 Github 帳號,但工作專案則要改由公務用 Github 帳號 Commit 及 Push。 這算實務常見需求,很快就找到解答。 江湖一點訣:來源 Github URL 加上 Git... Read More
View ArticleCoding4Fun - 還原 Outlook 中文亂碼信
偶爾在 Outlook 會收到中文亂碼信,產生亂碼多半是用傳送過程某次或多次字串/二進位轉換用錯編碼,例如:用繁體中文 BIG5 去解 UTF-8,用簡體中文 GB2312 去解 BIG5 ... 等。 有些亂碼無法逆轉,有些則可透過一點小技巧還原出原文。無法逆轉案例像是用 BIG5 解析 Unic... Read More
View ArticleBuild 2024 開發者大會雜記 1 - Keynote 關鍵字整理
繼上週 OpenAI 發佈 GPT-4o、Google I/O 開發者大會,這幾天輪到微軟 Build 2024 開發者大會 (呃... 開發者會不會太忙了點?),一如預期,焦點全在 AI,而且火力全開。 我先看了微軟 CEO Satya 的 Keynote,不出意外,滿滿沒學過、不熟的新名詞或關... Read More
View Article冷知識:ASP.NET Core 發佈時的 refs 跟 runtimes 資料夾是做什麼用的?
被問到冷門問題:使用 dotnet publish 發佈 ASP.NET Core 專案時有些會產生 refs 跟 runtimes 目錄有些不會,這兩個資料夾是做什麼用的? 好問題。這部分一直被我當成黑盒子,沒想過深入了解,評估屬於不知道也不會死的等級,但既然遇上了就當成天意,趁此機會搞清楚補充知... Read More
View ArticleJavaScript 小把戲 - 讓 JSON.stringify 日期時保留時區資訊
JavaScript 在 JSON.stringify() 時會將 Date 型別轉成 ISO 8601 格式,而時區則一律轉成 UTC 時間 參考,故在網頁 new Date() 取得台北時間轉成 JSON 時會減 8 小時變成 YYYY-MM-DDTHH:mm:ss.sssZ 格式。 然而 IS... Read More
View Article前端小技巧 - 洗巴辣 CSS 骰子動畫/自訂網頁元素/async、await 應用
故事是這樣的,在網路上查到一個很酷的 CSS 3D 旋轉方塊教學: 看到後禁不住手癢,馬上照著刻了一套洗巴辣擲骰子動畫: 嚴格來說,我的 HTML 5 CSS 跟 JavaScript 技能等級只到中上,過去要挑戰這種題目屬越級打怪,少不了爬文地獄加撞牆撞到飽。現在有了 Github Copli... Read More
View Article復古精簡版 HTML5 動畫進度條 (CSS 圖層混色特效 + 香草自訂元素)
前幾天用 CSS + 自訂網頁元素刻了香草 3D 骰子,好久沒寫前端寫出興趣來,最近有另一個需求是想做上傳進度條。類似的東西十年前做過,當時是用 Knockout.js MVVM。 盤點十年下來我用的前端框架從 Knockout.js 換 Angular.js 再轉到 Vue.js,經歷過兩次砍掉重... Read More
View Article【閒聊】若程式碼已做到 Self-Documenting,還需要寫文件嗎?
昨天讀了 David 老師的文章:敏捷開發中文件撰寫的必要性?,其中提到,敏捷開發主張「可用的軟體重於詳盡的文件」,User Story 的相關需求文件屬用完可拋,若程式碼己落實 Self-Documenting,那還需要寫文件嗎? 開發系統需要留下哪些文件,該詳細什麼程度,我心中也沒個準。但說程式... Read More
View ArticleJavaScript 拖拉檔案上傳(香草版)
自從 IE「榮退」(雖然我也曾是「IE 必須死」派,念在當全端攻城獅靠他吃了十幾年飯不能忘本,該有的尊敬還是要給)、Edge 也投靠 Chromium 幫,瀏覽器再次進入大一統時代,寫企業應用前端介面頓時簡單許多,不必再為跨瀏覽器傷透腦筋。 而隨著 HTML5 / CSS / 瀏覽器 API 規格日... Read More
View Article【茶包射手筆記】ASP.NET 3.5 專案無法編譯:aspnet_merge Error 1027
同事報案:某古蹟 ASP.NET 3.5 Web Site Project 無法編譯噴出錯誤:aspnet_merge : error 1027: 這個網站是由舊版 ASP.NET 編譯而得的。請使用對應的舊版 aspnet_merge 來加以合併。 說法是上次用還是好的,沒做什麼今天就忽然不能用了... Read More
View ArticlePowerShell 小工具 - 簡易檔案編碼識別
我有個小需求是要檢查專案程式檔是否混雜 Unicode、BIG5 等非 UTF-8 編碼,類似任務過去用 C# 寫過,例如:BIG5 GB2312繁簡編碼快篩、潛盾機-解決VS2015程式檔BIG5相容問題,為了方便在工作上應用,我想寫個 PowerShell 版,以上是本次的企劃。 由於只需識別 ... Read More
View Article【茶包射手日記】JPG 照片上傳到網站後變亮且鮮豔到失真?
使用者反映:有張電腦上看起來色彩正常的 JPG 檔,上傳到網站後,照片偏亮且鮮豔到浮誇,詢問程式是否在上傳過程修圖? 聽完心想,我寫的檔案上傳向來都是Garbage In Garbage Out原封不動搬資料,何德何能還會修圖(連該用什麼演算法我都沒概念),莫非 ChatGPT 已開始要接管地球了?... Read More
View Article體驗美妙的輕前端 MVVM - Vue.js 入門教學資源
有讀者提到:常聽人說「寫過 MVVM 網頁就回不去了」,想試試卻不知如何入門。 看來,不少全端同學仍依賴 JavaScript / jQuery 掛事件串元素的傳統做法寫網頁,沒體驗過 MVVM 的美麗新世界。但當今前端框架(VAR, Vue.js、Angular、React.js)主流做法多需安裝... Read More
View Article【茶包射手筆記】Windows 11 找不到 Notepad (記事本)
使用者反映,新裝的 Windows 11 找不到 Notepad (記事本)? Windows 10 之後,數十年如一日的 Notepad 終於有了些長進,新版本加入了多頁籤、語系編碼顯示... 等。 不過編碼支援還是弱,Unicode、UTF-8 沒啥問題,ANSI 編碼只能選一種,在繁中 Wi... Read More
View Article【茶包射手筆記】Chrome/Edge 中文輸入時 JavaScript keydown 事件失效
使用者反應,上線超過十年的 jQuery 自動完成套件最近常失靈,使用者輸入字元時沒反應,但時好時壞,有時是好的,有時會壞掉。 無法 100% 重現的茶包最麻煩了,連我們在測試台嘗試重現問題,也是有時可以有時不行,理不出頭緒。費了番手腳,終於找出容易重現問題的關鍵(但也非 100% 可重現) - 啟... Read More
View ArticleHTML 知識更新包 - keydown/keyup 事件勿再用 keyCode 取值
身為十幾年前開始學 JavaScript 的老人,腦中總有些過時的觀念與知識,就像聊天時偶爾會脫口說出小叮噹、神奇寶貝般不合時宜,當場曝露年紀。 昨天談到 Chromium keydown Bug,讀者 Chester Fung 提醒,keydown/keyup 事件中已不該再用 keyCode 取... Read More
View ArticleYT 筆記 - Rust 程式語言在 JavaScript 生態圈的角色
這陣子查資料時發現有愈來愈多專案是用 Rust 語言開發,想起去年有則新聞:微軟要讓開發者以 Rust 編寫 Windows 驅動程式,讓我開始觀注 Rust 這個新掘起的程式語言。 Rust 的核心精神格外講求安全性、速度及併行性,尤其在記憶體安全性的強化,可根本解決 C/C++ 揮之不去的緩衝區... Read More
View Article