使用 C# 整合 OpenCC 執行中文繁簡轉換
前篇文章介紹了輕巧但威力強大的 OpenCC,使用 opencc.exe 可輕鬆完成繁簡轉換。如果我們要在 .NET 裡寫一個函式招喚 OpenCC 將繁體字串轉成簡體字串該怎麼做?呼叫外部 .exe 這等小事,自然難不倒 .NET 老鳥,生個 System.Diagnostics.Process,給對 exe 路徑,弄兩個隨機暫存檔放待翻文字與輸出結果,等待 opencc.exe...
View Article2018 台北星光馬
在 2015 年跑過台北星光夜跑,三年後,雖然主辦單位不同,但賽道與時間幾乎一樣,來回味久違的夜跑滋味。全馬下午四點半起跑,提早出門搭捷運慢慢晃過去,搭接駁車前買了 600 cc 保特瓶喝下肚建立安全庫存,避免天熱缺水狂飲來不及吸收搞到肚子難受。兩點四十左右搭上接駁車有兩段小插曲,車上悶了近十分鐘,有跑友提醒司機才想起忘了開冷氣(登楞),然後疑似行車路線有誤繞了一圈,開了快 20...
View Article【茶包射手日記】SQLAgent 無法執行批次檔
燃燒一小時寶貴青春才查出問題 Orz,PO 文留念。同事報案,某個用 SQL Agent 定期跑的批次檔 (.bat) 執行無效,原因不明。其寫法類似如下範例,看起來沒什麼問題:實測開 DOS 視窗直接跑 ImportBOMFromSysA.bat 正常,於是我將偵察方向導向 SQL Agent 執行時工作目錄是 Windows\System32 所致,但檢查該批次檔有依...
View ArticleVS2017 無法載入 MVC4 專案
最近接連遇到兩次的問題。首先是某個用 Visual Studio 2017 開發的專案,同事 T 從 TFS 取回最新版以 VS2017 開啟,其中卻有兩個 MVC 專案呈現截入失敗,其他還有 Class Library 及 Web Site Project 等多個專案則沒問題;改用 VS2015...
View ArticleCSHTML Layout Page、Partial View 執行順序實驗
維護 ASP.NET MVC 專案遇上巢狀 Layout 引用 Partial View 的情境,無法斷定執行先後順序,想必是自己觀念不清,做了以下實驗驗證,順手分享之。假設有 ASP.NET MVC 巢狀 Layout 並混用 Partial View 結構如下:_Layout.cshtml@{...
View Article在 Partial View 與 View 間使用 ViewBag 傳送資料
在 ASP.NET MVC View 引用伺服器端傳來的資料,正統做法是定義 View Model 類別,Action return View(viewModelObject),在 CSHTML 宣告 @model 定義強型別並使用 Razor 語法存取 Model 變數。(延伸閱讀:mrkt 的程式學習筆記: ASP.NET MVC 的ViewModel - 基礎篇...
View ArticleOracle NVarChar2 可存中文字數上限問題
同事分享在 Oracle 踩到 NVarChar2 中文字數上限的地雷,一句話點醒我夢中人,嚇得我屁滾尿流失了魂,原來我也搞錯多年。不囉嗦,直接看圖。我們都知道,NVarChar2 的長度上限是 4000,而 NVarChar2 支援 Unicode,不管是中文或英數字,一個字元都算1,所以 NVarChar2(4000) 可以儲存 4000 個中文字? 錯了! 是 1,333 個,如果你試圖塞入...
View Article如何自訂 OpenCC 字彙轉換表
OpenCC 已提供十分優質的繁簡轉換,不過呢,實際使用下來難免會有些不到位的地方。所幸,OpenCC 的架構開放又有彈性,修改 json 設定檔就能載入自訂轉換字典,如果對既有轉換表或轉換規則不滿意,OpenCC 開放源碼,絕對讓你改到開心為止。用個簡單例子示範如何自訂字彙轉換。假設我想將「黑暗執行緒在雲霄飛車上吃便當」翻成簡體,如使用包含常用詞彙轉換的設定檔...
View Article【笨問題】Word 使用非細明體時行距過大
我有個困擾多時的 Word 問題,每回將細明體、標楷體換改成微軟正黑體或其他字體時,行距會變成超大(例如以下示範):之前我的鴕鳥做法是修改行距為固定行距,但一直不知其所以然,最近花了點時間研究才理解問題所在與正確解法。關鍵在於 Word 預設啟用了「文件格線被設定時,貼齊格線」,勾選「檢視格線」後便可一目膫然。平平是 12 號字,細明體及標楷體尺寸較小,恰好可以塞入兩條格線之間:...
View Article【茶包射手日記】網頁特定連結失效疑案
遇上個人射手生涯數一數二的坑爹茶包...故事是這樣的。接獲報案,有使用者投訴他換新電腦後無法點選內部網站選單的某個連結,其餘功能正常,而全公司只有這一起案例。起初懷疑是 JavaScript 故障,實際連上使用者電腦測試並未發現 JavaScript 錯誤,而在使用 F12 偵察過程連結忽然正常,正要以「新電腦需經開光才會正常」的靈異理由結案,判定前為求謹慎再試了一次,這才發現問題未解 -...
View ArticleLibreOffice docx 轉 pdf 評估筆記
我有寫了一個 Word 套表服務,最早是用 C# 呼叫 Word執行置換及轉 PDF,後來改走 OpenXML SDK,罝換速度快了五倍以上,唯獨轉 PDF 這段還只能仰賴 Word 完成。從 ASP.NET 呼叫 Word Application 會受限執行身分權限過低,Word 程序的生命周期亦較難掌控,最後我決定寫成 Windows Service,以特定登入帳號啟動固定數量的 Word...
View Article小技巧 - ASP.NET MVC 限定 POST 但開放本機 GET
分享 ASP.NET MVC 私房小技巧一則。 AJAX 呼叫 ASP.NET MVC 時,基於安全考量應限定 POST 方法。(參考:隱含殺機的GET式AJAX資料更新 - 黑暗執行緒) 不過在開放測試階段,開放 GET 可在瀏覽器網址列輸入 URL 測試較方便,有沒有兩全其美的方法? 於是我寫了一個 Action Attribute,實現「從 localhost 呼叫可用 GET,從正常 IP...
View Article使用 Headless Chrome 擷圖、轉存PDF、爬資料
Chrome 自 59 版起內建了 Headless 模式,允許透過命令列啟動 Chrome 以無 GUI 方式執行,具備與正常開啟完全相同的網頁渲染及 JavaScript 引擎,還可透過網路連線遙控。這個功能可以用於不少有趣應用,這裡列舉幾種實用情境。註:Headless Chrome 的完整參數可參考 List of Chromium Command Line Switches « Peter...
View ArticleCoding4Fun–網頁遙控可動式樹莓派相機
前陣子入手 3D 印表機,從網路下載現成模型幫老古董 Raspberry Pi B+ 印了外個殼,一時懷舊之心大發,翻出舊零件拼裝了一台可轉動鏡頭角度的網路照相機,還騷包寫了網頁版控制介面,摸到一大票新東西,筆記留念一下。影片Raspberry Pi 的硬體 IO 介面不如 Arduino 豐富,能控制伺服馬達的 PWM 輸出只有一組,想控制多個伺服馬達通常會外接 I2C 介面控制板,前陣子玩...
View ArticleVS2017 開啟專案找不到 System.Net.Http 參照
某個使用 Microsoft.AspNet.WebApi.SelfHost 4.0.20918 NuGet Package 的 Console Application 專案使用 VS2017 開啟時出現 System.Net.Http 及 System.Net.Http.WebRequest 參照失效,改用 VS2015 開啟則無此問題。VS2017 開啟失敗但 VS2015...
View Article閒聊 - RWD、React Native、Xamarin、Cordova,一魚兩吃到底行不行?
RWD、React Native、Xamarin/Cordova,一魚兩吃到底行不行?前陣子 Airbnb 發表了系列文章,訴說其在傾力投入兩年之後忍痛放棄 React Native 的心路歷程,來自資深用戶的親身心得特別有參考價值。原文為英文長篇,Oursky (一家創立於香港的Web / Mobile 產品開發工作室) 佛心整理了中文摘要: Airbnb: 我們一起寫過的 React...
View Article閒聊 - Web API 是否一定要 RESTful?
傳說 C 語言風格(C#/Java/JavaScript…)程序員依其信仰分為兩大派,自古以來不共戴天:依我的觀點,寫 WebAPI 的程序員也分成兩派,RESTful 派跟非 REST 派。我屬於後者,是非主流的少數派。前幾天跟同事聊到 Web API 是否一定要 RESTful,三言兩語說不清,寫篇文章梳理思緒好了。RESTful API 是指實踐 REST Representational...
View ArticleASP.NET Core 練功筆記 1
也差不多該開始玩 ASP.NET Core 了。最近剛好有個適合練功的題材,拿了 ASP.NET Core + Vue.js 上場演練,將一路上參考到的資源及瑣碎心得理成筆記備忘。關於 ASP.NET Core,MVP John Wu 有一系列 IT 鐵人文,是新手上路很不錯的參考: [鐵人賽 Day01] ASP.NET Core 2 系列 - 從頭開始 - John Wu's Blog如果你習慣...
View ArticleASP.NET Core 練習筆記 2 – Ubuntu + SQLite + Dapper
繼續 ASP.NET Core 專案練習,本階段的戰術目標:嘗試在 Linux Ubuntu 16.04 上跑 .NET Core + SQLite + Dapper。Ubuntu 遠端桌面設定 Ubuntu xrdp 支援使用 Windows 的「連線遠端桌面」程式(RDP Client)登入桌面環境,還可在主機螢幕操作桌面之外另開一個虛擬獨立桌面環境。 但有個問題是 Ubuntu 13.10...
View Article