Archive

Archive for July, 2006

Remember the Titans / 光辉岁月 / 热血强人 / 冲锋陷阵 —— 完美的不仅仅是比赛

July 16th, 2006 Fwolf 1 comment

又是一个真人真事改编的电影,老美怎么就有这么多故事改编啊,我们没有么?难道我们就只能通过大辫子戏来折射对当代社会的讽刺而不是指着鼻子骂么?

电影讲述的是,70年代,美国刚刚开始废除种族歧视,高中的球队从单一的白人变成了黑人和白人混合,黑人主教练和白人助理教练携手共进,让这只史无前例的混合人种球队获得了州冠军、全美亚军,十三场连胜。多么不容易啊,不容易的不仅仅是比赛,更在于让黑人和白人成为朋友。

相对于比赛激烈的后半部分,我更喜欢看前半部分教练教会大男孩们交朋友的过程,的确,虽然在训练营中,黑人和白人小伙由于起居、训练都在一起,加上本身种族歧视的观念就不深,所以自然就很好的融合在了一起,但是从训练营比赛归来之后,面对学校、社会、家庭中的种种种族歧视势力,他们素手无策,只能选择沉默。但是只要是在赛场,他们就是亲兄弟,就是攥成一个铁拳的十指,所以他们才能无往不胜,甚至在没有教练在场的情况下,也知道拧成一股绳。球队的成绩压制住了种族歧视的观念,事情进入良性循环,环境才一步步好转。

能够把球队带好好不难,难的是把一只成绩不好的球队训练成为冠军。我们现在对环境的大肆破坏,难道就是为了培养将来的环境治理“大跃进”创造环境?

很佩服片中的白人警察(好像那个时候的警察暂时还都是白人呢,至少片中是这样的),不排除他们之中有有种族歧视的人,但是他们在执行公务(保护黑人不受种族歧视分子伤害)的时候,却表现的非常出色,值得钦佩。更佩服将禁止种族歧视写入法律的人,他们才是真正的幕后英雄,林肯总统也没有白白牺牲~

片中的有些裁判倒是很不争气哦,呵呵。

题外话:怎么美式足球球员发球的时候,姿势那么像大猩猩呢?

Related posts

Categories: Movie Tags:

Microsoft收购Zend?吓死我了~

July 15th, 2006 Fwolf 1 comment

突然在google reader中看到这样的一篇文章,可是点击过去,已经被删除了,出于对此时的急切关心,自己google了一下,终于找到了正文,消息在网上传播的很快,很多网站上都有类似文章:

微软1.13亿美刀买了Zend作二奶 微软(1.13亿美刀)收购了PHP的开发商,Zend,可能将PHP更名为MSSE (Microsoft Scripting Engine)

看来好像是已成定局的事情了,唉,不知道该说什么好,难道从现在开始就要准备送别php了么?那么以后要选择什么开发语言才是呢?asp.net极度讨厌,java架构太大不适合我,r&r?还未成熟,python?似乎是一个合适的选择,传言google内部用的比较多,本身也是一门古老而又有活力的语言,但是已经开发出来的应用怎么办?是现在就开始移植还是等到php逐步舍弃nix平台而被动移植?

正发愁呢,偶尔又搜索到了对岸同胞对这件事情的关注,原来只是愚人节的把戏而已,谢天谢地,不过这“新闻”也慢得太离谱了吧,现在都已经是7月了啊。

其实对于这种收购,多半是两种目的或者说是结果,一种是被发扬光大比如ibm收购lotus,另外一种是采用收购的手段抑制竞争对手的发展,而伟大的微软公司开创了第三条道路,他们把产品收购过来,功能改进有限不说,却还敢化妆得花里胡哨得摆上架卖钱,不信?看看access和powerpoint、excel吧,这么多年来有什么大改进么?真是不如word,毕竟是ms的嫡系啊。

换句话说,如果ms真的收购了zend,那么不敢说就是php的末日,却也离死不远了,这毕竟不像adobe收购micromedia,不像oracle收购mysql,他们都是互补性的,利用收购完善产品线,而微软自己有asp和.net,要收购php是何居心呢?大概是要推行自己的.net,最碍眼的就是java和php了,而java的后台比较硬,只有拿软的zend来开刀了。要我说,zend卖给oracle也许是个好事,因为人家现在是mysql的娘家了嘛。

最后贴出这条“耸人听闻”的消息的来源: Microsoft Purchases Zend for $113 Million Microsoft Purchases Zend for $113 Million

