Darkthread

黑暗執行緒
  • 程式範例:byte[] 不落地壓縮 ZIP 檔

    .NET 4.5 起加入 ZipArchive、ZipFile 等列類別,自此不用額外安裝第三方程式庫就能製作 ZIP 檔。微軟官方文件則有篇範例文章, 操作說明:壓縮與解壓縮檔案 - Microsoft Docs ,介紹如何使用 System.IO.Compression 的一系列類別壓縮及解壓縮檔案。 我遇到一個需求,要將使用者在網站查詢的結果,以一筆資料一個檔案形式匯出,再集結壓縮成單一 ZIP 檔方便使用者下載。爬文找到的範例多以檔案形式處理為主,而我想省掉將資料寫成檔案再壓縮的步驟,但直接將記憶體...
  • 小技巧 - 運用 Form target 模擬 AJAX 表單傳送效果

    先定義我所謂的「AJAX 表單傳送」:意指撰寫 JavaScript 蒐集 HTML 表單欄位,再藉由 XHR 傳送到伺服器端,取代傳統的 Postback。其優點包含送單時畫面不閃動、沒有重新載入網頁的延遲以及傳輸運算成本、表單處理失敗使用者輸入狀態不變方便修改重送... 等等,近年來 AJAX 表單已成網頁操作設計主流。相較之下,傳統 Postback 方式(指用<form action="…">配合<input type="submit">或<button>按鈕送單的做法...
  • ASP.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 之後 xrdp 不再支援系統預設的 Gnome 和 Unity 桌面,大部分使用者只好改用精緻度與功能較差的...
  • ASP.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 如果你習慣 IDE 開發不喜歡下指令,那麼 Visual Studio 仍是開發 ASP.NET...
  • 閒聊 - Web API 是否一定要 RESTful?

    傳說 C 語言風格(C#/Java/JavaScript…)程序員依其信仰分為兩大派,自古以來不共戴天: 依我的觀點,寫 WebAPI 的程序員也分成兩派,RESTful 派跟非 REST 派。我屬於後者,是非主流的少數派。 前幾天跟同事聊到 Web API 是否一定要 RESTful,三言兩語說不清,寫篇文章梳理思緒好了。 RESTful API 是指實踐 REST Representational State Transfer 精神的 API 設計風格,其核心精神在於借用 HTTP 協定做為基礎...
  • 閒聊 - RWD、React Native、Xamarin、Cordova,一魚兩吃到底行不行?

    RWD、React Native、Xamarin/Cordova,一魚兩吃到底行不行? 前陣子 Airbnb 發表了 系列文章 ,訴說其在傾力投入兩年之後忍痛放棄 React Native 的心路歷程,來自資深用戶的親身心得特別有參考價值。原文為英文長篇, Oursky (一家創立於香港的Web / Mobile 產品開發工作室) 佛心整理了中文摘要: Airbnb: 我 們一起寫過的 React Native 很巧,前陣子剛好也被問了幾次:網站該用 RWD 還是做成大小網?用 Xamarin ...
  • VS2017 開啟專案找不到 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 正常的狀況之前遇過( VS2017 無法載入 MVC4 專案 ),但這回發生在 Console Appliation 專案...
  • 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,轉換結果如下: 輸出結果為「黑暗綫程在云霄飞车上吃便当」,而我希望保留「執行緒」不要翻成「綫程」,並將「云霄飞车...
更多文章 下一頁 »
Powered by Community Server (Non-Commercial Edition), by Telligent Systems