關於我自己

我的相片
New York, New York, United States
我叫江奕賢啦

2007年6月18日

所有 O'Reilly 書免費讀

不知道現在的小朋友對oreilly的書看得多不多
從我上NYU開始 O'Reilly的書對我來說就都是免費的了
(不止O'Reilly 幾乎所有的電腦書、生物醫學書、以及期刊 全都線上免費閱讀 付給NYU幾百萬的學費不是交假的)
畢業後照樣免費啦 哇哈哈 (終生免費嗎?I don't know)

最近教授終於慢慢的不吵我了
又有時間開始看書了
剛開始很不習慣 太久沒看書了 靜不下來 只想用search的 (沒辦法 被估狗教壞了)
還好 看了一兩天後 開始回來了
希望這兩天可以把下面四本看完
Rails Cookbook
Ruby Cookbook
Beyond Java
Ruby on Rails: Up and Running

還有時間的話 再把下面的翻一翻
Ajax on Rails
Ajax Hacks
Understanding AJAX: Using JavaScript to Create Rich Internet Applications

轉入正題:
今天 邊看 Ruby Cookbook 邊拍桌
這個語言 裡面有好多我老早就想要的功能喔
比如說類似 Matlab的Matrix operation(MatA*MatB 矩陣相乘)
Set的Operation (SetA union SetB, [1,2,3] & [1,4,5] = [1], etc)
所有的東西都是物件 連數字也是物件 所以可以像這樣 1.to_s 把數字1轉成字串
還有 他的分散式運算 shared memory, DRb, 真的是我看過最方便的
server和client 各四行code就把物件在多台電腦間realtime共用了

不知道我如果用USD$20/月 出租我的O'Reilly帳號+所有線上期刊+N個線上圖書館 不知道有沒有人有興趣
台灣應該是找不到比這個完整的東西 但是 缺點是 都是原文書 (沒有中文的 哈哈)

6 則留言:

投機筆記 提到...

聽說Ruby不像.NET或是JAVA可以承受高壓力的測試,在多人同時使用以上三者所開發的網站時,ruby開發的效能會是最差。不知道您對這看法如何呢?謝謝

Yih-Shien 提到...

這我覺得是還好啦
剛開始嘛 所以大家會覺得有下列弱勢:
1. 大家不太熟悉怎麼調矯ruby on rails
2. 大家不知道怎樣加快
3. 還比較少人幫忙寫加速程式
或者
大家還不熟悉為什麼而慢:
當初大家也覺得Java很慢(有些時間在做GC or Interprete)
這些時間 有些人覺得值得 有些人覺得不值得
就像有些人很care error handling while someone not.
當然
也有些人覺得 發展的速度比執行效能重要
因為 現在貴的 不是機器 而是請programmer的錢
所以呢 會覺得能花最少的錢達到最大的效果最重要 至於程式的效能 純比較用的
在實際上 多加幾台電腦就好了 省幾個programmer就能多買很多台了

這類的問題很多 (過陣子應該會開始討論吧)
比如說 ruby的security?
很多人也還不知道怎麼把ruby寫得secure一點
舉個例:
http://media.railscasts.com/videos/026_hackers_love_mass_assignment.mov

Likedog 提到...

請問如果目前已經採用MVC的架構來開發了,再採用Ruby on Rails的話,對於開發速度還是會有幫助嗎?因為自己在設計程式時已經習慣採用一些Design Pattern,而Ruby on Rails強調得好像就是Pattern。故有此一問

Yih-Shien 提到...

有人問我所謂的share memory是怎樣的share法 也許我應該翻譯做share變數 比較不會被誤解

下面是demo怎樣share一個hash物件 使兩端可以同時對同一個hash做讀出和寫入

server端:
1. require 'drb' #include這一個lib
2. shared_hash = {:server => 'Some data set by the server' } #設定你要share的物件 在此demo一個hash物件
3. DRb.start_service('druby://127.0.0.1:61676', shared_hash) #從這個port share出去
4. DRb.thread.join # Wait on DRb thread to exit…

client端:
1. require 'drb' #include這個lib
DRb.start_service
2. shared_data = DRbObject.new_with_uri('druby://127.0.0.1:61676') #連上server,此時雙方share出來的物件可透過shared_data取得
3. shared_data[:client] = 'Some data set by the client' #放data進共用的hash變數 (剛剛在server設定的)
4. shared_data.each do |key, value| #這時候 讀出hash 會得到雙方放進去的hash
5. puts "#{key} => #{value}"
6. end

你可以多開幾個client 就大家一起share了

Likedog 提到...

謝謝您的回答
不過有點看不懂
請問您是在回答效能方面的東東,還是Design Pattern的東西呢?

Yih-Shien 提到...

To Likedog:
Sorry, 我回答的是別人私下問我的問題.
關於你的問題 我不太熟悉 而且沒有實際經驗 所以沒辦法給你意見耶
對不起嘍