不輟集

書寫漢語的另一種方式——表音方塊字「補字」的誕生

注意:本文中的「漢語」指代普通話、閩南語、粵語、客語、吳語等等所有方言的集合。「漢語拼音」指代普通話拼音,不包括其他方言。「台羅拼音」指代閩南語台灣話羅馬字拼音。「粵語拼音」指代香港語言學學會粵語拼音方案。

引子

漢字很長一段時間以來是中華大地乃至鄰國如現今的日本、朝鮮、韓國、越南等的主流書寫形式,儘管這片大地上的人們說著不同的方言。

如今漢字依然是中華大地的主流,而鄰國在二戰後普遍採用了新創制的表音文字,如日本的假名、朝韓的諺文、越南的國語字,間或夾雜些許漢字。

無疑,各種語言都應該有恰當的書寫形式,以便文化的傳承和發展。鄰國採用他種書寫形式,除了民族國家的因素外,必定是其語言中有跟漢字不相適應的地方。

拿日本來說,其語言文法本來就跟漢語不一樣。在沒有漢字傳入之前,他們是通過口耳相傳的方式傳承文化;漢字傳入後,才有了紙面上的紀錄,但終究是「言文殊途」。例如:「私」在漢語中是個單音節詞,有「我」的意思;而日語中表達「我」含義的詞卻是多音節詞,讀作「watashi」。在日本發明假名之前,表達「我」是借用漢字「私」表示;發明假名之後,表達「我」就可以直接寫作「わたし」。

  • 漢語拼音:
  • 漢語漢字:
  • 日語羅馬字: watashi
  • 日語漢字:
  • 日語假名: わたし

接續讀落

做一個「不成材」的人

我病了,基因突變了,準備給醫生割一刀了。

回首過去三十年來,在燈火闌珊處,雖偶有良師益友相伴,心中依然焦躁不安。一直以來被培養成材,成爲特定用途的器物,以求在社會中發揮功用,有工作有收入能生存。如今,這器物也有壞的時候了。

接續讀落

Python 程序內存管理及OOM問題分析

內存管理

Python 採用以引用計數法為主,以標記-清除算法和分代收集為輔的內存管理策略。

標記-清除算法會從根節點出發標記所有「活動對象」,然後再將沒有標記到的對象標記為「非活動對象」進行回收。因此該算法可以用來解決循環引用導致的內存洩漏問題。

分代收集算法會將內存對象分到三個世代中,每個代觸發回收時只回收當前代,並將存活的對象轉移到下一代,對象所在世代越久遠的越不可能是垃圾,觸發回收的頻率越低。因此該算法通過空間換時間的方式提高了垃圾回收效率。

OOM 問題分析

當進程中有大量線程在等待執行,或者有大對象未被及時釋放時,會造成系統內存資源緊張,甚至 OOM(內存溢出),從而服務進程被 kill。

接續讀落

Python 程序如何做到高效且穩健?

Python 幾乎是每個程序員都會使用的語言,但大多數人都將 Python 視為腳本語言,在需要的時候運行一下,進行數據處理或抓取等。大部分情況下都是一次性的工作(Job),很少有人會將其作爲長期運行的後端服務。這是爲何?

Python 是一門解釋型的語言,其依賴於 Python解釋器(或直譯器,官方的且最流行的是 CPython解釋器)來加載源代碼然後解釋運行。解釋運行使得 Python可以在終端中直接運行 python 即可開始一邊寫代碼一邊看運行結果,對用戶相當友好,但與之同時也帶來了無可避免的性能問題,從而難以成為後端服務的主流。主流如 Java、Go 都是編譯型的語言,意味著源代碼需要先編譯成二進制文件(在Java中是字節碼),然後直接在運行時(在Java中是JVM)中運行,且在編譯成二進制文件的過程中通常會進行若干優化,使得運行的程序更加高效。

接續讀落