三字經 2021 年 1 月 26 日 Magic Len 中文、研究分享、音樂創作、隨手張貼 三字經是大多數中文母語使用者小時候會背誦的啟蒙教材,內容涵蓋中國傳統文化的文學、歷史、哲學、天文地理、人倫義理、忠孝節義,共一千多字,內容豐富。不過三字經並非只有一種版本,這篇文章會整理不同時期、不同版本的三字經原文之差異,以便後續查找,與人一致同樂。另外還提供三字經的樂譜,用唱的更愉快! 繼續閱讀 三字經、古風歌、文言文、樂譜
如何在Rust程式語言中將元素安全地插入至已排序好的集合結構中? 2020 年 11 月 5 日 Magic Len 研究分享、Rust Rust程式語言雖然有內建BTreeSet結構體,可以保證插入至該結構中的元素是有經過排序的。但BTreeSet是一個Set,無法儲存邏輯上相同的資料,所以在一些情況下我們還是需要用比較單純的Vec結構或是其它的資料結構來儲存已排序的資料。 繼續閱讀 Rust、sorted-insert
Rust程式的編譯優化(opt-level、lto、codegen-units、inline的差異) 2020 年 10 月 30 日 Magic Len 研究分享、Rust 在建置Cargo程式專案的時候,我們可以輕易地使用「cargo build」或是「cargo build --release」指令,來對開發(development)或是發佈/部署(deployment)的目的做區分。「cargo build」編譯出來的二進制檔案沒有經過最佳化,而且會啟用「#[cfg(debug_assertions)]」屬性,來使用偵錯(debug)相關的程式碼;「cargo ... 繼續閱讀 Rust
如何讓Rust的函式庫或是應用程式輸出日誌(log)? 2020 年 10 月 27 日 Magic Len 研究分享、Rust 撰寫日誌(logging)是除錯(debug)和事件分析時經常會使用的方式。Rust生態圈有log這個crate,針對訊息重要性(等級)提供了不同的巨集讓函式庫或是應用程式輸出日誌(log),不過它並沒有限定日誌最終會被輸出到哪,Rust開發者在引入有用到log這個crate的函式庫後,可以自行決定日誌的輸出方式。 繼續閱讀 Rust、env_logger、pretty_env_logger、simplelog
使用Ubuntu Server架設Redis伺服器,並於PHP程式中存取Redis資料庫 2020 年 10 月 22 日 Magic Len Linux、研究分享、網路相關 Redis是一個開源的NoSQL資料庫,以一個key對應一個value的方式並配合記憶體(RAM)來儲存資料,效能要比關聯式資料庫還要好很多,可以在許多程式語言上使用。Redis的value除了字串(string)型態之外,另外還有幾種比較特殊的結構,包括set、zset、list和hash,並提供了多種方式來操作這些欄位。 繼續閱讀 Linux、NoSQL、Redis、Ubuntu、Ubuntu Server、phpRedisAdmin
如何連線到遠端的Linux + Redis伺服器? 2020 年 10 月 20 日 Magic Len Linux、研究分享、網路相關 Redis預設並不允許遠端裝置的連線,而為了要能夠讓它允許遠端連線,就必須要進行一些額外的設定。 繼續閱讀 Linux、Redis
如何用FFmpeg串接影音? 2020 年 10 月 15 日 Magic Len 研究分享、軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。FFmpeg當然也能夠輕鬆辦到影片和聲音的串接,在特定條件下甚至還不需重新編碼呢! 繼續閱讀 FFmpeg
如何在Rocket框架中使用JWT(JSON Web Token) + JWS(JSON Web Signature)? 2020 年 10 月 8 日 Magic Len 研究分享、Rust 一個網站要辨識訪客主要會使用session、cookie-based session或token這三種方式,JWT(JSON Web Token)顧名思義就是屬於token的辨識方式。使用JWT來辨識訪者,伺服器可以不用去記憶訪客的狀態,因為JWT本身就可以儲存少量的額外資料,這點和cookie-based session相像,但JWT不僅僅能放在Cookie中傳送,也還可以置於HTTP標頭中或是... 繼續閱讀 JSON Web Signature、JSON Web Token、JWS、JWT、Rocket、Rust
如何使用Rust程式語言產生隨機數值? 2020 年 10 月 1 日 Magic Len 研究分享、Rust 在開發程式的時候常常會需要產生亂數,然而,電腦並不存在「真正隨機」的亂數,它只能夠透過一些機制,利用額外的參考數值(如時間等)來模擬出看起來是隨機的亂數。 繼續閱讀 Rust、random-number、亂數
Rust程式語言如何執行系統的指令或是外部可執行檔案? 2020 年 9 月 24 日 Magic Len 研究分享、Rust 在設計程式的時候偶爾會需要依靠系統指令或是其它的程式來取得一些相關的訊息,或是進行一些特殊的處理,如查看系統的網卡介面,或是呼叫FFmpeg來實現影音編碼的格式轉換。雖然這些工作基本上都可以靠Rust原生程式來自行實作,或是引用其它C/C++函式庫,但既然有已存在的指令和執行檔可以用,能省下許多開發時間,何不去用呢? 繼續閱讀 Rust、execute