《The Nature of Code閱讀心得筆記——使用Python實作》開始發表

更新於 發佈於 閱讀時間約 6 分鐘
因應原書於2024年改版後授權範圍改變,已改版為《The Nature of Code閱讀心得與Python實作》。

俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。之所以隔了這麼長的時間,一方面是因為不是每天都在做這件事,另一方面則是因為有很多東西需要先規劃、處理好,否則等寫了一段時間開始發表後要再修改,那將會事倍功半,而且容易出現前後不一致的混亂狀況。

先來談談寫作用的軟體環境。

在開始寫這份閱讀心得筆記之前,就已經不再使用Microsoft Word,而改用VS Code搭配markdown來寫文章。VS Code也支援TeX,所以即使有數學式子,顯示上也不成問題。

比起Word,markdown雖然排版功能沒那麼豐富,但寫起東西來,反而順暢很多,尤其是數學式子,直接打字就可以,而且馬上看得到呈現出來的效果,不需分神用滑鼠點來點去,找個老半天才找到要的符號。事實上,Word現在也支援TeX,不過不怎麼好用,應該也沒幾個用Word的人會去用,畢竟TeX的門檻還是比Word高。人是很懶的,寧可使用效率差但熟悉的工具,也不想費神學可以提升效率的新工具。

另一個使用markdown的好處是,markdown的檔案就是普通的文字檔,幾乎不會有毀損的問題,即便出現毀損的狀況,也比較容易救回沒損壞的部分。用過Word的人,尤其是用過比較早期版本的人,應該都有檔案毀損,完全一籌莫展,只能搥胸頓足的慘痛經驗。

至於在程式開發環境方面,使用的IDE是Spyder;原書使用的程式語言是Processing,現改用Python來實作。目前使用的Python版本以及用到的package如下:

Python 3.10.9
Matplotlib 3.7.1
Pygame 2.3.0
Noise 1.2.2
NumPy 1.23.5

其中製作動畫是選用Pygame這個package。本來一開始是想用turtle,但實際測試了一下,效果實在比不上Pygame,所以就考慮著要用Pygame。只是,Pygame當時已經很久沒更新了,這點頗讓人在意的,畢竟一個不再更新的package,有可能在Python更新至某個版本之後就沒法相容,這可就大大的不好玩了。所幸,正在猶豫的時候,Pygame又開始更新了。既然又開始更新了,那原先的擔心也就可以放下了,最後決定用Pygame來製作動畫。

在寫程式時,變數名稱的寫法是個傷腦筋的問題,原本想使用跟原書一樣的名稱,以便有疑問時可以方便對照查閱。但是,畢竟Processing和Python在變數名稱的格式上,採用的是不同的慣例寫法。所以,就只能盡量維持使用與原著相同的變數名稱,但主要還是會遵循Python的慣例寫法。

前面提到的那些事情都搞定之後,就是努力的讀、奮力的寫了。

寫完頭一章之後,覺得這樣子的工作方式是可行的,後續應該也不至於會有太大的變動,接下來就該來看看要怎麼發表了。

依照原先的想法,《The Nature of Code閱讀心得筆記——使用Python實作》是要放在「方格子」,只是啊只是,就那麼湊巧,這時候「方格子」推出了「廣告分潤計畫」。

這實在是很傷腦筋!《The Nature of Code》這本書採用的授權方式是CC BY-NC授權,也就是僅能非商業性使用。雖然在寫閱讀心得筆記的時候,並不是直接翻譯原書的內容,而且所有的圖、程式也都是重新畫、重新寫,但畢竟還是根據原書的內容所寫的,如果放在已啟用廣告分潤功能的方格子上,那這樣有沒有違反授權?

這問題還真是麻煩,仔仔細細的讀了CC授權的資料,也在網路上讀了很多著作權方面的資料,還看了些法院的判例。在被一堆法律名詞搞得昏頭昏腦的幾天過後,最終得到的結論是:一切都要由初一十五不一樣,天威難測的法院決定。

既然沒法肯定絕對沒有違反授權,但又想啟用廣告分潤功能,看來就只能把文章放到其他沒有商業行為的平台了。但要放在哪個平台呢?研究了老半天,最後決定放在Google的Blogger上。

Blogger之所以雀屏中選,除了免費以及沒有啟用Google AdSense就不會有廣告之外,最重要的是可以藉由加入HTML/JavaScript程式碼來建立小工具,以擴增像TeX、程式碼顯示等功能。這還真是失之東隅,收之桑榆,把文章改放到Blogger之後,原本還因為方格子沒有TeX功能,而讓人傷腦筋的數學式子顯示問題,這下再也不用傷腦筋了。

往後,《The Nature of Code閱讀心得筆記——使用Python實作》完整的文章會放在Blogger,而在方格子放的,會是每章簡短的簡介,以及依章節名稱設定的連結。原則上,每寫完一節就發表,免得新內容出現的時間間隔過長。另外,有些屬於自己原創,不會有授權疑慮的內容,也會擷取出來張貼在方格子上。

《The Nature of Code閱讀心得筆記——使用Python實作》

連結:方格子、Blogger

留言
avatar-img
留言分享你的想法!
avatar-img
ysf的沙龍
15會員
142內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
隨著科技日新月異, Python也是必須要碰到的程式碼之一, 但...Python寫法真的好精簡啊Σヽ(゚Д ゚; )ノ
Thumbnail
隨著科技日新月異, Python也是必須要碰到的程式碼之一, 但...Python寫法真的好精簡啊Σヽ(゚Д ゚; )ノ
Thumbnail
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
Thumbnail
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
Thumbnail
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
Thumbnail
很多文章都說未來是人工智慧的時代,程式語言是必備能力,靠著一時腦熱蒐集了許多資訊,我想說學習不用很厲害才開始,只要有興趣就開始吧,就算用不到也沒關係!
Thumbnail
很多文章都說未來是人工智慧的時代,程式語言是必備能力,靠著一時腦熱蒐集了許多資訊,我想說學習不用很厲害才開始,只要有興趣就開始吧,就算用不到也沒關係!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News