呼叫 PowerShell 模組函式或跑 .ps1 程式難免會遇到程式跑完但結果不如預期的狀況,要找出哪裡出錯,加 Log 是最直接有效的做法。而 PowerShell 有一件好用武器,允許事先在程式偷偷埋入偵錯資訊,平時不顯示,使用者遇到問題時可打開開關再跑一次,就能藉由顯示的偵錯訊息推測發生什麼...

每次接觸新語言、新工具或新平台,在正式投入生產前,我習慣先做好幾件事:確立專案通用框架並研究如何讓「修改程式 -> 編譯 -> 部署 -> 測試 -> 修改程式 -> ...」開發循環最佳化,消除無意義的重複手工,讓思緒專中在程式碼本身,才有機會進入神馳模式,充分享受 ...

都 2021 年了,還需要把 .NET 元件包成 COM+ 給老 ASP/VBScript/IE ActiveX/VB6/Delphi 用的場合如鳳毛麟角,但我有不少文章本來就是寫給有緣人看的 (收到有緣人留言還會一陣激動),這篇文件適合從事古蹟維修的同學,沒聽過 COM+ 的朋友請跳過,把時間花在...

寫好 ESP WiFi 設定程式庫,再也不必為了是否要把 WiFi SSID 跟密碼寫進程式天人交戰,在 ESP8266/ESP32 寫 Web 介面控制硬體的基本框架成形,馬上來個小練習。 四年前買新冰箱,當時曾用 DHT11 + Raspberry Pi + Python 搞過 24 小時溫度監...

ESP32 開發板有多種版本,有些版本有整合 CH340 或 CP2102 USB-to-UART 晶片,開發板上有 Micro USB 孔可以連電腦,除了供電還能從 COM 序列埠上傳程式跟接收 Serial.print() 回傳訊息,開發測試方便許多。 我目前玩過兩塊 ESP8266 及四塊 E...

Oracle 遇難字出錯不算新鮮事,現象不外乎中文字變空白變方格變問號變亂碼,老司機們一眼便知,該怎麼做心裡有數,但這回我遇到超不一樣的變種。(這樣算有吸引詭異茶包的特殊體質嗎?) 碰到一個神奇案例,資料寫入 Oracle NVARCHAR2 時結尾會多出一個 \u0000 (ASCII 0) 字元...

既然講了在 Java 信任自訂 CA 根憑證,就連在 Linux 怎麼做也一起說說。 需要信任自訂 CA 根憑證的場合,除了自行架設的內部網站的 SSL 憑證由自己的 CA 簽發(延伸閱讀:使用 OpenSSL 製作萬用字元 SSL 憑證),還有一種狀況是網站的 SSL 憑證被網管設備置換,而置換憑...

修維 ASP 古蹟遇到問題 - 大清乾隆年間啟用的 OO4O (Oracle Objects for OLE) 在改連 UTF8 編碼的新版 Oracle DB 後中文變亂碼。不想浪費生命在他 X 的 Oracle Client 上,更甭提是 Oracle 11cR2 之後不再支援的 OO4O,我打...

上回聊到程式開發的老鳥魔咒,提到我在寫 ESP32/ESP8266 程式時有個心魔無法克服 - 幾乎所有 Arduino 範例都把 WiFi 基地台的 SSID 跟密碼寫死在程式裡,讓我頻頻呼喊花惹發?把密碼用明碼寫進程式有安全疑慮並有改密碼要重新編譯的後遺症,嚴重違背了我的信仰。如果是 C#,我用...

遇到網站使用自訂 CA 憑證簽發 SSL 憑證,在 Windows 及 .NET 程式需手動匯入並信任 CA 根憑證(做法可參考 使用 OpenSSL 建立 CA 及簽發 SSL 憑證)解決憑證不安全連線被拒問題,但 Java 程式有自己的憑證信任機制,設定方式不同。 為快速驗證 CA 根憑證是否生...

幾年前 Oracle 開始對企業追討 Java 授權費,因商業應用付費界線模糊,不少企業為了避免爭議紛紛改用 OpenJDK。但 OpenJDK 官網只提供 Linux 版安裝套件,至於 Windows,依之前評估,開源社群維護的 ojdkbuild 是首選。 現在更好的選擇出現了。微軟在前陣子釋出...

同事報案,有個 ASP.NET 網站「偶爾」會出現提供者與 Oracle 從屬版本不相容錯誤。這是 Unmanaged ODP.NET 的經典茶包, 舉凡 Oracle Client 沒裝好、存取權限跑掉、多版本並存都很容易踩到雷。(由衷建議大家改用 Managed ODP.NET,能有效改善生活品...

Arduino/ESP 程式執行期間要顯示訊息,開發測試期間時可用 Serial.print() 走 USB 線傳回電腦端。實務執行時不可能永遠連著電腦只為了收訊息,一般會外接個小螢幕,古早時代最常用的是照片裡的 1602 液晶螢幕: 內建 I2C 模組的版本只要接四條電線就能動,但它最多只能顯示...

開發網站有時會遇到一種狀況,某位使用者有個特殊需求,為一個人修改網頁設計正當性不足,但該功能確實可為他帶來可觀效益(我一直把增進人類全體之生活當成寫程式的核心價值呀)。因此,實務上偶爾會出現所謂 VIP 版,墮落自我要求不高的開發者會 Copy & Paste 改一版交差,認真精實的開發者會...