跳至主要内容

47 篇文章 含有標籤「tool」

檢視所有標籤

組 NAS 心路歷程──DXP4800

· 閱讀時間約 10 分鐘 · 2735

最近這一年來,一直想要組一臺自己的 NAS,家裡的兩臺電腦分別在客廳和房間,檔案不流通時常讓我很困擾,尤其寫部落格時需要用到手機裡的一些照片,兩臺電腦間沒辦法同步,還有一些轉檔後的 CD、離線電影、動漫電子書以及許許多多工作或是論文資料等等,都想要好好集中管理。

NAS 的選擇

去年開始觀望,但苦於要做的功課不少,遲遲無法決定自己要用哪一種,當時正開始轉檔手邊的 CD 音樂,還沒學會自架串流與 Plex 影音服務等等,原本爬了一些文章,第一首選是新手最友善的群暉 Synology DS925+,但是發現群暉發表了以下聲明

安裝在内建硬碟托盤的 HDD/SSD

相容性清單所列第三方產品和周邊設備,皆通過 Synology 測試和驗證。敬請留意,第三方產品韌體或硬體的變更可能會影響與 Synology 產品搭配的相容性與穩定性。Synology 不保證列表中產品的相容性,並保留隨時更新列表的權利。

粗暴翻譯就是:「以後只能用我家的硬碟,不遵守規定的話請滾蛋。」

瞬間就讓我沒什麼好感了,而且它們家的硬體很差,與價格不成比例,優點就是軟體穩定易用,新手友好。不過我秉持著剛入門,什麼也不懂,不如就直接選擇開源軟體的心態,就決定使用基於 Debian Linux 的 TrueNAS 做為我的系統。

軟體決定好後,硬體就很多可以選擇了,我看上了對刷機非常友好的中國品牌綠聯,基本上硬體方面的用料和作工品質都是很對的起價格的,原本也考慮過要不要乾脆自組1,研究時看上了一款 JONSBO 喬思伯 N3 NAS 機殼,想說以它為中心收集配件還是滿心動的,不過現在 2026 的電腦硬體價格,研究了一下很快就讓我放棄了,除錯成本也有點太高,最後就選擇了綠聯 DXP4800 標準版,使用 Intel N100,內建了兩個 2.5G 網口、8G 的 DDR5 記憶體、兩個 M.2 SSD插槽,實在很不錯了,外型也是深得我心。

沒錢買硬碟

在下單前,我研究了一下現在市場上的 HDD 價格,直接讓我當場哭暈了,後悔沒有在去年想組 NAS 的時候趕緊下單。上網隨意看了個電商平台,一顆 16GB 的 HDD,現在價格是 1500 元 /TB,比我的認知高了三倍。

但是我現在馬上就有 NAS 需求,靈機一動,決定把現在兩臺主機上的 4 顆 1TB 的老硬碟拔出來,先組個 Raid5(代表允許一顆硬碟損壞而不遺失資料的容錯),大約還有 2.5~3.0TB 的空間可以使用,勉強可以先頂一下,等到價格回落再升級硬碟就好,SSD 也可以先拆客廳主機的來用,於是就喜孜孜的下單了。

事情還沒結束

等待 NAS 送來的期間,我才發現還有一些東西要額外研究。

1. 記錯 SSD 規格

有天睡前突然想起來一件事,客廳主機的 SSD 是 SATA 介面,根本不是 M.2 接口,所以還得買一條小容量的 M.2 當作系統碟,我最後選擇能找到最便宜的 Biwin NV3500 512GB M.2 Gen3,是 TLC 顆粒的還不錯,發熱也不高很適合 NAS 用,但是價格讓我想哭,跟我研究所時買的 2TB M.2 差不多貴。

2. 2.5G 交換器

在腦袋裡先盤算網路線接法的時候,發現其實還需要買一臺 2.5G 的交換器2,才能讓 NAS 傳輸檔案的速度可以達到 280 MB/s 左右,檢查了一下發現兩臺電腦的主機板,只有房間那臺有支援 2.5G 網口,所以最後我的接法就是

[ 客廳電腦 (1.0G) ]

│ 1000 Mbps

[ 小烏龜 ] ◄── 1000 Mbps ──► [ 2.5G 交換器 ] ◄── 2500 Mbps ──► [ 房間電腦 (2.5G) ]

│ 2500 Mbps

[ NAS (2.5G) ]
  • 房間電腦 ⇄ NAS

走 2.5G 交換器內部轉發,不經過小烏龜。速度為 2500 Mbps(約 280 MB/s)

  • 客廳電腦 ⇄ NAS

