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

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

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

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

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

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

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

閱讀全文 »

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

參考 使用 Visual Studio Quickfix 重構工具的幾個主要類型與範例

這裡提供程式碼練習案例 (放於 Github),可以參考上述網址的操作說明或後述的錄影操作示範。(其中有改寫幾個案例,每一個案例均可透過 Console 程式執行。)

重構範例的操作錄影教學與簡單說明則已發布於「FB 社團—軟體設計鮮思維」:

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

看了這篇文章:成為軟體工程師的前兩年學了什麼? (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 原文的書籍,當然沒有一本看得懂。那時國內也出了一本「世紀末軟體革命」,賣得嚇嚇叫,理所當然也跟風買了一本,用力研讀內容覺得好像很神,應該是技術能力要相當高深才能看得懂,總之當年我就是看不懂在寫什麼。現在當然可以理解了,然後也才知道這本書內容其實言之無物的。 >_<

閱讀全文 »

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

我原來從凱衛購買的 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 確認已正確讀取歷史資料

閱讀全文 »

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

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

描述與紀錄單一作業流程內部的一連串活動,使用 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 活動圖的主要圖形元素。

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

 

閱讀全文 »

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

** 本文同步發表於 軟體設計鮮思維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;不僅如此,內部程式碼的擁腫肥大,當時的技術人員一離開,幾乎達到無法維護的地步。

閱讀全文 »

軟體思維顧問

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

Personal