InterNetNews (INN) 在測試 Git

在 mailing list 上看到「Test Git repository for INN」這個消息,看起來 InterNetNews 也在嘗試換到 Git 上了,目前是選擇用 GitHub,在「InterNetNews/inn」這邊。

整個從 CVS 換到 Subversion 再到現在開始進入 Git 的環境了。

沒有全部自己搞的理由也有提到,主要就是免費與方便,然後社群也已經知道 GitHub 是什麼了:

GitHub was chosen because it's (a) free (as in price), (b) widely understood and used already, and (c) easy for me to set up. I know some folks have reservations about GitHub because it's not free software, and I understand, but I don't think we're committing heavily to their platform (everyone who has a clone of the Git repository has all the important data and can move it elsewhere), and other things like GitLab are only open core anyway. Hosting everything on 100% free software (depending on the choice of free software) loses us some useful features (I plan to set up GitHub Actions for CI) and requires more resources that I don't really have to spend on it. That said, everyone is certainly welcome to mirror the Git repository elsewhere if they want.

之後會跑 CI,算是這些年軟體工程必備的工具了...

架了一台 News Server

前陣子跟朋友聊天的時候,才想到好像沒有公開提這件事情...

學術網路上的 news server 似乎都掛差不多了,就花了一些時間用 INN 架了一台 news server,然後找了兩個 peering 對接,給自己的 BBS 站台用:「newsfeed.hasname.com」。

一般目前比較常用的是 news.aioe.org,不過有限制每天最多只能發 40 則:

In order to avoid mass abuses, every IP address is authorized to post no more than 40 messages per day.

有架設 BBS 站又想要弄轉信的朋友可以來戳一下,需要有固定 IP address 就是了。

Google Groups 把 comp.lang.c 給禁了...

Hacker News Daily 上看到的,Google Groupscomp.lang.c 給禁了,連到 https://groups.google.com/g/comp.lang.c 可以看到無法使用的訊息:

警告:內容已遭禁止
comp.lang.c 已被認定為包含垃圾內容、惡意軟體或其他惡意內容。

如要進一步瞭解 Google 網路論壇的內容政策,請參閱這篇關於濫用本服務的說明中心文章,以及我們的《服務條款》。

這樣連歷史資料都看不到了...

tw.bbs.* 的轉信

看到 gugod 最近在玩 Usenet:「玩 Usenet Newsgroup」,把 tw.bbs.talk 的 innbbsd 設定給設起來,結果發現 subject 的部份 innbbsd 有把 UTF-8 轉成 BIG5 (記得是因為標題用 MIME-B 很普及,所以很早就支援了),但內文就沒有轉碼了,也許得 patch innbbsd 讓他過 iconv 轉碼?

spam 的部份如同 gugod 提到的也少很多了,看起來是個老人聊天的好地方...

另外在 debug 過程中因為直接讀 header & body,看到了 Cancel-Lock 這個 header,查了一下發現是個 2018 年通過的新標準 (RFC 8315):「Cancel-Locks in Netnews Articles」,不過從維基百科的說明,看起來沒有什麼人支援:

Cancel-lock is much simpler, but neither commonly accepted, nor implemented in popular news servers and newsreaders.

可能會先用其他方式去聊天 (tin?),長期的話再來看看要怎麼搭...

OpenVZ 裡的 Docker

前幾天在公司弄 GitLabGitLab CI,前者光跑起來都還沒動他就先吃 1.5GB 左右的記憶體,動兩下就 2.5GB 了。後者的 CI 隨著使用的情況而改變,不過最少丟個 1GB 差不多...

公司用的機器當然是還好,先簡單弄一台 t3a.medium (4GB) 跑 GitLab 主體,然後另外一台 t3a.small (2GB) 跑 CI 的 Runner,真的有需要的時候可以再往上拉...

不過自己也要弄的時候就會考慮到成本問題,畢竟也只有自己一個人用,如果在 Vultr 上面租類似的機器就要 USD$30/month,其他的 KVM VPS 也都差不多價錢。

OpenVZ 的 VPS 主機一向都比 KVM 的 VPS 便宜不少,但有不少限制。其中一個限制就是沒辦法跑 Docker,這樣就沒辦法把 GitLab CI 的 Runner 跑上去了 (有其他模式可以跑,但我這邊偏好用 Docker)。

查了一下資料 (因為記得 OpenVZ 有計畫要支援 Docker),發現 OpenVZ 7 已經支援 Docker 了,而且在官方文件上面也都已經有說明了:「10.3. Setting Up Docker in Virtuozzo Containers」、「Docker inside CT vz7」。

然後順著找一下,發現市場上也已經有 OpenVZ 7 的 VPS,而且會宣傳支援 Docker,試著租一個月也確認可以跑,這樣代表之後又有更多選項啦...

懷舊技術系列...

在「Stopping The Internet Of Noise - A Useful Internet Back Again」這邊看到作者在思考現在的工具有很多干擾 (像是 Social Network 這樣的網站),反倒是傳統的一些技術與工具更專注在解決問題本身。

像是 Usenet

IRC:

RSS reader:

有種考古懷舊系列的感覺...

題外化,看到他用的是 BazQux 這個 RSS reader,來測試看看感覺如何,如果可以的話就從 Feedly 換過去好了...

Group.NCTU.edu.tw (2003~2013)

