資訊

門口埕記事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,以下要注意:

ActivityPub 協定的基本教學(上)

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

序言

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

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

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

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

好用的工具,使用於工作上

原載於PTT某板

  • 心智圖是好東西:

當您要想一篇新聞稿的時候,最好可以先擬大綱,增加後續送核的速度。然後細節可以用
開分支來寫。我個人建議用可以快速鍵操作的 FreeMind。

  • 有些項目符號或是不必要的換行,可以用 Regex101,佐以基礎的正規表達式(比如
    以數字後加點,代替數字項目符號的括號 ( )),可以用這個表達式:

修改前 regex 語法:

 ([)]

修改後 regex 語法:
\1.

  • 除非學形碼輸入法,建議可以使用自定義快速鍵+無調注音和用斷頭注音文輸入的
    程式,這樣不太會浪費時間在出入常用辭的調號。

  • 如果電腦是 Windows 10,可以用 WSL2 安裝 Linux 子系統的話,可以用 vim -d
    比較兩個純文字檔的差異,這樣重新送核能夠快速檢視問題是否修改畢。

於 Windows 10 讓 Rust 專案使用 Cairo 和 Harfbuzz函式庫

Cargo.toml 中的 Dependencies 插入如(版本請依最新版而定):

[dependencies]
harfbuzz_rs = "1.2.0"
cairo-rs = "0.14.1"
glib = "0.14.2"

安裝 MSYS2,用該程式的終端機安裝下列程式:

pacman -Sy mingw-w64-i686-cairo mingw-w64-i686-glib2 mingw-w64-i686-harfbuzz

Windows 10 的控制台的「系統>進階系統設定」的「環境變數」的 Path(路徑)附加

C:\msys64\usr\bin</pre>

在編譯命令列中 Powershell 加入這句

$env:PKG_CONFIG_PATH+="C:\msys64\mingw32\lib\pkgconfig"

cargo build 應該就沒問題了。

Clochur 玩具語言直譯器以及編輯器0.0.1發佈

(最新更新:2021-07-10)

介紹

這個軟體是一個玩具語言的直譯器以及編輯器,使用者可以在以PyQt5的Qscintilla函式庫撰寫的編輯器中,使用一種以方括號[]區隔語法邊界的類似LISP的語言,透過用Python3寫的直譯器轉換成SILE排版引擎(類似LaTeX)能夠讀得懂的XML語言,再用SILE轉換成.pdf。

雖然講得有點複雜,總之就是一個可以從LISP產出 pdf 的玩具語言和編輯器。但是不可能像LaTeX和SILE那麼齊全就是了,就算有巨集擴展。

論小說平台去中心化的可能性

(首於2021-04-24張貼在Episode.cc)

  最近本站(註:Episode.cc)某個事件,雖然站長表示已暫時撤掉針對使用內容過多而收費的政策,但已經引起許多作者的爭論。有些人認為文手是文學網站的資產,是吸引這個站發展人氣的原因,不應該本站成長了,就因伺服器不堪負荷而拿作者開刀。但是也有些人認為,為了維護這個站點的未來營運,收營運費是合理的。

愛爾蘭語的動詞變化產生器 demo

做了一個愛爾蘭語變化的產生器,是規則動詞(第一類動詞和第二類動詞)的變化產生器,不含動名詞和過去分詞。也是 TypeScript 的練習。

語言特性

(最新更新:2021-02-08)
有關之前想做一個程式語言玩具語言的打算,現在想想,如果要實現程式語言本體的話,可能會比較複雜。但是假設先實做語言特性或是編譯器特性的話,至少這樣的目標比較簡單。未來如果有時間要實做新的語言,可能也會比較好做,至少有個參考。

不然我這邊先列一下語言特性相關的 script 好了。

解決 Linux Mint 19 中 Firefox 顯示點陣字體時出現短豎線的問題

免責聲明:以下僅供參考,本文作者不為使用者執行以下內容之後果負擔任何責任。
感謝 zhangboyang-id 提供 patch。

最近更新到 Linux Mint 19(Ubuntu 18.04 的衍生版本),發現到顯示點陣字形的時候,字之間會有|豎線,查了一下,中國那邊的論壇傳出了災情(火狐中國相關討論Ubuntu-cn 相關討論)。雖然有人在 Launchpad 提交了 bug 的 patch,但好像 Ubuntu 還沒有接受更新。唯一的 workaround 就是用 apt source 把原碼抓下來自己改,然後再重新編譯成 package 覆蓋系統的新版本。