Darkthread

黑暗執行緒
  • Coding4Fun–網頁遙控可動式樹莓派相機

    前陣子入手 3D 印表機,從網路下載現成模型幫老古董 Raspberry Pi B+ 印了外殼,一時懷舊之心大發,翻出舊零件拼裝了一台可轉動鏡頭角度的網路照相機,還騷包寫了網頁版控制介面,摸到一大票新東西,筆記留念一下。 影片 Raspberry Pi 的硬體 IO 介面不如 Arduino 豐富,能控制伺服馬達的 PWM 輸出只有一組,想控制多個伺服馬達通常會外接 I2C 介面控制板,前陣子 玩 Arduino 時入手一塊 PCA9685 16 路舵機控制板還沒拆封,這回正好派上用場。(下圖前方的長方形藍色電路板就是...
  • 修改 NTFS 權限會改變檔案修改日期嗎?

    修改 NTFS 權限、變更檔名會改變檔案修改日期嗎? 這問題乍聽之下無關緊要,在射茶包過程卻可能是左右偵辦方向的關鍵,有追究到底的必要。 今天遇到一起案例。同事報案,某個運行多時的網站忽然故障,由錯誤訊息懷疑是系統無法從設定檔讀取連線字串,但檢查過「設定檔沒有被修改的痕跡」,格外離奇。注意到了嗎?(謎:你都加了「」,要不注意很難吧?)一般我們判斷檔案是否被修改,主要會依據檔案修改日期,而這裡隱藏了一個假設 - 檔案只要被更動修改,就一定會反映在檔案修改日期上。 事實不然,例如這次的網站故障,最後查出來是...
  • 使用 Headless Chrome 擷圖、轉存PDF、爬資料

    Chrome 自 59 版起內建了 Headless 模式 ,允許透過命令列啟動 Chrome 以無 GUI 方式執行,具備與正常開啟完全相同的網頁渲染及 JavaScript 引擎,還可透過網路連線遙控。這個功能可以用於不少有趣應用,這裡列舉幾種實用情境。 註:Headless Chrome 的完整參數可參考 List of Chromium Command Line Switches « Peter Beverloo 網頁擷圖 將網頁存成圖檔或 PDF,過去我是用 PhantomJs 。Headless...
  • 小技巧 - ASP.NET MVC 限定 POST 但開放本機 GET

    分享 ASP.NET MVC 私房小技巧一則。 AJAX 呼叫 ASP.NET MVC 時,基於安全考量應限定 POST 方法。(參考: 隱含殺機的GET式AJAX資料更新 - 黑暗執行緒 ) 不過在開放測試階段,開放 GET 可在瀏覽器網址列輸入 URL 測試較方便,有沒有兩全其美的方法? 於是我寫了一個 Action Attribute,實現「從 localhost 呼叫可用 GET,從正常 IP 存取只能 POST」的效果,像是這樣: HomeController 的 Test Action...
  • LibreOffice docx 轉 pdf 評估筆記

    我有寫了一個 Word 套表服務,最早是 用 C# 呼叫 Word 執行置換及轉 PDF,後來改走 OpenXML SDK,罝換速度快了五倍以上,唯獨轉 PDF 這段還只能仰賴 Word 完成。從 ASP.NET 呼叫 Word Application 會受限執行身分權限過低,Word 程序的生命周期亦較難掌控,最後我決定寫成 Windows Service,以特定登入帳號啟動固定數量的 Word 程序,以 Web API 方式接收並平均消化套表需求。做法可行且運行了一陣子,但有以下缺點: 1.   ...
  • 【茶包射手日記】網頁特定連結失效疑案

    遇上個人射手生涯數一數二的坑爹茶包... 故事是這樣的。接獲報案,有使用者投訴他換新電腦後無法點選內部網站選單的某個連結,其餘功能正常,而全公司只有這一起案例。 起初懷疑是 JavaScript 故障,實際連上使用者電腦測試並未發現 JavaScript 錯誤,而在使用 F12 偵察過程連結忽然正常,正要以「新電腦需經開光才會正常」的靈異理由結案,判定前為求謹慎再試了一次,這才發現問題未解 - 問題只出現在瀏覽器最大化時! 接著我懷疑網頁上有東西遮蔽了連結,想用 F12 開發工具檢查元素卻選不到那個無法點選的連結...
  • 【笨問題】Word 使用非細明體時行距過大

    我有個困擾多時的 Word 問題,每回將細明體、標楷體換改成微軟正黑體或其他字體時,行距會變成超大(例如以下示範): 之前我的鴕鳥做法是修改行距為固定行距,但一直不知其所以然,最近花了點時間研究才理解問題所在與正確解法。 關鍵在於 Word 預設啟用了「文件格線被設定時,貼齊格線」,勾選「檢視格線」後便可一目膫然。 平平是 12 號字,細明體及標楷體尺寸較小,恰好可以塞入兩條格線之間:   當選用微軟正黑體、Google 思源黑體等其他字型,同樣是 12 號字,尺寸卻超過兩條格線的高度...
  • 如何自訂 OpenCC 字彙轉換表

    OpenCC 已提供十分優質的繁簡轉換,不過呢,實際使用下來難免會有些不到位的地方。所幸,OpenCC 的架構開放又有彈性,修改 json 設定檔就能載入自訂轉換字典,如果對既有轉換表或轉換規則不滿意,OpenCC 開放源碼,絕對讓你改到開心為止。 用個簡單例子示範如何自訂字彙轉換。假設我想將「黑暗執行緒在雲霄飛車上吃便當」翻成簡體,如使用包含常用詞彙轉換的設定檔 tw2sp.json,轉換結果如下: 輸出結果為「黑暗綫程在云霄飞车上吃便当」,而我希望保留「執行緒」不要翻成「綫程」,並將「云霄飞车...
  • Oracle NVarChar2 可存中文字數上限問題

    同事分享在 Oracle 踩到 NVarChar2 中文字數上限的地雷,一句話點醒我夢中人,嚇得我屁滾尿流失了魂,原來我也搞錯多年。 不囉嗦,直接看圖。 我們都知道,NVarChar2 的長度上限是 4000,而 NVarChar2 支援 Unicode,不管是中文或英數字,一個字元都算1,所以 NVarChar2(4000) 可以儲存 4000 個中文字? 錯了! 是 1,333 個,如果你試圖塞入 1,334 個中文字元,將會得到「ORA-01401 插入值過大」錯誤。 用 LEGNTH()...
  • 在 Partial View 與 View 間使用 ViewBag 傳送資料

    在 ASP.NET MVC View 引用伺服器端傳來的資料,正統做法是定義 View Model 類別,Action return View(viewModelObject),在 CSHTML 宣告 @model 定義強型別並使用 Razor 語法存取 Model 變數。(延伸閱讀: mrkt 的程式學習筆記: ASP.NET MVC 的ViewModel - 基礎篇 ) 但如果是要傳遞簡單的數字或字串(像是啟用特定功能的旗標、頁面標題... 等等,建議只用於少量、單純與核心商業邏輯較無關的變數...
  • CSHTML Layout Page、Partial View 執行順序實驗

    維護 ASP.NET MVC 專案遇上巢狀 Layout 引用 Partial View 的情境,無法斷定執行先後順序,想必是自己觀念不清,做了以下實驗驗證,順手分享之。 假設有 ASP.NET MVC 巢狀 Layout 並混用 Partial View 結構如下: _Layout.cshtml @{ System.Diagnostics.Debug.WriteLine("_Layout.cshtml"); } <!DOCTYPE html> <html>...
  • VS2017 無法載入 MVC4 專案

    最近接連遇到兩次的問題。 首先是某個用 Visual Studio 2017 開發的專案,同事 T 從 TFS 取回最新版以 VS2017 開啟,其中卻有兩個 MVC 專案呈現截入失敗,其他還有 Class Library 及 Web Site Project 等多個專案則沒問題;改用 VS2015 開啟則能正常載入。 嘗試重新載入專案會出現以下錯誤訊息,並附上一段說明連結: SomeMVC\SomeMVC.csproj: 找不到這種專案類型的基礎應用程式。請嘗試這個連結以取得其他資訊: (其英文為...
  • 【茶包射手日記】SQLAgent 無法執行批次檔

    燃燒一小時寶貴青春才查出問題 Orz,PO 文留念。 同事報案,某個用 SQL Agent 定期跑的批次檔 (.bat) 執行無效,原因不明。其寫法類似如下範例,看起來沒什麼問題: 實測開 DOS 視窗直接跑 ImportBOMFromSysA.bat 正常,於是我將偵察方向導向 SQL Agent 執行時工作目錄是 Windows\System32 所致,但檢查該批次檔有依 TIPS-指定主控台應用程式的工作目錄 一文所提使用 CD 改路徑技巧,加上其 Log 檔未輸出至 System32,初步排除可能...
  • 2018 台北星光馬

    在 2015 年跑過 台北星光夜跑 ,三年後,雖然主辦單位不同,但賽道與時間幾乎一樣,來回味久違的夜跑滋味。 全馬下午四點半起跑,提早出門搭捷運慢慢晃過去,搭接駁車前買了 600 cc 保特瓶喝下肚建立安全庫存,避免天熱缺水狂飲來不及吸收搞到肚子難受。兩點四十左右搭上接駁車有兩段小插曲,車上悶了近十分鐘,有跑友提醒司機才想起忘了開冷氣(登楞),然後疑似行車路線有誤繞了一圈,開了快 20 分鐘才到大佳國小(登楞)。即便如此,三點出頭就到了會場,先在公園大帳篷下躲太陽,快四點才去寄物,順便四處晃晃,噴泉附近水霧瀰漫挺消暑的...
  • 使用 C# 整合 OpenCC 執行中文繁簡轉換

    前篇文章 介紹了輕巧但威力強大的 OpenCC,使用 opencc.exe 可輕鬆完成繁簡轉換。 如果我們要在 .NET 裡寫一個函式招喚 OpenCC 將繁體字串轉成簡體字串該怎麼做? 呼叫外部 .exe 這等小事,自然難不倒 .NET 老鳥,生個 System.Diagnostics.Process,給對 exe 路徑,弄兩個隨機暫存檔放待翻文字與輸出結果,等待 opencc.exe 執行完畢,讀出結果刪掉暫存檔,搞定收工! public static class OpenCCConverter...
更多文章 下一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems