posted @
2012-02-18 18:57 Paul Lin 閱讀(651) |
評(píng)論 (0) |
編輯 收藏
摘要: 換句話說,當(dāng)你找到與天賦、個(gè)性完全匹配的工作,它恰好處在上升期的市場(chǎng),公司又提供了必要的授權(quán)與資源,那么你就很容易成功。反之,若這三點(diǎn)中的任何一點(diǎn)不匹配,那么你就是個(gè)loser。
閱讀全文
posted @
2012-02-18 18:27 Paul Lin 閱讀(680) |
評(píng)論 (0) |
編輯 收藏
posted @
2012-02-18 18:09 Paul Lin 閱讀(585) |
評(píng)論 (0) |
編輯 收藏
摘要: 這是一篇集百家之長(zhǎng)的筆記,分別參考了《Rails3 in Action》和 RVM官方文檔,ninjahideout.com 之后的安裝文檔。
這里使用到的各種軟件包括:
- Ubuntu
- Virtual Box
- Vagrant
- RVM
- Capistrano
- Passenger
- Nginx
- MySQL
- PostgreSQL
還涉及到Git、GitHub、SSH等技術(shù)
閱讀全文
posted @
2011-11-21 16:22 Paul Lin 閱讀(1702) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2011-11-13 23:29 Paul Lin 閱讀(11074) |
評(píng)論 (1) |
編輯 收藏
終于花了將近4個(gè)月的時(shí)間,把《Learn Rails3 by example》的E文版看完了,心中那個(gè)成就感和滿足感啊~~繼續(xù)下一輪的針對(duì)性學(xué)習(xí)計(jì)劃,計(jì)劃包括:1. Rails應(yīng)用的部署和性能監(jiān)控2. Rails的MVC架構(gòu)和Cache3. JS和JS與Rails的結(jié)合使用4. Ruby的語(yǔ)法和特性5. MySQL配置和調(diào)優(yōu)6. 搜索引擎和推薦引擎的學(xué)習(xí)7. NoSQL專題
posted @
2011-11-03 00:17 Paul Lin 閱讀(756) |
評(píng)論 (0) |
編輯 收藏
關(guān)于RVM + REE + Ngix + Passenger + Capistrano的安裝配置,非常詳細(xì)!強(qiáng)烈推薦http://blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server
posted @
2011-11-03 00:14 Paul Lin 閱讀(726) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2011-10-03 17:36 Paul Lin|
編輯 收藏
在上一篇《自動(dòng)化測(cè)試狂人的Rails測(cè)試優(yōu)化之路》中,我演示了如何使用Guard-spork, Guard-rspec和Spork, Rspec來進(jìn)行自動(dòng)化測(cè)試和集成測(cè)試。
今天發(fā)現(xiàn)存在一個(gè)bug,那就是當(dāng)model文件被修改后,雖然會(huì)重新啟動(dòng)rspec執(zhí)行測(cè)試。但是測(cè)試的代碼不是最新的,而是繼續(xù)沿用已經(jīng)加載到內(nèi)存的model文件。網(wǎng)上搜索一番后,發(fā)現(xiàn)問題的原因是spork的預(yù)加載問題。于是在spork的spork.each_run方法中加入如下代碼,重啟sprok,解決問題
Dir["#{Rails.root}/app/models/**/*.rb"].each do |model|
load model
end

posted @
2011-09-06 14:21 Paul Lin 閱讀(706) |
評(píng)論 (0) |
編輯 收藏
假如我們把a(bǔ)ttr_accessible設(shè)置成只有name是可以訪問的,然后在Console中執(zhí)行如下命令:
ruby-1.9.2-p180 :001 > user = User.create(:name => "Paul", :email => "pengpenglin@163.com")
=> #<User id: 1, name: "Paul", email: nil, created_at: "2011-09-03 04:42:59", updated_at: "2011-09-03 04:42:59">
ruby-1.9.2-p180 :002 > user.email
=> nil
ruby-1.9.2-p180 :003 > user.email = "bob@163.com"
=> "bob@163.com"
ruby-1.9.2-p180 :004 > user.email
=> "bob@163.com"
ruby-1.9.2-p180 :005 > user.save
=> true
ruby-1.9.2-p180 :006 > user.reload.email
=> "bob@163.com"
ruby-1.9.2-p180 :007 > User.find(1)
=> #<User id: 1, name: "Paul", email: "bob@163.com", created_at: "2011-09-03 04:42:59", updated_at: "2011-09-03 04:43:31">
不是not accessible 嗎?怎么email還是能夠改變?
posted @
2011-09-03 12:51 Paul Lin 閱讀(1245) |
評(píng)論 (1) |
編輯 收藏
摘要: 我們要修改的文件會(huì)涉及到4個(gè):
A. Gemfile
B. .rspec
C. Guardfile
D. rspec_helper.rb
閱讀全文
posted @
2011-08-31 00:44 Paul Lin 閱讀(1857) |
評(píng)論 (1) |
編輯 收藏
摘要: 從RailsCast.com篩選出來的視頻
閱讀全文
posted @
2011-08-29 15:58 Paul Lin 閱讀(594) |
評(píng)論 (0) |
編輯 收藏
摘要: NERDTree.vim:顯示目錄樹和標(biāo)簽(特別有用)
Rails.vim:這個(gè)不說了,Rails開發(fā)必備
Snipmate.vim:代碼片段自動(dòng)完成,Rails開發(fā)神器之一
FuzzyFinder.vim:模糊查找,使用頻率最高的插件之一
TabBar:BufferExpoloer的增強(qiáng)版,用來標(biāo)識(shí)打開的文件的
Supertab.vim:文本自動(dòng)完成
Rubytest.vim:vim下的集成測(cè)試工具
閱讀全文
posted @
2011-07-26 12:46 Paul Lin 閱讀(3423) |
評(píng)論 (0) |
編輯 收藏
BDD style unit testing video and slides@RubyKaigi 2011How I Testwatchr 靈活的Continuous Testing測(cè)試工具可替代autotest... 不要盲目的 BDD / TDD,我對(duì)寫測(cè)試的看法
posted @
2011-07-19 20:06 Paul Lin 閱讀(369) |
評(píng)論 (0) |
編輯 收藏
摘要: 針對(duì)這種情況,我們可以使用一個(gè)名為Guard的gem,來自動(dòng)監(jiān)控spork中預(yù)加載的文件發(fā)生變化后,自動(dòng)重啟spork
1).在Gemfile中增加gem 'guard-spork'
2).在shell中g(shù)em install libnotify / gem install inotify
3).bundle install
4).guard init spork
5).guard start
閱讀全文
posted @
2011-07-15 18:12 Paul Lin 閱讀(435) |
評(píng)論 (0) |
編輯 收藏
摘要: 首先我們來理解Autotest的觸發(fā)機(jī)制:
1. 要有一套測(cè)試的框架和工具(Console,GUI)
2. 要有可以感知被測(cè)試對(duì)象發(fā)生變化的機(jī)制
3. 要有自動(dòng)加載被測(cè)試對(duì)象和環(huán)境數(shù)據(jù)的機(jī)制
4. 要有將測(cè)試結(jié)果展示給用戶的機(jī)制
閱讀全文
posted @
2011-07-15 00:14 Paul Lin 閱讀(652) |
評(píng)論 (0) |
編輯 收藏
摘要: 網(wǎng)上google了一下,發(fā)覺又是一個(gè)Rails和其他gem不兼容的問題,只要把rake的版本設(shè)置為0.8.7就可以了。
閱讀全文
posted @
2011-07-03 21:28 Paul Lin 閱讀(1430) |
評(píng)論 (1) |
編輯 收藏
posted @
2011-06-25 13:40 Paul Lin 閱讀(371) |
評(píng)論 (0) |
編輯 收藏
posted @
2011-06-18 23:02 Paul Lin 閱讀(337) |
評(píng)論 (0) |
編輯 收藏
摘要: ....
甲:嗯....可是這樣看起來,我完全看不到敏捷的任何好處啊
乙:嗯。實(shí)際上,我更喜歡RUP,雖然麻煩但很清楚
....
閱讀全文
posted @
2011-06-01 23:31 Paul Lin 閱讀(931) |
評(píng)論 (1) |
編輯 收藏
摘要: 來自JE上的一篇Rails實(shí)戰(zhàn)文章,很不錯(cuò)!
閱讀全文
posted @
2011-05-27 16:47 Paul Lin 閱讀(866) |
評(píng)論 (0) |
編輯 收藏
QCon 2011大會(huì)的PPT下載。其中有我最感興趣的架構(gòu)設(shè)計(jì)和NoSQL技術(shù):
企業(yè)敏捷轉(zhuǎn)型之路
http://www.everbox.com/f/Rgo5syChjzuLeS6wJEAQZwvkje
深入淺出NoSQL
http://www.everbox.com/f/TQMXMI6asloYQFJLIxGy2WIIyo
設(shè)計(jì)優(yōu)良的架構(gòu)
http://www.everbox.com/f/XCZvXDTbft6ZlK8TsUlMWfVBjO
Web性能與擴(kuò)展
http://t.sina.com.cn/1746173800/wr4mQk5Iwn
來自一線項(xiàng)目的實(shí)戰(zhàn)經(jīng)驗(yàn)
http://www.everbox.com/f/FZHFfXanIGZOasZsqSZpFuSSFk
HTML5開發(fā)平臺(tái)
http://www.everbox.com/f/qeD2qvae9LVRXCA3HsNq2ztiBY
posted @
2011-04-21 16:58 Paul Lin 閱讀(569) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2011-03-23 11:55 Paul Lin 閱讀(499) |
評(píng)論 (0) |
編輯 收藏
原文:http://www.javaeye.com/news/20399
大多數(shù)管理者都會(huì)陷入放權(quán)的困境。你很忙,每件事都要親力親為。你很清楚自己需要?jiǎng)e人幫忙,但你沒有足夠的時(shí)間尋找并培訓(xùn)別人來幫你。所以,你更加努力地工作,直到自己崩潰。
下面這個(gè)故事講述了我如何放權(quán)。
2001年,CD Baby成立三周年。我已有8名員工,但所有其他事情仍然需要我自己做。每周7天,從上午7點(diǎn)工作到晚上10點(diǎn),自己仍然要經(jīng)手每件事情。
每隔5分鐘,就會(huì)有員工向我請(qǐng)示:
- “Derek,有個(gè)家伙想修改網(wǎng)站上已經(jīng)存在的相冊(cè),我該怎么跟他說呢?”
- “Derek,我們可以接受電匯作為一種支付方式嗎?”
- “Derek,有個(gè)人今天下了兩個(gè)訂單,他想知道我們可不可以給他一起郵寄過去,并且把節(jié)省的郵費(fèi)給他退回去?”
如果整天不停地回答問題,那么什么事也做不成。我感覺我好像是每天去上班,然后在過道里坐著,全職回答員工的問題。
我的忍耐已經(jīng)到了極限,我不再去辦公室,并且關(guān)掉了手機(jī)。隨即,我意識(shí)到自己正在逃避問題,而不是去解決問題。我必須解決這個(gè)問題,要不然就壞了。
經(jīng)過一夜的反思,我最終在思想上接受放權(quán)。
我必須放權(quán),我不是我公司的必需品,沒有我,我的團(tuán)隊(duì)照樣也可以經(jīng)營(yíng)公司。
第二天,我一進(jìn)門,有人就請(qǐng)示我,“Derek,我們昨天收到了一個(gè)客戶送來的CD,但他今天改變了主意,他想讓我們退回他的CD。我們給他郵寄了回去,但他又問我們能不能退還他的安裝費(fèi)用,因?yàn)樗麖奈吹卿涍^網(wǎng)站。”
這一次,我并沒有僅僅回答了他的問題,而是把大家都召集起來。
我給大家解釋了事情的經(jīng)過,和需要解決的問題。我回答了問題,但更重要的是,我解釋了自己思考的過程和回答背后的理念。
“是的,我給他全額退款了。這樣,我們會(huì)受到一點(diǎn)損失。但是,最重要的是經(jīng)常做一些能讓顧客高興的事,只要不過分就行。像這樣一個(gè)小小的表示對(duì)我們大有裨益,他可能會(huì)因此告訴他的朋友們,我們是一家不錯(cuò)的公司。每個(gè)人都要記住,幫助音樂愛好者是我們的首要目標(biāo),利潤(rùn)是其次。你們將來可以根據(jù)這條準(zhǔn)則來自己做決定,我會(huì)完全同意。做那些能讓他們高興的事。要確保每個(gè)跟我們做生意的人都會(huì)滿意而歸。”
我一一問了每個(gè)人,確保他們都理解我的回答。
我讓一位員工起草一本手冊(cè),把這種情況的處理方式記錄下來,并附上解決這種問題的理念。
然后,每個(gè)人都回去工作了。
十分鐘之后,新的問題,相同的過程:
- 1. 召集所有人
- 2. 回答問題,解釋理念
- 3. 確保每個(gè)人都理解整個(gè)過程
- 4. 讓一名員工把這條記錄在冊(cè)
- 5. 讓他們知道,下次沒有我他們也可以這樣處理問題
2個(gè)月之后,沒有員工請(qǐng)示了。
然后我想員工們展示了事情的最后一部分,也就是我自己的工作。作為學(xué)習(xí)的一部分,他們也需要把這個(gè)記錄在冊(cè),然后給其他人看(由教而學(xué))。
現(xiàn)在,公司完全不需要我了。我開始在家里工作,不再去辦公室了。我甚至教過他們我關(guān)于雇傭新員工的思考過程和理念。所以,有兩個(gè)新員工是完全由他們發(fā)現(xiàn)、面試、雇傭以及培訓(xùn)的。他們用那本手冊(cè)來讓每個(gè)新員工理解這種理念以及它的歷史,并且知道怎么自己做決定。我每周去視察一次,確保一切正常。確實(shí)一切正常,他們甚至都沒有什么事情向我請(qǐng)示。
因?yàn)闃I(yè)務(wù)由我的團(tuán)隊(duì)負(fù)責(zé)運(yùn)作,我可以心無旁騖地改進(jìn)業(yè)務(wù)。我去了加利福尼亞,只是弄清楚事情由他們運(yùn)作。
我現(xiàn)在仍然每天工作12個(gè)小時(shí),但是,我把所有時(shí)間都花在業(yè)務(wù)改進(jìn)、優(yōu)化以及創(chuàng)新上。對(duì)我來說,這才是最有趣的事情。這是在玩,不是工作。
我放權(quán)之后,公司市值在四年里從一百萬(wàn)增長(zhǎng)到兩千萬(wàn)。管理者和企業(yè)家之間有很大的不同。作為管理者你會(huì)感覺很自由,直到你意識(shí)到如果自己不工作,公司就會(huì)倒閉。
要成為一名真正的企業(yè)家,你要確保自己能夠離開一年,而當(dāng)你回來時(shí),你的公司比你離開時(shí)運(yùn)營(yíng)得更好。
posted @
2011-03-20 10:22 Paul Lin 閱讀(347) |
評(píng)論 (0) |
編輯 收藏
第1篇:NoSQL開篇——為什么要使用NoSQL
第2篇:關(guān)系數(shù)據(jù)庫(kù)還是NoSQL數(shù)據(jù)庫(kù)
第3篇:NoSQL架構(gòu)實(shí)踐(一)——以NoSQL為輔
第4篇:NoSQL架構(gòu)實(shí)踐(二)——以NoSQL為主
下載:NoSQL實(shí)戰(zhàn)
重點(diǎn)推薦第3篇的最后一種架構(gòu):

