本周开源周报流行开源项目榜中榜前十名项目就有意思了:先说说 English-level-up-tips-for-Chinese 吧,如果你的女神编程遇到了问题(不要较真,女神真的有可能也要编程的...,编程女孩也有很多女神...),你会视之无睹吗?如果女神的问题你恰好不会,你打算怎么办?以小编的惨痛经验来看,当然是自己赶紧学会了,禽兽...不对,亲手,手把手教会她啊!那这个 English-level-up-tips-for-Chinese 大概就是这么来的,女神要考托福了,求助于程序员朋友,故事就是从这里开始了...不要羡慕,赶紧学习吧,这个项目可能是让计算机从业人员受益匪浅的英语进阶指南,绝对让你受益匪浅,而且...顺带说一句,女神最后也跟他在一起了!

这里提醒各位程序员朋友,必须要有时间陪女神,急女神之所急,解女神之所需,程序员的温柔,是为了你周末双休,加薪诱我也不回头,少加班,多恋爱!

除了英语学习项目,其他一些项目也非常值得关注,像是一个后端用 Rust 编写的现代文本编辑器 xi (貌似名字有点不和谐?),代码错误检查器 Glow,收集 Python 中令人惊讶的片段和鲜为人知的功能帮助python程序员增进技术的 wtfpython,根据内容感知图像并进行调整的 Go 语言库 Caire,JS库callbag-basics,Git 存储库应用 GRV,NES 模拟器的 JS 库 jsnes ,Greenlet,高级Python Web框架 Django,针对人工智能学习系统TensorFlow准备的各种学习模型的库 models 等等等等,可以说非常精彩了,说了这么多,快看看本周开源周报吧。

本周流行开源项目榜中榜开源趋势 Top 10

0.xi-editor

一个后端用Rust编写的现代文本编辑器

设计思路:

1、分离成前端和后端模块:前端负责呈现用户界面并绘制一个充满文字的屏幕。后端(也称为“核心”)保存文件缓冲区,并负责所有可能的高价值的编辑操作。

2、原生UI:跨平台的UI工具包永远不会让人感觉是正确的。构建UI的最佳技术是平台的本地框架。在Mac上,就是 Cocoa

3、Rust:后端需要非常高效。特别是,它应该比正在编辑的缓冲区使用更多的内存。在C ++中这种性能水平符合要求,但Rust提供了一个更可靠的,在许多方面更高层次的编程平台。

4、一个持续的rope数据结构:即使对于非常大的文件,持续rope也是有效的。另外,它们为客户提供了一个简单的界面 - 从概念上讲,它们就像字符串一样是一串字符,客户端不需要知道任何内部结构。

5、异步操作:编辑不应该阻止和阻止用户完成他们的工作。例如,自动保存将生成一个线程,其中包含当前编辑器缓冲区的快照(永久性rope数据结构是写入时拷贝),然后可以在闲置时将其写入磁盘,同时缓冲区仍然是完全可编辑的。

6、插件依靠脚本:大多数文本编辑器都有相关的脚本语言来扩展功能。然而,这些语言通常比“真实”的语言更加神秘而且不那么强大。xi编辑器将通过管道与插件进行通信,让它们以任何语言编写,并使其与其他系统(如版本控制,深层静态代码分析程序等)更容易集成。

1.English-level-up-tips-for-Chinese

可能是让计算机从业人员受益匪浅的英语进阶指南

这个想法是作者在回答备考托福的女神的问题时产生的,他觉得学习英语应该是一件自然而然的事情,就像汉语一样;而不是一条路走到黑。所以他写了这份指南来提供一些学习英语的技巧。顺带一提他已经跟女神在一起了。

这是一份教你学习英语的技巧的指南,但是实际上有些东西可以应用在整个学习生活中而不是单单用于学习英语。比如说“享受你所学的东西”。

现在已经完成的篇目有认知篇,单词篇,听力篇,阅读篇,口语篇和扯淡篇。

2.Glow

Glow是一款代码错误检查器,能够明显地标记出代码中的错误。

基于Flow对JavaScript代码的检查,Glow能让Flow检查出的错误有明显的标记。

同时,Glow还有以下特点:

1.更好的打印,代码突出显示类型的错误;

