Quantcast
Channel: Kenmingの鮮思維
Viewing all 288 articles
Browse latest View live

[簡單開箱] 2018 年終購入的 MSI AERO GTX-1060 6G 顯卡

$
0
0

前兩個月把使用了一年多的 GTX-970 顯卡給二手 3千多元售出,原因是我的 PSU 電供瓦數不足,沒幾天就必然當機,不勝其擾。

賣掉後先暫用老舊的 AMD 6850 替代,當然就無法玩一些吃畫面的電玩大作,如 GTA V、Skyrim SE、巫師3等。不過我還是用這片老卡把 Hollow Knight 給全破關,這可是我這幾年玩過最充實的類惡魔城的上乘遊戲之作,操控非常吃技巧的。 :)

還有,我都會用 Go Review Partner 使用 Leela Zero AI 圍棋引擎覆盤,中階以上的顯卡肯定是必要的,否則運算 (會使用顯卡的 GPU) 可會耗上大量時間的。

當然用老舊顯卡還是不行,一堆遊戲都無法玩 (雖然現在玩遊戲時間少多了,但...)。又因為我現在這組電腦已經超過五年了,PSU 等實在不想再換,所以也只能買較低功耗的顯卡。GTX-1060 6G 的顯卡,對我這台老電腦還蠻搭,不過我也不想買全新,現在價格仍頗高 (大概落在八千多元)。

前幾天就在 PTT Hardware 版上看到有人賣二手 MSI AERO GTX-1060 6G 顯卡,今年二月購入、有電子發票、完整盒裝、未註冊、四年保。雖然賣價 NT$5,000,約比同級顯卡貴 500元,但其它要件都很棒,所以還是聯絡賣家請之店到店寄來 (還不錯,至少減掉運費)。

昨天收到,盒子還非常新。
MSI Aero 1060 6G 顯卡

AERO 系列是短卡,正符合我的需求,因為電腦主機板的插槽保護插銷全斷掉,太長的顯卡可能會接觸不良。顯卡風扇沒有灰塵,看來賣家真的很少使用。
MSI Aero 1060 6G 顯卡


總共提供了 2xHDMI、2xDisplay port、1xDVI,讚!可以接到最多五台螢幕耶?!,看盤很方便的。
MSI Aero 1060 6G 顯卡

今年一月才製造出廠,還是很新,現在買還有三年多時間的保固,很有保障。
MSI Aero 1060 6G 顯卡

雖然短卡只有一個風扇,但我已作過功課,這款 AERO 散熱與靜音效果相當好。
MSI Aero 1060 6G 顯卡

短板安裝對機殼沒有負擔,即使要安裝在 ITX 機殼也是沒有問題的。
MSI Aero 1060 6G 顯卡

這款 MSI AERO 1060 6G 效能還來得比前一代的 GTX 970 (4G)還來得好些,而且功耗相比又低上很多。我只多花一千多元從 970 換上 1060,C/P 值超高的啦。

啊,跨年夜就好好來玩些電玩大作吧。嗯,就來玩玩 歐卡2 好了。開著卡車跨年,豈不快哉。 >_<


軟體技術人員最愛卻也是尾大不掉的萬用 Database Manager 物件

$
0
0

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

上星期我在教授 TDD.NET 測試驅動開發課程。其中有位學員分享他們公司會計系統的部分程式碼 (沒有機密性議題),想知道這該如何撰寫單元測試 (Unit Test Code)。

我先用 EA (Enterprise Architect) UML 工具掃描程式碼反轉為 類別 (Class) 圖,老天!數百個 Windows Form (每一個 Form 他們稱為 Report) 全連接到一顆共用的 DB Manager,封裝了基本的 CRUD 行為,再存取資料庫。剛掃進來時還真嚇了一跳跳,那個 Form 的連線,有如積體電路般密密麻麻的共同連接到如同就是 CPU 地位的 DB Manager!

2tier universal db manager

這肯定就是典型技術人員的傑作,用許多稀奇古怪的實作方式,讓所有的表單 UI 程式,傳進來 SQL 敘述,然後再去存取資料庫。看似方便簡單,但這顆萬用的 DB Manager 已經被約束了特定的實作技術與特定的資料庫,所以當然無法抽換,原來他們使用 ADO.NET 的連線,現在是不可能換成 Entity Framework;不僅如此,內部程式碼的擁腫肥大,當時的技術人員一離開,幾乎達到無法維護的地步。


還有,他們許多相關於會計的企業邏輯,都零散分佈在表單程式,或用 "艱澀難懂的 SQL 字串" 包起來,可說是毫無組織可言。想要改成 Web 版?想要擴展或修改功能?那當然只有重寫一途!

有趣的是,前桌另一位算是較為資深的同學無奈說道,他們公司的程式碼基本結構也是如此。 !^^

所以,這樣到底如何撰寫所謂以 "類 (Class)" 為單位的單元測試程式呢?

答案是:沒有辦法!也沒有意義!! (雖然勉強來說技術還是可行的)

要我的話,我寧願重寫!嗯,這字眼不好聽,就叫 "重整" 好了。 注意!重整與重構 (Refactoring) 可是完全不同喔,重構的前提是建基在有單元測試程式碼的前提下。

怎麼辦!?這位年輕的學員才剛從某機構的就業養成班結業沒多久,對軟體業這行可還是充滿了憧憬。但如今接到這種超級燙手 (前述的資深技術人員已離職) 的系統維護,這可如何是好?

我建議他比較有機會的緩衝方案:

1. 既有的系統維護,逐步理出共用價值最高的企業邏輯,將之抽離出來放在自行設計的共用 Service 物件上,並且馬上就要為其撰寫單元測試程式。
2. 新開發的功能,務必至少以小功能模組 (Small Functional Module)為開發/維護範圍,一開始就抽離出屬於該模組相關邏輯的 Service 物件,然後還是用原來習慣的方式設計 DBManager 物件,但被收斂侷限在該模組內,如此讓其的共用耦合性盡量降低。

3tier functional module structure

現在這位學員的軟體設計能力尚不足,若待逐漸對結構面的設計觀念提升 (當然要實作面配合),這也才比較有機會施以後續的結構重整-也就是重構的實踐了。

先以小功能模組為單位的開發 (會計 Domain 不了解,如果以人事來說,例如 考核、出缺勤、請假等功能模組,甚至還可以再更細部的模組分解),讓其有著基本的 3-Tier (Presentation、Business Logic、Data Source) 分層結構,如此未來的延展性才有機會。

當然更講究來說,可以參考個人所規劃的 Enterprise MVC (版內檔案區有 Model 檔可下載參考,或以其當關鍵字可參閱原來有撰寫的文章) 分層結構框架。如此系統的彈性、延展性更好,更有機會創造系統的再利用價值。

「軟體需求分析與塑模」- 單一作業流程的塑模

$
0
0

本文收錄於 我的電子書「軟體需求分析與塑模 – 第二章、企業流程的分析與塑模」。

描述與紀錄單一作業流程內部的一連串活動,使用 UML 活動圖 (activity diagram) 是最為適切的。

依據 UML 三巨頭的論述,活動圖主要的目的在陳述活動與活動之間的流程控制的轉移 (control flow transition)。
Activity diagrams emphasize the flow of control from activity to activity. (《The Unified Modeling Language User Guide》, Grady Booch, James Rumbaugh & Ivar Jacobson, 1999, pp. 257)

這裡所謂的活動,可以指企業的活動,也可以指應用程式中的某個特定功能。

不過一般來說,由於「活動」的定義並不如「物件」那麼明確,因此,在進行系統設計時,一般比較不傾向於利用活動圖來表達應用程式的結構 (採用物件模型較為恰當);也因此,活動圖通常會比較適合用於表達企業活動的工作流程關係。除此之外,由於活動圖非常類似傳統的流程圖 (flow-chart),因此,活動圖也適於表達細部程式的程序性結構。

參考下圖,藉由一個請假作業流程來說明 UML 活動圖的主要圖形元素。

