摘要: [代码] 阅读全文
posted @ 2010-12-10 14:13 super119 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 1. 在Ubuntu 10.10的Ubuntu software center中找不到LAMP安装包了。以前的Ubuntu是有打好包的LAMP的安装包的,不需要自己一个一个的去安装apache/mysql/php...2. Google了一下,可以这样:sudo apt-get update; sudo apt-get install taskselsudo tasksel3. 在出现的界面中选择LAMP server,然后就开始安装了。安装的过程中会需要设置mysql root的口令。4. sudo vi /var/www/index.php:Code highlighting produc 阅读全文
posted @ 2010-12-10 14:11 super119 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 早上上班,电梯坐到一半,眼前一黑,电梯停了。幸好这个电梯还不错,有后备电,将电梯继续拉升到了某个楼层,避免出现卡在两层楼之间的尴尬。然后就是按警铃,其实鬼才知道按了这个铃是不是会有人知道。拿出手机来,没信号。虽然电梯里面贴了移动联通的“此电梯信号已覆盖”,但是在停电面前,一切都是浮云。放在电梯里面的接收信号的设备没电了,还怎么个信号覆盖?之前一次有记忆的被关在电梯里面,是七八年前的事情了。电梯还卡在两层楼之间,后来是爬出来的。最后等了10分钟,保安来了。出来才知道,原来整幢楼都停电了。心想如果只是电梯出了故障,那不知道要在里面待多久才会被人发现哦。。。 阅读全文
posted @ 2010-12-10 14:09 super119 阅读(212) 评论(0) 推荐(0) 编辑
摘要: GObject中一般我们会把需要给子类继承的函数放在class结构里面,以供继承类来重载。一般的逻辑是,继承类重载了之后,实现了自己的自定义逻辑,然后再调用父类的该函数的默认实现。这样就会引起一个问题:多个子类可能会同时调用父类的某个函数默认实现。这样就会要求父类的这些函数实现必须是thread safe的。之所以不把这些函数指针放在父类的instance结构中,就是因为放在instance结构中的话,子类重载了之后,就没法再调用父类的默认实现了,这样会导致代码冗余,难以维护。为了验证上面的想法,写了一个程序。父类Dad,两个继承类son和daughter。通过测试程序可以看到,在父类开放的一 阅读全文
posted @ 2010-12-10 13:19 super119 阅读(346) 评论(0) 推荐(0) 编辑
摘要: g_closure_marshal提供了一些常用的closure的实现,但是由于返回值和参数列表的可能性实在太多,无法穷举,所以,gobject提供了一个程序:glib-genmarshal来帮我们生成指定的closure的实现(自动生成代码)。在当前目录下创建一个文件,比如:marshal.list,包含内容如下:VOID:UINT,UINT就是返回值和参数列表。然后:glib-genmarshal --header --prefix=gst_play_marshal marshal.list这样就生成了头文件的内容,保存下来存成gstplay-marshal.h,搞定。glib-genma 阅读全文
posted @ 2010-12-10 12:57 super119 阅读(458) 评论(0) 推荐(0) 编辑
摘要: git merge的时候,一定要注意看最后的输出信息,如果输出信息是merge失败的话,那最好看前面是哪里merge失败了,然后(注意最后有一个点):git reset HEAD . git checkout -- .来全部undo merge,然后到被merge的branch中去,手动修改掉merge失败的问题。然后再重新merge。如果merge的输出信息中没有报告失败,只是说让我们去Fix content conflict,那么merge是OK的,此时只需要打开unmerged的文件,搜索merge关键字,然后fix掉没能自动merge成功的内容即可。 Merge失败的话会导致不完整的m 阅读全文
posted @ 2010-12-10 12:53 super119 阅读(3992) 评论(0) 推荐(0) 编辑
摘要: First, make sure your git version is higher than 1.6.3Then:git config --global diff.tool vimdiffgit config --global difftool.vimdiff.cmd "vimdiff"git config --global difftool.prompt falseThat's OK. Next time, use "git difftool ..." replace "git diff ..."To view all your global settings: git config - 阅读全文
posted @ 2010-12-10 12:51 super119 阅读(503) 评论(0) 推荐(0) 编辑
摘要: How to checkout a specific version of one file?git checkout commit hash filepath in this commitgit checkout commit hash -- checkout all files in this commit=======================================================================How to diff two versions of one file?git diff HEAD^ HEAD filepath 阅读全文
posted @ 2010-12-10 10:36 super119 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 以一个例子来说明。比如要把代码中的close调用,替换成abcclose。写了一个脚本,有了一些收获。脚本如下:[代码]1. 使用grep -E来打开grep的扩展正则表达式的功能。所谓扩展,就是像+, ()这样的元字符才能使用。sed使用-r来打开扩展正则表达式。打开了扩展之后,如果要表示一个常量的+, (),就需要用\来转义了。2. grep -e可以用来表示多个匹配pattern3. 最后一句sed的时候,使用了正则表达式中的分组功能,也就是将[ =({;?:\t]+这个部分定义成一个组,然后在后面就可以用\1来引用(注意\0已经被默认分配成整个pattern)。如果定义了第二个组,那么 阅读全文
posted @ 2010-12-10 10:33 super119 阅读(3245) 评论(0) 推荐(0) 编辑
摘要: 1. Bash只支持整数计算,语法是这样的:value=$(( $var1+$var2 ))2. Bash不支持浮点数计算,要做浮点数计算,可以用awk,例如:newts=`awk -v x=$curts -v y=$ts_frame 'BEGIN {printf "%d", x+y}'`将printf中的%d换成%f, %.2f就可以输出浮点数了。注意不能写成:newts=`awk 'BEGIN {printf "%d", $curts+$ts_frame}'`这样awk是无法正常计算的。一定要用-v定义两个awk认识的变量才行。 阅读全文
posted @ 2010-12-10 10:21 super119 阅读(335) 评论(0) 推荐(0) 编辑