编辑丨小智
本周要闻:
因一贯的“保密文化”传统,人工智能领域被指落后了的苹果公司,宣布允许AI研发人员公布研究成果;拥有数百万活跃用户的图片网站Pinterest决定转向通用JS和React;团队管理者如何与成员分享信息?
时下人工智能、深度学习非常火爆,但苹果公司一直不公开它在这方面的研究,以至于外界对苹果的印象是,在人工智能领域苹果公司落后了,它能拿得出手的,似乎只有语音助手Siri。
造成这一状况是因为苹果公司一贯有“保密文化”的传统,他们的开创性研究工作都是在秘密的情况下完成的。由于这个传统,使苹果公司很难从学术圈招到“千里马”。因为不在学术圈公开研究成功和分享信息,无法获得同行认可并取得进步。
但前几天(2016年12月5日)这一切都改变了。在西班牙NIPS 2016(巴塞罗那的神经信息处理系统会议)大会上,苹果AI研发部门负责人Russ Salakhutdinov宣布,苹果将会允许自己的AI研发人员公布自己的论文研究成果,并积极加入到AI学术圈的讨论当中。
而在此之前,苹果公司研究人员想对外分享自己的研究成果,是不可想象的。而这次,苹果打破了坚冰,改变了封闭式的研究方式,允许像Google母公司Alphabet和Facebook一样公开研究成果。
据分析,苹果此举是因为由于保密文化导致很难招到足够的研究学者,因为无法与同行沟通交流,他们不喜欢在封闭环境下进行研究。加之苹果出于“保护用户隐私”,对研究加以很多限制,导致苹果在人工智能领域研究进程有些落后。于是苹果被迫改变了一贯的做法。
NIPS 2016参会者@rsalakhu在Twitter张贴了Salakhutdinov的PPT的照片,PPT清晰地出现如下字眼:
-
我们可以发表吗?
-
是的。
-
我们可以与学术界打交道吗?
-
是的。
苹果公司10月份聘请了卡耐基梅隆大学机器学习部门的副教授Russ Salakhutdinov,成为苹果聘用的第一个AI学者。苹果此举意在与学术圈搞好关系。如今,我们看到了Russ Salakhutdinov给苹果带来的改变——开放了AI研究并加快深度学习。
本文作者:刘志勇
Pinterest转向通用JavaScript和React
在2015年,Pinterest决定转向React。但是对于一个有数百万活跃用户的站点来说,谈何容易。Pinterest转向React的故事本质上是Pinterest转向通用JavaScript的故事:
https://engineering.pinterest.com/blog/how-we-switched-our-template-rendering-engine-react
Pinterest的软件工程师Imad Elyafi写道,决定转向React的部分原因是React是“黄金标准”,有着“庞大的开发者社区”以及它“能极大地提升工程效率和质量”。React通常用在通用JavaScript场景下,在此服务器和浏览器使用同一类模板。
Pinterest的服务器端引擎是Django,它使用Jinja模板引擎。然而,Pinterest的客户端的JavaScript使用Nunjucks,它的灵感来源于Jinja,也与之相似。这导致了代码的重复,一份Python版和一份JavaScript版。但是他们无法抛弃一切而转向React,Pinterest的软件工程师Jessica Chan说道。
我们需要一个方案,能让我们在不打断产品组工作和影响用户体验的情况下,迭代地转换数以百计的Pinterest构件。第一步就是要将客户端和服务器端统一到单一的模板渲染引擎,然后再将引擎替换掉。如果服务器能解释JavaScript,使用Nunjucks渲染模板以及共享客户端代码,我们就能进行迭代迁移到React。
在触及React之前,该团队重新设计了服务器渲染引擎的架构以使用现成的Nunjucks模板。Jessica Chan说,他们没有在Django的内部渲染Jinja模板,而是创建了一个进程使用Node来渲染模板。“最终,我们在Nginx代理层后使用常驻的Node进程,将接口架构设计为每一个网络请求都是无状态的渲染过程。我们因此能将请求分发到这些进程组,并在需要的时候扩展进程数。”
一旦该系统上线,他们就能慢慢转向基于React的组件渲染模式。Elyafi说只要可能他们都扩展Nunjucks模板语言来渲染React。
{% if in_react %}
{{ component('MyReactComponent', {pinId: '123'}) }}
{% else %}
{{ module('MyDenzelComponent', pinId='123') }}
{% endif %}
component关键字告诉模板引擎应该使用基于React的组件,而不是基于Nunjucks的。Pinterest转向React的努力还在继续。
本文翻译已获授权,原文链接:
https://www.infoq.com/news/2016/11/pinterest-react-javascript
本文译者:王纯超
Mike McGarr是Netflix的一名开发经理,在他的一篇博文里,Mike跟我们分享了作为一个团队管理者,他是如何与团队成员分享信息的。
作为一名开发经理,Mike大部分时间都花在了会议以及与团队成员的一对一谈话上。通过这些会议和谈话,他可以从组员那里收集到很多有用的信息。对于几个人的团队,这种方式还能应付得过来。
但随着团队规模的扩大,这种方式的效率越来越低。开会的主要目的是分享上从上周收集到的各种信息。但Mike很快意识到,把整个团队的成员集中在一起,听他一个人分享这些信息并不是很高效的做法。于是他向Netflix的另一个开发经理Andy Glover说明自己的苦恼。Andy向Mike分享了他使用周报(Week-in-Review)来分享信息的做法。
周报是对一周会议和各种谈话的总结,当然并不一定包括所有的会议跟谈话,只要把那些重要的部分包含进来就可以了。周报不一定要每周单独分开写,可以把周报放在一起,中间有明显的间隔,然后把最新的放在最上面。
每周五,Mike会花几个小时写周报,然后把它发给团队的每一个成员,这样每个人可以在下周一之前看到周报。
周报一般分为四个部分:
之所以用周报代替每周的例会,是因为Mike认为太多的会议会浪费时间。如果开会是为了在团队间展开讨论,那么会议才会变得有价值。但如果只是为了单向地分享信息,那么就要想想有没有其它更好的办法了。因为每个人都有自己的时间安排,他们的最佳工作状态时间段也不一样。如果为了听一个人分享信息而破坏了他们的时间安排,可能会得不偿失。做过工程师的人心里都清楚这点。