調和的靈感 - Mat
2013年1月27日星期日
2012年7月17日星期二
讀書心得: 你以為你以為的就是你以為的嗎?
張貼者:
chchwy Chang
我自己的讀後感是,恩,這些題目對一個以前從未接觸過哲學的人來說太過犀利,第一次作答的時候,每翻過一頁都好像在呼自己巴掌,臉頰很燙。
「你以為你以為就是你以為的嗎?」書名念起來很拗口,但是很貼切,因為這些題目為的是要檢查我們腦袋內的想法是否一致,在邏輯上有沒有BUG。
我舉個例子,書裡有道題目「只要不傷害他人,任何人都有權自由追求自己的目標」要讀者回答同不同意,我認為這句話聽起來相當合理,所以勾了同意。過了幾題後,出現另一道題目是「為個人吸食而持有毒品的行為應予除罪化」,這次我的直覺是毒品這麼危險,怎麼可以除罪化呢,馬上勾不同意。
但是,我沒有發現這是刻意安排的陷阱,因為這兩句話其實講的是同一回事。
單純個人持有毒品,不散佈也不販賣,就不算傷害他人,那他就應該有自由追求自己的「吸食毒品」目標的權利,畢竟他只有傷害自己呀。這敘述聽起來有點危險,不過我必須承認一開始的確想的不夠清楚,我以為第一句話是真理,但馬上被反例打了自己的臉。
再舉一個例子,首先是「對藝術品的評斷,純粹是個人品味的問題」,接著是「米開朗基羅是史上數一數二的偉大藝術家」,這牽涉到評斷藝術的標準,不過你只能認同兩句話的其中之一。
書中我最有興趣的是「神明DIY工作室」與「信仰殺戮戰場」,這兩章擺明了直衝基督徒而來。當中有些問題圍繞著以下的敘述,如果你同意「神是全知、全能、又全然慈愛」,那該怎麼解釋世界上發生的許多苦難呢? 比如說被南亞海嘯淹沒的小女孩? 如果神沒辦法消除這些苦難,祂就不是全能。如果神沒辦法事先知道創造出來的世界會有這些苦難,祂就不是全知。如果神明知道有苦難,也有能力去掉,但是卻故意不做,那祂就不是全然慈愛。
我思考後的結論是,全然慈愛的神並不等於神希望世上的苦難越少越好,這些苦難都是在祂的允許下發生的。
書裡指出了一個基督徒的通病,被問倒了之後就嚷嚷「你不知道神是超越人所理解的嗎 」,但回頭又馬上賦予神非常明確地人的屬性。後來我也理解到這些尖銳的問題並不是故意要為難我對神的看法,而是逼迫我去反思一些比較深層的宗教議題,就像我從神研班學到的經驗,不要害怕去質疑信仰,越去思辨,通常最後的結果會越清晰。就像本章的結論「只有信仰淺薄的人,才會覺得這是一項嚴厲的挑戰」。
另一個有趣的議題是道德,我們常常會認為某些事不對,比如說闖紅燈不對,偷東西不對,更激烈一點的例子像是「近親發生性行為」,這件事在一般社會中被認為是禁忌。本書就故意問了一個白爛問題: 一對已經成年的兄妹,妹妹已知不孕,在兩情相悅而且絕對沒有第三者知道的狀況下發生了性行為,那麼他們的作為仍舊違反道德嗎?
這個問題其實牽涉到道德的根源,我們說一件事情是對的(符合道德)或者不對(違反道德),依據的理由是什麼?
我們認為一件事之所以是錯的,往往是因為這件事做了會造成傷害。但是這對兄妹的例子既私密又無害,還有理由說近親性行為絕對是錯的嗎? 我並不是要支持近親性行為,而是書裡指出了一件事,道德上人們經常從心底先入為主的討厭某件事,然後才製造出各種「理由」支持自己的結論,而不是反過來以理由為基礎推出結論。很多被認為違反道德的事情,甚至沒有辦法說出經得起考驗的理由,而只是出於一種發自心裡的情感反應。
最後用書裡的兩句話來提醒自己,「推理完善的論證往往不易理解,漏洞百出的論證卻常因為訴諸情緒和一般人的偏見而效果奇佳」「未受教育的人用詞簡單,反倒比受過教育的人更容易打動聽眾」,也獻給理盲與濫情的台灣社會。
2012年5月9日星期三
使用版本控制系統管理 Unity 3D 專案 - 以Mercurial為例
張貼者:
chchwy Chang
多人合作開發專案的時候,版本控制系統幾乎算是必備的工具啦,可是 Unity 3D 一開始設計的時候對版本控制系統並不是很友善,不像一些程式專案只要整包資料夾丟進去同步就好了,必須要先做一些設定才行。這裡我就用 Mercurial 當作例子,其他版本控制系統應該也是大同小異。
第一點的 Version Control 打開之後,你會發現專案裡的每個檔案旁邊都多了一個meta檔,比如說 haha.jpg 旁邊就會有一個 haha.jpg.meta。如果這個選項沒開,那同步下去會包準你有吃不完的 Missing Script 錯誤。
同步的重點
用版本控制系統同步Unity 3D專案的重點只有兩個:
- Version Control 選項要打開。確切設定的位置是主選單 Edit -> Project Settings -> Editor,然後右邊選擇 Meta Files,這樣子就算打開了。
- 真正需要同步的只有兩個資料夾: Assets 以及 ProjectSettings,其他都要在版本控制系統裡設成忽略。
第一點的 Version Control 打開之後,你會發現專案裡的每個檔案旁邊都多了一個meta檔,比如說 haha.jpg 旁邊就會有一個 haha.jpg.meta。如果這個選項沒開,那同步下去會包準你有吃不完的 Missing Script 錯誤。
第二點的話,如果你有觀察過Unity專案的內部結構,那麼應該知道專案內有 Asset、Library、Temp、XXX.csproj、XXX.unityproj、XXX.sln 等等東西。其中真正有用的資料只有 Asset 以及 ProjectSettings,其他的檔案 Unity 都可以由以上兩個資料夾中的資料自動產生。特別是 Library資料夾內有大量的暫時 Cache 檔以及碎檔,會嚴重影響版本控制的管理。
Mercurial 步驟詳解
下面就是我平常開啟一個Unity 3D專案,並且丟進 Mercurial 同步的步驟詳解:
- 開一個空的新資料夾,執行 hg init,確定空資料夾已經受版本控制。
- 進Unity開啟新專案,專案位置是剛剛步驟一的空資料夾。
- 打開Unity的 Version Control 選項。主選單 Edit -> Project Settings -> Editor。
- 離開Unity,把除了 Asset/ProjectSettings 以外的其他所有檔案都加進 .hgignore 忽略清單中,通常我的忽略清單裡有 Library Temp *.sln *.csproj *.unityproj *.pidb *.userprefs,這些都是開發過程中自動產生的檔案,同步了只會麻煩。
- OK,現在送出修改,hg add、hg commit,收工。
參考連結
External Version Control System Support
Unity 3.4 版之前,只有Unity Pro才能夠使用外部版本控制系統,Unity 3.5 之後則是Unity Pro / Free 都可以開啟版本控制的功能,我跟實驗室同學們用svn,私下用 hg ,同步起來都沒什麼問題。
Unity 3.4 版之前,只有Unity Pro才能夠使用外部版本控制系統,Unity 3.5 之後則是Unity Pro / Free 都可以開啟版本控制的功能,我跟實驗室同學們用svn,私下用 hg ,同步起來都沒什麼問題。
訂閱:
文章 (Atom)
