Others

HTML解析原理 | 前端开发-武方博

2011-10-14. Category & Tags: Others Others

标准的web前端工程师需要知道 ◎**浏览器(或者相应播放器)的渲染/重绘原理 **

这我得加把劲了。我还真的说的不是很清楚,我就G下,结果不是很多,找到了有一个,就记下来了。。。

以下部分来自handawei-javaeye的blog:

Web页面运行在各种各样的浏览器当中,浏览器载入、渲染页面的速度直接影响着用户体验

简单地说,页面渲染就是浏览器将html代码根据CSS定义的规则显示在浏览器窗口中的这个过程。先来大致了解一下浏览器都是怎么干活的:

1\. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件;

2\. 浏览器开始载入html代码,发现head标签内有一个link标签引用外部CSS文件;

3\. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件;

4\. 浏览器继续载入html中body部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了;

5\. 浏览器在代码中发现一个img标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码;

6\. 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排布,因此浏览器需要回过头来<span class="wp_keywordlink_affiliate">[重新渲染](http://www.wufangbo.com/tag/%e9%87%8d%e6%96%b0%e6%b8%b2%e6%9f%93 "  ")</span>这部分代码;

7\. 浏览器发现了一个包含一行Javascript代码的script标签,赶快运行它;

8\. Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个div (style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不<span class="wp_keywordlink_affiliate">[重新渲染](http://www.wufangbo.com/tag/%e9%87%8d%e6%96%b0%e6%b8%b2%e6%9f%93 "  ")</span>这部分代码;

9\. 终于等到了/html的到来,浏览器泪流满面……

10\. 等等,还没完,用户点了一下界面中的“换肤”按钮,Javascript让浏览器换了一下link标签的CSS路径;

11\. 浏览器召集了在座的各位divspanulli们,“大伙儿收拾收拾行李,咱得重新来过……”,浏览器向服务器请

求了新的CSS文件,重新渲染页面。

浏览器每天就这么来来回回跑着,要知道不同的人写出来的html和css代码质量参差不齐,说不定哪天跑着跑着就挂掉了。好在这个世界还有这么一群人——页面重构工程师,平时挺不起眼,也就帮视觉设计师们切切图啊改改字,其实背地里还是干了不少实事的。

说到页面为什么会慢?那是因为浏览器要花时间、花精力去渲染,尤其是当它发现某个部分发生了点变化影响了布局,需要倒回去重新渲染,内行称这个回退的过程叫**reflow。****reflow几乎是无法避免的**。现在界面上流行的一些效果,比如树状目录的折叠、展开(实质上是元素的显示与隐藏)等,都将引起浏览器的 reflow。鼠标滑过、点击……只要这些行为引起了页面上某些元素的占位面积、定位方式、边距等属性的变化,都会引起它内部、周围甚至整个页面的重新渲染。通常我们都无法预估浏览器到底会reflow哪一部分的代码,它们都彼此相互影响着。

reflow问题是可以优化的,我们可以尽量减少不必要的reflow。比如开头的例子中的img图片载入问题,这其实就是一个可以避免的reflow——给图片设置宽度和高度就可以了。这样浏览器就知道了图片的占位面积,在载入图片前就预留好了位置。

另外,有个和reflow看上去差不多的术语:repaint,中文叫重绘。如果只是改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性,将只会引起浏览器repaint。repaint的速度明显快于reflow(在IE下需要换一下说法,reflow要比repaint 更缓慢)。下次将通过一系列的实验说明在Firefox、IE等浏览器下reflow的优化。

相关文章 #

乔布斯名言翻译有误

2011-10-11. Category & Tags: Others Others

     因著賈伯斯去世,英語格言「Stay Hungry,Stay Foolish」再次風行於世。世人得知賈伯斯喜愛此格言,最初是通過賈伯斯2005年對史丹佛大學畢業生的演講。賈伯斯視之為座右銘,也推薦給即將踏上社會的大學生。

     「Stay Hungry,Stay Foolish」中文該怎麼翻譯?最流行的譯本是「求知若飢,虛心若愚」,這很有問題。好的翻譯,要符合三條標準﹕信、達、雅。以此標準來衡量「求知若飢,虛心若愚」雖符合次要的「達」和「雅」,卻失去了最重要的「信」。

     「Stay Hungry」的原意是「保持飢餓」,沒有「求知若」的意思;「Stay Foolish」是「保持愚笨」,也不包含「虛心若」。「求知若飢,虛心若愚」的譯文憑空增加出「知」和「虛心」,這首先違反賈伯斯的風格秉性。

     「求知若」,就是「追求知識仿如……」。毫無疑問,作為PC和「i系列」電子產品的創造者,賈伯斯是擁有豐富的專業知識,但他更可貴的並非「知識淵博」,而是創新。如果賈伯斯只是「專業知識淵博」,卻缺乏創新精神與能力,他充其量只是個優秀的電腦工程師,絕不會是如今被視為與愛迪生和愛因斯坦並列的偉大原創者、發明家。

     若論「追求」,「Stay Hungry」的「飢餓」確實是「追求」的動力。追求什麼?可能是「知」──知識,但也可能是「創」──創造、創新,也可能是「思」──新思想、新觀念,是「真」──真理、正義,甚至可能是「財」──財富,以及其他種種。因此,原文的「保持飢餓」,含意雖單一,想像空間無限;譯成「求知若飢」,含意增加了,但原先「知、創、思、真、財……」的無限想像空間,卻反被縮減成單一的「知識」。

     「Stay Foolish」亦然,如果它的原意是「虛心若愚」,可以斷言,賈伯斯絕不會引其為座右銘──眾所周知,賈伯斯從來就不是一個「虛心」或「謙虛」的人,賈伯斯之自信,近乎「自負」乃至「狂妄」,翻譯成「虛心若愚」,簡直可說是對賈伯斯的「羞辱」。在賈伯斯那裡,與其譯成「虛心若愚」,不如譯成「執著若愚」、「固執若愚」更恰當。和「Hungry」一樣,增譯「虛心」,反把「Foolish」原蘊的可能性給完全扼殺了。

     為何會出現「求知若飢,虛心若愚」的譯法?為何如此譯文會在中國人世界廣泛流傳?因為它的「文化內涵」正是中國人的「文化民族性」映照。以「Hungry」的追求目標「知、創、思、真、財……」為例,中國文化向來重「知」、重「財」,也「擅知」、「擅財」,卻輕「創」、輕「思」,因而也缺「創」、缺「思」。至於「Foolish」,將其譯成「虛心」,是因為「謙虛」是中國人美德,儘管它並非美國人秉性。美國人的「不謙虛」風格,看在中國人眼裡,常常近乎「張揚」。

     「求知若飢,虛心若愚」的譯文,是自覺不自覺地以己民族的文化觀念錯解英語格言,既歪曲原意,也不符賈伯斯風格,更違反美國人的「文化民族性」,如此武斷置入自己文化觀的翻譯,率直地說,是一種「文化強暴」。

     「Stay Hungry,Stay Foolish」究竟應該怎麼翻譯?符合「信、達、雅」的譯文,可以是「恆持飢渴、永保愚傻」。「渴」是「thirsty」,已屬增譯,但主旨並不違「信」,故無大礙。

     (作者為加籍陸僑專欄作家)

			…[更多新聞請看《旺報》](http://www.want-daily.com)  

Tuning Linode VPS-小规模低性能低流量网站优化实践

2011-10-11. Category & Tags: Others Others

偶然看到以前写过的这篇帖子 『小规模低性能低流量网站设计原则』,重新发到微博上引起了一点反响,觉得有必要以 Linode VPS 为例再做个简单的优化实践说明,免得总有人问我,也顺便赚点点击量 :)

假定现在你已经有了一个基本的 VPS 可用,基本内存 512MB 。参考官方提供的各种安装指导将 LAMP 这个组合运行了起来,操作系统一般 Ubuntu ,Web 服务器 Apache ,数据库 MySQL ,然后是 PHP ,以及需要安装的应用软件,WordPress 、Drupal 或是 OpenCart 什么的,一步一步配置好,能够正常的浏览页面。按照官方指导文档操作的一个好处是会包括一些基本的优化一点的配置。不至于出现太大的错误。

一旦应用就绪后,登录到操作系统中,通过 top / iostat / free 等基本操作系统命令收集基准数据,做记录。收集信息越全面,对于后面的优化就越便利。优化没有魔法,只有合理的方法。

1.内存相关的调整

内部测试或是较小范围使用,可能这样也不会遇到太大问题。一旦访问人数多了一点,机器响应可能就有点慢了。对于 VPS ,第一步着手调整的就是各个组件对内存的使用。因为内存受限,对内存的使用一定要精打细算一点。记住一旦内存耗尽,一部分内存调用压到磁盘上,系统负载会飙升,一般就会挂掉。

一般来说,对于 LAMP 环境,以下几个地方要注意:

PHP 程序的内存相关的调整

PHP5 配置文件 php.ini 中 memory_limit 定义的值默认情况是16MB,该参数定义单个 PHP 脚本消耗最大的内存大小(大意)。如果程序某个页面需要的内存超过这个限制,访问者最可能遇到一个 HTTP 500 错误,查看 Web 服务器错误日志也可以看到。多数情况下,这个值需要做相应调整。比如设置为32MB,是否合适,需要做观察。有一个经验方法是观察 top 命令的输出,看相应进程的 SHR 字段的值,实际上总是尽量大一点点。但不能过大,一旦有个别程序写的不好调用的时候占用过多资源,会导致 VPS 挂掉。

...

新发现的分子,可以删除或还原记忆

2011-10-10. Category & Tags: Others Others

51

寿司猫 @ 走进科学 , 2011.10.05 / 18:27 / 6,300 pv

新发现的分子,可以删除或还原记忆

对于图像的存储,在电脑硬盘里是占用一定的空间,那么在人脑里,存储的机制又是什么呢?下面来看看这几种分子吧。

新发现的分子,可以删除或还原记忆
氢化可的松

记忆的形成是由于大脑几个部分之间相互作用,产生的神经突触的变化而形成对某个事物的记录。实验证明,氢化可的松,一种由肾上腺分泌的,在应激反应中发挥效果的皮质激素,注射后可以增加短期记忆的保留。然而,如果是在长期紧张的情况下,氢化可的松却会妨碍短期记忆的保留(这说明短期记忆在记忆与遗忘之间有一个化学平衡)。人们对其他的细胞信号传导和神经递质分子也有研究,比如多巴胺;也有研究试图分清楚大脑的各个部分究竟都有哪些特定的神经递质。

新发现的分子,可以删除或还原记忆
P7C3分子,谁来给个系统命名?

这种小分子可能具有恢复记忆的功能,帮助记忆在脑内的保留。在老年痴呆症晚期,P7C3可以用来促进神经元分化以及防止神经退化。然而其作用机制,到目前还是未知。P7C3和它的一种作用更强的衍生物分子,在体内试验时,从1000种以上的分子中脱颖而出。这相当于某种地图炮地毯式搜索,在新药研发中很常见,但也不是一种很好的办法。毕竟在那么多分子里面挑一种最好的,想想都很蛋疼不是么。

以上两种都是帮助储存记忆,那么如果要消去不好的回忆,又该怎么办呢?
新发现的分子,可以删除或还原记忆

CaMKII,分子量为P7C3的1000倍

当这种大分子在小鼠脑内含量激增的时候,对于带有恐惧感的短期记忆的召唤具有抑制作用。也就是说,通过化学诱导,CaMKII可以抹消特定的短期记忆。但是如果CaMKII含量过高,大脑回想的能力会受损,并且会延长氢化可的松的作用时间,使得近期那些恐怖的记忆反而留存下来。

这些实验都还停留在动物阶段,也许要很多年后才能开始人体试验。但是对这些分子的研究,给了人们从根本上改变记忆的希望。

所以还是魔法靠谱,冥想盆以及一忘皆空什么的,听上去都很拉风啊 #


从Android看智能终端的未来

2011-10-10. Category & Tags: Others Others

  这次GOOGLE I/O推出的Android@Home非常有意思。笔者曾预言过Android将引领终端智能化的浪潮,没想到GOOGLE的步子这么快。本文则试图从智能终端与云的关系这个角度,进一步论述智能终端的发展趋势。

  我们知道ANDROID为网络而生,通过TCP/IP网络,一头连着终端设备,一头连着云。终端主要是进行数据的输入和输出,而逻辑处理则主要由云来完成。如果说云是大脑的话,那么终端就是神经元。

  我们从民用、公共、工业这三个领域各举一个例子,来说明智能终端的特点。

  先看民用(ANDROID@HOME)的例子:电视。

  电视经历了这些阶段:无线电视、有线电视、数字电视,对应的云分别是公共云、私有云、TCP/IP云,无线和有线的区别是云的传输通道不一样,模拟和数字的区别是云的传输格式不一样,并且从单向传输变成双向传输。

  在数字电视中,机顶盒是一个非常关键的因素,它起着这两个重要的作用:解析数字信号、连接TCP/IP云。现在我们看到已经出现了不少采用ANDROID操作系统的机顶盒。

  未来电视的趋势当然是智能化。GOOGLE通过内置CHROME的GOOGLE TV进行布局,而CHROME就起着机顶盒的作用,但是它用GOOGLE帐号取代了智能卡,将用户从运营商私人云中转移到GOOGLE云中。

  CHROME和ANDROID的角色非常类似,个人的理解是ANDROID适合采集数据,CHROME适合展现数据。

  通过CHROME,用户对电视节目的管理就可以在INTERNET上进行,除了通过PC订阅外,还可以通过PC将节目推送到电视上。

  另一个智能化的重点是遥控器,类似KINECT的体验将是遥控器未来的方向。

  设想一下以下场景:你从GOOGLE网上商场订购了一台ANDROID遥控器。你把它靠近GOOGLE TV,遥控器自动下载这款电视的触摸屏主题。这样你把它切换到电视模式将可以用来遥控这台电视机。你还可以坐在沙发上用声音遥控,当你发出遥控语音后,遥控器先后做了这些事:

  1. 录制控制语音。

  2. 将语音信号发送到GOOGLE的云。

  3. 等待GOOGLE云的处理。

  4. 接收GOOGLE编译过的的遥控指令。

  5. 将遥控指令发送给电视机(通过WIFI/RFID/NFC)。

  从这里我们可以看出,遥控器作为智能终端,并非终端本身的强大,而是它所连接的云的强大。

  再看公共领域(ANDROID@PUBLIC)的例子:汽车导航。

  GOOGLE在汽车领域有很大的雄心,其无人驾驶汽车项目据说是布林非常关心的。

  导航仪也是一个非常好的智能终端的例子,导航仪这个市场出现没多长,就面临了智能化的压力。

  智能导航仪的特点有:

  1. 实时更新的地图。

  2. 通过云的计算来设计行驶路线。

  3. 支持语音指令。

  4. 实时接收路况信息。

  5. 云会建议你更改行驶路线。

  6. 广播政府部门的通告。

  7. 通过社交网络与好友互动。

  概括一下,导航仪作为智能终端,将云的强大计算能力延伸过来,将INTERNET的社交能力包含进来。

  最后看工业领域(ANDROID@INDUSTRY)的例子:工业控制。

  当前工业控制广泛采用的技术是基于PLC/OPC的控制,其传输也是基于TCP/IP的,但是它受到很大的限制:

  1、PLC所传递的控制信号是电路级的,不能被执行层识别。OPC起的作用仅仅是翻译。

  2、OPC作为桥梁,它的信号通道采用的是古老的DCOM技术,而不是企业云。DCOM固有的缺陷造成开发和运营中的大量问题。

  我相信GOOGLE在无人驾驶汽车项目上积累的经验,一定可以发挥到工业领域。因为从传感器收集信息,和将指令发送给各驾驶系统,这些都 需要实现工业级的控制。

  这方面我了解到的信息不多,但在这里不妨大胆预言一下:

  1. 需要进行数据处理的控制器件采用ANDROID之类的智能操作系统。

  2. 控制器自身的功能模块,将通过安装驱动的方式被操作系统识别。

  3. 控制器与外部系统通过企业云进行调度。

  4. 控制指令被企业云翻译为WEB服务。

  再补充一点个人想象,未来的智能终端传输指令的方式,很可能就是扩展的微博:不仅仅是文字,还可能是语音或动作、视频信号。

  一条微博就是智能地球某个神经节点的信号,ANDROID就象《黑客帝国》中的电子章鱼。

  而未来的某一天,当天网苏醒的时候,它发现自己不是诞生在美国国防部的机房,它一直睡在GOOGLE的云里。

  来源:读者投稿,作者:@tallrain,作者博客

Google+抗衡Facebook的五大法宝

2011-10-10. Category & Tags: Others Others

  今年是社交网络百花齐放的一年,这一年重量级冠军Facebook受到了来自Google+的强有力挑战。然而在过去的一周里,随着订阅功能的推出和列表功能的大幅改进(类似Google+的圈功能),Facebook的风头明显盖过了一切。本周四Facebook还将在旧金山市召开F8开发者年会,超级博主Robert Scoble称,“Facebook将于本周公布迄今为止最重大的更新”。雷锋网将会持续关注Facebook在F8年会上的动向。

  与此同时,Google+的开发团队除了上周宣布限制应用接口开放之外,近期再无任何动向。下文中我们列出了Google+提升其现有产品,打Facebook个措手不及的5个方向。

  1. Google“人际圈”的自动生成及维护

  这是用户迄今为止反馈的关于Google+最大的问题,建立社交群组的程序过分繁琐,之后的维护也要花费大量精力。

  Facebook在这一点上可以做Google+的老师,其上周刚推出升级版的半自动索引式好友列表。Facebook现在可根据用户的地理位置、工作地点及其他个人信息自动生成列表。这项功能目前还并不完美,但总比Google+强迫用户一个一个抓人要好得多了。

  2.  给Google+添加定制搜索框

  Google搜索引擎可以搜到Google+上的任何公开信息,但搜不到Google+上的非公开信息及Google圈内信息。Google+的开发团队很清楚这是用户的需求,他们应该很有可能正在开发一款用于Google+内部的定制搜索引擎,如果这个设想成真,在搜索过去发布的信息这一点上Google将完胜Facebook和Twitter。

  众所周知Twitter只能搜索很短一段时间内的过往信息记录,而Facebook迄今为止也乐于鼓励用户“活在当下”。如若Google+推出强大搜索引擎,Facebook可能会重新考虑这一点,因为这样一来Google+就变成了用户的记忆银行,应用程序Evernote(全能便签)大获成功便得益于其自称为“在线大脑”的宣传—这也正说明社交网络需要支持更长时间段的记忆回溯。

  3.  彻底开放应用接口

  Google+的应用接口目前对外限制开放,因此外部开发者无法接触到Google群组的内部信息和数据。Google可以毫不费力地将其完全开放,而且Google+开发团队也已经表示过这是早晚的事情。鉴于整个Facebook平台目前都对第三方开发者开发用户个人数据,Google+想要快速建立起自家平台,这一步不得不走。

  4. 尽快开发品牌页面

  业内皆知Google+正在开发类似Facebook的品牌页面,笔者个人希望看到更简洁规整的界面。用户常常会在Facebook上关注一个品牌页面,之后再也看不到其相关消息,因为根本找不到关注的品牌列表。为什么不能将这个列表加到Facebook主菜单里呢?为什么不能在关注的同时就将该页面添加到指定列表呢?如今Google可以借此机会开发更友好的品牌页面,这对用户和企业都有好处。

  5.  给用户提供机会推荐家人及亲密好友加入Google+

  若想挑战Facebook,上述问题将会是Google+真正面临的挑战。Google+虽然对早期用户偏爱有加,但还未能成功吸引主流用户群体。大部分都是业内人士在互动,对探讨专业问题来说倒是个好平台,难怪Robert Scoble这么喜欢Google+。但用户的家人朋友(非专业人士)通常不会使用Google+,即便用了也只是用来嘲笑Google+多么冷清惨淡。诚然Facebook的用户群是经过日积月累的,但问题是Google+需要迅速提升服务,突破这一瓶颈。或者Google最终得把Google+与其搜索、电子商务等其他功能结合,促使普通用户真正开始使用。

  以上是笔者认为Google+亟待改进的地方,这还不包括近几周被抱怨的最频繁的一点:Google+目前只允许用户使用真实姓名作为ID,这简直荒唐。

  英文原文:5 Things Google Plus Can Do to Outbox Facebook

  中文翻译:雷锋网编译

视频详解 试用iPhone 4s苹果siri语音功能

2011-10-10. Category & Tags: Others Others

                        <!--end: article_app -->

**什么是Siri?**

Siri is a personal assistant application for iOS. The application uses natural language processing to answer questions, make recommendations, and perform actions by delegating requests to an expanding set of web services. The iOS app is the first public product by its makers, who are focused on artificial intelligence applications. Siri was acquired by Apple Inc. on April 28, 2010.

Siri's marketing claims include that Siri adapts to the user's individual preferences over time and personalizes results, as well as accomplishing tasks such as making dinner reservations and reserving a cab.

<span>**不是简单的语音输入**</span>

iphone 4s siri能理解您说的话,并且经过分析后,能给出相关操作,如“告诉妻子我晚点了”、“下午12点我要开会”等等说完后,它能自动写入到备忘录里面,Iphone4s识别率非常高!

Iphone 4s siri知道你说话的意思,并且给你相关答案,如“我这附近肯德基吗”,siri就能给你列出附近的肯德基店。

siri会帮你读取短信内容,可以帮你输入短信内容,如果有日程安排,会提醒你需要开始做事了。

siri还可以帮你查询本地的天气情况,只要对她说:“丽水市的天气情况怎么样?”“今天出门需要带雨伞么?”siri就可以给你列出相关天气。

可以通过已经支持siri的app,语音输入密码,输入输入内容,方便!

**siri技术背景**

苹果收购Siri的时候这家公司仅仅成立了两个月,Siri将自己公司的技术描述成为“虚拟个人助理(VPA)”,该技术代表着因特网的下一代交互方式。 这种全新的交互方式将允许你和你的设备进行对话。我们告诉助理自己想要做什么,而助理提供给我们不同的服务和信息供我们选择。

而9to5mac网站采访到了Siri的联合创始人以及董事会成员Norman Winarsky。根据采访内容,我们知道了Nuance语音识别对Siri的语音助理的影响并不大,比如说Siri刚成立的时候使用的语音识别引擎来自 Vlingo,所以之后如果出现了更好的语音识别引擎,苹果会很容易替换到Nuance的。

Siri的人工智能系统需要很大计算处理过程,需要用到缓存数据。所以手机的速度越快,Assistant的工作效果也就越好。在被问及到Siri的 Assistant功能会很重要么时,Norm称个人助理将会再次改变世界,而且这种语音助理的实际使用效果非常好。这将会是科技史上的另一次革命。

iPhone's new Micro USB Adapter complies with EU charger standards

2011-10-10. Category & Tags: Others Others

    <!--body-->

Apple has released a Dock-to-micro USB adapter as part of its compliance with new European Union standards for smartphone chargers. Apple signed an agreement in 2009 committing to honor the standard, which uses a charger that outputs 5V at 500mA and a cable that terminates in a micro USB plug.

The proposed standard would apply to any “data-enabled” phone, including all smartphones and many high-end feature phones. USB would be used for charging, and the micro USB connector—at the time already becoming a de facto standard on many smartphones—would be used on devices. “On principle, you would never have to buy a new charger again,” EC Vice-President Günter Verheugen said. The standards were finalized in December 2010 by ETSI.

...