AI前线导读: 本文是GitHub2018年Octoverse报告——GitHub活动的趋势和洞见,开源社区和GitHub数据科学团队等系列文章的一部分。
仅在2018年,GitHub新用户数量就超过了前六年的总和,托管着超过1亿个存储库。所有这些增长都要归功于开源社区。2018年,拥有不同开发经验水平的你们在这里共同构建、合作从兴趣爱好到专业工具的项目,涉猎范围广泛。随着这一年即将结束,我们希望2018年的Octoverse报告能够重点展示一些今年最活跃的新开源项目。
更多干货内容请关注微信公众号“AI前线”(ID:ai-front)
我们从2017年12月10日到2018年12月9日提取的数据来回顾一下今年的新开源项目。2018年顶级开源项目的评选标准分别是开源前28天收到star数最多,以及项目开源前28天贡献者数量最多的项目。
2018年开源的顶级项目涵盖了从学习、代码到专业工具的各个领域,从娱乐辅助项目到用于完成工作的项目应有尽有。
对于那些刚接触代码或者编程语言的新手,你可能star了不少编码示例项目,例如trekhleb / javascript-algorithms 和leonardomso / 33-js-concepts, 以及快速教程,如30-seconds/30-seconds-of-code。
你还为Hacktoberfest的项目做出了贡献,比如将各种语言的Hello World程序添加到Hacktoberfest-2018 / Hello-world和Omkar-Ajnadkar / Hello-World,或将更复杂的算法示例添加到VAR解决方案/算法(https://github.com/VAR-solutions/Algorithms)。
像wangshub / wechat_jump_game这样的游戏项目为你带来很多乐趣,你为之贡献star数,或为这个项目贡献了代码,也许kelseyhightower / nocode 这样的项目也让你开怀大笑。 felixrieseberg / windows95和Microsoft / MS-DOS引发了一些怀旧情绪,迅速收获了你的star和贡献。
新的开源项目还帮助你在TypeScript开发中使用denoland / deno等工具完成工作,ValveSoftware / Proton帮你将游戏迁移到Linux,facebookresearch / Detectron 可以支持图像识别算法的研究。
AI前线对以上10个顶级开源项目的资料做了进一步挖掘,并选了几个对于开发者极具价值或特别有意思的项目重点介绍如下。
本仓库包含了多种基于 JavaScript 的算法与数据结构。 每种算法和数据结构都有自己的 README,包含相关说明和链接,以便进一步阅读(还有 YouTube 视频) 。所有数据结构和算法被分为面向初学者和进阶者两类,其中数据结构涵盖链表、队列、栈、哈希表、堆、树、图等,算法则分为数学、集合、字符串、搜索、排序、链表、树、图、加密等内容,对于想要入门算法和数据结构且惯用JS的开发者来说,是一个非常友好的开源项目。更棒的是,这个开源项目的README文档还支持简体中文、繁体中文、韩语、日语等8种语言,中国开发者也可以轻松上手。
这个项目罗列出了JavaScript开发者应懂的33个概念,旨在帮助开发人员掌握JavaScript中比较重要的基础和进阶概念。这并不是必备,但在未来学习(JavaScript)时,可以作为一篇指南。这个项目是基于Stephen Curtis撰写的文章创建的,你可以在这里阅读这篇文章。
这个项目同样有一个对应的中文版本,作者stephentian在其中附上了关于这些概念在国内的一些文章和视频。
30秒学会编程:本仓库是精选JavaScript代码段的集合,这些代码段都是开发者可以在30秒或更短的时间内理解的。
举个例子,dayOfYear代码段用于从Date对象获取一年中的某一天。
const dayOfYear = date =\u0026gt; Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
通过new Date()和Date.prototype.getFullYear()可以将一年中的第一天获取为一个Date对象,然后用输入的
data
减去这个值并除以每天的毫秒数就能算出输入的日期是一年中的第几天。使用Math.floor()可以将生成的日期计数适当地舍入为整数。
“Hello Word”大概是所有人学习一种新编程语言时会编写的第一段代码了,而这个代码库的目标是涵盖所有编程语言中的“Hello World”程序。
数据结构和算法:使用不同语言编写的算法结构部署示例。
中国开发者贡献的“教你用 Python 来玩微信跳一跳”。
2017 年 12 月 28 日下午,微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」。这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。分数越高,那么在好友排行榜更加靠前。通过 Python 脚本自动运行,让你轻松霸榜。
其原理是利用图像识别精确测量出起始和目标点之间测距离,再估计按压的时间来实现精确跳跃。
获取源码
- git clone https://github.com/wangshub/wechat_jump_game.git
一个搞笑的莫须有“项目”:没有代码:没有代码是写出最安全可靠应用程序的最佳方法;什么也不写,不在任何地方应用。
MS-DOS v1.25和v2.0源代码:此repo包含MS-DOS v1.25和MS-DOS v2.0的原始源代码和已编译的二进制文件。
这些文件与2014年3月25日在计算机历史博物馆展示的是同一份文件,在此再次发布是为了方便人们查询,写作参考和用于作品中,对早期PC系统感兴趣的人可以用它进行探索和实验。
Deno是由Node 之父 Ryan Dahl 发布新的开源项目,使用 Go 语言代替 C++ 重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时,支持TypeScript开箱即用,有人将它视为下一代Node。
了解更多信息,可以参阅InfoQ之前的报道《Node之父ry发布新项目deno:下一代Node》。
Proton是一个与Steam客户端一起使用的工具,允许Windows游戏在Linux操作系统上运行。它通过Wine来实现这一点。
大多数用户更愿意使用Steam客户端的Proton,高级用户可以使用源代码更改Proton。例如,一些用户可能希望使用具有特定title的不同版本的Wine。
Detectron是Facebook AI Research开源的软件系统,实现了最先进的物体检测算法,包括Mask R-CNN。它是用Python编写的,由Caffe2深度学习框架提供支持。
在FAIR,Detectron已经应用于许多研究项目,包括:用于物体检测的特征金字塔网络,MASK R-CNN,检测和识别人体——目标相互作用,密集物体检测的焦点损失,非局部神经网络,学习分割所有目标,数据蒸馏:走向全方位监督学习,DensePose:室外密集人体姿态估计和群体规范化。
根据2018年在GitHub上开源前28天累积的star总数,我们评选出2018年开源十大项目。
根据2018年12月之前,在GitHub上开源前28天内项目贡献者的总数,我们评选出十大开源项目。
与2017年相比,2018年创建的开源项目数量增幅最大的是非编程语言类别。例如,下列排名第三的dotnet说明,为Windows开发应用程序的开源项目越来越多。在我们的编程语言编程语言TOP10一文中, JavaScript当选为新项目中最流行的编程语言。在2018年的Top主题中,我们还看到nodejs、react和vue这些用于JavaScript开发的工具。机器学习也在GitHub上越来越受欢迎,标记了机器学习的开源项目也在榜单之列。
nodejs
react
dotnet
docker
android
machine-learning
api
ios
cli
vue
原文链接:
https://blog.github.com/2018-12-13-new-open-source-projects/