圖、請假作業流程活動圖的基本圖示語法

 

  • 起始點 (Activity Initial)
    起始點指的是一連串活動的開始點。在一張活動圖中,必須要且只能夠有一個起始點。
    起始點的圖示是「
    圖、活動圖-起始點圖示
    」。
  • 結束點 (Activity Final)
    結束點指的是一連串活動的終結點。在一張活動圖中,可以有多個的結束點。
    結束點的圖示是「
    圖、活動圖-結束點圖示
    」。
  • 活動 (Activity)
    活動是活動圖中最核心、最重要的一個元素。前述已提及關於「活動」的定義:一個必須履行的主要工作,為以滿足一個操作上的契約。

    活動的命名必然是「動+名詞」的詞性,以突顯它表達的是要 ”做” 的 “事情” (do something)。

    界定單一的活動是依據在某一特定期間 (specific time) 內所作的事情。

    例如:「醫院櫃台人員處理病患的掛號服務」就是一個活動。在這一特定期間內,櫃台人員在該活動的主要目的為:「處理掛號」,因此就以該目的為該活動來命名。

    許多需求分析人員對於「活動」的界定沒有一個很明確的定義,因此而導致有時活動很大,例如把子系統/模組當成活動;或者把某一個只是細部的操作細節當成活動,例如計算訂單總額。這些都相當不適切。

    另外活動必然是「服務導向 (service oriented)」,標榜的是「要做的事情」。所以也不能把資料本身當成活動主體,這也是需求人員常會出現的問題。把資料當成主體的分析方式是屬於「DFD (Data Flow Definition)」的方法論,但因過早揭露資料的細節,導致開發的複雜性提昇:而「服務導向」的方式則是把資料「封裝 (encapsulate)」於活動的內部,當確認開發的主軸後,再逐一揭露處理的細節。由簡入繁,避免陷入細節紛爭,如此可大幅降低系統開發的風險。

    活動圖中的 Activity 的表達圖示是「
    圖、活動圖圖示
    」。
  • 動作 (Action)
    「動作」必然是包含於「活動」的主體之內,以突顯每一個「動作」是「單一 (atomic)」的工作項目 (work item),一個「活動」會有一到多個「動作」。

    例如,前述櫃台人員在活動-「處理掛號」的期間內,會處理多個工作事項 (也就是多個動作),包括了查詢病患資訊、收取掛號費用與健保卡、列印單據等。

    活動圖中的 action 的表達圖示是「
    圖、活動圖-action 圖示
    」。
  • 轉移 (Transition)

    轉移代表著流程控制權 (Flow Control) 的移轉。當某一個活動結束後,流程的控制權透過 Transition 表達出其移轉給另外一個活動。

    圖、轉移的表示法

  • 決策 (Decision)
    「決策」則代表一個判斷的準則,其表現方式,則是以「 」來表示。

    圖、決策的表示法

    上圖當指定了一個分支時,此時,從分支連接出去的轉移必須要有條件判斷式,這在UML中稱之為「限制」 (Constraint),在UML中的表示法中,限制的表達方式是用一個中括弧「[]」來表示該轉移必須要有條件的限制。

  • 分派 (Fork) 以及會合 (Join)

    分派以及會合主要代表對於後續活動的同步處理。當某個活動結束後,需要同時進行兩個以上的活動(如工作流程中的會簽),則此時,必須利用「分派」來加以表達;而當某個活動必須要等待其前置的多個活動結束後方可進行,此時,則利用「會合」來表達。「分派」以及「會合」的表達圖示,都是「 」的圖形。

    圖、分派以及會合的表示法

    一般來說,在UML活動圖中,分派與會合通常會是搭配一起出現,也就是說,若是你在繪製活動圖時,加入了一個分派點,那麼,活動到了某個特定的地方,多半會有一個會合點,這對於繪製活動圖的檢核來說,是一個非常容易判別的參考點。

  • 分割區塊(Partition)
    分割區塊 (Partition) 在整個活動表達上,是一個非常重要的概念。我們可以利用分割區塊來將活動分配給對應的角色。以上述請假案例圖為例,由於表達了分割區塊,因此可以清楚地知道「處理請假事宜」的這個活動,主要是由「人事部門」這個角色的人來發動並執行
    活動圖中的 partition 的表達圖示是「
    圖、活動圖-partition 圖示
    」。

 

案例1-進銷存系統進貨/退貨作業流程的活動圖

參考下圖一為進貨作業流程的活動圖;另一為退貨作業流程的活動圖。

圖、進貨作業流程的活動圖
圖、退貨作業流程的活動圖

在繪製活動圖時,必須要特別注意一個重點,亦即:活動圖的主要核心是「活動」,因此在活動圖中,要盡可能地把「中介產出文件」(包括表單、報表等)排除在外。

繪製活動圖比較好的方式是要和領域專家直接面對面溝通,並且最好在訪談過程中直接繪製活動圖。根據活動圖覆述一次你在訪談中所蒐集到的相關資訊,如此一來,活動圖所蒐集到的資訊比較不會失真。

但要切記,在繪製活動圖時,千萬不要落入到活動的細節,活動圖所需要捕捉的,是整體業務流程的「大方向」,而非某個單一活動的準確度或是其相關的企業規則 (Business Rule),有關細節的相關描述,應該是在討論「使用案例」時才需要捕捉,若是過早介入流程細節,需求收集 (Requirement Acquisition) 很容易就陷入到分析癱瘓的陷阱,在繪製活動圖時不可不慎。

 

案例2-工作流程文字描述轉視覺化的流程活動圖

下述是一個真實的案例。客戶只給幾行的文字敘述,就希望開發單位實作出適宜該單位運作的工作簽核系統。

客服人員接到信用卡客戶要求臨時調高信用額度,客服人員詢問調整原因並向客戶詢問身份字號、出生日、聯絡住址等登錄之基本資料以確認是否本人,並調閱繳款記錄是否異常。然後詢問客戶打算調高之額度為何及調整之期間多久。確認完畢後,即送出案件,啟動客服流程。

案件送出,即通知客服後勤人員處理,客服後勤人員從工作駐列(Queue)中取得案件後,判斷臨時調高之信用額度是否為客服人員被授權的額度內,若是,則以電話聯絡客戶再確認是否有提出申請,確認完畢即結束流程。

若臨時調高之額度高於客服人員之授權,則後勤人員以電話聯絡客戶後,向客戶確認是否申請並解釋他被授權所能調整之額度,若客戶仍需超過額度,則後勤人員將案件轉呈客服主管處理,客服主管收到案件後,回電客戶確認資料並決定授權金額,確認完畢後即結束流程。

開發單位若僅依此文字描述就據此開發,很容易就產生解讀上的誤解。而若需求分析人員可以先轉化至圖形化的表達,如此可以先行與客戶單位確認需求的正確性,相關開發人員也比較容易理解而不致耗費太多時間在不必要的猜測解讀,甚而作白工。

參考下圖,上述的文字敘述其實就是在描述一段事務流程,主要的目的在於提供顧問「臨時調高信用額度」的企業服務。
這是轉化為 UML 活動圖後的視覺化呈現,是利用文字敘述,抑或是採以設計圖表達,哪種容易讓開發人員解讀,一目了然。這也是所謂「塑模 (modeling)」的威力之所在。

圖、臨時調高信用額度的作業流程活動圖

MultiCharts.NET v12 安裝凱衛歷史行情資料庫的方法 (適用升級後的版本)

$
0
0

我原來從凱衛購買的 MultiCharts 是採用 EasyLanguage 的專業版本,後來又從 MultiCharts 原廠取得 MultiCharts.NET 版本。關於兩者版本的比較可參考官網-Compare Editions

我個人偏好使用 MultiCharts.NET 版本作圖表分析與歷史回測,因為我習慣於使用 C#.NET 撰寫指標等相關程式。至於國內加權指數、四大指數的歷史行情資料,可以從凱衛的下載安裝區下載,而且還會持續更新至近期行情,這點倒是相當不錯。

不過因為我已經把 MultiCharts.NET 升級到最新版本 (目前為 v12),而凱衛的歷史行情資料庫版本卻是 v9,版本可是相差甚遠!是無法直接採覆蓋方式安裝的。

資料庫 (Database) 從舊版要升級到新版本的過程一般成為「轉移 (Migration)」,而 MultiCharts 轉移的方法其實不困難,就是直接線上系統通知有新版本時點選安裝新版本,在升級安裝過程中就會自動完成轉移的步驟,而且不會漏失原來的內容,這點真的作得很好!

所以就是把 MultiCharts or MultiCharts.NET 先安裝 v9.0 版本,也就是要適用於目前凱衛所提供的版本,然後再安裝上述的歷史行情資料包。先確認安裝後透過 QuoteManager 可以看到已覆蓋的歷史行情資料,然後再執行升級的動作。升級後仍透過 QuoteManager 確認資料的一致性。

QuoteManager 確認已正確讀取歷史資料

MultiCharts 與 MultiCharts.NET 的資料庫都是共通的,所以自然就沒有轉移的問題,直接複製/覆蓋就可以。

