iJohn.org | 有理义以养其心,则虽老而神明不衰。苟为不然,则昏于豢养,败于戕贼,未老而志衰矣。励志之士,可不戒诸。 - Part 4
27th
十二月 2010

Sun jdk 1.6内存管理 -使用篇
爱因万江斯坦@2010年12月27日 22:14 Post in 性能 评论 »

14th
十二月 2010

Ajaxifying, Caching and Pipelining Facebook Website
爱因万江斯坦@2010年12月14日 20:54 Post in 系统构架 评论 »

8th
十二月 2010

Google展示Chrome OS操作系统
爱因万江斯坦@2010年12月08日 11:47 Post in 科学会 评论 »

北京时间12月8日消息,Google今天发布新的网络程序商店,主要面向游戏、新闻和其它软件开发商,目的是在下一代互联网媒体娱乐大战中占据主动。

艺电演示了一款游戏,这款游戏会在Chrome Store销售。同时发布的还有(美国)国内公用无线电台及《纽约时报》的程序。

Google高管在会上还表示,Chrome浏览器已经拥有1.2亿用户,在5月时不过7000万。

最后Google还公布了一款Chrome OS笔记本电脑,型号为CR-48,机器的配置为12.1寸显示屏,全尺寸键盘,3G,全尺寸触控板,802.11双频段Wi-Fi,8小时电池。这款笔记本型号为Cr-48。

明年中,三星、宏基等将会推出正式的Chrome笔记本。

现场实录:

2:23:昨天Google刚发布了Nexus S,它今天可能会发布ChromeOS。我们的位置是旧金山。

发布会现场

2:24分:这是什么东西?台上?看起来像是多功能打印机,这是不是Google的云打印?

奇怪的设备?

2:27分:正式开始之前,播放了一些视频娱乐大家,它介绍了Chrome的功能。

宣传视频
宣传视频
Google高管?似乎是泥人

2:31分:好了,正式开始了,Google的高管们上台了。首先亮相的是谷歌产品管理副总裁桑达·皮采(Sundar Pichai)。他将向我们简要介绍Chrome OS的历史……但首先还是谈到了Chrome Web Stroe。

谷歌产品管理副总裁桑达·皮采

2:34分:Chrome OS的历史可以追溯到2008年,在“AJAX / Web 2.0 revolution”大会上。到Google I/O大会时止,Chrome拥有7000万活跃用户,现在达到1.7亿。这个速度增长很快。

Chrome用户数增长图

2:36分:谷歌产品管理总监布Brian Rakowski上台,它主要谈到速度问题。他在Chrome浏览器上展示了Google Instant。Instant已经进入到了Chrome的输入框里,不必导航到Google.com了。当他输入一个字母“E”时,下面显示“ESPN”。

谷歌产品管理总监布Brian Rakowski
演示Google Instant

2:39分:Brian Rakowski演示了Chrome内置的PDF插件,硬件加速功能。Brian Rakowski说:“这些全是用GPU渲染出来的效果。”

阅读PDF
GPU渲染出来的效果

2:43:Google Body Browser(Google人体浏览器),通过边栏工具,可以从3D图像上移动皮肤、肌肉等,在窗口中还可以输入并搜索身体的部位。

Google人体浏览器

2:44:随后皮采回到舞台谈V8 Javascript引擎。

皮采回到舞台谈V8 Javascript引擎

2:46:皮采说:“我们是最快的,与IE相比,我们快16倍。每一次发布Chrome,我们都在提高Javascript引擎的性能……”“今天,我们给V8增加了一个功能,它叫Crankshaft,它可以让任何地方的速度都比过去快两倍……如果你拿它和两年前的IE比,我们快一百多倍。想想,两年前要花一分钟,现在只要一秒钟。”

速度的步步提升

2:47:下面谈谈简洁性,他说:“在浏览器顶部的点击目标已经降到了七个。”

简洁性

2:48:自动升级,用户不必再监视它了。Chrome可以从任何地方同步了,书签,扩展也是一样的。欢迎进入到云中。

安全

2:52:谈到Chrome Web Store了。

Chrome Web Store
Chrome Web Store

