<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>開源技術教學</title><description>跨平台、開放源碼、自由軟體</description><link>https://opensourcedoc.com/</link><item><title>開源運動的變質：從知識共享到商業槓桿</title><description>開源運動原先是一種理想性的知識分享與傳播理念，強調技術透明、協作共創、讓更多人能自由學習與改進程式碼。然而，隨著軟體產業成熟，這股精神逐漸被商業化運作稀釋，甚至脫離了原意。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/open-source-degeneration/</link><pubDate>2025-11-09</pubDate></item><item><title>部落格 (Blog) 的危機和轉機</title><description>自網際網路問世以來，線上生態已歷經巨大轉變。如今，使用者的注意力大多集中在少數大型平台，單靠個人網站的部落客 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/intro/</link><pubDate>2025-11-07</pubDate></item><item><title>[Perl] 程式設計教學：簡介</title><description>近年來，Perl 的確逐漸式微。 在 Perl、Python、Ruby 這三種特性與應用領域相近的直譯式腳本語言中，新的工具與套件多半會優先推出 </description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/intro/</link><pubDate>2025-08-25</pubDate></item><item><title>常用程式註語標籤整理（Developer Annotation Tags）</title><description>TODO: 📌 尚未完成的功能或工作，需後續補上 新增功能、加註說明、補測試 FIXME: 🔥 明確已知的錯誤，需要修正 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/developer-tags-reference/</link><pubDate>2025-06-10</pubDate></item><item><title>用 ChatGPT 輔助寫程式：從寫教學到寫對話</title><description>曾經，我把部落格當作知識的載體。 早期的我寫 C 語言教學、講平台相容性、貼上我一行一行測出來的 debug </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/chatgpt-aided-programming/</link><pubDate>2025-06-09</pubDate></item><item><title>[Raku] 程式設計教學：變數 (Variable)</title><description>本文說明 Raku 的變數。 實字 (literal) 指的是在程式中直接寫死的資料，例如： 在初期的練習中，我們會用實字來生成程式要用的資料，這樣比較方便。但在實用的程式中，我們會由外部讀入資料，使用實字的機會就少一些。 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/variable/</link><pubDate>2025-03-26</pubDate></item><item><title>[Raku] 程式設計教學：資料型態 (Data Type)</title><description>本文說明 Raku 的資料型態。 以下是一些常見的 Raku 資料型態： 由於 Raku 資料型態有複雜的繼承關係，直接看 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/data-type/</link><pubDate>2025-03-25</pubDate></item><item><title>[程式設計] 入門教學 (使用 Lisp)：基本概念</title><description/><author>位元詩人</author><link>https://opensourcedoc.com/learn-to-program-with-lisp/basic/</link><pubDate>2025-03-24</pubDate></item><item><title>[程式設計] 入門教學 (使用 Lisp)：建置開發環境</title><description/><author>位元詩人</author><link>https://opensourcedoc.com/learn-to-program-with-lisp/build-development-environment/</link><pubDate>2025-03-24</pubDate></item><item><title>[程式設計] 入門教學 (使用 Lisp)：介紹</title><description/><author>位元詩人</author><link>https://opensourcedoc.com/learn-to-program-with-lisp/intro/</link><pubDate>2025-03-24</pubDate></item><item><title>[Raku] 程式設計教學：建置開發環境</title><description>本文帶著大家建置 Raku 開發環境，做為撰寫 Raku 程式的準備。 Perl 6 已經在西元 2019 下半年更名為 Raku。 目前較好的 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/build-development-environment/</link><pubDate>2025-03-24</pubDate></item><item><title>[Raku] 程式設計教學：簡介</title><description>Perl 家族有兩個語言，一個是廣為人知的 Perl，一個則是相對較不知名的 Raku。 原本 Raku 叫做 Perl 6，在西元 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/intro/</link><pubDate>2025-03-24</pubDate></item><item><title>[技術雜談] 用程式食譜 (Programming Cookbook) 學程式設計</title><description>本文說明什麼是程式食譜，並且利用這個概念學習程式設計。 程式食譜是早期的程式設計書籍類別之一。這類書籍以特定程式語言為中心，廣泛地撰寫各個主題及其解方。解方通常是一小段可執行程式碼，可以直接用在自己專案中。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/programming-cookbook/</link><pubDate>2025-03-23</pubDate></item><item><title>[Groovy] 程式設計教學：建置開發環境</title><description>本文會帶著各位讀者實際建置 Groovy 開發環境，做為日後撰寫 Groovy 程式的準備。 由於 Groovy 運行在 Java 平台，要先安裝 </description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/build-development-environment/</link><pubDate>2025-03-23</pubDate></item><item><title>[Groovy] 程式設計教學：簡介</title><description>Groovy 是一個運行在 Java 平台之上的動態型態、通用型程式語言。目前最知名的相關專案是 Gradle 和 Grails。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/intro/</link><pubDate>2025-03-23</pubDate></item><item><title>[C 語言] 程式設計教學：介紹</title><description>除了大專院校會把 C 語言當成教學工具外，C 語言和他的大兄弟 C++ 可說是資訊界最重要的兩個語言。許多重要的軟體專案是以 C 寫成，包括其他高階語言的編譯器或直譯器。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/intro/</link><pubDate>2025-03-17</pubDate></item><item><title>[C 語言] 程式設計教學：在 Windows 上建立 C 語言開發環境</title><description>比起 Unix 或類 Unix 系統，Windows 對於 C 語言的原生支援較薄弱，缺乏單一最佳方案。目前來說，有以下四種方案： </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/write-c-on-windows/</link><pubDate>2025-03-17</pubDate></item><item><title>[部落格] 養成教學：規劃網站</title><description>規劃和建置有一些層次上的差異。前者注重整體方向，後者強調技術議題。本文說明規劃時會碰到的狀況。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/roadmap/</link><pubDate>2025-03-02</pubDate></item><item><title>[Perl] 程式設計教學：基本觀念</title><description>本文假定讀者沒有寫過 Perl 程式或僅寫過少量 Perl 程式，從頭介紹一些撰寫 Perl 程式相關的基本概念和工具，讓讀者可以開始撰寫 </description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/basic/</link><pubDate>2024-05-07</pubDate></item><item><title>[Perl] 程式設計教學：資料型態 (Data Type)</title><description>在電腦程式中，資料型態用來界定資料所占的記憶體大小及該資料合法的操作，像是數字間可進行四則運算，字串可相接等。 </description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/data-type/</link><pubDate>2024-05-07</pubDate></item><item><title>[Perl] 程式設計教學：建置開發環境</title><description>本文說明如何在系統上建置 Perl 環境。Windows 上不會預裝 Perl，故需另行安裝。類 Unix 系統上通常會預裝 Perl，但我們仍然可以視需求重新安裝另一個版本的 Perl。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/build-development-environment/</link><pubDate>2024-05-06</pubDate></item><item><title>[部落格] 養成：常見的文章排序</title><description>從技術上來說，網址本身沒有順序的概念，每一個網址都是獨立的網路資源。 但在建置部落格時，應該要在首頁 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/common-post-orders/</link><pubDate>2023-12-24</pubDate></item><item><title>多平台 Objective-C 程式設計 電子書</title><description>本書教導讀者在多種平台上開發 Objective-C 程式</description><author>位元詩人</author><link>https://opensourcedoc.com/multiplatform-objective-c-programming-ebook/</link><pubDate>2023-11-20</pubDate></item><item><title>[Objective-C] 程式設計教學：在 Windows 以 GNUstep 建立 Objective-C 開發環境</title><description>若想要在 Windows 上練習 Objective-C，可以用 GNUstep，這是一個 Cocoa 的自由軟體再製版本。GNUstep 有提供 Windows 版本的安裝檔 (installer)，但也可以自行從原始碼來編譯；我們兩種方法都會介紹，並且比較其差異。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/build-development-environment-on-windows/</link><pubDate>2023-11-20</pubDate></item><item><title>[Objective-C] 程式設計教學：簡介</title><description>相對於持續進化的 Swift，Objective-C 是成熟穩健的技術，目前主要用於 Mac 和 iOS 程式設計。本文說明學習 Objective-C 的益處和注意事項。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/intro/</link><pubDate>2023-11-20</pubDate></item><item><title>[Windows] 程式設計教學：Windows Subsystem for Linux</title><description>Windows Subsystem for Linux (WSL)，是 Windows 10 的新功能，在 Windows 中提供 Ubuntu、Debian、openSUSE 等 Linux 子系統。 雖然沒辦法替代原生的 </description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/windows-subsystem-for-linux/</link><pubDate>2023-07-03</pubDate></item><item><title>[Web] 程式設計教學：給瀏覽器使用的 Ajax 函式庫</title><description>Ajax 在網頁前端程式是相當重要的特性，可說是現代網頁程式的基礎。現代網頁程式能夠在不重刷頁面的前提下更新頁面內容，就是透過 </description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/common-ajax-libraries-for-browsers/</link><pubDate>2023-06-25</pubDate></item><item><title>跨平台 Common Lisp 程式設計 電子書</title><description>雖然 Lisp 不是主流語言，該語言具有許多高階特性，可用來擴展程式設計者對程式設計的認知及視野。像是 Lisp 的巨集，即使在現代高階語言也相對少見。雖然大部分程式設計者不會在學校、職場等正規環境使用 Common Lisp 或其他 Lisp 方言，也應該來體驗一下這個古老且充滿智慧的語言。</description><author>位元詩人</author><link>https://opensourcedoc.com/cross-platform-common-lisp-programming-ebook/</link><pubDate>2023-06-24</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：處理瀏覽器事件 (Browser Event)</title><description>網頁前端程式本質上是一種事件驅動 (event-driven) 程式。當網頁載入時，不會馬上執行程式，而是載入相關的事件處理器 </description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/browser-event/</link><pubDate>2023-06-19</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：處理暫時性資料 (Temporary Data)</title><description>電腦程式中常常要操作資料 (data)。本文介紹在網頁前端程式中儲存和處理暫時性資料的方式。這些資料在頁面重新載入後就會消失或歸零，只是用在記錄程式當下的狀態。 </description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/temporary-data/</link><pubDate>2023-06-11</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：操作網頁元素</title><description>在本文中，我們介紹以 JavaScript 程式操作網頁元素的方式。這篇文章的內容對於網頁程式的使用者界面相當重要。 </description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/dom-manipulation/</link><pubDate>2023-06-04</pubDate></item><item><title>原生 [JavaScript] 程式設計教學：移除 jQuery 會用到的工具</title><description>在本文中，我們從使用原生 JavaScript 改寫 jQuery 網頁程式的觀點，來看需要那些工具。如果是要寫新的網頁程式，重點則會放在如何使用原生網頁 API 上，但本文介紹的工具仍可繼續沿用。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/toolkit-for-jquery-removal/</link><pubDate>2023-05-29</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：原型 (Prototype)</title><description>用建構子建立物件時，建立出來的物件會自動共享建構子的原型。由此可知，原型是物件的特殊性質</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/prototype/</link><pubDate>2023-05-09</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：藉由繼承 (Inheritance) 重用程式碼</title><description>撰寫 JavaScript 程式時，除了使用原本的原型外，ES6 新增了語法糖，讓繼承變得更簡單。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/inheritance/</link><pubDate>2023-05-01</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：建立物件 (object)</title><description>JavaScript 的物件系統是以原型為基礎，相較起來，大部分主流的語言的物件是以類別為基礎，兩者有一些差異。JavaScript 建立物件的方法較為靈活，會依需求而有不同的建立方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/object/</link><pubDate>2023-04-24</pubDate></item><item><title>現代 [JavaScript] 程式設計：JavaScript 程式的範疇 (Scope)</title><description>在 JavaScript 中，範疇是比較容易造成 bug 的特性之一。這是因為在 ES6 之前的 JavaScript 沒有區塊範疇的概念，很多我們在別的語言視為理所當然的事情在 JavaScript 卻是造成 bug 的潛在來源。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/scope/</link><pubDate>2023-04-18</pubDate></item><item><title>現代 [JavaScript] 程式設計：宣告和使用函式 (Function)</title><description>函式包住可重覆使用的程式碼區塊，是重用程式碼的最基本單位。本文介紹 JavaScript 的函式</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/function/</link><pubDate>2023-04-10</pubDate></item><item><title>[Java] 程式設計教學：使用 HashMap 物件</title><description>映射 (map) 是基於鍵值對 (key-value pair) 的非線性容器。HashMap 是 Java 的映射 (Map) 中常用的實作品。該實作品是基於雜湊表 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/hashmap/</link><pubDate>2023-03-23</pubDate></item><item><title>[Java] 程式設計教學：使用 LinkedList 物件</title><description>LinkedList 是 Java 串列 (List) 的另一個實作，其內部為鍵結串列 (linked list)。 LinkedList 和 ArrayList 在 API 有許多重疊之處，但兩者實作相異。主要的選擇考量是演算法上的效率。 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/linkedlist/</link><pubDate>2023-03-14</pubDate></item><item><title>[Java] 程式設計教學：使用 ArrayList 物件</title><description>ArrayList 是 Java 串列 (List) 的其中一種實作。ArrayList 內部是動態陣列 (dynamic array)。由於 Java 不支援運算子重載 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/arraylist/</link><pubDate>2023-03-06</pubDate></item><item><title>[Java] 程式設計教學：使用陣列 (Array)</title><description>Java 已經有 ArrayList 和 LinkedList 兩種串列容器了，其實陣列算是冗餘的特性。Java 會保留陣列的主要原因是吸引 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/array/</link><pubDate>2023-02-20</pubDate></item><item><title>[Java] 程式設計教學：使用控制結構 (Control Structure)</title><description>電腦程式預設的執行順序是由上而下，逐條敘述執行。透過控制結構，可以改變程式執行的順序。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/control-structure/</link><pubDate>2022-12-29</pubDate></item><item><title>[Java] 程式設計教學：運算子 (Operator)</title><description>大部分運算子是以符號而成的指令，少數運算子使用文字。由於運算子無法拆解成更小的指令，可以視為程式語言的基本指令。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/operator/</link><pubDate>2022-12-23</pubDate></item><item><title>[Java] 程式設計教學：變數 (Variable)</title><description>電腦內的資料是存在於記憶體中的抽象物體，變數是資料的標籤。電腦程式透過變數操作資料。本文介紹 Java </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/variable/</link><pubDate>2022-12-12</pubDate></item><item><title>[Java] 程式設計教學：資料型態 (Data Type)</title><description>電腦程式時常用來操作資料。程式語言會界定程式可操作的資料型態。本文說明 Java 支援的資料型態。 Java </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/data-type/</link><pubDate>2022-12-04</pubDate></item><item><title>[Java] 程式設計教學：基本概念</title><description>本文介紹 Java 程式的基本概念，並開始撰寫第一個 Java 程式。 Java 原始碼的副檔名為 .java 。編譯出來的位元碼 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/basic/</link><pubDate>2022-12-01</pubDate></item><item><title>[Java] 程式設計教學：建置開發環境</title><description>本文介紹建置 Java 開發環境的過程。 到 Adoptium 下載 OpenJDK 的安裝程式。建議選擇 Temurin 17，即 OpenJDK 17。 另一個方式是用 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/build-development-environment/</link><pubDate>2022-11-20</pubDate></item><item><title>[Java] 程式設計教學：簡介</title><description>在本文先不急著寫 Java 程式，來看看 Java 相關的概念。 Java 於西元 1995 年問世。原本 Java 是為了發展智慧家電 </description><author>位元詩人</author><link>https://opensourcedoc.com/java-programming/intro/</link><pubDate>2022-11-13</pubDate></item><item><title>[C++] 程式設計教學：向量 (Vector)</title><description>此處的向量是 C++ 標準函式庫中的動態陣列 (dynamic array)，而非數學上的向量。陣列 (array) 是一種連續、線性的容器，主要的優勢在於隨機存取的時間為 </description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/vector/</link><pubDate>2022-11-07</pubDate></item><item><title>[C++] 程式設計教學：&lt;tt&gt;std::array&lt;/tt&gt; 陣列物件</title><description>本文承接前文的主題，繼續介紹 C++ 的陣列。本文的主題是 std::array 物件。這類物件提供的方法具有邊界檢查，和 </description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/std-array/</link><pubDate>2022-11-01</pubDate></item><item><title>[C++] 程式設計教學：C 陣列 (Array)</title><description>陣列 (array) 是一種連續、線性的容器，主要的優勢在於隨機存取的時間為 O(1) (常數時間)。在 C++ 中有三種陣列： </description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/c-array/</link><pubDate>2022-10-25</pubDate></item><item><title>[C++] 程式設計教學：控制結構 (Control Structures)</title><description>程式預設的執行順序是逐行執行敘述。但程式設計者可以用控制結構改變程式執行的順序。本文介紹 C++ 的控制結構。 </description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/control-structure/</link><pubDate>2022-10-17</pubDate></item><item><title>[C++] 程式設計教學：運算子 (Operator)</title><description>在程式語言中，運算子是使用符號的指令。由於運算子無法再化約成更細的指令，運算子可視為程式語言的基本指令。本文介紹 C++ 的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/operator/</link><pubDate>2022-10-11</pubDate></item><item><title>[PHP] 程式設計教學：類別 (Class) 和物件 (Object)</title><description>物件導向程式設計是當代的主流範式，大部分主流的程式語言皆支援此種範式。本文說明在 PHP 中建立類別和物件的方式，適用於 PHP 5 之後的版本。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/class-and-object/</link><pubDate>2022-10-03</pubDate></item><item><title>[PHP] 程式設計教學：函式 (Function)</title><description>在程式設計中，函式是基本的程式碼重用機制。除了直接使用函式外，函式也是撰寫物件的基礎。本文說明如何在 PHP 中撰寫函式。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/function/</link><pubDate>2022-08-22</pubDate></item><item><title>[PHP] 程式設計教學：陣列 (Array)</title><description>PHP 陣列含有陣列和字典兩種使用方式。實務上，會將兩種形式分開，不建議在同一個陣列中混用。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/array/</link><pubDate>2022-08-15</pubDate></item><item><title>[PHP] 程式設計教學：字串 (String)</title><description>在電腦程式中，字串型態用來儲存文字資料。我們第一次提到字串是在資料型態的章節。但字串相關內容較多，故另闢一章來說明。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/string/</link><pubDate>2022-08-01</pubDate></item><item><title>[Web] 程式設計教學：CSS 入門教學</title><description>在本文中，我們談談 CSS；短短一篇文章是無法談完 CSS 的，我們這裡僅做一些概念上的介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/css-primer/</link><pubDate>2022-07-21</pubDate></item><item><title>[PHP] 程式設計教學：引入外部 PHP 命令稿</title><description>在 PHP 中引入外部 PHP 命令稿不僅可用來引入其他 PHP 模板，也可以引入第三方 PHP 命令稿。本文以實際範例來展示引入外部 PHP 命令稿的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/file-inclusion/</link><pubDate>2022-07-18</pubDate></item><item><title>[C++] 程式設計教學：變數 (Variable)</title><description>在電腦程式中，資料 (data) 存在記憶體 (memory) 中。變數 (variable) 是資料的名稱或標籤。藉由變數，電腦程式可操作資料。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/variable/</link><pubDate>2022-07-11</pubDate></item><item><title>[C++] 程式設計教學：資料型態 (Data Type)</title><description>資料型態 (data type) 用來界定電腦程式可處理的資料的形式。C++ 除了承襲 C 的資料型態外，還可以用類別 (class) 定義新的資料型態。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/data-type/</link><pubDate>2022-07-04</pubDate></item><item><title>[C++] 程式設計教學：基本概念</title><description>本文假定讀者沒寫過 C++ 程式或僅寫過少量 C++ 程式，介紹 C++ 的基本概念，讓讀者可以開始寫第一個 C++ 程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/basic/</link><pubDate>2022-06-30</pubDate></item><item><title>[PHP] 程式設計教學：資料型態 (Data Type)</title><description>資料型態定義電腦程式可處理的資料的形式。本文介紹 PHP 的資料型態。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/data-type/</link><pubDate>2022-06-28</pubDate></item><item><title>[PHP] 程式設計教學：運算子 (Operator)</title><description>在高階程式語言中，運算子是以符號表示的基本指令，無法再分割成更細微的指令。本文介紹 PHP 中常用的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/operator/</link><pubDate>2022-06-28</pubDate></item><item><title>[PHP] 程式設計教學：變數 (Variable)</title><description>程式 (program) 運行時，會將使用的資料 (data) 存在記憶體中。變數本身不是資料，而是指向資料的標籤。本文介紹 PHP 的變數。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/variable/</link><pubDate>2022-06-28</pubDate></item><item><title>[PHP] 程式設計教學：基本概念</title><description>本文會介紹 PHP 程式的基本概念，並開始撰寫第一個 PHP 程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/basic/</link><pubDate>2022-06-27</pubDate></item><item><title>[PHP] 程式設計教學：控制結構 (Control Structure)</title><description>預設情形下，電腦程式會逐行執行敘述。透過控制流程可以改變敘述執行的順序。本文介紹 PHP 的控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/control-structure/</link><pubDate>2022-06-20</pubDate></item><item><title>[FreeBSD] 教學：安裝和使用桌面軟體</title><description>FreeBSD 採取精簡政策，剛裝完桌面環境時沒什麼桌面軟體可用。本文介紹一些常見的桌面軟體。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/desktop-software/</link><pubDate>2022-06-04</pubDate></item><item><title>[FreeBSD] 教學：中文化</title><description>雖然 FreeBSD 不會是大部分電腦使用者的主要桌面系統，本文會展示建立中文桌面環境的過程，讓有需求的讀者參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/chinese-support/</link><pubDate>2022-05-26</pubDate></item><item><title>[FreeBSD] 教學：安裝和使用桌面環境</title><description>雖然 FreeBSD 不會是大部分使用者日常使用的系統，這裡仍然說明在 FreeBSD 安裝桌面環境的方式。畢竟有桌面環境會比只能用命令列來得方便一些。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/desktop-environment/</link><pubDate>2022-05-12</pubDate></item><item><title>[C++] 程式設計教學：在終端機使用 Visual C++</title><description>程式設計者通常是在 Visual Studio 中間接呼叫 Visual C++ 內附的編譯器，直接使用指令的機會較少。學習的重點在於學習參數的設置方式，必要時可在 IDE 中修改。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/visual-cpp/</link><pubDate>2022-05-05</pubDate></item><item><title>[C++] 程式設計教學：在終端機使用 GCC 或 Clang</title><description>本文的目的，在於列出一些 GCC 常用的情境，供有需要的讀者參考。由於 Clang 在參數上刻恴的向 GCC 靠攏，這些參數對於 Clang 通常也適用。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/cpp-or-clang/</link><pubDate>2022-04-25</pubDate></item><item><title>[C++] 程式設計教學：在 GNU/Linux 上寫 C++ 程式</title><description>GNU/Linux 承襲 Unix 的傳統，對開發者來說是多功能且強大的平台。本文介紹在 GNU/Linux 上寫 C++ 程式的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/build-development-environment-on-linux/</link><pubDate>2022-04-18</pubDate></item><item><title>[FreeBSD] 教學：給予一般使用者 root 權限</title><description>root 帳號有系統的最高權限，不慎使用可能會對系統造成損害。所以平日使用系統時不應使用 root，只有在執行系統管理任務才切換至 root。本文說明從一般使用者切換到 root 的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/grant-root-privileges-to-user/</link><pubDate>2022-04-08</pubDate></item><item><title>[Common Lisp] 程式設計教學：宣告和使用變數 (Variable)</title><description>在電腦程式中，資料存在於記憶體。變數本身不是資料，而是資料的標籤。電腦程式藉由變數存取資料。本文介紹在 Common Lisp 中使用變數的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/variable/</link><pubDate>2022-04-05</pubDate></item><item><title>[FreeBSD] 教學：管理系統套件</title><description>大部分 Unix 和 GNU/Linux 會提供套件管理程式，用來自動化安裝和管理軟體的流程。本文介紹 FreeBSD 的套件管理程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/package-management/</link><pubDate>2022-03-28</pubDate></item><item><title>[FreeBSD] 教學：使用命令列環境</title><description>本文假定讀者沒用過或僅短暫用過 Unix 命令列環境，說明 FreeBSD 命令列環境的基本使用方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/console-environment/</link><pubDate>2022-03-21</pubDate></item><item><title>現代 C 語言程式設計 電子書</title><description>本書教導讀者使用現代化的 C 工具鏈及 C 特性撰寫 C 程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/modern-c-programming-ebook/</link><pubDate>2022-03-18</pubDate></item><item><title>[Objective-C] 程式設計教學：基本概念</title><description>本文假定讀者沒寫過或僅寫過少量 Objective-C 程式，從頭說明相關概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/basic/</link><pubDate>2022-03-16</pubDate></item><item><title>[Common Lisp] 程式設計教學：使用 SBCL 或 Clozure CL 建立開發環境</title><description>在本文中，我們會建立 Common Lisp 開發環境。由於 Common Lisp 本身是語言標準，沒有官方實作品，現存的 Common Lisp 實作品間都有細微的差異。最好在選定 Common Lisp 實作品後就固定使用同一種 Common Lisp 編譯器或直譯器，以避免反覆修改程式碼。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/build-development-environment/</link><pubDate>2022-03-12</pubDate></item><item><title>[Common Lisp] 程式設計教學：處理命令列參數 (Command Line Arguments)</title><description>在 Common Lisp 實作品中，取得命令列參數的方式並不一致。與其在每個命令列程式中重覆解決這項無法避開的議題，還不如將這個問題封裝成跨平台的函式，日後就以相同的方式來解決。本文介紹在常見的 Common Lisp 實作品中處理命令列參數的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/command-line-arguments/</link><pubDate>2022-03-12</pubDate></item><item><title>[Common Lisp] 程式設計教學：介紹</title><description>Lisp 是資訊界上古三大神兵之一，世界第二古老的高階程式語言。這個語言在長期的演進過程中出現過許多方言，包括我們要介紹的 Common Lisp。由於 Lisp 算是冷門的語言，學習這個語言並不是為了實際面的考量。而是藉由學習的過程，體驗不同的範式，以拓展對程式設計的視野。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/intro/</link><pubDate>2022-03-11</pubDate></item><item><title>[C++] 程式設計教學：在 macOS 上寫 C++ 程式</title><description>在 macOS 上寫 C 或 C++ 程式有一些優勢，因 macOS 在 OS X 之後是 Unix 系統，在 GNU/Linux 或其他類 Unix 系統上的概念和工具可延用。本文專注在 C++ 相關的議題上。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/build-development-environment-on-macos/</link><pubDate>2022-03-07</pubDate></item><item><title>[C++] 程式設計教學：在 Windows 上寫 C++ 程式</title><description>在 Windows 下寫 C++ 程式，可以使用 Visual C++、MinGW、Cygwin 等方案。本文將逐一說明。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/build-development-environment-on-windows/</link><pubDate>2022-02-21</pubDate></item><item><title>[C++] 程式設計教學：介紹</title><description>在這篇文章中，我們不寫程式，僅對 C++ 做概念上的介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/cpp-programming/intro/</link><pubDate>2022-02-07</pubDate></item><item><title>[Golang] 程式設計教學：基本概念</title><description>在本文中，我們假定讀者沒寫過 golang 程式或是僅寫過少量 golang 程式。會帶著讀者實際寫簡單的 golang 程式並且執行該程式。在這個過程中，熟悉 golang 程式的撰寫流程。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/basic/</link><pubDate>2022-01-30</pubDate></item><item><title>[Golang] 程式設計教學：建置開發環境</title><description>本文假定讀者還沒在系統上安裝 Go 程式開發軟體，說明在不同系統上安裝 Go 程式開發軟體的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/build-development-environment/</link><pubDate>2022-01-30</pubDate></item><item><title>[Golang] 程式設計教學：資料型態 (Data Type)</title><description>在大部分的程式語言中，資料會有資料型態 (data type)。資料型別用來界定資料在電腦程式中所占的記憶體大小及合乎規範的操作。本文介紹 Golang 中可用的資料型別。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/data-type/</link><pubDate>2022-01-30</pubDate></item><item><title>[Golang] 程式設計教學：泛型 (Generics) 相關的議題</title><description>Golang 在 1.18 版確定會加入泛型。本文的目的是探討目前的替代方式，讓讀者從中選擇適合自己的方案。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/generics/</link><pubDate>2022-01-30</pubDate></item><item><title>[Golang] 程式設計教學：簡介</title><description>Golang 的誕生，是為了解決實務的工程議題，而非設計出一個在語法機制上很漂亮的語言，所以 Golang 語言並不追求語法特性的豐富度，而是以簡約實用為考量。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/intro/</link><pubDate>2022-01-30</pubDate></item><item><title>[Perl] 程式設計教學：控制結構 (Control Structures)</title><description>控制結構用來調整程式行進的方向，幾乎每個高階程式語言都會有這些特性。控制結構分為選擇和迭代兩種。本文介紹 Perl 的控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/control-structure/</link><pubDate>2022-01-30</pubDate></item><item><title>[Perl] 程式設計教學：宣告和使用變數 (Variable)</title><description>在電腦程式中，變數 (variable) 是用來操作資料的標籤。和大部分程式語言的差異在於 Perl 的變數前會加上前綴 (sigil)，不同前綴代表不同意義。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/variable/</link><pubDate>2022-01-30</pubDate></item><item><title>[Groovy] 程式設計教學：撰寫和使用函式 (Function)</title><description>在 Java 中，函式一定要包在類別中，所以才會出現靜態函式這種和物件無關但又存在於類別中的函式。在 Groovy 中，這個限制放寛了，我們可以在 Groovy 中直接撰寫頂層函式，Groovy 會幫我們自動轉為對應的 Java 函式，不需要人為介入。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/function/</link><pubDate>2022-01-28</pubDate></item><item><title>[Groovy] 程式設計教學：使用變數 (Variable)</title><description>Groovy 是動態型別語言，但可以自行指定變數的型別，這時候該變數就變成靜態型別。Groovy 這種可動可靜的特性，相當靈活。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/variable/</link><pubDate>2022-01-28</pubDate></item><item><title>[Groovy] 程式設計教學：基本概念</title><description>本文假定讀者沒寫過 Groovy 程式或是只寫過少量 Groovy 程式。會從頭開始講解 Groovy 程式的基本概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/basic/</link><pubDate>2022-01-27</pubDate></item><item><title>[Groovy] 程式設計教學：資料型態 (Data Type)</title><description>除了沿用原本 Java 已有的型態系統外，Groovy 加入自己的延伸，像是新的型態、在原有型態加上語法糖、加強對物件導向的支援等，讓 Groovy 用起來比 Java 更方便。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/data-type/</link><pubDate>2022-01-27</pubDate></item><item><title>[Groovy] 程式設計教學：建立和使用串列 (List)</title><description>串列是一種線性的容器。Groovy 的串列是建立在 Java 的 List 上，但在原本 Java 的 List 上加上一些語法糖，這也算是使用 Groovy 以簡化 Java 的用意之一。本文介紹一些在 Groovy 中常見的串列相關功能。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/list/</link><pubDate>2022-01-27</pubDate></item><item><title>[Windows] 程式設計教學：在 Windows 上使用 awk</title><description>awk 和 grep 類似，本質上都是過濾文字串流的過濾器。但 awk 具有完整的程式語言且內建處理欄位的能力，而 grep 缺乏這些特性。本文介紹在 Windows 上使用 awk 的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/awk/</link><pubDate>2022-01-18</pubDate></item><item><title>[FreeBSD] 教學：在 macOS 的 UTM 上安裝 FreeBSD 13.0</title><description>基於 Apple 晶片的 macOS 是相對新穎的系統，目前該系統上的虛擬機器軟體選項不多。此處採用免費的 UTM 來安裝 FreeBSD 13.0。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/freebsd-on-utm/</link><pubDate>2022-01-17</pubDate></item><item><title>C 語言應用程式設計 電子書</title><description>做為 C 語言的中階書籍，本書的目標是橋接語法和應用間的落差。雖然在網路上或多或少可以看到類似的內容，但筆者花時間統整這些主題，讀者就不需要在漫漫網海中耗費時間找尋零碎的資料。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming-ebook/</link><pubDate>2022-01-09</pubDate></item><item><title>[FreeBSD] 教學：在 VirtualBox 上安裝 FreeBSD 13.0</title><description>本文展示在 VirtualBox 上安裝 FreeBSD 13.0 的過程。使用 Apple Silicon macOS 系統的讀者，可以看我們後續的文章。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/freebsd-on-virtualbox/</link><pubDate>2022-01-03</pubDate></item><item><title>[FreeBSD] 教學：介紹</title><description>BSD 系統有用到當初 Unix 的原始碼，但沒做 Unix 認證。所以 BSD 在技術上是 Unix，但在商業上非 Unix。本系列文章會使用 FreeBSD，並適時點出 FreeBSD 和 GNU/Linux 的差異處。選擇 FreeBSD 而非 GNU/Linux 是因為前者有用到 Unix 程式碼而後者無。</description><author>位元詩人</author><link>https://opensourcedoc.com/freebsd/intro/</link><pubDate>2021-12-27</pubDate></item><item><title>[PHP] 程式設計教學：使用 Composer 或 PEAR 管理套件</title><description>除了使用 PHP 內建的特性外，還可以用第三方套件擴展 PHP 的功能，以節省開發程式的時間。本文介紹 PHP 社群裡常見的第三方套件管理軟體。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/package-management/</link><pubDate>2021-12-26</pubDate></item><item><title>[Windows] 程式設計教學：使用 PowerShell</title><description>PowerShell 既是命令列環境，又是命令列腳本語言。此外，可以用 PowerShell 或 .NET 平台語言來擴充其功能。雖然不一定要直接用 PowerShell 取代命令提示字元，可以把 PowerShell 當成新工具來學。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/powershell/</link><pubDate>2021-12-20</pubDate></item><item><title>[技術雜談] 買 Mac 電腦來寫程式</title><description>每隔一陣子，就會在 Mac 討論區看到有網友問「我想寫程式，我要買 Mac 嗎？」或其他類似的問題。在這裡先講結論：根據不同的程式類型，會有不同的答案。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/should-i-buy-a-mac-for-coding/</link><pubDate>2021-12-17</pubDate></item><item><title>[Windows] 程式設計教學：在 Windows 上使用 Perl</title><description>相對於如日中天的 Python，Perl 正在式微。所以，本文不會深入地介紹 Perl，而會假定程式設計者在 Windows 上使用 Perl 寫一行程式和簡短的命令稿為目標來學習 Perl。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/perl/</link><pubDate>2021-12-13</pubDate></item><item><title>[PHP] 程式設計教學：建置開發環境</title><description>本文介紹建置 PHP 開發環境的過程。實務上 PHP 網頁程式會托管在 GNU/Linux 上，故這裡的說明會以 GNU/Linux 為主。但會簡單介紹在 Windows 上的使用方式，讓還沒學習 GNU/Linux 的讀者也可以學習 PHP。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/build-development-environment/</link><pubDate>2021-10-25</pubDate></item><item><title>[PHP] 程式設計教學：給初學者的簡易介紹</title><description>PHP 是一種用來撰寫網頁應用程式的程式語言。和其他語言相異處在於 PHP 一開始就是內嵌在 HTML 頁面的模板語言，不需要再為網頁程式使用其他模板語言。</description><author>位元詩人</author><link>https://opensourcedoc.com/php-programming/intro/</link><pubDate>2021-10-18</pubDate></item><item><title>[Shell Scripting] 教學：處理命令列參數</title><description>命令列參數的目的在改變命令列工具的行為，以符合當下的需求。本文說明如何在 shell script 中處理命令列參數。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/command-line-parameters/</link><pubDate>2021-10-04</pubDate></item><item><title>[資料結構] 使用 C 語言：以陣列 (Array) 為基礎的佇列 (Queue)</title><description>在本文中，我們會實作佇列，但內部實作不是用這類教材常見的串列，而是使用陣列。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/queue-in-array/</link><pubDate>2021-09-23</pubDate></item><item><title>[Shell Scripting] 教學：標準輸出入</title><description>標準輸出入分為標準輸入、標準輸出、標準錯誤三種。這是電腦系統所提供的功能，而非 shell script 獨有的特性。本文介紹 shell script 處理標準輸出入的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/input-and-output/</link><pubDate>2021-09-06</pubDate></item><item><title>[Shell Scripting] 教學：控制結構 (Control Structure)</title><description>如同大部分的程式語言，shell script 的執行順序是由上而下、依序執行。控制結構則是用來改變電腦程式的運行順序。本文介紹 shell script 的控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/control-structure/</link><pubDate>2021-08-16</pubDate></item><item><title>[Shell Scripting] 教學：資料型態 (Data Type) 和變數 (Variable)</title><description>電腦程式大抵上在處理各種資料。本文從 shell (POSIX shell) 的觀點來看待 shell script 如何處理資料。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/data-type-and-variable/</link><pubDate>2021-08-02</pubDate></item><item><title>[Common Lisp] 程式設計教學：使用運算子 (Operator)</title><description>Lisp 家族語言不嚴格區分運算子和函式，因為 Lisp 使用前綴表示法，不需要區分兩者。像是 Common Lisp 的 + 就是函式而非運算子。本文仍會介紹一些在 Algol 家族語言視為運算子的符號，讓讀者學習幾個 Common Lisp 中實用的指令。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/operator/</link><pubDate>2021-07-19</pubDate></item><item><title>[技術雜談] ActiveState 開發工具教學 (ActivePython 和 ActivePerl 皆適用)</title><description>前陣子 ActiveState 將旗下產品重新整合，推出了 ActiveState Platform 以及新的工具 State Tool。本文帶著大家看一看這個新平台及新工具，讀者可以思考是否要將這個平台加入自己的工作流程。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/activestate-development-tools-primer/</link><pubDate>2021-07-05</pubDate></item><item><title>[Shell Scripting] 教學：撰寫第一隻程式</title><description>在本文中，我們以兩個簡單的例子來看如何撰寫 POSIX shell script ，並會介紹一些和撰寫 shell script 相關的開發工具及開發實務。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/write-first-program/</link><pubDate>2021-06-28</pubDate></item><item><title>[openSUSE] 系統使用教學：輸入中文，適用於 Fcitx 和 Gcin</title><description>openSUSE 還算穩健的 GNU/Linux 發行版。但 openSUSE 的輸入法相對來說比較不好用，而且網路上相關教學甚少。筆者經過試誤，總算試出一些可用的輸入法。本文是設置輸入法的過程。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/input-chinese-on-opensuse/</link><pubDate>2021-06-20</pubDate></item><item><title>[Shell Scripting] 教學：基本概念</title><description>會願意學 shell script 設計的程式人，通常也是老練的類 Unix 系統使用者。但我們在本文中仍會從基本開始，帶著讀者了解 shell 的基本概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/basic/</link><pubDate>2021-06-08</pubDate></item><item><title>[Shell Scripting] 教學：介紹</title><description>Shell 不僅用於處理單行的指令，也有內建程式語言的功能。透過 shell script ，我們可以組合多個命令列工具，達成單一工具無法達成的複合功能。透過 Unix 的組合哲學，我們不需要為每項任務重寫新的程式，而可以串接現有的工具，用相對省力的方式達成任務。</description><author>位元詩人</author><link>https://opensourcedoc.com/shell-scripting/intro/</link><pubDate>2021-06-01</pubDate></item><item><title>[資料結構] 使用 C 語言：二元搜尋樹 (Binary Search Tree)</title><description>在初階的資料結構教材中，不會對二元搜尋樹進行平衡的動作，這樣的樹實用性偏低，但易於實作，會拿來做為樹的第一個實例。本文會實做一個未平衡的二元搜尋樹。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/binary-search-tree/</link><pubDate>2021-05-26</pubDate></item><item><title>[Windows] 程式設計教學：以 MinGW 和 MSYS2 建置 C 和 C++ 開發環境</title><description>MinGW + MSYS 是 GCC 在 Windows 上的移植品，而 MSYS2 則是新版本的 MinGW。對於習慣自由軟體的程式設計者來說，MSYS2 是值得考慮的 C 和 C++ 開發環境。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/mingw-msys/</link><pubDate>2021-05-11</pubDate></item><item><title>[C 語言] 程式設計教學：使用 void 指標撰寫泛型程式</title><description>撰寫 C 程式時，我們可以用 void 指標來模擬泛型；不過，這樣寫雖然有泛型的效果，但失去了型別安全；因此，請謹慎使用。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/generics-with-void-pointer/</link><pubDate>2021-05-05</pubDate></item><item><title>[Groovy] 程式設計教學：處理 XML 檔案</title><description>處理 XML 資料是自動化腳本常見的任務之一，身為 Java 平台的命令稿語言，自然不能在這項任務中缺席。本文介紹使用 Groovy 處理 XML 的方式，並說明使用 Groovy 進行這項任務的益處。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/xml-in-groovy/</link><pubDate>2021-05-03</pubDate></item><item><title>[C 語言] 程式設計教學：多型 (Polymorphism)，使用聯合 (Union)</title><description>由於 C 不直接支援多型，我們要用一些手法來模擬。在上一篇文章中，我們使用函式指標，在本文中，我們使用聯合 (union) 來模擬多型。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/polymorphism-with-union/</link><pubDate>2021-05-02</pubDate></item><item><title>[Common Lisp] 程式設計教學：資料型態 (Data Type)</title><description>資料型態規範電腦程式中特定資料的合法操作。本文介紹 Common Lisp 的資料型態。由於 Common Lisp 的資料型態較龐雜，先大略看一下即可，不用硬背。寫一陣子 Common Lisp 程式後自然會熟悉。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/data-type/</link><pubDate>2021-04-26</pubDate></item><item><title>[Common Lisp] 網頁程式設計教學：Hunchentoot 入門</title><description>本文介紹使用 Common Lisp 撰寫網頁程式的常見方案，並以兩個簡單的實例說明 Hunchentoot 網頁程式的撰寫方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/hunchentoot-primer/</link><pubDate>2021-04-19</pubDate></item><item><title>[Perl] 程式設計教學：使用雜湊 (Hash) 或關連式陣列 (Associative Array)</title><description>雜湊 (hash) 或關連式陣列 (associative array) 是以鍵/值對為儲存單位的非線性容器，在 Perl 中相當實用。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/hash/</link><pubDate>2021-04-12</pubDate></item><item><title>[C 語言] 程式設計教學：多型 (Polymorphism)，使用函式指標</title><description>基本上，C 缺乏對多型的直接支援，要用一些方法去模擬。在本文中，我們使用函式指標的方式去模擬多型。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/polymorphism-with-function-pointer/</link><pubDate>2021-03-25</pubDate></item><item><title>[Common Lisp] 網頁程式設計教學：Parenscript 入門</title><description>Parenscript 是一個基於 Common Lisp 的轉換器 (translator) 和領域專用語言 (domain-specific language)，可將 Common Lisp 程式碼轉為等效的 JavaScript 程式碼。Parenscript 的目的是為了簡化 Common Lisp 程式設計者撰寫網頁程式的過程。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/parenscript-primer/</link><pubDate>2021-03-22</pubDate></item><item><title>[Perl] 程式設計教學：隨語境 (Context) 改變程式的行為</title><description>Perl 程式會根據程式執行時當下的語境來決定其行為，這算是一種 Perl 程式的內隱規則。在這些語境中，比較重要的是純量語境和串列語境，其他的稍微知道一下即可。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/context/</link><pubDate>2021-03-08</pubDate></item><item><title>[Windows] 程式設計教學：基本概念</title><description>當我們在談論 Windows 程式設計時，可能是把 Windows 當成執行程式的運行環境，也有可能是把 Windows 當成撰寫程式的開發環境。本系列文章會側重後者的介紹，因為程式設計學習者需要熟悉開發環境。能夠自己部署應用程式的程式設計者，也不會是新手，不太需要這些文章。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/intro/</link><pubDate>2021-02-16</pubDate></item><item><title>[Perl] 程式設計教學：陣列 (Array) 和串列 (List)</title><description>Perl 的陣列 (array) 是一種線性的容器，以數字做為索引，可儲存異質資料。串列則是一序列的資料。這兩者有一些關連，本文介紹 Perl 陣列和串列。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/array-list/</link><pubDate>2021-02-02</pubDate></item><item><title>[Common Lisp] 程式設計教學：相關的開發工具</title><description>各式各樣的開發工具在不同面向協助程式設計者開發應用程式。由於這些工具在學習程式設計的初期不會馬上用到，一開始不用急著全部學起來。以 Common Lisp 來說，先會用 QuickLisp 安裝社群函式庫就夠了。其餘的開發工具行有餘力再慢慢學習即可。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/development-tools/</link><pubDate>2021-01-19</pubDate></item><item><title>[Objective-C] 程式設計教學：用 KDevelop 管理 Objective-C 專案</title><description>正規的 Objective-C 開發環境圍繞在蘋果平台上，在非蘋果的平台上能用的開發工具甚少。雖然可以用 VSCode 寫 Objective-C 程式，VSCode 畢竟是編輯器而非 IDE。本文介紹使用 KDevelop 撰寫 Objective-C 的流程。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/kdevelop-for-objc/</link><pubDate>2021-01-04</pubDate></item><item><title>[技術雜談] 在 Windows 上編譯及執行 Swift 程式</title><description>Swift 長期定位為蘋果平台專用語言，但現在也可以在 Windows 和一些 GNU/Linux 發行版上使用了。本文介紹在 Windows 上編譯及執行 Swift 程式的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/swift-on-windows/</link><pubDate>2020-12-22</pubDate></item><item><title>[Objective-C] 程式設計教學：以 Docker 容器編譯並執行 Objective-C 程式</title><description>由於 Objective-C 在非蘋果平台上不是主流語言，不一定每個 GNU/Linux 發行版都會有預編好的 Objective-C 編譯器和 GNUstep 函式庫。因應這項議題，本文介紹以 Docker 編譯 Objective-C 程式的方式。此外，由於 Docker Hub 中所分享的 GNUstep 映像檔都很舊了，本文會從 Ubuntu 基底映像檔重新建立 GNUstep 開發環境。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/objc-on-docker/</link><pubDate>2020-12-07</pubDate></item><item><title>[Objective-C] 程式設計教學：具有型別安全的多型</title><description>在預設情形下，Objective-C 程式的動態行為不具有型別安全性。本文會利用 Objective-C 的 protocol 建立具有型別安全的多型。如果想要在 Objective-C 中模擬泛型程式，同樣用本文的方式實作即可。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/polymorphism/</link><pubDate>2020-11-17</pubDate></item><item><title>[C 語言] 程式設計教學：如何在終端機中使用 Visual C++</title><description>Visual Studio 內部的 C 編譯器為 cl.exe，微軟網站有 cl.exe 參數等相關資料 (像是這裡)。 在大部分情形下，程式設計者會透過 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/compile-c-with-visual-cpp/</link><pubDate>2020-11-11</pubDate></item><item><title>[技術雜談] 以 Docker 容器編譯並執行 Swift 程式</title><description>雖然 Swift 支援的系統比先前多，但很多 GNU/Linux 發行版都沒有官方的 Swift 開發環境。為了要在非官方支援的 GNU/Linux 發行版上編譯和執行 Swift 程式，使用 Docker 是相對簡單且可行的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/swift-on-docker/</link><pubDate>2020-11-02</pubDate></item><item><title>[Objective-C] 程式設計教學：繼承類別的方式</title><description>在 Objective-C 中，有兩種繼承類別的方式。可將目標類別設為基礎類別 (base class) 或是用 category 擴展特定類別。本文會以範例展示第一種方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/inheritance/</link><pubDate>2020-10-12</pubDate></item><item><title>[Windows] 程式設計教學：發佈基於 MSYS2 的應用程式</title><description>當應用程式寫完後，會將該程式移到異地執行，這時候就牽涉到部署程式的議題。部署程式的方式會因平台而異，本文介紹在 Windows 上部署自 MSYS2 環境編譯出來的執行檔的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/deploy-msys2-programs/</link><pubDate>2020-10-05</pubDate></item><item><title>[Common Lisp] 程式設計教學：基礎概念</title><description>由於 Lisp 家族語言和主流語言差異較大，在本文中，我們會介紹 Lisp 和 Common Lisp 的基本概念，做為撰寫 Common Lisp 程式的準備。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/basic/</link><pubDate>2020-09-28</pubDate></item><item><title>[Objective-C] 程式設計教學：控制物件的存取權限以實現封裝</title><description>在預設情形下，Objective-C 類別使用者看得到該類別的屬性，所有的訊息都是公開的。但我們有時候想要隱藏一部分屬性和訊息，僅保持最小量的公開界面。本文展示在 Objective-C 類別中實作私有屬性和私有訊息的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/encapsulation/</link><pubDate>2020-09-21</pubDate></item><item><title>[C 語言] 程式設計教學：如何實作組合 (composition) 和繼承 (inheritance)</title><description>C 語言無法從語法上直接獲得繼承這項特性，所以我們要將繼承從表面上的意義抽離，思考繼承在程式碼的本質。基本上，繼承是一種共用程式碼及實踐子類型的方式。雖然 C 沒有繼承的語法，但我們可以用物件組合來達到程式碼重用以及模擬繼承的目的。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/composition-and-inheritance/</link><pubDate>2020-08-31</pubDate></item><item><title>[Groovy] 程式設計教學：自給自足的命令稿</title><description>當我們撰寫程式的目的是自動化時，會使用簡單易用的程式語言來寫。這類型程式沒有什麼高深的演算法，保護程式碼並不是重要的考量，也不需要很好的程式效能。這時候，使用高階直譯語言就是常見的選項。雖然 Groovy 並不是最常見的自動化命令稿語言，我們會介紹使用 Groovy 撰寫命令稿的好處，並且展示實際的應用範例。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/self-contained-script/</link><pubDate>2020-08-24</pubDate></item><item><title>[C 語言] 程式設計教學：如何實作封裝 (Encapsulation)</title><description>若物件有進行封裝，除了透過公開介面外，我們無法更動該物件內部的狀態。C 語言不強調封裝的概念，所以我們要重新思考封裝在程式碼中的意義。封裝的目的是資訊隱藏，也就是說，只提供最少量的必要資訊，其他的部分則不開放給外部程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/encapsulation/</link><pubDate>2020-07-28</pubDate></item><item><title>[Web] 程式設計教學：使用免費的網頁語音合成 API 撰寫會說外語的程式</title><description>藉由語音合成技術，就不需要為每段文字預錄語音檔案，可透過電腦運算即時發聲。由於語音合成算是相對困難的技術，通常都是透過付費 API 來取得這項特性，隨使用量付費。現在瀏覽器也內建這項技術了，本文會介紹如何使用網頁語音合成 API。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/speech-synthesis-api/</link><pubDate>2020-07-20</pubDate></item><item><title> [Perl] 程式設計教學：使用運算子 (Operator)</title><description>運算子可執行一些基本的運算，會透過符號而非函式呼叫來使用。一般來說，運算子無法再拆分成更細的項目，所以視為程式語言的基本指令。本文介紹 Perl 的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/perl-programming/operator/</link><pubDate>2020-07-14</pubDate></item><item><title>[C 語言] 程式設計教學：如何實作類別 (Class) 和物件 (Object)</title><description>真正的物件，要有狀態和行為間的連動。狀態以資料的形式儲存在物件的屬性上，行為則是透過函式來實作。C 語言並沒有真正的物件，只能撰寫在精神上貼近物件的函式。在本文中，我們會以平面座標中的點為例，展示兩種物件的寫法。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/class-and-object/</link><pubDate>2020-07-09</pubDate></item><item><title>[Web] 程式設計教學：移除 Bootstrap 中的 jQuery</title><description>現在 jQuery 已經不是網頁前端必備的函式庫了，為了使用 Bootstrap 就掛著 jQuery 其實是在浪費網頁頻寬。在本文中，我們介紹把 jQuery 移出 Bootstrap，但 Bootstrap 仍可繼續運作的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/remove-jquery-from-bootstrap/</link><pubDate>2020-07-03</pubDate></item><item><title>[Pascal] 程式設計教學：迭代控制結構 (Iteration Control Structure)</title><description>藉由迭代控制結構，程式設計者可以有效率地重覆執行特定程式碼，不需要重覆撰寫相同的代碼。本文介紹 Pascal 的迭代控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/iteration/</link><pubDate>2020-06-30</pubDate></item><item><title>[C 語言] 程式設計教學：物件導向程式入門</title><description>雖然 C 語言沒有直接支援物件導向程式的語法，但我們可以在一些真實世界的專案看到具有物件導向思維的 C 程式碼。本文介紹以 C 語言撰寫具有物件導向思維的程式碼。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/object-oriented-programming-primer/</link><pubDate>2020-06-24</pubDate></item><item><title>[Deno] 程式設計教學：基本概念</title><description>在本文中，我們介紹 Deno 程式設計的基本概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/basic-of-deno/</link><pubDate>2020-06-18</pubDate></item><item><title>[Pascal] 程式設計教學：選擇控制結構 (Selection Control Structure)</title><description>利用選擇控制結構，程式設計者可以改變程式運行的順序，決定特定程式碼區塊是否要執行。本文介紹 Pascal 中可用的選擇控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/selection/</link><pubDate>2020-06-15</pubDate></item><item><title>[Common Lisp] 程式設計教學：使用 Emacs 搭配 SLIME 寫 Common Lisp 程式</title><description>寫 Lisp 還是 Emacs 最對味。雖然現在使用 Emacs 的程式設計者逐漸變少，SLIME 在 Common Lisp 開發工具中算是整合得不錯的。許多 Common Lisp 的教學資源還是會提到 SLIME，所以筆者特地寫了一篇文章來介紹這個開發工具。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/emacs-plus-slime/</link><pubDate>2020-06-11</pubDate></item><item><title>[Deno] 程式設計教學：建置開發環境</title><description>在本文中，我們介紹建置 Deno 開發環境的過程，讓讀者可以開始寫 Deno 程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/build-deno-development-environment/</link><pubDate>2020-06-09</pubDate></item><item><title>[Pascal] 程式設計教學：使用運算子 (Operator)</title><description>在程式語言中，運算子是最基本的指令，無法再拆分成更簡約的形式。本文介紹 Pascal 的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/operator/</link><pubDate>2020-06-02</pubDate></item><item><title>[Common Lisp] 程式設計教學：Roswell 入門</title><description>在閱讀 Common Lisp 的學習資料時，有時候會讀到 Roswell 這套軟體。由於 Roswell 需要額外的設置，會讓 Common Lisp 學習者感到困惑：到底 Roswell 是不是必要的？著眼於這個議題，筆者寫了一篇有關 Roswell 的文章，讓讀者了解 Roswell 的思維及使用方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/common-lisp-programming/roswell-primer/</link><pubDate>2020-05-28</pubDate></item><item><title>[Deno] 程式設計教學：新一代 JavaScript 和 TypeScript 運行環境</title><description>Deno 是一個新興的 JavaScript 和 TypeScript 運行環境，於西元 2020 年五月宣布 1.0 版本。本文會對 Deno 做一個簡要的介紹，讓讀者了解這個軟體專案。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/intro-to-deno/</link><pubDate>2020-05-25</pubDate></item><item><title>[Pascal] 程式設計教學：宣告和使用變數 (Variable)</title><description>在程式語言中，變數是用來操作資料的特性。本文介紹在 Pascal 中宣告和使用變數的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/variable/</link><pubDate>2020-05-21</pubDate></item><item><title>[Windows] 程式設計教學：命令提示字元 (Command Prompt) 入門</title><description>由於 Windows 預設即有桌面環境，讀者可能沒使用過命令列環境。但很多開發工具是以命令列工具的形式來發佈，學習命令列的使用方式仍有其必要性。本文從頭介紹命令提示字元的使用方式，讓讀者學習基礎的命令列操作。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/command-prompt-primer/</link><pubDate>2020-05-14</pubDate></item><item><title>[Pascal] 程式設計教學：資料型態 (Data Type)</title><description>在程式語言中，資料型態規範資料所占用的記憶體大小及合法的操作。主流的程式語言都有資料型態的概念。本文介紹 Pascal 中可見的資料型態。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/data-type/</link><pubDate>2020-05-11</pubDate></item><item><title>[Pascal] 程式設計教學：基本概念</title><description>在本文中，我們開始撰寫簡單的 Pascal 程式，以熟悉撰寫 Pascal 程式的流程。此外，我們也會介紹一些 Pascal 的基本概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/basic/</link><pubDate>2020-05-03</pubDate></item><item><title>[C 語言] 應用程式設計教學：優化 C 程式碼</title><description>所謂的優化，就是用各種手法讓程式運行更快速。這是在程式運行正確後，進一步改善程式的方式。在本文中，我們從 C 的觀點在看如何優化程式碼。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/optimize-c-code/</link><pubDate>2020-04-30</pubDate></item><item><title>[Golang] 網頁設計教學：使用 Ajax 以非同步模式傳遞資料</title><description>每傳送一次 HTML 表單就要重刷一次頁面，對於使用者體驗來說不是很好。近年來的網頁程式，會充份利用 Ajax 的特性，以非同步的方式傳接資料，再利用 JavaScript 程式動態改變使用者介面。在本範例程式中，我們以 Ajax 重構先前文章介紹的 TODO 清單程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/ajax/</link><pubDate>2020-04-27</pubDate></item><item><title>[Pascal] 程式設計教學：建立開發環境</title><description>在本文中，我們介紹建置 Pascal 開發環境的過程。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/build-development-environment/</link><pubDate>2020-04-20</pubDate></item><item><title>[Pascal] 程式設計教學：從古典邁向現代</title><description>雖然 Pascal 現在是利基語言，這個語言並沒有死亡，而是進化成一個具有 Write Once, Compile Anywhere 哲學的通用型程式語言，可用來撰寫多種型態的應用程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/pascal-programming/write-once-compile-anywhere/</link><pubDate>2020-04-09</pubDate></item><item><title>[Pascal] 網頁設計教學：用 pas2js 將 Free Pascal 程式碼轉為 JavaScript 程式碼</title><description>網頁已經變成廣泛使用的跨平台運行環境。許多的軟體專案都有將程式碼轉譯成 JavaScript 程式碼的轉譯器。本文介紹將 Free Pascal 程式轉為 JavaScript 程式的軟體專案。或許可以藉此延續或拓展 Pascal 程式的生命週期。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/pas2js-primer/</link><pubDate>2020-04-07</pubDate></item><item><title>[C 語言] 程式設計教學：在 Unix 上用 GCC 和 Clang 檢查 C 或 C++ 程式碼</title><description>在編譯程式時，我們可以開啟選擇性的警告訊息。此外，我們可以鎖定 C 標準的版本。藉由這些特性來改善 C 或 C++ 程式碼的品質。在本文中，我們使用 POSIX shell 腳本將編譯和執行程式碼的過程自動化。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/test-c-or-cpp-code-against-gcc-and-clang-on-unix/</link><pubDate>2020-03-31</pubDate></item><item><title>[Pascal] 網頁設計教學：Fano Framework 入門</title><description>近年來，消費者層級的軟體轉成網頁程式和行動程式。然而，當時 Delphi 未能及時趕上這波風潮。不過，如果想用 Pascal 寫網頁程式，仍然有一些方案可選擇。本文介紹了數個用 Pascal 寫網頁程式的方案。並展示 Fano Framework 的使用方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/fano-framework-primer/</link><pubDate>2020-03-26</pubDate></item><item><title>[C 語言] 程式設計教學：撰寫跨平台 C 專案</title><description>在先前的文章中，我們以概念為主，介紹撰寫跨平台 C 程式相關的議題。在本文中，我們延續這個議題，但會著重實際的工具使用。讀者可以將本文和先前的文章對照著看，對於撰寫跨平台 C 程式會更了解。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/write-cross-platform-c-project/</link><pubDate>2020-03-22</pubDate></item><item><title>[Objective-C] 程式設計教學：不使用 Foundation 物件庫寫 Objective-C 類別</title><description>大多數程式設計者在寫 Objective-C 程式時，都會使用 Cocoa 或 GNUstep 所提供的物件。然而，有時候只是要透過 NSObject 取得基礎物件的特性，這時候 Foundation 物件庫就顯得太肥大了。在本文中，我們介紹不使用 Foundation 來實作 Objective-C 類別的方式。。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/class-without-foundation-library/</link><pubDate>2020-03-16</pubDate></item><item><title>[Web] 程式設計教學：以 CGI 程式回應 Ajax 請求</title><description>在 Ajax 大量地出現在網頁程式時，程式設計者已經不太寫 CGI 程式。所以，有關 CGI 程式的教學不會提到 Ajax 的部分。然而，CGI 界面並沒有寫死 HTTP 方法。雖然使用 CGI 程式來回應 Ajax 請求的機會甚少，但並非不可行。在本文中，我們展示以 CGI 程式回應 Ajax 請求的方法。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/respond-to-ajax-call-with-cgi-program/</link><pubDate>2020-03-13</pubDate></item><item><title>[C 語言] 程式設計教學：撰寫跨平台 C 函式庫</title><description>雖然 C 是跨平台語言，但卻不像 Java 等語言可立即取得跨平台的特性，而要經過一些努力。這是因為不同系統的系統 C API 不會完全相同。本文會介紹一些和撰寫跨平台 C 函式庫相關的議題，供想要撰寫跨平台 C 程式碼的讀者參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/write-cross-platform-c-library/</link><pubDate>2020-03-08</pubDate></item><item><title>[Web] 程式設計教學：用 Nginx 搭配 fcgiwrap 執行 CGI 程式</title><description>雖然現在還會用 CGI 寫網頁程式的程式設計者很少，CGI 程式對於小型網頁程式來說仍是方便簡單的選擇。本文介紹在 Nginx 上搭配 fcgiwrap 執行 CGI 程式的流程，給想寫 CGI 程式的讀者做個參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/run-cgi-programs-with-fcgiwrap/</link><pubDate>2020-03-05</pubDate></item><item><title>[Node.js] 程式設計教學：用 Nexe 打包 Node.js 應用程式</title><description>Node.js 這類直譯語言易於撰寫程式，但部署起來就沒那麼方便，而且不能保護原始碼。本文介紹的 Nexe 可以將 Node.js 程式和運行環境包成執行檔，發佈到沒有 Node.js 的目標系統上。</description><author>位元詩人</author><link>https://opensourcedoc.com/nodejs-programming/package-nodejs-application-with-nexe/</link><pubDate>2020-02-28</pubDate></item><item><title>[技術雜談] 如何撰寫虛擬碼 (Pseudocode)</title><description>直接使用程式碼來呈現 (資料結構和) 演算法，往往需注意過多細節，像是型別、陣列長度、存取權限、記憶體管理等，而且程式語言很多，單一語言能滿足的客群相對小。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/how-to-write-pseudocode/</link><pubDate>2020-02-26</pubDate></item><item><title>[C 語言] 程式設計教學：撰寫跨平台 C 程式</title><description>在許多 C 語言教材中，會提到 C 語言是跨平台語言。然而，基礎教材只會碰觸到語法和標準函式庫的層面，這些層面已經是跨平台的。在越過語法和標準函式庫後，C 語言的跨平台並不是隨手可得的，而要經過一些額外的努力。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/write-cross-platform-c-program/</link><pubDate>2020-02-21</pubDate></item><item><title>[C 語言] 程式設計教學：用 Intel C++ Compiler 編譯 C 或 C++ 程式</title><description>有一些針對特定硬體而設計的 C 或 C++ 編譯器，像是 Intel C++ Compiler，會針對特定硬體去優化，可以享受特定硬體所帶來的益處。由於 Intel 平台相當普遍，這個編譯器值得注意。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/compile-c-or-cpp-with-intel-cpp-compiler/</link><pubDate>2020-02-16</pubDate></item><item><title>技術雜談：最節能環保的程式語言</title><description>在手持裝置、嵌入式裝置等資源受限的裝置中，節能是重要的考量。當裝置上的程式更節能，裝置就可以運行更久。本文從節能環保的觀點來比較程式語言，讓讀者在選擇程式語言時，多一個參考的依據。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/the-greenest-programming-language/</link><pubDate>2020-02-07</pubDate></item><item><title>[C 語言] 程式設計教學：處理 C 專案相依性 (Dependency)</title><description>當我們要寫應用程式時，很少會只用標準函式庫的功能。這時候，我們需要第三方函式庫來補足標準函式庫不足之處。對於小型任務，還勉勉強強可以自製輪子，但對於 GUI 函式庫或其他大型函式庫，就超出單一開發者的能力了。所以還是要會處理 C 專案的相依性。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/c-project-dependency/</link><pubDate>2020-02-02</pubDate></item><item><title>[Golang] 程式設計教學：在 Golang 用使用 C 或 C++ 程式碼</title><description>雖然 Golang 是跨平台的編譯語言，但我們不會把所有的程式碼都用 Golang 寫。由於現存的 C 或 C++ 函式庫已經使用多年且運行良好，不會為了要使用 Golang 就重寫。反之，應該要讓 Golang 直接使用現有的 C 或 C++ 程式碼。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/use-c-or-cpp-in-golang-with-cgo/</link><pubDate>2020-01-29</pubDate></item><item><title>[C 語言] 程式設計教學：基於 CMake 的 C 函式庫專案</title><description>CMake 除了可以用來建立應用程式專案，也可用來建立函式庫專案。藉由 CMake 跨平台的特性，讓函式庫更容易分享出去。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/cmake-project-for-c-library/</link><pubDate>2020-01-19</pubDate></item><item><title>[資料結構] 使用 C 語言：稀疏矩陣 (Sparse Matrix)，使用串列的串列 (List of List)</title><description>在矩陣零值所占比率夠高時，稀疏矩陣在空間上會比傳統矩陣來得節省。本範例程式會展示使用串列的串列來實作的稀疏矩陣。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/sparse-matrix-in-list-of-list/</link><pubDate>2020-01-14</pubDate></item><item><title>[C 語言] 程式設計教學：基於 CMake 的 C 應用程式專案</title><description>在本文中，我們藉由以 CMake 為基礎的 Hello World 程式專案來展示 CMake 的使用方法。由於 C 程式的部分相當簡單，本文的重點會放在 CMake 的使用方式以及設定檔撰寫上面。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/cmake-project-for-c-application/</link><pubDate>2020-01-12</pubDate></item><item><title>[Objective-C] 程式設計教學：用 Objective-C++ 混合 C++ 和 Objective-C 程式碼</title><description>除了 C 以外，C++ 是另一個有龐大生態圈的 C 家族語言。如果我們想要使用外部 C++ 函式庫，我們不需要為該函式庫寫 C 的 binding，因為藉由 Objective-C++ 我們可以直接橋接 C++ 函式庫。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/mix-cpp-and-objc-with-objective-cpp/</link><pubDate>2020-01-09</pubDate></item><item><title>[資料結構] C 語言實作：稀疏矩陣 (Sparse Matrix)，使用陣列 (Array)</title><description>在矩陣零值所占比率夠高時，稀疏矩陣在空間上會比傳統矩陣來得節省。本文會展示以陣列實作稀疏矩陣的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/sparse-matrix-in-array/</link><pubDate>2020-01-05</pubDate></item><item><title>[C 語言] 程式設計教學：使用自動化編譯系統 (Build Automation System)</title><description>對於有一定規模的 C 專案，不會把所有的程式碼寫在同一個檔案中，而會將程式碼以模組化的方式細分在不同檔案中，並用自動編譯軟體來管理編譯、測試、安裝等工作流程。本文介紹在 C 語言中常見的自動編譯系統。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/build-automation-system/</link><pubDate>2020-01-01</pubDate></item><item><title>[Objective-C] 程式設計教學：撰寫類別 (Class) 和物件 (Object)</title><description>除了使用在 Cocoa 或 GNUstep 中已存在的類別外，我們也可以利用 Objective-C 的物件系統建立新的類別。由於 Objective-C 是 C 的延伸，實作類別時仍然會用到 C 的部分，而類別和物件相關的語法則由 Objective-C 所提供。本文以簡單的範例來看如何在 Objective-C 中建立類別。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/class-and-object/</link><pubDate>2019-12-29</pubDate></item><item><title>[C 語言] 程式設計教學：如何建立 C 專案 (Project)</title><description>平常練習 C 語言時，我們可能只用單一或少數 C 原始碼檔案，只用簡單的指令或 IDE 按鈕來編譯 C 原始碼。但我們若想用 C 寫應用程式或函式庫，應該要以專案的形式管理 C 原始碼。本文介紹建立 C 專案的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/c-project/</link><pubDate>2019-12-25</pubDate></item><item><title>[資料結構] 使用 C 語言：建立線性代數所使用的二維矩陣 (Matrix)</title><description>二維矩陣是線性代數中基本的組成單位。現在有許多程式語言或函式庫，像是 MATLAB 或 R 等，都內建矩陣運算的功能；因此，本範例程式重點在於學習矩陣的原理，而非重造輪子來用。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/matrix-in-math/</link><pubDate>2019-12-22</pubDate></item><item><title>[Golang] 網頁設計教學：撰寫 HTML 表單 (Form)</title><description>在本文中，我們會以 Golang 做為後端程式，展示 HTML 表單的撰寫方式。雖然 HTML 表單算是傳統的網頁技術，對於簡易的線上表格來說，使用 HTML 表單仍是最簡單的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/html-form/</link><pubDate>2019-12-17</pubDate></item><item><title>[Objective-C] 程式設計教學：記憶體管理 (Memory Management)</title><description>本文說明如何在 Objective-C 程式中管理記憶體。除了沿用原本 C 語言的記憶體管理模式外，Objective-C 發展出數個新的策略，我們會用範例分別展示其寫法。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/memory-management/</link><pubDate>2019-12-15</pubDate></item><item><title>[資料結構] 使用 C 語言：建立數學向量 (Vector)</title><description>本文的向量是指在數學上的向量。現在已經有許多程式語言，像是 MATLAB 或 R，支援這類運算；此處的重點是了解其原理，而非重造輪子來用。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/vector-in-math/</link><pubDate>2019-12-11</pubDate></item><item><title>[Golang] 網頁設計教學：用 JavaScript 在網頁中加入動態行為</title><description>有些網頁程式其實不需要後端程式就可以運作，這時候的網頁程式的部分會以 JavaScript 來實作。對於純前端網頁程式來說，Golang 的角色其實只是用來託管靜態資源和管理網頁模板。我們以實例來看這種型態的網頁程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/javascript/</link><pubDate>2019-12-08</pubDate></item><item><title>[技術雜談] 在 VirtualBox 中使用 TrueOS (FreeBSD 衍生系統) 的教學</title><description>如果想要用 BSD 系列的類 Unix 系統，但覺得 FreeBSD 太難、macOS 太貴，可以考慮使用 TrueOS。這是一套基於 FreeBSD 的 BSD 發行版，可做為桌面環境、開發平台、伺服器等用途。在本文中，我們將 TrueOS 安裝在 VirtualBox 上，用來測程式碼的相容性。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/trueos-on-virtualbox-tutorial/</link><pubDate>2019-12-03</pubDate></item><item><title>[Objective-C] 程式設計教學：如何建立和使用物件 (Objects)</title><description>Objective-C 的特色就是在 C 加上物件系統。此外，Cocoa 或 GNUstep 帶來立即可用的物件庫。在本文中，我們會介紹如何建立和使用現有的 Objective-C 物件。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/create-and-use-objects/</link><pubDate>2019-12-01</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：修改網頁元素的外觀</title><description>CSS 本身是靜態的樣式 (style) 設置，但在網頁程式中也可以用 JavaScript 動態地設置網頁元素的樣式。本文介紹使用 JavaScript 修改網頁元素的樣式的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/styling-elements/</link><pubDate>2019-11-28</pubDate></item><item><title>[資料結構] 使用 C 語言：實作動態陣列 (Dynamic Array)</title><description>動態陣列 (dynamic array) 和鏈結串列 (linked list) 的抽象資料結構大抵上相同，但其差異在於內部實作。因實作方式的差異會造成兩者在演算法上的效率有別。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/dynamic-array/</link><pubDate>2019-11-26</pubDate></item><item><title>[Objective-C] 程式設計教學：在 GNU/Linux 上測試 Objective-C 程式碼的相容性</title><description>在 Objective-C 的發展中，Clang 和 GCC 的腳步並不一致，造成兩者在編譯 Objective-C 程式碼時不完全相容。如果很在意編譯器相容性的話，最好對兩個編譯器都各自編譯一次。由於編譯和執行程式是很機械性的動作，我們使用一個 shell 腳本將這個過程式自動化。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/test-compiler-compatibility-on-linux/</link><pubDate>2019-11-25</pubDate></item><item><title>[Puppeteer] 程式設計：台股即時價格爬蟲機器人</title><description>在本文中，我們利用 Puppeteer 撰寫抓取台股價格的網路爬蟲，再利用類 Unix 系統的 Cron 定時執行該程式，就成為定時提醒台股價格的機器人。透過這樣的機器人，我們不需要時時盯盤，只需在特定價格出現時進出場即可。</description><author>位元詩人</author><link>https://opensourcedoc.com/puppeteer/twse-price-notification-bot/</link><pubDate>2019-11-17</pubDate></item><item><title>[Golang] 網頁設計教學：使用 CSS 等靜態資源</title><description>對於 Golang 網頁程式來說，CSS 樣式表和 JavaScript 命令稿是靜態資源；因為 Golang 網頁程式不會處理這些資源，而會將其原封不動地傳到客戶端。本文的重點即是學習如何在網頁程式中掛入靜態資源。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/css/</link><pubDate>2019-11-11</pubDate></item><item><title>[Objective-C] 程式設計教學：資料型別 (Data Types)</title><description>本文介紹 Objective-C 中的資料型別。由於 Objective-C 衍生自 C 語言，原本 C 語言的資料型別在 Objective-C 仍可繼續沿用。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/data-type/</link><pubDate>2019-11-07</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用 JSON 物件</title><description>JSON 是一種輕量級的檔案格式，其語法剛好是 JavaScript 的子集合。會 JavaScript 就可以學會 JSON。由於 JSON 在網頁程式中廣泛使用著，在學習 JavaScript 時都會順便學習 JSON。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/json/</link><pubDate>2019-11-04</pubDate></item><item><title>[Puppeteer] 程式設計教學：爬取 Yahoo Finance 的網頁爬蟲</title><description>在本文中，我們撰寫前往 Yahoo Finance 網站抓取股票、ETF等資產的歷史交易資料的網頁爬蟲。由於該網站已經提供這些交易記錄的 CSV 格式資料表，我們的爬蟲並沒有存取頁面上的資料，只是將拜訪網頁及下載資料的過程自動化。</description><author>位元詩人</author><link>https://opensourcedoc.com/puppeteer/yahoo-finance-crawler/</link><pubDate>2019-10-28</pubDate></item><item><title>[技術雜談] 從 Go 語言 (Golang) 來看程式設計的精簡哲學</title><description>許多程式語言以豐富的語法特性和表達力著稱，但是也有像 Go 語言 (golang) 反其道而行，抱著少就是多 (less is more) 的精簡哲學。本文從一些 Go 語言的設計來看如何實踐精簡 (simplicity) 哲學。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/simplicity-in-golang/</link><pubDate>2019-10-24</pubDate></item><item><title>[C 語言] 程式設計教學：撰寫簡易的測試程式 (Test Programs)</title><description>許多現代高階語言加入測試相關的功能，像是 Go (golang) 的 testing 套件即內建在標準函式庫中。C 語言本身沒有測試相關的功能，本文介紹一個相對簡單且不需外部函式庫的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/write-test-programs/</link><pubDate>2019-10-22</pubDate></item><item><title>[Puppeteer] 程式設計教學：撰寫第一隻 Puppeteer 程式</title><description>在本文中，我們會撰寫第一個 Puppeteer 爬蟲程式，以熟悉 Puppeteer 爬蟲撰寫的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/puppeteer/write-first-program/</link><pubDate>2019-10-21</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：選取網頁元素</title><description>在本文中，我們暫時不講撰寫動態行為的方法，先講如何使用原生 JavaScript 程式選取網頁元素，這是操作網頁元素的前置動作。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/dom-selection/</link><pubDate>2019-10-15</pubDate></item><item><title>[Puppeteer] 程式設計教學：為什麼用 (或不用) Puppeteer</title><description>在本文中，我們不急著寫程式，先對 Puppeteer 和其他的網路爬蟲做一些概念上的介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/puppeteer/why-or-why-not-puppeteer/</link><pubDate>2019-10-14</pubDate></item><item><title>[Objective-C] 程式設計教學：Objective-C 和 C 語言的異同</title><description>我們建議還沒學過 C 語言的讀者先學完 C 之後再來學 Objective-C。因為 Objective-C 是 C 的嚴格超集，學 C 比學其他語言更有直接助益。在本文中，我們假定讀者已經看過 C 的語法，會以比較的方式來介紹 Objective-C 的特性。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/compare-objc-and-c/</link><pubDate>2019-10-06</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用物件實字 (Object Literal)</title><description>在 JavaScript 中，物件實字可以當成映射、模擬命名空間、撰寫基於物件的程式等，是相當實用的資料結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/object-literal/</link><pubDate>2019-10-01</pubDate></item><item><title>[Golang] 網頁設計教學：在模板中使用佈局 (Layout)</title><description>Golang 模板可以使用佈局 (layout)；所謂的佈局是模板中共用的部分，我們將共同的部分抽出來，以後如果要修改時只要修改一個地方即可，維護程式碼比較方便。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/layout/</link><pubDate>2019-09-26</pubDate></item><item><title>原生 [JavaScript] 網頁程式設計：為什麼用或不用原生 JavaScript？</title><description>由於瀏覽器相容性的因素，jQuery 曾經一度被視為是網頁程式設計必備的函式庫。但現代瀏覽器在實作上大扺符合 JavaScript 標準，所以封裝 JavaScript 網頁 API 的必要性也隨之減少。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/why-or-why-not-plain-javascript/</link><pubDate>2019-09-23</pubDate></item><item><title>[Golang] 網頁設計教學：用模板語言 (Template Language) 將資料寫入網頁</title><description>在網頁程式中使用模板語言可以簡化生成網頁的任務。透過模板和資料的結合，我們可以動態地用程式產生頁面。Golang 內建的模板語言位於 html/template，可以在網頁程式中直接調用。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/template-language/</link><pubDate>2019-09-09</pubDate></item><item><title>[Web] 程式設計教學：以網頁應用程式的角度來看瀏覽器</title><description>對一般使用者來說，瀏覽器就是一個用來上網看網頁的工具。但對網頁程式開發者來說，瀏覽器是相當重要的軟體，因為瀏覽器可視為網頁程式的發佈平台。網頁程式是否能順利執行，還得看瀏覽器支援的程度。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/browser-in-applicatoin-perspective/</link><pubDate>2019-09-05</pubDate></item><item><title>[Golang] 網頁設計教學：製作靜態網頁</title><description>我們先前的範例皆回傳純文字頁面，但實務上我們會回傳 HTML 頁面給使用者觀看，或是回傳 XML (或 JSON) 文件來傳輸資料。本文說明在網頁程式中加入 HTML 頁面的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/static-pages/</link><pubDate>2019-09-02</pubDate></item><item><title>[Web] 程式設計教學：前後端分離的網頁程式架構</title><description>網頁程式其實是由前端程式和後端程式兩者所組成。傳統的網頁程式，會將兩者合併在同一個專案中。隨著網頁技術的進展，我們可以把前端程式和後端程式拆至兩個專案中，兩者使用不同的技術來實作。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/frontend-backend-separation/</link><pubDate>2019-08-29</pubDate></item><item><title>[Golang] 網頁設計教學：加入系統記錄 (Logging)</title><description>當我們使用網頁框架寫程式的時候，這些框架通常都內含系統紀錄 (logging) 的功能。但使用 Golang 的標準函式庫寫網頁程式時，系統紀錄並不是內附的功能。在本文中，我們會介紹如何在網頁程式中加入系統紀錄的套件。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/logging/</link><pubDate>2019-08-26</pubDate></item><item><title>[Node.js] 程式設計教學：建立網頁程式樣板專案</title><description>在現代語言中，專案產生器是標準的工具之一。然而，在 JavaScript 和 Node.js 中，沒有這麼方便的工具。這是因為 JavaScript 原本是內嵌在網頁中的腳本語言，並不是一個通用型語言。現階段的實務是建立樣板專案，之後要建立新專案時就拉樣板專案來改。</description><author>位元詩人</author><link>https://opensourcedoc.com/nodejs-programming/build-web-boilerplate-projects/</link><pubDate>2019-08-22</pubDate></item><item><title>[Web] 程式設計教學：客製化及幫 Bootstrap 4 瘦身</title><description>在 Bootstrap 3 時代，Twitter 提供官方的客製化頁面。藉由客製版本的 Bootstrap，我們不僅可幫 Bootstrap 瘦身，還可以客製化顏色、字體、元素間距等項目。但 Bootstrap 4 之後，官方沒有放出這樣的客製化頁面，我們得自己下載 Bootstrap 的原始碼後自行編譯 Bootstrap。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/customize-bootstrap-4/</link><pubDate>2019-08-19</pubDate></item><item><title>[Golang] 網頁設計教學：設置路由 (Route)</title><description>網頁程式基本的行為是對請求進行相對應的回應。對不同的路徑有不同的行為。本文說明在 Golang 網頁程式中設置路由的方法。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/route/</link><pubDate>2019-08-15</pubDate></item><item><title>[Golang] 網頁設計教學：撰寫第一個程式</title><description>在本文中，我們透過極簡的 Hello World 程式來熟悉如何用 Go 撰寫網頁程式。根據網頁是否要加密，程式的寫法略有不同，讀者可相互比較一下。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/write-first-program/</link><pubDate>2019-08-05</pubDate></item><item><title>[VBScript] 程式設計教學：建立類別 (Class) 和物件 (Object)</title><description>微軟網站沒有強調以 VBScript 撰寫物件的方式，VBScript 的確也缺乏完整的物件導向特性，但我們仍然可以用 VBScript 撰寫基於物件的程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/class-object/</link><pubDate>2019-08-05</pubDate></item><item><title>[資料結構] 使用 C 語言：串列走訪 (List Traversal)</title><description>本文探討兩個和串列走訪相關的議題，一個是迭代器 (iterator)，一個是和串列走訪相關的高階函式 (higher-order function)。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/list-traversal/</link><pubDate>2019-07-29</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用映射 (Map) 和集合 (Set)</title><description>映射和集合是 ES6 後新增的容器物件。映射是用來儲存以鍵/值對為單位的非線性容器。集合的概念源自於數學上的集合論，用來表示獨特的資料存在的關係。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/map-set/</link><pubDate>2019-07-23</pubDate></item><item><title>[Golang] 網頁設計教學：簡介</title><description>Go 語言的主要標的是網頁程式 (web applications) 和雲端服務 (cloud services)；可以想成一個比 Node.js 運行環境更高效，比 JavaScript 工程性更好，比 C++ 簡單得多的後端程式語言。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-web-programming/intro/</link><pubDate>2019-07-21</pubDate></item><item><title>[Node.js] 程式設計教學：用於網頁程式的套件</title><description>Node.js 有許多網頁程式相關的開發工具，可以協助網頁程式的開發。本文會對這些套件做一些概念上的介紹</description><author>位元詩人</author><link>https://opensourcedoc.com/nodejs-programming/packages-for-web-applications/</link><pubDate>2019-07-08</pubDate></item><item><title>[Golang] 程式設計教學：藉由 Build Constrants 使用條件編譯 (conditional compilation)</title><description>前置處理器是 C 或 C++ 用來達到條件編譯的語法特性；雖然 Go 語言 (golang) 沒有前置處理器，但 Go 語言也可透過 build constraints 來達到類似的功能</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/build-constrants/</link><pubDate>2019-06-30</pubDate></item><item><title>[Golang] 程式設計教學：撰寫和使用套件 (Package)</title><description>套件 (package) 將一些相關的函式或物件集中，以易於分享的形式包裝起來。另外，對套件開發者來說，套件提供命名空間 (namespace) 和可視度 (scope)。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/package/</link><pubDate>2019-06-27</pubDate></item><item><title>[Golang] 程式設計教學：撰寫共時性 (Concurrency) 程式</title><description>Golang 主要的特色之一，就在於其對共時性程式的支援；大部分程式語言以函式庫來支援共時性程式，但 Golang 將其內建在語法中。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/concurrency/</link><pubDate>2019-06-25</pubDate></item><item><title>[VBScript] 程式設計教學：撰寫副程式 (subroutine) 和函式 (function)</title><description>在一般的程式設計術語中，函式、程序、副程式三者通常可交替使用。然而，在 VBScript 中，副程式和函式兩者略有不同，撰寫程式碼時需注意。</description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/subroutine-function/</link><pubDate>2019-06-24</pubDate></item><item><title>[Golang] 程式設計教學：錯誤處理 (Error Handling)</title><description>在實際情境中運行的程式，即使程式本身沒有臭蟲 (bug)，仍然要面對許多可能的錯誤 (error)。本文介紹 Golang 處理錯誤的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/error-handling/</link><pubDate>2019-06-23</pubDate></item><item><title>[Golang] 程式設計教學：撰寫高階函式 (Higher-Order Function)</title><description>筆者在這裡介紹一些常見的高階函式模式，及相對應的 Golang 程式，做為各位讀者撰寫高階函式的參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/higher-order-function/</link><pubDate>2019-06-18</pubDate></item><item><title>[Golang] 程式設計教學：函數式程式設計 (Functional Programming)</title><description>Go 語言雖然不是函數式語言，但提供一些函數式程式的特性。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/functional-programming/</link><pubDate>2019-06-16</pubDate></item><item><title>[Golang] 程式設計教學：用介面 (Interface) 實踐繼承和多型</title><description>Go 缺乏繼承的機制，我們無法透過繼承來達到多型的效果。為了處理這個議題，Go 引入介面的機制，也就是本文的主題。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/interface/</link><pubDate>2019-06-13</pubDate></item><item><title>[Golang] 程式設計教學：建立類別 (Class) 和物件 (Object)</title><description>近年來，物件導向程式設計 (object-oriented programming) 是程式設計主流的模式 (paradigm)。本文將介紹如何在 Go 撰寫物件導向程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/class-object/</link><pubDate>2019-06-11</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用陣列 (Array)</title><description>本文介紹 JavaScript 的陣列物件的使用方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/array/</link><pubDate>2019-06-11</pubDate></item><item><title>[資料結構] 使用 C 語言：實作有序串列 (Ordered List)</title><description>有序串列是串列的變體，和一般串列主要的差異在於放入元素時會自動將元素排序。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/ordered-list/</link><pubDate>2019-06-10</pubDate></item><item><title>[Golang] 程式設計教學：撰寫函式 (Function)</title><description>程式設計者撰寫函式 (function) 以分離程式碼，函式是電腦程式共用程式碼的方式。物件導向的方法 (method) 也是函式為基礎。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/function/</link><pubDate>2019-06-09</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用控制結構 (Control Structure)</title><description>透過控制流程，可以改變程式的執行流程，程式好像變聰明了。本文介紹 JavaScript 可用的控制流程。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/control-structure/</link><pubDate>2019-06-09</pubDate></item><item><title>[Golang] 程式設計教學：使用指標 (Pointer)</title><description>指標對初學者來說不是很好懂，時常會因誤用指標而造成錯誤，許多程式人對指標有不好的回憶。在 Go 裡面，指標比較簡化，不僅沒有指標運算，也不需要手動控制記憶體釋放。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/pointer/</link><pubDate>2019-06-06</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：使用運算子 (Operator)</title><description>在程式語言中，運算子視為該語言基本的指令，通常不能再拆分成更小的單位。本文介紹 JavaScript 中可用的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/operator/</link><pubDate>2019-06-06</pubDate></item><item><title>[Golang] 程式設計教學：使用結構 (Struct)</title><description>在 Go 語言，使用結構 (struct) 來表示複合的概念；此外，大部分的 Go 物件導向程式也會使用結構。本篇文章會介紹結構，但暫時不接觸物件導向的部分。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/struct/</link><pubDate>2019-06-04</pubDate></item><item><title>[Node.js] 程式設計教學：使用 NPM 管理網頁專案</title><description>本文會說明如何在專案中引入以 Node.js 套件發佈的前端相關工具；即使專案本身不使用 Node.js 程式也可以用 NPM 管理專案中所用到 Node.js 套件。</description><author>位元詩人</author><link>https://opensourcedoc.com/nodejs-programming/npm/</link><pubDate>2019-06-04</pubDate></item><item><title>[VBScript] 程式設計教學：建立和使用字典 (Dictionary)</title><description>字典是一種非線性的資料結構，其內部儲存多對鍵、值組合，鍵做為存取值的索引存取值。在 VBScript 中，字典透過內建物件來支援，但字典是常用的資料結構，故我們提前說明。</description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/dictionary/</link><pubDate>2019-06-03</pubDate></item><item><title>[Golang] 程式設計教學：使用映射 (Map)</title><description>在本文中，我們會介紹映射 (map)，這是另外一種容器；映射儲存鍵/值 (key/value) 對，可以用數種資料型別做為鍵，取得相對應的值。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/map/</link><pubDate>2019-06-02</pubDate></item><item><title>[Node.js] 程式設計教學：建置網頁程式所需的開發環境</title><description>本文介紹建置以 Node.js 為基礎的網頁程式的開發環境所需的過程。</description><author>位元詩人</author><link>https://opensourcedoc.com/nodejs-programming/toolkit-for-nodejs-projects/</link><pubDate>2019-06-02</pubDate></item><item><title>[Golang] 程式設計教學：使用陣列 (Array) 和切片 (Slice)</title><description>在本文中，我們介紹陣列 (array) 和切片 (slice)，這兩種容器皆是同質 (homogeneous) 且線性的 (linear)。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/array-slice/</link><pubDate>2019-05-30</pubDate></item><item><title>[Web] 程式設計教學：檢測網站效能</title><description>本文介紹一些檢測網頁效能的方式，藉此可知要優化網站的那個部分，對效能的提升幫助較大。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/performance-testing/</link><pubDate>2019-05-30</pubDate></item><item><title>[Web] 程式設計教學：網頁載入的過程</title><description>在本文中，我們會介紹網頁載入的過程。這個過程不會顯示在程式碼中，但我們要對這個過程有概念，因為網頁載入的過程會影響網頁程式的行為，有時候程式的問題不在於程式碼本身的問題，而是沒有弄清楚網頁載入的過程。 </description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/page-loading-timeline/</link><pubDate>2019-05-28</pubDate></item><item><title>[Objective-C] 程式設計教學：使用 GNUstep Make 在多平台上編譯 Objective-C 程式</title><description>為什麼 GNUstep 要設計以 Makefile 為基礎的專案管理工具呢？因為 GNU Make 不被特定 IDE 綁住，可以在純終端機環境下工作，GNU Make 本身又是類 Unix 系統上常見的專案管理工具，直接使用 GNU Make 是最符合經濟效益的。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/use-gnustep-makefile/</link><pubDate>2019-05-27</pubDate></item><item><title>[Web] 程式設計教學：網頁程式的組成和特性</title><description>網頁連線代表網頁程式背後運作的方式，雖然這些東西不太會表現在程式碼上，但要意識到這個過程，以了解網頁程式的特性。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/http-connect/</link><pubDate>2019-05-26</pubDate></item><item><title>[Golang] 程式設計教學：使用迭代控制結構 (Iteration Control Structure)</title><description>在本文中，我們會使用迭代控制結構 (iteration control structure) 來達成反覆 (repeating) 或循環 (looping) 的行為，藉以省下重覆的程式碼。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/iteration/</link><pubDate>2019-05-23</pubDate></item><item><title>[Web] 程式設計教學：JavaScript 入門教學</title><description>JavaScript 一開始的目標是在網頁中加上程式語言，沒想到會成為繼 Java 後最廣泛使用的跨平台程式語言。本文對 JavaScript 做一些概念性的介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/javascript-primer/</link><pubDate>2019-05-23</pubDate></item><item><title>[Golang] 程式設計教學：使用選擇控制結構 (Selection Control Structure)</title><description>在程式中使用控制結構 (control structure) 可以改變程式運行的方向，藉以達成我們所設計的行為。在本文中，我們介紹 Go 語言中和選擇 (selection)、分支 (branching) 相關的控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/selection/</link><pubDate>2019-05-21</pubDate></item><item><title>[技術雜談] 用 Brunch 編譯前端專案，以 Handlebars、Sass、Babel 為例</title><description>Brunch 是一個搭配前端技術使用的組建自動化 (build automation) 軟體，可簡化編譯前端專案程式碼的過程。本文會談談為什麼要在前端專案用 Brunch，並會展示一個簡單的實例。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/front-end-project-with-brunch/</link><pubDate>2019-05-20</pubDate></item><item><title>[Golang] 程式設計教學：使用運算子 (Operator)</title><description>在程式設計中，運算子通常不能化約成更小的單位，可視為程式語言的基本指令。本文介紹 Go 語言中可用的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/operator/</link><pubDate>2019-05-19</pubDate></item><item><title>[Web] 程式設計教學：HTML 入門教學</title><description>我們在本文中介紹一下什麼是 HTML。當然，HTML 無法在短短一篇文章內介紹完，這裡僅做一些概念上的介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/html-primer/</link><pubDate>2019-05-19</pubDate></item><item><title>[Golang] 程式設計教學：使用變數 (Variable)</title><description>變數 (variable) 是電腦程式中用來操作資料 (data) 的一種語法特性。本文介紹如何在 Go 語言中使用變數。</description><author>位元詩人</author><link>https://opensourcedoc.com/golang-programming/variable/</link><pubDate>2019-05-16</pubDate></item><item><title>[Web] 程式設計教學：練習前端技術的線上平台</title><description>以前要練習網頁時，要在自己的電腦上建置環境才行。這幾年出現數個練習前端技術的線上平台，像是： 這類平台的好處在於： </description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/online-web-editor/</link><pubDate>2019-05-16</pubDate></item><item><title>[Web] 程式設計教學：介紹</title><description>網頁程式是指使用全球資訊網為載體的應用程式。本文短短的內容無上馬上讓讀者會寫網頁應用程式，但可以有一個起點和方向。</description><author>位元詩人</author><link>https://opensourcedoc.com/web-programming/intro/</link><pubDate>2019-05-14</pubDate></item><item><title>[資料結構] 使用 C 語言：實作鏈結串列 (Linked List)</title><description>鏈結串列是典型的基於節點的資料結構形態，對於練習使用節點相當重要。本文展示使用 C 語言實作的版本。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/linked-list/</link><pubDate>2019-05-13</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：宣告和使用變數 (Variable)</title><description>本文說明如何在 JavaScript 中宣告和使用變數。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/variable/</link><pubDate>2019-05-12</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：資料型態 (Data Types)</title><description>JavaScript 可用的資料型態分為基礎型態和物件型態，本文對 JavaScript 的資料型態做介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/data-type/</link><pubDate>2019-05-09</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：利用 Babel 支援現代 JavaScript 的特性</title><description>Babel 可將 ES6+ 程式碼轉為等效的 ES5 程式碼，我們在撰寫程式時就可以使用新的語法特性來改善程式碼的品質，而不用刻意守在舊有的手法。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/babel/</link><pubDate>2019-05-07</pubDate></item><item><title>[Objective-C] 程式設計教學：在 GNU/Linux 以 GNUstep 建立 Objective-C 開發環境</title><description>若想要在 GNU/Linux 上練習 Objective-C，可以用 GNUstep，這是一個 Cocoa 的自由軟體再製版本。主流的 GNU/Linux 應該都會提供預編好的 GNUstep 套件，但也可以自行從原始碼來編譯；我們兩種方法都會介紹，並且比較其差異。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/build-development-environment-on-linux/</link><pubDate>2019-05-06</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：建置開發環境</title><description>本文帶著讀者實際建立 JavaScript 開發環境</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/build-development-environment/</link><pubDate>2019-05-05</pubDate></item><item><title>現代 [JavaScript] 程式設計教學：基本概念</title><description>傳統上，JavaScript 是運行在瀏覽器上的命令稿語言。但 JavaScript 早就從瀏覽器上的新玩意兒進化成全功能的通用型語言。本文從當代的觀點來看 JavaScript 程式設計。</description><author>位元詩人</author><link>https://opensourcedoc.com/javascript-programming/from-zero-to-hero/</link><pubDate>2019-05-02</pubDate></item><item><title>[Windows] 程式設計教學：使用 Golang 取代 Python 當成腳本語言 (Scripting Language)</title><description>雖然 Go 語言是編譯語言，但 Go 語言使用起來卻如同直譯語言般簡單，因此可用來當成另一個自動化日常事務的腳本語言。本文介紹以 Go 語言做為腳本語言的優缺點，並展示一個簡短的例子。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/use-golang-instead-of-python-as-scripting-language/</link><pubDate>2019-05-02</pubDate></item><item><title>[資料結構] 使用 C 語言：以陣列 (Array) 實做雙向佇列 (Deque)</title><description>在本文中，我們仍然實作雙向佇列，但內部改以陣列來實作。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/deque-in-array/</link><pubDate>2019-04-29</pubDate></item><item><title>[Windows] 程式設計教學：用 vcpkg 安裝 C 或 C++ 函式庫</title><description>vcpkg 是一個 Windows 上原生的 C 和 C++ 套件管理軟體，主要的目的是解決在 Windows 上沒有好的 C 和 C++ 套件管理的方式。本文以 GTK+ 的 Hello World 程式為例，展示如何使用 vcpkg。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/use-vcpkg-to-install-gtk-on-windows/</link><pubDate>2019-04-25</pubDate></item><item><title>[Groovy] 程式設計教學：藉由運算子重載 (Operator Overloading) 使程式碼更簡潔</title><description>在物件導向程式中，運算子重載是一個非必備的功能，算是一種讓物件使用的語法更簡潔的語法糖。本文介紹如何在 Groovy 中使用運算子重載。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/operator-overloading/</link><pubDate>2019-04-21</pubDate></item><item><title>[Objective-C] 程式設計教學：在 macOS 以 Cocoa 建立 Objective-C 開發環境</title><description>如果要在 macOS 上學 Objective-C，大部分的程式人都會使用 Xcode，這是正規的方式；不過，如果有跨平台的選擇，GNUstep 是一個替代的方案。本文兩者皆會介紹。</description><author>位元詩人</author><link>https://opensourcedoc.com/objc-programming/build-development-environment-on-macos/</link><pubDate>2019-04-16</pubDate></item><item><title>[Windows] 程式設計教學：在 Visual Studio 2019 中建立和執行 C 專案</title><description>Visual Studio 2019 在預設情境下沒有辦法直接建 C 專案，只能建 C++ 專案。不過 Visual C++ 仍然保有編譯 C 原始碼的功能，經過一些額外的步驟後，就可以讓專案支援 C 語言。本文以一個 Hello World 程式來展示這個過程。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/use-vs2019-for-c-projects/</link><pubDate>2019-04-15</pubDate></item><item><title>技術雜談：C# (C sharp) 在非 Windows 系統的日常 (2019 年版)</title><description>C# 傳統上視為一種 Windows-only 的技術，不過微軟近年來改變策略，讓 C# 等原先僅限於 Windows 的技術走出 Windows </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/c-sharp-programming-on-non-windows/</link><pubDate>2019-04-14</pubDate></item><item><title>[Groovy] 程式設計教學：介面 (Interface) 和特質 (Trait)</title><description>介面 (Interface) 和特質 (Trait) 是 Groovy 為了補償多重繼承所設計的語法，由於兩者在功能上有些重疊，建議依當下需求選擇最適合的特性。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/interface-trait/</link><pubDate>2019-04-11</pubDate></item><item><title>[資料結構] 使用 C 語言：基於連結串列 (Linked List) 的雙向佇列 (Deque)</title><description>雖然雙向佇列 (deque) 仍為受限制的線性資料結構，比起佇列，雙向佇列比較靈活一些，因為雙向佇列可以同時從頭端或尾端推入或推出資料。本文會以連結串列 (linked list) 實作雙向佇列。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/deque-in-list/</link><pubDate>2019-04-09</pubDate></item><item><title>[Groovy] 程式設計教學：藉由繼承 (Inheritance) 重用程式碼和實現子類別</title><description>繼承是物件導向程式常見的一項特性，主要有兩個用意，一個是重用程式碼，一個是做為子類別的手段。本文來看如何在 Groovy 中使用繼承。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/inheritance/</link><pubDate>2019-04-07</pubDate></item><item><title>[VBScript] 程式設計教學：建立和使用陣列 (Array)</title><description>在 VBScript 中，陣列是一種線性的資料結構，可利用整數為索引存取其中的元素；由於微軟未詳細提及陣列內部的實作，我們只要以高階抽象的想法使用陣列即可。</description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/array/</link><pubDate>2019-04-06</pubDate></item><item><title>[Groovy] 程式設計教學：建立和使用類別 (Class)</title><description>Groovy 的物件系統基本上和 Java 的物件系統大同小異，相異的地方在於 Groovy 加上一些語法糖，使得語法變得更簡潔。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/class/</link><pubDate>2019-04-02</pubDate></item><item><title>[C 語言] 程式設計教學：錯誤處理 (Error Handling)</title><description>C 語言沒有錯誤處理相關的語法或物件，但這不代表我們在 C 語言可以忽略這個議題。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/error-handling/</link><pubDate>2019-04-01</pubDate></item><item><title>[Groovy] 程式設計教學：使用閉包 (Closure)</title><description>在 Groovy 中，最接近函式的東西是閉包；基本上，可以把 Groovy 的閉包當成類似其他語言的匿名函式來看待。Groovy 中大量使用閉包，像是看起來很像 Ruby 語法的迭代器、串列操作、映射操作等基本上內部皆以閉包來運作。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/closure/</link><pubDate>2019-03-28</pubDate></item><item><title>[C 語言] 程式設計教學：撰寫函數式程式 (Functional Programming)</title><description>C 語言不是函數式語言，但仍有少數函數式程式的特性。本文中介紹一些在 C 語言中可見的函數式程式特性，這些寫法不是主流的手法，故僅供參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/functional-programming/</link><pubDate>2019-03-26</pubDate></item><item><title>[技術雜談] Paiza 雲端開發環境介紹</title><description>Paiza 是一個雲端開發環境 (cloud development environment)，這類開發環境只要透過主流瀏覽器就可以操作，不需在本地端額外安裝其他的軟體。Paiza 的產品線有兩條，paiza.io 是雲端編輯器，paiza.cloud 則是雲端 IDE，本文會分別介紹這兩項產品。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/paiza-cloud-development-environment/</link><pubDate>2019-03-19</pubDate></item><item><title>[資料結構] 使用 C 語言：以連結串列 (Linked List) 為基礎的佇列 (Queue)</title><description>佇列 (queue) 是另一種受限制的線性資料結構。其操作方式為從尾端推入，從頭端推出，是一種 FIFO (First-In, First-Out) 的資料結構。本文使用 C 語言，以串列實作佇列。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/queue-in-list/</link><pubDate>2019-03-18</pubDate></item><item><title>[C 語言] 程式設計教學：透過外部模板撰寫擬泛型程式</title><description>其實泛型程式是一種模板 (template) 的概念。對於 C、Go (golang) 等不支援泛型的程式語言來說，也可以用外部模板來模擬泛型。本文以一個 C 語言的實例來說明如何以外部模板模擬泛型程式。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/generics-with-external-templates/</link><pubDate>2019-03-14</pubDate></item><item><title>[資料結構] 使用 C 語言：以陣列 (Array) 為基礎的堆疊 (Stack)</title><description>在本文中，我們會實作堆疊，但內部實作不是用這類教材常見的連結串列，而是使用陣列。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/stack-in-array/</link><pubDate>2019-03-11</pubDate></item><item><title>[Selenium] 程式設計教學：如何使用 Golang 操作瀏覽器</title><description>雖然 Selenium 並未提供給 Golang 使用的官方 binding，透過 tebeka/selenium 這類社群套件，同樣可以用來操作 Selenium (或 WebDriver)。本文以兩個 Hello World 等級範例，分別來看如何透過 Selenium (或 WebDriver) 操作瀏覽器。</description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/manipulate-selenium-with-golang/</link><pubDate>2019-03-07</pubDate></item><item><title>[資料結構] 使用 C 語言：以連結串列 (Linked List) 為基礎的堆疊 (Stack)</title><description>堆疊 (stack) 是一種受限制的線性 (linear) 資料結構，僅能由單一出入口存取資料，其存取方式為 FILO (First-In, Last-Out)。本文使用 C 語言，以串列來實作堆疊。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/stack-in-list/</link><pubDate>2019-03-04</pubDate></item><item><title>[Groovy] 程式設計教學：建立和使用映射 (Map)</title><description>Groovy 的映射等同於其他程式的雜湊、字典、關連式陣列等，是以鍵/值對組成的非線性容器。本文介紹映射的用法。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/map/</link><pubDate>2019-02-28</pubDate></item><item><title>[Solar2D] 程式設計教學：在應用程式中存取偏好設定</title><description>由於儲存系統偏好設定是常見的功能，Solar2D 將其封裝為 API，程式人不需要煩惱在不同系統中如何實作儲存偏好設定的方法，可以用統一的 API 來實做這項特性。</description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/system-preferences/</link><pubDate>2019-02-25</pubDate></item><item><title>[資料結構] 使用 C 語言：如何練習</title><description>雖然資料結構是抽象的概念，但我們仍需某種程式語言來實作電腦程式。在本文中，我們以 C 語言為工具，說明練習資料結構的方法</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/practice/</link><pubDate>2019-02-21</pubDate></item><item><title>[資料結構] 使用 C 語言：要學些什麼？</title><description>資料結構是在電腦程式中有效率地儲存和使用資料的方法。本文會介紹資料結構要學習的重點項目為何，偏向於概論的性質。</description><author>位元詩人</author><link>https://opensourcedoc.com/data-structures-in-c/intro/</link><pubDate>2019-02-18</pubDate></item><item><title>[Groovy] 程式設計教學：使用控制結構 (Control Structures)</title><description>控制結構用來改變程式運行的過程。Groovy 除了承襲 Java 原有的控制結構外，能以簡潔的語法使用迭代器是 Groovy 的一大特色。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/control-structure/</link><pubDate>2019-01-27</pubDate></item><item><title>[Groovy] 程式設計教學：使用運算子 (Operators)</title><description>透過運算子，程式設計者可以對資料進行一些基本的操作。本文介紹 Groovy 中基本的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/groovy-programming/operator/</link><pubDate>2019-01-22</pubDate></item><item><title>[C 語言] 程式設計教學：使用泛型型別巨集 (_Generic) 撰寫泛型程式</title><description>在 C11 之前，C 語言缺乏真正的泛型，雖然可以用一些語法特性來模擬泛型，但那些手法缺乏型別安全。在 C11 後，透過泛型型別巨集可取得具有型別安全的泛型。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/generics-with-generic-selection/</link><pubDate>2019-01-21</pubDate></item><item><title>[C 語言] 程式設計教學：使用前置處理器 (Preprocessor) 撰寫擬泛型程式</title><description>用前置處理器來模擬泛型可以跳脫指標型別的限制，但卻是非主流，因為沒有型別安全且難以除錯。這已經算是一種經典反模式，讀者請自己決定要不要使用這個手法。</description><author>位元詩人</author><link>https://opensourcedoc.com/applied-c-programming/generics-with-preprocessor/</link><pubDate>2018-12-18</pubDate></item><item><title>[Solar2D] 程式設計教學：利用 Composer 在應用程式中切換頁面</title><description>在撰寫 Solar2D 程式時，可以利用 Composer 來達到分頁的效果，這樣程式就不用受限於單一頁面的限制。</description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/composer/</link><pubDate>2018-12-16</pubDate></item><item><title>技術雜談：用 Perl 製作正簡 (繁簡) 中文自動轉換的小工具</title><description>本文利用 Perl 製作一個轉換文字的小工具，可用來批次轉換文字檔案。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/zh-convert-with-perl/</link><pubDate>2018-12-10</pubDate></item><item><title>[Solar2D] 程式設計教學：使用 TabBar 建立子分頁</title><description>在撰寫 Solar2D 應用程式時，我們可以透過 TabBar 在同一個頁面中創造出多個子分頁，就像是日本人利用收納術在有限的空間中創造更多空間。</description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/tabbar/</link><pubDate>2018-12-09</pubDate></item><item><title>[Solar2D] 程式設計教學：使用 TableView 建立長清單</title><description>在 Solar2D 程式中，可藉由 TableView 在狹窄的行動裝置螢幕上建立較長的清單。</description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/tableview/</link><pubDate>2018-12-02</pubDate></item><item><title>技術雜談：在網頁中加入正簡 (繁簡) 中文自動轉換</title><description>對於華人來說，由於正體中文和簡體中文只是同一種語言的不同寫法，稍加學習後，兩種文字都能閱讀。不過，如果能根據不同網站訪客的習慣給予相對應的中文文字，對於網站來說算是加分項目。</description><author>位元詩人</author><link>https://opensourcedoc.com/blog/add-zh-convert-to-web-pages/</link><pubDate>2018-11-29</pubDate></item><item><title>[Solar2D] 程式設計教學：使用 PickerWheel 製作多選項清單</title><description>每個項目有多個選擇時，使用 PickerWheel 就會比用很多 RadioButton 節省應用程式的畫面，畢竟大部分的行動裝置畫面有限；此外，過多的 RadioButton 會使得畫面較不美觀。</description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/pickerwheel/</link><pubDate>2018-11-25</pubDate></item><item><title>[Selenium] 程式設計教學：如何抓取台股大盤指數歷史資料</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/taiex-historical-data-crawler/</link><pubDate>2018-11-12</pubDate></item><item><title>[Solar2D] 程式設計教學：使用 Radio Button 和 Checkbox 等表單按鈕</title><description>[注意事項] Corona 已改名為 Solar2D。 在本文中，我們展示 Radio Button 和 Checkbox 等元件的使用方式。這兩種元件都是給使用者做為選項的元件，其差別在於 </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/radio-button-and-checkbox/</link><pubDate>2018-11-08</pubDate></item><item><title>[Solar2D] 程式設計教學：使用 Segmented Control 和 Slider 元件來進行狀態切換</title><description>[注意事項] Corona 已改名為 Solar2D。 本文會展示 segmented control 和 slider 兩種元件。Segmented control 可在數種狀態間切換，概念上類似 </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/segmental-control-and-slider/</link><pubDate>2018-11-06</pubDate></item><item><title>[Selenium] 程式設計教學：如何用 Java Swing 建立圖形化的網路爬蟲</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/gui-crawler-in-java-swing/</link><pubDate>2018-11-01</pubDate></item><item><title>[Selenium] 程式設計教學：如何到玉山銀行網站抓取歷史匯率資料</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/esun-bank-forex-historical-data-crawler/</link><pubDate>2018-10-30</pubDate></item><item><title>[Selenium] 程式設計教學：如何到內政部不動產資訊平台抓法拍屋和金拍屋資料</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/taiwan-house-foreclosure-data-crawler/</link><pubDate>2018-10-25</pubDate></item><item><title>[Selenium] 程式設計教學：如何到 OFX 抓外匯保證金交易資料</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/ofx-forex-historical-data-crawler/</link><pubDate>2018-10-23</pubDate></item><item><title>[Selenium] 程式設計教學：如何到 Yahoo Finance 抓股票訊息</title><description>免責聲明：我們盡力確保本文的正確性，但本文不代表任何投資的建議，我們也無法擔保因使用本文的內容所造成的任何損失。如對本文內容有疑問，請詢問財經相關的專家。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/yahoo-finance-crawler/</link><pubDate>2018-10-18</pubDate></item><item><title>[Selenium] 程式設計教學：基礎概念</title><description>在本文中，我們不急著寫程式，先介紹 Selenium 和網路爬蟲的概念。本文短短的內容無法讓讀者變成網路爬蟲的專家，但可知道如何開始，以繼續學習。 </description><author>位元詩人</author><link>https://opensourcedoc.com/selenium/intro/</link><pubDate>2018-10-16</pubDate></item><item><title>[C 語言] 程式設計教學：如何撰寫 C 函式庫 (Library)</title><description>C 語言對於函式庫 (library) 的概念相對簡單，C 函式庫是由標頭檔 (.h) 和二進位檔 (靜態函式庫： .a, .lib ，動態函式庫： </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/library/</link><pubDate>2018-09-16</pubDate></item><item><title>[Solar2D] 程式設計教學：練習進度條 (ProgressView)、步進器 (Stepper)、開關 (Switch) 等元件的使用方式</title><description>[注意事項] Corona 已改名為 Solar2D。 本文仍然是元件的練習，學習的重點在操作 ProgressView (進度條)、Stepper (步進器) </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/progressview-stepper-switch/</link><pubDate>2018-09-13</pubDate></item><item><title>[Solar2D] 程式設計教學：圖形介面程式的要素 ─ 元件 (Widgets)、事件 (Events)、處理器 (Handlers)</title><description>[注意事項] Corona 已改名為 Solar2D。 從程式設計的角度來看，Solar2D (原 Corona SDK) 應用程式是一種圖形介面程式，在這類程式中，會採用事件導向 </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/widget-event-handler/</link><pubDate>2018-09-11</pubDate></item><item><title>[Solar2D] 程式設計教學：練習寫第一隻程式</title><description>[注意事項] Corona 已改名為 Solar2D。 在本文中，我們藉由簡易的 Hello World 範例來熟悉開發 Solar2D 應用程式的過程，也會一併說明 </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/helloworld/</link><pubDate>2018-09-10</pubDate></item><item><title>[技術雜談] Rust 或 Go (Golang) 何者較適合做為後端語言</title><description>網路論壇上有許多討論這個議題的討論串，像是這個。Rust 和 Golang 分別問世將近十年，這段時間已經足以了解其趨勢，從相關流行度統計來看，Golang </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/rust-or-golang-for-back-end/</link><pubDate>2018-09-08</pubDate></item><item><title>[Solar2D] 程式設計教學：建置開發環境</title><description>[注意事項] Corona 改名為 Solar2D。 本文介紹如何建置開發 Solar2D (原 Corona SDK) 應用程式，已經有經驗的開發者可直接到官網下載 </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/install/</link><pubDate>2018-09-06</pubDate></item><item><title>[Solar2D] 程式設計教學：為什麼要用跨平台行動框架？</title><description>[注意事項] Corona 已改名為 Solar2D。 本文對跨平台行動應用框架 (cross-platform mobile application frameworks) 和 Solar2D </description><author>位元詩人</author><link>https://opensourcedoc.com/solar2d/intro/</link><pubDate>2018-09-04</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用巨集 (macro) 或前置處理器 (Preprocessor)</title><description>前置處理器是在 C 或 C++ 中所使用的巨集 (macro) 語言。嚴格說來，前置處理器的語法不是 C 語言，而是一個和 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/preprocessor/</link><pubDate>2018-09-03</pubDate></item><item><title>[VBScript] 程式設計教學：使用控制結構 (Control Structure) 改變程式運行流程</title><description>VBScript 提供四種程式語言中常見的控制結構： If 的虛擬碼如下： 當 condition 符合時才會執行 If 區塊內的程式碼，反之則不執行。 </description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/control-structure/</link><pubDate>2018-09-02</pubDate></item><item><title>[C 語言] 程式設計教學：如何撰寫函式 (Function)</title><description>在先前的文章中，絕大部分的程式的程式碼全都寫在主函式裡，在規模短小的程式這樣子做並沒有什麼不好，但隨著程式規模成長，這種模式就漸漸行不通了。這時候，我們會利用函式將程式碼分離開來。 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/function/</link><pubDate>2018-08-28</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用列舉 (Enumeration)</title><description>列舉 (enum 或 enumeration) 是另一種複合型別，主要是用在宣告僅有少數值的型別，像是一星期內的日期 (day of </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/enumeration/</link><pubDate>2018-08-26</pubDate></item><item><title>經營[部落格]：使用靜態網頁產生器 (Static Site Generator) 製作網站</title><description>對於部落客來說，常見的選擇就是使用現有的部落格平台或是自架 WordPress 。雖然自加 WordPress 很簡單，但 WordPress </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/static-site-generator/</link><pubDate>2018-08-23</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用聯合 (Union)</title><description>聯合 (union) 乍看和結構 (structure) 有點像，但聯合內的屬性共用同一塊記憶體，故同一時間內僅能用聯合內其中一種屬性。聯合主要用來表示同概念但不同資料類型的實體。 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/union/</link><pubDate>2018-08-21</pubDate></item><item><title>[VBScript] 程式設計教學：使用運算子 (Operator)</title><description>在程式設計中，運算子 (operator) 視為程式的基本指令，可用來執行基本的功能。運算子不能再拆分出更小的單位。VBScript </description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/operator/</link><pubDate>2018-08-19</pubDate></item><item><title>技術雜談：建立前後端分離的前端專案</title><description>傳統的網頁程式是以後端技術為中心，由後端來處理網頁路徑 (routes) 並輸出頁面。現在的網頁程式強調 SPA </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/front-end-project-for-separated-front-end-and-back-end/</link><pubDate>2018-08-14</pubDate></item><item><title>[VBScript] 程式設計教學：資料型態 (data types) 和變數 (variables)</title><description>本文介紹如何以 VBScript 程式處理資料。 以下是 VBScript 中可用的資料型別： VBScript 是動態型態語言，程式設計者不需在程式中標記型別相關的資訊，但必要時可做型別轉換。VBScript </description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/variable-datatype/</link><pubDate>2018-08-12</pubDate></item><item><title>[VBScript] 程式設計教學：建置開發環境</title><description>前文提過，VBScript 在 Windows 系統中是內建的，不需額外安裝什麼軟體。VBScript 通常用來撰寫簡短的命令稿，不會用到重量級的 </description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/dev-env/</link><pubDate>2018-08-09</pubDate></item><item><title>[VBScript] 程式設計教學：21 世紀的 VBScript</title><description>VBScript 是微軟 (Microsoft) 以 Visual Basic (在引入 .NET Framework 之前) 為基礎所開發的一種程式語言，原本的目標是用來網頁程式，像是用於伺服端的 </description><author>位元詩人</author><link>https://opensourcedoc.com/vbscript-programming/vbscript-in-the-21st-century/</link><pubDate>2018-08-07</pubDate></item><item><title>技術雜談：為什麼要用 (或不用) jQuery</title><description>在 Netscape vs. Internet Explorer 的瀏覽器大戰時代中，jQuery 的確幫助許多開發人員解決瀏覽器不相容的議題。然而，近幾年來 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-or-why-not-jquery/</link><pubDate>2018-08-05</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用結構 (Struct)</title><description>相對於先前介紹的基本型別 (primitive data type)，結構 (structure) 是一種複合型別 (derived data type)，用來表達由多個屬性組成的型別，而這些屬性可以是基本型別或是另一個複合型別所組成。 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/struct/</link><pubDate>2018-07-31</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用 C 字串 (String)</title><description>學完陣列和指標後，就有足夠的預備知識學習 C 字串。C 語言沒有獨立的字串型別，而 C 字串是以 char 或其他字元 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/string/</link><pubDate>2018-07-24</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用陣列 (Array)</title><description>陣列是線性且同質的資料結構，使用零或正整數為索引來存取其中元素。在 C 語言中，陣列是唯一的內建資料結構，其他的動態資料結構需自行實作。本文介紹陣列的使用方式。 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/array/</link><pubDate>2018-07-19</pubDate></item><item><title>[技術雜談] 以 C 語言實作龍與地下城 (Dragons and Dungeons) 風格的骰子</title><description>學習程式設計時，除了學習其語法外，運用已知的語法來實作一些小型程式，更有助於澄清我們對於程式語言的理解是否正確。在本例中，我們使用 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/dragons-and-dungeons-style-dices-in-c/</link><pubDate>2018-07-17</pubDate></item><item><title>[C 語言] 程式設計教學：指標 (Pointer) 和記憶體管理 (Memory Management)</title><description>指標 (pointer) 是 C 語言的衍生型別之一。指標的值並非資料本身，而是另一塊記憶體的虛擬位址 (address)。我們可利用指標間接存該指標所指向的記憶體的值。在 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/pointer/</link><pubDate>2018-07-12</pubDate></item><item><title>[C 語言] 程式設計教學：以 C 語言實作花旗骰 (Craps)</title><description>我們先暫停一般的教學文，來做一個好玩的小東西，這篇文章不影響本系列文的教學，讀者可自行視需求選讀。 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/app-craps/</link><pubDate>2018-07-11</pubDate></item><item><title>技術雜談：Go (Golang) 適合初學者做為網頁後端程式嗎？</title><description>原本這是在 Quora 討論區上出現的一個問題，筆者當時也發文回答。因這個議題蠻有意思的，筆者將其重新整理後用中文寫出來，網頁程式的初學者可以參考參考。由於這類議題帶有個人主觀的成分，其實沒有標準答案；程式語言和函式庫畢竟是工具，工具只要順手合用即可。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/golang-as-backend-language-for-beginners/</link><pubDate>2018-07-10</pubDate></item><item><title>經營[部落格]：調整 WordPress 網站</title><description>建置好 WordPress 網站後，再稍微調整一下，網站就可以上線了。在這裡，大部分的動作都可透過 WordPress 的後台完成，只有在安裝某些 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/adjust-wordpress-powered-site/</link><pubDate>2018-07-08</pubDate></item><item><title>[C 語言] 程式設計教學：使用控制結構 (Control Structure) 改變程式執行順序</title><description>預設情形下，程式執行的順序是由上至下，但我們可以透過控制結構 (control structure) 來改變程式執行的流程，讓程式有基本的判斷能力。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/control-structure/</link><pubDate>2018-07-04</pubDate></item><item><title>Makefile 教學：使用 Make 內建函式進行字串處理等任務</title><description>在 GNU Make 4.0 版之前，make 的程式語言相關的特性相對單薄，如果和 Rake 或 Gradle 等新興的編譯自動化軟體比起來更是如此。在 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/function/</link><pubDate>2018-07-03</pubDate></item><item><title>[技術雜談] Anaconda 簡易入門</title><description>最近在 Python 語言相關討論區會看到有網友在問 Anaconda 相關的問題，網路上中文相關的介紹也偏少，因此筆者在這裡寫一篇相關的介紹，讓讀者可以比較快上手。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/anaconda-primer/</link><pubDate>2018-06-28</pubDate></item><item><title>Makefile 教學：使用巨集 (Macro) 包裝程式碼區塊</title><description>在我們先前的文章中，我們大部分的 Makefile 僅用到變數代換和條件編譯兩項語法特性，其他的特性主要是來自於命令列工具本身。如果我們想要在 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/macro/</link><pubDate>2018-06-26</pubDate></item><item><title>Makefile 教學：建立多設定檔專案</title><description>隨著專案變大，Makefile 長度也會逐漸拉長，若再加上跨平台的需求，設定檔會更加冗長。在一個專案中，make </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/multi-file-project/</link><pubDate>2018-06-24</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用運算子 (Operators)</title><description>在程式語言中，運算子多以符號表示，通常都無法再化約成更小的單位，所以運算子可視為該語言的基礎指令。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/operator/</link><pubDate>2018-06-21</pubDate></item><item><title>[C 語言] 程式設計教學：如何使用格式化字串輸出入</title><description>利用格式化字串，可以改善在終端機顯示文字的方式。由於終端機程式是初學 C 語言時常見的程式類型，許多 C 語言教材會加入此主題。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/formatted-string/</link><pubDate>2018-06-20</pubDate></item><item><title>Makefile 教學：為函式庫專案撰寫跨平台的 Makefile</title><description>承接上一篇文章，我們在本文中為函式庫專案撰寫跨平台的 Makefile。藉由本文所提供的範例，我們可以直接用 GNU Make 製作跨平台函式庫專案</description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/cross-platform-makefile-for-library/</link><pubDate>2018-06-20</pubDate></item><item><title>Makefile 教學：為應用程式專案撰寫跨平台的 Makefile</title><description>在先前的文章中，我們都假定專案使用者使用某種類 Unix 系統，但實際上專案有可能在 Windows 系統上編譯；因此，本文考慮跨平台的需求來撰寫 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/cross-platform-makefile-for-application/</link><pubDate>2018-06-19</pubDate></item><item><title>[C 語言] 程式設計教學：宣告和使用變數 (Variable)</title><description>在電腦程式中，資料存在記憶體中。變數 (variable) 相當於資料的標籤，我們可透過變數間接操作資料。在本文中，我們介紹在 C 語言中使用變數的方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/variable/</link><pubDate>2018-06-16</pubDate></item><item><title>[C 語言] 程式設計教學：資料型態 (Data Type)</title><description>絕大部分的程式語言都有資料型態的特性。資料型態是資料的標註，用來規範資料合理的操作。本文介紹 C 語言的資料型態。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/data-type/</link><pubDate>2018-06-14</pubDate></item><item><title>[C 語言] 程式設計教學：基本概念</title><description>在本文中，我們以 Hello World 為例，說明 C 語言的基本概念。</description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/basic/</link><pubDate>2018-06-13</pubDate></item><item><title>Makefile 教學：使用條件編譯建立靈活的 Makefile</title><description>在前文中，我們將 Makefile 參數化，通用性改善一些，但仍然有一些小缺失，像是 CC 寫死在 Makefile 中，每次要換編譯器時都要修改檔案；另外，CFLAGS </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/conditional-compilation/</link><pubDate>2018-06-10</pubDate></item><item><title>[C 語言] 程式設計教學：善用開發工具改善 C 程式專案</title><description>除了編譯器和編輯器等必要的軟體外，還有許多和撰寫 C 程式相關的開發工具。由於這些軟體不是必備的，所以一些初階的 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/development-tools/</link><pubDate>2018-06-07</pubDate></item><item><title>Makefile 教學：設置變數</title><description>在前文的例子中，我們將所有的指令都寫死在 Makefile 中，這樣的做法雖然直觀，但不一定是最方便的做法。例如，筆者所用的某個雲端環境有 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/variable/</link><pubDate>2018-06-03</pubDate></item><item><title>[C 語言] 程式設計教學：如何在終端機中使用 GCC (或 Clang)</title><description>本文會選 GCC 而非其他 C 編譯器是因為 GCC 在 GNU/Linux 等類 Unix 系統上具有代表性。如果讀者使用 Clang，因 Clang </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/compile-c-with-gcc-or-clang/</link><pubDate>2018-05-30</pubDate></item><item><title> Makefile 教學：即使是新手也可以馬上開始寫 Makefile</title><description>我們這裡展示一個初階的 (naive) Makefile，本例摘自筆者先前練資料結構的微型程式。在這裡，我們刻意地少用 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/naive-makefile/</link><pubDate>2018-05-27</pubDate></item><item><title>[C 語言] 程式設計教學：在 GNU/Linux 上建立 C 語言開發環境</title><description>GNU/Linux 承襲 Unix 的文化，對於 C 語言支援相當良好。除了剛開始要花一些時間學習如何使用系統外，GNU/Linux </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/write-c-on-linux/</link><pubDate>2018-05-24</pubDate></item><item><title>[C 語言] 程式設計教學：在 macOS 上建立 C 語言開發環境</title><description>macOS 本質上是一種 BSD 系統，在 C 語言的支援上自然比 Windows 好得多。但蘋果公司不甚注重傳統 Unix 程式設計的發展，等於是只有半套功能的 </description><author>位元詩人</author><link>https://opensourcedoc.com/c-programming/write-c-on-mac/</link><pubDate>2018-05-23</pubDate></item><item><title>Makefile 教學：使用 make 指令</title><description>由於 make 是純命令列工具，本身沒有函式庫，使用 make 的前提是熟悉系統上的指令，因為 make 需要呼叫外部程式來滿足實際的功能。make </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/usage/</link><pubDate>2018-05-20</pubDate></item><item><title>[Windows] 程式設計教學：Cygwin 環境入門教學</title><description>Cygwin 是在 Windows 上的微型 POSIX 子系統，用來執行一些 POSIX 系統上常用的工具。本文假定讀者對 Cygwin 不熟，從頭開始學習 Cygwin 的使用方式。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/cygwin-primer/</link><pubDate>2018-05-17</pubDate></item><item><title>Makefile 教學：介紹</title><description>一般來說，make(1) 會在介紹 C (或 C++) 時一併介紹，但 make 其實不限於編譯 C (或 C++) 程式，而是一種通用的編譯自動化 </description><author>位元詩人</author><link>https://opensourcedoc.com/gnu-make/intro/</link><pubDate>2018-05-13</pubDate></item><item><title>經營[部落格]：安裝 WordPress</title><description>本文介紹如何安裝 WordPress 本身。在開始本文前，請各位讀者確認已經按照先前的文章建置好 LAMP 或 LEMP 環境；若還沒建置該執行環境，可參考我們先前的文章來建立。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/install-wordpress/</link><pubDate>2018-05-06</pubDate></item><item><title>[技術雜談] 如何以 C 語言撰寫泛型程式？</title><description>泛型 (Generics) 是一種無型別的程式，主要是用在靜態型別的語言上。撰寫泛型程式的好處是同一個演算法可以套用在不同型別上，減少重覆撰寫相同演算法但不同類別的程式碼。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/how-to-write-generic-code-in-c/</link><pubDate>2018-05-01</pubDate></item><item><title>經營[部落格]：從頭建立 WordPress 運行環境</title><description>我們先前提過，WordPress 是 LAMP 架構風行時應運而生的產物，而 LAMP 包括以下四項軟體： 目前 WordPress 的需求為 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/build-wordpress-environment/</link><pubDate>2018-04-29</pubDate></item><item><title>[Nim] 語言程式教學：模板 (Template)</title><description>模版 (template) 是一種較為高階的語法特性，透過程式碼代換來改寫程式，好處是可以跳脫型別的限制。模版有點類似於 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/template/</link><pubDate>2018-04-22</pubDate></item><item><title>[Nim] 語言程式教學：模組 (Module) 和套件 (Package)</title><description>在程式設計中，模組 (module) 和套件 (package) 會隨著情境而有不同的意義。模組原先來自於模組化開發 (modular </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/module-package/</link><pubDate>2018-04-19</pubDate></item><item><title>經營[部落格]：建立網站的流程</title><description>根據不同部落格軟體，實際的安裝過程會有所不同。本文介紹一般性的通則，後續的文章會針對各個軟體 (WordPress, </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/step/</link><pubDate>2018-04-18</pubDate></item><item><title>[Nim] 語言程式教學：例外 (Exception) 處理</title><description>即使程式碼本身正確無誤，我們仍然要面對程式運行時可能發生的錯誤，像是網路無法連線、檔案或資料夾權限不足、檔案格式錯誤、命令列參數錯誤、除以零等運算錯誤等。在實務上，我們不能一廂情願地認定程式不會發生錯誤，而要撰寫相對應的程式碼來處理錯誤。 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/exception/</link><pubDate>2018-04-15</pubDate></item><item><title>經營[部落格]：設定 DNS</title><description>當註冊好網域名稱及租好主機後，就要將網域名稱及主機的 IP 對應起來，部落格的讀者才能透過網域找到主機；這項服務稱為 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/domain/</link><pubDate>2018-04-12</pubDate></item><item><title>[Nim] 程式設計教學：高階函式 (Higher Order Function)</title><description>高階函式 (higher-order function) 是指用函式為參數或回傳值的函式，像前面的閉包就是一種高階函式。在本文中，我們介紹一些常見的高階函式的模式。我們不依賴現有的套件，而會重新實作，讓各位讀者參考。 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/higher-order-function/</link><pubDate>2018-04-11</pubDate></item><item><title>經營[部落格]：選定主機 (Host)</title><description>不論選擇什麼部落格方案，我們都需要主機來存放網站。如果是選擇現有的部落格平台，等於這個步驟外包出去了。除此之外，我們需要使用某個遠端主機來存放網站。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/host/</link><pubDate>2018-04-08</pubDate></item><item><title>[Nim] 程式設計教學：函數式程式設計 (Functional Programming)</title><description>Nim 官方文件僅有簡略地提到 Nim 支援函數式程式，但沒有強調相關概念，範例也相對零散。本文整理一些常見的函數式程式，供讀者參考。如果覺得函數式程式較難，也可用等效的指令式程式代替；不過，適當地使用函數式程式，可使程式碼更簡短。 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/functional-programming/</link><pubDate>2018-04-08</pubDate></item><item><title>經營[部落格]：選擇軟體</title><description>部落格本質上是網站，但我們不需要自己從頭開始手刻網頁，有許多的部落格軟體或服務會簡化建置部落格的過程；透過這些軟體或服務，部落客不需要花費過多時間在技術相關議題，可以專注在寫作上。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blogging/software/</link><pubDate>2018-04-03</pubDate></item><item><title>[Nim] 語言程式教學：多型 (Polymorphism)</title><description>由於 Nim 既不支援多重繼承 (multiple inheritance) 也不支援介面 (interface)，Nim 對於多型的支援相對薄弱。不支援多型的話，很多設計模式 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/polymorphism/</link><pubDate>2018-04-03</pubDate></item><item><title>[Nim] 語言程式教學：組合 (Composition) 和繼承 (Inheritance)</title><description>組合和繼承是兩種不同思維的重用程式碼的方式，本文介紹在 Nim 裡面如何使用這兩種模式撰寫程式。 透過繼承，類別之間可以共用程式碼，兩個類別分別是父類別 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/composition-inheritance/</link><pubDate>2018-04-01</pubDate></item><item><title>經營[部落格]：規劃網站</title><description/><author>位元詩人</author><link>https://opensourcedoc.com/technical-blogging/roadmap/</link><pubDate>2018-04-01</pubDate></item><item><title>[Nim] 語言程式教學：類別 (Class) 和物件 (Object)</title><description>物件導向程式是目前主流的程式設計範式，其思維為在函式上加入狀態，藉由狀態改變而改變程式內的資料。在本文中，我們從 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/class-object/</link><pubDate>2018-03-25</pubDate></item><item><title>[Rust] 程式設計教學：函數式程式設計 (Functional Programming)</title><description>函數式程式設計 (functional programming) 是另一種程式設計的模式 (paradigm)。此種模式以函數為主體，撰寫時儘量減少狀態改變，以減少程式的臭蟲。不同程式語言對函數式程式設計的支援程度差異相當大；有些語言整體上即以此模式為主，像是 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/functional-programming/</link><pubDate>2018-03-22</pubDate></item><item><title>技術雜談：社群媒體時代的部落格寫作</title><description>全球資訊網是自由且低阻力的新興媒體，成為傳統媒體外最受矚目的資訊流通管道。部落格 (blog) 就像是一個小型的電台，部落客可以在其中充分表達自己的觀點和意見。除了增加自己在虛擬世界的曝光度，廣告等收入也讓部落格成為可收益的活動。然而，社群媒體 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/blogging-in-social-media-era/</link><pubDate>2018-03-21</pubDate></item><item><title>[Nim] 程式設計教學：程序 (Procedure) 或函式 (Function)</title><description>Nim 的程序 (procedure)，在別的語言也稱為函式 (function) 或副程式 (subroutine) 等。程序是最小的可重覆利用的程式碼區塊，也是物件導向等更高階語法的基礎。 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/procedure/</link><pubDate>2018-03-21</pubDate></item><item><title>[Lua] 程式設計教學：實作圖 (Graph)</title><description>註：此處的圖，是指數學上的圖論 (graph theory)，而非電腦圖像 (computer graphics)。 圖 (graph) 是一種非線性、非階層的資料結構，由不重覆的點 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/graph/</link><pubDate>2018-03-18</pubDate></item><item><title>[Nim] 程式設計教學：參考 (Reference) 和指標 (Pointer)</title><description>指標 (pointer) 儲存的不是資料，而是指向資料的記憶體位置。Nim 的指標有兩種，一種是會自動回收記憶體的指標 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/reference-pointer/</link><pubDate>2018-03-18</pubDate></item><item><title>[Lua] 程式設計教學：實作二元搜尋樹 (Binary Search Tree)</title><description>樹 (tree) 是一種非線性、階層的資料結構，由於樹有數種變體，大部分教科書都會以二元搜尋樹 (binary search </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/binary-search-tree/</link><pubDate>2018-03-14</pubDate></item><item><title>[Nim] 語言程式教學：元組 (Tuple)</title><description>元組 (tuple) 的用途在於可在同一個複合型別中放入不同型別的元素。如下例： 在本例中，我們建立一個 Person </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/tuple/</link><pubDate>2018-03-14</pubDate></item><item><title>[Lua] 程式設計教學：實作雜湊表 (Hash Table) 和集合 (Set)</title><description>由於 Lua 的表 (table) 內部即是雜湊表 (hash table)，另外再以表重新模擬雜湊表的意義不大；請各位讀者自列參考本系列文章有關表的章節即可。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/table-set/</link><pubDate>2018-03-07</pubDate></item><item><title>[Nim] 語言程式教學：列舉 (Enum)</title><description>列舉 (enum 或 enumeration) 是一種特化的型別，該型別的值僅有少數幾個值，像是星期 (week) 只有星期一到星期日共七個值，而月份 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/enum/</link><pubDate>2018-03-07</pubDate></item><item><title>[Lua] 程式設計教學：串列 (List)、堆疊 (Stack)、佇列 (Queue)</title><description>串列是線性的 (linear) 資料結構。在 Lua 有兩種方式可以實作串列： 第一種方法等同於用陣列模擬串列，若資料更動頻繁則效率會較差；第二種方法則在精神上較接近傳統資料結構教科書的串列，在頭尾端加上資料時效率好，但隨機存取的效率較差。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/list-stack-queue/</link><pubDate>2018-03-04</pubDate></item><item><title>[Nim] 語言程式教學：集合 (Set)</title><description>在這裡的 set 有兩個意思，一個是數學的集合論 (set theory)，一個是在 Nim 程式所實做的集合資料結構；本文不特別介紹數學理論，而會介紹如何以 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/set/</link><pubDate>2018-03-04</pubDate></item><item><title>[Lua] 程式設計教學：實作陣列 (Array)、向量 (Vector)、矩陣 (Matrix)</title><description>由於 Lua 僅支援 table 這種資料結構，若要在程式中使用其他資料結構，需用模擬的方式；除非資料量大，用 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/array-vector-matrix/</link><pubDate>2018-02-28</pubDate></item><item><title>[Nim] 語言程式教學：表 (Table)</title><description>表 (table) 是一種非線性的容器，儲存 (鍵, 值) 對 (key-value pair)；Table 透過雜湊函式做為索引，可雜湊化的 (hashable) </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/table/</link><pubDate>2018-02-28</pubDate></item><item><title>[Lua] 程式設計教學：建立和使用模組 (Module)</title><description>在先前的章節中，我們都將程式碼寫在同一個檔案中，隨著專案規模上升，若我們仍然用這種方式撰寫程式碼，程式碼會變得很長而不易維護。將程式碼依照功能拆開在不同的模組中，對於專案的維護會較佳。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/module/</link><pubDate>2018-02-25</pubDate></item><item><title>[Nim] 語言程式教學：陣列 (Array) 和序列 (Sequence)</title><description>陣列 (array) 是線性的容器，建立後長度不可改變，陣列中每個元素的型別皆需相同。 使用陣列實字可建立陣列，如下例： </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/array-sequence/</link><pubDate>2018-02-25</pubDate></item><item><title>技術雜談：Go 的成功告訴我們什麼？</title><description>Go 語言在 2009 年問世，在短短不到 10 年的時間，已經儕身各大語言排名的主流語言區。Ruby 的發明者松本行弘曾說過，一個語言生態圈的培養，需要至少十年的時間；以這個標準來看，Go </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/what-does-golang-tell-us/</link><pubDate>2018-02-22</pubDate></item><item><title>[Nim] 語言程式教學：控制結構 (Control Structure)</title><description>在預設情形下，程式執行順序是由上而下依序執行。透過控制結構 (control structure)，可以改變程式運行的順序，程式好像有自己的判斷力般。控制結構分為兩類： </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/control-structure/</link><pubDate>2018-02-21</pubDate></item><item><title>[Lua] 程式設計教學：多型 (Polymorphism) 相關的議題</title><description>由於 Lua 是動態型別語言，不需要像 Java 等語言，利用子型別 (subtyping) 來達到多型的效果，使用內建的語法機制即可達到相同的效果。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/polymorphism/</link><pubDate>2018-02-18</pubDate></item><item><title>[Nim] 程式設計教學：運算子 (Operator)</title><description>在程式設計中，運算子多用符號而非文字來標記。由於運算子無法切分為更小的單位，可以視為程式語言最小的單位。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/operator/</link><pubDate>2018-02-14</pubDate></item><item><title>技術雜談：如何挑選網頁框架 (web framework)？</title><description>有許多想做網頁的程式設計者都會想問：如何挑選 web framework (網頁應用框架)？這個問題其實不會有唯一的解答，因為網頁的技術不斷地推陳出新。如果我們把 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/how-to-choose-web-framework/</link><pubDate>2018-02-11</pubDate></item><item><title>[Lua] 程式設計教學：撰寫基於物件的 (object-based) 程式</title><description>Lua 的物件系統 (object system) 是以原型 (prototype) 為基礎，和一般 Java 或 Python 等以類別 (class) 為基礎的物件系統略為不同。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/object/</link><pubDate>2018-02-11</pubDate></item><item><title>技術雜談：GNU/Linux 適合做為桌面系統嗎？ (2018 年版)</title><description>雖然我們可能無法看到真正的 GNU/Linux 元年，但在 2016 至 2017 年間，GNU/Linux 桌面系統的市佔率突破 2% (根據 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/is-linux-suitable-for-desktop-on-2018/</link><pubDate>2018-02-08</pubDate></item><item><title>[Nim] 程式設計教學：變數 (Variable) 和資料型別 (Data Type)</title><description>在本文中，我們介紹 Nim 語言的基本概念，像是變數 (variable)、資料型別 (data type) 等。 實字 (literal) 是指固定的值，簡單地說，就是在程式碼中寫死資料的值，例如： </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/variable-datatype/</link><pubDate>2018-02-07</pubDate></item><item><title>技術雜談：為什麼 Nim 語言無法造成流行</title><description>Nim 是一個新興的編譯語言，其核心理念相當地簡單：Nim 程式碼會轉為等效 C 程式碼，再由 C 編譯器實際編譯軟體。在理想上，這個方向的確是可行的，因為 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-nim-is-not-popular/</link><pubDate>2018-02-03</pubDate></item><item><title>[Nim] 程式設計教學：建置開發環境</title><description>由於 Nim 程式碼會先轉為 C 程式碼後，再從 C 程式碼轉為機械碼，除了 Nim 編譯器以外，還要安裝 C 編譯器。 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/install/</link><pubDate>2018-02-03</pubDate></item><item><title>[Nim] 語言程式教學：簡介</title><description>Nim 是一個新興的通用型程式語言，根據 Nim 官方網站可知，其主要特色為 3E，即效率 (efficiency)、表達力 (expressivity)、優雅 </description><author>位元詩人</author><link>https://opensourcedoc.com/nim-programming/intro/</link><pubDate>2018-02-01</pubDate></item><item><title>[Lua] 程式設計教學：撰寫函數式程式 (Functional Programming)</title><description>函數式程式 (functional programming) 的前提在於函式是第一階物件 (first-class objects)，簡單地說，函式也可以是值 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/functional-programming/</link><pubDate>2018-01-30</pubDate></item><item><title>[Raku] 程式設計教學：Regexes</title><description>常規表示式 (regular expression) 是一種用於字串比對的小型語言 (mini-language)，這個概念最早於 1956 年提出。在許多命令列工具和程式語言中有提供常規表示式的功能，許多語言是透過函式庫的形式提供常規表示式的功能，不過也有一些語言或工具內建常規表示式，像是 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/regexes/</link><pubDate>2018-01-30</pubDate></item><item><title>技術雜談：為什麼要 (或不要) 學習 C 語言</title><description>在大專院校的資訊科系中，C 語言是必學的，這有一些教學上的考量，不純然以實用觀點出發；不過，現在自學程式的風氣較以往興盛，對於這些人來說，C </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-or-why-not-learning-c-language/</link><pubDate>2018-01-29</pubDate></item><item><title>[Lua] 程式設計教學：撰寫和使用函式 (Function)</title><description>函式 (function) 將某段程式碼區塊包裝起來，並給予命名，該程式碼區塊就成為一個有意義的實體。函式可以重覆再利用，也是物件導向和模組的基礎。本文介紹函式本身，其他概念留至後文介紹。 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/function/</link><pubDate>2018-01-24</pubDate></item><item><title>[Raku] 程式設計教學：共時性 (Concurrency) (低階 API)</title><description>在本文中，我們介紹用於共時性程式的低階 API，雖然 Raku 官網不鼓勵我們使用低階 API，仍然保留較為傳統的 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/concurrency-low-level-api/</link><pubDate>2018-01-24</pubDate></item><item><title>技術雜談：教程、範例、指引、原始碼：由淺至深的學習之路</title><description>許多初學程式設計的讀者，會不知道怎麼選擇合適的教材，平白耗費了許多時間卻抓不到方向。基本上，程式設計的教學資料可分為四個層次：教程 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/tutorial-example-reference-code/</link><pubDate>2018-01-23</pubDate></item><item><title>[Lua] 程式設計教學：使用表 (table)</title><description>表 (table) 是 Lua 唯一的資料結構，在 Lua 內部的實作上，表帶有雜湊表 (hash table) 和陣列 (array) 兩種資料結構，Lua </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/table/</link><pubDate>2018-01-20</pubDate></item><item><title>[Raku] 程式設計教學：共時性 (Concurrency) (高階 API)</title><description>由於 CPU 的時脈已經到物理上限，現在的硬體都往多核心、多 CPU 發展。同樣地，單一的大型伺服器相當昂貴，而且擴充量有限，使用多台主機組成的叢集則相對易於擴充。然而，若程式碼沒有使用共時性 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/concurrency-high-level-api/</link><pubDate>2018-01-20</pubDate></item><item><title>[Windows] 程式設計教學：選擇 C 或 C++ IDE</title><description>本文列出在 Windows 上常見的 C 和 C++ IDE，供讀者參考。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/c-or-cpp-ide/</link><pubDate>2018-01-18</pubDate></item><item><title>技術雜談：為什麼要 (或不要) 用 Python 實作資料結構和演算法</title><description>筆者最近在國內某程式討論區上看到一則有關資料結構的問題，原樓主是某個資訊科系的學生，因為對資料結構的實作不熟而苦惱。原先該網友使用 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-or-why-not-using-python-for-algorithms/</link><pubDate>2018-01-12</pubDate></item><item><title>[Lua] 程式設計教學：使用控制結構 (Control Structure) 改變程式運行過程</title><description>在預設情形下，程式碼由上往下依序執行。控制結構 (control structure) 用於改變程式進行的順序。本文介紹 Lua 可用的控制結構。</description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/control-structure/</link><pubDate>2018-01-12</pubDate></item><item><title>[Lua] 程式設計教學：使用運算子 (Operator)</title><description>在程式設計中，運算子 (operator) 多使用符號來撰寫，較少使用文字。由於運算子通常無法再化簡，我們將運算子視為該程式語言的基本指令，使用運算子用組合出更複雜的功能。本文介紹 Lua 可用的運算子。</description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/operator/</link><pubDate>2018-01-05</pubDate></item><item><title>[Raku] 程式設計教學：例外 (Exceptions) 處理</title><description>在實際情境中運行的程式，即使程式本身沒有臭蟲 (bug)，仍然要面對許多可能的錯誤 (error) 或例外 (exception)。例如，想要將某個字串轉成數字，但字串本身不是合法的數字；想要讀取某個外部檔案，卻權限不足；想要解析某個 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/exception/</link><pubDate>2018-01-05</pubDate></item><item><title>[Lua] 程式設計教學：變數 (Variable) 和資料型別 (Data Type)</title><description>在本文中，我們介紹幾個 Lua 程式的基本概念，包括變數、資料型別等。</description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/variable-datatype/</link><pubDate>2018-01-01</pubDate></item><item><title>[Raku] 程式設計教學：多型 (Polymorphism)</title><description>Duck type 是動態型別語言的一種特性，duck type 物件不需在意其實際的類別，僅需在意該類別是否有提供相對應的公開方法。如以下實例： </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/polymorphism/</link><pubDate>2018-01-01</pubDate></item><item><title>[Lua] 程式設計教學：建置開發環境</title><description>由於 Lua 是內嵌語言，如果讀者使用 Corona SDK 或其他的遊戲引擎的話，這些遊戲引擎就會內嵌 Lua 直譯器，不需另外安裝。本文以讀者要學習 </description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/build-development-environment/</link><pubDate>2017-12-24</pubDate></item><item><title>[Raku] 程式設計教學：繼承 (Inheritance)</title><description>除了組合以外，繼承 (inheritance) 也是重覆利用程式碼的一種方法。透過繼承，達到子類型 (subtyping) 的功能，也是實作多型 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/inheritance/</link><pubDate>2017-12-24</pubDate></item><item><title>[Lua] 程式設計教學：分裂的 Lua 世界</title><description>Lua 不是一個主流的語言，不過還蠻常見的，主要用於遊戲引擎和其他軟體的腳本語言。本文的目的在說明 Lua 的特性及這些特性對 Lua 社群的影響。</description><author>位元詩人</author><link>https://opensourcedoc.com/lua-programming/intro/</link><pubDate>2017-12-19</pubDate></item><item><title>[Raku] 程式設計教學：類別 (Class) 和物件 (Object)</title><description>物件導向程式設計 (object-oriented programming) 是目前主流的程式設計模範 (paradigm)，大部分主流的程式語言都支援物件導向程式。本文介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/object/</link><pubDate>2017-12-19</pubDate></item><item><title>技術雜談：軟體獲利的模式</title><description>學了幾年的程式設計，努力脫離新手村，也寫了幾個大大小小的專案，總是希望自己的努力有所回報。然而，對軟體人來說，會寫程式只算是跨過了基本門檻，但困難的是如何將自己的努力轉為獲利。本文介紹幾種常見的商業模式供有志於此的同好參考。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/how-to-earn-money-by-software/</link><pubDate>2017-12-08</pubDate></item><item><title>[Raku] 程式設計教學：函數式程式設計 (Functional Programming)</title><description>函數式程式設計 (functional programming) 是一種程式設計的模範 (paradigm)，主要見於 Lisp 和 ML 家族語言。由於函數式程式易於平行化處理，近年來許多主流語言也吸收了一些函數式程式的概念。一些大數據框架，像是 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/functional-programming/</link><pubDate>2017-11-29</pubDate></item><item><title>[Raku] 程式設計教學：副程式 (Subroutine)</title><description>副程式 (subroutine)，或稱為函式 (function)，是最小的可重用 (reusable) 程式碼區塊，也是物件導向程式的基礎。本文將介紹基本的副程式，對於進階的議題，將於後續文章中介紹。 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/subroutine/</link><pubDate>2017-11-16</pubDate></item><item><title>[Raku] 程式設計教學：Set、Bag、Mix</title><description>集合 (Set) 是非線性的單一元素的集合，實作數學上的集合論 (set theory)。在 Perl 5，通常是用雜湊模擬集合，Perl </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/set-bag-mix/</link><pubDate>2017-11-09</pubDate></item><item><title>[Raku] 程式設計教學：雜湊表 (Hash Table)</title><description>雜湊 (hash) 是以 (鍵, 值) 對 (key-value pair) 為單位的非線性容器，相當實用的容器。 Perl 6 內建建立雜湊的語法，實例如下： </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/hash/</link><pubDate>2017-10-29</pubDate></item><item><title>[Raku] 程式設計教學：陣列 (Array)</title><description>陣列 (array) 是線性的容器 (collections)，以數字做為索引。本文介紹 Raku 的陣列和串列。 在 Raku 程式中，串列 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/array/</link><pubDate>2017-10-08</pubDate></item><item><title>[Raku] 程式設計教學：控制結構 (Control Structure) 或控制流程 (Control Flow)</title><description>控制結構 (control structure) 或控制流程 (control flow) 用來改變程式運行的方向。可分為兩大類： 本文會介紹 Raku </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/control-structure/</link><pubDate>2017-10-06</pubDate></item><item><title>[Windows] 程式設計教學：使用 C 和 C++ 相關的議題</title><description>在前文中，我們介紹數個應用程式語言，不過，我們有時候仍然需要 C (或 C++)。即使我們不寫 C (或 C++) 程式，也會要用以 </description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/c-and-cpp/</link><pubDate>2017-10-03</pubDate></item><item><title>[Raku] 程式設計教學：運算子 (Operator)</title><description>Raku 的運算子較多，甚至已經到過多的程度；有些較少見的運算子，其實很難記憶。本文不會列出所有的運算子，僅列出常見的運算子。 </description><author>位元詩人</author><link>https://opensourcedoc.com/raku-programming/operator/</link><pubDate>2017-10-01</pubDate></item><item><title>技術雜談：Perl 6 小感</title><description>Perl 6 是 Perl 家族的新成員，在 2015 年十二月發布了第一個正式版 (v6.c)，代表其語言特性大抵上穩定了下來。在今年年初開始，陸續有數本 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/perl6-short-review/</link><pubDate>2017-09-24</pubDate></item><item><title>[Windows] 程式設計教學：透過 Cygwin 使用類 Unix 系統上的軟體</title><description>Cygwin 是一套在 Windows 上運行的類 Unix 環境，除了 shell 外，Cygwin 還提供類 Unix 系統上的終端機工具，以及 X Window 環境。透過 Cygwin，類 Unix 系統使用者可以使用熟悉的命令列工具而不需重學另一套專門的工具。</description><author>位元詩人</author><link>https://opensourcedoc.com/windows-programming/cygwin/</link><pubDate>2017-09-06</pubDate></item><item><title>[Rust] 程式設計教學：泛型 (Generics)</title><description>有時候，我們希望同一個實作可以套用在不同的型別上，在動態型別的語言中，例如 Python，不需要處理這個問題，因為這些語言的機制會自動處理這個問題，然而，在靜態型別的語言，像是 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/generics/</link><pubDate>2017-09-05</pubDate></item><item><title>[Rust] 程式設計教學：物件導向 (Object-Oriented Programming)</title><description>物件導向程式設計 (OOP, object-oriented programming) 是一種程式設計的模式 (paradigm)。由於物件導向是近代軟體開發的主流方法，許多程式語言從語法機制可直接支援，即使像是 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/oop/</link><pubDate>2017-08-29</pubDate></item><item><title>[Rust] 程式設計教學：所有權 (Ownership)</title><description>所有權 (ownership) 是 Rust 的核心概念之一，在許多主流語言中沒有強調所有權的觀念，而 Rust 從一開始就放入這個概念，Rust </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/ownership/</link><pubDate>2017-08-28</pubDate></item><item><title>[Rust] 程式設計教學：字串 (String)</title><description>Rust 的字串有以下兩種： 另外，Rust 還有字元 (char) 型別，同樣也是以 UTF8 編碼。 建立字串常數時，預設型別是 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/string/</link><pubDate>2017-08-27</pubDate></item><item><title>[Rust] 程式設計教學：模組 (Module) 和套件 (Package)</title><description>我們學會函式後，程式碼可以分離，然而，隨著專案規模上升，函式名稱有可能相互衝突。雖然，我們也可以修改函式名稱，但是，只靠函數名稱來區分函式，往往會造成函數名稱變得冗長。像 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/module-package/</link><pubDate>2017-08-24</pubDate></item><item><title>[Rust] 程式設計教學：陣列 (Array)、向量 (Vector)和切片 (Slice)</title><description>先前的程式中，變數僅表示單一的實體 (entity) 我們從本章開始，會介紹數種容器 (collections)，容器有特定的內部結構，其作用在於裝載資料，此外，容器會提供一些方法，讓我們藉由操作容器，存取其中的資料。傳統上，容器相關的內容多見於介紹資料結構 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/array-vector-slice/</link><pubDate>2017-08-23</pubDate></item><item><title>[Rust] 程式設計教學：列舉 (Enum)</title><description>和結構類似，列舉 (enum) 也是一種複合型別，列舉中的資料為程式設計者所指定的有限的數個可能性。列舉是相當實用的概念，Rust </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/enum/</link><pubDate>2017-08-23</pubDate></item><item><title>[Rust] 程式設計教學：函式 (Function)</title><description>在前面的內容中，我們將大部分的程式碼寫在主函式中。隨著程式規模上升，這種方式漸漸顯得不足： 函式 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/function/</link><pubDate>2017-08-23</pubDate></item><item><title>[Rust] 程式設計教學：映射 (Map) 和集合 (Set)</title><description>不論是陣列或是向量，都是以數字做為其索引的容器，映射 (map) 則可以用其他的資料型別做為索引值，進行快速查詢。集合 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/map-set/</link><pubDate>2017-08-23</pubDate></item><item><title>[Rust] 程式設計教學：結構 (Struct)</title><description>結構 (struct) 是複合型別，其中可包含基礎型別或是其他複合型別。透過結構，程式設計者可以用有效率的方式組織資料。 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/struct/</link><pubDate>2017-08-23</pubDate></item><item><title>[Rust] 程式設計教學：控制結構 (Control Structure) 或控制流程 (Control Flow)</title><description>到目前為止，我們的程式都是由上往下依序執行。透過控制結構 (control structure) 或控制流程 (control flow)，可以藉由改變程式執行的順序而達到我們所預期的行為。 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/control-structure/</link><pubDate>2017-08-22</pubDate></item><item><title>[Rust] 程式設計教學：運算子 (Operator)</title><description>在程式語言中，運算子通常會用符號而非文字來表示。通常運算子無法拆分成更小的部分，可視為程式語言的基本指令。本章介紹 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/operator/</link><pubDate>2017-08-22</pubDate></item><item><title>[Rust] 程式設計教學：變數 (Variable) 和資料型別 (Data Type)</title><description>在本章，我們介紹撰寫 Rust 程式的基本概念，包括 Rust 程式的組成、變數和型別。 前幾章的程式，大部分都很簡單，但仍建議讀者實際練習一次；即使只是看著書照著打一次，都會有一些些幫助，因為 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/variable-datatype/</link><pubDate>2017-08-22</pubDate></item><item><title>[Rust] 程式設計教學：基礎概念</title><description>Rust 是一個新興的編譯語言，融入部分高階語言的特性，但仍具有接近 C++ 的效能，而沒有 C 或 C++ 中危險的部分。不像大多數的現代高階語言，Rust 不需要虛擬機器，也不依賴垃圾回收。其程式碼轉換成原生的機械碼，使 Rust 具有良好的效能，且易於和其他語言合作。</description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/intro/</link><pubDate>2017-08-20</pubDate></item><item><title>[Rust] 程式設計教學：安裝 Rust</title><description>本章介紹撰寫 Rust 程式前的準備工作。建議讀者在自己的電腦上實地動手建置 Rust 開發環境，以便後續練習撰寫 </description><author>位元詩人</author><link>https://opensourcedoc.com/rust-programming/prior-work/</link><pubDate>2017-08-20</pubDate></item><item><title>[技術雜談] Golang 是否該支援泛型</title><description>「Golang 應該要有泛型 (generics)」，這大概是 Go 社群最常拿出來炮的一個議題。筆者有訂閱 Go 社群發行的電子報，也有在推特 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/should-golang-support-generics/</link><pubDate>2017-07-29</pubDate></item><item><title>[技術雜談] AWS Cloud 9 IDE 簡介</title><description>前一陣子看到有網友在問 Cloud 9 是什麼、如何使用等議題。剛好筆者都一直有在用 Cloud 9，而且是付費會員。筆者就自身的經驗來說明 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/the-brief-intro-on-cloud-9-ide/</link><pubDate>2017-07-26</pubDate></item><item><title>技術雜談：程式設計師的工具箱</title><description>程式設計師會用到那些工具呢？筆者就自己的經驗，分享一些程式設計師可能會用到的工具，供有需要的學習者一些可參考的方向。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/the-toolboxs-of-programmers/</link><pubDate>2017-07-16</pubDate></item><item><title>[技術雜談] 適合初學者的小型專題</title><description>前一陣子，在某個程式設計討論區上，看到有網友在討論不知道在學完程式語言後，可以寫什樣的專案 (project) </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/the-projects-for-beginners/</link><pubDate>2017-07-01</pubDate></item><item><title>[技術雜談] Dart — JavaScript 的理想狀態</title><description>筆者在某個偶然的機會接觸到 Dart 語言，並用 Dart 實際撰寫一些網頁程式；透過一些使用經驗，筆者覺得 Dart </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/dart-is-ideal-javascript/</link><pubDate>2017-06-04</pubDate></item><item><title>技術雜談：JavaScript - 程式設計史上最美麗的錯誤</title><description>JavaScript 可以說是程式語言史上最美麗的錯誤，在短短十天內匆忙開發的新語言，竟然可以跨越前端 (front end)、後端 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/javascript-the-beautiful-error/</link><pubDate>2017-04-30</pubDate></item><item><title>技術雜談：比較 PHP 網頁框架</title><description>筆者先前因一些計畫需要使用 PHP 網頁框架，故整理了以下表格。雖然最後沒有實際用到，筆者將這個表格分享出來，給有這方面需求的讀者。這些比較的條件基於一般常見的網頁框架所會用到的特性，未針對某個特定框架。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/comparing-php-web-frameworks/</link><pubDate>2017-04-28</pubDate></item><item><title>[技術雜談] 適合新手的程式語言</title><description>最近在國外的討論區發現有許多人會問那個程式語言適合新手。我相信國內也有一些朋友會詢問這個問題。很多人會說 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/which-language-is-suitable-for-newbies/</link><pubDate>2017-04-12</pubDate></item><item><title>[技術雜談] Corona SDK 或 Solar2D 小感</title><description>由於 Corona SDK 不是主流的框架，說實在的，相關的資源也不多，中文相關的資料更是稀少，這種現象對於初學者來說相對不利。日前剛好使用 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/corona-sdk-short-review/</link><pubDate>2017-03-25</pubDate></item><item><title>技術雜談：Lua 小感</title><description>雖然 Lua 不是一個主流語言，我們可能會在不經意的情況下接觸到 Lua，像是 Corona (原 Corona SDK)、Cocos2d-x、Gideros </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/lua-short-review/</link><pubDate>2017-03-18</pubDate></item><item><title>技術雜談：跨平台工具的甜蜜陷阱</title><description>跨平台 (cross-platform) 一直是程式設計圈子不斷出現的話題，從 C 開始，程式設計師試著處理平台可攜性 (portability)，到了 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/the-pitfalls-of-cross-platform-tools/</link><pubDate>2017-02-24</pubDate></item><item><title>技術雜談：Introducing Linux Distros 回顧</title><description>即使 GNU/Linux 已經是伺服器最常用的作業系統，由於種種因素，使得 GNU/Linux 的桌面應用難以推廣。其中一個因素，就是過多的 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/review-introducing-linux-distros/</link><pubDate>2016-07-02</pubDate></item><item><title>技術雜談：Creating Blogs with Jekyll 回顧</title><description>在某一個夏日的午後，筆者在一個偶然的機緣，注意到 Apress 這本新書 Creating Blogs with Jekyll，這個主題馬上就吸引到筆者的目光。像 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/review-creating-blogs-with-jekyll/</link><pubDate>2016-06-26</pubDate></item><item><title>技術雜談：Modern Perl 2016 年版回顧</title><description>隨著 Python、Ruby、Groovy 等腳本語言的掘起，Perl 的影響力不如以往；近年來 Perl 相關書籍數量也較先前減少，不過，我們很慶辛，在 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/review-modern-perl-2016/</link><pubDate>2016-05-26</pubDate></item><item><title>技術雜談：Exercises for Programmers 讀後感</title><description>在學習某個程式語言的過程中，第一步總是先熟悉其語法，然後慢慢擴展到其他的部分。在這個過程中，如果能夠搭配適當的小型練習題，對於學習該語言會有相當的幫助。然而，不同語言的流行度各自相異，不一定都會有適當的教材可用。而本書的出現，適時地填補了語法和實作間的空缺。 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/review-exercises-for-programmers/</link><pubDate>2016-05-19</pubDate></item><item><title>技術雜談：.NET on GNU/Linux</title><description>在從前，要在 GNU/Linux 下寫 .NET 程式，會使用 Mono 平台。然而，使用 Mono 平台，程式設計師要和大大小小的不相容奮戰，有時候會想乾脆去寫 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/dotnet-on-linux/</link><pubDate>2016-05-09</pubDate></item><item><title>技術雜談：Why not Arch Linux?</title><description>I initiated this post here in response to a post on a Linux forum (in Chinese). This article is all about personal opinion and choice. No flame </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-not-arch-linux/</link><pubDate>2016-03-25</pubDate></item><item><title>技術雜談：為什麼該 (或不該) 用網頁微框架 (Sinatra-like framework)</title><description>[Update on 2017/02/23] 雖然許多人都會從 Ruby on Rails、Laravel 或是其他知名的網頁框架學習網頁程式設計，甚至在不會 </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-sinatra-like-framework/</link><pubDate>2016-03-21</pubDate></item><item><title>技術雜談：Why and Why Not Macbook from a Linuxer's Perspective</title><description>Mac OS X is a variant of BSD Unix and Macbook becomes popular among Unix/Linux users. Many developers choose Macbook as their development platform </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/why-and-why-not-macbook-from-linuxers-perspective/</link><pubDate>2015-08-25</pubDate></item><item><title>技術雜談：Evaluate Whether Chromebook Suits You Or Not</title><description>Netbooks failed to thrive because people tried to put every heavyweight applications into a relatively lightweight client. With the flourish </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/evaluate-whether-chromebook-suits-you-or-not/</link><pubDate>2015-04-14</pubDate></item><item><title>技術雜談：Build Your Own Jekyll Theme with Bootstrap</title><description>When you built a blog from Jekyll, a beautiful, mobile-responsive theme passed as well. However, if you want to utilize a third party web front </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/build-jekyll-theme-with-bootstrap/</link><pubDate>2015-02-20</pubDate></item><item><title>技術雜談：Test-Driven Development (TDD) in CoffeeScript with Jasmine</title><description>Test-driven developememnt (TDD) is a software development process. In this process, you write automated tests for expected functions; then, you </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/tdd-coffeescript-and-jasmine/</link><pubDate>2015-02-09</pubDate></item><item><title>技術雜談：CoffeeScript - the Sugar of JavaScript</title><description>JavaScript is the vital part of modern interactive web. However, JavaScript is not easy; it mixes the features of several languages. Some good, </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/coffeescript-the-sugar-of-javascript/</link><pubDate>2014-12-14</pubDate></item><item><title>技術雜談：Edit HTML in Emacs with web-mode</title><description>Emacs has a built-in html-mode for HTML files. It is common that HTML files comes with other lauguages like CSS, JavaScript, PHP and so on. The </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/edit-html-in-emacs-with-web-mode/</link><pubDate>2014-12-02</pubDate></item><item><title>技術雜談：Optimizing PDF with Kindle</title><description>I bought a new Kindle. When I tried to read some PDF files on Kindle, I found that the font size was too small to read. If you need to read PDF </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/optimizing-pdf-for-kindle/</link><pubDate>2014-10-26</pubDate></item><item><title>技術雜談：Unix is Friend - Getting Help</title><description>Unix is like carpenters' toolkits; you need to learn them before you really enjoy them. Self-help learning is rewarding and amusing, which also </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/unix-is-friend-getting-help/</link><pubDate>2014-10-20</pubDate></item><item><title>技術雜談：Fast Parallel Download with lftp</title><description>I was assigned by my professor to download some RNA sequences data to my own computer for backup purpose, because the original data server will </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/fast-parallel-download-with-lftp/</link><pubDate>2014-10-15</pubDate></item><item><title>技術雜談：Unix is Friend - Unix Toolbox on Windows</title><description>Sometimes there are no available desktop or laptop running Unix or Linux, but we miss these utilities on Unix. Thanks the efforts of numerous </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/unix-is-friend-unix-toolbox-on-windows/</link><pubDate>2014-10-13</pubDate></item><item><title>技術雜談：Unix is Friend - Text Processing</title><description>Instead of single application for a proprietary file format, Unix utilities manage text streams. Text streams means not only text files but also </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/unix-is-friend-text-processing/</link><pubDate>2014-09-15</pubDate></item><item><title>技術雜談：Unix is Friend - Emacs</title><description>Many files on Unix are plain text files. Some examples are text files, markup language files, LaTeX files, source code, Makefiles, and configuration </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/unix-is-friend-emacs/</link><pubDate>2014-09-13</pubDate></item><item><title>技術雜談：Unix is Friend - Overview</title><description>Unix utilities seem arcane and ancient; however, some people still admire them, whereas mouses and touch screens are ubiquitous. By Unix Power </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/unix-is-friend-overview/</link><pubDate>2014-09-10</pubDate></item><item><title>技術雜談：Call Online Perl Document from Emacs</title><description>Sometimes we want to browse online document for the usages of Perl subroutines or modules. It is boringly repetitive to open the browser and </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/call-online-perl-documents-from-emacs/</link><pubDate>2014-09-08</pubDate></item><item><title>技術雜談：Query PubMed with Regular Expression</title><description>The Entrez Programming Utilities are a interface to Entrez query and database system at the National Center for Biotechnology Information (NCBI). </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/query-pubmed-with-regex/</link><pubDate>2014-09-05</pubDate></item><item><title>技術雜談：Faster Prolog in Perl with Yaswi</title><description>In my [previous post]({{ "/perl/prolog/2014/09/01/perl-cross-prolog-in-ai-prolog/" | prepend: site.baseurl }}), I introduced AI::Prolog, </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/faster-prolog-in-perl-with-yaswi/</link><pubDate>2014-09-02</pubDate></item><item><title>技術雜談：Perl x Prolog in AI::Prolog</title><description>Perl programming can be done in imperative, objective and functional styles. However, Perl lacks direct support in logic programming. Prolog </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/perl-cross-prolog-in-ai-prolog/</link><pubDate>2014-09-01</pubDate></item><item><title>技術雜談：Show Class Name in Perl</title><description>In Perl, you do not need to declare the type of a variable in advance. Sometimes, it is confusing because you do not know the type of the variable </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/show-class-name-in-perl/</link><pubDate>2014-08-30</pubDate></item><item><title>技術雜談：Sort by Hash Values in Perl</title><description>Since hash is a one-way relation, you cannot directly sort by hash values and get hash keys in Perl. However, by customized sort subroutine, </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/sort-by-hash-values-in-perl/</link><pubDate>2014-08-25</pubDate></item><item><title>技術雜談：Add Bookmarks with Coherent PDF Tools</title><description>Coherent PDF Tools is a command line PDF tool for Windows, Mac and Unix. It is free for non-commercial use. I wanted to remove all bookmarks </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/add-bookmarks-with-coherent-pdf-tools/</link><pubDate>2014-08-19</pubDate></item><item><title>技術雜談：How to Remove PKG packages on Mac</title><description>For GUI mac software, AppCleaner is an easy way to safely and cleanly uninstall it on Mac. However, there is no easy method to uninstall PKG </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/remove-pkg-in-mac/</link><pubDate>2014-08-14</pubDate></item><item><title>技術雜談：Install Ruby Gems in Home Directory</title><description>Although some system package managers on Linux or Unix provides Ruby gems as package, you still want to gem to install updated or specific gems </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/gems-in-homedir/</link><pubDate>2014-08-09</pubDate></item><item><title>技術雜談：PastebinCL - Paste Your Code from Terminal</title><description>Pastebin.com is a website where you can store and share text or code for a certain period of time. Pastebin support syntax highlight for a variety </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/pastebincl/</link><pubDate>2014-08-07</pubDate></item><item><title>技術雜談：How To Install Pygame for Python 3 on Mac</title><description>If you need to develop Python 3 application in Pygame on Mac, you should have noticed that there is no official installer of Pygame for Python </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/pygame-for-python3-on-mac/</link><pubDate>2014-08-06</pubDate></item><item><title>技術雜談：Homebrew, the missing package manager for OS X</title><description>Beneath the pretty user interface, OS X is also an Unix. However, OS X lacks a system package manager like APT for Debian and Ubuntu, YUM for </description><author>位元詩人</author><link>https://opensourcedoc.com/blog/homebrew/</link><pubDate>2014-08-05</pubDate></item></channel></rss>