因為所有的商品都必須對應一個資料源 (Data Source),而舊版本的歷史行情資料包是預設對應至凱衛開發的 KWAY v2 for 9.0 行情報價接口 (僅限於中文版本的 9.0,與國外目前最新版本為 v12 相差了3個大版!),升級之後資料源會是空的,如此是無法在「新增圖表」設定讀取的,所以建議將資料源改為「ASCII Mapping」。
新增 MultiCharts 圖表並對應 Symbol

另剛開啟 MultiCharts.NET 新增圖表時有出現「Data feed could not be loaded」的錯誤訊息,可以依據官方建議的解法,其實就是確定把所有程序透過工作管理員關掉後,再至安裝目錄執行「DataUpdater.exe」即可。

成為軟體工程師的前兩年我學了什麼?

$
0
0

看了這篇文章:成為軟體工程師的前兩年學了什麼? (What I Learned in My First Two Years as a Software Engineer) 個人也蠻有感而發。

其實我進入職場前兩年,完全與「軟體」這兩字無關。退伍後沒多久先到如同資策會的資訊機構,花了半年時間上了關於 MCSE、Novel CNI/CNI 等與系統管理面的認證養成班。我算是很積極的,上完課的同時就去考認證,接連考取了上述的認證執照 (共 10 來個科目)。

當年認證是很夯的,也還沒有被搞爛 (一堆考古題),所以我找相關系統管理的工作是還蠻容易的。不過我後來選擇擇了一家從事 Client/Server 系統開發的公司,他們在應徵資料庫管理師。因為我對該公司採用 Oracle 資料庫系統極感興趣,起因是上 MCSE 有一門 SQL Server 科目,我對裡面有個範例 (圖書館資料庫表格結構設計) 非常好奇與納悶,為何表格分析可以這樣環環相扣? 問了當時的講師他也不知道。 :)

總之,一進入該公司後,我向經理提出要到 Oracle (當年位於民生東路) 上相關資料庫管理的課程。經理也很乾脆,當年這類課程 (MCSE、Novel CNE) 要價可不斐,至少 5 萬以上起跳。我可是很積極的,從完全不懂所謂的資料庫是做什麼,到考取 Oracle DBA 的專業認證,只花了不到三個月 (每上完一堂課就馬上去考,共有五門科目),這期間 K 的原文教材可是有 3000 多頁,只不過當年學習熱忱洋溢,可說是相當享受那種成就感。

當年我可還是全台灣第五個考上 Oracle DBA 的認證,甚而 Oracle 台灣訓練中心經理想要挖我過去那邊上班,不過當年我還是樂於待在那家公司,也可說是感謝那位經理能給我教育訓練的預算讓我上課充實技能。

不過這樣待了一年,老實說,我對與「系統 (OS/Network/資料庫)」的相處發現興趣不太大,工作上只要把關好兩件事:備援與效能調校,那就相當輕鬆了。所以閒暇之餘,想要自行寫一個圍棋 (學生時代最熱愛的棋藝,也在圍棋協會昇上業餘初段) 對弈的軟體。我還記得第一個自學的程式語言就是 Java,為此我又在工作期間花了一個月時間買書用力 K 相關語法,然後又去考取了一張 SCJP 認證。雖然勉強可以「寫出來 (那時我還是用 Java Applet 寫的)」,但程式碼卻是「落落長」,非常沒有成就感。

就是那個時候我才第一次聽到所謂的 OO (Object-Oriented) 物件導向這類神秘的技藝,聽說會了它就可以解決軟體許多相關的問題。 (能解決什麼問題我也不知道 !^^)

反正當年我還特別跑到重慶南路位於2F的「巨擘書局」,買了五本 OO 原文的書籍,當然沒有一本看得懂。那時國內也出了一本「世紀末軟體革命」,賣得嚇嚇叫,理所當然也跟風買了一本,用力研讀內容覺得好像很神,應該是技術能力要相當高深才能看得懂,總之當年我就是看不懂在寫什麼。現在當然可以理解了,然後也才知道這本書內容其實言之無物的。 >_<

真正引領我進入軟體業這一行的,是我去上當年應該也只有唯一教授物件導向的 MISOO,而且講師對所謂「虛」的哲理掌握以及應變的機智還有相當幽默的口條,都是我從未見識過的,非常折服。所以後續幾年,甚而辭掉穩定且收入不錯又超級輕鬆的工作,有點算是弟子類型,跟著學習 (還有開車當司機,哈)。

嗯,本篇主題是擺在軟體業的前兩年學了什麼?!

回想起來,我只知道進入所謂的軟體業前五年吧,我完全不知道我學到什麼!當時的 導師兼 Mentor 絕不會告訴你 How-to,也不會告訴你答案,一切都要你從自身去體悟,再把自己的心得說出來聽,然後幾乎都是被否定。那種心裡的挫折感,導致我期間有兩年的時間完全放棄,任何一本書 (除了聖嚴法師的著作) 都無法閱讀,甚至還得了焦慮症。

總之,以前所學的都是「務實」,有學有看有操作就會 (How-to)。但「物件導向」的哲理卻是「務虛」的,你必須對 What & Why 先有相當的理解,然後又不能只唱高調,還要能「落實」,也就是「虛實合一」都要能掌握,那種難度,對資質駑鈍的我,難如上青天!

還算運氣,雖然沒有「頓悟」的天份 (在軟體這一行10幾年來我只看過一個有這樣的天份),但撐久必勝,前五年不斷的看書 (幾乎看不懂)、不恥下問 (大都沒人理,因為問題太幼稚)、反覆思考問自己 ....等等。大約就是五年後,在逐漸「體悟 (漸悟)」的過程中,突然某個時間點就「蹦」的「頓悟」了,套句 Martin Fowler 所說:「腦袋恍如重生」 :)

這個時候就很容易理解各類書本內容作者的假設點了,也知道哪些可以學習、哪些有問題。學習 How-to 也相對輕鬆,因為很容易找到答案。當然不是說現在你已經通曉一切,而是如同對比武功修煉來說,當有一定的內功修煉基礎後,學習任何外功夫,就相當輕鬆很多了;也可以說也比較能掌握「通往彼岸的那一條路了」。

純粹有感而發,也祝福各位只要能找到自己的熱忱,然後工作上又能發揮所長,在「虛 (成就感)」與「實 (報酬)」能得到相當的回饋,那就已算是圓滿如意了!

Visual Studio 使用 Quickfix 重構工具簡單說明與錄影操作示範

$
0
0

請水電師傅拉了 5/6 樓大廈公寓的網路線 (暗管)

$
0
0

我家是現住大樓中的 5、6樓 (最高6樓),但並不是透天,電錶也沒有共用 (所以無法走電力線網路),總之雖是上下同一層,但彼此間都無法互通。

我是租賃中華電信的 100M/40M 光纖 (最高只能到這速度),小烏龜就放在 6F 客廳,然後買號稱所謂的「穿牆王」無線路由分享器無線連接樓下。但無線效果其實仍很差,我家蓁妮 (住5F) 經常哇叫無線速度超級緩慢,不勝其擾。

想過太多的方案,也從如 Mobile01PTT 等相關論壇爬文作了很多功課,但無論是高增益天線、強波甚或高檔的無線路由器,網友們幾乎都說效果不會好,最好的方法就是可以上下樓能拉實體網路線連接。

其實我也曾經問過網路公司與附近的水電行,他們都說我們這類住宅 (已有20年) 是無法直接拉網路線的,因為線路管老舊且沒有預留網路線的空間。

這次我打算一次性能解決這根本問題,所以再找網路上有否推薦的水電師傅,然後無論是暗管或明線,總之就是一定要拉實體網路線串接上下樓層,然後我再用兩台無線路由器 (已選好採購兩台 ASUS 無線路由組 AIMesh) 覆蓋層樓的房間。

算是胡找蝦找,就從露天搜尋「網路佈線」,然後看有留電話的就直接打電話過去詢問。我覺得運氣真的很不錯,找到這位「佳音網路工程水電行」,是位看來蠻年輕卻是技術相當純熟的師傅,他說隔天就可以過來拉線,拉一條線 NT$2,000,無論走暗管或是明線,嗯嗯,這價錢我很能接受。

隔天早上九點鐘師傅就準時過來,他看了看,請我帶他檢視客廳原Cable線輸出孔與門外走廊的電力箱。察看結果給了我好消息:看來是可以透過暗管連接上下層樓與走廊-客廳。

5/6F 網路拉線 (暗管)

