飘雪

C++博客 首页 新随笔 联系 聚合 管理
  31 Posts :: 0 Stories :: 60 Comments :: 0 Trackbacks

#

    刚才用visudo编辑sudoers文件,编辑完保存的时候,碰巧PuTTY估计因为网络传输的问题出现了刷新不及时,有些文本有乱码,只看到最后一个选项有save的字样,顺手就选了最后一个选项。完了才反应过来,刚才的sudoers文件有语法错误,悲剧了,真是欲哭无泪啊。服务器是ubuntu,刚装好还没设置root密码,sudoers文件一完蛋就没法再sudo了,看来只能明天手动恢复了。
    教训:
        1. ubuntu安装完后必须立即设置好root密码并记住,ubuntu默认不让用root,实在不能称之为一个好的设计。
        2. 随手一个按键这个linux系统就完蛋了,以后做这种操作的时候,必须慎之又慎。

       
posted @ 2009-11-12 23:27 飘雪 阅读(135) | 评论 (0)编辑 收藏

    打了两签招商证券,结果中了一签,概率2%。总算rp爆发了一把,纪念一下。
posted @ 2009-11-12 23:12 飘雪 阅读(121) | 评论 (0)编辑 收藏

    现在用Google Docs写博客并发布很方便,但是对于那些同时维护多个博客站点的人来说,要是写好后能同时发布到多个博客站点那就更爽了。
posted @ 2009-10-13 17:15 飘雪 阅读(209) | 评论 (0)编辑 收藏

    最近关闭visual studio 2005的模拟器后,DeviceEmulator.exe进程始终不退出,并占用大量cpu,整个系统处于假死状态,必须手工杀掉DeviceEmulator.exe进程才能恢复正常。最后实在没办法了,从Visual Studio 2008的安装盘里抠出新版的Device Emulator(在WCUARM目录下),安装后问题解决。
    以前的模拟器一直使用得很好,不知道改了什么地方visual studio 2005的模拟器就不正常了。
posted @ 2009-10-13 17:09 飘雪 阅读(423) | 评论 (0)编辑 收藏

    最近老碰到要查询某个字符串在文件中第n个出现时的位置,UltraEdit的查找功能要做到这个好像比较难,看了下帮助,觉得用脚本完成再简单不过了。
    UltraEdit对javascript的支持不错,写了个小脚本如下:

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;
    }
}

    搞定。
posted @ 2009-05-21 11:14 飘雪 阅读(646) | 评论 (0)编辑 收藏

    在windows下连接android手机需要驱动程序,在linux下却能自动识别,但是还是需要一点点设置。
    以ubuntu为例,当把usb连接线连上电脑和手机时,手机会弹出一个对话框,这里要在对话框里选择“调试”模式。
    ubuntu把android手机识别为网卡usb0,在操作手机前,需要设置一个ip地址:
    sudo ifconfig usb0 192.168.100.1
    为了让adb命令控制手机,需要设置环境变量ADBHOST:
    export ADBHOST=192.168.100.2
    然后输入adb shell就可以进入手机的控制台了。

    每次插拔usb线的都需要进行上述设置,可把这些命令保存为一个shell文件:
#!/bin/bash
sudo ifconfig usb0 192.168.100.1
export ADBHOST=192.168.100.2
adb kill-server
adb start-server

posted @ 2009-04-13 17:29 飘雪 阅读(4633) | 评论 (0)编辑 收藏

     摘要: vc 2005 sp1下isspace函数的debug版本对中文处理有问题

今天碰到一个怪问题,从别人那儿拿来的一段代码先在gcc下过了,又移植到vc下编译,结果debug时老是有assert错误。看了一下代码,错误发生在一个trim函数中。trim函数接受一个char*类型的字符串参数,去掉字符串前后的空格、制表符等空白字符。其中判断是否是空白字符用的是 isspace函数。按照一般的想法,char*字符串里的字符编码无论是GBK还是utf-8,因为都兼容ASCII,所以isspace函数都不应该发生问题。但事实是只要是字符串有中文,无论是gbk还是utf-8编码,isspace内都有assert错误。为了便于说明,把其中的代码抽像出来如下:  阅读全文
posted @ 2009-03-12 14:04 飘雪 阅读(4589) | 评论 (5)编辑 收藏

    摘自 http://hi.baidu.com/ashuy/blog/item/69a25f60327d96dd8cb10d0f.html
    Firefox同样支持W3C标准属性,包括childNodes、firstChild、lastChild、nextSibling、 nodeName、nodeType、nodeValue、ownerDocument、parentNode和previousSibling。不幸的是,对于微软专有的text和xml属性,Firefox并不支持,不过可以利用其他方法来模拟该属性的行为。

    大家应该还记得,text属性返回了当前节点的内容,或者是当前节点及其子节点的内容。这不仅仅返回当前节点的文本,还有所有子节点的文本,因此要模拟该功能实现是十分容易的。下面这个简单的函数就能够完成该功能,该函数唯一的参数是一个节点:

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()函数中,sText变量用来保存获取的所有文本。接着对oNode的子节点使用for循环进行遍历,检查每个子节点是否包含子节点。如果有子节点,那么就将其childNode传给getText()函数,并进行同样的处理;如果没有子节点,那么将当前节点的nodeValue 加到字符串中(对文本节点而言,这只是文本字符串)。处理了所有子节点后,该函数返回变量sText。
posted @ 2009-02-27 21:59 飘雪 阅读(520) | 评论 (0)编辑 收藏

     摘要: 很多网站有多个语言版本,根据用户的区域语言来选择具体的版本。比如google appengine就是这样,但是可惜的是,它的中文页面更新速度远远落后于英文页面。比如现在我想下载google appengine sdk,英文页面上早就是1.1.9下载了,但中文版上还是1.1.0。在中文windows下,默认总是进入appengine页面的中文版,如果能修改我们的首选语言为英语的话,就总能看到最近的更新了。  阅读全文
posted @ 2009-02-26 13:40 飘雪 阅读(728) | 评论 (0)编辑 收藏

     摘要: android 1.0 代码刚开放到时候,里面并没有带gdbserver,有些强人就自己编译了gdbserver来使用。不过现在好了,android的新源码里已经包含了 gdbserver,就在prebuilt目录下。如果想在android 1.0里使用,可以到如下地址下载:http://android.git.kernel.org/?p=platform/prebuilt.git;a=tree。gdbserver的二进制文件就在android-arm/gdbserver/gdbserver,我们只需要把gdbserver这个可执行文件放到模拟器上即可。  阅读全文
posted @ 2009-02-19 17:05 飘雪 阅读(12282) | 评论 (7)编辑 收藏

仅列出标题
共4页: 1 2 3 4