受限於 1.0G 網卡與小烏龜孔位,速度為 1000 Mbps(約 115 MB/s)

3. 插頭相容

中國買回來的電子產品,插頭是三腳斜型的,需要再買一個轉換頭,不過電壓倒不用擔心,隨附的變壓器 110~220 伏都可以用。

4. 系統隨身碟

由於要自己灌開源的 NAS 系統,所以要先準備一個隨身碟,其實就跟灌 windows、linux 大同小異,不會太困難。使用 Rufus 將 TrueNAS 的 ISO 映像檔寫進隨身碟裡就搞定了。

快速開箱

img

▲實體品質真的很不錯,磨砂手感很冰涼

img

▲大費周章把兩臺電腦主機拆開,把這些老硬碟都拔出來

img

▲加裝一張 m.2 系統碟,NAS 隨附的散熱片超厚貼上去(沒拍到)

img

▲測試一下發現螢幕輸出不了(嚇出一身冷汗),結果沒事只是線有問題

img

▲轉到房間隨手插上投影機的 hdmi 就可以顯示了,準備灌 TrueNAS 系統

一些新手除錯小提示

花了很多時間搞得焦頭爛額的,其實大部份都只是一些小問題,只是當下不知道發生什麼就會有點慌(拜託我不想跑退貨流程),所以如果早點知道就太好了!現在有 AI 可以幫抓 bug 已經很好了,不然真的有點為難新手(難怪群暉可以囂張那麼久)。

  • 進綠聯 bios 請按 ctrl F12,AI 在一些小細節會胡說八道,還是得自己 Google 查證,不然一輩子都進不去 bios 灌系統了
  • 進 bios 後,找到 watchdog 先關掉,不然要進 TrueNAS web 的時候會一直重啟
  • 裝好系統重啟一次再進 bios ,把啟動選項改成自己的系統碟,不然還是會進綠聯的系統
  • 在瀏覽器上輸入 ip 進到 NAS 設定頁面,Username 請輸入 truenas_admin,admin、root 都有可能,沒統一快把我搞瘋了,一直以為自己密碼有問題,結果是 Username 出包,總之都試試看吧
  • 在 Datasets 裡,Permissions 記得要設一下,不然會無法寫入資料跟執行程式
  • 最後是一些 docker 設定的坑,例如設定 syncthing 的時候,要設好 Host Path,然後 Mount path 才是路徑,不然會一直連不上,資料傳到黑洞裡

NAS 的靈魂

非常多好用的 docker 在 TrueNAS 上都包裝好在 app 裡了,設定滿容易的,之前用自己的電腦主機當伺服器,常開這些程式真的很煩人,不小心就會被關掉,現在在 NAS 裡可以 24 小時常開,功耗也很低,FreshRSS 也可以架在自己的 NAS 上,但之前在免費主機上已經架好就懶得動了。

img

簡單介紹一下幾個我常用的服務

1.Jellyfin/Plex

自架 Netflix,在手機、電視上都可以直接播放 NAS 裡的電影,永遠不會被下架,適合收藏好電影,這兩個都能用,但我更喜歡 Jellyfin,乾淨美觀,沒有額外雜七雜八的東西。

2.Navidrome

以前我把轉檔好的 CD 專輯,在每個裝置上都複製一份離線聽,剛開始沒什麼問題,後來在公司電腦、家裡兩臺電腦、我的手機上都各有一份 100 多 GB 的音樂檔案,手機都快要沒容量了。

苦惱不久後,就看到雷歐的這篇〈自己架 Spotify?用 Navidrome 建立個人串流音樂〉,部落格宇宙大電波讓我非常驚喜,完全解決了我的需求,現在只要在 NAS 上有一份音樂就好,真的太棒了,超級推薦。

自從都聽自己的音樂檔案之後,再也沒用過 spotify、kkbox 這些串流平台了,把訂閱的費用直接買專輯支持音樂創作者,自己也能完整擁有檔案,一箭雙雕。

3.Nextcloud

擁有自己的 Google Drive,還有很多協作小工具可以用,這次組好 NAS 才裝的,之前沒用過,不過聽說很好用,就馬上裝起來了。

4.qbittorrent

跨平台的開源的種子下載器,介面乾淨簡潔。

5.Syncthing

只要設定好要同步的裝置跟資料夾後,只要兩邊程式都開啟就能快速同步檔案,真的超方便,完全省下檔案傳來傳去的麻煩。

6.Tailscale

