2006年12月31日星期日

Go See and Become / Va =?UTF-8?Q?, _vis_et_deviens_/_=E7=94=9F=E5=91=BD=E5=9B=BD=E7=95=8C?=

电影中充斥着各种语言,猜测其中有法语、以色列语、希伯来语、阿尔巴尼亚语,反正是哪种也不认识,好在有好心的网友翻译了字幕,才得以欣赏到这部"获得2005年法国电影恺撒奖最佳编剧奖"的影片。

以色列好像从建国以来就没有消停过,犹太人获得一片栖身之地来之不易,所以今天我们在数落以色列人和阿拉伯世界之间的冲突的时候,不得不考虑这些问题。和犹太人相比,身在非洲的黑人兄弟的遭遇就更不幸了,除了少数经济发展比叫好的地方以外,经常听到新闻里说非洲这里那里又发生战乱了,非洲又有瘟疫了,诸如此类,原本富饶的非洲,似乎在近代就没有让非洲人民幸福过。从某种意义上来讲,当初被当作奴隶贩卖到美洲或欧洲的黑人幸存者的后代,或许要比他们在非洲大陆的同宗要幸福的多了。我们的小主人公,什洛莫,也是一位幸福的家伙。

电影从什洛莫9岁一直讲述到他成年、结婚,除了我们已经不愿再看的苦难、歧视之外,什洛莫还是很幸运的,有那么多的人爱他,亲生母亲为了什洛莫的幸福而送他离开非洲,村子里的大姐让什洛莫冒充自己刚刚死去的儿子来到了以色列,在以色列的学校里面,那一堆老师对什洛莫也算不错,最后,什洛莫得到了一个温暖的家庭——他被一个以色列家庭收养了。现在他除了仍然远在非洲的亲生母亲之外,又有了养父、养母、哥哥、姐姐等亲人,养父像爱亲生儿子一样爱着什洛莫(当然是以男人的方式),养母对什洛莫更是充满了母性的温柔,哥哥小的时候不懂事,但长大以后和什洛莫也象亲兄弟一样,姐姐更是对什洛莫更不错啦。随着什洛莫的成长,还遭遇了很多其他的好人,包括和他拍拖10年的妻子。幸福的什洛莫,但他那时常仰望月亮的眼睛里,仍然闪烁着埃塞俄比亚黑人的苦难。

同时,我们还看到了以色列人民对自己国家的爱,以色列人民和其他任何国家一样,都热爱自己的祖国,虽然他们和巴勒斯坦的事情总是扯不清。就像什洛莫的养父说的那样,这是我的国家,我就要在这里,哪里也不去。我们家没有人逃避兵役。。等等。为什么以色列能夠生存在一众阿拉伯国家的包围圈中,可见一斑。

最后,犹太教,说实话在玩最新的"文明3"之前我几乎没有听说过这个名词,但是"文明3"里面宗教的作用很强大与重要,所以就记住了:欧洲的基督教(广义),中东的伊斯兰教,中东的犹太教,印度的佛教,中国的道教。关于宗教没有仔细研究,在这里也就不敢乱说了,不过希望宗教是人类和平的媒介,而不是灾难的庇护所才对。

好了,再回到影片当中,什洛莫最终还是回到了非洲,用自己的医学知识来帮助同胞,同时也实现了自己的诺言,回到了生母的身边。影片到此结束,镜头从呐喊的嘴中拉高,让观众见识了一片狼藉的难民营。非洲的苦难,什洛莫能改变多少呢?

Source:http://www.fwolf.com/blog/post/275

2006年12月28日星期四

subversion中symbolic link的使用

nix操作系统中有link链接文件类型,硬链接(hard link)和符号链接(symbolic link)两种形式,硬链接只能在同一个分区内对文件使用,使用起来感觉就像是为文件创建了一份同步更新的副本,命令:ln link_target link_filename;符号链接则可用于文件和目录,纯粹就是一个指向链接目标的"指针"而已,并没有真正把内容复制过来,命令:ln -s link_target link_filename。实际应用中我个人的感觉是符号链接使用得更多一些,两种链接都比windows下的"快捷方式"要强大得多。