特別適合SNS的業(yè)務(wù)架構(gòu):把某些關(guān)系key存儲(chǔ)在MySQL中,用于后續(xù)的業(yè)務(wù)數(shù)據(jù)分析和挖掘,而把大量的文本和圖片存儲(chǔ)在類似MongoDB這樣的文檔型NoSQL。可以利用關(guān)系型數(shù)據(jù)庫(kù)的強(qiáng)有力的計(jì)算能力專注于數(shù)據(jù)分析和挖掘,而用NoSQL解決數(shù)據(jù)的讀寫和存儲(chǔ)瓶頸。
由于NoSQL在線性擴(kuò)展,分布式部署方面有先天優(yōu)勢(shì),可以有效地改善由于數(shù)據(jù)規(guī)模擴(kuò)大時(shí)壓力問題,同時(shí)關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)大大減少,也有利于數(shù)據(jù)的備份和同步。
posted @
2011-03-19 22:45 Paul Lin 閱讀(444) |
評(píng)論 (0) |
編輯 收藏
http://www.slideshare.net/mongodb/mongodb-at-the-silicon-valley-iphone-and-ipad-developers-meetup?from=ss_embed
posted @
2011-01-13 00:00 Paul Lin 閱讀(683) |
評(píng)論 (0) |
編輯 收藏
http://my.safaribooksonline.com/book/web-development/ruby/9780132480345
很不錯(cuò),居然全部都可以免費(fèi)看。
posted @
2010-12-12 23:56 Paul Lin 閱讀(497) |
評(píng)論 (0) |
編輯 收藏
摘要: 在本節(jié),你將學(xué)到如何撰寫合乎邏輯的、緊湊的標(biāo)記,使得你有能力將帶寬流量降低50%左右,在減少服務(wù)器負(fù)擔(dān)和壓力的同時(shí),減少網(wǎng)站的加載時(shí)間。通過去除那些表現(xiàn)元素,并改掉那些沒有任何好處的壞習(xí)慣,我們就可以達(dá)到上述的目的。
這些壞習(xí)慣折磨著網(wǎng)絡(luò)中的許多站點(diǎn),特別是那些將 CSS 代碼與主要基于表格的布局混合在一起的站點(diǎn)。這種做法笨拙且不經(jīng)濟(jì),即使是對(duì)于那些在其他領(lǐng)域很有經(jīng)驗(yàn)的設(shè)計(jì)師來說。同時(shí),出現(xiàn)這個(gè)問題的幾率是均等的,不論是那些手寫代碼的站點(diǎn),還是利用可見編輯工具,比如 Dreamweaver 和 GoLive,來創(chuàng)建的站點(diǎn)。
本節(jié)會(huì)提出這些常見的錯(cuò)誤,這樣你就可以識(shí)別和防范它們,并且學(xué)會(huì)如何改正錯(cuò)誤。我們?cè)敿?xì)闡述唯一標(biāo)識(shí)符屬性 (id) - ,并展示它如何使你可以編寫極其緊湊的 XHTML 代碼,不論你創(chuàng)建的是混合布局還是純粹的 CSS 布局。
閱讀全文
posted @
2010-11-18 15:25 Paul Lin 閱讀(551) |
評(píng)論 (1) |
編輯 收藏
摘要: 我確實(shí)希望本節(jié)的內(nèi)容可以激發(fā)你的興趣,并鼓勵(lì)你去嘗試。為什么這么說呢?因?yàn)橐坏┠阏莆樟吮菊掳暮?jiǎn)單容易的理念,你就會(huì)重新思考網(wǎng)頁(yè)運(yùn)作的方式,并開始改變建造它們的方法。然而我并不希望你只是將代碼重新改寫一遍。我希望你可以實(shí)實(shí)在在地以另一種方式思考和工作。
另一方面,重構(gòu)才是 XHTML 真正的意義。
閱讀全文
posted @
2010-11-18 14:58 Paul Lin 閱讀(346) |
評(píng)論 (0) |
編輯 收藏
1. 詳解CSS選擇器、優(yōu)先級(jí)與匹配原理
2. 5步讓你的CSS樣式表成功減肥
3. 10個(gè)CSS簡(jiǎn)寫技巧讓你永遠(yuǎn)受用
4. CSS的聲明中,對(duì)于選擇器的描述方式有多種不同的寫法和適用范圍:
A. 標(biāo)簽名選擇器聲明方式:p {color: red;} --- 選中某種元素
B. 分組選擇器聲明方式:h1, h2, h3 {color: red;} --- 選中固定數(shù)目的多種元素
C. 派生選擇器聲明方式:li td {color: red;} --- 選中某種上下文關(guān)系元素
D. ID選擇器聲明方式: #title {color: red;} --- 選中指定id元素
E. Class選擇器聲明方式: .title {color: red;} --- 選中不定數(shù)目的多種元素
F. ID派生選擇器聲明方式: #title table {color: red;} --- 選中指定id下特定上下文關(guān)系元素
G. Class派生選擇器聲明方式: .title table {color: red;} --- 選中多種類型下特定上下文關(guān)系元素
H. 類型選擇器聲明方式:table.title {color: red;} --- 選中某種元素的某種類型
I. 偽類選擇器聲明方式:a:visited {color: red;} --- 選中某種狀態(tài)下元素
J. 類型偽類選擇器聲明方式:a.news:visited {color: blue;} --- 選中某種元素的某種狀態(tài)下的類型
posted @
2010-11-09 10:45 Paul Lin 閱讀(384) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2010-11-05 16:20 Paul Lin 閱讀(335) |
評(píng)論 (0) |
編輯 收藏
http://www.theserverside.com/news/1363955/Taking-the-load-off-OSCache-helps-databases-cope
posted @
2010-11-03 17:08 Paul Lin 閱讀(386) |
評(píng)論 (0) |
編輯 收藏
摘要: OSCache是一套用Java編寫的緩存框架(或者說解決方案),它主要用于頁(yè)面緩存,Servlet緩存,或者其它任意的對(duì)象。OSCache使用基于內(nèi)存或者磁盤的緩存策略。不同的策略有不同的適用場(chǎng)合:基于內(nèi)存的緩存非常快,但是不能持久化,而且不能存儲(chǔ)大量數(shù)據(jù),適合頻繁訪問的數(shù)據(jù)。基于磁盤的緩存可以分為使用文件和數(shù)據(jù)庫(kù)緩存,它的速度比內(nèi)存緩存慢,但可以被持久化,可以在服務(wù)器重啟重啟,數(shù)據(jù)庫(kù)奔潰時(shí)仍然運(yùn)作,而且可以存儲(chǔ)較多的數(shù)據(jù)。適合于大量非頻繁訪問的數(shù)據(jù),或者復(fù)雜計(jì)算結(jié)果的緩存。
閱讀全文
posted @
2010-10-22 21:39 Paul Lin 閱讀(537) |
評(píng)論 (0) |
編輯 收藏
最近由于工作學(xué)習(xí)需要,開始研究緩存技術(shù)。從網(wǎng)上找到了不少的資料,按照時(shí)間的順序排列,也可以從中看出緩存技術(shù),框架已經(jīng)工具的演變歷史。
基本知識(shí):《緩存技術(shù)》: http://blog.csdn.net/fanweiwei/archive/2007/01/07/1476131.aspx
《緩存漫談》: http://m.tkk7.com/BlueDavy/archive/2006/06/02/50076.html
《網(wǎng)站緩存技術(shù)》:http://dcross.javaeye.com/blog/721468
《緩存技術(shù)淺談》:http://robbin.javaeye.com/blog/770553
posted @
2010-10-19 16:12 Paul Lin 閱讀(452) |
評(píng)論 (0) |
編輯 收藏
摘要: 介紹緩存的基本概念和常用的緩存技術(shù),給出了各種技術(shù)的實(shí)現(xiàn)機(jī)制的簡(jiǎn)單介紹和適用范圍說明,以及設(shè)計(jì)緩存方案應(yīng)該考慮的問題
閱讀全文
posted @
2010-10-19 11:09 Paul Lin 閱讀(514) |
評(píng)論 (0) |
編輯 收藏