UnitTest++ 在VC6中编译的patch

August 8th, 2007

UnitTest++是一个全功能的C++ unit test framework,与老牌的CppUnit相比轻便简单灵活。
但是下载以后发现,不能在VC6下编译。去网上搜搜,看到的大多数都是“throw this junk compiler”的意见,但是公司里用的还是VC6,没有办法换。所以只好自己写了一个patch
其实问题到也不大,主要有三点:

  1. VC6中的strcpy等字符串函数不再std namespace中
  2. VC6臭名昭著的for (int i)中i的作用域问题
  3. VC6不支持template function和non-template function的overloading

其中第三条较麻烦,换了一个traits类来解决,作到了接口不变。所有的166个test都运行通过。

这个patch的修改都用编译开关包了起来,并不会破坏其他编译器的编译,已经在VC2005, gcc 3.4.4(cygwin)和gcc 4.1.2(Ubuntu Feisty)中测试通过了。这个patch原本是针对UnitTest++ 1.3的,不过经测试在最新的svn revision 184上也能正常工作。

patch可以在这儿下到。

Programming , , , , ,

Linux下firefox播放Stage6视频

August 5th, 2007

Divx的Stage6是个很不错的视频站,高速,清晰,简直惊艳。不过播放需要安装Divx Web Player,而它只有windows和mac版。Linux下可以用mplayer的mozilla Plugin来播放。ubuntu下只要安装 mozilla-mplayer 然后重启firefox就可以了。不过这个package有些问题,mplayerplug-in-dvx.so文件没有被连到/usr/lib/firefox/plugins中,launchpad的Bug #112055题到了这个问题。解决很简单,只要把/usr/lib/mozilla/plugins/下的mplayerplug-in-dvx.so和mplayerplug-in-dvx.xpt符号连接到/usr/lib/firefox/plugins/下面就可以了:


cd /usr/lib/firefox/plugins
sudo ln -s ../../mozilla/plugins/mplayerplug-in-dvx.so .
sudo ln -s ../../mozilla/plugins/mplayerplug-in-dvx.xpt .

Linux , , ,

[转帖]当我眼睁睁看着医生放弃了我女儿的生命

July 10th, 2007

我原本并不想转这篇文章,当我发现GFW的魔爪连这样的生命都不放过的时候,我决定必须要转全文留照,GFW和谐一个镜像,我们就更多出一个镜像。

我觉得有些事情并不只是简单的医德沦丧的问题,如果意见事情一旦归结到道德的问题上,事实上也就已经主动放弃了改进他的可能。归根结底还是管理和制度的问题。每个人都是自私和理性的,有去追求个人利益增长的欲望,一味的强调修身养性提升道德,也许对一两个个体有效,但要拿来解决社会问题,就根本就是可笑了。所以再保先,也是狗屁~ 真正的解决方法,是如何从制度上去约束这些人性的丑恶,使其暴露在舆论之下,让人的理性去限制自私~ 在这个无民主无法制的社会当中,一切都是空谈。可以想见的,这位父亲的悲痛,也只能随着网络小范围的传播一下,一定登不上主流媒体的大雅,更别说就这么在网上的传播说不定什么时候就被和谐掉了。

补:经证实,这篇文章事实上已经被和谐掉了~ 可以尝试用google搜索这个标题,看看 1.能不能访问上面搜出来的文章链接。 2.google还能不能继续使用(点下一页看看)。 这个党,让人胆寒~~
Read more…

Life ,

中国GFW第一案

May 22nd, 2007

发现自己的法律意识还是不够。在被GFW一次次骚扰以后,只是愤怒漫骂,然后一次次的迁移逃避。在这次my.opera.com被封以后,终于向GFW屈服,搬到了国内的BSP。(PS:yo2还不错,so far so good)

不过,终于有人第一次向GFW发起了挑战,用法律的武器,以子之矛,攻子之盾。无论结果如何,这都是针对GFW的第一案,值得我们尊敬。

不过无奈的,我们并不能真正向GFW发起挑战,我们不能状告一个“不存在”的东西。而且,中国的法律也不保护公民的知情权。所以这次的诉讼针对的是中国电信的服务问题,打的是一个擦边球。所以这次诉讼的实际结果可能并不见得会那么吸引人,符号意义更大。是我们在对GFW多年无奈地愤怒以后,迈出行动的第一步,哪怕只是一小步。

虽然这次的诉讼并不针对GFW,但明眼人都知道,意在GFW。不过不明眼的人呢?媒体呢?舆论呢?我想这次我们的喉舌该住嘴还是会住嘴的,这件事情的影响力所及的范围恐怕还是有限的。关注的人,始终会关注,不关注的人,还是没有机会关注。最后,明眼人还是明眼人,不明眼人,恐怕还是不明眼。

此案将于5月29日上午9:00开庭,时间很不好,在周二,恐怕去的人不多,影响就更小了。如果不出意外,我会请假去旁听这次公审,以示声援,算尽我的的一小分力。

Life

Tips: find到带空格文件名用xargs处理的技巧

February 4th, 2007

find和xargs是最好的组合,可以说是linux shell下的瑞士军刀,用xargs配合find,比直接用find的-exec参数,速度更快,用法也更直观。
基本的用法比如:
find ./ -name '*.bak' | xargs rm -rf


一般情况,上面这个命令运行的很好,但是如果找到的文件名代空格,上面的命令运行就可能会出问题了。

find有一个参数-print0,于默认的-print相比,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非空格间隔的输入流。所以说xargs简直就是为find而生的。上面的问题就很好解决了:

find ./ -name '*.bak' -print0 | xargs -0 rm -rf



Linux ,