<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/2019/10/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Tue, 21 Apr 2026 08:53:10 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>用Rust程式語言製作作業系統核心(Kernel)</title><link>https://magiclen.org/rust-os-kernel</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rust程式語言雖然可以很方便地做各式高階應用，但它本質上還是屬於系統層級的程式語言，換句話說，要拿它來開發作業系統也是可以的！Rust程式語言嚴謹的編譯器可以幫助我們在開發作業系統的時候於編譯階段就避免掉許多記憶體相關的問題，讓我們更能專注在其它方面上。這篇文章將會初步介紹用Rust程式語言開發作業系統核心(Kernel)的方式。]]></description><category>研究分享</category><category>作業系統</category><category>Rust</category><category>Rust</category><guid>https://magiclen.org/rust-os-kernel</guid><pubDate>Thu, 24 Oct 2019 12:00:46 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>用Rust的derive屬性實作如Copy、Clone、Debug等內建特性的替代方式</title><link>https://magiclen.org/educe</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rust程式語言內建的derive屬性可以快速地替我們的型別加上內建的特性，不過會要求該型別內的欄位也都要先實作相同的特性，而且很多時候利用derive屬性實作出來的特性並不能達到我們期望的功能。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><category>educe</category><guid>https://magiclen.org/educe</guid><pubDate>Thu, 17 Oct 2019 12:00:58 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何用Rust程式語言替我們自己的型別實作Debug特性？</title><link>https://magiclen.org/debug-helper</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Rust程式語言內建的「Debug」特性非常方便，可以直接將任意型別的值以字串的方式顯示出來，而且還可以支援一定程度的格式化方式。在一般的情況下，要替我們自己的一個型別實作「Debug」特性，只需在其「derive」屬性加上「Debug」參數就好了，沒有什麼難度。但是在比較特別的情況下，我們就無法用「derive」屬性來實作「Debug」特性。]]></description><category>Rust</category><category>Rust</category><category>debug-helper</category><guid>https://magiclen.org/debug-helper</guid><pubDate>Tue, 15 Oct 2019 20:00:39 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>深度優先搜尋(DFS)和廣度優先搜尋(BFS)演算法，實用的節點搜尋法</title><link>https://magiclen.org/dfs-bfs</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
圖(graph)是由節點(node)和邊(edge)組合而成的非線性結構，如果我們想要從其中的一個節點開始，走訪到其有直接或是間接連接的其它所有節點，可以依靠深度優先搜尋法(DFS, Depth-first Search)或是廣度優先搜尋法(BFS, Breadth-first Search)來達成。]]></description><category>研究分享</category><category>Rust</category><category>演算法</category><category>Rust</category><category>搜尋演算法</category><category>深度優先搜尋</category><category>廣度優先搜尋</category><guid>https://magiclen.org/dfs-bfs</guid><pubDate>Thu, 10 Oct 2019 12:00:01 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何在Android或是Java程式語言中使用Rust的函式庫？</title><link>https://magiclen.org/java-rust-library</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Java是一個需要運作在JVM上的程式語言，因此效能會比原生(native)程式還要來得差一些。不過對於一些比較需要花費硬體資源的運算(例如影像處理、聲音處理)，我們還是可以透過Java提供的JNI(Java Native Interface)來連結並使用原生函式庫提供的功能來完成。Rust的函式庫也可以透過JNI來呼叫，在這篇文章中，會介紹如何把任意現有的Rust函式庫拿進Java程式語言中使用...]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>Android</category><category>Android</category><category>Java</category><category>Rust</category><guid>https://magiclen.org/java-rust-library</guid><pubDate>Tue, 8 Oct 2019 20:00:38 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何撰寫出無標準函式庫的Rust程式？</title><link>https://magiclen.org/rust-no-std</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
在預設的情況下，Rust程式都會與標準函式庫和C函式庫作連結，所以我們可以輕易地讓Rust程式能夠使用作業系統所提供的執行緒、檔案、網路等等的功能。但是這樣就會有個問題，那就是我們的程式會變得必需依賴於執行在某些特定的作業系統上，而無法獨立運作在無作業系統的環境中。]]></description><category>研究分享</category><category>Rust</category><category>Rust</category><guid>https://magiclen.org/rust-no-std</guid><pubDate>Thu, 3 Oct 2019 12:00:30 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何用Webpack產生HTML網頁？</title><link>https://magiclen.org/webpack-html</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2019/06/webpack-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2019/06/webpack-220x162.png 1x, https://magiclen.org/wp-content/uploads/2019/06/webpack-440x324.png 2x, https://magiclen.org/wp-content/uploads/2019/06/webpack-660x486.png 3x" alt="">
Webpack是JavaScript的模組建置工具，運行在Node.js上，它可以將零散的JavaScript檔案用各式工具優化並打包起來，加快網頁的載入時間。Webpack也並不限於用在JavaScript上，它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外，也還能透過HTML模板來產生HTML網頁。]]></description><category>研究分享</category><category>HTML</category><category>JavaScript</category><category>HTML</category><category>JavaScript</category><category>node.js</category><category>Handlebars</category><category>Webpack</category><category>React</category><category>JSX</category><category>Babel</category><guid>https://magiclen.org/webpack-html</guid><pubDate>Tue, 1 Oct 2019 12:00:06 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>