Archive

Archive for December, 2006

Accepted / 录取通知

December 31st, 2006 Fwolf 2 comments

好一出闹剧!现在非常喜欢看美国的校园影片,比如邻家女孩凸种高材生等等,大多比较轻松,外加一点胡搞与性感,当然还有更另类的惊声尖叫与惊声尖笑系列。今天这部“录取通知”不仅轻松、搞笑,对现实的讽刺意味似乎更浓一些。

故事中随处可见对传统教育的批判,与对年轻人创造力和激情的赞赏,我们还要从一个不起眼的小人物说起,巴特比,其貌不扬,自己喜欢的女孩子在别人怀里,被8所大学拒绝了入学申请,父母对他期望和要求都比较高,而他自己却逊死了,有时候甚至还不如自己的小妹妹。不过,巴特比有一个特长——造假。片头就是他为别人伪造驾照的镜头,终于,历经8次申请大学入学失败之后,他想到了一个主意,伪造学校名称、网站、通知书,借此骗过父母,从而不用再听他们唠叨。。。至于其他的事情,过了这几天再说吧。可是,没想到巴特比的父母还挺认真,不仅上网仔细查看了学校介绍,还要找校长聊天,这些还都好瞒过去,更可怕的是,他们伪造的网站居然替他们招聘了300多位真正拿着钱来报名的学生!

不可否认影片的确很荒谬,故事也并非无懈可击,实际上漏洞很多的,比如那个从未露面的医院产权所有人、网站自动寄送的入学通知等等,但是把这些都抛开吧,电影人其实想讲述的,只是又一个“一切皆有可能”的梦想。拥有梦想没什么不好,但是千万别以为我们现在坐在课堂里、看着电视里描述的“成功人士”,以他们为榜样拼命学习和工作就能夠成为其中一员,要知道“一将功成万古枯”这句话还是非常现实的,一名歌手红了,必定就会有100个没有红起来的歌手,一位商人成功了,也许就有100位商人失败,另外还有上万名从大学里面走出来满怀理想而最终却为他打工的“白领民工”。

电影中的故事在现实中,无论是美国还是中国,都是不可能发生的,只是在美国可能会被起诉、判欺诈,在中国会被工商查封、警察叔叔关小黑屋这点区别罢了,不要呆呆的只会模仿电影中的行为,而是要领会其中的内涵,一种求学的精神,以及“just do it”的理念。如果有梦想,那么就不要犹豫,作点什么去试着实现它,但你的目的并不是其结果,而是通向理想的过程。

这让我想起自己的大学时光,当时被一个“老乡”骗走了50块钱,和一盘磁带,也由此认识了一位好心的穆斯林大姐,她的名字叫童雪梅,在河北师大对面的一个地方开了一家小书店,姐夫是老师,我在他们那里吃到了美味的回民家常菜,也把姐夫的3.5″软盘带到了学校出售——和2个同学一起。其实也就是赚个辛苦钱而已,那时候买张软盘很贵,大概每张10块(社会上很少有卖的,不像现在太和电子城那样商品丰富,我们刚刚买光驱的时候,光驱是从北京带过来的,最初2张D版软件盘还是转遍了大半个石家庄然后以30块钱一张买的呢。),我们只卖6块,多买几张的话还把剩下的10张装软盘盒一并赠了,所以生意很不错。但是,我们学校不仅禁止谈恋爱,还禁止经商,所以我的商人之路就到这里,在辅导员义正词严的训斥下结束了,有些思想还影响到了以后的分配与工作,不然的话,也许我也能成为太和或者中关村的一个小老板呢。

所以,电影在嬉笑之余,还是歌颂了资本主义美国的“美好”制度的,不管多么虚幻,我们不得不承认,他们的法律、制度、伦理、社会为创业者提供了肥沃的土壤,所以最终对巴特比的判决才能大快人心。而我们的环境呢,啥也不用说了吧?没有了创业的环境,年青人自然要和有工作的人和已经下岗的人来抢饭碗,难怪大学生不好找工作,第一怪学校没把车造好,第二怪路太窄啊~

不管怎样,还是抽出两个小时,和你的同学、爱人一起来欣赏这部电影吧,一起回忆那美好的时光 :)

PS1: 片中好几处演讲很不错,很有煽动性,不过我要是都能听懂就更好了。

PS2: 那位正牌大学的校长酷似美国总统Bush哦,看到他的汽车被“精神控制”搞得爆炸真是痛快!别忘了今天Bush绞死了萨达姆!

PS3: 美国大学一学期的学费是1万美金,也挺贵的嘛,我们的大学要不要“与国际接轨”啊?

PS4: 豆瓣的一篇评论中贴出了一篇回忆大学生活的“同学少年多不贱”,推荐一下,另外备份在这里

Related posts

Categories: Movie Tags:

Go See and Become / Va, vis et deviens / 生命国界

December 30th, 2006 Fwolf No comments

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

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

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

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

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

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

Related posts

Categories: Movie Tags:

subversion中symbolic link的使用

December 28th, 2006 Fwolf 4 comments

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的一个主要区别,延伸阅读

PS: 现在海缆断了,查点资料那叫费劲啊,我容易么我?可spam怎么还是那么多呢?

Related posts

Categories: Svn/Git Tags:

配置Apache的ssl安全连接

December 27th, 2006 Fwolf 3 comments

环境: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的定义,比如:

<VirtualHost *:443> 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 <VirtualHost *:80> Redirect permanent / https://localhost/ </virtualhost> NameVirtualHost *:443 <VirtualHost *:443> ServerAdmin Fwolf ServerName www.fwolf.com </virtualhost> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem …

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

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

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

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

update @ 20070126

默认生成的pem文件确实只有一个月的有效期,过期之后倒是还能使用,只是在客户端会有一个提示证书无效的确认,所以在生成证书的时候,记得用-day x参数指定有效期限,比如十年什么的。

sudo apache2-ssl-certificate –force -days 3650

(当pem文件已经存在的时候,需要使用–force参数指定覆盖)

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

Update @ 2007-07-31

Ubuntu 7.04 feisty中没有apache2-ssl-cerfiticate这个命令,需要自己下载一个包,然后解压,把里面的ssleay.cnf拷贝到/usr/share/apache2/,然后就可以执行解压的另外一个可执行文件apache2-ssl-certificate来生成证书了。

参见:

Related posts

Categories: Apache Tags: , ,

伪造图像的exif信息

December 24th, 2006 Fwolf No comments

前两天在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。

Related posts

Categories: Tools Tags: