EQ 十週年紀念版

十年的經典書籍了,1996年初版時我還在唸國二吧,那時候似乎非常暢銷轟動,不過以我那時候的年紀,印象中在書店看到覺得太深奧看不太懂很無趣呢。

今年時報出版重新換封面出了十週年紀念版(新封面比較好看有質感),我在學校的書店看到這本書就買下來了。對於EQ,大概的概念想必大家都知道了,這本書用了非常多的實驗結果來論述EQ的本質跟影響,包括神經科學、心理學、演化論等,理性與感性同樣重要,EQ情緒跟我們的生理機制十分密切,互相影響。其中讓我聯想到之前念過的神經外科的黑色喜劇中的第一條規則 : 當你的腦袋被打開,跟空氣接觸之後,你就再也不是從前的你了。這本EQ就有些例子就是開過腦之後因為傷害到腦的某些神經,手術後性情大變….:p

這一陣子的暢銷書先別急著吃棉花糖的實驗也在這本書提到了,小時候如果能克制先拿棉花糖,長大後有比較好的表現。這是因為抗拒衝動是各種情感自制力的根源,自我調節情緒的根本意義在於克制衝動以達成某種目標。

這本書也提出很多方法增進EQ能力及如何處理負面情緒(憤怒/焦慮/沮喪),除了可以好好了解EQ之外,對於各種日常生活、男女關係、婚姻、親子關係、教育、工作、健康等都非常有幫助的一本書。

Agile Web Development with Rails 第二版預告

 

Ruby on Rails 最重要的一本書 Agile Web Development with Rails, 2nd Edition 終於定稿送印了,即將在 12/15 上市,如果等不及也可以線上買PDF。這是個偉大的時刻搭配 Rails 1.2 的發布,它將涵蓋 RJS, migrations, resources, multi-format actions with respond_to, polymorphic associations 跟其他最新的功能。

想像一下這本書有多麼不容易,作者群除了撰寫 Rails 核心程式碼,還要分神寫書。Rails 1.2 RC才剛出來不久,等到你拿到這本書的同時,final release of 1.2 才正要熱騰騰發行呢~… :)

資料來源: Riding Rails 跟 DHH 部落格

什麼是REST跟RESTful?

Update(2008/5): 事隔一年多,我對於 Rails 如何應用 RESTful 這個概念有完全不同的切入角度,詳見 Practical Rails2 投影片。

Ruby on Rails 1.2 的一個重要進展是 RESTful,在了解怎麼用之前,我們要先了解什麼是 REST(Representational State Transfer)?

什麼是REST?

REST 是一種分散式超媒體系統(如WWW)的軟體架構風格,你可以想像它是一個良好設計的Web應用程式規則: 一組網路Web頁面(虛擬的狀態機器),其中 Client 透過點選超連結(狀態變換),結果是下個Web頁面(表示應用程式的下一個狀態)。

REST 所描述的網路系統包括三個部份:

  • data elements (resource, resource identifier, representation)
  • connectors (client, server, cache, resolver, tunnel)
  • components (origin server, gateway, proxy, user agent)
  • 幾個重點:

  • Data elements 由標準化介面存取
  • Components 透過介面傳輸 資源表徵 (representations of resources) 來溝通,而不是直接操作資源本身。
  • Connectors 提供 component 的抽象介面來溝通,隱藏溝通機制的實作細節。
  • Components 使用 connectors 來存取,connectors 提供資源的存取或居中。
  • 所有來自 connector 的 requests 必須包含所有必要的資訊來了解該 request,不需要依靠之前的request (即 stateless) 閱讀全文〈什麼是REST跟RESTful?〉
  • Kaspersky Anti-Virus 6 中斷錯誤

    雖然防毒評比總是第一,不過竟然要使用者手動修正程式錯誤問題,實在不是很友善:

    首先是不定期中斷執行 : 卡巴斯基斷開問題

    再來是從11/22之後無法更新病毒碼 : 11月22日之後卡巴斯基產生程式錯誤自動中斷的錯誤修正步驟

    另外當初花錢買的時候(難得花錢買軟體哩~),竟然沒有辦法馬上安裝正式版,只能跑試用版。必須手動上他們網站登記啟動碼,然後過個三四天等他們email寄給你key(我是等不耐煩又寄email過去催),就算要防盜版也可以像微軟一樣直接網路啟動啊~ 一買到沒辦法馬上用還蠻不高興的。

    Joel談Ruby效能

    中文翻譯: Ruby Performance Revisited,大意是這樣的:

    每個改用Ruby或Rails愛好者都了解這個原理: 開發時間比CPU時間更重要,我們都希望開發者比CPU更閒。不過 Ruby 的效能不如別人是不爭的事實(The Computer Language Shootout Benchmarks 註),當你碰上需要密集運算的時候(如Bayesian 過濾spam 或是 大量圖表資料運算),可能會因為Ruby太慢而沒辦法加上該功能,不然就是得呼叫另一種程式語言。

    因此,當碰上Ruby的效能問題而只是說「開發時間比CPU時間更重要」是沒有意義的。就算你不做需要密集運算的東西,如果發現自己得買100台伺服器而非10台時,你可能就會突然重新思考整個開發者時間與CPU時間的方程式。

    註: 大概比較一下幾個主流語言  Java(快Ruby 10x以上) >> Perl (約快5x) > Python > PHP > Ruby == Javascript

    Ajax in Action

     

    軟體設計層次的Ajax書,很認真的思考 Single Page Application。前三章引入Design Patterns、重構的概念到Javascript,將 Web Page提升到應用程式的層次。四五章很精采地分析架構,包括不同層次的MVC觀點,以及各種框架的大局觀跟分類,其中關於Ajax如何交換資料提供了很好的思考,以下是我的筆記(Rails是我加的,書上沒有):

    內容中心的互動 (content)

    • Server 傳回 HTML 片段,Client 在特定位置更新顯示。
    • 簡單直覺,撰寫容易。
    • 功能有限,畫面上的變化只限於固定矩形區域,無法進行複雜的DOM操作。
    • Rails使用Prototype加上配套的 Ajax helper 即可達成。

    腳本中心的互動 (scripting)

    • Server 傳回 Javascript 片段,Client 直接執行。
    • 功能彈性大,可自由操作DOM,多處更新。
    • Rails 支援在 Remote Javascript Template (RJS),使用Ruby語法撰寫Javascript,傳給Client執行,減少撰寫raw Javascript。

    資料中心的互動 (data)

    • Server 傳回 XML 或 JSON 資料,Client 的 Javascript 解析處理(或使用XSLT)。
    • XML的解析較麻煩,現在流行用JSON(JavaScript Object Notation)。
    • 上述兩種架構與Client相依,但資料中心即Web Service(REST)架構,具可重複使用性(可供別的前端使用)。
    • Rails支援 XML Template跟JSON。
    • 因為剖析資料的負擔完全放在 Client 端,所以 Client 端的Javascript程式或XSLT工程較大。

    第六章 使用者體驗 實作了一個通知框架,第七章講安全性,第八章講效能及記憶體洩漏(memory leak)問題。剩下後半本則是一章一案例。

    另一篇書評 : Relevance Review #5: Ajax in Action

    註: 之前寫的 ajax 傳送格式比較 : XML, HTML, or JSON?