開心啊~ 第一次有水電師傅說可以通暗管,如此就不用走明線,也就不需要對牆壁鑽孔了。
5/6F 網路拉線 (暗管)

不過通管過程中常被卡住,師傅請我用沙拉脫伴水在紙杯上,然後往要通的孔倒一些進去,然後再用所謂的「水線」再接網路線,如此通個幾次,我也在另一側幫忙拉,總算可以拉通啦。
5/6F 網路拉線 (暗管)

不過這線路管道確實也老舊塞滿了許多碎石,拉一條網路線已經很勉強了,但我已經相當滿意,各自拉到客廳外再用 Hub 分接就可以了。
20190402_094055

20190402_093030

師傅的技術真的很好,竟然一個多小時就乾淨俐落的連接好上下樓並通道客廳出來。所以乾脆我再多花一千元請他幫忙重拉我原來用扁平的 CAT5 網路線從天花板牆壁走線到另一側通道我房間外牆壁。
5/6F 網路拉線 (暗管)

師傅帶來的網路線是 CAT6 規格,這樣爾後要接 1GBps 網路介面的 NAS 也是沒有問題的。
5/6F 網路拉線 (暗管)

所有的網路線接通完畢,師傅還會使用網路測線器測試訊號是否正常,相當專業。
5/6F 網路拉線 (暗管)

其實原來我還希望師傅能再幫我透過電話孔拉一條從 6F 客廳到我工作房間的網路線,現在我是自行透過牆壁再穿出門接到客廳的無線路由器,很難看,能走暗管是最好的了。可惜他帶的網路線長度不夠,只好暫先作罷,可能就是另行擇日再請他來拉線。

總之,這次共花了3千元就能完全的連接一條 CAT.6 網路線連通上下樓層,解決了我心中多年來的難題,可說是相當相當滿意。

再來就是要在 5、6F 各安裝一台無線路由器,我已經從淘寶購買了 ASUS AC86U + AC68U 組合。主路由是 AC86U 放置 6F 連接中華電信小烏龜,並準備改安裝梅林韌體;5F 則是放置 AC68U 並透過華碩特有的技術組成 AIMesh。

這待另文再來作簡單開箱分享,並另外也會寫一篇設定的心得分享。

[簡單開箱] 從淘寶購入 ASUS AC86U & AC68U 無線路由器

$
0
0

跨樓層的無線連接解決方案,最佳的方式就是先各層樓以實體網路線連接起來,然後在每一層樓的主要位置上架設無線路由器,並最好就是 2.4G/5G 訊號無縫接軌,並位於同一 SSID 內,如此所有行動裝置就不須再行切換 SSID。

目前最流行的解決方式就是架構 Mesh,組合多個有支援該規格的路由器而形成覆蓋大範圍的無線網路。不過一般有支援 Mesh 的路由器反而功能普遍較陽春,且僅能限同一款型號的路由器使用。

爬文作了功課,尤其是對岸的玩家們,普遍挺推薦使用 ASUS AC88U/AC86U/AC68U 等型號的路由器,功能強大,客製化擴展性佳 (可以跑 Merlin 韌體),而且還能透過他們自家獨有的技術 – AiMesh,可連接同家品牌不同型號的主流路由器 (上述型號均有支援) 組成與 Mesh 相同效果的技術,彈性極大。

我現在狀況就是主路由器與中華電信小烏龜放在一起位於 6F 客廳,並已拉網路線至正下方 5F,可參考-「請水電師傅拉了 5/6 樓大廈公寓的網路線 (暗管)」。另一台次路由器則準備放置於 5F 客廳,兩台路由器就是由實體網路線連接起來,並組成 AiMesh。考量功能與預算,較能符合 C/P 值得方案就是購入 ASUS AC86U (當主路由器)與 AC68U (當次路由器,成為 AiMesh 節點)。

上上星期,馬上從淘寶找一家評價還不錯的店家,購入 ASUS AC86U+AC68U 無線路由器 (還附贈了兩組 散熱風扇,台灣買一組要150元以上台幣。),兩台合價 RMB1,578 (約台幣7,250),然後再花大約400台幣貨運寄回台灣,總花費在 NT$7,700 內。

嗯,為何不直接就在台灣買?明明華碩是台灣品牌,但在台灣買的話,這兩台組合價至少超過1萬元台幣,比對岸高上兩、三千元,我實在無法理解!為何台灣品牌就不能在自家賣得便宜些,甚至竟然還貴了許多?!

ASUS AC-86U & AC-68U 無線路由器


反正撇開抱怨不說,回頭來看這兩台的簡單開箱,AC86U 是前代 AC68U 的繼承機種,網友普遍使用這兩款的口碑大都不錯。

除主機外,盒內附有3根天線、質感很好的變壓器 (插頭可通用大陸台灣兩岸插座規格)、連寬頻的網路線以及一張全版彩色的快速使用指南。
ASUS AC-86U 無線路由器

AC86U 正面照。
ASUS AC-86U 無線路由器

AC86U 背面,底部由左至右分別是:電源開關、DC IN、USB 2.0、USB 3.0、WAN(藍色)、4 LAN(黃色)連接埠。
ASUS AC-86U 無線路由器

AC68U 與 86U 包裝內容大致相同,但多了一張光碟片。
ASUS AC-68U 無線路由器

正面照,我覺得鍍金色的字體看來比 AC86U 還來得有質感些。
ASUS AC-68U 無線路由器

背面與 AC86U 一模一樣的 Layout。
ASUS AC-68U 無線路由器

聽說這兩台機子很「熱情」,最好能安裝外掛的散熱風扇讓其降溫,如此長期運轉較能保持穩定且連線效能應會更好。相當不錯的是,店家還蠻大方的,經要求免費給了我兩組 (每組兩個風扇) 散熱風扇。
AC86U/AC68U 散熱風扇

這邊有淘寶店家專賣這組散熱風扇 (露天與蝦皮也能找到),可以查看安裝細節。其實很簡單,只是用 3M 雙面膠黏貼在機子背面而已,然後方便就是 USB 電源直接連上 USB 孔 (或另買 USB 插頭也可) 就可以。運轉聲音相當安靜,但效果驚人,可以降低 15~20 度左右。
AC86U/AC68U 背面安裝散熱風扇

最後附上兩台無線路由器的合照 (左 AC68U、右 AC86U)。AC68U 設定為 AiMesh 節點後 (第一次設定一定要放在旁邊,否則很難連結成功),就要拿到 5F 客廳。
ASUS AC86U/AC68U 無線路由器合照

到今天我才整個設定且佈署完成,然後透過 SpeedTest 測試的結果,可以說是非常非常滿意,根本解決了我多年來 5樓網路不順的問題。

我會另外再分享一篇關於這兩台韌體 (firmware) 關於官方與第三方 (梅林) 的簡單設定心得 (我現在是使用官方升級到最新版本的韌體),以及網路測速 (使用手機 SpeedTest App) 的數據 (目前我家的網路是中華電信光纖 100M/40M 速度)。


如何從巨觀的需求流程分析,可以直覺無縫的橋接至程式寫碼?

$
0
0

本文同步發表於「FB 軟體設計鮮思維」社團。

這裡採用個人所發表關於需求分析的「MSS」與 程式寫碼的「SSD」三層次分析與實作方法。

需求分析階段的 MSS 三層次

關於 MSS,可以參考原來寫的這篇:「大業務流程塑模的MSS三層次原則」。

o M(multiple) Process。
o S(ingle) Process。
o S(ystem Function)。

    以「請購-採購」作業流程 (business process)為例:
  • Multipole Process:「請購」與「採購」兩個作業流程的表達,焦點擺在「請購」作業內部的一連串活動 (activity)分析。
  • Single Process:「請購」作業流程的內部活動表達,焦點擺在「進行供應商評等及比價」的系統功能對應。
  • System Function:「採購」資訊系統的系統功能界定 (利用使用案例)。焦點擺在「比價」的系統功能實現 (realization),實現的步驟主計有「列出廠商資訊」、「評等列出優先順位供應商」、「儲存比價交易紀錄」。

程式寫碼的 SSD 三層次實作

可以參考「實作 Enterprise MVC 巨觀結構的 POC-觀念篇」內關於「控制類別」的說明。

