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

2006年12月19日星期二

mplayer播放新的rmvb格式有图像没声音(未解决)

本来用mplayer看电影挺好的,一直没出过问题,也几乎没有不认识的格式,可最近从神话下载了几个电影,播放的时候提示错误"could not open codec",并且只有图像,好像没有声音。把声音开到最大,终于听到了一点点,细细的声音,对照字幕看,也听不出人声来,好像是极度压缩变形了的声音。以为是mplayer有问题呢,找了几个原先下载的电影放了放都正常,遂怀疑是影片压缩格式的问题。

比如说这部电影,文件名是:[绿帽子].Green.Hat.DVDRip.XViD.REPACK-PP.rmvb,用totem打开(用这个播放压根儿就没声),看音频信息是:

Bitrate: 183 kbps
Codec: Cook

看来就是解码器的问题了,好像是real这种最新的编码,linux认得还不是很好,这部电影在windows下用很早以前安装的暴风影音都能够正常播放。

在mplayer的Perferences->Codecs & demuxer中,"Audio codec family"里面没有cook选项,但如果选择"FFmpeg/libavcodec audio decoders",就有刚才那个"could not open codec"错误,如果选"RealAudio decoder",错误提示就没了,不过两种情况下声音都是老样子。

再来修改/etc/mplayer/codecs.conf(这个文件也可以拷贝到$HOME/.mplayer下,然后在$HOME/.mplayer/config中增加一行"codecs-file=codecs.conf"来覆盖默认设置),注意其中这几句:

audiocodec ffcook
info "FFmpeg COOK audio decoder"
status working
format 0×6B6F6F63 ; "cook"
driver ffmpeg
dll "cook"

