在 A2hosting 用 AppImage deploy Rust rocket 這個 framework 的 app

Rust 的 Rocket 是一個後端框架 (framework)。除了有靜態型別語言的好處(比如減少runtime error)外,還有一個binary檔包全部,免除裝其他太多 library 或是框架 library 的問題。

因為自己的是網路租用的A2 site hosting 空間(Linux),想說為了物盡其用,所以想要把產生的 web app binary 放在上面執行,但想當然爾,還是缺相依性(空間提供的函式庫版本太舊)。後來想,既然 AppImage 可以包一個執行檔的諸多相依軟體或是函式庫,為何不用之包呢?

以下以放在 /path/to/exampleapp 這個 app 為例,講述我 deploy 的方法。

LaTeX斷行演算法

以下內容係參考網路上找到的LaTeX斷行演算法,加上一些修改而成。

使用程式筆記本的.ipynb檔撰寫,語言是OCaml,授權為MIT License。載點:

以下是程式筆記本檔內文:

1
2
3
4
5
(*有關於LaTeX使用於斷行的演算法

首先我們要制定一個字元(包含斷行後新生的連字號,以及空白)在斷行前、斷行後的寬度

*)

一個外行對依值型別的理解

依值型別 (dependent type) 是型別理論 (type theory) 的重要概念,也是FP的進階概念。因為概念很抽象,而且還要會點型別概念,方好入手。雖此係函數式程式語言的重要概念,但是許多程式人,會仰之彌高,進而生畏,降低學習意願,遑論相關係的定理證明了。

身為一個外行,之前筆者亦如是。對型別理論感到興趣之際,面對依值型別還是一頭霧水,不知何以理解。然最近稍理解些,所以做了這份筆記。

但是因為內文牽涉許多數學符號,為利閱讀,以Typst排版軟體製成PDF版:[下載連結]

個人wiki最近更新(2023年4-6月)

個人wiki最近更新(2023年1-3月)

(最新更新:20230701)

因為我目前也將所思和所整理的放在網絡上,列出近期新增頁面以供參考:

門口埕記事1:用樹莓派 3 運作 Pleroma 要三思

對不起Mn̂g-kháu-tiânn(門口埕)最近暫停服務,於 2023-04-10 2:50am 前後重新啟用。

以下是關於從今年三月下旬許開始暫停服務的原因與 Pleroma 重灌的說明。

對於想要經營自己的 Pleroma 站臺,卻不想看底下的說明的,請記得:

千萬不要在 Raspberry Pi 3 運作連接 Fediverse relay 的 Pleroma 站臺!!

Tshian-bān M̄-THANG tī Raspberry Pi 3 pháng ū tsiap Fediverse relay–ê Pleroma tsām!!

On a Raspberry Pi 3, NEVER operate a Pleroma instance connected with any relay!!

很重要,用三語各說一次!


故障原因是此站臺,從大概三月底之前就開始有負載過重的問題,時常自動重開,查詢或是送出 request 屢屢出現錯誤,後來用各種調試 PostgreSQL 還是解決不了(就算標榜輕量,還是不用 SQLite),我記得連廢資料清除的 vacuum 類 SQL 指令都用了。

後來受不了負載問題,決定重裝,但是 dump 出來的資料庫二進位檔案,兩次 dump 結果都不一樣(= =),因此受不了而使用純文字指令匯出方式備份,結果匯出了超過 1G 的指令(= =”),就算上週末把資料庫砍掉重置,把大量的指令匯入進去,結果花了好幾個小時,使我懷疑到底是不是故障了。現在已經匯入資料庫完畢了,但還需要觀察後續到底有沒有問題。

究其原因可能問題,係因為連接 relay(中繼轉訊伺服器)所致。因為 Pleroma 站臺除非有大量的使用者,否則需要 relay 才能看到大量其他站外有趣的內容。但是因為往往會從 relay 送來大量外站的資訊,就算這個站臺目前只有一個人(除了管理員賬戶以外)是主要使用者,fo 的人也沒有很多,仍然還是會造成資料庫和 Pleroma 軟體需要頻繁處理,難以重負。

就算是重整 PostgreSQL 資料庫內容,vacuum 就花很多時間。感覺這種情況調資料庫軟體參數也不一定有效。

總之,如果要自己經營站臺,要花好多時間,要經營相依軟體很多且需要繁雜設定時,更麻煩,若是機器效能不好,更費時。除非對資料庫或是網站營運知識,包含資料庫設定,有被虐狂似的渴求。

先這樣試看看吧。希望麻煩短期內不要來了。如果真的不行就需要換伺服器到迷你機殼(如果空間夠則另做打算),並大升級硬體性能。我已經浪費了許多寶貴的業餘時間在這上面,人生苦短,已經這把年紀,不該這樣把可支配時間當太平洋的海水一樣揮霍。

如果要重灌 Pleroma,以下要注意:

2022 回顧

個人的情況:

  • 學了一些管理的方法,完成一些活動
  • 買了一堆不需用的東西:法語教材(未讀)、電腦科學教材、鋼筆
  • 體重大幅上升,體力更不好,感覺比較嗜吃。
  • 負面情緒問題較有改善
  • 開始種菜
  • 投稿文學月刊、創作歌曲
  • 遷站(web hosting)
  • SNS Pleroma 架設
  • 很多書沒讀
  • 放棄愛爾蘭語,法語尚未正式入坑
  • 買了筆記
  • 股票下跌

ActivityPub 協定的基本教學(上)

(最近更新:2022-11-23,勘誤)

序言

隨着馬斯克入主推特後對內激進整飭的作爲,許多人想到避難目標 Mastodon。但是也不一定要入駐 Mastodon,因為 Mastodon 是利用去中心化 ActivityPub 協定跨伺服器傳遞訊息的,所以只要支援 ActivityPub 的 SNS 平臺,比如 Pleroma、MissKey 都可以使用。

另外鑑於有些人反映 Mastodon 的效率太慢,其實也可以自己製作支援 ActivityPub 的微網誌服務軟體。我之前本來想要做一組SNS,但是發現這個 side-project 會嚴重侵蝕自己的作息控制和身心健康,所以擱置了。

但是鑑於這個去中心化協定獲得的關注度很高,而網路上幾乎沒有華語的教學,從而沒有辦法百花齊放,推進這個技術的生態圈,洵為可惜,加上自己曾經參與一篇 Timmot 的教學的回饋,所以就用該教學來編譯成華語,希望能夠推動大家對這個協議的興趣。

如果這個教學有錯誤處請告訴我。另筆者不負責參考本教學執行的後果,還請注意。