那么在svn的应用当中,如果两个项目共用一个库文件,使用符号链接文件就不需要两边分别更新了,不是很方便么?但是今天在一个项目中试用了一下,却不是我想像的那样。

我的情况是这样的,本来的项目中有一个dbupdater.php,现在转移到另外一个项目中了,但是在这个项目中还要继续使用,就产生了我刚才说的需要两边更新的问题,so想着采用link的方式,直接删除掉dbupdater.php,并创建了一个同名的符号链接文件覆盖了它,结果在svn commit的时候就出错了:

$ svn ci
svn: Commit failed (details follow):
svn: Entry '/home/fwolf/project/dbupdater.php' has unexpectedly changed special status

原来,svn不仅跟踪记录了文件内容,连文件类型也记录了(nix下文件分为三种类型:file, dir, link),这样直接替换是不行的。如果硬是要用链接文件替代正常的文件,只有一种办法:先用svn rm删除掉原来的文件,提交,再用svn add添加链接文件,提交。不仅如此,我还测试了一下,发现这样提交到svn服务器上的文件内容居然是:

link /home/fwolf/svn_symbolic

也就是说,使用了符号链接之后,提交到服务器上去的并不是链接指向文件的内容,而是符号链接的"符号"而已,这样,如果在另外一台不同环境的客户端checkout出来,符号链接文件也许就不能正常工作了。

所以,虽然svn支持link类型的文件,但除了在少数情况下可以使用hard link,或者在项目内部文件之间使用symbolic link之外,尽量不要link项目之外的文件,因为结果并非我们所期待的那样。

参考:
Problem replacing symbolic links
Basic question
->Re: Basic question

另外再搭车介绍一下svn的"廉价复制"功能,svn创建tag或branch的机制和cvs不同,他基本上是通过创建一份拷贝的方式来创建tag或branch的,不过你不用担心这样会占用成倍的空间,因为svn的拷贝是一种"廉价复制",只有当tag或branch中的文件被修改时才会真正的另存一份,这也是svn和cvs的一个主要区别, 延伸阅读

Source:http://www.fwolf.com/blog/post/274

2006年12月27日星期三

配置Apache的ssl安全连接

环境:ubuntu 6.06, Apache 2.0.55

第一步:生成ssl certficate文件
首先当然是正常安装apache2了,然后:

sudo apache2-ssl-certificate

生成一个1024位的RSA私钥,并保存为/etc/apache2/ssl/apache.pem,如果你已经有了CA证书,应该也是可以拿过来直接使用,或者用来生成这个私钥的(这应该属于另外一个话题了,我也没有用过)。

apache2-ssl-certificate执行过程中要回答一些问题,如下,注意如果[]里已经给出了默认值,而你又想把这项置空的话,可以输入英文句号".":

Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Some-State]:.
Locality Name (eg, city) []:
Organization Name (eg, company; recommended) []:.
Organizational Unit Name (eg, section) []:.
server name (eg. ssl.domain.tld; required!!!) []:localhost
Email Address []:fwolf@mail.com

一般来说,server name和实际的网站域名还是保持一致比较方便。

第二步:启用ssl mod

sudo a2enmod ssl

或者

:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/ssl.conf ssl.conf
:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/ssl.load ssl.load

第三步:添加监听端口,配置虚拟主机
添加端口:在/etc/apache2/ports.conf中增加一行"Listen 443",显然,如果你想让默认的80端口就使用ssl的话,就可以省略这一步了,并在后面的配置中略微调整。

在apache虚拟主机的配置文件conf中,段,添加SSL的定义,比如:


ServerAdmin Fwolf
ServerName www.fwolf.com

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

DirectoryIndex index.php index.html index.html.var

