Blog

更換羅技 GPW (狗屁王) 滑鼠微動、編碼器、電池與清潔

更換羅技 GPW (狗屁王) 滑鼠微動、編碼器、電池與清潔

我買的羅技 G Pro Wireless 滑鼠 (簡寫為 GPW,對岸這支很火,還暱稱 狗屁王) 應該已超過兩年過保固期,使用期間逐漸問題浮現。除了表面有髒垢,電池老化常需充電、側邊按鍵有羅技引為傲的連點問題,更甚者中間滾輪橡膠已磨損捲動不順 …。

當初買這隻滑鼠花了三千多元,超級昂貴,所以也捨不太得直接換新,乾脆就給它來個從裡到外的整修清潔。包括左右鍵微動開關、左側兩顆微動開關 (與左右鍵規格是不一樣的)、中鍵滾輪編碼器、中鍵微動開關、中鍵原裝滾輪、加大容量 (280 → 420 mAH) 鋰電池、全新鼠貼 等。

後續就來分享下換修心得以及購買的零組件規格、所使用的維修工具與踩坑記錄。

換修過程我主要使用的工具參考如下:

我購買的零件,微動開關與鼠貼是從「蝦皮-鍵鼠兄弟」、滾輪與鋰電池則從對岸淘寶訂購 (含運費還是比台灣這邊購買便宜很多)。

閱讀全文 »

利用虛擬化機制包裹舊應用系統 – Postgres + Nginx + Php – Part-1

近期輔導台中某家 ERP 系統開發的單位,她們公司有個客戶服務系統,是使用大約10年前的開源 Bug Tracker 建置的,其基礎應用服務是使用 Postgres 8.4、Php 5.5.3 挺舊的版本與 早期版本的 Apache 在 Windows 環境所架設的。因為她們有計畫要採購更新的伺服器或 NAS,並希望舊有的客服系統能順利移轉,但又不希望整個伺服器系統環境被舊有的系統牽絆住,所以公司高層主管請教我怎樣的作法會比較妥當。

嗯,這雖不是我輔導的範疇,不過基本的系統移轉 (migration) 觀念還是有的,所以就順口回答道:「包起來!」呵,她們當然並不懂我這樣的意思是什麼,所以當然還是會稍作一些解釋,其實就是完整的把原來舊系統的環境,給整個移轉到新伺服器上,並建置在虛擬化的環境,如利用虛擬機 (Virtual Machine) 甚或 Docker 容器化更可以大幅降低系統耗費資源。這種就是屬於「包裹 (wrapper)」的觀念,不要動到原來舊系統的環境,這絕對是最保險的移轉方式。

結果解釋一番,對方還是不太懂 !^^,乾脆就花一些時間,我把她們舊系統的環境,同時利用 Hyper-V 虛擬機,以及透過 WSL 跑 Docker,提供兩種移轉方式讓她們參考。

利用 Hyper-V 虛擬機建置一個 Windows-based 的 OS (這裡我使用 Windows 10 LTSC),然後再安裝原來的應用伺服環境。配合當時的系統需求 (主要是 PHP 版本的考量),所以我找到 XAMPP win32-5.5.33-0-VC11 版本,以及 Postgres 8.4.5.1 版本 (有些意外,官網竟然已經下載不到老舊的版本) 一一安裝。

再來就是作一番設定,主要是 XAMPP 並沒有直接支援 Postgres 資料庫,所以當然爬文看先輩們的設定心得。參考這篇:「How to Integrate postgreSQL Database to XAMPP in Windows」,以及需要在 Apache 內啟用 PHP 的「Short Open Tag」:「How to Enable PHP Short Open Tag (short_open_tag)?」這類的 How-to 設定,然後再把所匯出來的 Postgres Schema + Data (乖乖,竟然有近 5Gb 容量) 再匯入進去,大概花了三、四個鐘頭時間,並不困難。

先利用 Postgres 自帶的 pgadmin 3 UI 工具登入並檢視匯入的資料庫與資料,確認匯入成功以及沒有中文亂碼。

利用虛擬化機制包裹舊應用系統 – Postgres + Nginx + Php – Part-1
閱讀全文 »

安裝 Windows 11 有感 – 為了更充分支援 Linux 子系統

安裝 Windows 11 有感 – 為了更充分支援 Linux 子系統

前篇文章提及了如何在 Windows 10 環境下執行 Linux GUI Apps,所使用的方法是透過 RDP 遠端連結 WSL 內的 Linux。就近再爬許多文,還發現到如果安裝了 MobaXterm,因為該應用程式內建了 X-Server,所以透過 MobaXterm 也可以直接執行 Linux GUI Apps。而更甚者,如果是安裝 Windows 11 系統,因為其內建的 WSL2 同時就併入 WSLg (Windows Subsystem for Linux GUI),這使得在 Windows 環境下更可以無縫式的直接執行 Linux GUI 應用程式。

