偶然间发现 CSDN 上有人放出《Linux网络编程》,原作者写的是 snailium。估计这位朋友从我的网站上看到,以为是我写的。实际上全套《Linux网络编程》是从《永远的Linux》网站上转载的。这个我已经在第一章的介绍里说明了。转载的目的是方便我个人和我老婆查资料。
多伦多街头的无线网
Tulip Festival 郁金香
在渥太华呆 4 年了,竟然没去看过郁金香节。今天终于去了一次。
下面的照片都是拿 HDR-HC7 照的。按说摄像机的镜头肯定不如专业照相机的好,所以能拍出这种效果也就不错了。
宽屏照片是用摄像模式照的,正常照片是用照相模式照的。
5.3 北京 - 温哥华奥运长跑
没想好写些什么,流水一下。
(官方统计)共1000人左右到场。都是留学生,包括渥太华的学生和蒙特利尔的学生。我在蒙特利尔的几位朋友都来了,其中包括好久没见的几位。
本来我是准备好去拍摄资料的,结果到了之后,心理一激动,就跑去拉条幅了。结果很简单,回家之后发现可用的素材只有20分钟。没办法,只能剪辑 MV 了。
这次活动举办得比较成功。中英文的“声明”都有了,秩序也不错,没有乱七八糟的闹事分子。而且这次把北京奥运跟温哥华奥运联系起来,比较容易被加拿大人接受。条幅、T恤、国旗都比较到位。只有一点,我发现到场的学生们貌似没什么热情。唱《手牵手》和《红旗飘飘》的时候,大家比较放不开,手里的国旗也没有挥动起来。主持人也没有提醒一下。
最后,在两个多小时的“赛前热身”之后,不到1公里的长跑终于开始。本来我还打算可能要跑3、4公里,结果还没尽兴,就宣布长跑结束,搞得大家比较一头雾水。
回家之后,编辑视频,照例,以蓝色蒲公英的名义发布,地址:http://www.blue-dv.net/thread-370-1-1.html
“精英”派,叫我们如何爱国!?
4月份经历了太多事情。西藏的事情还没平息,马上又发生火炬被攻击。中国留学生竭力保护火炬,却又被说成是不爱国。法国佬欺负中国人,抵制家乐福又被宣传成“暴力行为”。而这一切不和谐的声音,都是从“精英”派那里传出来的。
“精英”派到底想干什么?西藏动乱的时候、火炬遭攻击的时候,“精英”们连屁都不敢放一个。换成中国人当主角了之后,“精英”们马上就跳出来,指责这里不对、那样不行。
留学生出国留学怎么就不对了?之前谁说的“我们要跟国际接轨”?答案是“精英”派说的。之前谁说的“我们要学习国外的先进文化技术”?还是“精英”派说的。结果,我们这帮留学的首先就成了炮灰,被说成是“不爱国”和“背叛国家”。
还有一种狗屁说法叫作“理性”。抵制家乐福的时候,“精英”派们放话让大家“理性”,还举了个“杀敌一千,自伤五百”的例子。我有个问题,一千敌人已经在城下了,我们不牺牲五百士兵,怎样保家卫国?这个道理很简单就用在家乐福事件上。法国佬现在就是在高傲地说:“我打了你们中国人的屁股,你们还得当我的奴才。”然而这些“精英”为了“国际关系”着想,号召大家“理性”地继续当奴才。
回头再来说说“精英”们的“理性”。
像当年中国电信效益不错,寻呼、手机等等增值业务收入不少。然后“精英”们就拿出所谓的美国反托拉斯法把中国电信大卸三块,后来又把仅剩固话业务的中国电信又拆成南北两家,使得中国电信盈利急剧降低。后来又扶植了联通和铁通,美其名曰“竞争”,实际上做了很多重复投资。不过倒还好,这些电信公司都没有亏损。
后来的TD-SCDMA更可气,本来中国在智能天线、波分复用有巨大的优势,结果TD-SCDMA还是被“专家”评为“技术不过关”。更有甚者,公开发表言论说“TD-SCDMA无用”,理由就是“我们可以买来WCDMA”。最近凯明倒掉,“精英”们更是开心。看了好几篇报道,都是火上浇油的。巴不得明天凯明就破产,你们TD-SCDMA没了芯片供应商就算不死也会退出市场。
说到这里我想起了华为。因为触动了“精英”派的神经,华为在一夜间冒出了“第37人跳楼”。后来仔细算算,包括工伤在内(飞机事故),华为一共才有7个人在工作岗位上去世。为啥要这么搞华为?还不是因为华为侵占了北电、朗讯、AT&T和诺基亚的市场。
龙芯的日子也不好过。本来中国有了自己的通用CPU,应该值得庆贺。但龙芯却被“精英”派们说成是“主频不如Intel,所以我们不买”。随后在意法半导体买断了生产销售权之后,“精英”们仍然质疑MIPS指令集的专利。反正就是一点,我就让你们卖不出去。龙梦要出测试版龙芯盒子,在同一天就有一批专家出来说龙芯盒子性价比太低云云,无非是先要把市场打压下来。其实业内的人都知道,仅仅是测试版龙芯盒子里面北桥芯片所用的FPGA就要几千元人民币。再者龙梦要推出的只是个测试版,这帮“精英”们就如此叫嚣,如果真要推出成品,那还不得集体签名杯葛。
这几年一直在提的大飞机工程,也被“精英”们驳得一无是处。“精英”们一直在说,反正我们能买空客、能买波音,我们干什么自己做?这可真是一句白用不厌的“名言”。
再来看看“精英”派都是哪些力量。以下是本人粗略统计。
1. 肢解中国电信的
2. 诬蔑TD-SCDMA的
3. 造谣龙芯的
4. 坚持不做大飞机的
5. 不允许抵制家乐福的
6. 增发平安股票的
7. 说留学生不爱国的
8. 中国受难时屁都不敢放一个的
9. 没事闲的总把“和国际接轨”挂在嘴边的,并以此理由阻止中国工业发展的
10. 《南方都市报》的
总说我们留学生不回国。不是我们不想回,而是“精英”派所创造的环境不容我们回国。比方说,我是搞电脑工程的,回国也就是搞搞龙芯、TD-SCDMA之类的玩意儿。按“精英”派的思路,中国不需要这些东西,那要我们有什么用?总不至于回去摆地摊被城管打吧?更让人寒心的是,“精英”派已经掌控了国内的舆论,如果我们回去真正做点什么实事的话,估计他们会发动群众群起而攻之。在这样一种环境下,我们怎么发展?
我爱中国,因为她是我的祖国。我拥护中国ZF,因为他们让我能吃饱穿暖,甚至小康。我不能容忍的,就是任何人干涉、阻碍中国的发展。所以,我期盼中国ZF扫荡“精英”派,通过舆论控制把中国稳定下来。到那时候,不仅留学生会回国发展,外籍华人也会归国为国家作贡献,甚至外国人也会向往到中国定居。最后,要阐述一个被“精英”派们歪曲利用的事实——中华民族的包容性必将使中国变得更强大!
爱国要有原则
3.14,四方闹得不亦乐乎。4.13,我们奋起反击。火炬在法国被攻击。全世界华人团结一心。
报复,我们一定要报复!这口恶气在心中已经积攒很久了。于是,大家一起游行,一起谴责,甚至一起抵制家乐福。
前几天一群人在 MSN 上给我留言,让我改成红心 China。其实我改不改没什么必要,我的好友列表里面也没有老外,改了也是给中国人看。但是我改了,“红心 CHINA”。于是,又有一群人不干了,指责我全大写的 CHINA 指的是台毒。我靠,我还是头一次听说 China 和 CHINA 有这么大的区别,就算我 TOEFL 没及格,你们也不用这么寒蝉我吧?
然后,金晶又变成汉奸了。之后就是王1000¥的叛变和狡辩。这世道还真不同寻常,正常人被扣上“汉奸”的帽子,而真正的汉奸却把自己说的比上帝还神圣。其实王小姐有一点说得没错,它只不过是说了一些跟别人不一样的。但是错误的是,它违背了所有中国人的原则。祖国神圣不可分割的原则!1000¥的事就淡忘了吧。这样一个卖国求荣的家伙甚至不值得让我们去鄙视。直接无视!
然后家乐福就出事了。话说着法国佬比中国人还喜欢自 high。他们认为,中国人都热爱法国和法国商品。不可否认的是,中国的“小资”们的确非常向往法国的“浪漫”、法国的大餐和法国的“奢侈品”(其实有一些是当地的不知名品牌)。于是乎,法国佬肆无忌惮,疯狂攻击中国,攻击奥运会。中国人当然不干了,老子就是要面子,你把我面子砸了,我就让你不好过。你不让我办奥运,我就抵制法国货。话说从我记事以来,这还是第一次看见中国人这么有骨气!但是,法国人不管这些,继续自 high,家乐福又要低价倾销,返券促销。
坚固的堡垒总是从内部瓦解。又有一批人出来忽悠说,抵制家乐福是暴力行为,我们还不如等家乐福促销的时候狂买一通,让它倒闭。然后两方中国人又争得不亦乐乎。
我参加爱国游行,但从来不参加这种窝里斗。在我看来,温饱问题比窝里斗要严重得多。但是我又不能表现出来,不然我也会被扣上“汉奸”的帽子。
金晶保护火炬,让全世界看到了中国人的骨气;全世界华人游行,让西方看到了中国人团结;王1000¥叛变,让我们意识到我们的身边就存在着“汉奸”;抵制家乐福,杀鸡儆猴,让外国人知道中国人不可欺。但是,窝里斗究竟算什么呢?对于王小姐,我们要划清界线;但是,窝里斗却要让人选边站。要我说,那些支持抵制的人没有错,我们要联合抵制,让法国人乃至全部对中国不可一世的外国人都知道,中国人团结起来的力量是无穷的。而对于那些反对支持的,那是你们自己的选择,其实用这种方法让家乐福巨额亏损也不是不可以。倒是说,那些中国连锁超市,如世纪联华之类,你们一定要在家乐福低价倾销之后将它送上法庭,告它不正当竞争,顺便还能赚个几万几十万的。
最后,看到了一篇报道,做好本职工作就是最好的爱国。其实,怎样去爱国并无所谓。但是,爱国一定要有原则。这个原则就是,尽自己的最大努力维护国家的利益。如果中国人团结起来,大家都爱国,那么中国赶英超美指日可待,中国也不会处处受气。
P.S.不要说留学就是不爱国。相反,我觉得留学生比国内的人更爱国。因为我们知道,只有祖国强大,我们才值得骄傲,否则,到哪里都是受人欺负。我个人很想为祖国发展作贡献,而且我敢说,绝大多数留学生都是这样想的。
外国课堂上的经典问题
今天在等 regression 的时候,周围的几个人闲来无事,然后就聊起了大学时代的课堂上最经典的问题。
Steve 讲的故事:某一年级环境科学课堂上,一女生提问:“火箭上天的时候会不会把臭氧层弄个洞?”
Victor 讲的故事:某一年级物理课堂上,教授正在用电流原理讲串联电阻所负担的电压跟电阻的大小成正比,一女生提问:“既然电流是从正极流向负极,那么在电流通过一个电阻之后,它怎么知道后面还有一个电阻?”
Mark 讲的故事:当时 Mark 兄正在做电动小车项目,他们的车底下有三个轮子,两个前轮,一个后轮。驱动小车的电机是放在后轮上的。结果项目展出的时候很多人不约而同地问同一个问题:“如果两个前轮上都放上发电机,那么以两个发电机驱动一个电动机,小车不就可以一直跑下去了么?” 后来 Mark 兄实在解释不明白,只好说:“你们的主意不错,以后可以借鉴一下……”
然后我也讲了一个我遇到过的最经典的问题:某微积分课上,老师正在讲积分可以看成是很多矩形面积的加和,每一个矩形的面积可以用长乘以高来计算。某同学提问:“矩形的面积为什么要用长乘以高来计算?”
后来,老婆也给我讲了个经典的:某物理课上,老师讲到如果把铁加热到一定程度,铁也会熔化成液体。某女生提问:“加热的时候要不要放在水里?”
……
P.S. 如果这些能写道 co-op report 里面就好了……
像男人一样去战斗——4·13渥太华集会反对西方媒体不实报道
前一阵子看了黄健翔的《像男人一样去战斗》。3·14之后又看到了全球媒体对西藏的不实报道。在这之后,全球的华人都像男人一样,手拉手并肩战斗。今天,4月13日,加拿大最大的华人集会在首都渥太华国会山举办。从主办方获得的统计,今天共有10000(1万)人到场,一起反对媒体(CBC、CTV)对西藏事件的失实报道,同时支持并祝愿北京奥运顺利举行。
本来还想采访一下无耻的加拿大电视台记者。但无奈的是,今天在集会现场转了好几圈都没看到记者。最后朋友告诉我,那些记者根本就没有进现场,而是在另外一个地方采访藏独支持者。于是,我就冲到藏独的现场,打算会会这些记者。但是,最终我还是被加拿大警方给“拿下”,赶了出去。具体视频稍后放出。
今天还是有所收获,至少拍了80分钟的集会实况,回头简单编辑一下放回网上。这次一定要Youtube和土豆双发,否则被Youtube和谐掉的可能性很大。
今天的集会可以说是很成功的,至少比多伦多和温哥华的还要成功。但这次活动还是有些不足,中文太多了,英文翻译也不尽人意,总感觉是一群中国人在自high。互动性也不够,明显感觉老外不是很关心这个活动。
不管怎么说,这次集会让加拿大的中国人都团结在一起。我的邻居、朋友、同学,凡是还在渥太华的,基本上都到场了。大家手拉手,一起唱国歌。第一次感觉到,中国人团结在一起的力量真伟大!
文化的缺失
早就想写一篇关于80后的文章了,但一直没想好写什么。最近在写剧本的时候,发现自己的写作越来越吃力,这才感觉到,原来80后最致命的,就是文化的缺失。
回头想想,的确自己的文学功底很差,可以说基本上就是没有。经典小说没读过,历史书籍没动过,唯一摸过的,除了课本以外大概也就只有教学参考书了。虽然还没到提笔忘字的地步,但不知道什么叫做华丽的词藻。而且每一次看问题的时候都很难抓到重点,唯一能想到的就是无产阶级的革命精神。
我们需要革命精神么?我不知道。但我知道这种文化的缺失真的很糟糕。
破四旧的时候,我们扔掉了对传统的传承;文革的时候,我们放弃了对长辈的尊重;改革开放之后,我们又在金钱前面丧失了对道德的矜持;在“学习外国先进文化技术”的口号下,我们几乎完全摒弃了中华的文明。
我说错了么?或许吧。
记得小学的时候,老师教育我们不能看小说,管那东西叫“精神鸦片”。如果要只有这样也就算了。语文课上,所有的“段意”和“中心思想”必须跟教学参考书一字不差,而且早自习晚自习的时候要点名让某某某站起来背诵。如果要只有这样也就那么回事了。每次写作文的时候,自己写的作文仅仅能拿90分,而照作文选抄出来的却能拿100分。这样的话……
小学的时候,上课要背手,举手姿势要端正。被老师训了还要说“谢谢老师”。每一次领导来检查之前都要大扫除。动不动就找家长,要不然就写上千字的“说明书”(说明自己犯的错误)。每次活动的时候家长也不能闲着,作了贡献还不能收钱……
从小学开始,我就学到形式主义、八股文和自卑。而且还有一点,最重要的一点,不能承担任何责任,否则的话让你吃不了兜着走(别人的责任都让一个人承担)。于是,在我自己身上表现出来就是,懒惰、自私、不负责任、好面子、自卑(崇洋媚外)、看不起长辈。
出国之后,这些从小学就习以为常的性格让我吃了很多苦头,也因此丢失了很多朋友。下定决心,改掉了很多坏习惯,但是文化的素养还是不尽人意。毕竟缺失了20年的文化,想补回来不是那么容易的。
这一阵子在网上所谓的“粪青”也越来越多,而且大多数都张口就问候别人全家,一点自己的主见都没有,而且这帮人都不署名。不是他们不署名,而是不敢署名。互联网的匿名性把长期以来畸形的文化全部都暴露出来了。套用互联网最经典的那句话:“在网上,没人知道你是条狗。”
文化的复兴,80后是无能为力了。对于我自身来讲,还是先完整的看一遍《三国演义》再说吧。
让人头疼的好友
闲来无事,打算上几个 Live Space 和 Qzone 打发一下时间。打开 QQ,看到 315 个好友。Oh, my god! MSN 上也有 179 个好友。我开始问我自己一个问题,你究竟上哪搞了这么多的人?
这已经是历史问题了……
我的 MSN 前一阵运行不正常的时候,我已经清理过一次好友。现在剩下的 179 人中,有 56 个是连我自己都不知道身份的“网友”。而 QQ 中这个数字更多,达到 118 个。除去那些不认识的, MSN 中的好友很多都是出国之后的同学,分组也都注明了 CIC、UO、Carleton;QQ 中的好友很多都是从附中论坛认识的。那些不认识的,貌似是当年游荡在各动漫论坛的后遗症。
那些所谓的“网友”最让人头疼。删掉的话,没准是以前关系不错的朋友或同学,只不过改了个名字我不认识就放到“网友”里面了。不删的话,实在是浪费带宽、浪费内存、浪费资源。
实在没有办法,把“网友”组折叠起来,闭上眼睛当作没看见……
西藏被过滤事件
在国内可以浏览国外关于西藏的网站,但是从美国/加拿大无法查看中国关于西藏的网站。
为什么?看 CNN 就知道了。某些没头脑的人再一次华丽的被骗!
做人不能太 CNN!
(声明:本文仅用来阐述事实)
Update(2008-03-27 01:00 EST):目前中国的网站基本上都属于不可访问状态。
Update(2008-03-27 12:45 EST):I can't read any Tibet article on Chinese websites through company network, i.e. Canada banned those links!
Update(2008-03-28 01:00 EST):一部分中国网站恢复正常,另一部分无法访问。网易新闻、新浪新闻、搜狐新闻、QQ 新闻均只能打开首页而无法查看内容。新浪博客基本无法访问。cnBeta 间歇性无法访问。百度 MP3 间歇性无法访问。以上网站用美国网页代理访问正常。(也就是说,基本排除中美的问题)太平洋动漫竟然访问速度很快……无语中……什么世道!上个中国网站还要用美国代理!
Update(2008-03-28 20:00 EST):今天终于可以在公司正常浏览网易新闻和 QQ 新闻了,家里的网络也恢复了。但是只能看文字和图片,视频全部被水产。
Update(2008-03-28 22:00 EST):I like this guy, http://kadfly.blogspot.com/.
没有准头的预告
终于下定决心写点什么了。这几天奋笔疾书(“奋键疾输”才对)写完了前三章内容,看着1/5的完成度自己很有成就感。
长这么大第一次写一口气写这么多方块字啊。(中国人的悲哀 = =)
联系了几个 SMC 的工作人员,都比较有兴趣回来继续做新片。呵呵,这意思就是说,编剧老人家,你就赶快把剧本写出来吧,大家都等着呢。
拜托大家,我知道大家等着着急,急也要慢慢来啊,俗话说慢工出细活。去年的错误今年不会再犯,但是这个预告还是个没有准头的预告。
HDAV 计划搁置,IS 准备中。5月底第一稿,8月份开机。明年8月份全片完成。人员安排:本人编剧,Rick 导演。照例,蓝色蒲公英出品。预告完毕。
《快乐星猫》为什么又是猫!?
天神星士兵甲:这是什么?士兵乙:是黑魔王的说明书!
看完这段我已经笑得喘不过气了!
牛奶@咖啡又出新歌了。下来听了听,比较喜欢《快乐星猫》。闲来上网搜搜,原来国内又出了个动画片,叫做《快乐星猫》。而《快乐星猫》就是《快乐星猫》的片头曲(@ @)。反正无聊,从官网下了几集看看。
貌似官方的定位是 5~12 岁之间观看,12+有爱为可接受候补。估计我已经过了有爱的年龄,怎么看怎么觉得搞笑。
杂乱的音效,十分不标准的台普配音(据说某位主角是刘纯燕配的),唯独能一好遮百丑的也就只有 3D 效果了。这次的 3D 的确做得不错,剧情也控制在 5~12 可接受范围之内,但是这个音效咋就这么差呢?貌似我还听见了星际争霸神族选定农民时的声音(估计是我幻听了)。一开始的配音还以为是《鲨鱼黑帮》,大力猫的出现我给当成了《猫的报恩》(没办法,学得太像了)。还有那个“欧应万”,我怎么听都像是“All-in-one”。(难道这就是传说中的九十八和1?抑或是“Owing-won”?)
星猫为什么叫星猫,估计因为制作单位叫 Star Q 吧。创意没问题,策划没问题,就是制作的时候怎么说也要注意一些吧。比如说片头,一开始的剪辑根本对不上片头曲,后半部分还行。人物表情和动作都做得不错,但是配音总要标准普通话吧,拿个四川的台普出来,这不是误导少年儿童么。情节这样就可以了,正义战胜邪恶,天经地义,千万不要搞什么革命出来啊。话说这次周边很成功,据说毛绒玩具已经热卖了。音像制品啥的就不要搞了吧,如果想搞的话多弄点广播剧出来还差不多。
呵呵,说了这么多乱七八糟的,该总结一下了。总而言之,这次的制作综合起来还不错,但绝对不能成为“巨作”。国产动画还有很大的成长空间。想要把动画产业做成熟,慢慢努力吧。(表说我站着说话不腰疼,这几天某人正在连续熬夜写剧本中)
最后,要说回牛奶@咖啡了。个人觉得《快乐星猫》这首歌十分适合 Kiki 的路线,整张专辑里只有这首歌把 Kiki 的声线完全表达出来了。(旁边那位表丢砖~)当然,从《燃烧吧!小宇宙》开始,本人就觉得 Kiki 适合走可爱的小女生路线。千万不要学范晓萱和金莎,非要“变成熟”。
力挺牛奶@咖啡。快乐星猫,燃烧吧!小宇宙!
中国人重名的真多
今天闲来无聊,上 Google 搜了一下自己的名字,竟然有 5030 条。翻了 10 页,只找到一个关于 snailium 的,而且还是别人的转载。
这么多跟我重名的,竟然一半以上都是女的,89年的。还有一个很有名的貌似是沈阳新东方的老师。
郁闷。看来我只是大海中的一粒沙(不要提醒我,我知道我说错了)。
不过有一点值得欣慰的是,前十页里面没有一条是通缉令(什么思想 = =)。
我还是改搜 snailium 吧……
P.S.倒是搜我弟弟名字的时候,在第 10 页看到他本人了。果然我已经算火星了。
HTTP/1.1 状态代码
100 系列(信息) | |
100 | Continue(客户端可以继续发送未发完的请求) |
101 | Switch Protocals(服务端/客户端所使用的协议不一致) |
200 系列(成功) | |
200 | OK(成功) |
201 | Created(已按请求创建新资源) |
202 | Accepted(请求已被接受) |
203 | Non-Authoritative Information(从第三方获取的信息) |
204 | No Content(服务端没有可返回的数据) |
205 | Reset Content(客户端需重置请求内容) |
206 | Partial Content(服务端返回部分数据) |
300 系列(重定向) | |
300 | Multiple Choices(多个资源可用) |
301 | Moved Permanently(资源已被移动) |
302 | Found(临时在其他地址找到相应资源) |
303 | See Other(在其他地址找到相应资源) |
304 | Not Modified |
305 | Use Proxy |
306 | (Unused) |
307 | Temporary Redirect |
400 系列(错误) | |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
406 | Not Acceptable |
407 | Proxy Authentication Required |
408 | Request Timeout |
409 | Conflict |
410 | Gone |
411 | Length Required |
412 | Precondition Failed |
413 | Request Entity Too Large |
414 | Request-URI Too Long |
415 | Unsupported Media Type |
416 | Requested Range Not Satisfiable |
417 | Expectation Failed |
500 系列(服务器错误) | |
500 | Server Internal Error |
501 | Not Implemented |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Gateway Timeout |
505 | HTTP Version Not Supported |
Perl CGI 初体验
开始还满怀信心的打算拿 Perl 写一个文件上传管理程序,可是在写完了登陆部分之后就泄气了。原因很简单,服务器不支持 CGI::Session,而我又不想花时间去研究 Perl Cookie。
[code lang="perl" title="login.cgi"]
#!/usr/bin/perl -w
# ***********************************************
# * Handle User Login *
# ***********************************************
use strict;
use DBI;
#use CGI::Session;
use CGI;
use Digest::MD5 qw(md5_hex);
# Get the CGI form data
my $cgi = new CGI;
# Fetch login username and password
my $user_name = $cgi->param('username');
my $user_pass = $cgi->param('password');
$user_name =~ s/(?:\012\015|\012|\015)//g;
$user_pass =~ s/(?:\012\015|\012|\015)//g;
$user_pass = md5_hex($user_pass);
my $user_login = 0
require "config.pm"
# Import Database configuration
our $db_host;
our $db_use;
our $db_user;
our $db_pass;
our $db_table;
# Connect to database
my $db_conn = DBI->connect("DBI:mysql:database=$db_use;host=$db_host","$db_user","$db_pass", {'RaiseError' => 1});
print "Location: /error-503\n\n" unless $db_conn;
# Check if we have such password in database
my $sql = $db_conn->prepare("SELECT username FROM `$db_table` WHERE user_password='$user_pass'");
$sql->execute() or print "Location: /error-503\n\n";
# Process query result
while(my @result = $sql->fetchrow_array()) {
if($user_name eq $result[0]) {
# Here we go. A user is found with the same username and password.
$user_login = 1
last;
}
}
# Disconnect from database
$db_conn->disconnect();
# Not pass user check? Kick it out!
print "Location: /error-401\n\n" unless $user_login;
# User check successful! Log it in!
print "Content-type: text/plain\n\nYes !";
exit(0);
[/code]
其中登陆部分采用了《突发奇想,小改动解决安全问题》其中的方法。
看来要重操 PHP 旧业了……
突发奇想,小改动解决安全问题
这几天一直在琢磨用 Perl CGI 架设网站,正好在网上看到了一篇关于 CGI 安全的文章,里面提到了数据库注入和远程执行等等安全问题。也就是说,比较安全的方法是屏蔽一系列特殊字符(比如说,管道“|”、引号“" '”、斜线“/”等等)。今天偶然间突发奇想,如果换一种思路,不需要过滤特殊字符也能做到脚本安全。
具体方法如下。(假设:用户名与密码存在 user 表中,密码用 md5 加密)
[code lang="php" title="Pseudo-code"]
$username = http_get("username"); // Get username from browser
$password = http_get("password"); // Get password from browser
$password = md5($password); // Make md5 hash for password
$mysql->connect(); // Connect to database
// Get all users that have this password
$rows = $mysql->query("SELECT username FROM `user` WHERE password='$password'");
// If no one match, must be username/password problem
while($r = $rows->next()) {
if($r->username == $username) login_success();
}
die("Username/password incorrect!");
[/code]
由于 md5 hash 不包括任何特殊字符,所以这段脚本对数据库无害。
优点总结:由于传递给数据库的字符串当中不包括任何特殊字符,因此没有任何注入危险。
缺点总结:一般来说,用户数据表都是拿用户名做索引,所以按密码查询效率相对低一些。但是考虑到用户登录的频繁程度,这个缺点就无所谓了。
《School Days》人渣的终结
终于看完了第12集。整个片子的压抑气氛跟《Elfan Lied》相比有过之而无不及。从11集开始的气氛骤降压得人喘不过气,12集的结局更是雪上加霜。如果我的内心像世界一样,12集过后我也会拿起刀。
回头重观整部动画,世界在我心中的印象大大改变。如果说在片子开头我喜欢的是柔弱的言叶(事实上在出国前的确是这样),那么到最后,占据着内心的却是世界(就像现在这样)。
回想2004年热火朝天的《君が望む永遠》,当时我还是遥的坚定拥护者,水月结局曾让我失落过一个时间。现在看看,比起这会儿把三个 Bad Ending 捏在一起,至少那会儿还是个 Good Ending。呵呵,如果真的要个 Good Ending 的话,恐怕就是刹那或者光的天下了。
总之,在这穷乡僻壤,很久没见到这么震撼人心的片子了(虽然是动画)。就让我跟世界同在吧,我才不要人渣诚的终结……
Bash编程笔记:swatchdog for WD-MBWE
Linux BusyBox 果真是个强大的东西。只要想做,什么都能做出来。正好最近正愁 My Book 的服务总是莫名其妙的挂掉,搞的在单位都无法访问文件。操起简单的 vi,开始制作 Bash Watchdog。(之所以没用 Perl,是考虑到 Perl 在预编译的时候比较耗费系统资源)
经过三个小时的现学现卖,雏形版的 Bash Watchdog - swatchdog 出炉。
[code lang="bash" title="/usr/sbin/swatchdog"]
#! /bin/bash
#
# Watchdog for system service
#
while [ 0 ]
do
for PROC
do
PID=`ps -aef | grep -v grep | grep -v swatchdog | grep "$PROC"`
if [ -z "$PID" ] ; then
TIME=`date "+%Y-%m-%d %H:%M:%S %Z"`
echo "[$TIME] $PROC is not found, rebooting..." >> /etc/swatchdog/reboot.log
reboot
exit 1;
fi
done
sleep 600
done
exit 0;
[/code]
原理很简单,无限循环,检查命令行传入的进程是否存在。如果不存在则重启。
使用也很简单。
[code lang="bash"]
swatchdog cvm transmission amuled
[/code]
自动侦测 cvm(mionet)、transmission 和 amuled。