關於安裝 GalliumOS @Acer Chrombook CB3-111 簡單心得註記

因為有位阿呆讀者在先前撰寫的一篇:「Acer Chromebook CB3-111 安裝 Coreboot/SeaBios (可 USB 開機)」留言,他強烈推薦 GalliumOS,針對 Chromebook 的Kernel、Driver、scheduler最佳化,更適合安裝在 Acer Chromebook11 CB3-111上。

所以昨晚花了幾個小時安裝來體驗看看。GalliumOS 有針對各類 Chromebook 上的處理器作個別的最佳化,像我的 Acer CB3-111 是 Bay Trail,所以就下載相對應的 ISO 檔。

安裝超簡單,ISO 檔寫入 USB 碟開機後進入 Live 桌面,再從其中雙擊點選安裝圖示;過程很順利,完全沒有相容性的問題。
GalliumOS@Acer Chromebook CB3-111

閱讀全文 »

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 & 環境建置 版本一

閱讀全文 »

Lubuntu vim 安裝繁體中文幫助手冊

最近迷上使用 vim 作為 Linux C++ Coding 的 IDE 開發平台。

原因是 vim 可塑性與可攜性極高,只要在任何 Linux 平台如 Ubuntu 利用 apt-get install vim 即可馬上安裝完成;然後可以將自行整理的 .vimrc 設定檔/plugin 等放置於 GitHub 即可利用 git clone 回來本機內,實在是太過方便了,這得以實行:

Coding Everyone, Coding Everywhere.

不過我對 vim 的使用知識近乎零,而且初期的學習陣痛期會持續一段時間 (使用 vim 可能要堅持好幾年,然後才能倒吃甘蔗般的流暢自然),所以必然會時常需要查找相關使用說明。除了查找 Google 外,透過內建的說明文檔隨時查詢鍵盤指令那更是絕對需要的。

內建當然是英文原文,不過對岸已經有提供了簡體中文化的專案:Vim Chinese Documentation

我這裡參考了這一篇:Vim 中文用戶手冊(繁體字),然後自行至上述簡體中文站台下載最新版本的 Vimcdoc-1.9.0,再利用 ConvertZ 工具轉成繁體中文 (文檔內容),並打包成繁體中文安裝包上傳至 MEGA 供下載:vimcdoc-1.9.0_tw.zip

在 Lubuntu 環境下的安裝方式蠻簡單,只要將下載的檔案解壓縮至 /tmp/ 資料夾下,然後執行下列安裝:

$ cd /tmp/vimcdoc-1.9.0
$ chmod +x vimcdoc.sh
$ sudo ./vimcdoc.sh -i

因為是用 root 身分,所以安裝後直接執行 vim 後 (不需設定 .vimrc)按 :help 即可出現繁體中文幫助手冊;各文件主題,只要打上如 :help tutor 即可查看該主題的完整說明。

完全不會使用 vim 的新手,可以透過內建的教學,利用 30 分鐘的時間學習對 vim 的基本操作與使用。只要在 XTerminal 執行 vimtutor 即可進行教學說明 (全繁體中文說明)。

Lubuntu 14.04 暨 CodeLite開發環境安裝摘記

目的

在 Vmware 環境下,創建 Lubuntu 64bit 系統並安裝必要應用程式以及具有 C++ 的開發環境 (使用 Gnu C/C++ & CodeLite IDE)。

使用 Lubuntru 的原因

  • 輕量 (lightweight)且執行效能佳的作業系統,只要配置 2GB RAM,就可以運轉得相當順暢。
  • 可充分享用 Ubuntu 所有官方支持的套件與儲庫,擴展性極佳。

Lubuntu 執行 PaleMoon 與 CodeLite

Lubuntu Install

閱讀全文 »

建構USB 多系統開機碟-01_使用 Grub2

其實去年初就曾利用過年期間玩了下在 USB 隨身碟安裝與設定多系統啟動。不過當時都是在 Windows 7 環境下設定的,且偏以可驅動的 Live OS ISO 檔 (如 WinPE、Puppy Linux),以及工具碟為主。(當時研究心得可參考文後「延伸閱讀」的鏈結。)

因為今年我設定了要利用閒暇時間學習 Linux 的底層架構,也包括了學習使用 C++ 的程式撰寫@Linux 的目標;同時我也希望出外時可以只帶 USB 碟,內裝了我可以上網瀏覽、文書處理、開發環境等的行動平台,所以安裝套較輕量如 Puppy Linux,並可以把變動永續 (persistent)寫入到 USB 隨身碟內,而不僅只是 Live 那種唯讀而已。