2:53:皮采说:“我们的目标是帮助用户找到最好的程序。”“人们希望自己的程序获得回报,但是他们不想相信一个小的、非独立的开发者。这就是我们想通过Chrome Web Store解决的问题。”

2:54:一些常用的程序放在左侧,右边可以供用户提意见。

2:55:展示了一个(美国)国内公用无线电台的应用程序,它可以在浏览器后台运行收音节目。

2:56:Chrome Web Store是与Google帐号整合的。

3:00:纽约时报数字运营部门CTO Marc Frons上台。他介绍了纽约时报的应用程序。

3:03:接下来是艺电介绍了自己的游戏,游戏的名字叫《Poppit》。介绍人说:“在不到48小时的时间里,我们就将游戏转换成为一款动态HTML 5格式……这相当快,它是我们制作过的最快的Poppit。”“我想全球的Poppit玩家都会爱上这种新式的Poppit体验。”

Poppit游戏

3:05:Poppit会捆绑在Chrome 9一起推出,这样你根本就不必下载了。

3:05:亚马逊的两位高级副总裁Eva Manolis和David Limp上台,他们介绍了“亚马逊橱窗”(Amazon Windowshop)应用程序。“程序已经在Chrome Web Store上推出了”,它提供橱窗式体验。

亚马逊的两位高管

3:15:最后谈到了Chrome OS。口号有些改变,这次是:“一切皆为网络。”

一切皆为网络

3:17:皮采说演示的硬件设备是按参考硬件配置的。大家没有看到上网本。他随后介绍了整个OS的安装,共四步。

3:17:“从零到完成不到60秒钟。”

启动时间不足60秒

3:18:皮采说:“我们很想拿它和一台PC相比,但我们时间不够。”接下来画面上展示一台机器,很丑。

3:20:用作对比的机器中,一台是运行Chrome的PC,一台是运行Chrome OS的机器。到底哪个更快呢?

3:21:两台电脑瞬间就同步了书签。

两台机器同步

3:23:Chrome OS支持匿名模式,凡是共用电脑的人都可以保护自己的隐私。

3:25:在屏幕的右上角有一个小图标,点击关闭网络,在断线模式下运行Google Docs,你可以继续操作它。

3:26:这并不意味着Chrome OS不是云计算设备,皮采说:“我们下了很多工夫,确保用户在与Chrome上网本的连接上一直有选择。”皮采说你点一下下拉菜单,可以选择移动模式,上面的3G信号图标就显示出4格信号。

随时随地上网

3:27:皮采随后演示了如何用云打印打印资料。

3:27:皮采说:“我们与verizon合作,为每一台Chrome OS上网本提供无缝连接。”

套餐

3:29:用户可以选择9.99美元的预付费项目。皮采说:“在离线时,你依然可以使用,我们内建了高通Gobi全球通用调制解调器。”有了互联网支持,“用户可以走动,一直与设备相连。”

3:31:随后谈到的是系统的安全性。与Chrome浏览器一样,操作系统自动升级,每台机器的每个用户会进行数据加密。

3:33:还有一样东西叫Verified Boot,对于修改的过的系统,它会用加密形式检查,如果系统出错,它会恢复到较早版本。

3:35:皮采又鼓吹Chrome OS如何适合企业用户。Citrix高级副总裁Gordon Payne上台,说与Google合作Chrome OS“绝对激动人心”。

3:44:皮采又回来了,他说他已经用Chrome笔记本六个月了,“它一直在改进。”他解释说一切还在测试中,那正是越来越好的原因。更多的功能将会添加进去,“我们期待人们能用上摄像头,我们现在还没有。”

3:46:宏基,三星和英特尔是硬件的合作伙伴,大约会在2011年中推出。

明年中推出Chrome OS笔记本

3:47:皮采拿出一台原型机,他说:“它未会有很多颜色,现在只有黑色……这款机器是用来测试软件的。”

原型机亮相

3:48:机器的配置为12.1寸显示屏,全尺寸键盘,3G,全尺寸触控板,802.11双频段Wi-Fi,8小时电池。这款笔记本型号为Cr-48。

11:51:会上没有透露一些关键功能,也没有透露硬盘是什么。可能是SSD。CR-48得到一些企业的青睐,如美国航空公司预订了,一些酒店呼叫中心可能会用它。