o S(ubject) 主題。
o S(TEP) 實現主題的步驟。
o D(etail) 實作每一步驟相關的細節 (欄位明細與業務邏輯)。

    承接上述例子關於「比價」使用案例的實現。
  • Subject:「比價」使用案例-對應至「比價Control」控制類別。
  • STEP:「比價Control」類別內的 Function (Method)對應為:
    「ListSuppliers()」、「ComparativePrice()」、「SaveComparativePriceTransaction()」。
  • Detail:「ListSuppliers()」列出廠商的清單與欄位資訊From資料庫;「ComparativePrice()」處理比價的邏輯與評等;「SaveComparativePriceTransaction()」儲存本次比價的交易結果至資料庫。

ASUS AC86U & AC68U 無線路由器組 AiMesh 心得分享

$
0
0

拉好 5/6F 實體網路線,一切都好辦了,只要把 ASUS AC86U 放在 6F 客廳與中華電信小烏龜放一起連 WAN 埠當無線主路由器,然後 AC68U 放 5F 客廳並透過 LAN 埠連接即可。

不過在把 AC68U 放在 5F 之前,務必先與 AC86U 擺在一起,然後各自要先升級官方最新版本韌體,確定有支援 AiMesh,再把 AC68U 設為 AiMesh 節點 (node),讓 AC86U 有找到即可。具體操作方式,可參考官方影片教學。注意,就是要擺在一起才能找到 AiMesh 節點,我只是放2公尺距離就無論如何也找不到,害我 Try-Error 好久以為是設定出問題。

ASUS AC86U 官方韌體 AiMesh 設定

設定沒有問題後,我就想來玩玩所謂第三方的梅林 (Merlin) 韌體,據說最佳化了系統效能,而且還能透過 Entware 擴展諸多功能,而且還能直接在主頁就能看到溫度監控顯示,這可是蠻實用的,據說 AC86U/68U 很燒機子,還好我是已經加裝散熱風扇了。
Asus AC86U Merlin Firmware

但很悲催的是,安裝梅林後,AiMesh 功能不見了!爬了許多文之後才知道 AiMesh 是華碩獨有的技術,並沒有授權給第三方直接使用。嗯,對岸論壇是有篇文章教學說其實它只是被遮蔽而已,透過 Putty 連線至路由器並輸入下列指令即可開啟 AiMesh。

nvram set amas_force=1
nvram commit

對了,對岸有個 KoolShare 團隊,他們致力於 ASUS 主流路由器的韌體 (對岸稱固件) 修改,尤其還根據梅林的版本再進一步修改,讓其介面更易操作,甚至還提供了各類插件,點擊即可安裝,相當的方便。

可惜他們發表最新版本的固件後,一律要求用戶給予回覆表示支持,但台灣地區用戶註冊後,因為無法透過手機驗證,所以根本就沒有權限發表回覆,導致我無法取得最新版本的 AC86U 梅林改版固件,這只能待以後有機會再來安裝對岸的固件看看效果如何了。

好吧,先來瞧瞧安裝 AC86U/AC68U 無線路由器組 AiMesh 前後的無線傳輸數據吧,我是使用 Android 版的 SpeedTest master App 測試。

先前使用的是 TP-Link Archer C9 這款號稱是穿牆王當初可是花了四千多大元,但無論如何還是很難穿透地板到樓下,我們家的地板/天花板很是堅固,當初建築這座大廈的建商自己全家也是住這社區,所以完全沒有偷工減料。

同一層樓隔木板房間連線客廳是沒有問題的,100M/40M 速度可達到 88M/43M。 (怪,上載是 40M,但卻可滿速甚至超過?!)
Totolink Archer C9 SpeedTest @6F

到 5F 客廳測速就很慘了,速度剩 22M/4.9M。
Totolink Archer C9 SpeedTest @5F 客廳

5F 房間更慘,僅剩 11M/0.7M,根本幾乎是無法連網的狀態了。
Totolink Archer C9 SpeedTest @5F 房間

老實說,即使換了 AC86U (6F 主路由),只有一台的情況下在 5F 連網效果幾與 Archer C9 差不多,無線訊號仍是無法穿透的。

但拉了實體網路線,然後我在 5F 客廳的電視背後裝上 AC68U 當 AiMesh 節點,連網速度馬上飆昇,達到 92M/41M,與 6F 連網速度根本沒差!
5F 客廳放置 ASUS AC68U 無線路由器

6F 客廳連網速度。
Asus AC86U SpeedTest @6F

5F 客廳連網速度。
Asus AC68U AiMesh SpeedTest @5F 客廳

竟然連在 5F 我家蓁妮房間內連網速度也與在客廳不相上下,這應該就是 AC86U 在同一層樓確實有發揮無線穿透的效果了。
Asus AC68U AiMesh SpeedTest @5F 房間

總算解決了多年來 5樓/6樓 無線網路連線的問題了,樓下家人們也可以透過手機映射到電視看網路影片、YouTube 等,相當方便。

不過安裝了兩天之後某天我老婆說網路突然又變得極慢,隔天我下去檢查後確實如此,但還是可以偵測到兩台 AiMesh 裝置。我把 5F 的 AC68U Reset 重啟,過幾分鐘後連線就恢復正常了。這問題蠻奇怪,待後續再觀察是否有類似的問題,畢竟 AiMesh 算是華碩自家仿 Mesh 規格的技術,是否穩定能無縫切換訊號較強的路由器,仍有待觀察。

** 2019/04/28 更新 **

我的 AiMesh 主路由連接 AiMesh 節點連錯啦!正確如下圖,網路線的一端插入 AiMesh 路由器的 LAN 連接埠,另一端插入 AiMesh 節點的 WAN 連接埠才是。參考華碩 FAQ 說明:[AiMesh] 我可以在 AiMesh 路由器間設定為有線骨幹嗎?
AiMesh 路由器與節點間的無線和有線連線

但我這樣連接以後,即使路由器有重新開機,但樓下的網路測試速度竟然不到一半!查找許久,我在路由器設定中將「連接優先順序」改為「乙太網」,如此 AiMesh 節點連線類型就會設定為有線連接了。這蠻奇怪的,FAQ 明明有說會自動偵測的,但確實無法自動切換為有線網路,只能以手動方式更改。原來我前幾天 5、6樓的 AiMesh 連接雖然錯誤,且其實只設定為無線連接,但連線速度卻仍為滿速,這倒也奇怪~。不過現在確認了上下層樓已經確實有使用有線網路連接兩台 AiMesh 裝置,如此就更能安心可以穩定連線無縫式地切換。
AiMesh 節點連線類型設定為有線連接

購買機械鍵盤保護膜 &&訂製高檔鍵盤線材

$
0
0

原來以為我的 Ducky Shine4 被我家的玄鳳粉圓大了一泡屎尿結果 Shine 個不停掛掉了,但放置了幾個月以後竟然又恢復正常,所以打算與我現在使用的 Filco 藍芽機械鍵盤交替使用。又因為 Ducky 一定要接 Mini USB 線,但即使裝了防寵物啃咬的保護管接頭那邊也是被粉圓咬得稀巴爛。

為了再次防止粉圓在我的鍵盤拉尿短路,也為了防線材啃咬,所以特別從淘寶買了 機械鍵盤保護膜比蒙的定制键盘线(高配),好好保護我的鍵盤。

鍵盤特製 USB 線材