然后重启apache,就能够使用https访问网站了。

如果想配置成80端口默认就使用https,首先不需要在ports.conf中添加443端口的监听了,其次是在配置VirtualHost的时候也不用带上:443了,但即使这样,配置完成后使用 http://www.domain.com访问配置好的网站时,还是会提示:

Bad Request

Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

Hint: https://www.fwolf.com/

这是由于使用http协议去访问一个https的端口造成的,最简单的解决方法是使用https://www.domain.com:80/来替代,不过,通过修改apache配置,把到80端口的http访问重定向到443端口的https访问效果会更好一些,就像下面的配置:

NameVirtualHost *:80

Redirect permanent / https://localhost/

NameVirtualHost *:443

ServerAdmin Fwolf
ServerName www.fwolf.com

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

这样所有http访问就自动被重定向到https访问上了,不过如果你只能在外网开一个端口的话就比较麻烦了,同时https也只能包含一个站点(无法通过ServerName辨识多个站点)。

如果能够把http和https协议同时绑定到一个端口上,用户访问的时候似乎就更方便了,不过很多地方都说这是不可能的,加密与明文协议不可能同时存在于一个端口上, 这里有个讨论给出了一种方案,虽然经过我的实验并不成功,还是把代码贴出来,供有兴趣的朋友继续研究。


RewriteEngine on
RewriteCond %{HTTPS} != on
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=permanent]

一个小问题:我生成的pem文件怎么有效期都只有一个月?难道这是默认的?pem文件到期之后会发生什么事情呢?

参考:
Need Apache2 SSL howto
Apache2 SSL
You're speaking plain HTTP to an SSL-enabled server port. - HELP PLEASE !

Source:http://www.fwolf.com/blog/post/273

2006年12月24日星期日

伪造图像的exif信息

前两天在Gfans里面聊天的时候,聊到flickr不鼓励用户上传非数码照片的图像,而像我这样喜欢用flickr保存截图并在blog中引用的人应该不在少数,所以就谈到可以写个小程序把屏幕截图"伪装"成数码照片,当然你如果真的愿意拿数码相机对着屏幕拍照也没人拦着 :)

不过互联网上相关的资料还是比较少,搜索了半天找到一个比较类似的,结果研究了半天才发现人家并不是在修改exif信息,而是把exif信息读出来,做成水印再贴到图像上。然后又用setexif和writeexif、copyexif作为关键字来搜索,终于找到了一个 现成的程序,再进一步发掘,这个copyexif程序已经被 作者推荐使用jhead替代了,而这个jhead居然在ubuntu源中也有,嘿嘿:

sudo apt-get install jhead

这个jhead的功能还是非常强大与方便的,不过我们只需要其中一点点:

jhead -te $FROM $TO

其中$FROM是一张正常的数码照片,$TO就是屏幕截图了,这个命令就可以把正常数码照片的exif header拷贝到屏幕截图中,如果传到flickr上,他就会认为是一幅数码照片而不会被当作是屏幕截图了。注意两个图片都必须是jpeg格式。

不过这种方法也有缺点,首先是exif和图像肯定对不上,我曾尝试用exif命令来手工设置正确的图像信息到exif header,不过很多部分写入时都会提示"Not yet implemented!"不支持;其次是图像尺寸会扩大很多,一般屏幕截图使用png格式是最节约空间的,但转换为jpg之后就大了很多,比如我一张3.5k大小326×225的png截图,转换为jpg格式、再添加上exif信息、再去掉exif中的thumbnails之后, 还有43.8k,不过我们的图片是放在flickr,空间的问题可以不用考虑太多了。

还有一些其他的软件,比如jpegtran中的wrjpgcom / rdjpgcom,但他们都比较简单了,只能对comment部分进行操作,远不如jhead方便,如果jhead能夠方便的设置每一项exif信息就更好了。

