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

閱讀時間約 5 分鐘
因應原書於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
15會員
131內容數
寫點東西自娛娛人
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ysf的沙龍 的其他內容
不知道為什麼,原本相安無事的兩個人,突然間看對了眼,開始出雙入對、形影不離。這除了讓人看了很不順眼之外,也很浪費時間。雖然想盡辦法要拆散他們,但都沒成功。逼不得已,只好狠下心來,冒險將一切抹除,讓他們走完「成、住、壞、空」最後的階段,輪迴至下一輪的「成、住、壞、空」。只是沒想到
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無
在Python官網的Glossary第一次看到「duck typing」這個詞的時候,真的是很疑惑:Python怎麼會跟鴨子扯得上關係?更疑惑的是,那還是隻會打字的鴨子!
利用L-system畫出來的fractal圖案,最大的特色就是,橫看、豎看、左看、右看,全都一個樣,所以感覺總是不自然。就拿畫樹木來說吧,即便樹枝長度可以不一樣長,但是分岔的角度卻都一樣。所以囉,乍看之下,挺像一棵樹的,但仔細看的話,卻總覺得哪裡怪怪的,太人工化了。那怎麼讓它自然一些呢?
構成L-system的,是一串由符號所構成的字串。這字串裡頭的符號,可以是字母或者是任何喜歡的鬼畫符,想要用emoji也可以,只要你喜歡,沒什麼不可以。
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
不知道為什麼,原本相安無事的兩個人,突然間看對了眼,開始出雙入對、形影不離。這除了讓人看了很不順眼之外,也很浪費時間。雖然想盡辦法要拆散他們,但都沒成功。逼不得已,只好狠下心來,冒險將一切抹除,讓他們走完「成、住、壞、空」最後的階段,輪迴至下一輪的「成、住、壞、空」。只是沒想到
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無
在Python官網的Glossary第一次看到「duck typing」這個詞的時候,真的是很疑惑:Python怎麼會跟鴨子扯得上關係?更疑惑的是,那還是隻會打字的鴨子!
利用L-system畫出來的fractal圖案,最大的特色就是,橫看、豎看、左看、右看,全都一個樣,所以感覺總是不自然。就拿畫樹木來說吧,即便樹枝長度可以不一樣長,但是分岔的角度卻都一樣。所以囉,乍看之下,挺像一棵樹的,但仔細看的話,卻總覺得哪裡怪怪的,太人工化了。那怎麼讓它自然一些呢?
構成L-system的,是一串由符號所構成的字串。這字串裡頭的符號,可以是字母或者是任何喜歡的鬼畫符,想要用emoji也可以,只要你喜歡,沒什麼不可以。
一直以來都是靠手動的方式來進行檔案的版本管理,也就是自己複製檔案,然後改檔名,加入可以識別的編號。不過,越來越覺得,有必要用版本控制系統來幫忙,因為手動的方式實在很累人,而且當需要查找以前更動的內容時,非常沒有效率。當發現Spyder也有支援Git時,就想著:「好吧!那就試用看看好了。」
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
嚴格來說,不能算軟體開發分類,畢竟這篇比較像是通知文與心得文,但一定要選個分類,我就選之前常發的類別。 大意其實就只是我的技術文件之後不在 vocus 更新了,可以前往我用 docusaurus 架的網站上看新的技術文章。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
Python擁有便攜性和通用性,適用於多種場景,同時具有全球通用性。Python在科技製造業、資料分析、人工智慧等領域有廣泛應用,對於理工科背景者而言有獨特的優勢。透過在線課程、自學書籍、實作專案,以及參與社群和開源專案,理工背景者可以達成從轉職進入Python程式領域的目標。
Thumbnail
這篇文章描述了作者從兼職開發轉為全職開發的過程,並分享了從混進學界指日可待的積極態度。作者也提及自己在專案製作與個人生活上的矛盾與感想,最後分享了專案管理和敏捷開發相關的文章與影片。
在一次五天的年假中,我決定開始學習Python編程。雖然最初進展順利,但後來發現自己在解題和邏輯方面遇到了困難。經過思考後,我決定轉而學習C/C++,並且制定了一個計畫,希望成為一名後端工程師。這將需要挑戰我的時間管理能力。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
VS code是什麼? Visual Studio Code(通常縮寫為VS Code)是微軟開發的一款免費且開源的跨平台文本編輯器。它支持廣泛的編程語言,提供了一系列先進功能和插件,讓開發者能更有效率地進行代碼編寫。VS Code擁有優秀的代碼自動完成、錯誤偵測、內建的版本控制系統等特性。
嚴格來說,不能算軟體開發分類,畢竟這篇比較像是通知文與心得文,但一定要選個分類,我就選之前常發的類別。 大意其實就只是我的技術文件之後不在 vocus 更新了,可以前往我用 docusaurus 架的網站上看新的技術文章。