這款虛擬內網工具,超級方便!平時我的 NAS 完全不對外開放任何 Port(降低資安風險),相關服務原本只能在家中內網使用。現在外出時,只要在手機打開 Tailscale,就能無縫連回家中網路,隨時聽音樂、看電影、存取 NAS 裡的檔案都完全沒問題。

另外還有像是 immich,我也很想用看看,先把我的資料照片等等都整理好再來玩,把所有資料分門別類的感覺真的很療癒,後悔沒有早點組 NAS 了,如果在幾年前就組的話,那個硬碟價格該有多美阿!

img

後記

現在我的電腦主機上只留下程式、遊戲等等,全部放 SSD 速度快又穩,其餘資料都塞在 NAS。結果整理完, NAS 只剩下 1 TB 左右,能撐到 HDD 價格掉回去嗎?(容量焦慮症3要發作了)

也許我該好好學習資料斷捨離,例如「無損音樂」,我真的需要聽完整 1411kbps 的 CD 音質嗎?Wiwi 在〈把影音檔案壓小小〉,提到 Opus 只要不到 100 kbps 音質就不錯了,有時候覺得,已經不知道自己是在聽規格,還是聽音樂內容本身了。

又或者每次拍照留下來的原檔,全部加起來也超過 1TB 了(一兩年前已經斷捨離過),其實旅遊完,挑選過後把記憶封裝在攝影列表裡,好像就可以把永遠不會再打開的原檔刪掉了,捨不得的心情,其實只是一種數位囤積症而已吧!

Footnotes

  1. Huan的影片幫助了我不少,讓我萌生自組的念頭,雖然最後沒自組,但一樣選擇了 TrueNAS

  2. 我買的是 TP-LinkTL-SG105-M2 ,5 埠對我來說夠用了

  3. 〈荒島筆電〉這篇文章除了超級有趣以外,更讓我開始思考,到底哪些資料才是我人生真正需要的,人生或許也跟攝影一樣,從來都是減法,而不是加法

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

嘸蝦米系列更新

· 閱讀時間約 3 分鐘 · 829

好久沒更新這個打字系列了。

備註
  1. 中打速度-2025.10.03
  2. 打字練習-2025.10.09
  3. rime-liur-2025.10.22
  4. 嘸蝦米練習五個月成果-2026.04.02

目前簡單小測試的成果

久違打了一下小王子 Typing.tw,真的明顯變快了,至少常用字都不用思考就能打出來,寫部落格文章也不會有卡頓的感覺。

img img

學打嘸蝦米的一些小心得

我發現為什麼打某一些測速文章的時候,速度差距很大。快不起來的一大主因就是,日常的用字很少出現在一些特別撰寫的文章上,所以相較於口語化的內容,面對艱澀的字就會慢很多。這點跟注音不同,注音不論熟與不熟的字,只要唸的出來,打起來的速度都是一樣的,但是嘸蝦米需要知道字怎麼寫,常常遇到的字,熟到不用經過「拆字」這層思考,才會打得快。久久遇到一次的罕用字,雖然能拆出來,但是手指依然很難形成肌肉記憶。

另一點體悟就是我之前對嘸蝦米的「重大迷思」──拆字輸入法是不會打錯字的。

沒錯,相比於注音輸入法,不會出現誤用同音字或是「在再」不分的問題,但是重點來了,打字的人自己要知道「在再」怎麼用。也就是說,自己要知道所有正確的用字是什麼。用這個輸入法的過程也讓我學習到了不少,舉個簡單的例子,過去二十幾年來打注音,都沒有注意到自己打「根本」,用了嘸蝦米後下意識的打出了「跟本」,眼睛看到覺得有點怪怪的,才意識到自己的盲點。

另外,事實上還是會打錯字的,雖然腦中想的沒有錯,但手指按太快還是會按錯的,嘸蝦米最致命的一點,按錯的話會跑出完全不相干的字,完全無法辨認在表達什麼,就會有一點點尷尬。

喜歡嘸蝦米

意外的是,學習新的輸入法完全沒有影響我使用注音輸入法,混用完全沒問題。不過用嘸蝦米打符號實在太順暢,所以我也回不去了,主要是與眾不同就很酷阿!開始寫文章後,徹底把之前亂用半形符號這種壞習慣改過來,看起來真的順眼好多(以前都用亂用半形),例如用 ,g,gg 就可以快速打出全形的括弧(是不是真的看起來很痛苦)。

還有一些像是:

.打 `44 ,就能快速打出「▲」

.打 ,ee3 兩次就能出現這個我習慣用的破折號「──」1

另外我使用的 ryanwuson / rime-liur 也有很多好用的附加功能,快速簡繁轉換等等,輸入 `,叫出符號清單也很方便。