2.有交互式的watch模式;

3.通过使用球体的错误进行过滤

3.wtfpython

Python是一个精心设计的基于高级和基于解释器的编程语言,为程序员的舒适度提供了许多功能。但有时候,一个Python代码片段的结果对于普通用户来说似乎并不那么显而易见。

wtfpython是一个用于收集python中令人惊讶的片段和鲜为人知的功能的项目,或者说一本书——非常生动且有趣——帮助python程序员增进技术。

4.Caire

Caire是基于Go语言的项目。它是一个基于《 Seam Carving for Content-Aware Image Resizing》论文的根据内容感知图像并进行调整的库。

它大概的工作原理是先根据提供的图像生成能量图,然后运用库内算法根据能量图中的能量最低值找出图像中最不重要的部分,再使用动态编程的方法从上到下或从左到右给图像生成接缝,并且按照能量值为每个接缝分配自定义值。之后对图像进行从第二行开始进行遍历,遍历过程中计算起最小能量级别,从最后一行开始,从能量矩阵中找到成本最低的接缝并将其除去。完成后重复上述过程。

示例:

原始图片:

能量图:

接缝:

Caire可以在人脸检测上具有很大的应用前景。

5.callbag-basics

callbag-basics是基于JS中callbag标准的库,支持响应式编程与迭代,具有速度快,可拓展性强等特点。

编程样例:

callbag标准介绍:https://github.com/callbag/callbag

6.GRV-Git Repository Viewer

GRV是一个用于查看git存储库的应用。通过这个应用你可以查看,搜索和过滤项目目录,提交和变动。

特点:

1,提交和目录可以使用查询功能进行过滤。

2,如果文件有了改动,UI自动刷新到更改后的内容。

3,可以自定义选项卡,主题以及视图。

7.jsnes

一款NES 模拟器的js 库,在浏览器上,你便可以重新体验童年的乐趣,具体使用请参考官方文档,另外,官方给出了一个实例网页:

https://jsnes.fir.sh/

在这个网页上,你可以游玩它给出的所有游戏。

运行塞尔达传说:

8.Greenlet

虽然名字不咋滴,但Greenlet可以从npm上获得。

Greenlet可以把一个异步的功能移动到它自己的线程中,是一个简化的workerize(在传输过程中自动把模块卸下放进Web Workers(运行在后台的 JavaScript))的单功能版本。

因为它使用Web Workers,所以它只支持浏览器环境。如果你要在NodeJS(一个基于 Chrome V8 引擎的 JavaScript 运行环境)中使用,你的Web Workers必须先加载一个对应的polyfill,如使用像node-webworker一样的图书馆,使你的浏览器可以使用这个API。

优势:

当输入或输出小时Greenlet非常有效。

9.Django

Django是一个高级Python Web框架,鼓励快速开发和干净,实用的设计。

所有文档都在“ docs”目录中,并在https://docs.djangoproject.com/en/stable/上在线 。如果刚刚开始,建议你阅读文档:

  • 首先,阅读docs/intro/install.txt有关安装Django的说明。
  • 接下来,通过辅导,以便(工作docs/intro/tutorial01.txt, docs/intro/tutorial02.txt等等)。
  • 如果要设置实际的部署服务器,请阅读 docs/howto/deployment/index.txt说明。
  • 你可能要仔细阅读下面的热门指南(in docs/topics)从那里你可以跳转到HOWTO(in docs/howto)来查找具体的问题,并查看引用(docs/ref)了解更多细节。
  • 请参阅docs/README有关构建文档的HTML版本的说明

运行Django的测试套件:

10.models

models是针对人工智能学习系统TensorFlow准备的各种学习模型的库。模型库分为四部分:官方模型,研究模型,样本文件,教程性文件。

官方模型即官方开发出来,已经较为成熟的模型,例如围棋高手Alphazero使用的的深度残差分析模型,它们更加稳定,高效,适用于初步尝试者。

研究模型是大量TensorFlow使用者自己撰写的各种模型,部分模型的使用要额外询问开发者。

样本文件中包含的代码片段和小模型被用于演示TensorFlow的特性,包括在不同的博客文章介绍的代码。

教程性文件是描述TensorFlow tutorials的教程。