光是我相關的 3C 線材與周邊,就已被我這鳥兒子粉圓咬斷起碼上萬元之多,但又沒奈牠啥法子,屢罵不聽。 :(
愛咬線的玄鳳粉圓


都裝上保護管了,結果粉圓很聰明,從接頭處那邊拉出來啃咬,結果便這副模樣。
被粉圓咬壞的 USB 線材

鍵盤線我過於騷包,竟然買了一條特別訂製要花上近 1千新台幣,但這質感與保護性讓人看了欲罷不能,忍不住敗家下去了。
鍵盤特製 USB 線材

鍵盤保護膜就相當便宜了,我買了 Ducky、Filco、Thinkpad 筆電專用的保護膜,3張買起來才不到新台幣3百,薄博的一層貼合感很不錯,如沒有長時間打字就直接套上打了,也不需要拿開才能打字,打字效果也不會差。
Ducky Shine 4 裝鍵盤保護膜

結果鍵盤線材要連接 Ducky 時有些悲催,接頭太長太粗無法插入 (Filco 就沒有問題),所以現在只好先用一般鍵盤線連接,然後我從蝦皮訂購了 MiniUSB 公轉母右彎L型接頭,不過還沒寄來,屆時再來試看看。
鍵盤特製 USB 線材

[建站日誌] WordPress 網站移轉至糖果主機

$
0
0

原來網站一直託寄在「網易主機」,運作已好幾年均很正常,對其客服高效率的回覆也很滿意,每一次購買都是三年期,但年底已到期,面臨到是否續約的考量。額,主要就是價錢的問題,服務與品質雖好,但價格仍偏高,然後還有一個重要的考量,就是希望我的網站內容可以被對岸直接讀取得到,所以綜合評估,最終選擇移轉到「糖果主機 (SugarHosts)」。

我是選擇「虛擬主機 → 亞太東部 → Shared Pro」方案,搭上聖誕節優惠與一次買三年週期折扣,這樣價錢 NT$5,580,相當便宜,而且頻寬限制、網站數量、附加網域/子網域 等都很寬鬆,這點挺滿意的。

花了快一天的時間將我的網站作移轉,其實難度不高,網路爬文一堆教學,如這篇就寫得很詳細:「如何更換新的虛擬主機?8 個步驟完成 WordPress 搬家」。不過我卡在希望能對主網域 (primary domain) 能否安裝位於 \public_html 下的子資料夾問題試了許久,期間問了技術客服也未果,不過總算爬文後成功自行解決多網站資料夾的組織議題,這另篇再來分享。

後續就看運作是否正常,以及穩定度、效率 …等,若真不適合,糖果主機的 退款策略 看來還蠻清楚實在的,30天內都可以無條件退款。當然,還是不希望再尋覓其它虛擬主機商,移轉這事還是嫌麻煩的。

[建站日誌] 虛擬主機主網域指向資料夾位置

$
0
0

這次移轉網站,我希望在虛擬主機上的資料夾整理能比較有組織性。假如我有兩個網域:primary and seconday domain (虛擬主機商一般允許可附加多個不同網域),然後主網域的前綴設爲 image (這也就是子網域 (sub-domain) 的設定議題),所有主網域的圖檔均可透過該子網域統一讀取。所以主要網域的規劃如下:

www.primarydomain.com (設爲主網域)
image.primarydomain.com (圖檔的讀取進入點)
www.secondarydomain.com(附加網域)

我希望資料夾的儲存位置設定爲:

\public_html\primarydomain => www.primarydomain.com
\public_html\primary_image => image.primarydomain.com
\public_html\secondarydomain => www.secondarydomain.com

但一般虛擬主機上的資料夾結構卻不是這樣設定。預設主網域規定一定要放在位於 \public_html 這個資料夾的根目錄上,但卻無法自行指定儲放於該目錄內的子資料夾內 (subfolder),而至於其它的子網域/附加網域,則是可以任意指定儲放的資料夾位置。

對於多個網站/網域的資料夾結構規劃而言,這並不合適。透過服務單詢問技術客服,得到的回答卻是只能這樣作。我對這結果當然不滿意,自行透過谷歌查找相關解決方案,發現到有同樣需求的用戶其實不少。因爲可能是 cPanel 的設計問題,預設確實無法這麼做,只能透過 .htaccess 的 Redirect 設定方式,但這種方式對一般用戶稍嫌不容易,所以主機商往往不會建議也不會主動提供這種做法。

先從谷歌搜尋關鍵字 "public_html primary domain subfolder",可以查找到一堆相關的資訊。然後我找到下列幾條提供解決方案的文章:
o Host Primary Domain from a subfolder.
o Redirecting the primary/main web host domain to a subfolder.
o 如何將「主域名」指向「子資料夾」

其實解決方法意外簡單,就是只要新增一個「.htaccess」檔案置於 \public_html 根目錄下,然後設定主網域名稱與對應的子資料夾位置。主要內容範本參考如下:

# .htaccess main domain to subfolder redirect
# Copy and paste the following code into the .htaccess file
# in the public_html folder of your hosting account
# make the changes to the file according to the instructions.
  
# Do not change this line.
RewriteEngine on
  
# Change yourdomain.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
  
# Change 'subfolder' to be the folder you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subfolder/
  
# Don't change this line.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
  
# Change 'subfolder' to be the folder you will use for your main domain.
RewriteRule ^(.*)$ /subfolder/$1
  
# Change yourdomain.com to be your main domain again.
# Change 'subfolder' to be the folder you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
  
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]

至於子網域、附加網域的資料夾對應設定,基本都差不多,在 cPanel 界面上操作設定即可。

目前我這樣設定運作是相當正常,對於多網站/多網域的資料夾組織結構後也很乾淨容易管理,不錯!

Manjaro 18 安裝 XAMPP – WordPress 本機開發環境

$
0
0

WordPress 寄放於遠端虛擬主機廠商,而希望在本機具有開發 Web 的環境,我自己是安裝了虛擬機的 Manjaro (安裝版本 18) 類 Arch Linux 系統,但我實在不想再重新一個個安裝與設定相關 LAMP (Linux, Apache, MySQL, PHP) 開發環境,所以找尋有否已整合好的開發套件。

以前我就在 Windows-based 安裝過 XAMPP,原來也有適用於 Manjaro 的系統,但需要手動安裝 (也可以透過 AUR 安裝,但建構過程出現問題),不過安裝過程倒是非常簡單。

稍微注意下,是從 MySQL 被 Oracle 併購之後,開源組織應該是擔心後續的商業利益問題,因而復刻了一個幾乎等同於 MySQL 的 MariaDB,所以安裝 XAMPP 目前版本後的資料庫是 MariaDB 而非 MySQL。原來我是有些擔心因爲主機商提供的仍是 MySQL,而在本機安裝的卻是 MariaDB,不知 WordPress 是否會有相容的問題,但爬文後普遍看來是沒啥問題,所以就先給安裝下去,留待後續再查看是否有資料庫相容性問題。

安裝過程參考這篇:「如何在 Manjaro 18上安裝 XAMPP」,待下載並執行安裝程序後,我是將之設定爲系統自動啓動,創建「/etc/systemd/system/xampp.service」檔案,新增下列內容:

[Unit]
Description=XAMPP

[Service]
ExecStart=/opt/lampp/lampp start
ExecStop=/opt/lampp/lampp stop
Type=forking

[Install]
WantedBy=multi-user.target

可以透過執行下列指令馬上啓動 xampp service:

>sudo systemctl start xampp

然後打開本機端的瀏覽器,輸入 url:「http://127.0.0.1/phpmyadmin」,若正常連線並可查看相關已安裝的 LAMP 版本等訊息就沒有問題了,後續就可以在本機端安裝 WordPress。

安裝 xampp 完成後透過 phpmyadmin 查看

延伸參考:
o How To Setup A WordPress Development Server
o How to Install XAMPP on Manjaro 18
o Archlinux Wiki::XAMPP

[簡單開箱] Switch 動物森友同捆主機&遊戲&週邊

$
0
0

先來瞧瞧所購買的 Switch 主機 & 遊戲 & 手把 & 週邊 大合照:

  • Switch 動物森友會同捆主機。NT$ 13980 (動物之森與隨機附贈賣不出去的遊戲片)
  • 額外購買紅藍 Joy-Con 手把一組。NT$2500。
  • 良值手把第三代。NT$990。
  • 九片遊戲片。(其中三片二手敗入,共約1萬餘元吧)。
  • GameNIR 轉接器 Dock。NT$1950。
  • Samsung Evo Plus 256G MicroSD 卡。NT$1200。
  • 收納架、透明保護殼、腕帶、小週邊等約 1千來元吧。

Switch 主機 & 遊戲 & 週邊 拍拍樂

因這次疫情關係,盡量家人還是多待在家裏比較保險,且我家妹妹 (小女兒) 很渴望有臺充滿療癒湖光色的「Switch 動物森友會同捆主機」,所以月初就與妹妹逛遍整個光華商場與三創大樓,但每家全都要「綁定」隨機附送店家賣不出的遊戲片。爲何不在網路訂?當然有!這些購物網站機制普遍作得很差,整點到才剛按下放入購物車卻轉個不停,然後過了許久就寫說已訂購完畢!

總之,妹妹堅持逛到最後一家,位於三創6F 的 Game 休閒館,店員給我們的感覺特別好,很客氣,雖然也要綁定遊戲,但兩片 (其中一片是動物之森,還好) 加上主機總價 NT$13980 (官網不含遊戲片 NT$9780),其實可以接受的,後來買完沒多久蝦皮竟還有人炒到 1萬4 不含任何遊戲片,超扯!

這家休閒館最好的是不用預付任何訂金,然後貨到會簡訊通知並幫保留兩天,而且可以現金或刷卡不用加趴。雖然沒有比較便宜,但店員們態度普遍都很不錯,所以當貨到時 (23日) 我們過去取貨又在那邊多買一組 Joy-Con 與 保護殼等,妹妹當天顯得非常開心滿足。

