如何在Rust程式語言中透過ODM(Object-Document Mapping)來存取MongoDB? 2019 年 10 月 31 日 Magic Len Rust、研究分享許多人在使用SQL資料庫時,會使用ORM(Object-Relational Mapping,物件關係對映)的方式來操作資料庫,因為這樣可以省去重複撰寫SQL語句的麻煩。而屬於NoSQL的MongoDB,因為不需撰寫SQL語句就可以將文件(document)寫入至資料庫,或是可以直接利用某個文件當作查詢條件,將指定文件從資料庫中再讀取出來。使用JavaScript程式語言來操作MongoDB是非常...繼續閱讀 MongoDB、Object-Document Mapping、Rust、wither
如何在Webpack專案中加入Lodash,來讓JavaScript有更方便的函數能用? 2019 年 10 月 29 日 Magic Len NodeJS、研究分享Lodash是非常多人使用的JavaScript的工具函式庫,提供許多方便用來操作陣列、物件、字串、數值的函數。Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。由於Lodash有很多零散的函數,一般專案應該也用不到其中的一半,所以它十分需要利用Webpack來砍掉沒有用到的程式碼,以減少...繼續閱讀 Babel、JavaScript、Lodash、Webpack
用Rust程式語言製作作業系統核心(Kernel) 2019 年 10 月 24 日 Magic Len Rust、作業系統、研究分享Rust程式語言雖然可以很方便地做各式高階應用,但它本質上還是屬於系統層級的程式語言,換句話說,要拿它來開發作業系統也是可以的!Rust程式語言嚴謹的編譯器可以幫助我們在開發作業系統的時候於編譯階段就避免掉許多記憶體相關的問題,讓我們更能專注在其它方面上。這篇文章將會初步介紹用Rust程式語言開發作業系統核心(Kernel)的方式。繼續閱讀 Rust、開發作業系統
如何使用Travis CI來和測試Rust的程式專案? 2019 年 10 月 22 日 Magic Len Rust、研究分享、網站應用為了確保我們commit到GitHub上的Rust程式是可以正常工作的,我們可以替程式專案加入CI(持續整合,Continuous Integration)。Rust的crates.io線上套件庫也可以放上各種CI的狀態徽章(badge),提供開發者在選用套件時一個參考,避免用到連套件作者自己寫的測試都測不過的套件。Travis CI是對於Rust程式語言親和力比較高的CI,這篇文章將會針對Rus...繼續閱讀 Continuous Integration、GitHub、Rust、Travis CI
深度優先搜尋(DFS)和廣度優先搜尋(BFS)演算法,實用的節點搜尋法 2019 年 10 月 10 日 Magic Len Rust、演算法、研究分享圖(graph)是由節點(node)和邊(edge)組合而成的非線性結構,如果我們想要從其中的一個節點開始,走訪到其有直接或是間接連接的其它所有節點,可以依靠深度優先搜尋法(DFS, Depth-first Search)或是廣度優先搜尋法(BFS, Breadth-first Search)來達成。繼續閱讀 BFS、Breadth-first Search、Depth-first Search、DFS、Search Algorithm、廣度搜尋、廣度搜尋法、廣度搜尋演算法、搜尋演算法、深度搜尋、深度搜尋法、深度搜尋演算法、節點搜尋法
如何在Android或是Java程式語言中使用Rust的函式庫? 2019 年 10 月 8 日 Magic Len Android、Java、Rust、研究分享Java是一個需要運作在JVM上的程式語言,因此效能會比原生(native)程式還要來得差一些。不過對於一些比較需要花費硬體資源的運算(例如影像處理、聲音處理),我們還是可以透過Java提供的JNI(Java Native Interface)來連結並使用原生函式庫提供的功能來完成。Rust的函式庫也可以透過JNI來呼叫,在這篇文章中,會介紹如何把任意現有的Rust函式庫拿進Java程式語言中使用...繼續閱讀 Android JNI、Android NDK、Java、JNI、NDK、Rust
如何撰寫出無標準函式庫的Rust程式? 2019 年 10 月 3 日 Magic Len Rust、研究分享在預設的情況下,Rust程式都會與標準函式庫和C函式庫作連結,所以我們可以輕易地讓Rust程式能夠使用作業系統所提供的執行緒、檔案、網路等等的功能。但是這樣就會有個問題,那就是我們的程式會變得必需依賴於執行在某些特定的作業系統上,而無法獨立運作在無作業系統的環境中。繼續閱讀 Rust、Rust no_std
如何用Webpack產生HTML網頁? 2019 年 10 月 1 日 Magic Len HTML、NodeJS、研究分享Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外,也還能透過HTML模板來產生HTML網頁。繼續閱讀 Babel、Handlebars、HTML、JavaScript、JSX、React、Webpack
利用Serde框架在Rust程式語言上完成資料的序列化(Serialization)與反序列化(Deserialization) 2019 年 9 月 24 日 Magic Len Rust、研究分享Serde是一個Rust程式語言上的框架,可以有效率地讓某個結構能被序列化(Serialization)或是被反序列化(Deserialization),而且序列化或反序列化的程式只要撰寫一次,就可以被用在多種不同的資料格式(如JSON、MessagePack、BSON等),或是自行定義的資料格式上。繼續閱讀 Deserialization、Rust、Serde、Serde 巨集、Serialization、反序列化、序列化
用Rust開發WebAssembly─第七章:縮小WebAssembly程式 2019 年 9 月 21 日 Magic Len Rust、Webassembly、研究分享透過網路來存取使用了WebAssembly程式的網頁時,愈小的WebAssembly程式會讓網頁的載入速度更快,也會讓使用者體驗更好。這篇文章整理了一些造成WebAssembly程式肥大的原因,以及能使WebAssembly程式縮小的方式。繼續閱讀 Binaryen、Rust、twiggy、Wasm、wasm-opt、WebAssembly、用Rust開發WebAssembly