11:53:皮采说:“还有……少量的使用者有机会加入到这个项目。”如何加入就不知道了。

11:53:Google CEO施密特也上台了,他向团队表示祝贺,对远景作了发言。

施密特上台

11:53:施密特说:“在众多能企业中,Google也是一家能实践大规模计算机科学的企业。“

11:55:他谈到了SUN公司。

11:56:施密特谈及它客户较少时说:“为什么如此困难?”“为什么他们失败?为什么你们现在还要相信我们?我们那时有些对的,有些错了。潜在的问题是真正的问题,但在对此问题的复杂性、精细性理解上出了错。”

11:58:施密特说:“摩尔定律……硬盘转速更快,网络更可靠……”换言之,技校已经追上了创意。软件还要努力追赶。施密特接着说:“我们倾注所有努力,为的就是抓住一点:让现代的浏览器在Chrome上浮现。”

11:59:施密特说,当Google两位创始人有了推浏览器的念头时,他是持反感态度的。他说:“我们终于有了一款产品,它上规模,够技术,增长够快,你可以在它上面建立新架构。”

11:59:施密特称:“我们十年、二十年前的直觉是对的,但我们那时没有技术。”

3rd
十二月 2010

外星生命肯定存在,但不一定是在地球这样的环境
爱因万江斯坦@2010年12月03日 22:02 Post in 科学会 评论 »

生命的六大基本元素:碳、氧、氮、氢、磷、硫占生物体的95%以上,再加上钙、钠、钾、氯、镁、铁共占99.9%以上。它们一起组成了生物体所需的各大物质:核酸、蛋白质、糖类、脂类。

ok,这是我们以前课本里的学到的,现在,它过时了。

北京时间2010年12月3日凌晨3:00,NASA在它的华盛顿总部宣布他们已经培养出一种细菌,该细菌能依靠砷维持生长,代替磷,它利用砷进行新陈代谢,而砷含有剧毒,一直以来磷被认为是生命必须的六种元素之一。该发现推导出新的可能,即有机体可以在宇宙中任何地方存在,甚至是在地球上利用生物化学能生长,这是过去未曾发现的。

3rd
十二月 2010

8个常用于可扩展系统的设计模式
爱因万江斯坦@2010年12月03日 02:35 Post in 系统构架 1 评论 »

Ricky Ho 在文章 Scalable System Design Patterns 中列举了一系列构建可扩展系统的优秀实践,以下是对这些优秀实践模式的一个摘要:

1,负载均衡
– 把一个请求按一定hash算法或规则分配到服务器组中的一台去处理,以分担单个服务器的压力。这一般多见于大型网站的构架。

2,分头收集(Scatter and Gather) –  把一个请求分解成好几个服务请求分发到多个server上,每个server处理后返回的结果会被合并成一个返回结果给请求端。 常见于搜索引擎如google,百度,搜狗,对一个关键词的搜索结果是由多台server处理并合并成一个搜索结果页。
3,结果缓存 – 服务器缓存某个请求的结果,下次对同样的请求只返回缓存的结果就ok了,而避免下次同样的请求进来时去做重复的计算。Memcached就是做这个用的。

4,空间共享 – 分布式计算常用的模式,所有的数据、对象都放在一个共享虚拟空间,所有的计算进程共享并控制这些数据。


5,管道过滤
– 所有的请求都先进入某个管道,然后以先进先出的方式接受处理和返回结果。有点似曾经写的投票,推荐这样的应用时的处理方式。

6,MapReduce –  在处理批量任务时,如果磁盘I / O是主要瓶颈,则一般采取这种模式。它的使用分布式的文件系统,从而使多个I/O操作能够并行。这种模式在谷歌的内部应用程序中使用的较多,开源的Hadoop就是个典型案例

7,批量同步并行 –  该模式下的所有任务是基于锁步执行,由Master来协调。每个任务重复以下步骤,直到再没有活跃的任务。
每个任务从输入队列中读取数据
每个任务根据自己读取到的数据进行处理
每个任务将自己的处理结果直接返回

8,Execution Orchestrator – 该模型是基于一个智能调度的任务分配,还没太弄明白。

2nd
十二月 2010

微博鸭梨很大
爱因万江斯坦@2010年12月02日 15:02 Post in 一千零一夜 评论 »