最後放一下小工具裡面的「嘸蝦米兩碼字練習器」,偶爾無聊我會玩一下,希望下次更新文章,我的小王子速度就能破百了。

Footnotes

  1. 其實我不知道我打的是 Wiwi 提到的哪種破折號

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

自動鉛筆短評

· 閱讀時間約 3 分鐘 · 686

這幾天迷上在 Youtube 看文具介紹,最後在眾多名單中,挑選了三支我感興趣的中價位自動鉛筆來玩(同場加映一支老朋友)。

img
  1. TOMBOW MONO graph fine 0.5mm

我的第一支蜻蜓牌自動鉛筆(只用過它們家的橡皮擦),MONO graph 系列的高級款式,外觀是冷冽的金屬質感,全銀的筆身實在太漂亮了,看到的時候就決定要入手。握起來重心明顯靠前,很有份量的一支筆,筆尖延伸的很長,應該是特別設計讓寫起字的視野更開闊,很有細節。尾端旋轉出芯的橡皮擦也相當有特色,我第一次看到這種機構。

  1. Uni KURUTOGA α-gel HD II 0.5mm

三菱家的 KURUTOGA 一直都很有名,專利的「自動旋轉機構」讓筆芯能一直保持尖細,不用自己調整角度,這個系列從初階到高階都有,雖然我對 KURUTOGA Metal 的外型也十分著迷,但考量價格有點過高,加上我對 α-gel 的橡膠軟墊也很有興趣,最後還是選擇了 α-gel,這款握感真的很舒適,深藍霧面的筆身相當漂亮。

  1. Pentel SMASH 0.3mm

這款飛龍牌的自動鉛筆,從 1986 年上市起仍歷久不衰,是絕對值得入手收藏的經典之作。外型採非常有辨視度的工業風格,握位處的凸點設計讓我一直忍不住撥弄它們,非常舒壓。我選擇的是全橘筆身再點綴黑色文字的款式,很有特色,而且這支特別選了 0.3mm 的粗細,當作專業製圖筆,繪製一些極細的線條,使用起來一定非常棒。

  1. KAWECO SPECIAL 0.5mm

同場加映一款已經用了 2~3 年的老朋友,來自德國的經典品牌 Kaweco,這支就不屬於中價位的範圍了。復古簡約的八角設計,打造成十足「鉛筆」應有的樣貌,消光霧面質感的鋁製筆身手感沉穩且內斂,長度、重量都設計的非常恰到好處,沒有個性就是這支筆最出色的個性。從到手以來,每天工作都是高強度的使用,已經傷痕累累了。很讚的一支筆,現在多了三個好朋友來幫他分擔工作了。

初見面冠軍

TOMBOW MONO graph fine 這個銀色真的太漂亮。身為一個外貌協會,視線都離不開它了,只好不爭氣的先請地精先生幫我頒發這個獎項!它們長期使用起來分別如何,往後再來細細品味吧!

img

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

Video2X 畫質修復工具

· 閱讀時間約 2 分鐘 · 315

看完 Ivon 的〈Linux版Anime4K使用教學,一鍵提昇動畫畫質〉後,讓我想修復之前用 yt-dlp 載下來的動漫,先看看效果!

對比圖1對比圖2

(在大螢幕上或者點擊放大來看更明顯)

Video2x 操作

我使用的工具是開源免費的 Video2x ,使用非常簡單,影片丟進去並選幾個選項,慢慢等它跑完就完成了。

img

  1. Vulkan Device Selection

    選擇自己的顯卡,基本上沒什麼好選的,有好顯卡的話,恭喜你!

  2. Processing Mode Selection

    Filter(Upscaling) 是讓影片變清晰,而 Frame Interpolation 是讓影片畫面變流暢(補幀)

  3. Filter Selection

    我選擇用 Real-ESRGAN 這個演算法,吃顯示卡效能,處理速度最慢,但效果很好,其他的我還沒試過。

  4. Filter Options

    這裡如果原片是 480p 畫質就選 4 倍、 720p 畫質就選 3 倍、 1080p 畫質就選 2 倍,這樣轉完就都會是 4k 畫質了,但 480p 的話,由於原片細節太少,我覺得選 2 倍到 1080p 就好了。

  5. Real-ESRGAN Options

    真人電影選 realesrgan-plus、動漫選 realesr-animevideov3,年代很久遠需要強力修復的話,也許可以試試看 realesrgan-plus-anime

雖然跑了滿久的,但最後的效果很滿意,快去試試看吧。

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