Switch 動物森友會主機

Switch 動物森友會主機

這次打着「動物森友會」的主機太夯了,淺藍綠的配色實在太吸引女孩子了,讓人登時就想與可愛的動物們一同在小島上渡過無憂慮的時光,遠離現實生活的壓力與疫情傳染的可怖。
Switch 動物森友會同捆主機

Switch 動物森友會主機

我比較喜歡一次到位,所以該玩的遊戲片已看過諸位電玩大大們的推薦,共購入了九片遊戲片 (可以健身環根本買不到,只好排隊等預訂)。我也不排斥買二手片,所以也從 PTT GameSales 版買入三片,起碼便宜有快1千,C/P 值挺高的。

Switch 實體遊戲片

Switch 實體遊戲片

妹妹當天晚上買回家,就迫不急待裝好主機,並且與她媽媽一同玩着「馬力歐派對」到半夜,這真是非常經典的閤家歡的遊戲,任天堂實在太了不起了,創造這種全家同樂的遊戲主機/遊戲,促進家庭親情。

Switch 動物之森

從蝦皮買了收納架與充電座,雖然作工較粗糙但便宜許多,能用方便就好。
Switch 主機與收納架

然後參考 羅卡 (Rocca) 大的 Youtube Switch 頻道,又敗入了「良值三代」副廠手把,以及一顆不太便宜的轉接器 Dock,可以方便連接 PC 主機螢幕,這樣有時我就可以自己用這手把暢玩《薩爾達傳說:曠野之息》,這是我唯二 (另一是馬力歐:奧德賽) 想玩的任天堂 Switch 遊戲。

Switch 副廠良值手把第三代

Switch GAMENIR 轉接器 Dock

Switch GAMENIR 轉接器 Dock

這兩個星期多來,我家妹妹只要休假就是宅在家裏專心地玩她的「動物之森」,這遊戲魔力真的很大,已經圈粉了一堆 Youtuber 實況主介紹,我是對這精神時光屋興趣比較不大,不過也沒啥機會玩到 Switch,都被搶佔。:XD

花了兩萬多元吧,但覺得這很值得,家人親友們可以一同歡樂遊玩、渡過快樂時光。這次全球的疫情,讓人更加感受到:「平安就是福啊!」。


適合用來作爲虛擬機的作業系統 – Windows 10 LTSC

$
0
0

因爲輔導不同資訊單位與授課的關係,我會把開發環境安裝於虛擬機 (ex. VMware, VirtualBox) 上。Linux-based OS 沒有問題,系統佔用資源小,但 Windows-based 就比較麻煩了,即使我再如何精簡 Windows 10 已安裝的應用程式,仍嫌耗用系統資源,且頻繁的系統更新,實在不適合作爲虛擬機上開發環境的系統。

Vmware Run Win10 LTSC

網路查找是否有合適且穩定的 Windows 10 Lite 版本,然後從對岸看到這篇:「Windows 10 Enterprise LTSC 2019」,才知道原來微軟有發佈 Windows 10 企業版 (Enterprise) 長期服務版本 (LTSC, Long-Term Servicing Channel)。

有別於一般使用者所安裝的 LTSB (Long-Term Servicing Branch) 版本每半年就會更新,LTSC 並不會頻繁更新,且刪除了很多沒用的通用應用程式,比如應用商店、Edge 瀏覽器、微軟小娜。系統更新可選是否下載與安裝補丁 (Patch),所以初始安裝系統精簡且顯得穩定很多,這用來作爲非娛樂用的企業辦公或虛擬機系統的開發環境,非常地適合。


安裝 LTSC 版本其實與一般 Windows 安裝無異,而且安裝過程更快,因爲少掉很多上述應用程式內建安裝。安裝完成後從「控制台 → 系統」檢視電腦資訊,就可以查看 Windows 的版本爲「Windows 10 Enterprise LTSC」。

Vmware Run Win10 LTSC -02

安裝完成後的第一件事,就是關閉掉內建的防火牆 (虛擬機實在沒有必要),還有最影響效能的 Windows Defender,肯定要把它完全移除,這可以參考該篇:「在Windows 10上移除Windows Defender。」

我是切了 2核8線程、60GB、6Gb 記憶體給虛擬機,打開「工作管理員」查看系統佔用資源,開機後記憶體約佔 1.3Gb,確實比一般版少很多了 (當然是無法與 Linux 比較)。

Vmware Run Win10 LTSC -03
Vmware Run Win10 LTSC -04

然後安裝 Visual Studio 2019 Community 版本,確實可以正常執行,這代表 Windows LTSC 的核心組件並沒有被刪減掉,讚!

Vmware Run Win10 LTSC -05

在虛擬機上安裝 LTSC 版本的效果非常滿意!穩定且精簡,又是官方所提供的,所以不用擔心黑客自行製作的 Lite 版本有否安全漏洞或不相容等問題。

Windows 安裝 Rime 輸入法框架與設定詞典同步

$
0
0

我在 Windows 10 系統試用了起碼有五套以上的注音輸入法,但全都不滿意。直到去年在 PTT IME 看板 看到有版友推薦對岸開發的開源輸入法框架 - Rime,才總算碰到順手的輸入法 (其實應該說是輸入法框架,因爲它可以支援多種不同的輸入法)。引用 RIME.TW 線上文檔的介紹:

RIME | 中州韻輸入法引擎 為一款開放原始碼的輸入法引擎,開發者為佛振。

不止於拼音、注音、倉頡、速成、五筆、雙拼、粵拼、吳語、中古漢語拼音、五筆畫、Emoji、國際音標、宮保拼音……。

更可設計出屬於自己的獨特輸入方案,讀《方案設計書》,親手來創作,將輸入法變成理想的模樣。

RIME 之所以叫做「輸入法引擎」的原因就是如此,RIME 作為「引擎」,可以驅動各種不同的輸入方案!

其實我也只會使用注音輸入法而已,而且已有熱心高手提供了 - 電腦-RIME 設定檔『 注音 洋蔥 純注音 版』,更能貼近原來使用的注音習慣,好用的不得了,且輸入的詞彙可以持續記憶,打越久會越用越順。

使用 RIME 還有個很重點的功能就是支援多平台 (Winodws, Mac, Linux, Android),且可以把用戶的設定檔與辭典設定至雲端 (如 Google 硬碟) 儲存位置上同步,這點太重要了!

如何同步呢? 可以參考這篇:在五種不同系統上部署Rime並同步。例如我在 Windows 平台上只要在已安裝 Rime 並指定設定檔/辭典 的資料夾內編輯 installation.yml 檔案,加入底下一行:

sync_dir: 'D:\Google Drive\Sync\RimeSync'

資料夾位置即爲已設定好的 Google 雲端硬碟所同步的資料夾內,然後在工作列的 Rime 輸入法圖示右鍵點選「用戶資料同步」,即可完成同步工作。

不過 Rime 並沒有提供自動同步功能,所以只能寫一個小小的批次檔 (batch file),然後透過內建「工作排程」軟體,指定某時段啓動該批次,藉以達成自動同步的目的。

批次檔內容只要短短一行:

"C:\Program Files (x86)\Rime\weasel-0.14.3\WeaselDeployer.exe" /sync

儲存檔名如「rimesync.bat」,執行它確定沒有問題後,然後加入工作排程內如下圖:

Rime Sync Batch in Task Schedule

RIME 的功能相當強大卻又不失簡潔,而且作者開源無私的精神令人佩服。後續我是蠻想再學習下對岸蠻火紅的「雙拼輸入法」,每次我看到「魔獸爭霸3」如 Sky 的直播時,他那打字的神速歎爲觀止,而且雙拼的學習曲線應該是建立於注音輸入法之上,所以學習曲線應該不高,只是還不清楚是否適合臺灣這邊的用語/用法。

延伸參考:
o RIME 使用者指南
o 【小狼毫】輸入法

Creality Ender 3x 3D印表機 簡單開箱與組裝

$
0
0

** 今年(2020) 4/18 從淘寶創想三維官方所購買的 Ender 3x 半組裝 3D印表機套件。**

其實我已經接近三年時間沒有玩 3D 印表機了,原來已有的三台 (類 UltiMaker、Prusa i3、HyperCube) 都因爲有一些問題而懶得去動手修護。不過還是有 3D 印表機在旁,印一些小東西、DIY,甚至幫我已故障的3D印表機打印一些零配件還是比較方便的。