好了,现在看看我"拍摄"的照片如何:
使用jhead拷贝图像的exif信息
注意它是带有拍摄相机、光圈、快门速度等exif信息的哦。

jhead还有一个非常好用的地方,就是当你要使用其他图像处理软件处理一批数码照片的时候,为了防止图像处理软件破坏掉exif信息,可以先把所有照片都拷贝一份到originals子目录,处理完成后再用命令

jhead -te originals/&i *.jpg

就可以恢复所有文件的exif信息了,不用担心,jhead会自动匹配命令中的文件名,更详细的说明可以看jhead的文档或man jhead。

Source:http://www.fwolf.com/blog/post/272

2006年12月23日星期六

好玩的有道Yodao

Yodao有道是最近(也就是2006年12月)才冒出来的一个"搜索网站",大家都说它是网易的,但我上去看在哪儿也看不到证据,甚至连 有道的论坛都是用免费的Discuz!架设的,"关于有道"是这样的:

欢迎访问有道搜索。有道的发起者是一群执着于搜索技术的年轻人,我们发现中文网络中的搜索还远未达到理想,所以希望通过我们现在和将来的努力,把设想中的服务一点点变成现实,分享给大家使用,让你更快一秒找到想要的好东西

联系邮箱是feedback@corp.yodao.com,丝毫没有网易的影子,最后,查查首页上的"增值电信业务经营许可证B2-20040095",和网易的 才挂上钩。

言归正传,yodao在这个满大街都是搜索的情况下出现,依旧十分清新于出众,套用现在流行的话说,很"Web 2.0",目前的功能虽然还不多,但用起来很舒服,行话就是"用户体验"ue比较好。针对博客口碑宣传的优势,创建伊始就开通了"博客搜索",和其他的blog搜索不同,yodao还为每个blog都建立了一个档案,比如 我的档案

Yodao上我blog的档案

也许是吸收了google"机器判断"的优势,通过自动分析,列出了blog的活跃度、关注度、习惯发文时间、习惯发文星期、习惯发文长度、blog风格等信息,结果似乎还比较准确,既有娱乐价值,也有很实用的一方面。如果你够细心的话,还可以研究一下blog档案中的两个条形图和一个饼图,他们不是图片,而是采用另外一种特殊的方式生成的:在页面中只是用canvas和div规划出了空间,然后用一个稍微复杂点的js来实现的绘图,并且似乎是为每个blog都生成了一个单独的js文件,在页面源代码的最后面进行引用,代码如下:

很有意思的方式吧。现在有道又弄出了一个好玩的东东——博客男女,还是通过机器分析,判断你的blog的"性向",比如我的:

Fwolf's Blog
100.0%男性倾向,0.0%女性倾向


评点:您的文风冷静而镇定,言语间展现出强悍的思辨能力与恢宏的胸襟,一个男子汉的阳刚形象跃然纸上。
yodao | 博客男女

很man的哦,不过博客男女的计算好像是偏向男性多一些,如果说李宇春的BLOG只有82%女性倾向还说得过去的话, 老徐(徐静蕾)却只有69%,怎么也应该比李宇春更woman一些才对吧 :)

有道论坛的名字"坐而论道"似乎很熟悉哦,在哪里听过?电影《手机》里面么?

看来好人还是有的,现如今流氓软件和垃圾网站横行的时代,能有如此清新的Yodao,可谓"出淤泥而不染",Yodao一路走好!

Source:http://www.fwolf.com/blog/post/271

2006年12月22日星期五

Hard Candy / 水果硬糖

只看截图的时候,我根本就不相信这怎么是一部惊悚片呢,看到片头的时候还觉得挺艺术,知道看到Jeff被绑在桌子上要被Hayley cut小JJ的时候,才有些惊悚的感觉了。再一直看到结尾,又是波澜不惊的感觉。

导演似乎想讲述一个类似"黑暗的公正"的故事,但我的感觉,不仅讲得很好,而且太好了,好得有些过了,过得不知道那一边是公正了。

