2026-05-12 10:00:00
每次想查個字典都要連去教育部的網站,覺得很不方便。於是剛剛把教育部國語辭典公眾授權網裡面的《重編國語辭典修訂本》和《國語辭典簡編本》資料做成了離線版本。
(我知道唐鳳已經做了「萌典」,但我想要更簡單、更輕量的版本。)
因為純粹是自己要用的,所以我把資料庫中我不需要的欄位──部首、筆劃數、同義詞等等──全都刪掉了,只留下注音和解釋。
有兩種版本唷!一種是直接打字就會出現的網頁版:

另一種是終端機版本,只要直接 dic [想查的字] 就會出現解釋啦:

有興趣的話,到我的 code.wiwi.blog 或 GitHub 頁面下載,上面也有安裝說明。
2026-05-12 08:01:00
Windows 95 年代時的科技產品包裝設計,有一種很特別的美學邏輯:為了讓消費者感受到產品「很強大、很科技、很值錢」,所以把所有能代表這件事情的東西,全部塞進一張圖裡面。
像是以下這個 Corel WordPerfect Suite 的包裝盒,設計師大概是這樣想的吧:
先放顆地球吧,因為我們的軟體是全球等級的呀!然後來點意義不明的二進位數字作裝飾⋯⋯喔靠這看起來超科技的,爽啦!
再來,讓一堆簡報和文件從螢幕中飛出來,一定要用飛的唷,因為只要東西會飛,就等於高科技!要確保文件中有 3D 長條圖和圓餅圖,因為長官看到它們就會高潮。然後再放個鍵盤、來幾顆閃閃星光、當然要放招牌的 Corel 熱氣球。嗯,想不到還能加什麼,那再加上更多的意義不明的二進位數字好了⋯⋯哇靠這看起來超豐富的,爽啦!
對了,怎麼能忘記告訴大家,我們有 150 個字體,還有一萬張美工圖案呢?

現在到處看到 A 寶們生成的「懶人包資訊圖片」,總讓我想起這樣的包裝盒。一張圖片裡面塞了七八個圖示、三種字體、五個色塊、一堆沒必要出現的箭頭和步驟說明,角落還有齒輪、燈泡、放大鏡等「象徵思考」的小物,硬要假裝這張根本沒在思考的圖正在思考。
差別只在於,90 年代的包裝盒其實帶著一顆笨拙的真心,它只是想說「我超想讓你看看我的產品,我真心覺得它很酷」;而 2026 年的 AI 資訊圖,只散發著「我花了三秒鐘生了一張圖,現在請給我流量」的廉價感,讓人想要火速逃離現場。
欸,不要因為現在圖片生成模型中文字終於不會亂碼了,就硬要把每一篇貼文畫成「自以為資訊量很大」的圖好嗎?這樣並不會看起來比較有料,讀者看了也不會高潮,頂多只是讓三十年後的人有東西可以拿出來嘲笑而已。
(以下這張:我沒有給 ChatGPT Images 2 看過 Corel WordPerfect Suite 的包裝盒原圖,光憑文字敘述它就完全學到精髓!而且,它還精準地把整張圖畫成了自己正在嘲諷的風格,讓我看到都高潮了,甘拜下風。)

