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預設並不允許遠端裝置的連線,而為了要能夠讓它允許遠端連線,就必須要進行一些額外的設定。 繼續閱讀
如何用FFmpeg串接影音? 2020 年 10 月 15 日 Magic Len 研究分享、軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。FFmpeg當然也能夠輕鬆辦到影片和聲音的串接,在特定條件下甚至還不需重新編碼呢! 繼續閱讀
Linux作業系統的遊戲修改大師─GameConqueror 2020 年 10 月 13 日 Magic Len Linux、軟體介紹 愛玩電腦遊戲的人應該都知道有一款知名的應用軟體叫做「遊戲修改大師(Game Master)」,它可以直接搜尋指定行程(process)的某個有著特定用途的記憶體位址(例如儲存角色所持金錢的記憶體位址),並且直接對該記憶體位址中的資料進行修改與鎖定。簡單來說,遊戲修改大師可以讓玩家的金錢、資源都變成無限的,等級、能力值也可以調整到最高。不過,遊戲修改大師是運行在Windows作業系統上的軟體,並不能... 繼續閱讀
如何在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標頭中或是... 繼續閱讀
如何使用Rust程式語言將字串安全地寫入HTML文件中? 2020 年 10 月 6 日 Magic Len Rust 在進行網頁開發的時候,可能會需要將使用者輸入的資料顯示在HTML網頁上,此時的網頁就會暴露在XSS(Cross-Site Scripting)攻擊的危險下。如果網頁不做任何檢查,將使用者輸入的資料嵌入至網頁中的話,輸入資料中的HTML語法就會直接影響到網頁,就會使得網頁爛掉或是藏有惡意的連結和腳本。為了讓使用者輸入的資料不會被當作是一般的HTML語法,需要將特定的保留字元進行跳脫處理,像是「<... 繼續閱讀
如何使用Rust程式語言產生隨機數值? 2020 年 10 月 1 日 Magic Len 研究分享、Rust 在開發程式的時候常常會需要產生亂數,然而,電腦並不存在「真正隨機」的亂數,它只能夠透過一些機制,利用額外的參考數值(如時間等)來模擬出看起來是隨機的亂數。 繼續閱讀
Rust程式語言如何處理動態歌詞(LyRiCs)? 2020 年 9 月 29 日 Magic Len Rust LyRiCs(LRC)是一種資料格式,藉由在每行歌詞上加上時間戳記(timestamp),來讓音樂播放器可以在播放音樂的同時,同步將該時間點的歌詞顯示出來。筆者以前用Java實作過MP3標籤格式ID3和APE的函式庫,主要就是為了能夠處理動態歌詞。雖然現在沒什麼在用,但還是整理了以前寫過的程式碼,將動態歌詞的部份重新用Rust程式語言獨立實作出來。 繼續閱讀