2010/12/11

幾個我常看的YouTube頻道,練習英文聽力。

首先,Ray William Johnson,每一集的內容大概是,摘錄幾支點閱率很高的影片,做出評論(其實也不是評論,就是亂哈啦亂打屁而已),每一集差不多是5分鐘,大概一個禮拜會有兩集。

譬如說,當然啦,網路上的王道影片:"貓"。這一集裡面有貓打架而不是去追旁邊的鴿子。


這一集,總之,生活太無聊了,有個女孩被朋友個塞進洗衣機(烘乾機?)裡。


每一集在最後面,會開放大家提個問題(譬如What would your smurf name be),要用影片的方式提問題,然後其他人可以留言回答,他會剪輯一些好笑不錯的回答(譬如Eddie Smurfy、Chronic Masturbator Smurf)放在影片末段。


然後是雀斑妹,meekakitty,表情非常非常豐富,音調有高低起伏,喜歡打game,內容其實也沒什麼,就是一般的打屁哈啦,練練聽力囉。

這一集談到她很喜歡薩爾達。


這一集還cosplay星艦(Star Trek)的服裝。可惜她並沒有常常cosplay,不過有趣的t-shirt倒不少(話說回來,外國人有趣的t-shirt本來就不少)。



以前有提過的Marina Orlova(Hot For Words),俄國口音,影片內容是講解英文單字的起源。

我們都知道,很久以前的事情有些都忘記了,但有一些不知道何,就是記在腦海裡,我想,那是因為伴隨著強烈的情緒。若有個美女老師,這應該可以增強你的記憶情緒吧。


不過呢,我不太喜歡她最近的短髮造型,orz。



蘋果迷,iJustine。很搞怪。

譬如說,在蘋果的店面裡面跳舞!


譬如說,在路上騎著一輛小小的兒童車。



另外,也可以看各大學的上課錄影,譬如Berkeley、Stanford、MIT等等。

另外,這兩個技術影音網站,InfoQ與Channel 9, 也常有高品質的電腦資訊科技的演講錄影。

另外,Khan Academy,有很多科學數學的課程教學影片。

還有,Google放上YouTube的演講錄影、技術研討。

最近這一支,裡面有各個國家的口音,真的很難聽懂啊...orz,被打敗了。



大概就是這些了,還請留言告訴我你喜歡的頻道。

