Wei Ji

@FlySkyPie

Joined on Jul 28, 2018

  • 以下內容純屬虛構,由本人的潛意識創作,如有雷同純屬巧合。 背景 一如我大部分夢境,會自動帶入一些背景設定,即便我主觀體驗上並沒有直接體驗到,就像被丟進劇本內的角色自然而然的就知道當下發生過什麼事情。 本次夢境的主軸就是我駕駛著自製的時光機,帶著家人去平行世界旅遊。 「時光機」示意圖: https://plaza.rakuten.co.jp/neoreeves/diary/201106090000/
     Like 1 Bookmark
  • 這裡整理幾種 C++ 專案常見的處理仰賴函式庫的模式(或是工具)。 Copy/Paste Source 最簡單暴力的方式,把仰賴函式庫的 source 跟 header 直接複製到專案的資料夾下,直接編譯進去專案本身。舉例來說 fogleman/Craft 是屬於這類。 Native CMake 在 CMake 中有個指令 find_library 允許在專案的 config 階段先偵測環境中是否有指定的函式庫,找不到的話就會拋出錯誤。這種專案配置將安裝仰賴函式庫責任交給 host 本身,通常專案的 build guild 會寫著 「先執行 sudo apt install ....」之類的。舉例來說 LibreSprite 是屬於這類。 Git 利用 Git 的 submodule 功能,把其他 repository 參考到專案中。舉例來說 Cuberite 是屬於這類。
     Like  Bookmark
  • 前情提要 最近 (2022-11-06) 從天上掉下來的一台 3DS (?) 老實說對於一般過時 N 年的消費性電子產品,我是完全沒興趣多花時間去玩它,根據以往的經驗,hack 這種東西多半吃力不討好;花費大量的時間也只能獲得相對於現代設備少得可憐的算力。 不過個人對於這種「有機械輸入的橫式手持行動裝置」有著莫名憧憬,隨手搜尋看看刷機的資料,發現資源蠻多的,教學也很詳細,就想著來刷刷看。 閃亮亮症候群再次發作 跟朋友表示想在 3DS 上刷 Linux 之後,「工程師的成就清單」的話題就這樣被打開了,對話中除了提 「在非常見或非通用功能電腦上安裝 Linux」還提到了「在非常見的顯示器上播放 Bad Apple」。 過幾天 (2022-11-09),我便利用下班之餘試著在 3DS 上刷 Linux。刷機的第一部就是透過系統漏洞刷入 CFW (Custom firmware),讓 3DS 能夠從 SD Card 讀取 bootloader 開機,因為教學很詳細,照著步驟做沒有花太多時間就成功刷機了,當中有些教學性質的步驟也讓我看了 3DS Linux 的頁面之後就知道大概要做什麼,也成功的在 3DS 上進入 Linux 了。
     Like 1 Bookmark
  • 在原生的 Minecraft 環境中要實現工業化必須仰賴紅石電路,但是紅石作為 Minecraft 標誌性的遊戲機制,單純「參考」的話很容易被看出原始出處而帶來不必要的爭議,為了能在自製的 Voxel 世界中再現工業化的遊戲機制,必須尋找另外一種類似於紅石但是不同的遊戲機制。 圖靈完備 「類似於紅石電路的遊戲機制」這樣的描述似乎不夠精確,準確的來說應該是創造一個圖靈完備的邏輯系統並存在於 Voxel 世界中,但是這就必須先介紹什麼是圖靈完備。 要解釋圖靈完備就要先介紹「圖靈機」,它是一台抽象化的計算機,就像薛丁格的貓一樣是思考層面的上的東西並不具有實體,它的描述是這樣的^turing-machine: 一條無限長的紙帶(tape),紙帶被分成一個個相鄰的格子(square),每個格子都可以寫上至多一個字符(symbol)。 一個字符表(alphabet),即字符的集合,它包含紙帶上可能出現的所有字符。其中包含一個特殊的空白字符(blank),意思是此格子沒有任何字符。 一個讀寫頭(head),可理解為指向其中一個格子的指針。它可以讀取/擦除/寫入當前格子的內容,此外也可以每次向左/右移動一個格子。
     Like  Bookmark
  • 資料的組成的基本結構是 "Chunk",而 Chunk 分成三種: RIFF Chunk List Chunk Data Chunk 格式 Chunk RIFF 格式中最小的資料單元,Chunk 定義上包含了三個(或四個)部份:
     Like  Bookmark
  • 前言(a.k.a. 廢話) 我修過不少次工程數學,每次都選不同老師的課,因此目前修課老師在個人經驗中算是教學相對熱忱、詳細的;在課程中安插講解實務上的應用場合,用彈簧-質點-阻尼模型來解釋這些解微分方程的方法如何處理實際的物理問題。 最近課程進度到達拉普拉斯章節中的卷積性質,很驚訝他沒有花太多時間在解釋卷積,而是直接依照數學定義開始計算,並且示範其性質,於是我就這樣盯著那個積分方程式整整一節課,想著這玩意兒的幾何意義。(˘•ω•˘) 定義 下課之後我去查詢卷積的定義: $$ \int _{-\infty }^{\infty }f(\tau )g(x-\tau ),\mathrm {d} \tau
     Like 22 Bookmark
  • 緣起 (aka 廢話) (這一段在講整個學習過程的因果關係,只想看步驟的人可以直接跳到下一個段落) 前一陣子在尋找合適的方案來儲存 Voxel terrain 的資料,所以花了一點時間在琢磨 voxel 的檔案格式。 接著想想,或許我該把 side project 的風格都統一成 Voxel ,這樣彼此之間就可以共用技術棧,而同時手邊還有一個 FPS 相關的專案,就想: 去找找看免費的 Voxel 槍模型匯進遊戲內看效果怎樣。 就跑去 Github 翻 Ace Of Spades 的開源專案,然後發現它使用的模型檔案是 .kv6 ,全名是 "Ken Silverman's version 6 model file" 如果順著這條線索會找到一個頗有年代感的網頁[^Ken-Silverman-web]。
     Like  Bookmark
  • 鍊成粉末 作為遊戲中最容易獲得的物品之一,比如能從植物獲得或是破壞土壤方塊後會掉落。 鍊成粉末能夠像 Minecraft 中的紅石一般放在地面上連接成圖形。 鍊成陣 (Transmutation Circle) 使用鍊成粉末繪製 2x2 或 3x3 的網格,構成鍊成陣。 網格中間能夠放入物品,就像 Minecraft 的物品展示框一樣。 依照配方放入物品後對鍊成陣按右鍵啟動鍊成。
     Like  Bookmark
  • 好吧,這兩件事完全是獨立事件,但是放在一起講就多了幾分戲劇性,而且 24 小時內解完兩個人生成就也是事實。 雖然稱不上資深、剋金或是忠實用戶,但是憑借著我對 Markdown 的信仰混入了 HackMD 的線下小聚。在自我介紹中,發現 16 個與會者包含我在內就有 3 個 Linux 使用者,這種同溫層空氣不禁讓我舒適了起來(?) 而在其他人自我介紹的過程中,發現有人提到用 Markdown 紀錄法規,這對我而言無疑是一個千載難逢的機會,在主議程結束後的自由時間我當然湊了過去聊天,並展示我寫的簡易 Markdown 法規編輯器,現場反應熱烈的程度是出乎我意料之外的,連開發團隊的工程師都脫口而出「哇!好漂亮」;當然我知道這個轉換過程是基於十分有限的條件,也就是十分可控的,跟他實際上遇到的輸出條件有著巨大的落差,但是聽到稱讚還是很開心。那天晚上我因為現實世界的萍水相逢而獲得了 3 顆 Github 星星。 這個 Markdown 撰寫的法規轉換成 ODT 的實作我在 2020 年二月的時候就以 PHP 完成了,無奈當時並沒有能力架設一個穩定的伺服器與一個完整的服務來調用這項功能。到了 2021 年我用 Javascript 重寫了一遍、給它一個 GUI 並在五月份的時候用 Github 架設靜態服務。後來也在網路上以及幾次線下的技術性質小聚介紹這個 side project,大多數的反應當然是不明覺厲。畢竟對法規與 Markdown 都有點了解的人,應該可以想像這兩個東西的圈子幾乎不存在交集。因為在場的都是 Markdown 使用者(與相關開發者 XD),一群看官讀懂這麼一個小魔術值得驚奇的地方,以及被一個相對資深的工程師在面前翻 source code ,真的是一段很愉快的經驗。 當晚我興奮的幾乎難以入眠,不過劇本似乎尚未就此結束,24 小時之內還有另一段故事等著我。
     Like 1 Bookmark
  • 關於「巨靈」,最直接的例子就是「國家」,最貼切的形象就是「巨人」,然而國家一詞對部份人而言過於抽象,或已經被不同的意義所佔據;而巨人又不夠正確,因為巨靈雖為人類造物卻又已經成為非人之物。所以讓我在將巨靈形容成更具體或更形象的比喻之前,先從構成的它的基礎說起吧! 原始自由狀態 有一個思想實驗是這樣的: 想像一個自然環境,物理法則乃最高且唯一的規則,然後這個環境中有兩個以上的人,每個人都具有從物理上摧毀另外一個人的自由,因為這是物理法則上容許的事實,也是所有人都各自持有傷害或消滅其他人的自由(權利)。 在這個階段,生命是無法被保障的,每個人時時刻刻都活在被傷害或摧毀的恐懼之中。 而這時其中一個人向另外一個人提出「我們不要互相攻擊」的提議,並且獲得同意了,假設雙方都願意遵守約定,這時契約成立,並且同時創造了權利與義務,對甲方(暫稱)而言,權利就是不受到乙方(暫稱)的攻擊,而義務就是不得攻擊乙方,反過來對乙方來說亦同。這時對雙方而言,都脫離了原始自由狀態,他們不再持有完全的自由,而背負了一定程度的限制(義務)。
     Like 2 Bookmark
  • 民國一百零七年九月十三日位於跨領域微創特區之自主學習社群成立大會訂定 民國一百零七年十二月二十五日第1屆第2次社群會議修正第15條 民國一百一十年八月十四日第5屆第1次臨時社群會議修正名稱及第1、2、5、8、27條,刪除第4條 總則 定位 本組織全名為「追夢者自主學習社群」(以下簡稱追夢者自主學習社群或本社群),為中部創新自造教育基地之學生自治組織。 服務對象
     Like  Bookmark
  • 作為一個 Minecraft 玩家,同時也是對人工智慧有興趣的攻城屍,最近發現了一個新玩具:Project Malmo。以 Minecraft 這種大眾化的遊戲與近幾年特別熱門的人工智慧而言;這個項目的曝光度和資料未免也太少了吧!?雖然不知道多久之後會棄坑,不過就把手邊掌握的資訊整理一下並分享出來吧!ᕕ ( ᐛ ) ᕗ 發展 源自於微軟內部一個名叫 Project AIX 的項目[^project-aix],於 2016 年開源釋出;並被命名為 Project Malmo。 微軟分別於 2017 (Project Malmo Collaborative AI Challenge ) 和 2018 (MARLO 2018) 年舉辦的人工智慧競賽就是基於該框架進行的。 Carnegie Mellon 大學的研究團隊利用該框架開發了 MineRL 框架[^MineRL],這促成了日後在 NeurIPS 2019 舉辦的 MineRL 鑽石挑戰 (MineRL Competition 2019),而該競賽已經於今年 (2021) 進入了第三屆,並已經開始了第一階段的賽事。 架構
     Like  Bookmark
  • 第一階段:一般規則 在這個階段中,團隊最多可以有六名成員,以下為參賽流程: 在 AICrowd 競賽網站上註冊並使用下列資料。 或者,可以使用競賽的頁面上找到 "Create Team" 的按鈕組建隊伍(必須登入才能創建隊伍)。 用於運行競賽任務環境的入門代碼。 另請參閱 AICrowd 上的 "Notebooks" 部分。 主辦方提供的基本實作。 人類玩家的資料集 主辦方用來評分參賽隊伍提交模型時使用的 Docker image 和入門模板。 支援主流的付費雲端運算服務,用於測試參賽者提交的樣本效率。
     Like  Bookmark
  • 以下規則指出了整個比賽的精神,任何被發現違反規則的提交都可能被主辦方註銷參賽資格。 一般規則 以下規則適用於兩種組別(Intro 組和 Research 組)。 MineRL Diamond 挑戰的參賽作品必須是「公開的」。 團隊將被期望透露他們方法的大部分細節,包括原始碼(對於等待出版的刊物可能會有特殊的例外)。 對於有資格進入最後階段賽程(Intro 組第一階段,Research 組第二階段)的團隊,每個成員必須滿足以下所有條件: 年滿 18 歲且至少達到居住地的成年年齡 不居住在受美國出口法規約束的任何地區或國家
     Like  Bookmark
  • 熵—衡量萬物混亂程度的物理量...嗎? 熵 (Entropy) 具有很多種表述方式,比如: 克勞修斯熵 $d S = \frac{\delta q}{T}$ 波滋曼熵 $S = k \ln W$ 資訊熵(夏農熵) $S = \log_2 2^N = N$ 有一種熵的詮釋與「狀態所包含的排列數」相關,波滋曼熵與夏農熵便是如此。以波滋曼熵為例,當中的 W 所代表的意義是微觀物理的狀態數[^Boltzmann's_entropy_formula]: $$
     Like  Bookmark
  • 問題 Docker container 無法對外連線,執行 ping 指令,會得到 100% packet loss: $ docker run --rm -it alpine ping -c4 8.8.8.8 4 packets transmitted, 0 received, 100% packet loss, time 0ms 執行 traceroute 指令,則會發現封包不知道迷走到哪裡去了: 經過爬文有找到幾個苦主也有遇到類似的問題[^similar-1][^similar-2],方向大致上是虛擬機環境下的 iptables 設定造成。
     Like  Bookmark
  • 自從看完電影「天能」之後,「能否弄出跟穿越時空有關遊戲?」的想法就一直在我心裡揮之不去。後來概念慢慢成型,即時戰略遊戲、超級武器、因果修正等等概念慢慢連線在一起,整個概念也逐漸清晰,不過依然停留在一個基本遊戲機制「可以摧毀敵人過去的建築修改因果律」,而沒有具體細節。直到前幾天 (2021-04-28) 洗澡的時候突然靈感一來,想出幾個自圓其說的背景設定以及機制的細節讓遊戲變得豐富。 設定 整個遊戲的背景設定圍繞在這三個名詞: 引力子對撞暨宏觀穿隧發生器 (Graviton Colliding and Macro Tunnelling Generator) 一種能夠將物體傳送到過去的裝置,體積龐大,基本形同建築物。 時空炸彈
     Like  Bookmark
  • V-USB 是透過軟體的方式使 Atmel 的 AVR® 系列微處理器作為 USB 裝置工作。本範例是使用該函式庫內提供的滑鼠範例,成功的話,將電路接上電腦就會讓滑鼠轉圈圈囉。 Required 為了編譯原始碼,需要一些工具,雖然這些工具 Arduino IDE 內都有, 不過還是透過安裝套件省去設定 bin (執行檔)和 include (標頭檔)的麻煩。 sudo apt install gcc-avr avr-libc avrdude make Download 先至 V-USB 的網站下載程式碼或是直接使用指令下載:
     Like  Bookmark
  • 作品名稱:A4作業 這是一篇文章會簡單介紹我將七大晶系模型具現化成一個實體創作。 不過製作過程很倉促(期限一週,更別提我還有24堂課要上), 所以很多步驟忘記一一拍照,所以沒有完整的製作過程還請見諒。 七大晶系是什麼?
     Like 1 Bookmark
  • 前言 一切的命題源自於:我想創造一個多行星的 Voxel 宇宙。並且我不想使用 Minecrat 那種透過傳送點連接不同世界的方式 (Stargate SG-1 Style 宇宙),也就是我必須建立 Voxel World 的行星型態,並且漂浮在宇宙之中。當然我也找了一些參考資料。 型態 Starmade 這種模式的行星不具有對稱性,無法發揮「宇宙沒有上下之分」的特性。 常見的 Minecraft 美術圖
     Like  Bookmark