Minecraft 可堆疊式物品儲存系統

Minecraft 因為遊戲時間一久,玩家通常會累積大量物品,另外如果利用生怪磚建造農場,或者之前出現過的巨大化農場 ,大量物品儲存系統算是相當重要。

...

使用 Rust 實作 regular expression tester

其實這個功能很早以前就已經完成了,將正規表示式對轉換成Non-Deterministic Automata(NFA) ,來 match 字串,
先前的實作有一些問題,因為再建 NFA的時候,狀態是使用整數來表示。

在轉換成NFA時,正規表示式的 Concatenate, Choose, Repeat 需要將兩個NFA 結合成一個,因為由 Empty 或 Literal 直接建NFA時, 編號一定是從 0 開始,兩個都包含狀態 0 的狀態機,直接結合起來絕對不會是對的,需要讓兩邊的狀態都不一樣才行。
當然也不可能用亂數來作為狀態,畢竟以亂數作為狀態,連一個NFA裡面有哪些狀態都不知道,結合時根本就無法檢查是否有衝突。

...

Rust 中實作型別運算子重載

最近在實作computation books第九章,用到很多Rust運算子重載的部分。
運算子重載嘛,可以對自己定義的struct 或是enum 使用運算子,這樣就能寫出 Vec3 + Vec3 這樣比較漂亮的寫法,不用 Vec3.add(Vec3),

...

Rust 遞迴結構 recursive structure

之前實作Computation book的範例程式碼,一直卡關的第2章原始碼解析的部分,最近突然有了大幅的進展 (因為在網路上找到一個別人寫好的相關原始碼),讓我突然頓悟rust 相關的設計,這裡解釋一些常用的技巧。

...

Minecraft 農場

花了一些時間打造的Minecraft 糧食作物農場總算完工了。

三層樓建築都是同樣的構造,分別種wheat、potato跟carrot,每分地大小為9x9,中間留一格水濕潤土地用,每單位可種植80格地,一層樓共16 單位,可種植1280格,等於是收割一次就飽了XD。

...

用Rust 重寫 Raytracer From Scratch

最近看到傳說中的jserv 大神所開的2016系統軟體課程,用C寫了一個Raytracing 的程式,就想我也用rust 也一遍,

...

 March 20, 2016 |    rust  |    rust , raytracer  | 1563 字  |  YodaLee

AlphaGo 擊敗人類之後

最近資訊界、圍棋界最火紅的新聞,大概就是 Google DeepMind AlphaGo 對戰李世乭,而且還連勝三場取得勝利, 在博弈遊戲中公認難度最高的圍棋上擊敗人類高手,開始時還有人覺得是李世乭表現失常,現在我們可能要承認:AlphaGo 真的技勝一籌。

...

Word 不分行空白與不分行連字號

今年9月時把之前做的一顆電路整理一下,寫成一篇journal投出去,今天接到學長的回信,結果是Major Revision,一看有不少東西需要改的呀Orz。
要求修改的內容,有一條是:

Through the whole paper the numbers and units should be put into one line for better readability.

...

影評:葉問3 IpMan 3

still

總評:

5/10

浪費時間
看看就好
值得一看
非看不可

...

雜湊、訊息鑑別碼與簽章

最近剛翻完 Understanding Cryptography 這本書,內容真的是淺顯易懂,每章的最後也都會附上相關的參考跟深入研究可讀的參考資料,是本適合當入門的好書。
看完之後,想通了雜湊、訊息鑑別碼與簽章三者的差別,在這裡筆記一下,這三個對應的英文分別是 Hash, Message Authentication Code (MAC) 和 Signature,都是訊息傳遞時,用來檢查訊息內容有無「問題」的演算法,三者相似但有些許不同,要對付的問題也不一樣。

...