翻譯:這不是物件導向程式設計啦(What OOP Isn't )by Benjamin Supnik

文章:What OOP Isn't(這不是物件導向程式設計啦)
日期:2010.12.09
作者:Benjamin Supnik
作者的部落格:The Hacks of Life


這不是物件導向程式設計啦(What OOP Isn't)


想當初,我開始上第一堂的電腦科學課程(不過在那以前,我已經自己開始寫程式有一段時間了),系上教職員正在打一場內戰,某部分人信仰著物件導向程式設計(object-oriented programming, OOP),他們相信世間萬物皆物件,物件就是王道啊,他們教授要我們學生用OOP的方式來實作鏈結串列(linked list):哇賽,每一個節點都是被完完全全封裝起來的物件!


(什麼,你有興趣知道嗎,讓我告訴你,串列大部分的編輯動作,都必須是堆疊-遞迴式(stack-recursive)──當呼叫一個節點的next時,節點要把它的'next'設定為呼叫的回傳值,讓某節點能夠'把自己切掉'。嘿嘿,聽的懂算你強,這讓那些從沒碰過鏈結串列的學生,一個頭兩個大,根本不知道到底自己在幹嘛,因為,他們在同一個時間,碰到了遞迴與鏈結串列,而寫出來的程式,結果是,執行起來有著LISP的效能,而程式碼看起來像C++的優雅,真是糟糕可怕啊。)


他們說,OOP的三大支柱是封裝、多型、繼承(encapsulation, polymorphism, inheritance),我以前已經發表文章說過為什麼最後一項通常會是個不好的概念,回想那時在學校的時光,我還沒有足夠的程式開發經驗,所以只能說,當時我們被教的東西(全部都是OOP,不論何時何地)比我一直以來在寫的程式(用物件來表示某種很大的東西,例如遊戲裡的一個角色)要難上好幾倍,寫出來的程式碼,又囉嗦也沒有特別快,現在,我有了軟體工程的經驗,我想,可以把其中問題所在更精確地描述出來。


有時,看到程式新手眼裡閃著OOP字眼,努力學會這到底在講些什麼,我會跟他們說,封裝、多型、繼承的相對重要程度大概是90%、10%、0%,OOP絕大部分的價值所在,是它提供機制與作法,可以把一段程式碼跟其他不相干的程式碼分離開來,而不會混雜在一起,而這點對大型軟體開發專案很重要,而你不可能教會大學生這一點,因為他們還沒有夠多的程式開發經驗,無法體會其中的重要性。


多型也不錯,但據我的經驗,它不像封裝那麼有用,如果你有個多型介面,有個介面就表示,它是被封裝的,但是,有許多的案例顯示,有些介面就只會用一次,而且沒有多型這項性質,粗略來講大概是90%-10%吧,所以我認為扮演舉足輕重角色的是封裝。當然,有些產品與領域比其他地方更常使用多型,WorldEditor(Laminar Research的開放原始碼場景編輯器)大部分的核心元件採用多型介面的架構,但X-Plane本身就很少。

我提出這點,因為我大概(在以後的發表文章中)會把OOP與其他技術(與軟體工程碰到的實質困難有關的)作個比較,不過OOP有一點歷史包袱,過去常常講,OOP可以讓我們變成更好的程式設計師,可以幫助我們寫出無臭蟲的程式碼,執行速度更快了,或是可以幫助差勁的程式設計人員升級成優良的,這些都被時間證明了,只不過是些天真白痴一廂情願的想法(特別是,差的程式設計師,不論給予什麼樣的技術或方法,照樣可以生產出低劣的程式碼,一大沱)。

所以,我希望幫OOP這玩意作類似如下的定義:在語言上提供好的支援來進行封裝,有時候需要有多型介面,加速撰碼。這對我來說就非常好用了!我可以僅用純C語言寫出相同的東西,但不僅需要花更多時間打字,還會讓我變成很嘮叨的人,不斷囉囉唆唆血壓上升,何苦呢?

2010/11/07

讀後介紹:情感行銷的符碼(The Culture Code) by 克勞泰爾·拉派爾

書名:情感行銷的符碼(The Culture Code)──消費 生活 文化
作者:克勞泰爾·拉派爾(Clotaire Rapaille)
譯者:馮克芸


人常常口是心非,有時出於刻意,有時出於不自覺;人常常話中有話,有時礙於語言的貧乏而無法正確表達心意,有時巧妙地以話術包裹上糖衣或詼諧或高深莫測;男人常常說謊,有時是因為現實的需求,有時是因為這個世界就是一個大謊言;女人常常說謊,有時是因為太理想太夢幻,有時是因為真話難為假話通行四海。



好像有一點點離題,讓我們回頭檢視一下作者在這本書裡討論的主題。這本書是作者在三十多年來為世界各大公司破譯顧客心理想些什麼的經驗總談,設法了解人們自己都不知道的行事原由,你不能只是聽顧客說,你要從文化視野找出烙印在內心深處大腦底層的銘記,那會強烈影響思考過程與未來行動的烙印,所以要了解人們真正的意思的第一步就是忽略他們所說的話。

這並非暗示人們有意說謊,而是一般人會用腦中控制智能的部份想像發問者想聽些什麼話,然後提出對方想要的答案,但實際做決定行動時,用的是帶有強烈情緒的經驗做判斷,從小到大的經歷以及文化加諸其上的情感連結,才是真正左右行事的準則。

每個文化都是不同的,所以光一套絕對不可能吃遍全世界,我一點都不愛吃起司但法國人愛死了,德國與美國的“工程”其涵意就不同,你在日本跟歐洲賣咖啡的策略絕對有很大的差異,酒、性、肥胖、美麗、青春、家庭等等,每個文化都有不同的銘記,每個國家從其他國家文化看來也都不同。想賣東西,先了解該國文化吧。

書中說,人腦分成三部分,腦皮質負責學習、思考、想像,邊緣系統負責情緒,還有爬蟲類腦負責生存以及繁衍,猜猜哪部分最具影響力?

作者用這樣的角度在書中討論各種事情,晚餐、工作、食物、品質、逛街、美國、健康等等,了解我們每一行動所背負的意義,將讓我們獲得極大的自由。