当前位置: 首页 > 编程日记 > 正文

170个新项目,579个活跃代码仓库,Facebook开源年度回顾

作者 | Dmitry Vinnik

译者 | 泓礼

编辑 | 夕颜

出品 | AI科技大本营(ID:rgznai100)

【导读】过去一年对于Facebook的开源工程师来说是繁忙的一年。在2019年,Facebook发布了170个新的开源项目,活跃代码仓库产品达到了579个。本文中,Facebook对2019年的开源情况做了总结,快来看一下你有没有从中获益的吧!

在这些项目中,Facebook内部的工程师做出了非常重要的贡献,今年有超过82,000次提交,但是这也离不开外界贡献者的大力支持,大约2,500名外界贡献者提交了超过32000个更改。除了这些贡献之外,今年有将近93,000名新人加入了我们的项目,促成所有开源项目中最重要的组成部分——社区!没有您的贡献,Facebook Open Source就不会在这里,因此我们要感谢所有在2019年参与的开发者。

基金会和合伙人

我们还继续朝着协作和支持开源项目的目标努力。我们在2019年努力实现这一目标的方式之一是通过基金会和对各自社区充满热情的组织建立合伙人关系。

在2018年,我们与Linux基金会合作宣布了我们打算成立一个支持GraphQL的基金会的意向。一年后,GraphQL基金会蓬勃发展,并且不断增加新成员,社区不断扩大。该基金会恪守最初的扩大受众的目标,并在最近启动了免费课程来介绍如何使用GraphQL构建Web API。

Facebook的另一个开源项目Presto,也成为Linux基金会主持下的子基金会。在新成立的Presto基金会中,社区承担着大规模分布式数据处理的任务,同时保持中立的治理模型,以更好地实现社区中的协作和多样性。

PyTorch

PyTorch是Facebook开发的开源深度学习平台,在2019年被广泛的采用,并且它的生态系统正不断扩展。在我们的年度PyTorch开发者大会上,我们宣布了该平台的重大更新,例如PyTorch Mobile的发布。这个新平台在充分考虑性能和优化的情况下,允许将PyTorch模型的端到端工作流部署在移动设备上。

除了平台本身之外,PyTorch生态系统今年还吸引了许多新项目。这些PyTorch工具包新增功能的主要思想是允许用户专注于手头的任务,同时抽象出诸如处理安全性或隐私等复杂操作。其中一个项目是CrypTen,这是一个用于保护隐私的机器学习框架。在使用此框架时,机器学习研究人员可以使用熟悉的PyTorch API来执行复杂的加密操作。今年的另一项新增功能是Captum,一个可解释和可理解的模型库。通过此项目,研究人员可以获得更多关于为什么他们的模型以这种方式工作的信息,并且能够更好地向其他人解释其模型的结果。

尽管生态系统的目标是为研究者的成功提供所有必要的工具,但我们也理解在浏览平台时无缝体验的重要性。这就是为什么我们在PyTorch教程中添加了对Google Colaboratory(免费的Jupyter笔记本环境)的支持。可以在浏览器中测试脚本的能力使我们的平台更受想要尝试的初学者和寻找特定技巧来解决问题的高级从业人员的欢迎。

手机和网络

React和React Native仍然非常活跃,并继续引领我们的Web和移动开源产品。两者都在我们的F8技术讲座、课堂以及我们的podcast和The Diff进行了展示。

随着移动应用程序变得越来越复杂,我们越来越专注于改善便携式设备开发人员的体验。在2019年中,我们发布了Hermes,这是一个针对移动应用优化的开源JavaScript引擎。通过这个项目,我们的用户,特别是React Native开发人员,即使在内存不足和存储速度慢的约束下也能够显着提高应用程序性能。

我们改善移动开发的努力不仅限于开发本身,还包括连接性和移动网络。今年年初,我们推出了开源的Magma,这是一个帮助运营商及时部署移动网络的平台。该项目提供了用于自动化移动网络管理的必要工具,例如元素配置和软件更新。

Hydra

在2019年末,我们发布了Hydra,该框架通过允许开发人员通过编写和覆盖配置来简化Python应用程序的开发。借助Hydra,开发人员可以通过更改配置文件来更改产品的行为方式,而不是通过更改代码来适应新的用例。

