三字經 2021 年 1 月 26 日 Magic Len 中文、 研究分享、 音樂創作、 隨手張貼 三字經是大多數中文母語使用者小時候會背誦的啟蒙教材,內容涵蓋中國傳統文化的文學、歷史、哲學、天文地理、人倫義理、忠孝節義,共一千多字,內容豐富。不過三字經並非只有一種版本,這篇文章會整理不同時期、不同版本的三字經原文之差異,以便後續查找,與人一致同樂。另外還提供三字經的樂譜,用唱的更愉快! 繼續閱讀
如何在Rust程式中判斷字元是不是中文、日文或韓文字元? 2020 年 11 月 17 日 Magic Len Rust 在處理Unicode字串的時候,CJK字元經常需要當作特例來處理。Rust的字串雖然是採用UTF-8編碼,但是它並沒有內建Unicode Block清單,無法查詢字元所屬的Unicode Block,也就不能判斷一個字元是不是中文、日文或韓文字元了。沒辦法,只能自己做啦! 繼續閱讀
如何在Rust程式中判斷兩個檔案的內容是否相同? 2020 年 11 月 12 日 Magic Len Rust 在開發程式尤其是撰寫測試或腳本的時候,有時會需要判斷兩個檔案的內容是否相同。可是由於檔案體積可能會很大,不可能直接把兩個檔案都整個讀進記憶體後再進行比對,所以要分段讀取。不過Rust的標準函式庫並沒有內建像這樣的比對檔案內容的功能,要另外實作才行。 繼續閱讀
如何使用程式語言來產生數字分頁導覽列? 2020 年 11 月 10 日 Magic Len Rust、 JavaScript 在製作網頁或是應用程式的圖形使用者介面時,如果需要顯示比較大量的資料,通常製作「換頁」、「分頁」功能。但是若是做了這樣的功能,就必須要讓使用者能夠有方法進行「跳頁」的動作。要讓使用者能夠在圖形介面上進行跳頁,比較簡單的方式就是弄個下拉式選單把所有頁碼列出來讓使用者選,或者乾脆放上一個文字輸入方塊直接讓使用者自行輸入要查詢的頁碼。當然,比較潮的方式還是弄一個數字分頁導覽列(Pagination Ba... 繼續閱讀
如何在Rust程式語言中將元素安全地插入至已排序好的集合結構中? 2020 年 11 月 5 日 Magic Len 研究分享、 Rust Rust程式語言雖然有內建BTreeSet結構體,可以保證插入至該結構中的元素是有經過排序的。但BTreeSet是一個Set,無法儲存邏輯上相同的資料,所以在一些情況下我們還是需要用比較單純的Vec結構或是其它的資料結構來儲存已排序的資料。 繼續閱讀
用Rust程式語言實作的「wpautop」函數 2020 年 11 月 3 日 Magic Len Rust Wordpress有提供一個便利的函數─wpautop,它能夠利用換行字元來對HTML內容加上「<p>」或是「<br>」標籤,讓我們在後台直接用HTML語法撰寫文章的時候,不必手動加上「<p>」或是「<br>」標籤,這也讓HTML變得比較容易閱讀,不過這個函數還是有它的問題(用了一堆正規表示式、會產生大量字串、可能在錯誤的位置插入標籤)就是了。在Rust程式語言中,如果也想要用這樣的功能,要怎麼做... 繼續閱讀
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的函式庫或是應用程式輸出日誌(log)? 2020 年 10 月 27 日 Magic Len 研究分享、 Rust 撰寫日誌(logging)是除錯(debug)和事件分析時經常會使用的方式。Rust生態圈有log這個crate,針對訊息重要性(等級)提供了不同的巨集讓函式庫或是應用程式輸出日誌(log),不過它並沒有限定日誌最終會被輸出到哪,Rust開發者在引入有用到log這個crate的函式庫後,可以自行決定日誌的輸出方式。 繼續閱讀
使用Ubuntu Server架設Redis伺服器,並於PHP程式中存取Redis資料庫 2020 年 10 月 22 日 Magic Len Linux、 研究分享、 網路相關 Redis是一個開源的NoSQL資料庫,以一個key對應一個value的方式並配合記憶體(RAM)來儲存資料,效能要比關聯式資料庫還要好很多,可以在許多程式語言上使用。Redis的value除了字串(string)型態之外,另外還有幾種比較特殊的結構,包括set、zset、list和hash,並提供了多種方式來操作這些欄位。 繼續閱讀
如何連線到遠端的Linux + Redis伺服器? 2020 年 10 月 20 日 Magic Len Linux、 研究分享、 網路相關 Redis預設並不允許遠端裝置的連線,而為了要能夠讓它允許遠端連線,就必須要進行一些額外的設定。 繼續閱讀