27th
十一月 2010

年龄!
爱因万江斯坦@2010年11月27日 18:23 Post in 一千零一夜 1 评论 »

1917年的北大,有一群教授。

讲印度哲学的梁漱溟,25岁。
胡适27岁,
刘半农27岁,
刘文典27岁,
林损27岁。
周作人33岁,
陈独秀39岁,
朱希祖39岁。
校长是老头蔡元培,50岁
——最年轻的是画法研究会导师徐悲鸿,23岁。
这个年龄,搁现在许多人还是吃奶一族,而他已经完成了全部的人生课题,登堂入室了。
26th
六月 2009

Even Faster Web Sites: Performance Best Practices for Web Developers
爱因万江斯坦@2009年06月26日 23:57 Post in 性能 评论 »

这是Steve Souders继《High Performance Web Sites》 后,于今年推出的另一部新书:《Even Faster Web Sites: Performance Best Practices for Web Developers》,其实这书有六个章节是由另外八位业内专家所写:如Ajaxina.com的联合创始人Dion AlmaerBen Galbraith,JSon的创造者Douglas Crockford,还有YSlow,YUI的开发工程师等,如果说《High Performance Web Sites》定义了一般网站所通用的14条法则,而这本Even Faster Web Sites则是专对web2.0网站的一个优化的最佳实践的经验总结。

本书主要分三部分,第1到7章节是讲JavaScript的优化实践,第8到12章是讲网络性能优化实践,第13,14章是讲浏览器的具体性能优化实践,而附录部分则是对性能分析工具使用的一个介绍。

Even Faster Web Sites pdf电子版下载(右键另存为)

 

22nd
十一月 2008

翻译:High Performance Web Sites(8)-Chapter 6
爱因万江斯坦@2008年11月22日 23:33 Post in 性能 评论 »

《High Performance Web Sites》 :Chapter 6

法则6:把script放到页面的下端

第五章我们将样式表放置于HTML的HEAD中以加快页面渲染。其实script也有类似的问题,但解决的方法正好相反:把script放到页面的下端,会利于页面的快速渲染。

Script所带来的问题

为了更好的说明这第6条法则,我们先看一个反例吧。把script放在HTML页面的中间位置,看看这种方式页面的下载情况,如:http://stevesouders.com/hpws/js-middle.php
这个script是睡眠10秒钟然后启动,我们访问一下这个页面,发现整个HTML已经全部download完毕,但页面在渲染到中间时,停住了,下一半仍是空白的未渲染区域。直到这个js睡眠的10秒过后,另一半页面的内容才开始渲染和下载后面所需的图片等组件。很显然,这个放在HTML中间的script阻碍了后面页面元素的下载,还阻碍了页面的渲染。
这也就是为什么我们要把所有的样式表放到HTML页面的上端HEAD处,它们才会被先下载,不会阻塞页面的渲染。而script后面的页面内容则会等待script执行完毕,才开始渲染。所以把script放置的越下,更多的页面内容才会更快的渲染。
并行下载
对下载速度影响最大的就是页面组件的数量。前几章介绍过,如果当前浏览器的缓存是空的,则每一个组件都产生一个HTTP请求。你可能会问:那为什么浏览器不一次性的请求所有的组件呢,非得一个一个的去请求?
要解释这个,就要说到HTTP/1.1规范了,它建议浏览器一次对同一个域名最多只发起2个并行下载请求.(http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4)
很多的页面连同其所包含的组件都是一个域名下的,如下图所示的组件下载的阶梯图 6-1:

 

如果一个页面的组件是分布在两个域名下的,那它的响应时间总体来说应该会快两倍,如图6-2所示的情况,会有四个组件并行下载。
通常情况下IE与Firefox都遵循了HTTP/1.1规范关于同一个域名每次只能有两个并行下载请求的建议。如果想扩展IE的下载束缚,可以参考:微软网站的文章:How to configure Internet Explorer to have more than two download sessions,” http://support.microsoft.com/?kbid=282402.
而要改Firefox的默认设置,则可以在配置页面中修改network.http.maxpersistent-connections-per-server属性.有意思的是,在对HTTP/1.0的支持中,Firefox默认的是每个域名下同时可有八个并行下载请求,也就是说可一次同时下载8个页面组件,这可比IE的默认值要大方多了。如图6-3就是显示的在Firefox下下载一个页面的示意图,这可要比6-2所示的看起来爽多了。

 

