There are a total of 328 posts here. | 這裡總共有 328 篇貼文。

ttheng's microblog. | 侃侃而隨想極短文。

大魚吃小魚

大約是在我小學五、六年級的時候(也就是十多年前),家裡多了一部紅色機身的 Acer 筆電1。它原本是我爸買來辦公用的,但不知不覺地就變成了一家人的共用電腦了。

它當時是跑 Windows 8.1 的,然後出於某些原因,這部筆電裡頭竟然預裝了一個叫作 GameHouse Collection Pack 之類2的東西。它基本上就是一個由美國電腦遊戲公司 GameHouse 發行的一些 2000 年代休閒遊戲組合包。

一部跑 Windows 8.1,並給人一種現代化氛圍的筆電裡頭,竟然會出現充滿 Y2K 感、畫質只有 480p 的電腦遊戲,彷彿給人一種時空錯置的感覺。

我本身雖然不討厭電腦與單機遊戲,但也沒有到特別熱衷。不過那時候的我閒來無事時,就很愛開啟這部筆電,然後打開這些 GameHouse 休閒遊戲來玩,作爲消遣的方式。其中一個我雖然已經沒在玩,但至今仍滿愛的遊戲,非 Feeding Frenzy 這個於 2004 年首次發表的電玩莫屬了。如今看回它,簡直懷舊感爆棚。

Feeding Frenzy 有闖關模式也有限時模式,然後其基本遊戲規則直白明瞭:吃掉小魚讓自己變大魚,然後小心不要被更大的魚吃掉。我還記得小時候的自己曾經將闖關模式全部破關過一輪,然後特地截圖以作紀念。

我在備份硬碟翻找到的那張截圖,可見當時的日期爲 2014 年 12 月 16 日。有夠古老!

我在備份硬碟翻找到的那張截圖,可見當時的日期爲 2014 年 12 月 16 日。有夠古老!

現在回想起來,我仍然覺得 Feeding Frenzy 是個整體設計不賴的遊戲,規則簡單,配樂用心,給玩家的體驗也是療愈感與刺激感兼具。

也許有時間的話,可以找個機會回味一下。


  1. 確切型號我不太記得了,應該是 Aspire 3 吧?

    不過它令我感到印象最深刻的是:它可是有內建光碟機與 SD 卡槽的!這一點對我來說真的有夠方便,不像現在的新型筆電那樣,不僅光碟機與 SD 卡槽都已消失,有些甚至連耳機孔都沒有,有夠麻煩的。

    話雖如此,這也造成了一個副作用:稍嫌笨重,但我個人其實不太介意這個。 ↩︎

  2. 會說「之類」,是因爲我不太記得確切名字了,而且 GameHouse 自己也發行過不同版本的遊戲集合包,我也不記得那時的確切版本是什麼了(我在 Archive.org 上找到的 150 個遊戲集合包版本)。 ↩︎




Maths and human understanding

Just finished watching 3Blue1Brown’s recent video titled The last IMO problem AI could not solve, which goes in depth explaining the thought process of arriving at the (a) massively elaborate (in a good way) solution/proof to the (infamous) sixth problem of the International Mathematical Olympiad (IMO) in 2025.

What an adventure indeed! I may need to rewatch it for a few more times to fully grasp the intuition behind the solution.


However, the main topic of this post here is not about the solution itself, but what Grant said during the outro of the video: the importance of promoting human understanding in the development of mathematics as a discipline, rather than racing to obtain a proof to an unsolved mathematical problem.

I fully agree to this. Actually this does not only apply to mathematics; it’s education as a whole. That’s the whole point of education, really: empowering people with an intrinsic understanding of knowledge, craft and their senses of selves.


This sounds like an unrelated sidenote, but it’s what that motivates me to write this post: in the video, there are quotes from some prominent mathematicians about their thoughts on AI in maths which are displayed on-screen, one of which is by Timothy Gowers, and it goes as follows:-

If a society does not have a significant number of people who understand mathematics at some level, we risk becoming passive consumers under the control of these systems. On the other hand, people who do make the effort to understand mathematics will have a large advantage.

“Becoming passive consumers under the control of these systems,” interesting. Considering all those things done and/or said by those big AI companies, who’s to say that this isn’t precisely the goal that those corporations are aiming for?

Tinfoil hat.




1 與 0.999...

