如何使用Rust程式語言產生隨機數值? 2020 年 10 月 1 日 Magic Len 研究分享、 Rust 在開發程式的時候常常會需要產生亂數,然而,電腦並不存在「真正隨機」的亂數,它只能夠透過一些機制,利用額外的參考數值(如時間等)來模擬出看起來是隨機的亂數。 繼續閱讀
Rust程式語言如何處理動態歌詞(LyRiCs)? 2020 年 9 月 29 日 Magic Len Rust LyRiCs(LRC)是一種資料格式,藉由在每行歌詞上加上時間戳記(timestamp),來讓音樂播放器可以在播放音樂的同時,同步將該時間點的歌詞顯示出來。筆者以前用Java實作過MP3標籤格式ID3和APE的函式庫,主要就是為了能夠處理動態歌詞。雖然現在沒什麼在用,但還是整理了以前寫過的程式碼,將動態歌詞的部份重新用Rust程式語言獨立實作出來。 繼續閱讀
Rust程式語言如何執行系統的指令或是外部可執行檔案? 2020 年 9 月 24 日 Magic Len 研究分享、 Rust 在設計程式的時候偶爾會需要依靠系統指令或是其它的程式來取得一些相關的訊息,或是進行一些特殊的處理,如查看系統的網卡介面,或是呼叫FFmpeg來實現影音編碼的格式轉換。雖然這些工作基本上都可以靠Rust原生程式來自行實作,或是引用其它C/C++函式庫,但既然有已存在的指令和執行檔可以用,能省下許多開發時間,何不去用呢? 繼續閱讀
Rust程式語言如何在「trim」一個字串的同時去改變該字串? 2020 年 9 月 22 日 Magic Len Rust Rust程式語言的String物件有提供「trim」方法,可以用來去除字串頭尾的空白字元,不過這個方法會回傳字串切片(&str),而不會去更動到原來的String物件。不過在少數情況下,我們還是希望原來的String物件可以真正被「trim」。 繼續閱讀
用「async / .await」撰寫 Rust 並發程式 2020 年 9 月 17 日 Magic Len 研究分享、 Rust 用「async / await」語法來撰寫並發與並行程式是現代程式語言流行的方式,比起傳統開啟新的執行緒來完成並發處理工作的目的,「async / await」可以在同一個執行緒下達到同樣的目的,非常適用於當並發處理的工作並不重的時候,能夠省下建立執行緒所產生的開支(overhead)。 繼續閱讀
如何用FFmpeg將連續的圖片轉成影片? 2020 年 9 月 15 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,我們也可以用它來將連續的圖片編碼成影片。 繼續閱讀
如何清除Nginx的反向代理快取和FastCGI快取? 2020 年 9 月 10 日 Magic Len 作品分享、 網路相關、 軟體介紹 Nginx是一個免費開源且穩定高效的Web伺服器程式,擁有反向代理以及負載平衡的功能,經常作為最前端的伺服器。當它用作反向代理伺服器或是PHP網頁伺服器時,無論是「proxy_pass」還是「fastcgi_pass」,均有提供快取的功能。然而,免費版本的Nginx並沒有內建刪除快取的機制(早期Nginx免費版本可以使用「proxy_cache_purge」、「astcgi_cache_purge... 繼續閱讀
如何用Rust程式語言取得Linux的系統資訊? 2020 年 9 月 8 日 Magic Len 研究分享、 Rust 取得執行環境的作業系統資訊是開發軟體時經常會需要被實作的功能,Rust作為一個系統級的程式語言,對於這部份自然會有許多解決方案。不過也由於Rust程式語言跨作業系統,因此許多取得系統資訊的套件也會以跨平台支援為主,這就導致取得到的資訊可能過於低階、不夠充份或是不統一,使得開發者還需要自行撰寫程式將零散的資訊處理為一般人習慣閱讀的格式。又或者取得系統資訊的方式是依靠系統中提供的指令工具,使得程式還得... 繼續閱讀
Rust程式語言如何將定數於編譯階段時串接成字串? 2020 年 9 月 3 日 Magic Len Rust Rust程式語言強大的編譯器可以讓它在編譯階段時就去做完許多其它程式語言在執行階段才能進行的工作,像是Rust的標準函式庫,就有提供一個「concat」巨集,可以將任意數量定數(literal)直接串接成生命周期為「'static」的字串切片(&'static str) 繼續閱讀
使用Ubuntu Server架設FTP伺服器(vsftpd + xinetd + PAM + SSL/TLS) 2020 年 9 月 1 日 Magic Len Linux、 研究分享、 網路相關 FTP(檔案傳輸協定, File Transfer Protocol)顧名思義,是專門用來傳輸檔案的通訊協定,並且這個檔案傳輸的方向是雙向的,換句話說,FTP伺服器可以提供檔案給客戶端,客戶端也可以上傳檔案到FTP伺服器上。vsftpd、pureftpd、proftpd都是在Linux作業系統上很流行的FTP伺服器軟體,其中的vsftpd最輕巧,並以安全和效能為重。 繼續閱讀