自動編譯 Aseprite 說明

· 閱讀時間約 3 分鐘 · 731

img

▲用五秒畫一張小像素圖來慶祝成功免費獲得 Aseprite!

前言

由於太喜歡 Shuyu 的作品,在看到〈LibreSprite 一週使用心得,以及我沒有繼續使用它的原因〉之後,就萌生了使用看看 Aseprite 這個神級像素軟體的想法!雖然也想過先用 LibreSprite 就好了,但還是覺得一步到位最快,減少不必要的學習成本!

想要省時省力的話,可以在 Aseprite 的網站以 19.99 美元購入這個軟體,雖然真的已經非常佛心了,但因為 Aseprite 專案本身開源,所以其實可以使用自行編譯的版本。

在官方的說明中提到:

Aseprite started being open source since its very beginning in 2001, and we were happy with that until August 2016. Now you can still download its source code, compile it, and use it for your personal purposes. You can make commercial art/assets with it too. The only restriction in Aseprite EULA is that you cannot redistribute Aseprite to third parties.

(Aseprite 自 2001 年面世以來便是開源的,我們一直對此感到很滿意,直到 2016 年 8 月。現在,你依然可以下載它的原始碼、自行編譯,並將其用於個人用途。你也可以用它來創作商業藝術作品或資產。Aseprite EULA(最終用戶授權協議)中唯一的限制,就是你不能將 Aseprite 重新分發給第三方。)

如何達成自動編譯

超.級.簡.單!

  1. 首先我們先下載 Google antigravity 並登入帳號,這是一個可以自行操作電腦的 AI agent,完全不需動手就能成功完成編譯。

  2. 我們創建一個全新的資料夾命名為 Aseprite 並將其做為一個新專案,輸入以下對話:

請幫我在 Windows 系統下編譯 Aseprite。目前尚未安裝任何開發與編譯工具。
你需要:
1. 下載並安裝編譯所需的 C++ 開發環境,包含 Git、CMake、Ninja,以及 Visual Studio 2022 的 C++ 桌面開發工作負載 (MSVC)。
2. 複製 Aseprite 的官方 GitHub 原始碼(包含子模組)。
3. 下載並配置相容的 Skia 預編譯繪圖庫。
4. 呼叫編譯器,在 `build` 資料夾中完成 CMake 設定並以 Ninja 執行編譯,最終在 `build/bin/` 目錄下產生可執行的 `aseprite.exe`。

AI Agent 的自動執行過程

送出對話後,Antigravity 便開啟了自動化操作流程:

環境偵測與安裝(自動安裝 VS 2022、MSVC、Git、CMake、Ninja)➔ 資源下載(複製 Aseprite 與下載 Skia 庫)➔ 設定與編譯(背景執行 CMake 與 Ninja 編譯)➔ 整理交付(輸出 aseprite.exebuild/bin 目錄)

每個步驟都可以確認後再允許 AI 執行,有任何問題隨時都能提出來調整。這種完全不需要自己動手的體驗,難道就是當老闆的感覺嗎 ლ(́◕◞౪◟◕‵ლ)!

最終編譯好的軟體就在 aseprite\build\bin 這個路徑裡,執行 aseprite.exe 就大功告成啦。

img

後記

因為剛好看到 Kevin 的〈我想做出怎樣的網站〉,文章中提到 LQ7 大大推薦過這個工具,這就是我找了好久的東西耶!不用另外使用 API 的 AI 工具,真是太好了,馬上想到第一件專案可以做這個編譯工作,結果超級順利的完成了真是可喜可賀。

現在,我可以開心地用我自己編譯的 Aseprite 畫像素畫了1

Footnotes

  1. 其實這個人根本沒在認真畫...

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

貼紙模擬器

· 閱讀時間約 1 分鐘 · 170

最近 Shuyu 大大的 Icon 圖庫上線了1,等待好久果然沒有失望,超級可愛的!

昨天睡前突然想到一個點子,如果這些可愛的像素小圖是一張張貼紙的話,貼滿筆電或是行李箱不知道長什麼樣子?好像會很可愛耶,於是我生成了一個「貼紙模擬器」小工具,這樣就可以模擬看看貼滿貼紙的風格好不好看。

img

成果

成品我覺得很可愛耶!滿好玩的,連結在這裡:貼紙模擬器,也可以用自己的圖片玩看看喲。

Footnotes

  1. 可以參考 shuyu 大大的架站心得

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

留言板系統全新改版

· 閱讀時間約 5 分鐘 · 1275