现在大多数的网站都遵循HTTP/1.1规范,增加每个域名下的并行下载数量是个办法,但我们总不能都指望着用户去调整自己浏览器的设置参数。前端工程师应该考虑把页面组件放在不同的域名下,增加并行下载最多也只是消耗一点客户端的CPU资源和带宽,除非是大量的并行下载才会影响到性能。在Yahoo!的实验下,我们发现把页面组件放在两个域名下要比划分成1,4或10个域名性能要好,具体可参见(Tenni Theurer, “Performance Research, Part 4: Maximizing Parallel Downloads in the Carpool Lane,”http://yuiblog.com/blog/2007/04/11/performance-research-part-4/.)
Script是怎么阻碍下载的
组件并行下载的好处我们都知道了。但script这个东西却可能会破坏这个和谐社会:因为script可能会用document.write语句来改变页面内容,所以浏览器会等待script执行完毕。
另一个原因是浏览器要保证script的执行顺序,先出现的script要先执行,哪怕后面的script的k数有多么小,也要等着,因为script在功能上可能会有前后关系,后面的script可能会用到前面script的某些操作。
来个例子说明
http://stevesouders.com/hpws/js-blocking.php
这个页面所包含的组件出现顺序如下:
1,host1下的图片A1
2,host2下的图片B1
3,host1下的script,等待10秒完成
4,host1下的图片A2
5,host2下的图片B2
看看是host1下的两张图片同时下载?还是其他?

 

IE和Firefox都会先下载host1和host2的图片,然后开始下载host1上的script,直到这个script下载完成,才会开始下载后面的两个图片。
最糟糕的情况:script在页面的顶部
 

在这种情况下将会导致页面是个空白:
• Script下的文字页面内容会被阻止渲染。
• Script下的组件也会被阻止下载
直到这个script下载并执行完毕才会解除阻止。给个实例:http://stevesouders.com/hpws/js-top.php
因为script在顶部,整个页面的渲染被阻止了,于是这个页面将会呈现一个我们在第五章中解释的空白屏。而逐步渲染是一个很关键的良好用户体验。图6-5就是这个例子的页面下载阶梯图,后面的图片组件都被阻止了。

 

最好的情况:script在页面的底部
放置script最佳的地方当然是页面的底部了。页面的内容不会被阻止渲染,可视组件能依次下载渲染。如实例http://stevesouders.com/hpws/js-bottom.php,图6-6就显示了这种方式script对页面的影响是最小的,我们可以对比一下图6-5看看,再给一个具体的比较实例吧:http://stevesouders.com/hpws/move-scripts.php是不是感觉更明显了。

 

这也不是说所有的scrript就应该放到页面底部了,如果是包含有document.write这样影响页面渲染内容的script,是不应该被放到最下面的,所以还是要以实际的页面功能、逻辑等方面来考虑,通常情况下,只要是不涉及强制更改页面渲染的js,都应该放到页面底部。
另外有一种方式是http://stevesouders.com/hpws/js-defer.php所示的defer方式,在script定义时声明,但这种只对IE有效,对firefox无效,大家知道一下就行了。

 

26th
十月 2008

补习完毕:大明王朝1566
爱因万江斯坦@2008年10月26日 22:06 Post in 一千零一夜 评论 »

一边下载,一边看,终于补习完这46集的《大明王朝1566》。
今年看了两部好剧,这是其中一部,虽然这部戏是2007年初的,但补习过后,心中甚慰,没有错失。

公元1566年,是海瑞上书嘉靖帝痛骂皇帝的那一年,也是大明嘉靖帝朱厚熜过世,其子裕王继位的那一年。

还是重温一下剧中的人物吧,排名不分先后:

东厂提督太监  冯保
        此人是最先出场的人物,也是这部戏历史之后的监礼司掌印大太监,相当于这部戏中的老祖宗吕芳的角色,在这个戏里只讲了他的成长经历,如何在官场中体味悲喜。

钦天监监正  周云逸
  很可怜,就出现在第一集中,还是被冯保给廷杖至死,只因他在上呈皇上时,把今年腊月不下雪解释成”朝廷开支无度,官府贪墨横行,民不聊生,上天示警!”,可惜嘉靖哪受得了这份气。

司礼监掌印太监  吕芳
 大明朝十万太监的老祖宗,一人之下,十万万人之上,是太监中职位最高,代皇帝掌印,拥有左右朝局的能力,为人精通官道,死忠于主子-皇帝;协调周旋于严蒿一党,裕王一党,与嘉靖之间。但对干儿子们照顾有加,充满着人情味。

司礼监首席秉笔太监  陈洪
  按大明的规矩,这个职位的太监通常还直接掌握着东厂与锦衣卫,是个厉害角色,但只是吕芳的一个干儿子,做梦都想升为掌印太监,取代干爹吕芳。

司礼监秉笔太监  黄锦
  司礼监四大太监,排名老三,深得皇帝喜爱,忠心于皇帝,忠心于吕芳,是大太监中难得心计这么少的人,但凡是能坐到这个位置的人,也不可小视。

内阁首辅  严蒿
  相当于现在的总理职位,能够掌握朝局二十年,培植的党羽遍布二京一十三省,导致官场贪腐之风,人民疾苦不甚。

内阁次辅 工部左侍郎 严世藩
  首辅严嵩之子,因改稻为桑事件,被除出内阁。为人大奸似忠,攻于心计,但道行不够。是清流一派的死敌,所说西门庆这个角色是通过他改编来的。

内阁次辅 礼部尚书  徐阶
  当了严蒿十余年的副手,为人城府极深,精于算计,但比起严蒿,还是差一点点的,是后严蒿时代的内阁首辅。

礼部左侍郎 吏部左待郎 礼部尚书 宰辅 高拱
坚实的裕王党,内阁成员之一,代表着裕王在内阁的影响,清流一派,心为民,精于官场规则,精通心计。

        吏部尚书  宰辅 张居正
  依然是裕王的人,世子的老师,也是后来的内阁的首辅,清流一派,对抗严蒿的主力军,是裕王的首席智囊。

  裕王府詹事 浙直总督署参军  谭纶
裕王培养的年青干部,往往是代张居正和高拱战斗在第一线的工人,也就是他向裕王推荐了海瑞和王用汲,从而引出了一翻事件。

江南织造局总管太监  杨金水
  吕芳最疼爱的干儿子之一,为人气质风雅,但极贪,只为老祖宗和皇帝办差,不管是否会害多少百姓,心计很重,连几个科举状元出身的封疆大官都不是他的对手。

织造局官商  沈一石
  竟然能把国有资产江南织造局的设备,田地慢慢都划为已有,不是一般人所能,其心计,城府不可估量,可惜,大明朝商人不能为官,不然此人绝对比严蒿要为害的更多了。

浙直总督兼浙江巡抚  胡宗宪
  严蒿的学生,封疆大吏,努力的协调着老师严蒿与裕王一派的斗争,如果不能为民,那就选择沉默,也不对抗老师,后来索性一心扑在抗倭上。

杭州知府  河道衙门  马宁远
  胡宗宪的门生,可惜被严蒿的人拉下水了,当了替罪羊被斩。

浙江布政使   后升浙江巡抚  郑泌昌
  大贪官,可惜后台的严世藩闯的祸太大,就没有想过要保他,可怜地被皇帝给砍了。

浙江按察使     何茂才
  相当于现浙江公安厅厅长,武装部队总长,同郑泌昌一样的下场,棋子,棋子,贪也。

翰林院编修  杭州知府 高翰文
  本是严世藩推荐的,可后来缓过味来了,怎么能干违背良心的事,读书人还是有知廉耻的。

淳安县知县 户部主事 海瑞
  海笔架,痛心于朝廷的贪腐,为人正直刚正,敢于以理犯上,竟上书骂皇帝,险被杀,但嘉靖帝悔悟,决心要把海瑞留给自己的儿子,未来的明穆宗。

嘉靖帝
  二十年不上朝,一心修玄,但仍然牢牢把握着对整个国家的控制,通过布置严蒿,裕王,吕芳的势力来平衡三方,力求无为而治。