Vim 打造 Linux C++ 編程環境-vimrc 基本設定

打算採用 Vim 作為 Linux C++ 程式開發環境的原因有兩個:

  • CodeLite IDE 工具的專案目錄實在編得蠻糟糕的。
  • Vim 的佔用資源小 (在我的 Chromebook/Ubuntu 就可以命列列模式執行並編譯 C++),可攜性高 (任何一種 Linux 系統下載馬上可以執行),擴展彈性高 (透過 plugin)。

而 Vim 的主要缺點就是 學習曲線高!

不過它比較能如倒吃甘蔗般,當習慣那些鍵盤操作後 (可能要好幾年),撰寫如 C++ 程式可塑性高太多了。

Vim 所有設定資訊均在於 .vimrc 檔案 (位於如 Home目錄下)。該設定檔的設定主要有兩個重點:

  • 編輯器的基本屬性設定。 (如語法高亮、顯示行號、狀態顯示...等。)
  • 外部擴展功能 (透過 3rd party plugin),如 nerdtree/taglist 插件的目錄結構/程式源碼的展現。

關於安裝多種 Plugin 的管理,一般會透過如 Vundle 這類插件管理工具來統籌管理所有插件。

個人目前的初始 .vimrc 設定內容,全係參考對岸所撰寫的文章:
 o Vim改變生活,插件改變Vim (1) — 認識Vim
 o Vim改變生活,插件改變Vim (2) — 認識Vim

執行 Vim 後所呈現的效果如下圖:
.vimrc plugn & 環境建置 版本一

閱讀全文 »

Linux C++-開發環境與Hello程式

實作目標:在 Ubuntu 與 Raspbian 建立 C++ 開發環境。
副目標:撰寫並執行 Hello 程式,以測試開發與編譯環境。

實作:

  • 關於 Code::Blocks IDE
    Linux C++ 老手普遍僅以 vim 為程式碼開發平台,並以 g++ 與 Makefile 工具達成自動化編譯的目的;不過對新手尤其習慣 Windows-based 具有整合開發環境的開發人員來說,只用上述命令列模式指令來編輯與撰寫 scripts 難度高了些。

    Code::Blocks 是一個開源、跨平台的 IDE 開發工具,可以撰寫 C/C++, Fortran 等程式語言;除了提供視覺化的開發環境外,也可以透過其 plugin framework 擴展功能,例如得以增強在程式編譯與除錯方面的功能。

  • 安裝 Code::Block & gcc/g++
    Code:Block 安裝非常容易。Ubuntu 可以透過 XWindows 下的「軟體中心」搜尋「Code Block」找到安裝即可;Raspbian 則在 Pi Store 以同樣關鍵字搜尋安裝。

    至於 gcc/g++,先釐清這是兩種不同的 compiler。gcc = gnu compiler collection,可以編譯多種語言;g++ 則只可以編譯 C++ 程式。關於兩者的區別,可參考-gcc和g++的區別

    Ubuntu 14.04 只需另行安裝 g++ 編譯器即可 (同上安裝方式);而 Raspbian 則已預行安裝。只要在 terminal 下打:

    # gcc (or g++) - v

    即可查知是否已安裝及其版本訊息。

  • 閱讀全文 »

聊聊 C# 實作 Excel 選擇權報價交易系統

前兩個月有位委託人希能協助在 Excel 實現台指期選擇權契約報價暨自動交易決策系統。他說原來已有透過一位獨立開發者利用 Excel VBA 撰寫,但無論如何都無法符合他的需求,甚至連正常執行顯示報價都有問題。

直覺聽來,我是不可能考慮使用 Excel VBA 來實作選擇權報價的,它需要動態處理即時資訊的更新太多也太過頻繁,且實現邏輯可能比想像得還複雜,要能動態處理運算並處理選擇權契約月份與履約價格,這非得使用 OOP 語言來實現會容易許多相對也比較有擴展的彈性。

原來是不打算接受這個委託的,因為要克服相關技術的難點預期應該不少。不過後來想想,反正早有計畫要利用 C#.NET 實現包括報價資料源的連接、當沖策略的設計、自動下單等功能,並直接以 Excel 當使用者介面 (GUI),可以直接利用其簡便的圖形報表呈現所需的結果。

由於幾乎是從無到有,且個人對即時性 (real-time)系統的設計實現並不熟悉,包括從研讀大量相關文件到寫碼實作,整整花了約有一個月 part-time 時間,總算能實現在 Excel 畫面上呈現選擇權履約價的報價表。

Excel 實現選擇權報價

初步實現的功能包括有:

  • 自動判斷每個月星期三的結算日,由此可決定起始的契約月份。
  • 可動態選擇選擇權契約月份。
  • 可任意排序選擇權項目。
  • 可自動判斷與更新台指期近月份報價暨昨日收盤價。
  • 閱讀全文 »

軟體思維顧問

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

Personal