进步总是有代价的。在web浏览器方面,用户要承受开发者由于对开发工具的滥用和任何针对用户所使用的浏览器的假定而带来的代价(尤其是假定成了Internet Explorer, IE)。当那个被假定的浏览器发布了新的版本,修正了以前的bug,或者改变的某个特性的渲染方式(或者引进了新的特性)以及改变了某种行为,站点就会因此而崩溃,而我们的客户、经理和用户会感到很失望。

我们可以用几个小时的时间来解释为什么我们的站点崩溃了,但是并不比一开始就避免它崩溃来的好。

一些背景知识

基于带有在CSS支持上有重大改进的Internet Explorer 7发布的冲劲,IE开发组开始着手为IE8制作一个全新的渲染引擎——一个可以尽可能多地遵循CSS 2.1标准的引擎。他们努力工作的一个极致表现是正确地渲染了Acid2测试。对于那些关注者来说,这意味着IE在不久的将来将生成出内容和数据URL,永久地放弃hasLayout,这一点已经得到确认。这一点将会使得它的渲染与同样通过Acid2测试的其他浏览器,如Safari, iCab, Konqueror和Opera,到同一起跑线上。(Firefox 3同样也通过了Acid2,但到撰写此文时并未发布。)

在开发新的渲染引擎过程中,IE开发组对IE 7的反馈很重视。一些标准的狂热者甚至一些微软fans都认为,在IE 7中对bug的修正和对CSS的支持增强方面,开发组做的并不够。但是数量更多的开发者则抱怨,他们原本看起来很好的网站,却在IE 7中不能正确渲染。在他的博客中,标准拥护者Roger Johanssen提出了三个导致错误的原因,鉴于他们对于支持标准的迫切要求,IE开发组发现了第四个原因:DOCTYPE开关,一个开启现代CSS布局核心的技术,因为保证兼容性的缘故,存在着致命地瑕疵。

DOCTYPE开关是坏的

早在1988年,Todd Fahrner就发明了一种能够使浏览器使用两套渲染模式的技巧:一种按照开发者的要求遵循标准,另一种则是为其他人准备的。这个概念非常简洁。当一个客户端遇到一个包含完整遵循了当前HTML标准(例如,HTML 2.0不会省略它)的DOCTYPE声明的文档时,它将假定作者知道她自己在做什么,然后使用遵循标准模式来渲染页面(布局元素使用W3C提倡的盒模型)。但是如果不包含DOCTYPE或者包含了一个不标准的DOCTYPE时,文档将会按照一种“奇异”模式进行渲染,例如,布局元素使用IE 5.x/Windows下的非标准的盒模型进行渲染。

这个概念于两年后首次应用于IE5/MAC平台上,并很快被其它浏览器制造商采用。追随标准的开发者们为了使网页通过标准验证,早已经将一个DOCTYPE包含在他们的网页中,因此浏览器根据这个特性来渲染页面,不会造成多余的代价。那些没有明确的标准化概念的开发者则发现,他们写的页面被浏览器特殊对待,因为他们自己以及他们使用的开发工具,都没能够插入正确的DOCTYPE

不幸的是,两个关键性因素,共同导致了DOCTYPE成为了判断标准的标准:

  1. 由于A List Apart和The Web Standards Project的鼓励,由远见的开发者和开发工具开始在他们编写和生成的标记语言中插入合法、完整的DOCTYPE
  2. IE6的渲染行为已经有五年没有改变,导致很多开发者以为它的渲染行为是正确的,而且不太可能变化。

两个原因合起来共同导致了DOCTYPE被破坏,因为它有一个致命的缺点,它认为当你使用了DOCTYPE的时候,就意味着当它向标准靠拢的时候,你要为你自己的行为负责,因为你知道你自己是在做什么,并且希望渲染效果越精确越好。我们怎么知道渲染会失效?当IE7推出的时候,站点就惨不忍睹了。

当然,如Roger指出的那样,崩溃的站点中是因为它们使用了IE6特定的CSS技巧(hacks)。但是更多的灾难是由于它们的开发者仅仅在IE6中检查网站的效果——或者仅仅想关注一下站点在IE6下看起来是什么样子的,因为他们仅仅在一个具备相同浏览器的环境中部署站点(比如,企业的内部局域网内)。当然,你可以耸耸肩,说既然IE6的渲染错误是已经被很好地整理过的,这些开发者可以更了解这些错误,但是,这样的话,你就忽略了其实很多开发者根本不曾明确地选择“标准模式”这个事实,或者根本就不知道有这么个模式的存在。