记得早在法国流行断头台的时候,为了更"人道"一些,颇有一帮人在研究如何才能夠更快得砍下脑袋,让上断头台的人减少些痛苦,所以断头台的刀口才被设计成斜的(其实这也是断头台产生的作用)。那么在这部电影中,小女孩Hayley的手段可真是太不人道了,而且是近乎残忍的。虽然我们可以猜测她有一个很好的动机,也为这场复仇筹备了许久,可毕竟只有14岁,不知道她为复仇筹备了多久,更不知道她花费了多长时间才让自己的心理如此阴暗、歹毒。相比于还知道在心中忏悔(只是不敢说出来)的Jeff来说,这种阴暗的心理或许比恋童癖更可怕。

Jeff虽然也不是什么好鸟,但他实在不像一个专业的罪犯,不仅屡次被Hayley制服,还偏偏有那么多弱点。在劝说Hayley这个那个don't的时候话挺多,其实脑子里面就是一团乱麻,空有一身蛮力,复仇的时候一点策略都没有,家里还为别人藏了一只枪。唉,不是我想为罪犯说这么多好话,谁让他的确是"弱者"呢。

总之,看得很郁闷,这哥们儿虽然坏了点,但是更傻。Hayley虽然似乎是在维护正义,其实更坏。

Source:http://www.fwolf.com/blog/post/270

2006年12月21日星期四

Match Point / 赛末点 / 迷失決勝分 / 爱情决胜点

神话论坛下载的这部电影,不知道起名字的人看没看剧情,但他是这样介绍的:

"美国超高评分爱情新片【爱情决胜点】"

但即使是喜欢看爱情片的lp,坚持看完上半部之后也不顾Dreamworks的招牌悻然离去,留下我继续兴致勃勃的欣赏。最终我明白lp为何离去了,这根本就不是什么爱情片。但他究竟属于什么类型呢,我想了半天也没什么大主意,于是在豆瓣上只给了两个tag:剧情 欲望,不过按照中国古老的电影分类方法,它应该属于"美国故事片" XD。

不看豆瓣还真不知道导演是Woody Allen,至于Woody Allen是谁,我是真不知道,恕我孤陋寡闻,我虽然喜欢看电影,但向来都是直扑电影而去,从来不管什么导演演员是谁,影片好就行,也从来不依导演或者演员来评判电影。所以关于Woody Allen就不班门弄斧了。

最后来说说影片本身,演员们演得真好,虽然故事就是在那几个人物之间展开:爸爸、哥哥、男主人公、妻子、情人,但每个人物都很饱满,让观众看了丝毫不觉得做作,就连人物之间的情感也是那么的细腻:

爸爸&妈妈对男主人公及其妻子的爱是那么的朴实,丝毫没有贵族的傲慢,也没有过分的溺爱,从相识到有了baby,都是那样的慈祥,真是羡慕。
妻子对男主人公的爱是那么的纯洁,纵使男主人公对她的爱并不是很深,和她在一起很大程度上是对这种舒适的生活方式的依赖,但这位并不十分美貌的妻子其实真的不错。
哥哥,男主人公踏入这个家庭的跳板,戏份不多,却是一个很真实的贵族公子,喜欢美女,喜欢哥们儿,风流但不放荡。
作情人的美女,着实火辣,怪不得男主人公为他"不惜一切",不冤枉,但时间长了以后,有了身孕以后,依然回归到了女人应有的角色,很现实。
最后,男主人公,运气真的不错,我们除了羡慕,还能说他什么好呢?

关于剧情,多说就影响大家欣赏的兴趣了,只说一点,导演能让观众们对一个杀人犯产生无比怜悯的"反常"心态,是这部影片的最大亮点。

看的着实过瘾,写出来却无从下手,唉,天要下雨,dns要建国内镜像,随他去吧,最后祝大家都Luck !。

Source:http://www.fwolf.com/blog/post/268