昨天在 Leaf 的新文章〈Nebula探索系統?〉的留言板留言,馬上就被那個留言速度驚豔到了,後來逛到了〈第二個留言區測試〉這篇文章,看到 Leaf 跟皮皮的討論如獲至寶,馬上就如火如荼來進行改版了,這裡感謝 Leaf 和皮皮的啟發。

題外話,Leaf 的網站滿好看的,我最喜歡逆向系列,資安方面的實作對我這種程式麻瓜來說真的很有意思。

為什麼要改版?

明明我一直在文章還有留言區宣傳這個自建留言板的方案,為什麼又要來改版呢?雖然真的已經足夠好用了,但還是有兩點我覺得可以雞蛋裡挑骨頭的地方。

1.速度稍慢了一點

因為我使用的 Google Apps Script (GAS) 有「冷啟動」延遲的問題,每次送出留言通常要等五秒左右(我自己的體感)如果使用 Cloudflare Workers 的話,由於在全球都有伺服器節點,程式碼會直接在離讀者最近的那個節點執行,就沒有冷啟動問題,再搭配原生的 D1 資料庫,留言的速度自然快上非常多。

感謝皮皮來信,幫補充一些小觀念

冷啟動主要是環境啟動時間,節點比較偏網路延遲(通常很短,可以忽略),概念上不太一樣。不精準的比喻:Worker 比較像是電腦休眠喚醒,GAS 比較像是電腦重開機,所以啟動時間才會差那麼多。

2.需要搭配 Google Sheet 使用

雖然很簡易,也沒有什麼使用上的問題,但是我想盡量避免使用 Google 的服務(找逃生路線!),再來就是自從我加入 Telegram 留言版通知系統後,都能秒收到留言通知,但是在 Sheet 上用手機回留言實在不太方便,我要在小小的視窗內回覆完,再切到電腦版顯示,然後執行同步到 Gist 的程式(超難點),所以我的解法是:寫一個隱藏的管理介面(詳後文)。

改版架構說明

使用 Cloudflare Workers(取代原本的 GAS) 搭配 Cloudflare D1(取代原本的 Sheet)

  • 原始留言板:Docusaurus ➔ GAS ➔ Sheet ➔ 轉 JSON ➔ 存入 Gist ➔ Docusaurus 讀取

  • 新留言板:Docusaurus ➔ Cloudflare Worker ➔ D1 資料庫 ➔ Docusaurus 讀取

使用 Cloudflare Workers+D1 能夠保持原本留言板的優點:無伺服器丶不需登入丶介面乾淨,並且加上速度變快,比之前的留言板速度大約快了一倍(之前的速度我偶爾測試的時候會懷疑有沒有當機)。

感謝皮皮來信,幫補充一些小觀念

現在好像是維持載入全部的留言,其實可以根據該頁面帶入 slug 抓出對應的留言就好。這樣就沒有留言膨脹的問題了,查詢速度也會加快。未來如果全站留言真的太多,也可以考慮分段動態載入。不過現在的留言還不多,載入全部也是沒問題的。

操作流程概述

這個部份的細節不過多贅述了,其實不會太困難,因為每個人的框架不太相同,我認為記錄操作細節意義不是很大,相信使用 AI,稍微除錯一下就能成功了。

  1. 建立 D1 資料庫與資料表(在 Cloudflare 準備好裝留言的「新倉庫」)

  2. 建立與部署 Worker 後端程式(寫好 API,並加上專屬的「管理員金鑰」驗證)

  3. 綁定 Worker 與 D1(讓 API 有權限讀寫那個資料庫)

  4. 修改前端 index.js(換上新網址,並把隱藏的「管理員刪除/回覆按鈕」加進去)

  5. 搬移舊留言(把舊的 Sheet/Gist 資料輸出再匯入新資料庫)

感謝皮皮來信,幫補充一些小觀念

不確定刪除功能是不是軟刪除?也就是只做狀態更新 (如 is_deleted=1),軟刪除會更安全一點,避免自己誤刪或是金鑰外洩的時候被別人刪光光。

我最愛的新功能

現在的留言板可以在前端顯示並進行回覆,實在太讚了!

只要設定一個「管理員金鑰 (Admin Key)」,當程式偵測到瀏覽器存有正確金鑰時,就會在留言下方顯示「刪除」和「編輯回覆」的按鈕。

最有趣的是,現在網站內有一個像是彩蛋的 「隱藏入口」,只要執行隱藏的動作,並輸入我設定好的金鑰,React 就會額外渲染出管理者模式。

img ▲像這樣出現有盾牌型式的管理者模式!超級有趣!

找找彩蛋