對岸的 Creality (創想三維) 系列,他們家的3D印表機一直是受到國內外玩家們的青睞,品質佳又便宜,C/P值甚高。國內就有 CR7/8/10 3D Printer 研究社團,有衆多玩家高手齊聚並分享組裝與列印心得。

我也是不經意在四月初看到淘寶的創想三維店,因爲六週年慶,其作爲入門的 Ender 3s/pro (差別在於 Pro 需自行組裝)整整便宜 300人民幣,整組套件竟然只要 RMB 1199,約合新台幣五千初頭,還負責集運到台灣直接貨運到家裏 (不過集運速度很慢,大約要10-15天),這作爲大人的 DIY 玩具確實太划算啦。
Ender 3x 3D印表機 套件

前天從淘寶官網購買的 Ender 3x 套件,今天給它組裝好了,然後也同時更換了 SKR Mini E3 v1.2 32bit 靜音主板 (感謝本版沈大大,優惠的價格又免去從國外訂購還要漫長等待)。
其實已經有三年時間沒玩3D打印了,主因是看到對岸創想三維六週年慶,Ender 3 Pro 只要 RMB 1199!然後我要求客服給我改換成晶格玻璃以及金屬擠出機 (加價 20元),這樣規格就成爲 Ender 3x。
所以總價爲 RMB 1199,而且還含直運到台灣 (但集運速度很慢,約要10天以上)。這樣費用共才約新臺幣 NT$5,200,實在太過便宜。看到國外 Youtuber 的口碑等都相當高評價,且也具有高度的客製化空間 (如加裝 BLTouch),C/P 值確實超高。

第一次組裝創想三維的機器,確實比以前所購買的 Prusa i3 散件組裝容易太多了,且機構件也相對穩固很多。說明紙圖解相當不清楚,必須看國外 Youtuber 的組裝解說才瞭解箇中眉腳。


原來是改換晶格玻璃,沒想到還是有多附了一片磁吸貼紙平台,這真不錯!另外我從其它店鋪買了一些小配件,如 Z軸螺桿穩定器,期能提昇打印穩定度。
因改了 mini E3 靜音主板,Marlin 還沒設定,屆時再來分享設定與打印心得。
總之,作爲大人的 DIY玩具,才花五千來元,確實相當的滿意。 😀

Creality Ender 3x 3D印表機 簡單開箱與組裝〉這篇文章最早發佈於《Kenmingの鮮思維》。

準備退坑 Flickr 轉到 Google Photos 相簿平台

$
0
0

這幾年我的部落格相簿鏈結都是透過 Flickr ,一切運作正常也挺滿意的。我是每次都訂閱2年PRO會員,每兩年約爲 US$45,自動續期,很可以接受。但我年前查看我的訂閱狀況,才發現從前年就給我悄悄地把費用提昇至 99美金,這還沒完,到今年約期結束後,竟改成一年一訂,然後費用達 72美金!
Flickr Renew Record List

當時 Flickr 從 Yahoo 手裏轉賣給非巨頭型的公司 (微軟/Google/Amazon) 就有心理準備了,服務沒有變得特別,年費逐年升高。查找相關資訊,普遍訂戶都哀鴻遍野,而未升級PRO會員的用戶僅只上傳1000張照片,這在現今大容量雲端時代簡直難以想象!參考這篇:「十年了是你迫我走:我不再是 Flickr Pro 會員。」我也決定年底轉換跑道,只是現在挺煩惱的是該如何把原來我 WordPress 網站的鏈結從 Flickr 轉爲其它的平台,可能最笨的方式就是一一地替換,但那可是粗功夫,想想就麻煩,實在挺無奈~ 。

先不想舊相片了,思考未來新相片圖床該轉到哪個平台上。我現在的作法是非照片如 Screenshot 就是與 WordPress 所在位置放同一伺服主機,不過有爲其規劃另一個網域名稱。例如下列這張圖,就是放在「images.kenming.idv.tw」這個網域上 (別於部落格網址爲 www.kenming.idv.tw)。
Screenshot 所在網址


不過若是照片的話,會希望能隨拍隨上傳隨便於整理爲相簿,然後也能方便提供 Url 鏈結嵌入在 WordPress 網誌內。Flickr 目前仍是首選,但迫於收費與服務問題不想再續約,但最好也不要找二線的圖床平台,確實不保險。最大又收費低廉的平台在哪裡?其實就遠在天邊近在眼前,Google 相簿不就是?!雖然它近期也要限制高品質照片上傳只有15G空間,但 100G/200G 空間爲 每月 NT$65/NT$95,收費合理太多了。

不過它要提供給 WordPress 網誌的相片嵌入鏈結挺麻煩的,需要透過一些 WordPress plugin 與 一些技巧,才能確實保障鏈結對應的相片位置不會浮動。這就下篇再來分享如何設定了。下列先展示下透過 Plugin 設定方式瀏覽 Google 的相簿:

延伸參考:
o Flickr Pro收費逐年高升,大家都還繼續嗎?
o Flickr快玩完了!付費訂閱不到1%,揭老牌相簿平台14年血淚史

準備退坑 Flickr 轉到 Google Photos 相簿平台〉這篇文章最早發佈於《Kenmingの鮮思維》。

WordPress 嵌入 Google Photos 相簿與單一相片鏈結

$
0
0

WordPress 要嵌入 (Embed) Google Photos 的某一個相簿 (Album) 並不困難,透過一些插件 (plugin) 做一些設定就可以完成。不過大部分插件都要收費,使用者付費是合理沒錯,但 WordPress 社群的插件/主題大都是採每年訂閱付費,這樣下來可是不便宜。查看免費有支援 Google Photo 相簿的插件就屬「Photonic Gallery」這個功能最強最爲完整。

不過由於 Photonic Gallery 支援衆多相簿平台,以及透過諸多的 Javascript 函式庫實作,在設定上挺繁瑣的,尤其 Google Photos API 的建立與設定等弄得很繁雜,會比較麻煩些。參考這篇:【WP外掛筆記】Photonic Gallery 外掛設定,內文有大致提及到 Google Photos API 的設定。

我這裏展示下在 WordPress 透過 Photonic Gallery 嵌入 Google Photos 相簿的效果。

不過 Photonic Gallery 插件並沒有支持 Google Photos 插入單一相片,原因應該是單一相片的鏈結位址會有變動的問題。如果採以「分享」的方式,可以使用這個網站:Embed Google Photos,它可以確實會有設定分享的相片提供鏈結位址。

但這樣一張張的分享設定 (無法採以相簿爲單位的分享) 實在麻煩,到底要如何能正確取得相片的真實位置呢?這裏有篇:「Google 相簿取得真實圖片位置(插入圖片到文章)」。不過該文方式似乎可能會有些問題,反而底下迴響第一篇的回覆比較正確些。該迴響提及:「若是 https://lh3.googleusercontent.com/…-h66-no 結尾的,很容易就發生消失的機率。但透過 google blog 裡的發表文章->點選插入圖片 (在html模式下)->選擇 google album Archive 中的相片,選擇圖片後點選加入圖片,選擇原始大小或縮小都沒關係->出現
其中 https://3.bp.blogspot.com/…./s200/2018a2.png 沒意外的話應該是真實圖片位置。」

照這思路,我先去 Google Blogger 免費申請網誌,然後新增一份文章儲存成草稿 (不公佈),在其編輯器內新增圖片,選擇圖片來源位置爲「Google 相簿」:
Blogger.com 文章插入 Google 相簿

點選欲插入圖片所在相簿位置 (建議嵌入圖片還是先整理至相簿內比較妥當),並選擇所插入的圖片。
Blogger.com 點選欲插入圖片所在相簿位置

指定插入圖片大小,這裏任選都可以,後續我們可以在 WordPress 內再調整大小數據即可。
Blogger.com 指定插入圖片大小

插入圖片後,右鍵點選複製圖片網址,然後再到 WordPress 內在欲新增該圖片的文章貼上,這裏就可以設定圖片大小,如下圖,原尺寸 S3648,我修改爲 W600 (也可以指定高,如 H480)。
設定 Google Photos 單一相片的大小

參考下圖,就是我實際嵌入 Google Photos 相簿內單一圖片,圖片位址就不會有變動的問題了。 (否則 blogger.com 網誌內的圖片豈不亂哉?!)
嵌入 Google Photos 相簿內單一圖片實際位置

WordPress 嵌入 Google Photos 相簿與單一相片鏈結〉這篇文章最早發佈於《Kenmingの鮮思維》。
Viewing all 288 articles
Browse latest View live