区块链

去年我们通过我们的子公司Calibra与Libra协会在区块链的前沿展开工作,对此我们感到特别兴奋。我们于2019年6月首次宣布 Calibra加入天秤座协会。该协会正在应对一项极其复杂的挑战:推出一种高质量的加密货币交易媒介。在未来的几年里,这将是一项激动人心的工作。

总体而言,对于开放源代码来说,这是出色的一年,我们发布了许多新项目,现有社区的增长速度超出了我们的预期。我们希望以与开始时相同的方式结束本帖子--感谢所有内部的和外界的贡献者,使用我们的开源工具和框架的人员以及回馈社区的人员。我们感谢您,并期待在未来的日子里与大家一起工作!

原文链接:

https://engineering.fb.com/open-source/open-source-2019/

(*本文为AI科技大本营翻译文章,转载请微信联系1092722531)

精彩推荐

人工智能数学基础系列公开课通过人工智能热点问题开始,引出其中蕴涵的数学原理,然后构建解决实际问题的数学模型和方法,兼具趣味性与实用性。

1月16日晚8:00, 哈工大屈教授在线直播课---『看得见 』的数学,带大家解密计算机视觉背后的数学知识!

点击阅读原文,或扫描海报二维码免费报名

加入公开课福利群,每周还有精选学习资料、技术图书等福利发送、60+公开课免费学习

推荐阅读

  • 滴滴章文嵩:一个人的20年开源热情和国内互联网开源运动

  • 挑战NLP、量子计算难题,300多支本科生队伍同场角逐,2020 ASC超算竞赛一触即发

  • 微信付费阅读支付宝可用,iOS抽成30%;苹果安卓充电器或统一;UOS 20发布 | 极客头条

  • 如何实现自动化前端开发?

  • 斯坦福博士退学,在 3 个领域改变世界,科技狂人马斯克的巅峰之路

  • 我的第一个全栈 Web 应用程序

  • CPU 到底是怎么认识代码的?涨姿势了

  • 2019全年盘点之一:公链生死战场

  • BSV魔幻爆拉背后:CSW称拿到自证中本聪的关键证据

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

“怀才不遇”与“怀才不孕”怎么办?

今天在飞机上闲来无事,翻阅深航的随机杂志。一直以来,我乘的比较多的是南航和深航的杂志。南航的杂志基本上都是广告,没有一点可读性的内容。相反,不知道是不是深航的规模较小的原因,找不到合适的广告主吧,…

《评人工智能如何走向新阶段》后记(再续15)

由AI科技大本营下载自视觉中国170. 清华大学全球产业研究院和百度大学Alpha学院于2020年1月5日发表(人工智能)产业智能化白皮书讨论AI发展情况,应用TUMC模型,从技术和综合应用场景的角度,考察热点技术和场景的AI产业化…

Google Test(GTest)使用方法和源码解析——参数自动填充技术分析和应用

