Monthly Archives: 七月 2013

Node.js应用案例

Node.js发展简史 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用。 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。 2010年年底,Node.js获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node.js的发展。 2011年7月,Node.js在微软的支持下发布Windows版本。 Node.js应用案例 虽然Node.js诞生刚刚两年多,但是其发展势头逐渐赶超Ruby/Rails,我们在这里列举了部分企业应用Node.js的案例,听听来自客户的声音。 在社交网站LinkedIn最新发布的移动应用中,NodeJS是该移动应用的后台基础。LinkedIn移动开发主管Kiran Prasad对媒体表示,其整个移动软件平台都由NodeJS构建而成: LinkedIn内部使用了大量的技术,但是在移动服务器这一块,我们完全基于Node。 (使用它的原因)第一,是因为其灵活性。第二,如果你了解Node,就会发现它最擅长的事情是与其他服务通信。移动应用必须与我们的平台API和数据库交互。我们没有做太多数据分析。相比之前采用的Ruby on Rails技术,开发团队发现Node在性能方面提高很多。他们在每台物理机上跑了15个虚拟服务器(15个实例),其中4个实例即可处理双倍流量。容量评估基于负载测试的结果。 企业社会化服务网站Yammer则利用Node创建了针对其自身平台的跨域代理服务器,第三方的开发人员可以通过该服务器实现从自身域托管的Javascript代码与Yammer平台API的AJAX通信。Yammer平台技术主管Jim Patterson对Node的优点和缺点提出了自己的看法: (优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。 (缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。 知名项目托管网站GitHub也尝试了Node应用。该Node应用称为NodeLoad,是一个存档下载服务器(每当你下载某个存储分支的tarball或者zip文件时就会用到它)。GitHub之前的存档下载服务器采用Ruby编写。在旧系统中,下载存档的请求会创建一个Resque任务。该任务实际上在存档服务器上运行一个git archive命令,从某个文件服务器中取出数据。然后,初始的请求分配给你一个小型Ruby Sinatra应用等待该任务。它其实只是在检查memcache flag是否存在,然后再重定向到最终的下载地址上。旧系统运行大约3个Sinatra实例和3个Resque worker。GitHub的开发人员觉得这是Node应用的好机会。Node基于事件驱动,相比Ruby的阻塞模型,Node能够更好地处理git存档。在编写新下载服务器过程中,开发人员觉得Node非常适合该功能,此外,他们还里利用了Node库socket.io来监控下载状态。 不仅在国外,Node的优点也同样吸引了国内开发人员的注意,淘宝就实际应用了Node技术: MyFOX 是一个数据处理中间件,负责从一个MySQL集群中提取数据、计算并输出统计结果。用户提交一段SQL语句,MyFOX根据该SQL命令的语义,生成各个数据库分片所需要执行的查询语句,并发送至各个分片,再将结果进行汇总和计算。 MyFOX的特点是CPU密集,无文件IO,并只处理只读数据。起初MyFOX使用PHP编写,但遇到许多问题。例如PHP是单线程的,MySQL又需要阻塞查询,因此很难并发请求数据,后来的解决方案是使用nginx和dirzzle,并基于HTTP协议实现接口,并通过curl_multi_get命 令进行请求。不过MyFOX项目组最终还是决定使用Node.js来实现MyFOX。 选择Node.js有许多方面的原因,比如考虑了兴趣及社区发展,同时也希望可以提高并发能力,榨干CPU。例如,频繁地打开和关闭连接会让大量端口处于等待状态,当并发数量上去之后,时常会因为端口不够用(处于TIME_WAIT状态)而导致连接失败。之前往往是通过修改系统设置来减少等待时间以绕开这个错误,然而使用连接池便可以很好地解决这个问题。此外,以前MyFOX会在某些缓存失效的情况下出现十分密集的访问压力,使用 Node.js便可以共享查询状态,让某些请求“等待片刻”,以便系统重新填充缓存内容

Chrome28中已经替换为Blink引擎

Google 宣布将在未来的 Google Chrome/Chromium 中使用基于 WebKit 的 fork Web 渲染引擎:Blink。同时 Opera 表示也将跟进 Google Chrome/Chromium 的步伐。  Google Chrome/Chromium 从创始至今一直使用 WebKit(WebCore) 作为 HTML/CSS 渲染引擎。WebKit 早先由 Apple 由 KHTML 项目 fork 出来,用于 Safari 浏览器的 Web 引擎。由于宽松的协议、轻量级的设计和便捷的应用程序内嵌 API,WebKit 逐渐变得流行起来,除了 Google Chrome/Chromium 和 Safari,它在移动终端( Symbian S60,Android,iOS)到 Toolkit 集成(GTK+, Qt4) 都有不错的收获。  尽管上面一众经常被统称为 WebKit,实际上各自都使用了自己的 WebKit 分支或者编译时选项,使得最终的渲染结果也是存在一定的差异的。不过大体上 WebKit 社区内部还是比较和谐的,各个成员之间也为维持兼容性作出了努力,直到 2010 年随着 OS X Lion 一起面世的… Read More »

教育部2013年发布的法国认可的学校名单

这个是教育部2013年2月发布的教育部认证的所有法国学校名单,也就是说这些学校都可以通过学位认证的。有官方的中文翻译,希望对大家选择学校,以防被骗有帮助。 一、基本情况 传统上,法国的大学和学院教育分三个阶段,每个阶段结束,成绩合格,都能得到国家授予的文凭。 第一阶段为大学第一、第二年。合格的学生获得的文凭(DEUG或DEUST) 相当于在国内获得两年制大学专科毕业证书。第二阶段为大学第三、第四年。第三年学习结束后,学生获LICENCE文凭(中文译为学士),第四年学习结束后,获MAITRISE文凭。第三阶段分两种情况:第一种情况,是获得侧重于职业生涯的高等专业学习文凭(DESS),学制一年。第二种情况,是学习结束后可获学习文凭(DEA),完成博士论文后,即可获得博士文凭(DOCTORAT)。 法国高等教育机构除各大学(均为公立)之外,还存在许多高等工程或商业学院,被称为“大学校”(GRANDES ECOLES)。进入此类院校攻读工程师文凭或高等商校文凭课程,除必须已取得中学毕业证书(BAC)外,还须通过严格的考试和预科学习。 在法国,旨在建立欧洲高等教育一体化的“波罗尼亚进程”被称作LMD(取法文单词学士、硕士和博士的第一个字母)改革。在这一框架下,大学学制被简化为学士3年、硕士2年、博士3年,而得到学士、硕士和博士学位所需的总年限则变成3年、5年和8年。这一改革已经在大学全面展开。但传统文凭并未被全部废止。 二、名单 一、公立大学 (共87所,含部分高等专业学校以及具有大学地位的三所综合理工学院) 序号 法文校名 中文校名 1 Université de Aix-Marseille 1 Provence 艾克斯-马赛第一大学 2 Université de Aix-Marseille 2 Méditerranée 艾克斯-马赛第二大学 3 Université de Aix-Marseille 3 Paul Cézanne 艾克斯-马赛第三大学 4 Université d’Amiens Picardie-Jules Verne 亚眠大学 5 Université d’Angers 昂热大学 6… Read More »