其實考量到 Windows 11 是去年底才釋出,不免一堆 Bugs 存在,原來是打算今年底待釋出重大更新後才來安裝,但為了能更完整地整合 WSL 環境,所以還是提前給重新安裝。不過沒想到安裝過程並不太順利,主要原因是 Windows 11 要求主機需要設定為安全啟動 (Secure Boot)開啟 TPM (Trusted Platform Module) 模組,以及切換至 UEFI 模式,這意味著原來硬碟磁區必要要從 MBR 轉換為 GPT;然後還需要把原來相容的 CSM (Compatibility Support Module) 模組關閉掉,總之若要直接升級 Windows 10 原有系統,那會相當麻煩,乾脆直接整顆硬碟重灌、BIOS 設定上述條件會比較省事許多。

我的 PC 桌機為去年升級的 AMD Ryzen 3700x + Asus Tuf Gaming B550M Plus 主機板,在重新安裝前先把 BIOS 作番韌體更新 (結果竟然整個 BIOS 設定回復為初始狀態,還要重新設定超頻等設定,真是麻煩)。重新開機後進入 BIOS 更改安全啟動、選擇 TPM 模組、關閉 CSM 模組。

閱讀全文 »

[設定摘要] Windows 10 WSL2 執行 Linux GUI (XFCE)

[設定摘要] Windows 10 WSL2 執行 Linux GUI (XFCE)

安裝完 Windows 10 WSL2 (Windows Subsystem for Linux version 2),就可以透過 Windows Terminal 執行已安裝的 Linux (如 Ubuntu)。不過只能執行 Console 模式,如果要執行 Linux 版的桌面環境,Windows 11 是已經有內建可以直接執行 Linux GUI 應用程式,可以參考:「在 Windows 子系統 Linux 版 (預覽版上執行 Linux GUI 應用程式)」。

而 Windows 10 截住目前版號應該還是無法執行執行 Linux GUI App,需要再另行安裝設定。一般是有兩種方式:

  • 使用 RDP (Remote Desktop Protocol)。這是 Windows based 內建的通訊協定,所以並不需要另外安裝應用程式。
  • VcXsrv (Windows X Server)。這是第三方基於 xorg 的 Windows X Server,需要另行下載安裝。

我是採用 RDP 方式設定連接 WSL2 的 Ubuntu XFCE,設定算是蠻簡單且不需安裝其它套件。具體設定可以參考:

至於採以 VcXsrv 方式連接,我就沒有試過,也無從比較相對於 RDP 的效能、穩定度等。其具體設定可以參考:

底下是個人安裝 WSL2 下的 Ubuntu (20.04.4 LTS) XFCE 桌面環境設定摘要:

閱讀全文 »

SourceTree 使用 SSH 連結 GitHub 與載入 SSH Key 設定摘要

SourceTree 使用 SSH 連結 GitHub 與載入 SSH Key 設定摘要

GitHub 為了安全性議題,已從 2021/08/13 強制要求用戶登入 (authentation) 機制只能採用 SSH 或 Persoan access token,傳統使用賬號/密碼登入方式已不再支援。可參考:「Token authentication requirements for Git operations」。

關於 PAT (Personal Access Token) 具體相關操作,可參考官網文件:「Creating a personal access token」。但該方式還要做相關的權限設定,實在麻煩,所以使用 SSH 登入只要做一次設定相關方便許多。關於 GitHub 使用 SSH 相關設定,可參考國外這篇文章,包括基本原理都有說明,值得參考收藏:「How to Generate SSH Keys for GitHub」。

已安裝好原生 Git,並使用內建的 Bash 終端機,執行「ssh-keygen」命令,如在 Win10 環境下,即會在「/Users/login-account/.ssh」資料夾內 (若為 Linux 則為 ~/.ssh) 產生公/私鑰,然後再把公鑰內容複製貼上至 Github → Setting → SSH and GPG Keys 內所新增的 Key 內容即可,就可以使用 SSH 連線,相當簡單。

如果只使用原生 Git Bash 透過 SSH 連線 Clone 遠端 GitHub 儲庫就可以正常存取了,但是若透過 SourceTree 卻需要另一番設定方可 (而且還有些繁瑣),主要原因是 SourceTree 目前版本只支援使用 PuTTY 格式所儲存的 Key,所以要嘛先透過已有安裝的 PuTTY (或 WinSCP) 設定好 SSH,否則就需在該應用程式內執行下述設定。

閱讀全文 »

微服務的內部分層結構- 洋蔥 (Onion) 架構

** 本文同步發表於 FB社群-軟體設計鮮思維 **

微服務的內部分層結構- 洋蔥 (Onion) 架構

  • 基於 DDD (Domain Driven Design) 設計思維的一種架構呈現。
  • 洋蔥的中心即爲系統最爲穩固的核心 (如圖爲 Domain Model)。
  • 本質仍為三層式 (3-tier) 分層,亦即展示、應用邏輯、資料存取的分層,但特別強調相依反轉 (IoC, Inverse of Control)。

Onion Architecture 分層 (Layer)

  • Domain Model (領域模型)
  • Domain Service (領域服務)
  • Application Service (應用服務)
  • Infrastructure (基礎建設)
閱讀全文 »
軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal