新版 PttBBS 用到的 flatbuffers

留個記錄上後面的人知道怎麼編...

我自己有用 PttBBS 架個站自己丟一些東西,本來是想要修改發文時延遲一秒的 sleep(1); 保護 (反正整個站也只有我自己用,patch 在 Remove sleep(1) protection. 這邊),結果升級的過程中間發現 PttBBS 上個月引入了 Google 家的 flatbuffers,就編不過去了...

找了一下找到給 Ubuntu 18.04 (bionic) 用的 PPA,是 1.11 版:「flatbuffers」,裝起來之後發現用了 --filename-suffix 語法,這個功能在 1.12 才被引入:「Added --filename-suffix and --filename-ext to flatc」。

另外就算故意拿掉 --filename-suffix,看起來 fbs 檔內也有用到 1.12 才吃的格式,所以還是照「How to install flatc and flatbuffers on linux ubuntu」這邊講的,乖乖的自己編了一個 flatc 出來用。

編好以後在 ~/.profile 裡面設定 PATH,讓編譯時可以吃到:

export PATH="${HOME}/flatbuffers:${PATH}"

然後再回去 pmake all 應該就會過了,我這邊是遇到記憶體吃爆 OOM 的情況,另外加 swapfile 就解決了...

處理很久前用 OpenSSL 加密的備份資料

因為想要翻一些舊的文章 (小說),想把以前 BBS 的備份拉出來看看裡面有沒有,結果發現 OpenSSL 解半天都解不開,還跑去玩了 bruteforce-salted-openssl 這個專案:

Try to find the password of a file that was encrypted with the 'openssl' command.

後來也是因為這個專案提醒,發現 openssl enc 指令在 OpenSSL 1.0.x (以及之前) 預設是用 MD5 當 digest algorithm,而 1.1.x 換成了 SHA-256,而我的備份資料應該是在 0.9.x 的年代就生出來了...

指定 -md md5 後就正常解出來了:

openssl enc -bf -d -md md5 -in ooxx.tar.gz.bf -out ooxx.tar.gz

另外一個收穫是 CPU 溫度降了不少:因為跑 bruteforce-salted-openssl 的時候 CPU 到 80 度,感覺撞到安全值卡在 4.0Ghz,所以就把 CPU 電壓降了 0.1V,看起來溫度低了不少 (少了五度),但跑起來還是 4.0Ghz...

Ptt 開始限縮 Telnet 協定連線方式

Ptt 開始關掉一些沒有加密的 Telnet 登入方式:「[公告] 正式支援Websocket連線/telnet連接埠調整」。

本來有 Telnet 很多 Port 可以連,現在限制到 Port 23:

此外, PTT 將會逐漸關閉無加密的 telnet 連線方式.
PTT 預計於 2020/03/01 起對 telnet 連接埠作以下調整.

到 2020/02/29 止 telnet 連接埠: 23, 443, 3000-3010, 8888
從 2020/03/01 起 telnet 連接埠: 23

同時也宣布扶正 WebSocket 連線方式:

經過一段時間的測試與參數微調後,
Websocket 已經足以支撐 PTT 的連線量,
PTT 即日起將 Websocket 列入正式支援的連線方式.

完全關閉不知道會是什麼時候,也許 2021 年?另外 Linux 下好像還是只有 SSH client 堪用,Websocket 還是只能透過瀏覽器操作...

Ptt 公告使用安全連線

Ptt 官方公告,建議使用安全連線:「[公告] 請使用安全的連線方式連線本站」。

目前 Ptt 有三種方式可以連線,第一種是 Telnet,這是最古老,支援度最廣泛,但沒有加密的協定。

第二種是 SSH,算是蠻早就支援的安全協定 (至少是 2006,依照「[問題] SSH連接是否變換方式了﹖」這篇),屬於 Trust on first use 的方式,不過在有 DNSSEC 的情況下可以搭配 SSHFP record 避免第一次連線的信任問題。

最後一種登入方式也是安全協定,透過 2011 年定義出來的 WebSocket 連線,這個方法在 Let's Encrypt 盛行後可以透過瀏覽器內的 CA 驗證連線的安全性。

可以理解 SSH 吃的資源比較多,不過在 Linux command line 下好像還沒有什麼比較堪用的 WebSocket 指令可以連線... 而且我記得 Ptt 的 WebSockets 還是使用 BIG5 吧?當時在寫小工具的時候發現的...

reddit 與 4chan 在新聞網路上的獨特性

在「Study finds fringe communities on Reddit and 4chan have high influence on flow of alternative news to Twitter」這邊看到的:

After analyzing millions of posts containing mainstream and alternative news shared on Twitter, Reddit and 4chan, Jeremy Blackburn, Ph.D., and collaborators found that alt-right communities within 4chan, an image-based discussion forum where users are anonymous, and Reddit, a social news aggregator where users vote up or down on posts, have a surprisingly large influence on Twitter.

依照對 reddit4chan 的描述,這兩個媒體對 Twitter 的影響,會讓我聯想到在台灣 Ptt 對各新聞媒體的影響:Ptt 是很多新聞的起點?

"Based on our findings, these smaller, fringe communities on Reddit and 4chan serve as an incubation chamber for a lot of information," said Blackburn, assistant professor of computer science in the UAB College of Arts and Sciences. "The content and talking points are refined until they finally break free and make it to larger, more mainstream communities."

真的研究應該可以看出 Ptt 的影響力?

把 Ptt 網頁版 Imgur 的圖片換回來...

Ptt 網頁版不知道什麼時候開始把 Imgur 的圖片變成 embed 版本了,圖很小又有留白一堆東西,看起來不太舒服...

剛剛寫了個 Greasemonkey script 換回來:「gslin/ptt-imgur-cleaner-gm」。已經有安裝 Userscript 管理軟體的,可以在 OpenUserJS 上安裝:「Ptt Imgur Cleaner」。

程式做幾件事情,一件是加上 meta tag 不要送 Referrer,然後用圖片換掉 Imgur 產生出來的 iframe,另外一個是把 .richcontentmax-width 設為 100%。

這樣看 Ptt 的文章應該會方便一些...

Update:結果有朋友說當初是因為被 Imgur 擋掉所以才換成 embed 的... (大概是量太大的關係)

Yuren Ju 的 ptt redirect:從轉載網站自動轉回 Ptt 原文

Twitter 上看到的 Google Chrome Extension 專案,針對轉載自 Ptt 的網站自動轉回 Ptt 原文:

程式在「ptt redirect」這邊,而原始程式碼在 GitHub 的「yurenju/ptt-redirect」這邊。

目前只支援 disp.cc,應該還有好幾個站可以支援...

Ptt 新版使用者條款的問題...

剛剛登入發現需要同意新版條款 (2.0),但有條文有問題啊...

1-2 的部份:

任何資料一經您上載、傳送、輸入或提供至本站時,除私人信件外,視為您已同意本站為非營利之無償使用、修改、重製、公開播送、散布、發行、公開發表該等資料,並得將前述權利在保留原作者資訊前提下,轉授權為非營利之使用(轉授權部分本站將列舉轉授權之網站並公告於本站 Announce 板,非本站或本站轉授權之網站未經同意使用您之資料,仍為侵權)。您並應保證本站使用、修改、重製、公開播送、散布、發行、公開發表、轉授權該等資料,不致侵害任何第三人之權利,否則應對本站負損害賠償責任(包括但不限於訴訟費用及律師費用等)。

以下資料在本次條文修正時表示站方可以將以下資料公開散佈:

  • 個人訊息 (水球紀錄)
  • 個人資料 (因為是你在註冊時輸入進去的)

後者由於受到「個人資料保護法」的法律保護,這項條文在碰觸這塊時會有很多可以防禦的方法。但前者明顯是漏洞...

然後我以為官方站名中的「BBS」這個詞彙應該大寫?不知道會不會出 2.0.1...

Google Chrome 上自動驗證 Ptt 十八歲年齡的工具

Ptt 有年齡限制的看板總算是開放 Web 存取了,但有個確認畫面要點總是頗麻煩 XD

前幾天寫了一個 Google Chrome 套件「Ptt Over18」可以自動幫你點確認按鈕:

暫時沒想到要用什麼 icon & 抓什麼畫面,回台灣再說,在日本只想睡覺吃東西... XD