讀到了 Tommy 的〈1=0.999…?〉這篇文章。

啊,又是那個一被提起就容易引起人們爭吵不休踊躍討論的話題啊。不過這件事其實沒有什麼好爭論的空間:1 = 0.999… 無誤。完。

這篇中文維基百科文章提供了非常詳盡的解釋,從數學外行人友善的版本到非常嚴謹的正式數學證明都有。也可以看這部(英文)影片

總的來說,1 與 0.999… 其實是實數線(集合)上同一個點(元素)的表示法/表示形式(英文:representation),或是更爲簡要地形容:「寫法不同、本質相同」。


Tommy 文章提到的「兩種答案」中,只有第二種的在邏輯上沒有毛病(該方法也有在上述的維基百科文章提到)。

至於他講到的「第一種」的問題在哪裡呢?其實 Tommy 本人在該文章已經講中了:所謂的「0.000…1 早已化為 0」,或者應該說「1 - 0.999… 根本不等於 0.000…1,而是 0 才對」。

真要雞蛋裡挑骨頭的話,就是他用上了像 Google 計算機那樣的電子計算機來「證明」的部分。

這個做法的問題在於:電子計算機本身的限制,使得其無法真正毫無誤差地表示一個實數的無限小數位形式1。因此,用它作爲證明 1 = 0.999… 的直接根據不甚嚴謹。

不用提計算機了,光是「從 1-0.99999999999999999 開始,計算結果即為 0」這句話本身就已經不準確了。癥結點在於 0.99999999999999999 仍然是個有限小數位的數字,所以 1 減去它肯定「還有剩」(不是 0)——確切來說是 0.00000000000000001 = 10^(-17)。

但我們在這裡面對的是一個無限小數位的數字(表示法),所以不能與上述說法相提並論。


其實有個不需要用上計算機的更直觀方法:先把 1 改寫成 1.000…,然後將此減法改成直式(豎式),一切應該就一目瞭然了。

既然 0.999… 的(小)數位是無限在走的,那麼在此減法算式持續進行借位(退位)的過程中,0 的小數點後面自然也會產生無限多的 0,並且永遠不會產生 1(不然 0.999… 就不會是無限小數位了),所以最後減出來的答案必定是 0,從而得出 1 = 0.999…。

如果對無窮幾何/等比級數(通常爲高中數學等級)有點概念的話,應該不難發現上面的東西其實只是 9/10 + 9/100 + 9/1000 + … 「包裝成減法」的版本而已,套用一下無窮幾何級數公式,就能直接得出 1 了。


  1. 詳見「浮點數運算」與「浮點數誤差」。

    若要更準確來說的話,Google(或應該說是 Google 旗下的 Android)計算機並非純粹地使用浮點數運算,而是使用結合浮點數運算與一個叫作「遞迴性實數運算」的方式的特殊技法,但這不影響本文的論點:電腦仍無法零誤差地儲存無限(小)數位形式的數字。 ↩︎




落選供養

TIL:「落選供養」。這四字短語是個源自日文的網路流行語,也有被原樣照搬到中文圈使用。

顧名思義,「落選供養」的意思是將自己投稿到創作徵選比賽中但沒有被選上任何名次的作品,發表於公開平台上,以作「供養」,也就是作爲記錄與紀念。無論是文字、繪圖,還是音樂作品,都能找到「落選供養」的蹤跡。

會使用含有祭祀意味的「供養」二字來形容這個動作,除了比喻這些無緣中選、「被棄置於作品堆中」的投稿如同「已然死亡」一般,也代表着作者本身將作品於日後公開發表的行爲,除了發展自身作品集之外,也是爲了讓自己的心血「死」得體面一些。


說到音樂的部分,在 YouTube 或是 Niconico 上使用「落選供養」四字作爲關鍵詞搜尋,會找到許多音樂創作者發佈的落選作,而且絕大多數似乎都是用來參加音遊曲徵選比賽的作品。有些歌曲雖然尚有仍需進一步打磨的味道,但也有些的精緻度其實已經到位(至少對我而言),只是因爲比賽競爭激烈而不幸被刷下。

換句話說,在這一堆「落選供養」的作品之中,還是能找到自己的心頭好,甚至也能讓自己成爲一個明日之星的早期追隨者。


