专栏名称: InfoQ
有内容的技术社区媒体。
目录
相关文章推荐
新浪科技  ·  【余承东:#华为Mate70定档11月#】今 ... ·  4 天前  
51好读  ›  专栏  ›  InfoQ

Q新闻丨Node.js v7 Beta版发布;YouTube推荐算法原理;GitHub增加了...

InfoQ  · 公众号  · 科技媒体  · 2016-10-01 09:04

正文

Node.js v7 Beta版发布,引入citgm

Node.js基金会发布了Node.js v7 Beta版。该版本的发布恰逢v6成为该基金会的第二个LTS版本。在2019年4月份之前,v6版本将可以一直得到积极的技术支持和维护。

Node.js技术指导委员会主席Rod Vagg告诉InfoQ:

v7的重点是确保生态系统中的模块可以和Node Core保持一致。Node.js Core技术指导委员会已经确定出了该生态系统最依赖的其中68个Node.js模块,并使用了一种名为“金矿中的金丝雀(citgm)”的技术,以确保Node.js版本升级时,模块不会损坏。

Citgm是一个冒烟测试工具,可以自动运行针对Node.js生态系统中各模块的单元测试。它令人难以置信的有效,可以找出生态系统和Node Core本身存在的各种各样的回归缺陷。

Vagg将模块描述为Node.js生态系统的“根本”,并将其归因于近年技术发展的步伐,因为Node.js生态系统在发展最快的生态系统中是最大的,它有超过32万个npm模块。

Node.js v6.6有一些显著的变化,其中包括一个重新添加crypto.timingSafeEqual的提交,让“事件监听器达到最大值”的内存泄漏警告更易用,以及未处理拒绝现在会在第一次标记后发出一个处理警告。

在宣布面向所有已发布的活跃版本的安全更新后,该基金会发布了影响Node.js的漏洞列表,其中包括CVE-2016-2183:SWEET32 Mitigation。

据Vagg介绍,“SWEET32是一个新的针对较老的块加密算法的攻击。那些算法使用了64位的块大小。OpenSSL已经将基于DES的加密算法从HIGH迁移到MEDIUM类。由于Node.js在其默认套件中包含了HIGH,而不是MEDIUM,所以,如果使用默认套件,就不会包含受影响的加密算法。”虽然这个漏洞并不是很严重,但它影响了Node.js的所有版本。

CVE-2016-6304(OCSP状态请求扩展导致内存无限增长)也影响了Node.js的所有版本,它被认为是一个严重的缺陷。该漏洞允许恶意客户端在单个会话中发送很大的OCSP请求扩展,耗尽服务器的内存,导致DoS。使用TLS的Node.js服务器容易受到攻击。

从2016年6月开始,Node.js v5进入维护模式。两个月之后,它走到了生命周期的尽头。9月份,随着v7的发布,v6成为Node.js的第二个LTS版本。

  • 本部分翻译已获授权,原文链接:

  • https://www.infoq.com/news/2016/09/nodejs-v7

  • 本部分译者:谢丽

YouTube推荐算法原理

近日,在谷歌刊登的一篇论文中,YouTube工程师详细地分析了YouTube推荐算法的内部工作原理。该论文在上周于波士顿举行的第十次ACM大会上进行了展示。

YouTube推荐算法以Google Brain为基础,后者最近以TensorFlow的名称开源。借助TensorFlow,开发人员可以使用分布式训练试验不同的深度神经网络结构。

该系统包含两个神经网络。第一个生成候选集。它以用户的观看历史作为输入,使用协同过滤算法在数以百计的视频中进行选择。开发和最终部署到生产环境有一个重要的区别,谷歌使用离线指标衡量算法性能,但最终的决定来自对性能最好的算法进行在线A/B测试。

候选集生成使用用户观看视频的隐式反馈来训练模型。与隐式反馈相比,对于一个视频,类似支持或不支持这样的显式反馈一般很少。对于那些不受欢迎的长尾内容而言,这个问题更为严重。对于新上传的视频,为了加快模型训练速度,每个训练示例的年龄会作为一个特征传入。

