如何用Webpack產生HTML網頁? 2019 年 10 月 1 日 Magic Len 研究分享、 HTML、 JavaScript Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,它除了還能打包網頁有用到的靜態資源(如JS、CSS、圖片檔等)外,也還能透過HTML模板來產生HTML網頁。 繼續閱讀
用Rust開發WebAssembly─第六章:康威生命遊戲的效能 2019 年 9 月 19 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 前面花了幾個章節製作的康威生命遊戲,功能已經大致上完成了,不過我們還無法確定其效能是否還有可以優化的空間,必須要用一些方式來偵測才行。 繼續閱讀
用Rust開發WebAssembly─第五章:讓康威生命遊戲能與玩家互動 2019 年 9 月 17 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 在這個章節中,我們要替康威生命遊戲加入播放、暫停和逐格播放這幾個時間控制的功能,並且讓培養皿中的格子會因玩家滑鼠游標的點擊事件而改變狀態。 繼續閱讀
用Rust開發WebAssembly─第四章:測試(Testing)與偵錯(Debugging) 2019 年 9 月 15 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 在開始替我們的康威生命遊戲實作更多功能之前,要先將目前的Rust程式加入測試(Testing),除了可以用來驗證目前的程式正確性之外,還可以避免日後因修改程式而把原本可以正常工作的程式弄出問題了。另外,有些程式問題發生的原因很難確認,我們也需要在Rust程式中輸出Log到網頁瀏覽器的主控台(console)中,才能偵錯(Debugging)。 繼續閱讀
用Rust開發WebAssembly─第三章:實作康威生命遊戲 2019 年 9 月 13 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 康威生命遊戲(Conway's Game of Life,又稱康威生命棋)是一個模擬生物細胞存活、繁殖與滅亡的遊戲。雖然這個稱為「遊戲」,但它其實不怎麼好玩,它是透過電腦來模擬出一個培養皿空間,這個培養皿中在一開始會被放置一些虛擬細胞,而這些細胞會遵循一些「遊戲規則」來決定其在下一個階段是持續生存、還是要繁殖、抑或是毀滅。藉由圖像化這個培養皿,我們可以從中觀察到一些有趣(?)的圖像。 繼續閱讀
用Rust開發WebAssembly─第二章:將高效能的Rust函式庫套用在網頁上 2019 年 9 月 11 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript 在上一章節中,我們有提到WebAssembly比JavaScript的效能還要快很多,但始終沒有舉出一個例子來比較它們實際的效能差異。在這篇文章中,會介紹如何把任意現有的Rust函式庫編譯成WebAssembly,然後移植到網頁瀏覽器上執行,並且比較Rust函式庫做出來的WebAssembly模組以及原生JS模組在網頁瀏覽器上執行的效能差異。 繼續閱讀
用Rust開發WebAssembly─第一章:認識WebAssembly 2019 年 9 月 9 日 Magic Len 研究分享、 Rust、 Webassembly、 JavaScript WebAssembly(簡稱Wasm),是一個安全、可移植(無硬體和作業系統相依)的低階語言(類似組合語言),由W3C制定標準,並由世界四大瀏覽器Mozilla Firefox、Microsoft Edge、Google Chrome和Apple Safari的提供商共同開發,能用來製作高效能且體積小的程式,通常是應用在Web上,但也不限於此。WebAssembly並不是利用新語法來編譯出優化過的... 繼續閱讀
如何用Webpack來打包JavaScript、SCSS/CSS、HTML網頁和任意檔案? 2019 年 8 月 20 日 Magic Len 研究分享、 JavaScript Webpack是JavaScript的模組建置工具,運行在Node.js上,它可以將零散的JavaScript檔案用各式工具優化並打包起來,加快網頁的載入時間。Webpack也並不限於用在JavaScript上,舉凡網頁有用到的靜態資源(如JS、CSS、圖片檔等),甚至是HTML網頁,Webpack都有辦法打包。 繼續閱讀
基數排序(Radix Sort)演算法,可以依據多個鍵值來排序的演算法 2019 年 5 月 30 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 基數排序(Radix Sort)演算法是可以利用多個鍵值來排序資料的演算法。排序還需要多個鍵值?有時候當然會需要啦!像是要排序檔案時,可以先依照檔案名稱排序後,再依照檔案大小來排,如此一來,整體上來看這些檔案,會是以檔案大小來排序,而相同檔案大小的檔案則是會依照檔案名稱來排序。基數排序法可以將整數的各個位數當作是鍵值,來進行線性時間的排序,比起會依照k(要排序的資料可能的值的數量)愈大而愈吃空間的... 繼續閱讀
桶排序(Bucket Sort)演算法,利用運算式將資料分類、排序後,再合併起來的排序演算法 2019 年 5 月 26 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 桶排序(Bucket Sort)演算法是先將大量資料分類成少量資料後,再進行排序的演算法。可以透過簡單的運算式來完成資料的分類,在最好的情況之下,資料可以被完全打散,此時的時間複雜度就會是一個線性時間。 繼續閱讀