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

依值型別 (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 的教學的回饋,所以就用該教學來編譯成華語,希望能夠推動大家對這個協議的興趣。

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

身心健康和夢想誰輕誰重

 1  身心健康平安和不一定達成的夢想相比是更重要的。
     1.1  身心健康是每天的事,夢想是未來的事
         1.1.1  人每天都要生活,而生活品質和生理心靈相關
         1.1.2  體力的健康影響意志力和專注力的強韌性。
             1.1.2.1  專注力不好,心靈的能力會上升
             1.1.2.2  生活需要面對風浪,風浪需要強韌的心靈
     1.2  夢想不一定會追得到,但需要花很多心力
         1.2.1  所謂的夢想,這裏指自己的追求
         1.2.2  追求是不一定達成的,要達成往往需要付出代價
             1.2.2.1  包含以下興趣嗜好:
                 1.2.2.1.1  寫一個軟體專案
                 1.2.2.1.2  寫小說
                 1.2.2.1.3  學外語
                 1.2.2.1.4  甚至創業、副業、寫音樂、練運動技能
             1.2.2.2  這些都需要耗費腦力和體力
     1.3  人的能力是有限的
         1.3.1  英才俊傑一天擁有的時間也不比同時代的人多
         1.3.2  體力和腦力會隨時間衰退
         1.3.3  體力和腦力需要休養
         1.3.4  如果過度操勞會傷害人力
     1.4  夢想有時候只是一時的妄想
         1.4.1  不代表所有夢想都是妄想
         1.4.2  但也可能是一時衝動
             1.4.2.1  如果知道是一時衝動前栽入太多,會無謂耗費精力
             1.4.2.2  知道是一時衝動的話,那無疑是投注沉沒成本
                 1.4.2.2.1  人心常常對沉沒的成本執着
     1.5  身心不健康會影響長遠的一生
         1.5.1  人會老,身心不健康很可能會讓人生不如死
             1.5.1.1  現在公衛水準會讓人活很久
             1.5.1.2  但如果自己早衰,早面對疾病,會讓人很痛苦
             1.5.1.3  加上現實四面而來的壓力可能讓人陷入無盡深淵
                 1.5.1.3.1  身心不健康可能讓人陷入成癮、神經衰弱等等
                 1.5.1.3.2  上述不良狀況會讓人身心更不健康,人生更受挫折
                 1.5.1.3.3  從而陷入惡性循環
         1.5.2  許多慢性疾病和積勞成疾有關
             1.5.2.1  除了上述的成癮和神經衰弱問題,還有身體疾病
             1.5.2.2  慢性疾病和年老失能有關
             1.5.2.3  如果自己的身心獲得足夠的充電和保養,那陷入疾病會比較低
     1.6  注意自己的身體心靈
         1.6.1  自己的夢想也是給心靈的滿足
         1.6.2  但是自我實現的根基是身心
         1.6.3  這三個很重要:吃得下飯、睡得下去、笑得出來