发现和展示新内容的另一个关键方面是使用所有用户观看过的YouTube视频(甚至是合作网站的)来训练算法。这样,协同过滤算法可以立刻识别出热门视频。最后,除了实际的观看外,通过增加更多的特征,如搜索深度和视频年龄,YouTube改善了离线holdout结果精度。

第二个神经网络用于对这几百个视频进行排序。这个问题比生成候选集简单许多,因为视频的数量较少,而且,对于每个视频及其和用户的关系,有更多的信息可用。该系统使用逻辑回归计算每个视频的得分,然后不断地使用A/B测试进行改进。

这里使用的指标是预期观看时长,因为预期点击数会助长“点击诱饵(clickbait)”。为了基于观看时长而不是点击率进行训练,该系统使用了逻辑回归的一个变种,以观看时长作为正相互作用权重,而负相互作用采用单位权。这之所以可行,部分原因是,“正面印象(positive impressions)”分量比总数小。

YouTube的推荐系统是业内最为复杂、使用最为频繁的系统之一。这篇论文只提供了一个肤浅的介绍,但即便如此,它也在深度学习系统设计方面提供了一些有用的见解。

  • 本部分翻译已获授权,原文链接:

  • https://www.infoq.com/news/2016/09/How-YouTube-Recommendation-Works

  • 本部分译者:谢丽

关于YouTube推荐算法原理的论文,你可以参考:

http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf

GitHub增加了代码审查、项目管理等新功能

在旧金山举行的GitHub Universe大会上,GitHub联合创始人兼CEO ChrisWansrath宣布他们发布了一些新工具和功能,希望能在正式的代码审核和类似Kanban的项目管理方面可以改进大家的合作方式。另外,GitHub还给出了一个发布公共平台的路线图以便大家可以更容易把项目与GitHub平台结合起来,并定义了正式流程来获取反馈、发布更新。

代码审查

GitHub一直以来都以非正式的方式支持代码审查,方法是在Pull Request中夹带针对指定代码行的注释。现在GitHub审查功能让你可以在Pull Request中正式要求对方做修改,或者同意对方提交代码。

审查可以被用作一种更加复杂的通信机制,管理员也可以强制要求:必须所有审查中提出的问题都得到了解决之后,一个Pull Request的改动才能被合并上去。Wanstrath说,还有很多和代码审查相关的改动还正在开发中:

现在的这些改进只是第一步而已,我们有更大的路线图,目标是更快、更友好的代码审查。我们还在开发着好几个后续改进功能,包括可以请求你的伙伴来审查你的代码。

可以查看官方文档来了解更多关于GitHub代码审查的功能:

  • https://help.github.com/articles/about-pull-request-reviews

项目管理

项目管理功能提供了类似Kanban的控制面板来管理代码仓库。大家可以为Pull Request、问题或想法等创建卡片,并把它们放到相应的自己定制的列中(比如待办、进行中、已完成等)以展现进度的状态。可以把卡片从一个列拖到另一个列表示它状态的改变,或者在一个列内上下拖动以改变它的优先级。改进的平台集成功能

Wanstrath还宣布了关于使构建第三方工具更容易,方便大家与GitHub进行合作的工作,包括:

  • 公开的平台路线图,大家可以了解有哪些新功能将被发布

  • 获取反馈并发布更新的正式流程

  • 一个新的“抢先体验”和“预发布”流程,大家可以籍此试用新功能和API。“GitHub GraphQL API Early Access”就是一个这样的例子,开发者可以提前接触到所有他们需要的数据

  • GitHub平台论坛可以为集成商和GitHub工程师们提供一个直接沟通的渠道

最后,GitHub还准备为企业用户提供几项新功能,比如增强的双重认证、改进的基于SAML的单次登陆权限管理等。

  • 本部分翻译已获授权,原文链接:

  • https://www.infoq.com/news/2016/09/github-universe-announcement

  • 本部分译者:足下

延展阅读(点击标题):


阔气的马云爸爸又要送钱了,这次收益的是广大开发者。活动期间,凡注册成为高德开发者的新用户,即可获赠1张阿里云优惠券,可享受最低6折购买阿里云产品。数量有限,发完即止。点击“阅读原文”查看活动详情



喜欢我们的会点赞,爱我们的会分享!