歡迎去留言板找找看彩蛋在哪裡吧,靠自己找到的話來找我拿小禮物:一個👍。

公佈彩蛋在哪裡囉,要不要再自己找找看?

進入留言板找到標題的 「發表留言」 這四個字,對著它連續點擊 5 下試試吧!

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

Markdown All in One

· 閱讀時間約 2 分鐘 · 556

這份筆記整理了在 VSCodium 中一個好用插件 Markdown All in One 的小技巧,能快速撰寫 Markdown 格式,真的是太晚發現了,我最愛的就是快速超連結功能,省事超多。

1. 超連結與網址快速貼上

  • 快速建立連結:複製好網址後,在編輯區選取要作為連結的文字,直接按 Ctrl + V 貼上,會自動轉化為 [選取文字](你的網址) 格式。

2. 格式快捷鍵

無需手動輸入 Markdown 符號,直接選取文字(選取文字可用Shift + 方向鍵)後使用快捷鍵:

  • 粗體Ctrl + B (選取文字 -> **文字**)
  • 斜體Ctrl + I (選取文字 -> *文字*)
  • 刪除線Alt + S (選取文字 -> ~~文字~~)
  • 標題升降級
    • 增加等級 (H1 -> H2):Ctrl + Shift + ]
    • 減少等級 (H2 -> H1):Ctrl + Shift + [

不過標題我還是覺得直接打 # 最快。

3. 列表與任務清單自動化

  • 自動延續:輸入 - 項目1. 項目 後按下 Enter,會自動補齊下一個符號或數字。
  • 結束清單:在空白的清單行連續按兩次 Enter,即可自動刪除多餘符號並回到一般段落。
  • 任務清單轉換:在清單項目上按 Alt + C,可以快速切換核取方塊的狀態([ ] <-> [x])。
    • 檢查結構計算書
    • 更新個人網站

4. 表格自動對齊

手動排版表格非常耗時,利用格式化工具可以瞬間對齊。

  1. 隨意輸入表格內容,用 | 分隔即可(無需在意空格)。
  2. 按下格式化快捷鍵:Alt + Shift + F
  3. 表格的 | 符號會自動垂直對齊,提升程式碼原始碼的易讀性。

5. KaTeX 數學公式支援

支援直接在 Markdown 中撰寫數學與物理公式,預覽時自動渲染。

  • 行內公式:使用單個 $ 包裹。例如 $\sigma = \frac{M y}{I}$
  • 獨立區塊公式:使用雙 $$ 包裹。
σ=MyI\sigma = \frac{M y}{I}

6. 視窗預覽與游標導航

  • 全螢幕預覽Ctrl + Shift + V
  • 側邊同步預覽Ctrl + K ,再按 V (編輯區與預覽區會同步捲動)。

不過我都直接用 npm run start 在網頁上預覽,所以用不太到就是了。

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

Elo 演算法評分系統

· 閱讀時間約 7 分鐘 · 1535

開始整理我的專屬 IMDB 排名後,我提到

之後我可以把所有電影的 .js 資料做成一個像殘酷二選一的選擇器,這樣應該就可以幫助我自己「在主觀中最客觀」的打出分數了吧。

現在清單裡已經有 359 部電影了,偶爾會突然想起來還有什麼漏網之魚就會加進來(漫威太多了暫時有點懶得加),加入新的電影後,會先依據我的打分原則評斷,小數點後的數字再大致給定那個級距裡的 1~9 。

  • 9 分 -> 神作趕快收藏起來

  • 8 分 -> 人生必看的佳作

  • 7 分 -> 看完不會失望的好片

  • 6 分 -> 中規中矩可以再更好

人類的大腦其實很不擅長給定絕對的數值,但我們非常擅長做「比較」。就算是兩部都很讚的作品:「《刺激1995》跟《阿甘正傳》哪一部比較好看?」1至少能比較快決定出勝負。

於是我決定用一個 「電影二選一評分系統」。只要不斷在兩部電影之間做選擇,系統就會透過數學演算法,在不斷的比較下幫我收斂到最精準的排行。

這套系統就是被廣泛應用在西洋棋與電競遊戲(如《英雄聯盟》積分)中的 Elo 等級分系統(Elo Rating System)

Elo 演算法

Elo 演算法的精神在於,它不是贏了就固定加幾分、輸了就固定扣幾分,而是會根據雙方的「相對實力」來給予獎懲。

每部電影都會有一個「隱藏 Elo 積分」。當兩部電影被抽中要進行對決(二選一)時,系統會先透過公式計算出它們各自的預期勝率,接著等我做出選擇後,系統會比對「實際結果」與「預期勝率」來重新結算分數:

  • 理所當然的勝利(高分贏低分): 神作打敗爛片是應該的,高分電影只會微幅加分,低分電影微幅扣分。
  • 爆冷門的逆襲(低分贏高分): 如果我選了一部原本低分的電影贏了高分,系統會認為這部電影被嚴重低估,進而給予大幅度加分,並重扣那部高分電影。

這樣一來,分數的流動就會非常動態且很快的貼近每個作品應有的實力。

這裡補充一個題外話,因為在台灣的西洋棋選手普遍都很少有機會參加國際棋協 FIDE 的比賽,但其實在國內已經訓練到很厲害了,所以有機會到國外比賽時,國際積分就會因為一直低分贏高分而漲的非常快。

動態區間

把積分系統套用到電影評分上,會遇到分數破表的問題,在真實的 Elo 系統中,分數是沒有極限的,例如西洋棋界的第一人 Magnus Carlsen,創下了西洋棋等級分有史以來最高的 2882 分,所以一直贏的電影可能會變成 11.5 分,一直輸的爛片可能會變成 1.5 分(我會先把 Elo 換算成 10 分制,每 200 ELO 為 1 分)。

所以當系統啟動時,我設定先掃描我原本給定的分數清單,我的名單最高分是 9.5 分、最低分是 5.9 分。而當電影的內部 Elo 積分因為連敗而跌破 5.9 分的下限時,系統在畫面上依然會強制顯示 5.9 分。

這其實就是《英雄聯盟》的隱藏積分。電影在後台會沒有下限地被扣掉 Elo 積分(真實實力),但還是顯示是最低的銅牌五,必須要在未來的對決中贏回來、把債還清後,前台顯示的牌位才會再次開始往上爬。這個機制讓電影最差都只會變成不建議觀看的 5.9 分而已。

初始分數定位

傳統的 Elo 系統通常會讓新玩家從固定的底分(例如 1000 分)開始往上爬。但對於電影清單來說,如果要讓一部神作一路虐菜打敗幾十部爛片才爬到 9 分,效率實在太差了。所以當我新增一部主觀認為是 7.5 分的電影時,我就直接讓這部電影帶著 1500 的 Elo 積分空降加入戰局。

它一進場就會直接跟其他差不多 1500 分上下(7.5分左右)的電影進行 PK,藉此快速微調出它最精確的排名,這個可以節省很多點擊二選一的次數。

玩看看

這裡的題庫是電影清單裡所有的電影,僅供好玩,不會影響到頁面裡的分數,也許出現的評分跟你的喜好有很大分岐也說不定 XD

載入對戰資料中...

Footnotes

  1. 第67屆奧斯卡金像獎,《阿甘正傳》打敗《刺激1995》與《黑色追緝令》,得到當年最佳影片。

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...

Telegram 留言版通知系統

· 閱讀時間約 2 分鐘 · 456

最近在廢文小天地/about頁面看到一個子網站「Today I Learnd」,有好多實用的筆記,大推。

最近很多人響應的「部落格問題挑戰」裡,廢文小天地整理了很多人寫的文章。我自己寫的那篇沒有把所有人的文章連結放上去,第一個原因是廢文小天地大大已經有放過了,第二個原因是我懶 (這是主因吧!) 看到這個網站才知道,原來有一個很聰明的流程耶,不是全部都手動加的,歡迎大家去看他的做法

如何使用 Telegram 傳送通知給自己

在筆記裡面,其中這篇〈如何使用 Telegram 傳送通知給自己〉是我最有興趣的,於是我馬上就來實作在我的留言板系統裡面了。

真的很簡單又很方便!以後有留言就可以馬上從手機上接到提醒了!實測有效,真的很喜歡這個功能,感謝大大的筆記幫助了我。

img

寄信還是貼文

最近看了 Jaron 的這篇〈我喜歡寫 E-mail 而不是留言〉後,我有個想法是,既然要寫信去跟喜歡的格友聊天或是表達喜愛,那何不直接發一篇文章在自己的頁面上就好了(前題是內容沒有什麼私密性的話)。也許有人也會想要看吧,我認為把自己的喜歡推廣出去也很好阿,不用只讓作者一個人知道,這樣才能讓大家也有機會一起喜歡,畢竟:

世界還缺少你寫的內容!

—— Timo〈世界缺少你寫的內容〉

於是像這篇原本應該寄給廢文小天地的 mail,就直接被我寫在這裡了。

💡 點擊進入本文章即可發表留言。

本篇留言/ 0

載入中...