摘要: \将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline属性,^ 也匹配 '\n' 或 '\r' 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline属性,$ 也匹配 '\n' 或 '\r' 之前的位置。*匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。+匹配前面的子表达式一次或多 阅读全文
posted @ 2010-12-11 12:19 super119 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 大致内容是这些:local port forward -- 在本地创建端口,用ssh转发ssh -L 8888:localhost:8888 username@codemonkey1这条命令在客户端机器上执行。我们需要访问codemonkey1这台机器的8888端口,这个端口上跑的是一个web应用,但是这个应用只允许localhost访问(出于安全考虑),现在我们人在外地,需要访问这个网页,由于不能直接访问,所以我们可以用ssh来中转(这台机器上的SSH Server是开放的)。所以,这台命令的解释是:首先在本机创建一个8888端口,然后,所以尝试连接本地机器的8888端口的数据会被封装成ss 阅读全文
posted @ 2010-12-11 12:18 super119 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 在 Vim 中,有四个与编码有关的选项,它们是: ''fileencodings''、 ''fileencoding''、 ''encoding'' 和 ''termencoding''。在实际使用中,任何一个选项出现错误,都会导致出现乱码。因此,每一个 Vim 用户都应该明确这四个选项的含义。下面,我们详细介绍一下这四个选项的含义和作用。* encoding ''encoding'' 是 Vim 内部使用的字符编码方式。当我们设置了 ''encoding'' 之后, Vim 内部所有的 buffer、寄存器、脚本中的字符串等,全都使用这个编码。 Vim 在工作的时候,如果编码方式与它的内部编 阅读全文
posted @ 2010-12-11 12:14 super119 阅读(414) 评论(0) 推荐(0) 编辑
摘要: [代码]从这个脚本可以看到,直接使用mencoder生成MP4是有问题的,因为mencoder对MP4的封装有问题,PSP无法识别,所以后来要用MP4Box重新封装MP4文件。 阅读全文
posted @ 2010-12-11 12:11 super119 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 参考了windows system programming chapter13的内容,但是一些注意点没讲到。1. 创建windows console应用程序。vs自带的windows service模板创建出来的项目看不懂。2. _tmain函数这样写:[代码]关键就是ServiceMain函数在这里定义了。3. 然后就是ServiceMain函数:[代码]有几个关键点:A. hServStatus是一个SERVICE_STRUCTURE,这个structure非常重要,定义了很多关键的数据。主要是:(1) dwControlAccepted,不支持PAUSE和CONTINUE就不要写上。(2 阅读全文
posted @ 2010-12-10 17:50 super119 阅读(483) 评论(0) 推荐(0) 编辑
摘要: Debug模式下,visual c++的编译器cl.exe会设置一个/ZI的选项,这个选项会让代码中的__FILE__扩展成一个绝对路径的文件名,这样在看log的时候会很痛苦,因为一般绝对路径都很长。其实查了一下cl.exe的manual,产生这种效果的是/FC选项(full source path),但是由于/ZI选项包含了/FC选项,所以如果设置了/ZI选项,这样也会有这样的效果。而/ZI选项主要目的是生成一个pdb文件(Program Database),而且支持edit and continue(就是debug到一半,改了代码可以直接继续debug,不用重新编译再debug)。如果不需 阅读全文
posted @ 2010-12-10 14:24 super119 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 补充一点:只有在使用epoll ET(Edge Trigger)模式的时候,才需要关注数据是否读取完毕了。使用select或者epoll的LT模式,其实根本不用关注数据是否读完了,select/epoll检测到有数据可读去读就OK了。这里有两种做法:1. 针对TCP,调用recv方法,根据recv方法的返回值,如果返回值小于我们指定的recv buffer的大小,则认为数据已经全部接收完成。在Linux epoll的manual中,也有类似的描述:For stream-oriented files (e.g., pipe, FIFO, stream socket), the condition 阅读全文
posted @ 2010-12-10 14:20 super119 阅读(2131) 评论(0) 推荐(0) 编辑
摘要: 编辑.bashrc,加入:export GTK_IM_MODULE=ibusexport XMODIFIERS=@im=ibusexport QT_IM_MODULE=ibusexport LC_CTYPE=zh_CN.UTF-8 阅读全文
posted @ 2010-12-10 14:18 super119 阅读(306) 评论(0) 推荐(0) 编辑
摘要: sudo apt-get remove之后,可能还会有一些包处于rc状态,这表示这些包已经被remove,但是保留了配置文件(config file)。要彻底删除这些包和残留的配置文件,用这个命令即可:dpkg -l |grep ^rc|awk '{print $2}' |tr ["\n"] [" "] | sudo xargs dpkg -P - 阅读全文
posted @ 2010-12-10 14:17 super119 阅读(550) 评论(0) 推荐(0) 编辑
摘要: eth0连接ADSL Modem,设成DHCP,同时要让ADSL自动启动,所以eth0就不要自动启动了。eth1做内网连接网卡,IP地址是192.168.3.1,将网关设成0.0.0.0,DNS不要设置。因为ADSL拨号成功之后,会自动获取网关和DNS的设置,所以eth1不能设置网关和DNS。设置iptables,如下:[代码]以上设置开通了ssh和https两项服务,其他来自ppp0的连接都将被drop。以上设置是输入了iptables命令之后,使用iptables-save生成的,保存以上内容为:/etc/iptables-config,然后修改/etc/rc.local,加入:[代码]完 阅读全文
posted @ 2010-12-10 14:16 super119 阅读(401) 评论(0) 推荐(0) 编辑