如果保持原样的话,在console下播放刚才的影片会提示:

Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
MC_COOK not supported!
Could not open codec.
ADecoder init failed :(
ADecoder init failed :(
Opening audio decoder: [realaud] RealAudio decoder
opening shared obj '/usr/lib/win32/cook.so'
AUDIO: 44100 Hz, 6 ch, s16le, 183.3 kbit/4.33% (ratio: 22911->529200)
Selected audio codec: [ra10cook] afm: realaud (RealPlayer 10 COOK audio)

根本就没有声音,如果把这几句设置用";"注释掉,播放影片会提示:

Opening audio decoder: [realaud] RealAudio decoder
opening shared obj '/usr/lib/win32/cook.so'
AUDIO: 44100 Hz, 6 ch, s16le, 183.3 kbit/4.33% (ratio: 22911->529200)
Selected audio codec: [ra10cook] afm: realaud (RealPlayer 10 COOK audio)
==========================================================================

==========================================================================
Building audio filter chain for 44100Hz/6ch/s16le -> 0Hz/0ch/??…
alsa-init: 1 soundcard found, using: surround51
alsa: 44100 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [alsa] 44100Hz 2ch s16le (2 bytes per sample)
Building audio filter chain for 44100Hz/6ch/s16le -> 44100Hz/2ch/s16le…
Starting playback…

声音仍然是老样子。然后在这里看到说可能是libstdc++5的问题,可我明明安装了啊,即使是卸载掉再重新安装(同时还会卸载掉xorg-driver-fglrx,记得重新安装时不要忘记了),问题依旧。

于是又怀疑是cook.so的问题,到mplayerhq去下载了个essential-20061022.tar.bz2,解压缩,替换/usr/lib/win32下面的文件,还另放了一份在/usr/lib/codecs,可都没有解决问题, 这个包里面比w32codecs还少一个cook.so.6.0文件呢。

没办法了,网上还有人说可以安装realplayer10,然后把它下面的cook.so拷贝过来用,但我实在不愿意装这个笨重的家伙,谁有现成的?发一个过来给俺试试,windows下的也可以。

目前这些使用超新编码方式的影片,只能使用windows播放,或者干脆就不看了!real自己的封闭格式没事升什么级啊,瞎折腾。

参考:Ubuntu:Mplayer播放某些avi影片有图像没声音的解决方法

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

2006年12月18日星期一

用Ooo把你的演示文档输出成flash动画吧

Openoffice能够方便的输出pdf文档已经是天下皆知了,不过今天在翻阅ooo 1.1.5的新特性的时候,发现ooo居然还能够把演示文档(有些人喜欢叫幻灯片)输出成swf格式呢。

openoffice还能够输出swf文件
看来是我火星了,这个功能应该不是最近才有的吧。

然后大概试了试这个功能,使用很简单,打开odp文档,然后选用File->Export菜单,Export对话窗口中有"Macromedia Flash(SWF)",选这个就可以了。(咦。。。macromedia不是被adobe收购了么?)

转换的swf文件可以直接在firefox中播放,如果有什么讲义需要放到网上的话,不妨考虑一下这种方式喔。文件尺寸转换后很稍微变大,大概变大的尺寸还是比较固定的,我一个30k的无图片演示文档转换后为355k,而另外一个635k有图片的演示文档转换后为952k大小,两者都增加了320k,这是flash版odp播放器的大小么?

不过还是有一个坏消息,演示文档中的部分页会乱码,看来在实际应用的时候,swf发布上网之前还要检查一下的。好的样子:
openoffice转的swf播放中好的例子

乱码的样子:
openoffice转的swf播放中坏的例子

PS: 圣诞快到了,openoffice网站上的logo居然也飘起了雪花呢。
openoffice网站上的logo居然也飘起了雪花呢

PS2: flickr最近怎么这么慢?是每月容量升级为100M刺激了大伙儿,还是年底大家都比较闲都在上传图片?

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

한반도 / 韩半岛 / Hanbando / 朝鲜半岛

虽然韩片看得我都快晕到吐了,但直觉告诉我这部很出众,结果3个小时终于没有白费,至少比《暴力城市》好看多了。

表面上这是一部商业娱乐片,模仿美国好莱坞方式,拿政治、政客们开涮,讨取观众的赏识,但如果仔细想想影片所讲述的故事,你会发现,不管是《韩半岛》也好,他模仿的好莱坞模式也好,其实是一种非常高明的教育方式。

在《韩半岛》中,表面上是在拿虚构的一个当代韩国总统,讲述他抵抗日本霸权的故事,同时还对照着100年前大韩帝国皇帝的不幸遭遇,只是这个当代韩国总统运气比较好,不仅有一个执拗的史学家帮忙,日本还挺通情达理,于是我们有了个皆大欢喜的结局,在大家齐声喝彩的时候,连"内贼"都没事得以"善终"。其实,片子前面的部分都是娱乐用的,只有最后2分钟才真正精彩,也就是总理辞职时所说的那番话:"我只不过是成千上万个持这种观点人中的一个罢了,将来还会出现第二个或第三个我,他们会接替我的位置来告诉你你所犯的错误。。。"。

片中为何把国玺放在如此重要的地位?其实那不仅仅是一块纯金或者是皇帝的公章,能夠证明合同的真伪的道具,而是韩国民族精神的一种象征,是韩国人对自己民族的一种忠诚的信念,所以,这部电影在告诉韩国人,不要为日本人目前所施予的贷款投资等恩惠所迷惑,别忘了他们曾经骑在我们头上拉屎撒尿!韩国版的"呐喊",似乎是说给那些想要人血馒头的人听的。

当然当今世界还是要讲和平的,所以片中的总统也没有要求日本作什么物质补偿什么的,只是要求"道歉""而已",但这种道歉的要求,和"抗议"还是有着本质的区别的,的确,我们是要和平共处,不过要站在对历史有着正确认识的基石上才行。我们不要求你们像德国总理那样下跪,但只是动动嘴皮子道歉的要求,也过分么?

基于韩国的实际,导演其实还埋伏了一个更隐晦的政治理想——南北韩统一。刚开始用南北韩铁路签约来作故事的开端是一方面,后来那个情报局秘书官李尚铉因为总理在南北韩统一上的观点而深思乃至投诚是另一个方面。看来韩国人和我们有着类似的民族情节,不知道北韩人民和台湾人民是否也如此。

所以,以后不要总说好莱坞是"造梦工厂",其实,他们在向全世界出口教材,电影在娱乐的同时,也承担着教育人民的任务,好莱坞只是让课堂更吸引人一些而已,有什么不好么?再来看看为什么国产电影大多没啥看头,和大学讲课一样,索然无味,纵有内涵与精神,说给一群昏睡的人又有何用?

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

2006年12月8日星期五

玩转fortune

fortune是一个非常简单的小程序,几乎存在于所有的unix、bsd、linux操作系统上,它的功能很简单,就是从数据库中随机返回一句话。这个数据库一般是前辈们都设计好了的,也并没有我们常用的关系型数据库那么复杂,一般情况下忽视他们的存在就是了。要使用fortune,在shell中执行就可以了,比如:
$ fortune
Q: Do you know what the death rate around here is?
A: One per person.

很显然这是一个类似脑筋急转弯的问题。fortune有一些参数可以选用,比如:

$ fortune -c
(fortunes)
%
Never be led astray onto the path of virtue.

-c参数让你知道随机的句子出自哪个文件/或者叫数据库,本例中就是fortunes了。并且,在我使用的ubuntu dapper中,这些数据文件都存储在/usr/share/games/fortune中:

$ ls /usr/share/games/fortunes/
fortunes fortunes.u8 literature.dat riddles riddles.u8
fortunes.dat literature literature.u8 riddles.dat

看来很多人都把fortune当作一个小"游戏"呢。如果想知道fortune都会从哪些文件中随机挑选句子,可以这样:

$ fortune -f
100.00% /usr/share/games/fortunes
52.24% fortunes
31.76% literature
16.00% riddles

-f参数列出fortune所用的所有数据文件,以及他们在随机选取句子过程中的权重。一般这个权重或者比例是按照各个文件中的句子总数来分配的,可以看到ubuntu只带了三个数据文件:fortunes预言,literature名句,riddles谜语。fortune也可以控制每个数据文件的权重大小,比如-e参数让大家平均比例,或者在每个数据文件前面加上百分比:

$ fortune -f 20% fortunes 30% literature riddles
30.00% /usr/share/games/fortunes/literature
20.00% /usr/share/games/fortunes/fortunes
50.00% /usr/share/games/fortunes/riddles

可以看到比例就随之调整了,当然比例只和要等于100%,不过也可以省略riddles前面的百分比,那么它就是100%减去其他文件所占比例之和。还有其他一些参数可以用,比如:

先用-n指定一个句子长度,然后用-l只返回比这个长的,或者用-s只返回比这个短的。
-m regxp返回符合正则表达式的句子
-i在使用-m参数的时候忽略大小写
-o只返回具有攻击性的句子(不建议在网上对他人使用)
-a在所有句子中随机选择,包括具有攻击性或者不具有的。
-w 程序结束前等待一段时间,如果每次关机之前来一下,可以让你有时间来阅读

除了系统给定的那些数据文件之外,我们当然想自己创建啦,这个就要用到strfile命令了,首先来创建一个数据文件test:

test1
%
test2
%
test3

句子可以是多行,句子之间用独占一行的字符%来分割,然后用strfile为test创建索引文件,就可以在fortune中使用了:

$ strfile test
"test.dat" created
There were 3 strings
Longest string: 7 bytes
Shortest string: 6 bytes

$ fortune test
test3

注意如果不使用strfile创建索引,数据是不会被索引到的,所以要在新建和每次更新数据文件之后重新创建索引。

用法就介绍到这里,那么fortune有什么用呢?这就要看用户们怎么发挥了,比如我想在mutt的签名中随机附上一个脑筋急转弯,或者为网站生成"每日技巧"等等都可以,nix下的工具就是这样,只作一件事,并且作到最好,然后由用户来自由组合。

谁有兴趣把唐诗宋词弄进来玩玩?

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

2006年12月7日星期四

用abook来管理mutt的地址簿

平时与别人联系使用最多的恐怕就是email和电话了,既然mutt有邮件别名文件alias,那为什么不能利用它把邮件地址和电话号码都管理起来呢?

有很多工具可以,扩展mutt alias文件的用途,lbdb可以用来收集邮箱地址,并可以从不同格式的文件或数据库中进行查询,用于mutt; Rolo可以把地址存为vCard格式,不过好像2003年底就停止开发了,最后, abook可以让alias文件除了保存邮箱之外,再多几个保存其他信息的"字段"。

首先安装abook:apt-get instal abook。

然后来进行配置,首先创建abook的配置文件~/.abook/abookrc,内容如下,我把所有的配置都加上了说明:

# Auto save when exit
set autosave=true

# All email of a contact are shown in main list
set show_all_emails=true

# Display email from which column of screen
set emailpos=25

# Which field is to display in main list view as the third column
# frequently used values:
# -1 disabled
# phone Home Phone
# workphone Work Phone
# fax Fax
# mobile Mobile Phone
# nick Nickname/Alias
# url URL
# notes Notes
set extra_column=mobile

# If extra_column have no data, display this instead
set extra_alternative=workphone

# Extra field display from which column of screen
set extrapos=55

# Command used to start mutt
set mutt_command=mutt

# Return all email addresses to a mutt query
set mutt_return_all_emails=true

# Command used to print the addressbook
set print_command=lpr

# Command used to start the web browser to view a contact's URL
set www_command=firefox

# Address formatting used when export or print(eu,uk,us)
set address_style=us

# Use only ascii in abook file
set use_ascii_only=false

# Drop duplicate address in data?
set add_email_prevent_duplicates=true

# Sort addresses sort by which field?
set sort_field=nick

由于abook自己具备独立的功能,所以配合mutt使用还需要一个script,接下来创建可执行文件~/.abook/abook-autoexport如下:

#! /bin/sh
abook ${@}
abook –convert \
–informat abook –infile $HOME/.abook/addressbook \
–outformat mutt –outfile $HOME/.mutt/aliases.new
mv $HOME/.mutt/aliases $HOME/.mutt/aliases.bak
mv $HOME/.mutt/aliases.new $HOME/.mutt/aliases

可以看出,这个脚本的作用就是首先执行abook干活,然后把abook的数据文件转换为mutt的alias格式,然后替换掉原有的muttalias文件。

现在可以把原来的mutt alias文件转换为abook格式了,存储于~/.abook/addressbook中,这个是abook的默认数据文件:

abook –convert –informat mutt –infile $HOME/.mutt/aliases \
–outformat abook –outfile $HOME/.abook/addressbook

最后,配置muttrc,通过macro在mutt中调用abook,添加下面两句:

macro index,pager A "!~/.abook/abook-autoexport\n:source ~/.mutt/aliases\n" "Start abook"
macro index,pager a \
"|~/.abook/abook-autoexport –add-email-quiet\n:source ~/.mutt/aliases\n" \
"Create new alias from the actual message"

这样,在使用mutt的时候,按A就进入abook进行联系人管理了,按a则可以把当前邮件的sender保存到abook中。

一点使用感觉和经验:
abook肯定不是最好的联系人管理软件,不过他使用很方便,在联系人不超过几百个的情况下,应该没有问题,况且除了能够存储邮箱信息之外,还能够保存电话、手机等很多信息以及4个自定义信息,哪怕是脱离mutt使用,也十分方便,所以用来管理电话本应该是没有问题的。

abook的最大缺点是不能很好的处理一个联系人有多个邮箱的情况,我的解决办法是,再创建一个alias文件,把常用的包含多个收信人地址的别名都存到这里手工管理,abook只用来管理每个联系人一个邮箱的情况,在大多数情况下够用了。

还有一个缺点是如果发信人中有中文,则不能正确识别=GB2312….=这样的编码,不过可以自己写程序转换。

abook,管理我的联系人

abook,管理我的联系人

参考:

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

2006年12月5日星期二

Dragon Tiger Gate/龍虎門

很"美"的影片,不过也光剩下美了,没什么情节,甚至可以说故事十分乏味。发表几条拙见,算是看过此片了:

  • 开头谢霆锋我踢、我踢、我踢踢踢,一看就是甄子丹的招牌架式,现在传授给谢霆锋了,他运气真好,谁都帮他。
  • 谢霆锋和甄子丹的岁数应该差一辈儿了,片中演亲兄弟。。。
  • 片中都是机器人,打败几百人也不累,空手把倭刀打弯也不会受伤,连衣服都不破,圣斗士好歹还穿件圣衣捏。
  • 小龙小虎的两个女人纯属多余。。。
  • 罗刹门好像只有两个人:boss和罗刹女,拿三节棍和分水刺的两个怎么看都像是花钱雇的职业杀手。并且只有两个人的罗刹门居然能够颁发走私营业执照——罗刹令。
  • 最终boss是窝囊废,只会欺负老头子,最后和后生仔们斗的时候嘴里说着还有什么厉害的招数没有,其实自己的绝招根本就使不出来(杀元华时用的拳头发亮的那个)
  • 中式功夫片和老外动作片的最大区别是,老外动作片用的炸药多,车子、房子全要炸,中式动作片用的风扇多,我吹~~~袍子鼓来了,头发飘起来了,人也飞起来了,so cool~
  • 片尾,小龙说:我们两个都是阿龙,不如你改个名字,叫阿豹吧。小虎说:阿豹,挺cool啊。。。龙虎门本是取自两个人姓名中的龙、虎,现在如果再加上个豹,那岂不成了——龙虎豹?男生们应该都知道这本杂志吧?真为编剧寒啊 -_-!

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

坐火车的感受

上周末出了趟近门,坐火车从石家庄到邯郸,办完事情再返回,虽然应该只是一个半或者两个小时的车程,不过还是平添了几分感觉:
  • 火车比汽车慢
  • 的确,现在火车提速了,不过汽车也大多上高速公路了,况且快慢只论不能只看行驶速度,还要看乘客在乘坐之前订票、买票、等车,以及下车之后出站的时间,加上这些因素,火车在短途旅行中就不见得有速度上的优势了。首先火车买票慢,排队、挤队,等到窗口了还不见得有票,全石家庄市订票电话好像就那一个,经常占线或者无人接听;而汽车不仅打电话咨询要方便多了,而且河北省内的几个地级市基本每天都有固定的几趟车,也不用提前买票,卡着时间去了,5分钟买票上车搞定。火车出站要过站台、地道,然后到达虽然有6个通道但平时只开1个的出站口,和汽车比起来,哪个快?

  • 车上有空座位的时候,上车的人更拥挤
  • 本来我的理解是,如果车上有空座位,并且很多的情况下,上车的人们应该不着急了吧,基本上都能找到座位啊。其实亲身体验过之后才知道,车上的空座反而是给了下面等上车的人们一种诱惑,仿佛谁先上车谁就能得到1万块奖金似的,结果更加英勇的向前冲。不仅欧巴桑们丝毫不在乎肌肤接触比小伙子还勇猛,就连衣冠楚楚的绅士们也身不由己得在人潮中挣扎。md,谁要是再说中国缺人,应该天天让他挤火车去。

  • 奴性心理的一种体现
  • 其实站台上也有维护秩序的人员,但如果你细心的话会发现一个现象,在没有人管的情况下,上车是肯定不会排队的,而如果有人戴个袖章拿个喇叭或者穿着制服来维持秩序的话,也能排成歪歪扭扭的队伍,大致按顺序上车。当然不排队有随波逐流和身不由己的成分在里面,但是否还有一种奴性的潜意识在作祟呢?难道只有在被人管着的情况下才能遵守秩序?那我们还要法制作什么,继续大力完善人治制度得了。

  • 晚点
  • 晚点好像不是什么新闻,一般从北京出来南下的车到石家庄是不会晚点的,但特殊的情况也会晚个10分8分的,而从邯郸返回石家庄的时候,从广东、桂林、武汉北上的车到了这里可没有不晚点的(仅指我坐车的那天晚上,没有作过普遍调查,不代表所有时间、所有车次都会晚点,或许只是那天我运气差),本来因为事情耽搁匆忙赶到火车站,还怕误了火车,结果进候车室一看就不着急了——晚点22分钟,就是再去吃碗面条兴许也够了。然后我就在候车室等待这22分钟,等到的确实晚点时间从22分钟变成30分钟、40分钟、50分钟、1小时零3分。就是晚点也不能这么离谱吧,登月工程都开始了,居然连晚点多长时间都无法预测!旁边几个小伙子一直嘀咕:"不知道这火车晚点有没有补偿啊",真是说到人心坎里了,但国家不会让年年"亏损"的铁路运输行业再背上这沉重的负担的,yy一下就算了。结果从邯郸至石家庄不到两个小时的坐车时间,我就在候车室里白等了一个小时,不相信我说的第一条的同志们可以找机会亲历一下 :(

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