2026-05-11 08:01:00
Kobe Bryant 在 Jimmy Kimmel 的節目中1說過一段話:
"If you're sitting there and eating across me you have something in your teeth. I can have that moment of being uncomfortable and tell you you have something in your teeth, not let you look like an idiot in front of everybody else, or not have that moment and just let you look like an idiot in front of everybody else. So I'm not afraid to tell you you have something in your teeth."
「如果你坐在我對面吃飯,牙齒卡了菜渣。我寧願承受那個不舒服感,直接跟你說:『欸你牙齒卡菜渣了』,也不要因為怕尷尬而不說,而讓你繼續在大家面前出糗。我這個人,是不怕跟你說實話的。」
以前在音樂系琴房練琴,如果聽到隔壁間的人一直彈錯同一個地方──不是不小心失誤的那種喔,是他真的把譜看錯,而且已經把錯誤的版本練到很熟的那種錯──我通常會去門口偷瞄一下看看是誰,如果是認識的人,我可能就會敲門提醒他,說「你看錯譜了」。
這真的不是我雞婆喜歡抓別人錯誤,而是如果沒人跟他講,他在上台演出時就會彈出錯誤的版本,這樣不是害他在更多人面前出糗嗎?所以主動去糾正他,是一種關心對方的表現,對方通常也會謝謝你的提醒。
不過,如果是不認識的人,我大概就不會跟他說了。
牙齒卡菜渣、看譜看錯音這種事,說出來很容易。因為很客觀,一講完對方馬上就可以修正,然後馬上感謝你。
但如果是別的面向就很難這樣做了。例如,當你發現朋友開始沈迷社群媒體、短片刷到品味全滅、中邪變成 A 寶,或價值觀越來越勢利時,去開口提醒就好像在說教或嫌棄對方,而且大概不會得到好的反應2。這種時候,好像真的就只能眼睜睜看著他們一路歪下去?
除非真的是非常非常親近的人(例如檸檬卷),不然我真的無法像 Kobe Bryant 一樣,有告訴對方「欸你的價值觀卡了菜渣」的勇氣。
2026-05-10 18:00:00
幫檸檬卷推一下這部影片。
我覺得這部寫得╱剪得很好耶,可惜 YouTube 演算法不這麼認為。
(以下嵌入的是 Wiwi.Video 上的影片,如果你偏好在 YouTube 看,請按這裡。)
高雄市交響樂團在 6/26 和 6/28 會在衛武營歌劇院演出《波希米亞人》。如果你看了這部影片之後有了興趣,想去現場被感動的話,可以用檸檬卷的折扣碼 2026operajanet 買票,有八折優惠唷!
購票連結:https://www.opentix.life/event/2018291334221635585
(你買票的話,檸檬卷不會拿到分潤,但會讓業主相信找她業配是明智的決定。)
說來諷刺,我自己決定停止接業配、減少 YouTube 更新,正是因為不想再為「演算法不推」這種事情焦慮。結果我現在還是在這裡,因為演算法不推檸檬卷的影片而發這篇文章。
我真的很討厭 YouTube,每次發片都讓人心情不好。
是不是該開始大力遊說檸檬卷寫部落格了?
2026-05-10 08:01:00
才剛寫完一篇用 FFmpeg 製作 WebP 動畫的文章,然後 Lex Fridman 就出了一集超過四小時(!)的 Podcast,訪問了 FFmpeg 的貢獻者 Kieran Kunhya 和 VLC 的核心人物 Jean-Baptiste Kempf。(YouTube 連結)
FFmpeg 絕對是地球上最多人「用過但完全不知道自己用過」的軟體之一。
FFmpeg 可以處理「幾乎所有格式1」的影片、聲音和圖片。不論你想要轉檔、剪輯、壓縮、串流、錄影、加字幕、截圖、做縮圖、合併、分割⋯⋯基本上你想得到的操作,FFmpeg 都可以辦到。
地球上幾乎所有跟影音有關係的軟體和服務都依賴它:YouTube、Netflix、Instagram、OBS⋯⋯甚至連 Mars 2020 火星探測車上面也跑著 FFmpeg,用來壓縮影片和照片。
(NASA 的直播中特別提到了 Linux 和 FFmpeg。)

你以為 Instagram 很重要?哼,要不是有 FFmpeg,你可是連一個限動都發不出去呢!這不是我亂講,是 Meta 的官網說的:
"FFmpeg plays an important role in enabling new video experiences... Meta executes
ffmpeg(the main CLI application) andffprobe(a utility for obtaining media file properties) binaries tens of billions of times a day."「這些新的影片體驗,背後都是靠著 FFmpeg⋯⋯Meta 每天執行
ffmpeg(主程式)和ffprobe(取得檔案資訊的工具)數百億次。」
好可惜,像是 FFmpeg 這些「真正最重要」的軟體,行事都太低調了,完全沒有得到大眾應有的重視。
除了 FFmpeg 以外,我馬上想得到的還有像是:
(我本來還想把 Linux 寫進去,但 Linux 其實已經有很多人知道了。)
這些真正讓世界正常運轉的自由軟體,幾乎都不怎麼賺錢、不擅長行銷、沒有人感謝它們;但如果少了它們,現代文明就會直接停止運作。反觀那些超級知名的軟體和服務──Windows、Photoshop、Google Chrome、Instagram、Facebook──少了它們,地球會怎樣呢?好像不會怎樣耶,說不定大家還會睡得更好呢!
有興趣的話,去聽聽看那集 Podcast 吧(我是前天睡前聽的)!你會發現,這個世界並不只是由 Google、Apple、Microsoft、Meta 等科技巨頭構成的,FFmpeg 和它的自由軟體夥伴們才是真正撐起這個世界的骨幹。
2026-05-09 08:10:00
最近看到 Shuyu 和 Eddie 在各自的 Blog 上都提到了關於 GIF 動畫圖的問題。讓我來分享一下我的做法。
(這是一張長達 10 秒鐘的循環動畫圖,檔案大小只有 659 KB!)