2003 年寫的 Group.NCTU.edu.tw,在歷經 10 年後終於歸西:

2003 年時要跨 BBS 站轉信,除了直接 innbbsd 對接外,另外一種方式是架設 News Server,讓各站透過 News Server 轉信。前者用在轉信站比較少的情境下 (因為是 O(n^2) 的設定成本),後者則是用在轉信站比較多的時候 (是 O(n) 的設定成本)。

當時幾個大站都有自己的 News Server 可以提供這項服務,包括 Ptt 的 Wrap,KKCity 的 news.kkcity.com.tw,以及無名小站 BBS 的 News Server。但即使如此,這些站台都是人工設定,每設定一次轉信要花不少時間。

當時剛好舊的 ccreader.nctu.edu.tw 退役 (印象中是一台 Pentium III 450 與 512MB RAM 的機器,掛著 10 顆各 4.3GB 的 SCSI 硬碟),就跟 cschen 要了一個 IP 與 domain,把原來的 ccreader 重新整理後,用 PHP 寫網頁的部份,Perl 拿來處理後端對 INN 的操作。而使用條款則是自己胡亂寫一通後就上線了...

上線後除了我自己的站丟上去用以外,我就開始找人用。因為當時 Ptt 的 Wrap 常常掛掉,就跑去找 in2 講,馬上就搬過來了:


原來在 SYSOP 板的那篇找不到了,只找到這篇...

過沒多久我就跑去找簡志宇問他要不要把無名的轉信 policy 也換過來。然後隔年我去 KKCity 打工的時候也說服當時站方把 news.kkcity.com.tw 凍結。

到這邊之後,就很少看到台灣還有在自己架 News Server 了... (掩面)

之後 Group.NCTU.edu.tw 再加上 RSS 的功能 (後來爛掉了),以及加上 e-mail to usenet 功能 (這功能我自己一直在用,所以沒讓他爛掉),開發完這兩個功能後也就丟著沒開發了。最多就是想到的時候上去更新 OS & ports。

後來出社會工作,再加上 twbbs.org 商業化其實我不是很開心。整個系統放著 10 顆 SCSI 硬碟跑 RAID0,雖然有備份,但其實已經沒打算要在上面弄東西了,只是沒想到最後居然是掛在 SCSI 卡上面... 這批硬碟除了這十年外,還得加上先前 ccreader 的使用,差不多十五年還沒壞,早期的硬碟真的很神猛...

掛掉後有人問我為什麼不把備份資料弄一弄再開站,除了上面講的原因外,現在交大的環境也不適合再弄這樣的服務了... 如果要繼續服務的話我希望在外面重新寫一份,而不是拿原來的資料與架構繼續做。

最後,還是得感謝當年交大計中願意提供資源讓架設這個服務。當年我從上面學到很多東西,不僅僅是程式而已,還包括第一線客服並且了解使用者想要什麼。

INN 裡 mailpost 需要修正的部份...

上個禮拜把 Group.NCTU.edu.tw 遠端升級到 7.4-RELEASE (從 6.4-STABLE),但有人寫信反應,從 Ptt 透過信件貼到板上會失敗,找不到之前 patch 的重點,只好從頭開始一個一個解,總算是解決了:

  • 當信件內沒有 Date header 時,mailpost 會送出錯誤的 Date 欄位。目前的解法是直接不送 Date 欄位。
  • 當同一封信件寄到不同信箱時 Message-ID 會相同,不能直接帶入 newsgroup 中。目前的解法是無視信件內的 Message-ID,自己生一個。

現在這樣應該是正常了...

話說 Group.NCTU.edu.tw 最近被提說要換機器...

計中寫信來問 Group.NCTU.edu.tw 那台機器有點舊了,要不要換機器...

連進去看一下,這系統好舊啊... XD

CPU: Intel Celeron (601.37-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x68a Stepping = 10
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory = 520081408 (495 MB)
avail memory = 495312896 (472 MB)

換機器的時候順便來重寫吧,有些 plan 想做... 其中最想做的就是抽走 twbbs.org。

當初會用 twbbs.org 當其中一道 backend 的時候是因為當時 twbbs.org 是由 Ptt 的人代為管理,結果現在亂七八糟的,早點抽掉會比較好...

Pacman 的規劃

玩了幾天 Pacman,整理一些資料...

安裝完成後,預設可以使用的 package repository 可以在 /etc/pacman.conf 內看到,包括 core (目前約 340 個)、extra (~4500),以及 community (~3400)。

另外有幾兩個測試性質的,預設是關閉的。一個是 testing,另外一個是 community-testing,裡面的量都不多。

除了這些以外,使用者自己也可以提供新的套件,官方有提供 AUR (也就是 unsupported),任何人都可以註冊並且上傳,也因此所以有可能會包括有安全問題的 code。所以有 TU (Trusted Users) 的制度,當一個 package 使用的人夠多 (在「AUR Trusted User Guidelines」有說明),而且 TU 確認沒問題後就會 update 到 community 內。

要安裝 unsupported 的軟體必須必須自己下載 AUR 的 source tarball (裡面有 PKGBUILD 以及其他設定),並且確認沒有 malicious code 後再用 makepkg 安裝。

另外 Gmane 有收 ArchLinuxmailing list,習慣用 BBS 讀的人可以抓下來看。