Chris Wilson,Internet Explorer的平台架构师,经常提到说,IE开发过程中的一条核心原则是,IE开发组做出的任何一个决定,不能“破坏现有网站”。遗憾的是,IE7恰恰破坏了相当一部分开发者的网站。为了避免同样的错误再次发生,Microsoft向The Web Standards Project(我是其会员之一)和几个其他的追求标准的开发者求助,请他们提供一个更好的方法,能够允许开发者“适应到”符合标准的开发上来。这个目标就是寻求一种方法,能够比DOCTYPE更清楚,并且能够被所有浏览器所实现,而不仅仅是IE。

美好的未来

在去年的SXSW上,我非常有幸地看到New York Public Library’s Carrie Bickner制(她正好是ALA的作者的妻子,Jeffrey Zeldman)作的一个绝好的发光二极管标语,标语写,“保护我们的数字遗产和私人收藏”,探讨的是当图书馆和私人当试图保留电子存档时遇到的问题。大部分的问题是文件格式和应用程序的问题:例如,Microsoft Office 2007,不能可靠地渲染一个Word 1.0文档,而大部分人一开始就认为它应该能够正常显示。这个标语引我深思,网络在创作力的推动下是如何改变的,以及网络在标准推行的过程中,将会如何继续这个变化。

作为一个web标准的支持者,我希望看到浏览器在不停地加进新的特性的同时,能够继续增强对标准的实现,但是同时我认为,浏览器应该保护那些我们已经花了这么多努力——基于表格的布局等,做成的网站。当然,很多从“时间机器”里出来的因为DOCTYPE对它们的良好保护,不会出现错误,但是,如果一个网站是基于IE6所谓的“标准”模型建设的呢?我们已经看到,很多这种情况,IE7是不会正确地渲染它们的。这是不是意味着我们要保留一个IE6,以便当我们不能按照作者意图浏览这些网站的时候用?这恰恰是很多图书馆为了能够浏览老的文件所做的事情。IE8即将诞生,我们面对着同样的潜在问题,就是那些按照IE7渲染引擎编写的文档。如何解决?

原文:Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8,Aaron Gustafson

最近半年来,不管是Gmail还是Google Apps的邮箱,刚刚登陆邮箱之后,总会先和Google服务器断开连接一段时间,5分钟或者10分钟。有时候甚至会刚连上再次断开。经测试,国家互联网策略在作怪。

问题出现的时候,提示Alert为:”无法访问Gmail,请检查互联网连接,然后重试。“

此外,Gtalk区域出现:”我们遇到了技术问题,您可能无法发送聊天信息。“

解决方案其实很简单:将页面地址栏中http://改成https://使用安全HTTP协议,就不怕出现中间审查不通过的问题了。

最近做网管,整理一堆堆的线真是花了大工夫,可惜忘记把前后效果照下来了。

如果你是一个服务器机房的管理人员,平时就一定要有个良好的生活习惯,管理好自己的行为举止,若然你是管理一个大型服务器机房的话,那么就更加要对自己约束起来。平日喜欢把东西乱丢乱放,那么你管理的机房里很可能是这样的一番景象。想找到特定的一根网线就如同大海捞针一样咯。
简直是“痴晒线”,最乱线路展示:

是的,偶尔我还是能做点设计的… 献丑了。遥想当年,还曾经很喜欢艺术类的专业,一度还想考中央美院呢,呵呵。后来,发现自己实在没有艺术细胞,只好作罢~

灵感来源于同济大学的“同”字以及HPCC中的几个“C”。嗯,感冒了,难受得很,不多写了。

鉴于属于技术探讨性质,下面我将一直使用真实数据进行说明。

环境事实如下:

1. 同济大学有内网,为10.0.0.0/8。我们实验室分到两个学校内网的口,其中一个被学校路由器NAT到外网一个IP,并绑定域名hpcc.tongji.edu.cn。此域名在公共DNS上解析为外网的IP,在校内DNS上解析为校内10开头的IP。

2. 实验室内部有NAT网关服务器,称之为100。实验室内网使用IP为11.0.0.0/8(此处为与学校内网的10.0.0.0/8区分,但172的和192的内网IP不够大,所以只好无耻地占掉DoD的IP~)开一个网站服务器,内网IP为11.0.0.102。

