2008年7月21日 星期一

荀子性惡論

最近在讀普通心理學(Atikinson and Hilgard's Introduction to Psychology),閒暇之餘,兼讀一點荀子,兩相參照之下,對過往我們所認知的「性惡論」一說,有些新的體會。
節錄一段荀子性惡篇的原文如下:
人之性惡,其善者偽也。
今人之性,生而有好利焉,順是,故爭奪生而辭讓亡焉;生而有疾惡焉,順是,故殘賊生而忠信亡焉;生而有耳目之欲,有好聲色焉,順是,故淫亂生而禮義文理亡焉。
然則從人之性,順人之情,必出於爭奪,合於犯分亂理,而歸於暴。
故必將有師法之化,禮義之道,然後出於辭讓,合於文理,而歸於治。用此觀之,人之性惡明矣,其善者偽也。
...下略...

2008年7月2日 星期三

回溯相容真是個地獄...T.T

這是一篇抱怨文。
Obj-C 2.0的語法相當的方便,當開發目標放在10.5以後的系統時,property,fast enumration等新增語法,
確實可以加快開發的速度。再加上Cocoa binding等技術,在10.5上開發真的是相當輕鬆-如果只打算在10.5上跑的話。

然而很不巧的,目前大部分的需求,還是離不開10.4的環境,當要把在10.5開發的程式,轉到10.4的時候...
對於開發者來說,這可真是一個問候賈布斯全家大小的好時機...
首先是所有coredata中,使用property的部分,全部要換成key-value coding的方式去呼叫,光這點就足以讓你問候一下賈布斯高堂近況...
其次,data modal中如果有用到self inverse relationship時,你可能會想順便問一下賈布斯的祖母過得好不好...
再來,如果在NSTable中透過NSTableDatasource實作Drag and Drop,但卻是用binding取得table的資料的話...嗯...我想應該會有人想去研究一下賈布斯的祖譜吧...

2008年6月19日 星期四

應用NSTabView切換視窗內容

在設計軟體時,有時候會需要在兩個不同的View之間做切換。
舉例來說,當我們在iTunes中,點擊左方資料庫的「音樂」,「影片」或「電視節目」,在右方的Detail View中,預設會以列表的方式呈現。
但當我們點擊到「Apple Store」時,則右方的Detail View會以類似網頁的方式,呈現目前Apple Store的內容。
在過去,剛開始學習Cocoa的時候,因為不清楚可用的元件,對於這類的需求,在實作上,往往會以一個Custom View做為Wrapper,用置換其Content View的方式,來達成切換內容的需求。
不過事實上,Cocoa已經提供了好用的元件--NSTabView,能夠更快速的完成類似的UI。
一般我們在使用NSTabView的時候,都是在需要明確的Tab元件 ,也就是需要有一個地方能夠秀出
1. 目前的View的目的,或是名稱。
2. 其他可選用的View。
不過上面我所舉的例子,則比較類似UI狀態的切換,通常不會秀出這些資訊--在這種情形下,一般我們不太會去考慮用到NSTabView。
但是,Cocoa的NSTabView,提供了另一種型態的使用法--Tabless TabView。利用NSTabView的Tabless type,就可以不用秀出Tab,看起來就如同用Custom View去實作View的切換一樣。
而使用Tabless type的View,還有一個好處,就是可以自行去更換Tab的樣式,而不需撰寫NSTabView的子類別。
Xcode的UI中,Project/Debug View的切換,就是一個實際應用的例子。

2008年6月12日 星期四

關於「iPhone程式開發入門」一文,以及字首字根檔案

在過去一年來,一直有網友來信要求我所整理的字首字根檔案的權限。
而自iPhone SDK公布以來,也有些有興趣的朋友,留言或來信希望我能開放「iPhone程式開發入門」的權限。
在此表達一下個人在這個時點上,對這兩組文章的態度與作法。
首先,字首字根檔案的來源,是個人參加來欣方有毅老師的GRE課程的上課講義暨筆記的重新整理。
在目前的著作權法的架構下,公開此檔,可能會損害到方有毅老師的權益。
而個人目前也沒有意願,時間,精力,去與方老師商量開放的可能性。
網友如果想要此檔案,個人之前完成時,已寄送一份予方老師,你可以報名來欣的課程,我相信方老師應該會很願意分享給修課的學生。
至於「iPhone程式開發入門」一文,在目前(iPhone SDK beta7)的授權條款下,依然無法公開討論。
我本人,對iPhone SDK的授權條款,固然有諸多不滿,但基於個人之理念,在蘋果未正式宣告釋出之前,我不會再發佈相關文章。
以上,對於需要這些檔案的朋友,還請見諒。

2008年5月21日 星期三

使用CoreData的小技巧

上個月在參加過CocoaHeades後,自己也試著使用CoreData。
雖然在現場藍兄講得清楚明白又容易,自個兒嘗試使用卻不是那麼回事。
果然是看人挑擔不吃力,自個兒挑擔壓斷肩...

在使用CoreData時,個人覺得比較麻煩的是,CoreData的說明文件似乎已預設開發者都對資料庫的設計有一定的基礎,所以並沒有提到一些基本的資料庫程式的原則-像是怎麼規劃,如何做正規化,Data Model的圖怎麼對應到實際的資料庫與呈現的介面之上? 除此之外,其他的地方照著文件一步步進行,也還算是輕鬆如意。

2008年4月21日 星期一

iPhone程式開發入門

初稿...
iPhone程式開發入門
重新檢視一下,其實寫得蠻瑣碎的....
===================================
經人提醒,可能違反NDA,先暫時鎖上。
另將Objective-C基本語法部分抽出如下:
Objective-C基本語法

2008年3月14日 星期五

2008年3月11日 星期二

寫給初學者的簡易程式設計概念

這篇文章,是為了讓初學者能大略了解傳統的(循序的)程式設計而寫的。
原本是要做為CocoaHeads的講稿的前言,但實在難以在有限的時間之內講述明白,因此寫成文章,在此先行釋出。
寫給初學者的簡易程式設計概念