經過兩三天的實作設定,終於可以作到:

  • 在 USB 碟切割多個磁區 (partition)。
  • 安裝 Arch Linux 於某一磁區,且可以啟動與寫入變動等。
  • 可驅動 Puppy Linux ISO 檔,並且可以將所有操作的變動寫回 USB 磁區內。
  • 可利用 Grub2 驅動各磁區的系統,包括上述 Arch Linux、Puppy Linux、各類 Live ISO 檔 OS等。

我想就對上述的列表,個別整理成主題,來分享下關於實作的心得與個人的註記備忘。本篇就先針對如何安裝 Grub2 於 USB MBR 以及基本的 grub.cfg 設定。同時注意下以下的設定僅先針對 Legacy BIOS 環境下,而並針對 EFI 環境,不過設定仍為類似的步驟。

準備 USB 隨身碟

最好使用 32G 以上空間的隨身碟,USB 2.0 or 3.0 均可。我自己是使用這款 Super Talent USB3.0 64GB 讀速130M隨身碟(終保),當時是買來要玩暗黑3,但現在已不玩該遊戲。
USB 3 隨身碟

準備 Grub2 安裝與設定環境所使用的 Host 系統

使用 Grub2 的原因是現今主流 Linux OS 均支持新一代的開機管理程式,而且它可以支持從 MBR (Legacy) 或 EFI (Advance) 開機啟動,且可以驅動多種檔案系統與多類型的 OS,彈性極大。

要將 Grub2 寫入到 USB 開機區,需要準備已安裝有 Grub2 程式的主機 (Host)環境。以前我是使用 Windows 7 環境,不過後來發現到使用 Linux 系統並使用命令列模式來設定,反而較簡單。

關於如何在 Windows 環境下建置 Grub2,可以參考這一篇:
 o [分享] Windows定製Grub2(包括BIOS和UEFI、自定義Grub2路徑)

而個人所使用的作業環境則為 Arch Linux,因為它的 Grub2 設定文件整理得很好,容易找到相關的參考文件。

我是安裝 Arch Linux 於 Vmware 虛擬機上,如此相對方便設定與測試。關於如何安裝 Arch Linux 於 Vmware/Virtual Box 等虛擬機器內,有太多文章可以參考,例如底下這篇就寫得相當好:
 o A Guide to Installing Arch in VirtualBox。

閱讀全文 »

RogueLike in Linux C++-寫在前頭

我想再利用閒暇時間瞭解下 Linux 的程式開發,以俾得以對 Linux 系統底層有更進一步的應用與控制。因為未來開放式硬體的架構 (ex. Raspberry Pi, BeagleBoard, Cubieboard ...etc),必然是以 Linux 為開源系統,並以此為基準點,建立各類硬體裝置控制的應用。

我偏好採用 C++ 作為 Linux 開發的程式語言,畢竟 Linux 系統底層/服務 大都以 C/C++ (其實還是要當為兩種不同的語言,只是 C++ 可以很容易引用 C 的函式庫。)來開發的。再則:

  • 高移植性:重點在於函式庫的跨平台 (Windows/Linux ...)、跨硬體架構 (Intel/ARM-based CPU)!且太多開源各類的函式庫可資引用,方便太多。
  • High-Performance。
  • 物件化的始祖:畢竟我還是習慣採物件化的思維來設計與開發,具 OOP 的機制還是會比較直覺。

我希望初期先透過一個主題來持續學習與實踐 C++ 的開發 (先不需牽扯到系統底層處)。因為畢竟與工作無關,且是當成休閒嗜好的輕鬆態度學習的;所以我想乾脆就把 RogueLike 遊戲 的程式開發作為學習的標的。

因為我現在也正在玩 DCSS (Dungeon Crawl Stone Soup),而 RogueLike Game 不需著重在畫面音效等,僅需利用 ASCII 字符的格狀畫面來呈現即可,所以就不用考量到畫面效果的處理技術。另外一點很重要的是,大部分的 RogueLike 遊戲係以 Open-Source 連原始程式碼都免費釋出,還有許多教學資源可供充分的研究與學習。

我就打算以這一系列-Complete roguelike tutorial using C++ and libtcod,作為我學習以 Linux C++ 開發 RogueLike 遊戲的教案,然後逐步的把心得筆記下來。

總之,我是打算抱著很輕鬆的態度來學習 Linux C++ 的,應該是會視之為 long-term 的學習歷程。

閱讀全文 »

軟體思維顧問

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

Personal