從這些「落選供養」的作品裡頭,可以看出許多創作者爲了在自己所熱愛的事物當中取得成就而持續耕耘的痕跡,以及堅持不懈、力求進步的精神。即使是在事業上已經取得成功的創作者,例如像 cosMo@暴走PBlackY 那樣的大咖曲師,也免不了「落選供養」的經歷。

這或許也可以是我鞭策自己的方式:若要有所成就,還是得要付出一定程度的努力才行。




《煙囪小鎮的普佩 2:約定的鐘樓》觀影記

趁着日本國際交流基金在馬來西亞舉辦的 2026 年馬來西亞日本電影節(Japanese Film Festival, JFF 2026,我有幸觀賞了這部題爲 《煙囪小鎮的普佩 2:約定的鐘樓》(日文原名:映画 えんとつ町のプペル ~約束の時計台~;英文譯名:Chimney Town: Frozen in Time)的動畫電影。這部電影是之前在 2021 年於臺灣以及該年的馬來西亞日本電影節上映的同系列電影——《煙囪小鎮的普佩》的續作。

我雖然因爲沒有看過前作而無法如有看過前作的人那樣得以享受更爲沉浸式的故事體驗,但還好這部續作有算是貼心地爲像我這樣的隨性觀衆在不影響敘事流暢性的前提下提供足夠的背景資訊。

這雖是一部日本動畫電影,但卻脫離了典型日式動漫的框架限制,而呈現出令觀眾感到耳目一新的繪圖風格。話雖如此,多多少少還是能找到日系動漫畫風的影子啦。

2D 與 3D 作畫的和諧融合,如同欣賞一個精心打造的藝術作品,與那些特效爆滿、只以提供多巴胺衝勁作爲主要目的的商業爽片格調高多了。雖然也可能是我哭點太低的關係,但這部電影的動畫品質之精美,就足以讓我的眼淚開始打滾了。

故事劇情發展的安排也作得相當巧妙,看似毫不相干的主線與支線劇情竟然是爲劇情高潮作鋪陳的伏筆,並且在全片後半會以極爲美妙的方式回收1,一些看似無關緊要的細節在劇情高潮也被賦予重大的敘事意義。簡直就是 chef’s kiss!

故事的主題以「時鐘」作爲中心象徵物,並爲「別離、放下、堅信」等人生議題給出一個美麗的答案。配樂的編曲雖然簡樸,但仍然是感性動人。

總而言之,就是一部從片頭就已讓我感動流淚到片尾的高水準佳作。無論是想要認識童真的小孩,抑或是想要重拾童真的大人,這部電影都是值得一看。


順帶一提:電影中的其中一個情節提到了「付喪神」(tsukumogami)這個源自日本妖怪傳說的概念。套在該電影那奇幻風格的世界觀內,它象徵着「器物因時間淬鍊而產生的靈性」,以及「東西損壞了應先盡力修復而非直接拋棄換新」這一個重要的人生道理。

沒錯,那一個現今科技巨頭深怕你會知道有用道理

對了,既然提到了「付喪神」,那就不得不提美國作曲家 John Mackey 於 2024 年寫成的一首管樂團作品——Haunted Objects (Tsukumogami),全曲風格富有靈動感,也很有作曲家本身的個人特色,推薦大家聽聽看。


  1. 我之前也看過的動畫電影——《世外》也用了類似的招數,但最終呈現效果則比這部電影的稍嫌突兀了些。 ↩︎




小地方與大城市

有時候會不禁感慨,山打根——我生長的城鎮——真的是個「小地方」。

有多小呢?就是:

⋯⋯的程度。

看似毫不相干的人們,其實卻與彼此有着某種形式的聯繫。這就是生活在一個「小地方」的特性——會讓人不禁在心裡面高唱「世界真是小小小」。


也許是我的社恐內向個性作祟吧,這種「隨意走在街上也能剛好撞見認識的人」的緊密性,有時會讓我產生和日本漫畫《光逝去的夏天》的主角——Yoshiki(佳紀)相似的感覺:

This village is too small and cramped. I can barely breathe with how cramped it is here…

——辻中佳紀,《光逝去的夏天》漫畫單行本第二冊官方英譯版

說來矛盾,相反地,生活在大城市裡,雖然人口密度高上了許多,人與人之間卻變得高度「匿名化」——大家各過各的,很少有機會在彼此生活中相互交錯。

因此,生活在大城市中,的確是能夠享有更多的隱私與獨處機會。對像我這種社恐內向的人而言,因爲不必過於在意身邊人的眼光,這可以說是更爲使人鬆一口氣。

不過,人們也需因此付出相應的代價:帶來人性溫暖的「社群感」變得越來越罕有,取而代之的反而是「我的心事誰人知」的孤單情緒。

這也使得我在大城市生活一段時間後,也會不由自主地懷念起「小地方」生活所帶來的親切感

只能說凡事皆有兩面啊。




title.wma:Windows XP 安裝音樂

在寫這篇描述自己在中學時期重灌電腦經歷的文章時,才偶然得知原來在安裝 Windows XP 的途中,會自動播放一首聽起來頗具未來感、前進感、放鬆感的背景音樂。

在 YouTube 上搜尋了一下後,我找到了這部講述該背景音樂起源的英語影片。原來這首背景音樂的檔案被預設打包於 Windows XP 裡頭時被命名爲 title.wma,而它的作曲人名叫 Stan LePard,並且最初的原名(之一)其實叫作 Velkommen(即挪威語與荷蘭語中的「歡迎」之意)。

有趣的是,這首音樂其實並非特別爲 Windows XP 而作,而一開始是作爲 Microsoft 在發佈 Windows XP 的五年前(即 1996 年)推出的 Internet Explorer Starter Kit 3.0 的安裝音樂而寫成的。

在第一次聽這首音樂的時候,我注意到它的中段出現了一個我好像之前不知從哪裡聽過、由 D 大調五聲音階組成音構成(雖然全曲調性其實爲 G 大調)的高音 ostinato(頑固/持續重複音型),對應於上面音檔的 1 分 25 秒處左右。

這個 ostinato,讓我想起之前看過的其中一部 ∃NA 系列影片——Temptation Stairway 所使用的一首配樂,而它就是由作曲家 Oliver Buckland 創作的 Venturing into the Pyramid。那首配樂也使用了形狀頗爲類似的 ostinato。

同樣作爲一首想要製造虛幻感、未來感的音樂,不知道 Venturing into the Pyramid 如此的 ostinato 寫作手法,是否有致敬 Velkommen 的成分在?




在網頁內嵌 PDF 檔案

與其下載安裝那些肥大的第三方套件,不如善用現今各大瀏覽器內建的 PDF 檔案瀏覽功能,直接使用簡單的幾行 HTML 程式碼就搞定啦!

以下程式碼修改自這個發佈於 Stack Overflow 問答網站上的回答

1<object data="myfile.pdf" type="application/pdf" width="100%" height="100%">
2  <p><a href="myfile.pdf">PDF file link</a></p>
3</object>

關於 <object> 這個 HTML 元素,請見這個發佈於 MDN Web Docs 的說明文件

至於以上 HTML 程式碼的最終呈現效果,請見此文章




Yamaha 的 Piano Sheet Converter 公開測試版

就在我寫了這篇解釋自行採譜好處的文章不久後,我偶然在網上得知 Yamaha 公司最近推出了一款名叫 Piano Sheet Converter 的音檔轉鋼琴編曲五線譜軟體,目前仍在公開測試版狀態。

因爲是公開測試版,Yamaha 目前允許人們免費無限制地使用該軟體,而之後的正式上線版將會以「免費試用、付費訂閱完整版」的形式發佈。


Piano Sheet Converter 這款軟體讓我聯想起 MuseScore.com 上的將 PDF 樂譜檔案轉換成可編輯的 MSCZ 檔的線上服務,不過 Piano Sheet Converter 則是更上一層樓:它能夠直接將原始音源轉換成可真人演奏的鋼琴編曲樂譜檔案(並且支援 PDF、MIDI 與 MusicXML 格式)。

沒錯,換句話說,它是個切切實實的電腦自動採譜工具


因爲 Piano Sheet Converter 只支援 Windows 以及 MacOS 版本,而我目前的筆電是跑 Linux 的,所以我得在一部虛擬機上運行 Windows 101 才得以試用這款軟體。

至於原始音檔,我使用的是這首由 issey(弌誠)演唱的 MoeChakkaFire(モエチャッカファイア)。我個人覺得將這首歌拿來給 Piano Sheet Converter 自動採譜會比較有挑戰性,因爲:

該軟體的操作方式滿直白明瞭的,只需要選擇要處理的音檔,設定鋼琴譜編曲的難度、調性、時長與風格,再按下「創建」按鈕讓它跑一段時間,輸出的成品就直接出現了。

結果,它輸出的檔案品質好到令我感到驚訝。

(中級難度、原調、原曲長度、獨奏風格。)

Open PDF file

(上級難度、原調、原曲長度、獨奏風格。)

Open PDF file

(以上 MP3 音檔皆由在 MuseScore 開啟對應的 MusicXML 檔案,使用 Muse Sounds 鋼琴音色輸出而成,沒有經過任何手動修改。)

雖然它沒有成功偵測到那 4/4 拍與 3/4 拍之間的拍子切換,但音高、調性與和弦大致上都有正確偵測到,主旋律線的大概形狀也有在。重要的是,除了一些些可見的基本記譜錯誤與 bug 以外,整份鋼琴譜裡頭幾乎找不到對真人演奏者而言過於不切實際的部分,記譜的品質也很乾淨(畢竟日本出版社的樂譜是出了名地整潔養眼)。滿分 100 分的話,大概就是 55 分的水準。


雖然 Piano Sheet Converter 只能生成鋼琴編曲樂譜,而且輸出的鋼琴譜還需要由人類再作一定程度的修正,但以「可以表演給普通觀衆看的基本水準編曲」而言,它可說是已能做到這一點了。

我都不知道應該要對此感到神奇還是害怕了。

若正向一點來想的話,在像 Piano Sheet Converter 那樣的自動採譜軟體品質還沒到特別厲害的程度之前,至少我可以說人類編曲家的優勢在於他們可以運用自己多年來累積的學識與經驗,將一首曲子改編成個人風格鮮明,並且令人感到耳目一新的版本,就像那鋼琴編曲界的「聖經」——電玩系列 Final Fantasy 的官方配樂鋼琴曲集(即 Square Enix 出品的 Piano Collections 系列)那樣。

看來,一板一眼的編曲方式如今已能漸漸被電腦與 AI 取代。在這個情況下,人類編曲家需要將自身的創意與個人特色融入編曲作品中,才能使其脫穎而出。


同場加映:無獨有偶,MuseScore.com 最近也提供了將原始音檔轉換成 MSCZ 格式樂譜檔案的線上服務,在本文初版發佈之時也是處於公開測試狀態。

我也拿了同一首歌作爲測試,結果輸出的成品長這樣:

Open PDF file

嗯,完全不堪使用呢。


  1. Microsoft 官網上有提供 Windows 10 以及 Windows 11 的安裝媒體,包括它們的 ISO 檔案。

    我也有嘗試使用 WineHQ,但試着運行安裝檔案時卻一直跑出錯誤。 ↩︎




在 Dorico 隱藏休止符

偶然找到了這篇(日文)教學文章,裡頭提供了在樂譜編製軟體 Dorico 上隱藏休止符的步驟(不是刪除哦!),那就是:

  1. 選取要隱藏的休止符。
  2. 視需要使用 Ctrl/Cmd + 8 快捷鍵顯示畫面下方的 Lower zone toolbar,並切換至 Properties panel。
  3. 在 Properties panel 的 Common 部分,將 Custom scale 設爲 1。
  4. 爲了保險起見,在 Color美式英文/Colour英式英文 選項中,將顏色的 Opacity(不透明度)設爲 0。

神奇的是,這個做法並沒有將目標的休止符真正地隱藏起來,而只是將該休止符縮得夠小,剛好可以「隱身」於某一條樂譜線中。

截圖取自 https://note.com/fujii_taiga_m/n/n5bd451c7d65b

截圖取自 https://note.com/fujii_taiga_m/n/n5bd451c7d65b

哇,如此簡單的事情,在 Dorico 上竟然要以如此迂迴、粗暴的方式才能達成?真是意外。就連原文作者也以「泥臭い」(粗糙)來形容這個方法。


反觀 MuseScore,我只需要選取想要隱藏的休止符,按下 V 鍵,就搞定了。

(我在上面影片中使用的按鍵顯示軟體爲 screenkey1。)

付費的專有軟體,並不一定就代表比較好用啊。


  1. 此軟體只支援 Linux 系統。Windows 或 MacOS 使用者可以考慮 keyviz。 ↩︎