HTML5 筆記 - 使用 SVG 取代 PNG/GIF 圖示
隨著主流瀏覽器支援度愈來愈好,在網頁裡用 SVG 取代 PNG、GIF 呈現圖示(Icon)及簡單圖案漸成趨勢,沒吃過豬肉也要看看豬走路,趕緊做點功課並整理筆記備忘。網頁引用 SVG 有三種做法: Object: <embed src="…"> <object data="…"> <iframe src="…"> Inline:...
View Article【茶包射手日記】用 TransactionScope 包 LINQ 迴圈查詢出錯
使用者報案某網頁功能故障,經抽絲剝繭鎖定爆炸點在一段「TransactionScope 中以 LINQ to SQL 取回物件集合,跑 foreach 開連線查資料庫」邏輯(警語:跑迴圈執行資料庫查詢,迴圈次數如過高將成效能殺手,宜避免),簡化為以下程式片段可重現問題:(註: 程式碼經過簡化,在 foreach 迴圈裡不斷開啟資料庫連線看起來很突兀,但實際案例中 foreach...
View ArticleASP.NET 網站部署後發生 ryslon 編譯錯誤-2146232576
同事遇到的案例。VS2017 新增 ASP.NET 網站專案,專案範本預設參照的 Microsoft.Net.Compilers 版本是 1.3.2。(延伸閱讀:神祕的ASP.NET bin-roslyn目錄) 同事為了使用 C# 7.0 功能,升級 Microsoft.Net.Compilers NuGet 套件到 2.7.0 版,該專案先前已部署測試過,心想 ASP.NET Runtime...
View Article2018 石碇馬
總爬升高度超過一千公尺,在初夏舉辦,又硬又陡的石碇馬,要失心瘋到什麼地步才會年年報到? 201415 1617天曉得,反正今年我又參加了。去年全馬人數銳減剩五百人,有點擔心大會會經營困難,今年倒是人氣回升,有好幾組慶祝百馬、兩百馬、三百馬的跑團,熱鬧非凡。有一輛大會接駁車開錯路,故全馬延遲了幾分鐘出發。五公里左右彭山公廁旁的小廟 2016...
View ArticleCSS 左右貼齊樣式在 IE 產生大段空白
講到 CSS 我充其量只算是票友,但專案遇到問題還是得面對... Orz 本次的案例如下:使用者回報某網頁用 Chrome 看正常,改在 IE 卻有部分段落的句子前方出現一大段空白,檢視 HTML 原始碼,發現編寫者輸入文字內容時,將段落裡的不同句子拆成多行,前方還加上 Tab 與上方對齊以求美觀。一般來說,HTML 文字出現的空白會被壓縮,接連的換行與空白符號只會被當成一個空白處理(要留白需改用...
View Article【茶包射手日記】IIS Log 檔換日問題
線上主機每天產生數百 MB 的 IIS Log,為避免 Log 檔吃光磁碟空間,我們多會安排排程執行壓縮及清理作業,每天將前一天的 Log 壓成 ZIP 檔,再依「原始 Log 檔保留 N 天,壓縮 Log 保存 M 天,超過 M 天移至後線儲存空間」的原則刪除或搬移檔案。今天發現某台機器的 Log 清理排程每天準時兩點執行,但 IIS Log 壓縮檔全是空包彈,大小只有 22...
View Article英文單字朗讀 MP3 DIY
這是「搶救英文大作戰」的副本任務,小閃光的英文字彙慘不忍睹,我想到把單字表轉成朗讀 MP3 的方法,想讓她照三餐服用看看能否起死回生。查了一下,文字轉 MP3 大家幾乎都是用 Balabolka,它可以朗讀輸入的文字,有眾多調整選項,還能轉成 MP3,十分方便。簡單試用,得到幾點心得:文字轉語音功能事實上來自 Windows 內建的 SAPI (Microsoft Speech...
View ArticleCoding4Fun–Microsoft Speach API 筆記
前篇文章用 Balabolka 搞定自製英文單字朗讀 MP3,但老讀者們都猜到接下來會發生什麼事... 是的,C# 整合 SAPI 讓電腦講話的練習來了!原本以為要裝什麼 SDK 或套件,沒想到 .NET 已內建,專案只需參照 System.Speech 就好。開始前先看一下你的 Windows 裝了哪些語音以及其支援語系:static void ListInstalledVoices() {...
View Article2018 海山馬
跑馬至今,海山馬是我唯一年年參加不缺席(20134567)的賽事,並留下目前唯一的落馬經驗。為保持全勤記錄,儘管天氣炎熱賽道單調補給平常獎牌無奇,還是報了名。六點開跑,全馬賽道跟去年一樣,出發向左往城林橋停車場折返回起點 10K,接著繼續往大漢橋折返回起點再 10K,然後依相同路線跑第二趟湊足 42K。氣象預報晴天少雲,最高溫 31...
View ArticleIIS HTTP 重新導向功能筆記
將 IIS 網站的特定網址導向其他網址,有幾種做法:UrlRewrite 模組彈性高,支援複雜的轉換規則(可使用 Regular Expression 定義規則),能在使用者未察覺的情況下完成轉換,例如將 /product/book/computer 轉為 /product.aspx?zone=book&catg=computer,提供較友善的網址並增進 SEO。...
View Article【茶包射手日記】Visual Studio 專案項目 Icon 突變
同事報案,專案有個類別 .cs 的圖示怪怪的,一般 .cs 的圖示應是綠色的 C#,但問題類別卻是個沒見過的文件圖示(下圖黃框處),比對發現是該類別繼承 System.Net.WebClient 造成(註:這麼做是為了修改 WebClient 的 Timeout),隨便新增一個 ClassN.cs,只要繼承 WebClient 圖示馬上變掉,取消繼承就會恢復。為了搞懂奇怪圖示的意義,我開始搜尋有沒有...
View Article瀏覽器 HTTP 301 導向記錄清除
前篇文章提到 HTTP 重新導向有 301, 302, 307, 308 幾種形式,其中 301/307 為「永久重新導向」,意思是原網址宣告作廢,請客戶端未來一律改連新址。而各家瀏覽器都忠實貫徹這個精神,一旦接獲伺服器回傳 301 將銘記在心,下回使用者再連到該網址,瀏覽器將省略「連接舊址 -> 接收 301/302 轉址 ->...
View ArticleSQL Server 使用者定義型別
在同事報案筆錄看到新鮮玩意兒,資料表的某個欄位型別不是 VARCHAR 不是 DATETIME 不是 INT,而是某個沒看過的名稱(如下圖示意),研究了一下,是所謂的使用者定義型別(User Defined Type, UDT),過去只在教材看過,首次觀察到活體。使用 UDT 有什麼好處?UDT 可指定型別、資料長度及精確度、是否允許...
View ArticleWindows 10 連線 USB 數據機發傳真
很久沒有搞電腦搞到一肚子火了,記錄射茶包經過。時至今日,生活大小事幾乎都能靠 Email、LINE、網站、APP 搞定,但偶爾仍會遇到只收傳真的店家或公司,例如:訂奶茶、傳信用卡授權書... 等。家裡採購雷射印表機時基於體積及成本效益考量,沒選擇有傳真功能的事務機,代價是久久遇到要傳真的場合,就得傷一下腦筋。小七傳真一張 A4 土匪價 15...
View Article非網站 Windows 之 SSL 加密弱點檢測及修補
資安領域深似海,弱點掃描通常是由資安人員或廠商執行,跑工具程式出報告,再依報告進行修補。說起來有點像人體做健檢,但差在拿到的是用火星文寫的健檢報告,隔行如隔山,天曉得怎麼改善? 試想如果你的健檢報告出現一條紅字「TMD 指數低下,免疫力不足,感染 S95 病毒風險偏高」,沒人跟你解釋要怎麼治療,也沒家醫科可以掛號,然後咧?這回拿到弱點掃描報告有一條: SSL Medium Strength...
View Article土砲版焊接小幫手
看到一篇 8 歲香港小妹妹在 YouTube 分享電子小玩意 DIY 的報導,影片裡的道具很搶眼:照片來源:專訪 - 香港 8 歲小妹妹 上網教人 DIY 焊接電路 - 香港 UNWIRE.HK 玩生活.樂科技四支前端裝有夾子像異形觸手的可彎曲塑膠管,夾住電路板喬好角度,雙手專心拿烙鐵跟焊錫就好,這是何等優雅從容呀!...
View ArticleEmail 客戶端之 CSS 支援問題
活到老學到老,今天又學會一件事。雖然顯示 HTML 格式已是當今 Email 軟體或線上信箱的必要條件,但許多被視為基本的 CSS 功能卻不一定在支援範圍內。用以下範例展示,我設計一段 HTML 當作 Email 內文。先將 .dynamic 設成 display: none,再指定 .mode-1 .dynamic.mode-1 及 .mode-2 .dynamic.mode-2 為...
View ArticleChrome 記憶密碼誤填欄位問題
同事報案,Chrome 會莫名把客戶帳號填入輸入與帳號無關的 <input type="text"> 欄位,初步研判是 Chrome 內建的帳號密碼記憶小工具 Google Smart Lock搞鬼。用以下網頁重現問題。如操作所示,在登入網頁 Logon.aspx 用 Google Smart Lock 記下密碼,登入後導向 Index.html,網頁上只有一個訂單編號,Chrome...
View ArticleOpenCC 中文繁簡體轉換工具
漫長的碼農生涯,難免會遇到中文繁簡轉換需求,過去我都依賴 Word,但在 Web Server 整合 Word 是件麻煩事。Word 程序體積龐大,啟動要耗用不少記憶體跟 CPU,不適合每次 Request 隨用隨建用完即丟。加上 Word 為桌面程式會綁執行身分,不適合用 IIS AppPool 帳號跑。最後我琢磨出來的解決方案是寫成 Windows Service 以 WebAPI...
View Article