写注释是一种艺术,更是一种情操.....没有了注释,仿佛麻辣香锅不放盐,冰淇淋没有糖....光看代码会少很多乐趣,当我们看代码的时候,最舒服的莫过于看到一个写得很好的注释了,看着工整亲切的注释,仿佛在跟那个代码的作者在聊天,让我们快速理解代码的同时,还能获得一种跨越时空的交流快感。

然而有的小伙伴不喜欢写注释甚至提倡不写注释,理由是:一眼就看得懂的代码不需要注释,代码就是最好的注释,代码艺术并不是注释艺术;二来认为别人看不懂的代码,写注释更是画蛇添足多此一举;然而,事实上随便在github上找些比较优质的项目,或者传统的优质开源项目(譬如 Linux,GNU),一般都会有不少注释,便己利人,有助于项目长期发展。

当然注释写的太烂可能会有反作用,另当别论,如果你希望你的小开源项目未来能方便更多的伙伴参与,并且在自己离开之后能不会倒闭...写注释就太重要了,这也是一个项目想要可持续发展、长期发展的很重要的一点,而且是编码之外的能力。小编总结为一句话:两情若是久长时,想要长久发展,那么代码一定要写注释的。


这周可算是知识的大集合了,各种各样的知识系项目纷纷上榜:算法和机器学习的笔记#Algorithm_Interview_Notes-Chinese#,深度学习资源库#Deep Learning World#,Docker 学习#docker_practise#和计算机科学(CS)学习笔记#CS-Notes#。然后还有一个新华字典的 API#chinese-xinhua#,分布式 bug 跟踪器#git-bug#,macOS 版微信小助手#WeChatPlugin-MacOS#,快速键值存储#FASTER#强化学习算法设计的研究框架#Dopamine#和无线网络监测工具#Trackerjacker#。


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

1.Algorithm_Interview_Notes-Chinese

2018/2019/校招/春招/秋招/自然语言处理( NLP )/深度学习( Deep Learning )/机器学习( Machine Learning )/C/C++/ Python /面试笔记

这是一个算法和机器学习方面的面试笔记,随着机器学习的不断发展,如果你想选一个和它相关的工作,亦或者是拿来提升自己在这方面的技能等级,就可以看看这些笔记。虽然面还有不少 TODO 正在补充中的部分,如果你刚好面试拿到了有点意思的问题,就顺手补充进去吧

 

2.Deep Learning World

这是一个为深度学习研究与开发人员所准备的资源库,目的是为开发人员和研究人员提供一个快捷方式,以便找到有关深度学习的有用资源。

其实现在不乏有这种类似的资源库,但这个存储库也有其存在的必要性,该存储库的重点是资源是目标。资源的组织使得用户可以容易地找到正在寻找的东西。这里将资源划分为很多类别,一开始可能会让人头疼!但是,如果知道自己所处的位置,则很容易找到最相关的资源。即使不知道该寻找什么,一开始也提供了基础的资源。所以,如果你在深度学习的这条路上,不妨来这里看看。

 

3.FASTER

轻松高效的管理大型应用程序的状态是当今云计算中最困难的问题之一。FASTER 由此而生,这是一种新的并发键值存储,专为点查找以及大量更新设计。通过快速的外部存储,能够支持比内存更大的数据。

 

FASTER 的与众不同之处在于其高性能的缓存优化索——当数据在内存中时,每秒可执行1.6亿次操作;它采用独特的“混合记录日志”,将传统的持久性日志和就地更新( in-place updates )相结合,以形成内存工作集并保持较高的性能;同时,其架构是可以嵌入到云应用程序的组件。FASTER 还提供了一种新的一致的恢复方案,以稍高的提交延迟为代价来实现更好的性能。

 

MoreInfo:https://www.microsoft.com/en-us/research/project/FASTER/

 

4.chinese-xinhua

这个项目提供了中华新华字典数据库和 API 。收录包括 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语。

部分数据库介绍:

5.git-bug

git-bug 是一个嵌入在 git 里的分布式 bug 跟踪器,它使用 git 的内部存储,使得使用者的项目中不会添加任何文件,而不必依赖某个地方的 web 服务来处理错误,也可以离线浏览和编辑错误报告。

这个项目的使用方法也很简单,就像大家在使用 git 的基本操作,提交和和合并分支所做的一样,不过是用来处理错误的。

 

6.WeChatPlugin-MacOS

一款功能强大的 macOS 版微信小助手

拥有着许多强大且实用的功能

防撤回:

安装

7.Dopamine

一种用于强化学习算法的快速原型设计的研究框架。它旨在满足一个小型,易于理解的代码库的需求,用户可以自由地尝试疯狂的想法(推测性研究)。 

特点:

简单的实验:让新用户轻松运行基准实验。

灵活的开发:让新用户轻松尝试研究创意。

紧凑而可靠:为少数经过实战考验的算法提供实施方案。

可重复:促进结果的可重复性。

更多细节参见文档:https://github.com/google/dopamine/tree/master/docs

 

 

8.docker_practice

这是一个用于 Docker 学习的书籍类项目

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!

本书既适用于具备基础 Linux 知识的 Docker 初学者,也希望可供理解原理和实现的高级用户参考。同时,书中给出的实践案例,可供在进行实际部署时借鉴。前六章为基础内容,供用户理解 Docker 的基本概念和操作;7 ~ 9 章介绍包括数据管理、网络等高级操作;第 10 ~ 13 章介绍了容器生态中的几个核心项目;14、15 章讨论了关于 Docker 安全和实现技术等高级话题。后续章节则分别介绍包括 Etcd、CoreOS、Kubernetes、Mesos、容器云等相关热门开源项目。最后,还展示了使用容器技术的典型的应用场景和实践案例。

在线阅读:https://github.com/yeasy/docker_practice/wiki/%E7%A6%BB%E7%BA%BF%E9%98%85%E8%AF%BB%E5%8A%9F%E8%83%BD%E8%AF%A6%E8%A7%A3

 

 

9.Trackerjacker

Trackerjacker 是一个无线网络监测工具,可以获取设备的 mac 地址并加以监控,并将在后续开发中加入入侵(Jack)功能。

目前 Trackerjacker 可以做到 :

知道所有附近的无线网络,并知道连接到每个网络的所有设备。

知道谁在占用所有带宽。

有设备在30内中发送超过100000字节的MAC地址时运行特定脚本(可用于确定IP摄像机何时上传视频,这表示它刚刚发现了一个行为)。

攻击在( deauth )10秒内使用超过100000字节的任何人。

攻击( deauth )该地区的每一个小型监控,以便于Airbnb (国外租房平台) 不会监视我。

当任何 MAC 地址在大于-40dBm的功率水平下运行时得到警报,这是以前从未见过的新功能。

看看某个特定的人何时在附近(基于他们手机的MAC),并运行脚本提醒。

编写自己的插件来运行一些脚本,以便每次在附近出现新的 Apple 设备时都能做些“有趣”的事情。

 

10.CS-Notes

如你所见,这是一个 CS 的学习笔记合集,它目前包含了这几部分内容:

算法、操作系统、网络、面向对象、数据库、 Java 、系统设计、工具、编码实践

这个项目的学习资料十分详尽,并且都附上了详细的代码,不失为一个好的自学参考

同时,作者也附上了其看过的好的技术书籍的书单,感兴趣的话不妨去Star


参与投票

第33期开源周报:本周你最喜爱的开源项目是哪一个呢?

参与投票并且留言留下宝贵想法的同学,我们将邀请你加入开源项目学习群组。