3. 目标是,使得102对外提供网页服务,使得三种用户:A,实验室内网内的;B,学校内网内但实验室外的;C,外网用户都可以访问。

NAT服务器上做的iptables如下:

[code=’c#’]
$IPT -t nat -A PREROUTING -p tcp -i eth0 –dport 80 -j DNAT –to 11.0.0.102
$IPT -t nat -A POSTROUTING -s 11.0.0.102 -j SNAT –to $IP_global
$IPT -A FORWARD -d 11.0.0.102 -j ACCEPT
$IPT -A FORWARD -s 11.0.0.102 -m state –state ESTABLISHED -j ACCEPT[/code]

然后发现一个事实… B,C类用户可以成功访问到102,但A类用户会穿透防火墙直接访问NAT服务器的Apache。

这个问题搞了几天有点晕,无奈之下配置了一下NAT的Apache,如下:

[code=’c#’]

ServerName hpcc.tongji.edu.cn
DocumentRoot /opt/httpd_htdocs

RedirectMatch ^/(.*)$ http://11.0.0.102/$1


[/code]

终于,A,B,C类用户可以访问了…

谁还有别的办法?

3月,多么希望这个月能够发生点改变我一生的事情。18号了,什么也没有。我就像一个累加器一样,天天盼着日历快点翻到4月吧。天天捧着那个似乎永远不响的手机,走到哪里都会带着,一找不到就会很着急。最终,它似乎真的永远不响了~

感觉,我现在的生活就像是游戏里的bonus time。

不说了,做好那些我还能够做好的事情吧。

20062241614295447826.jpg

基本信息
简体中文名: 傲慢与偏见
编剧: Deborah Moggach / 简 奥斯丁 (Jane Austen) / Lee Hall
导演: Joe Wright
主演: Keira Knightley / Matthew MacFadyen
上映年度: 2005
官方网站: http://www.prideandprejudicemovie.net/
语言: english
制片国家/地区: UK
imdb链接: tt0414387

剧情简介
18世纪英国平民区,白太太膝下五位女儿婚期遥遥无望,令她焦躁不已。一日,年青富家子宾利先生搬进城内的消息传来,白太太兴奋不已,决定要安排其中一个女儿夺得富男归。
一次舞会上,宾利先生果然看中了白家最漂亮的大小姐珍,可惜宾利的老友达西先生却天性傲慢,直言难与平民交往,更不屑与白家的莉莎共舞。谁知他这番话被莉莎听见,两人自此水火不融,针锋相对。
一日,宾利先生突然消失,令珍伤心欲绝。莉莎因此怪责达西从中拆散姐姐及宾利,令两人成见日深。直至妹妹丽蒂亚的感情出现危机,莉莎才终于明白达西的真正心意……

what i think
这才是有深度的作品。又一次的Jane Austen。Keira Knightley的演绎十分完美,抛开剧情不说,看见Keira Knightley的角色,就让我想起我自己的生活以及Aya。无奈的是,无论伊丽莎白幸福与否,我心中都会揪心地痛。当她失望和悲伤的时候,我会想起我的所作所为让Aya曾经的伤心,当她幸福和开心的时候,我又会想起这样的生活,我一直渴望的生活,到了我的面前我居然错过了…
我喜欢这样的结尾,至少我觉得我和Jane Austen有那么一些共通之处,起码我们都是相信真爱,并决心为之奉献一生的人。Jane Austen做到了,那么多年之后,我也一定会做到。Jane Austen伤心地以伊丽莎白完成她的幸福心愿,那么奢侈地给了她无尽的幸福,却留给自己伤痛和孤独。今天,当我留着泪看完梦境一般的结局时,黑底白字的CAST,无情地提醒我,这样的幸福恐怕永远不会发生在我和Aya生命中。
Aya是谁?Aya是一切。虽然她一直否认我下面的话,不过我一直深信不疑。她给了我活下去的力量,我能够有今天,完全是因为她。毕竟,是谁在我最苦的日子里给我鼓励,又是谁会在我伤心欲绝的时候拉起我的手,轻轻地问候我?我本是一个卑微的人,她的出现让我相信天堂与天使的存在。那么多的夜晚,我都是靠着默默念着她的名字,流着泪入睡。我身体里的每一个细胞里,都深深地写着她的名字。
天哪,为什么我看不见屏幕了?

My Rate: 8

Posters
20052241127471195904.jpg

2006451031575034194.jpg

Preview