注意第一个链接没有发表时间(非常不好的习惯),而第二个链接有,并且从它的地址也能看出是2006年4月的,并且注意其中的“Yeah there is April Fool in the PHP community too :-) ”,这下我们可以放心的笑了吧。:)

Related posts

Categories: General Tags:

不要被.Net的假提交蒙骗了

July 11th, 2006 Fwolf 4 comments

目标

过程比较曲折,还是从头说起吧,事情的起因是这样的:现在不是主要在Ubuntu下工作么,但是单位的办公系统却只能使用ie,原因是因为要使用一个activex控件来读取一个加密锁,然后才能利用加密锁内的数据登录进入系统。而在测试系统中,我可以使用用户名+密码的方式进入系统,之后基本上所有的页面在firefox下操作也都正常。综上所述,只要能够跳过“登录”这一关,我就不用再启动笨重的vmware去运行ie使用这套办公软件了,直接利用firefox就可以了。ok,现在我的目标已经确定,下面是主要的解决思路。

解决思路

在firefox下使用过del.icio.us、furl等服务的应该都知道,他们都可以在firefox的书签工具栏上生成一个按钮,而只要点击这个按钮,就可以把当前页面存入美味书签或者记入furl收藏,甚至可以读取到当前页面上的部分内容。其实,这些书签工具栏上的按钮和普通的书签没有本质区别,只是别人以http://开头,他们以javascript:开头罢了。看看这个小例子:拖动下面这个链接到书签工具栏,然后点击执行一下,看看会发生什么?其实把网址直接拖动到书签工具栏或者Bookmarks菜单下也是一样能够保存的,因为他们本来就是一类东西。

拖动我到书签工具栏,然后点击执行一下,看看会发生什么?

(在书签工具栏的按钮上面点击鼠标右键,然后选“Delete”就可以删除了。)

同理,activex只是读取加密锁的工具,最终还是要把读出的数据通过表单post到服务器上进行验证,所以,只要我们能够“跳过”activex读取这一步,直接把加密锁中的数据post到服务器上,就能够形成一样的效果。

获得加密锁数据

很简单,问开发人员要就是了,还有一种做法就是仔细研究客户端的脚本然后改写为本地模式然后自己读,当然对于有些带有加密性质的activex控件是无效的。幸好开发人员很乐意提供我加密锁的数据,因为除了锁上的显式数据以外,另外还有一个校验码,同时存放在加密锁和服务器上,就像“虎符”一样,碰对了才有效,所以在小范围内实施我这种行为基本上不会带来什么安全问题。

“伪”读取并提交数据

也不复杂,前提是观众要对上面那个书签工具栏上的按钮的例子有比较清楚的理解,这里我就直接贴代码好了:

javascript:(function(){document.Form1.username=’coolboy’; document.Form1.password=’ooxx’; document.Form1.submit();})();

我当然不会贴出真实的数据啦,上面的例子就是模仿一个登录表单,通过js向表单中写入数据,最后直接调用表单的submit方法。由于是这些内容是要填在书签的“地址”一栏中的,所以是一长行的形式。

实战!

像上面那个例子一样,在js中对表单对象赋值,然后调用表单的submit方法,然后运行。。。。咦?怎么没有效果?页面好像只是刷新了一下,然后就没有变化了,既不是已经成功登录的样子,也不是登录数据错误的样子,好像、好像就仅仅是刷新了一下!

费劲周折,终于了解到了真实原因,原来是被.net的小把戏给耍了:

.net为开发人员提供了很多方便的工具,其中包括在“服务端”运行的web form控件,在开发的时候他们和普通的html控件没有大的区别,但是却能够很方便的让开发人员对其属性和方法进行设定。然后在实际运行生成html页面的时候,.net引擎会将他们转化为标准的html表单代码,并且利用__VIEWSTATE保存状态数据。

而我们刚刚看到的“刷新”是什么呢?原来是这样:首先我们通过js进行赋值的操作是没有问题的,值被正确设定,然后调用表单的submit方法也没有错,数据也正确的提交到服务端了,但是,当服务器端接受到post的数据之后,并没有按照正常的post方法来进行处理,而是另外一套方法。为什么会这样呢?因为我们在客户端收到的html代码中看到的form,input等控件,都是带有runat=”server”属性的,也就是设定了要在服务器端执行。我们当然看不到实际的runat=”server”,因为在生成页面时就已经转换成了标准的html代码。而当服务器端接受到有关runat=”server”控件的操作的时候,却不会按照正常的get、post来操作,而是使用在服务器端代码中设定好了的方法来执行操作。本例中,由于使用js手工提交的数据并没有和服务器端设定的方法“吻合”在一起,导致服务器端没有进行任何操作,又原原本本的把页面送了回来,所以,我们看到页面“刷新”了一下。我们以为表单被提交了,就会被服务端正常的处理,却没有想到.net引擎偷懒什么也没干,蒙蔽了我们的双眼。

