#
??? 剛才用visudo編輯sudoers文件,編輯完保存的時(shí)候,碰巧PuTTY估計(jì)因?yàn)榫W(wǎng)絡(luò)傳輸?shù)膯?wèn)題出現(xiàn)了刷新不及時(shí),有些文本有亂碼,只看到最后一個(gè)選項(xiàng)有save的字樣,順手就選了最后一個(gè)選項(xiàng)。完了才反應(yīng)過(guò)來(lái),剛才的sudoers文件有語(yǔ)法錯(cuò)誤,悲劇了,真是欲哭無(wú)淚啊。服務(wù)器是ubuntu,剛裝好還沒(méi)設(shè)置root密碼,sudoers文件一完蛋就沒(méi)法再sudo了,看來(lái)只能明天手動(dòng)恢復(fù)了。
??? 教訓(xùn):
?? ???? 1. ubuntu安裝完后必須立即設(shè)置好root密碼并記住,ubuntu默認(rèn)不讓用root,實(shí)在不能稱之為一個(gè)好的設(shè)計(jì)。
?? ???? 2. 隨手一個(gè)按鍵這個(gè)linux系統(tǒng)就完蛋了,以后做這種操作的時(shí)候,必須慎之又慎。
?? ????
??? 打了兩簽招商證券,結(jié)果中了一簽,概率2%。總算rp爆發(fā)了一把,紀(jì)念一下。
??? 現(xiàn)在用Google Docs寫(xiě)博客并發(fā)布很方便,但是對(duì)于那些同時(shí)維護(hù)多個(gè)博客站點(diǎn)的人來(lái)說(shuō),要是寫(xiě)好后能同時(shí)發(fā)布到多個(gè)博客站點(diǎn)那就更爽了。
??? 最近關(guān)閉visual studio 2005的模擬器后,DeviceEmulator.exe進(jìn)程始終不退出,并占用大量cpu,整個(gè)系統(tǒng)處于假死狀態(tài),必須手工殺掉DeviceEmulator.exe進(jìn)程才能恢復(fù)正常。最后實(shí)在沒(méi)辦法了,從Visual Studio 2008的安裝盤(pán)里摳出新版的Device Emulator(在WCUARM目錄下),安裝后問(wèn)題解決。
??? 以前的模擬器一直使用得很好,不知道改了什么地方visual studio 2005的模擬器就不正常了。
?? ?最近老碰到要查詢某個(gè)字符串在文件中第n個(gè)出現(xiàn)時(shí)的位置,UltraEdit的查找功能要做到這個(gè)好像比較難,看了下幫助,覺(jué)得用腳本完成再簡(jiǎn)單不過(guò)了。
??? UltraEdit對(duì)javascript的支持不錯(cuò),寫(xiě)了個(gè)小腳本如下:
var str?? ?= UltraEdit.getString("input string",1);
var nTime = UltraEdit.getValue("input count",1);
UltraEdit.activeDocument.top();
var nFindTimes = 0;
for(;nFindTimes < nTime; nFindTimes++){
?? ?UltraEdit.activeDocument.findReplace.find(str);
?? ?if(!UltraEdit.activeDocument.isFound()){
?? ??? ?UltraEdit.messageBox("there is only " + nFindTimes + " "+ str);
?? ??? ?break;
?? ?}
}
??? 搞定。
??? 在windows下連接android手機(jī)需要驅(qū)動(dòng)程序,在linux下卻能自動(dòng)識(shí)別,但是還是需要一點(diǎn)點(diǎn)設(shè)置。
??? 以u(píng)buntu為例,當(dāng)把usb連接線連上電腦和手機(jī)時(shí),手機(jī)會(huì)彈出一個(gè)對(duì)話框,這里要在對(duì)話框里選擇“調(diào)試”模式。
?? ?ubuntu把a(bǔ)ndroid手機(jī)識(shí)別為網(wǎng)卡usb0,在操作手機(jī)前,需要設(shè)置一個(gè)ip地址:
?? ?sudo ifconfig usb0 192.168.100.1
??? 為了讓adb命令控制手機(jī),需要設(shè)置環(huán)境變量ADBHOST:
??? export ADBHOST=192.168.100.2
??? 然后輸入adb shell就可以進(jìn)入手機(jī)的控制臺(tái)了。
??? 每次插拔usb線的都需要進(jìn)行上述設(shè)置,可把這些命令保存為一個(gè)shell文件:
#!/bin/bash
sudo ifconfig usb0 192.168.100.1
export ADBHOST=192.168.100.2
adb kill-server
adb start-server
摘要: vc 2005 sp1下isspace函數(shù)的debug版本對(duì)中文處理有問(wèn)題
今天碰到一個(gè)怪問(wèn)題,從別人那兒拿來(lái)的一段代碼先在gcc下過(guò)了,又移植到vc下編譯,結(jié)果debug時(shí)老是有assert錯(cuò)誤。看了一下代碼,錯(cuò)誤發(fā)生在一個(gè)trim函數(shù)中。trim函數(shù)接受一個(gè)char*類型的字符串參數(shù),去掉字符串前后的空格、制表符等空白字符。其中判斷是否是空白字符用的是 isspace函數(shù)。按照一般的想法,char*字符串里的字符編碼無(wú)論是GBK還是utf-8,因?yàn)槎技嫒軦SCII,所以isspace函數(shù)都不應(yīng)該發(fā)生問(wèn)題。但事實(shí)是只要是字符串有中文,無(wú)論是gbk還是utf-8編碼,isspace內(nèi)都有assert錯(cuò)誤。為了便于說(shuō)明,把其中的代碼抽像出來(lái)如下:
閱讀全文
?? ?摘自 http://hi.baidu.com/ashuy/blog/item/69a25f60327d96dd8cb10d0f.html
?? ?Firefox同樣支持W3C標(biāo)準(zhǔn)屬性,包括childNodes、firstChild、lastChild、nextSibling、 nodeName、nodeType、nodeValue、ownerDocument、parentNode和previousSibling。不幸的是,對(duì)于微軟專有的text和xml屬性,F(xiàn)irefox并不支持,不過(guò)可以利用其他方法來(lái)模擬該屬性的行為。
?? ?大家應(yīng)該還記得,text屬性返回了當(dāng)前節(jié)點(diǎn)的內(nèi)容,或者是當(dāng)前節(jié)點(diǎn)及其子節(jié)點(diǎn)的內(nèi)容。這不僅僅返回當(dāng)前節(jié)點(diǎn)的文本,還有所有子節(jié)點(diǎn)的文本,因此要模擬該功能實(shí)現(xiàn)是十分容易的。下面這個(gè)簡(jiǎn)單的函數(shù)就能夠完成該功能,該函數(shù)唯一的參數(shù)是一個(gè)節(jié)點(diǎn):
function getText(oNode) {
?? ?var sText = "";
?? ?for (var i = 0; i < oNode.childNodes.length; i++) {
?? ??? ?if (oNode.childNodes[i].hasChildNodes()) {
?? ??? ??? ?sText += getText(oNode.childNodes[i]);
?? ??? ?} else {
?? ??? ??? ?sText += oNode.childNodes[i].nodeValue;
?? ??? ?}
?? ????}
?? ?return sText;
}
?? ?在getText()函數(shù)中,sText變量用來(lái)保存獲取的所有文本。接著對(duì)oNode的子節(jié)點(diǎn)使用for循環(huán)進(jìn)行遍歷,檢查每個(gè)子節(jié)點(diǎn)是否包含子節(jié)點(diǎn)。如果有子節(jié)點(diǎn),那么就將其childNode傳給getText()函數(shù),并進(jìn)行同樣的處理;如果沒(méi)有子節(jié)點(diǎn),那么將當(dāng)前節(jié)點(diǎn)的nodeValue 加到字符串中(對(duì)文本節(jié)點(diǎn)而言,這只是文本字符串)。處理了所有子節(jié)點(diǎn)后,該函數(shù)返回變量sText。
摘要: 很多網(wǎng)站有多個(gè)語(yǔ)言版本,根據(jù)用戶的區(qū)域語(yǔ)言來(lái)選擇具體的版本。比如google appengine就是這樣,但是可惜的是,它的中文頁(yè)面更新速度遠(yuǎn)遠(yuǎn)落后于英文頁(yè)面。比如現(xiàn)在我想下載google appengine sdk,英文頁(yè)面上早就是1.1.9下載了,但中文版上還是1.1.0。在中文windows下,默認(rèn)總是進(jìn)入appengine頁(yè)面的中文版,如果能修改我們的首選語(yǔ)言為英語(yǔ)的話,就總能看到最近的更新了。
閱讀全文
摘要: android 1.0 代碼剛開(kāi)放到時(shí)候,里面并沒(méi)有帶gdbserver,有些強(qiáng)人就自己編譯了gdbserver來(lái)使用。不過(guò)現(xiàn)在好了,android的新源碼里已經(jīng)包含了 gdbserver,就在prebuilt目錄下。如果想在android 1.0里使用,可以到如下地址下載:http://android.git.kernel.org/?p=platform/prebuilt.git;a=tree。gdbserver的二進(jìn)制文件就在android-arm/gdbserver/gdbserver,我們只需要把gdbserver這個(gè)可執(zhí)行文件放到模擬器上即可。
閱讀全文