有很長一段時間,GIF(Graphics Interchange Format,圖像互換格式)是唯一能在網頁上顯示動畫的圖片格式,這也是為什麼「GIF」成為了動畫圖的代名詞。
但問題是,GIF 格式非常老舊,1987 年發明,最後一次更新是 1989 年(其實好像也還好,沒有我老?)。如果只是用在 88x31 的小按鈕就算了,但現代人使用動圖的習慣非常「奢華」──長寬動不動就 500 px 起跳、每秒 30 格(台灣的講法是「影格╱畫格╱張」都可以,但不是「幀」唷)──用 GIF 來存的話,檔案大小瞬間就會爆掉。
一個解決方式是直接插入 MP4 影片檔。不過 Markdown 中沒有插入影片的原生語法,每次都要手寫 HTML <video> 標籤,有點麻煩。
而且,我覺得影片檔的「氣質」就是跟動圖不一樣。就算把播放控制列關掉、設定成循環播放,味道就還是不太對,沒有動圖那種完美的無縫循環感。更別說動圖還支援設定「每格獨立」的延遲時間,可以做出影片格式無法呈現的節奏感。
另外,影片檔如果有聲音,瀏覽器就不會讓它自動播放,得在程式碼裡額外設定成靜音;可能還會需要加 playsinline,才能讓某些手機瀏覽器就地播放,而不是跳到全螢幕。
WebP 是 Google 在 2010 年推出的開放圖片格式,同時支援靜態圖和動畫,而且壓縮效率比傳統格式好非常多。
因為 WebP 是真正的「圖片」,所以你只要用 Markdown 寫  或一個普通的 <img> 標籤就可以直接插入了。它會自動循環,不需要任何奇怪的 JavaScript,也沒有累贅的播放介面。用起來就像 GIF 檔案一樣簡單,但檔案小非常多!
想把影片轉成 WebP 動畫圖片,只要一行 FFmpeg 指令就搞定:
ffmpeg -i input.mp4 -vf "scale=360:-1,fps=12" -c:v libwebp_anim -loop 0 -compression_level 6 -quality 70 -an output.webp
scale=360:-1 是縮放尺寸。只要設一邊就好,另一邊寫 -1,FFmpeg 就會自動等比例縮放。fps=12 每秒幾格。我覺得動圖的每秒格數不要太多,會更有動圖的氣質;我大部分都設 8-15 之間。-compression_level 6 是設定「盡最大努力」尋找最佳壓縮方式。會比較慢,但檔案會更小。-quality 70 是品質設定。我覺得 70、75 左右是甜蜜點,想要檔案更小的話可以試試看更低。我用了可麗餅的十秒鐘影片來測試,以下是兩種格式檔案大小的比較:
| 解析度╱格數 | GIF | WebP -quality 70
|
|---|---|---|
| 640x360, 30fps | 13.8 MB | 5.4 MB |
| 320x180, 30fps | 3.4 MB | 1.7 MB |
| 320x180, 15fps | 2.2 MB | 940 KB |
這篇文章最上面實際用的那張,最後調成 360x203、每秒 10 格(不是「幀」!)、品質 70,檔案大小只有 659 KB。
WebP 格式唯一的缺點,就是要比較近代的瀏覽器才支援。1
Chrome 在 2014 年支援、Firefox 拖到 2019,Safari 甚至要到 2020 年以後(而且必須搭配 macOS 11 或 iOS 14 以後版本)才能完整支援 WebP 格式。所以我在 Wiwi.Blog 上只在動畫圖才用 WebP,一般的圖片還是選擇相容性最好的 JPEG 和 PNG。
像是我手上的 iPad Mini 4(2015 年出品),系統最高只能跑到 iOS 12,瀏覽器再也無法更新,就完全看不到 WebP。一台明明還很漂亮的平板,卻因為被蘋果的軟體綁死,現在連一張貓咪動圖都打不開,超鳥。當然對於蘋果來說,這設計完全合理──如果十年前的平板,今天還能正常地看到 WebP,誰會想要換新機呢?
再次印證了 Richard Stallman 的那句話:「如果使用者不能控制程式,那就是程式在控制使用者。」千萬別買只能跑封閉作業系統的產品呀!
(iPad Mini 4:看不到 WebP 動圖,但至少還能用來 ssh 啦。)