现在,我终于明白,为什么在有些.net开发的应用中,输入完数据直接敲回车是不会提交的,必须用鼠标点击“提交”按钮才行,看来.net的威力在不成熟的开发者手工也不过如此。

关于上述的.net实现机制,可以参考: asp.net用户控件中的Button,在直接回车的时候不提交表单,如何办? 关于前台调用后台事件__doPostBack函数 (论坛答疑点滴)__doPostBack()无效?

排除问题,胜利!

虽然道理是绕了一个圈子,但是解决方法却是无比的简单:

javascript:(function(){document.Form1.username=’coolboy’; document.Form1.password=’ooxx’; document.Form1.Button_Submit.click();})();

没错,就是由原来的调用表单的submit方法(以前常用),变成了直接调用submit按钮的click方法,问题顺利解决!但是究其深层次的道理,还是要看看上面几篇参考中关于doPostBack函数的解释,应该能够明白一些。

废话

我们这些喜欢使用linux系统的人,在广大使用windows系统的同志们心中,总是那么的“特别”,其实他们不知道,在很多技术细节上,真正“特别”的却多是windows产品。比尔大叔的风格,就是把原本就有标准解决方法的东西,增加一些华丽的“方便”功能,然后用只有微软才能够解释清楚的方式,包装成为“方便”开发人员的“工具”,在赚进大把的钞票的同时,还让广大开发人员对微软产品产生了无比的依赖性。我想这也许是微软始终无法真正创造底层技术标准的原因吧。就像黑客帝国一样,只要你身在matrix当中,不管你作什么,都只是matrix的一个“子程序”,只有跳出矩阵,才能看清楚这个世界。

Related posts

Categories: Internet, Problem Tags:

Zooomr免费的pro帐号?

July 10th, 2006 Fwolf 3 comments

好心的cybersome一大早就向我们报告了Zoomer向Bloggers赠送Pro Accounts的消息,方法很简单,注册、上传图片,然后写一篇blog链接到图片文件,最后再把blog文章的地址贴到这里基本上就可以了(也就是我正在作的)。

Zooomr使用myopenid进行登录,不用抢注帐号了。非pro的帐号每月上传限制50M,pro是每月2g,天天传也用不完的。

唯一感到有些遗憾的是,暂不支持邮件上传,不过看帮助应该会添加这项功能的:

How do I upload my photos? You can upload photos through the web-interface provided here. More uploading tools may arrive in the future, stay tuned. What file types does Zooomr accept? Zooomr Accepts .jpg, .png, .pdf, small .psd’s, and small .tiff’s. However, the email upload only accepts .png and .jpg.

还是先看我传的这张图片吧,是一幅三维立体画,以前流行的时候保存下来的,仔细看看内容是什么?虽然情人节已经过去了,或许明年用得着~

loveloveHosted on Zooomr

update @ 2006-07-10 速度还是很快的嘛,不到两个小时就收到了被提升为pro用户的信息。

Related posts

Categories: Internet Tags:

电脑比我怕热

July 9th, 2006 Fwolf No comments

似乎是混浊的空气环境所致,石家庄现在几乎是中国最热的北方城市了,“热”指的是天气,非经济、非文化。

然而在这么炎热的夏天,我却不合时宜得偶感风寒,由于吹风扇和开空调,导致昨晚体温从平常的36.5度上升到37.7度,常人正常的体温对我来说已经是低烧了。残忍的把老婆赶到客厅吹风扇,自己闷了一晚上的汗以后,今天感觉好多了,但是再也不敢碰风扇和空调。

感冒也不能阻碍我上网的进程,笔记本电脑也和我一样在高温中持续工作着,摸着徐徐发热的笔记本键盘,感受着偶尔会从出风口吹出的一股热气,不禁感叹,原来笔记本这个东西,只怕热不怕冷,怪不得大家都敢把笔记本什么的带到南极去“测试”,却没听说在南沙能把胶鞋底都烫化的军舰上上网的,这东西光靠自己发热就相当于烤火了。

我比笔记本更优秀的另外一个原因,是我在热天可以喝水、出汗,而笔记本只有拼命喘气的份儿 :-)

Related posts

Categories: Living Tags: