另外,采用utf-8編碼之后,用WinMerge比較文件時(shí),就會(huì)出來(lái)Information lost to encoding errors:之類的提示,心想,這個(gè)指定個(gè)編碼就可以了吧。在編輯=>選項(xiàng)中,果然看到代碼頁(yè)的指定,如是選擇指定代碼頁(yè),輸入utf-8,點(diǎn)擊確定,被提示請(qǐng)輸入一個(gè)整數(shù),估計(jì)這時(shí)候大多數(shù)人和我一樣傻眼,utf-8的代碼頁(yè)是多少?好在有Google,調(diào)整不同的關(guān)鍵字,終于找到清炒苦瓜的一篇文章中提到utf-8的代碼頁(yè)是65001,并且也是為了解決WinMerge的亂碼問(wèn)題,可是改完之后,并沒(méi)有起作用,這次沒(méi)有去懷疑這個(gè)代碼頁(yè)是不是正確,再仔細(xì)看一下那篇文章,嗯,人家明明說(shuō)用的是2.6.8嘛,檢查一下自己的版本,2.6.0,是不是版本問(wèn)題呢?來(lái)到WinMerge的網(wǎng)站,發(fā)現(xiàn)竟然已經(jīng)是2.6.12了,于是下載最新版本,然后將代碼頁(yè)改成65001,嗯,這下所有的中文注釋都乖乖出來(lái)了。
2006年3月9日 #
另外,采用utf-8編碼之后,用WinMerge比較文件時(shí),就會(huì)出來(lái)Information lost to encoding errors:之類的提示,心想,這個(gè)指定個(gè)編碼就可以了吧。在編輯=>選項(xiàng)中,果然看到代碼頁(yè)的指定,如是選擇指定代碼頁(yè),輸入utf-8,點(diǎn)擊確定,被提示請(qǐng)輸入一個(gè)整數(shù),估計(jì)這時(shí)候大多數(shù)人和我一樣傻眼,utf-8的代碼頁(yè)是多少?好在有Google,調(diào)整不同的關(guān)鍵字,終于找到清炒苦瓜的一篇文章中提到utf-8的代碼頁(yè)是65001,并且也是為了解決WinMerge的亂碼問(wèn)題,可是改完之后,并沒(méi)有起作用,這次沒(méi)有去懷疑這個(gè)代碼頁(yè)是不是正確,再仔細(xì)看一下那篇文章,嗯,人家明明說(shuō)用的是2.6.8嘛,檢查一下自己的版本,2.6.0,是不是版本問(wèn)題呢?來(lái)到WinMerge的網(wǎng)站,發(fā)現(xiàn)竟然已經(jīng)是2.6.12了,于是下載最新版本,然后將代碼頁(yè)改成65001,嗯,這下所有的中文注釋都乖乖出來(lái)了。
1. 為什么老是提示“Your credentials are not correct. Please check them and try again. ”?
這個(gè)多半是svn初學(xué)者常碰到的問(wèn)題,尤其在使用HTTP協(xié)議的時(shí)候。一開(kāi)始大家都用svnserve來(lái)做svn的服務(wù)器,自然配置的是conf中的passwd。但如果采用HTTP協(xié)議的話,就得使用Basci HTTP Authentication了,需要用Apache提供的htpasswd來(lái)管理用戶和口令。這個(gè)的配置在svn自帶的幫助文件中第6章“httpd, the Apache HTTP Server”一節(jié)中有比較詳細(xì)的解釋。但如果你沒(méi)有通篇看完,在Apache中沒(méi)有加上Require valid-user指令的話,那是允許匿名操作的。我想,你不愿意留下這樣的安全漏洞吧。
2. 怎樣配置多個(gè)repository
這個(gè)也是實(shí)際中需要的,當(dāng)然,在它的readme中其實(shí)是說(shuō)得很清楚的。但我們有些同志就是喜歡拿來(lái)就試,尤其是在有些類似于我這種其實(shí)語(yǔ)焉不詳?shù)奈恼聲r(shí),更是就喜歡照葫蘆畫(huà)瓢,而不去看最權(quán)威最原始的英文文檔了。要配置多個(gè)repository,以HTTP協(xié)議為例,在web.xml中要?jiǎng)h掉RepositoryUrl、Username、Password這3個(gè)參數(shù)的設(shè)置,然后加上ParentRepositoryDirectory參數(shù),值自然是指向svn倉(cāng)庫(kù)的父目錄了,比如http://localhost/svn/,這個(gè)東西又是哪里來(lái)的呢?自然需要在Apache中配置,用SVNParentPath來(lái)指定svn倉(cāng)庫(kù)的父目錄,Apache會(huì)自動(dòng)解析其下所有的倉(cāng)庫(kù)的。這里要注意一下AuthzSVNAccessFile授權(quán)文件的寫(xiě)法,這里將配置所有倉(cāng)庫(kù)的存取權(quán)限,對(duì)于每個(gè)倉(cāng)庫(kù),需要用[倉(cāng)庫(kù)名:/module]的方式來(lái)配置。
3. 怎樣使用svn協(xié)議
前面我一直用http協(xié)議做例子,實(shí)在是因?yàn)槲以谄?.5.0下沒(méi)有配置出來(lái)過(guò)svn協(xié)議:(。這次去其網(wǎng)站下載了個(gè)最新的nightly版本,發(fā)現(xiàn)其已經(jīng)能夠支持http, svn, svn+ssh, ssl和proxy等6種協(xié)議了??纯雌浯a結(jié)構(gòu),好象也發(fā)生了很大的變化,估計(jì)應(yīng)該有比較大的改進(jìn)。于是,用這個(gè)版本試了一把,呵呵,輕而易舉就把svn協(xié)議給連通了,包括多倉(cāng)庫(kù)的情況。并且其還改進(jìn)了原來(lái)設(shè)置父目錄地址時(shí)一定要在最后添加/的要求,估計(jì)原來(lái)在這個(gè)地方卡殼的朋友也不少吧:)。不過(guò),新版本還是不支持中文文件名,看我以前的帖子自己改吧。
Important: 由于svn webclient采用的javasvn(現(xiàn)已更名為svnkit)版本較低,用svn協(xié)議在提交老的文件時(shí)會(huì)失敗,但添加新的文件時(shí)沒(méi)有問(wèn)題,所以,大家就不要再嘗試svn協(xié)議了。如果不采用SVN協(xié)議,則其官方發(fā)布的版本就沒(méi)什么問(wèn)題了,已經(jīng)有網(wǎng)友重新打包了一個(gè)解決了中文文件名的版本,到這里下載。(Updated: 2007.1.20)
...
不要憂慮“不要為明天憂慮,天上的飛鳥(niǎo),不耕種也不收獲,上天尚且要養(yǎng)活它,田野里的百合花,從不憂慮它能不能開(kāi)花,是不是可以開(kāi)得和其它一樣美,但是它就自然的開(kāi)花了,開(kāi)得比所羅門(mén)皇冠上的珍珠還美。你呢,憂慮什么呢? 人比飛鳥(niǎo)和百合花貴重多了,上帝會(huì)棄你不顧嗎?” 閱讀全文
“我雖然行過(guò)死蔭的幽谷,
也不怕遭害;
因?yàn)槟闩c我同在;
你的杖,你的竿,都安慰我。”
--《詩(shī)篇第二十三篇第四節(jié)》
當(dāng)然,一開(kāi)始我不知道這是《舊約全書(shū)·詩(shī)篇》中的內(nèi)容,于是就Google了一把,找到下面這篇文章《因?yàn)槟闩c我同在》:
“
我去一個(gè)鄉(xiāng)村教會(huì)講道,在接待的弟兄家休息。看見(jiàn)弟兄的兒子學(xué)習(xí)很用功,很是喜愛(ài)。我請(qǐng)小朋友將他的語(yǔ)文課本借給我看。這是人教版小學(xué)四年級(jí)語(yǔ)文課本。當(dāng)中有一篇文章吸引了我——
1989 年美國(guó)洛杉磯大地震,30萬(wàn)人在不到4分鐘時(shí)間里受到不同程度的傷害。這其間一個(gè)小學(xué)的慘況讓人心酸。多少孩子的父母因在地震中痛失愛(ài)子而哀聲聞天,面對(duì) 地震后的學(xué)校廢墟只能絕望離去。但一個(gè)父親卻在廢墟中不斷地挖掘?qū)ふ易约耗遣牌邭q的叫阿曼達(dá)的兒子。救火隊(duì)長(zhǎng)擋住他,“太危險(xiǎn)了,隨時(shí)可能發(fā)生大爆炸,請(qǐng) 你離開(kāi)。”別的學(xué)生家長(zhǎng)也勸說(shuō),“太晚了,沒(méi)有希望了。”可這位父親不顧這些勸阻,在廢墟中不斷地尋找。就在他挖了整整八個(gè)小時(shí)后,父親聽(tīng)見(jiàn)瓦礫堆底下傳 出他十分熟悉的聲音,“爸爸,是你嗎?”這時(shí)他發(fā)現(xiàn)有14個(gè)孩子在當(dāng)中,因?yàn)檫@是在教室墻角的位置,當(dāng)房頂塌下時(shí)架成大三角形,孩子們才沒(méi)被砸著。“我告 訴同學(xué)們不要害怕,說(shuō)只要我爸爸活著就一定會(huì)來(lái)救我,也能救大家。因?yàn)槟阏f(shuō)過(guò),不論發(fā)生什么,你總會(huì)和我在一起!”孩子對(duì)爸爸說(shuō)。“爸爸,先讓我的同學(xué)出 去吧,我知道你會(huì)跟我在一起,我不怕。不論發(fā)生了什么,我知道你總會(huì)跟我在一起。”
14個(gè)孩子獲救了!
我們不禁會(huì)問(wèn),如果因?yàn)榇蟊ǖ奈kU(xiǎn)而絕望地放棄,如果這個(gè)父親和其他的家長(zhǎng)一樣絕望地離開(kāi),如果阿曼達(dá)沒(méi)有“因?yàn)槟闩c我同在”的信念,那結(jié)果又將如何?
我想說(shuō)的是,絕望讓生命失去,希望使生命存留。
詩(shī)人說(shuō),“因?yàn)槟闩c我同在。”(詩(shī)篇23:3)這樣的信心使詩(shī)人在人生的黑夜里依然有生命的曙光,在人生的冬天里可憑信宣告說(shuō),冬天來(lái)了,上帝的春天也不再遙遠(yuǎn)。
“因?yàn)槲遗c你同在,要拯救你。這是耶和華說(shuō)的。”(耶利米書(shū)1:8)
阿曼達(dá)對(duì)父親單純的信念應(yīng)一如我們對(duì)天上的父親執(zhí)著的信仰。
是啊,“絕望讓生命失去,希望使生命存留”,不過(guò)呢,對(duì)于我這個(gè)不信教的人來(lái)說(shuō),大可抱著象故事中的小阿曼達(dá)相信他父親只要活著就一定會(huì)來(lái)救他的希望一樣,也不一定非要抱著耶和華會(huì)來(lái)救我們的希望的。不過(guò),不管信什么教,基督也好,佛陀也好,其實(shí)所有經(jīng)典中的智慧都是值得學(xué)習(xí)的;當(dāng)然,如果你在這個(gè)浮躁的物質(zhì)社會(huì)中實(shí)在找不到可以依賴的東西時(shí),信個(gè)把教也未嘗不可。
public void actionPerformed(ActionEvent evt) {
displayCanvas.setDone(false);
producer.setDone(false);
startButton.setEnabled(false);
stopButton.setEnabled(true);
feedbackCanvas.setEnabled(true);
feedbackCanvas.requestFocus();
score.resetScore();
}
});
然后又運(yùn)行了第3章的例子,發(fā)現(xiàn)基本上沒(méi)有這個(gè)問(wèn)題。難道第3章的代碼是正確的?打開(kāi)源代碼一看,重置成績(jī)的方法還是放在最后,那這里為什么又是正確的呢?我想,大約是第3章的例子中,每次點(diǎn)擊start按鈕,都重新創(chuàng)建一個(gè)線程對(duì)象的原因吧。由于創(chuàng)建對(duì)象和初始化線程需要一定的時(shí)間,剛好給了主線程重置成績(jī)的機(jī)會(huì)。
不知道作者有意為之呢,還是疏忽,不過(guò),這樣的錯(cuò)誤不能算是race condition的例子。