在我们设计测试用例时,我们需要考虑很多场景。每个场景都可能要细致地考虑到到各个参数的选择。比如我们希望使用函数IsPrime检测10000以内字的数字,难道我们要写一万行代码么?(转载请指明出于breaksoftware的csdn博客&#xff09…

Linux 指令篇:文件系统--fstab

Linux 指令篇:文件系统-----FSTAB指令:FSTAB使用权限 : 超级使用者 使用方式 : 使用编辑器来修改 /etc/fstab (eg. vi /etc/fstab) 说明 : 存放档案系统与目录结构对应资料的档案 fstab 栏位说明: 第一栏(fs_spec): 实际的 device…

跨平台抓包软件,可以替代Fiddler

2019独角兽企业重金招聘Python工程师标准>>> Zed Attack Proxy (ZAP) 是个强大的跨平台的抓包工具,可以用来替代windows下的Fiddler https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project https://github.com/zaproxy/zaproxy/wiki/Download…

集五福,我用Python

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项,还有更多福利赠送作者 | Crossin先生编辑 | Jane来源 | Crossin的编程教室(ID:crossincode)【导读】你的五福集齐了吗?作为一名技术人,我们是不是可以…

Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

写C难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试。其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其实现原理。(转载…

IT人才职场受宠

面对就业压力的日益增大,就业难,工资水平低等问题困扰着所有的大学生。然而,IT业的迅猛发展却造成了数以万计的网络设计、运行、维护的网络工程师需求的空缺,巨大的人才缺口使得IT业“全线告急”,这也促使更多的研究人…

引用头文件#include queue出错

为什么80%的码农都做不了架构师&#xff1f;>>> 在工程头文件中引用头文件 #include <queue> 莫名奇妙出错&#xff0c;其原因很可能是由于头文件引用问题。 include/c/4.7.1/bits/stl_vector.h:1308:40: error: expected unqualified-id before ‘(’ token…

ZOJ1002 Fire Net(非递归版)

以前用递归的回溯搜索思路做过一次&#xff0c;参见ZOJ1002 Fire Net(递归版)&#xff0c;今天想着用非递归的方法试试看&#xff0c;呵呵&#xff0c;比我想象中要难啊&#xff0c;主要还是堆栈里究竟放什么&#xff0c;这一点上思路一直没理清。因此用了整整一天的时间&#…

“数学不行,干啥也不行”骨灰级程序员:其实你们都是瞎努力

编程圈一直都流传着一个段子&#xff1a;一流程序员靠数学&#xff0c;二流程序员靠算法&#xff0c;末端程序员靠百度&#xff0c;低端看高端就是黑魔法。懂的人其实都知道&#xff0c;这不是段子&#xff0c;其实就是程序员的真实写照。想一想&#xff0c;我们日常学习、求职…

Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用

死亡测试是为了判断一段逻辑是否会导致进程退出而设计的。这种场景并不常见&#xff0c;但是GTest依然为我们设计了这个功能。我们先看下其应用实例。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 死亡测试技术应用 我们可以使用TEST声明并注册一个简单的测…

java学习笔记11--Annotation

java学习笔记11--Annotation Annotation&#xff1a;在JDK1.5之后增加的一个新特性&#xff0c;这种特性被称为元数据特性&#xff0c;在JDK1.5之后称为注释&#xff0c;即&#xff1a;使用注释的方式加入一些程序的信息。 java.lang.annotation Annotation接口是所有的Annotat…

GoogleLog(GLog)源码分析

GLog是Google开发的一套日志输出框架。由于其具有功能强大、方便使用等特性&#xff0c;它被众多开源项目使用。本文将通过分析其源码&#xff0c;解析Glog实现的过程。 该框架的源码在https://github.com/google/glog上可以获取到。本文将以目前最新的0.3.3版本源码为范例进行…

Ajax Toolkit 控件学习系列(13) ——FilteredTextBoxExtender 控制输入

这个控件的作用是对TextBox所要输入的内容进行过滤控制。按照自己需要过滤&#xff0c;可以自定义&#xff0c;再或者使用定义好的方式。看效果。效果不是很突出&#xff0c;说明下&#xff0c;就是只能输入大写字母和数字。因为加了限制&#xff0c;但是具体有什么高深的应用呢…

Uber最新开源Manifold,助力机器学习开发者的可视化与调试需求

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项&#xff0c;还有更多福利赠送作者 | Lezhi Li译者 | 凯隐编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导语】2019 年 1 月&#xff0c;Uber 推出了 Manifold&#xff0c;一款与模型无…

jQuery对象和DOM对象使用说明

1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象&#xff0c;哪些是 DOM对象&#xff0c;因此需要重点了解jQuery对象和DOM对象以及它们之间的关系.DOM对象&#xff0c;即是我们用传统的方法(javascript)获得的对象&#xff0c;jQuery对象即是用jQuery类库…

[WPF疑难]避免窗口最大化时遮盖任务栏

[WPF疑难]避免窗口最大化时遮盖任务栏 周银辉 WPF窗口最大化时有个很不好的现象是&#xff1a;如果窗口的WindowStyle被直接或间接地设置为None后&#xff08;比如很多情况下你会覆盖默认的窗体样式&#xff0c;即不采用Windows默认的边框和最大化最等按钮&#xff0c;来打造个…

Google Mock(Gmock)简单使用和源码分析——简单使用

初识Gmock是之前分析GTest源码时&#xff0c;它的源码和GTest源码在同一个代码仓库中&#xff08;https://github.com/google/googletest&#xff09;。本文我将以目前最新的Gmock1.7版本为范例&#xff0c;分析其实现原理。&#xff08;转载请指明出于breaksoftware的csdn博客…

浪潮刘军:为什么说计算力是AI时代“免费的午餐”?

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;产业AI、元脑生态是浪潮集团2019年度的两大关键词。作为一家以计算力为核心生产力的企业&#xff0c;浪潮还一直强调人工智能计算是未来最重要的计算力&#xff0c;而无论产业AI、元脑生态都构筑于计算的基础设施之上。…

Journey源码分析四:url路由

2019独角兽企业重金招聘Python工程师标准>>> 在入口函数main()的default分支中&#xff0c;对路由进行了注册&#xff0c;现在分析下。 ##main()中路由注册相关代码 源码: httpRouter : httptreemux.New() // Blog and pages as http server.InitializeBlog(httpRou…

“天河二号”总工程师杜云飞谈星光超算应用平台设计

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】12 月 21-22 日&#xff0c;OpenI/O 启智开发者大会在深圳召开。在大会上&#xff0c; 国家超级计算广州中心总工程师、“天河二号”总工程师杜云飞发表了题为《星光超算应用平台》的主题报告&…

Google Mock(Gmock)简单使用和源码分析——源码分析

源码分析 通过《Google Mock(Gmock)简单使用和源码分析——简单使用》中的例子&#xff0c;我们发现被mock的相关方法在mock类中已经被重新实现了&#xff0c;否则它们也不会按照我们的期待的行为执行。我们通过阅读源码&#xff0c;来分析整个过程的实现逻辑。&#xff08;转载…

远程控制软件VNC教程和对内网机器控制的实现

网络遥控技术是指由一部计算机&#xff08;主控端&#xff09;去控制另一部计算机&#xff08;被控端&#xff09;&#xff0c;而且当主控端在控制端时&#xff0c;就如同用户亲自坐在被控端前操作一样&#xff0c;可以执行被控端的应用程序&#xff0c;及使用被控端的系统资源…

GRUB2相关概念

GNU GRUB&#xff0c;简称“GRUB”&#xff0c;是一个来自GNU项目的启动引导程序。GRUB是多启动规范的实现&#xff0c;它允许用户可以在计算机内同时拥有多个操作系统&#xff0c;并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核&#xff0c…

朴素、Select、Poll和Epoll网络编程模型实现和分析——朴素模型

做Linux网络开发&#xff0c;一般绕不开标题中几种网络编程模型。网上已有很多写的不错的分析文章&#xff0c;它们的基本论点是差不多的。但是我觉得他们讲的还不够详细&#xff0c;在一些关键论点上缺乏数据支持。所以我决定好好研究这几个模型。&#xff08;转载请指明出于b…

支付宝账单出来后,除了总消费,你看到你的学习支出了吗?

当支付宝的2019年年度账单出来的时候很多人的第一反应就是我怎么花了这么多钱不少人都有这样的困惑忙忙碌碌一年到头&#xff0c;到底得到了什么&#xff1f;而这一切又和自己最开始的规划一样吗&#xff1f;其实从账单上可以看出你在2019年花费了哪些大头居家生活、穿衣打扮还…

体验Windows 7的Superbar

随着PDC 2008上Windows 7 M3 6801的发布&#xff0c;这个微软的下一代操作系统也渐渐浮出了水面。对于我们这些普通的PC用户而言&#xff0c;Windows 7相对于Windows Vista最显而易见的改变&#xff0c;无疑就是著名的Superbar任务栏了。说起它相比于原来的任务栏变化&#xff…

Linux 安装图形界面及远程连接

#可查询哪些组件是否已经安装(可用来对照组件名称&#xff09; yum grouplistyum groupinstall X Window System -y #安装GNOME桌面环境 yum groupinstall GNOME Desktop Environment -y #安装KDE桌面环境 yum groupinstall KDE (K Desktop Environment)卸载 卸载GNOME桌面环境…

朴素、Select、Poll和Epoll网络编程模型实现和分析——Select模型

在《朴素、Select、Poll和Epoll网络编程模型实现和分析——朴素模型》中我们分析了朴素模型的一个缺陷——一次只能处理一个连接。本文介绍的Select模型则可以解决这个问题。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 和朴素模型一样&#xff0c;我们首先…