《HelloGitHub》第 26 期

公告

五月初 hellogithub.com 网站做了优化和试错。因为我个人能力原因,导致这段时间网站出现了间断性不能访问,现在问题已经修复。多谢大家的支持、理解和反馈。

网站新增了“星图”的功能,还在测试阶段欢迎反馈问题。

总而言之,今年已过半 HelloGitHub 还在路上,希望大家多多支持,我们会越来越好。??

《HelloGitHub》第 26 期

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介

分享 GitHub 上有趣、入门级的开源项目。

这是一个面向编程新手热爱编程对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目让生活变得更美好的工具书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。

  • 会编程的可以贡献代码
  • 不会编程的可以反馈使用这些工具中的 Bug
  • 帮着宣传你觉得优秀的项目
  • Star 项目??

在浏览、参与这些项目的过程中,你将学习到更多编程知识提高编程技巧找到编程的乐趣

?? 最后 HelloGitHub 这个项目就诞生了 ??


以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容

C 项目

1、ttygif:录制终端.gif

C++ 项目

2、TrafficMonitor:一款用于 Windows 平台的网速监控悬浮窗软件。可以显示当前网速、CPU及内存利用率、任务栏显示、更换皮肤、历史流量统计等功能

CSS 项目

3、caomei:一套免费、精致的开源图标库。

  • 精心绘制 丨 风格统一、力求像素级的显示
  • 使用高效 丨 资源轻量、灵活、多设备兼容
  • 开源免费 丨 个人私用和商用版权开源免费

4、You-need-to-know-css:该项目包含了一些常用的 CSS 样式示例和作者阅读《CSS揭秘》的收获分享,适合于想要提高 CSS 技能的同学

Go 项目

5、lgo:实现像 python 一样的交互式编程,同时整合了 Jupyter Notebook。效果如下:

6、gopool:Golang 分布式的连接池,协程池。内含 Redis Client 连接池实现,特点如下:

  • 提供下游的高可用访问,投票机制摘除下游不健康节点
  • 最小健康比、最大冷却时长可配置
  • 每个下游节点对应一个 channel,保证负载均衡
  • 提供连接池状态监控接口包括总连接数、每个 IP 的连接数

7、go-perfbook:《关于 Go 性能优化的思考》概述了编写高性能 Go 代码的最佳实践。中文

Java 项目

8、AutoEx:帮助 Android 开发者,让项目在崩溃时从异常堆栈中,自动寻找 Stack Overflow 的回答。体积只有 9kb 并且没有依赖其他第三方库。当程序出现异常时会有如下输出:

┌—————————————————————AutoEx——————————————————————
├ 错误类型:android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0056 type #0x12 is not valid。↑详细异常请往上滚动查看↑
├ 推荐参考Stack Overflow上4条同类问题。↓点击下方连接查看↓
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 标题:Android Resources$NotFoundException: Resource ID #0x7f030027
├ 链接:https://stackoverflow.com/questions/21269502/android-resourcesnotfoundexception-resource-id-0x7f030027
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 标题:android.content.res.Resources$NotFoundException: Resource ID #0x7f07007e
├ 链接:https://stackoverflow.com/questions/48161713/android-content-res-resourcesnotfoundexception-resource-id-0x7f07007e
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 标题:App crashes when adding an ImageView?
├ 链接:https://stackoverflow.com/questions/47600747/app-crashes-when-adding-an-imageview
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
├ 标题:XML Android app will not load on phone
├ 链接:https://stackoverflow.com/questions/48310838/xml-android-app-will-not-load-on-phone
└—————————————————————AutoEx——————————————————————

9、javatuples:提供了多个方便易用的 Java 元组类。写 Java 代码经常会有需要使用元组的场景,我们经常会用 Array 或者 List 来代替这种实现。但是这不仅不够优雅,并且不够安全(你要放弃泛型来达到可以存放不同类型的数据)。而 javatuples 提供了多个类型安全的、优雅的实现类,大大提升了我们开发的效率以及便捷性。示例代码:

...
String str = ...;
Integer integ = ...;
Double[] doubleArray = ...;
...

// create a tuple
Triplet<String,Integer,Double[]> triplet = Triplet.with(str, integ, doubleArray); 

// fetch data
...
String myStr = triplet.getValue0();
Integer myInteg = triplet.getValue1();
Double[] myDoubleArray = triplet.getValue2();
...

JavaScript 项目

10、javascript-algorithms:包含了多种基于 JavaScript 的算法与数据结构,中文

11、Day.js:一个轻量的 JavaScript 时间日期处理库。保持和 Moment.js 的 API 设计完全一样。如果你曾经用过 Moment.js,那么你已经知道如何使用 Day.js 了。体积仅有 2kb 是 Moment.js 的轻量化方案,示例代码如下:

dayjs().startOf(‘month‘).add(1, ‘day‘).set(‘year‘, 2018).format(‘YYYY-MM-DD HH:mm:ss‘);

12、tui.calendar:功能全面的 JavaScript 日程安排日历。虽然项目依赖了 jQuery,但是对于真实项目来说这样做是可以的。此项目适用于多种场景,炫酷的交互和 UI

13、carbon:以美观、整洁的方式,展示你的代码片段。同时提供 SVG、PNG 多种方式展示

14、BizCharts:蚂蚁出品的基于 React 的图表库。图表样式丰富、使用方便、易扩展、文档齐全,官网

Python 项目

15、redis-faina:Redis 性能分析器。提供两种模式分析模式:命令实时、读取日志。其原理是使用 Redis MONITOR 命令,将该命令的结果通过管道传递给 redis-faina 脚本,脚本将返回的信息解析,并汇成总成统计信息。具体信息如下所示:

注意:分析非常闲的 redis 实例时,分析的结果可能偏差的很多。
时间单位为微秒:ms = 1.0 × 10^-6 seconds

Overall Stats
========================================
# 总命令数
Lines Processed     10
# QPS
Commands/Sec        1.03       

# 出现最多的 key 的前缀
Top Prefixes
========================================
startchart      9   (90.00%)

# 请求最多的key
Top Keys
========================================
startchart:521xueweihan/hellogithub     9   (90.00%)

# 请求最多的命令
Top Commands
========================================
get     9   (90.00%)

# 请求响应时间的分布
Command Time (microsecs)
========================================
Median      583914.0
75%         637395.0
90%         5703923.0
99%         5703923.0

# 总耗时最多的命令
Heaviest Commands (microsecs)
========================================
get     9746157.0

# 慢请求列表
Slowest Calls
========================================
5703923.0   "get" "startchart:521xueweihan/hellogithub"
637395.0    "get" "startchart:521xueweihan/hellogithub"
633909.0    "get" "startchart:521xueweihan/hellogithub"
583914.0    "get" "startchart:521xueweihan/hellogithub"
569207.0    "get" "startchart:521xueweihan/hellogithub"
548745.0    "get" "startchart:521xueweihan/hellogithub"
545493.0    "get" "startchart:521xueweihan/hellogithub"
523571.0    "get" "startchart:521xueweihan/hellogithub"

16、marshmallow:使用类似于 ORM 的语法,序列化、反序列化 Python 对象。可以将序列化的对象呈现为标准格式,适用于例如数据校验、返回 HTTP API 的 JSON。示例代码如下:

from datetime import date
from marshmallow import Schema, fields, pprint

class ArtistSchema(Schema):
    name = fields.Str()

class AlbumSchema(Schema):
    title = fields.Str()
    release_date = fields.Date()
    artist = fields.Nested(ArtistSchema())

bowie = dict(name=‘David Bowie‘)
album = dict(artist=bowie, title=‘Hunky Dory‘, release_date=date(1971, 12, 17))

schema = AlbumSchema()
result = schema.dump(album)
pprint(result, indent=2)
# 输出如下
# { ‘artist‘: {‘name‘: ‘David Bowie‘},
#   ‘release_date‘: ‘1971-12-17‘,
#   ‘title‘: ‘Hunky Dory‘}

Rust 项目

17、fd:一个简单、快速、友好的替代 find 命令的方案

18、rayon:一个易用、无数据竞争的将顺序迭代器妆化成并行迭代器。简单说就是原本你的数组只能一个一个地遍历,使用这个库可以并发同时从几个 index 开始遍历,同时也能遍历 map 等类似的数据结构

Swift 项目

19、DotzuX:iOS APP 内置调试工具,支持 log 日志查看、网络抓包、沙盒查看等功能,代码零入侵。示例代码:

//Step 1.
#if DEBUG
    import DotzuX
#endif

//Step 2.
#if DEBUG
    DotzuX.enable()
#endif

//Step 3.
public func print<T>(file: String = #file, function: String = #function, line: Int = #line, _ message: T, _ color: UIColor? = nil) {
    #if DEBUG
        swiftLog(file, function, line, message, color)
    #endif
}

其它

20、architect-awesome:《后端架构师技术图谱》

21、a-cartoon-intro-to-redux-cn:《看漫画学 Redux》

22、architecture.of.internet-product:知名互联网公司的架构文档

23、public-apis:(英文)用于 Web 开发的公共 API 集合

24、practical-programming-books:实用的计算机相关技术书籍、入门的实用教程、技术网站、博文集合

开源书籍

25、sicp-py-zh:《SICP Python 描述中文版》在线阅读

机器学习

26、AlphaZero_Gomoku:使用 TensorFlow/Pytorch/Theano 实现 AlphaZero 算法,通过自我对弈从零训练五子棋 AI。实现简单、清晰,适合学习、了解 AlphaGo Zero 背后的关键思想和技术细节


换种方式阅读

声明

如果你发现了好玩、有意义的开源项目 点击这里 分享你觉得有意思的项目。

欢迎转载,请注明出处和作者,同时保留声明。

原文地址:https://www.cnblogs.com/xueweihan/p/9096881.html

时间: 2024-07-30 14:37:44

《HelloGitHub》第 26 期的相关文章

《善圈第26期天天圈》:善圈520,鞠躬迎老兵!

亮点:<善圈第26期天天圈>5.20今日精彩回顾:善圈520,鞠躬迎老兵! 深圳罗湖京基100大厦71层善圈,今天迎来了一位尊贵的客人,他是共和国功臣,一位抗美援朝的英雄老兵--现年83岁的老爷爷陈碧.只见他身穿昔日的绿色军装,挂满了各种军功章. 老人家精神矍铄地向大家行军礼,参加学习的企业家纷纷与老人家合影留念,聆听英雄老兵讲述峥嵘岁月的战斗故事. 著名作家魏巍<谁是最可爱的人>将人们的记忆,回放到60多年前那场让全世界为之瞩目的抗美援朝战争.曾经多少优秀中华儿女,雄赳赳气昂昂跨

老男孩教育运维班26期脱产班9月即将开班,伙伴们抓紧报名!

老男孩教育中国linux运维领域教育第一品牌,不仅教学质量一流,就业薪水更是一流! linux运维班平均毕业工资10K,高级架构师毕业平均薪资16K. 本课表为201508制定,适合26期脱产班,最艰苦的周期4-5个月,有胆量挑战么? 什么?还没有掌握linux高级运维实战技术?那你真OUT了! 什么?工资还没过10K,那你更OUT了,北京平均工资最低也10K以上了! 屌丝们最后的福利! 身价千万的老板不足为奇! 身价千万的明星也不足为奇! 身价千万的运维屌丝你见过么?什么-没见过!!! 他如今

老男孩26期运维班linux基础知识大比拼即将开始

老男孩26期运维班linux基础知识大比拼 1 比赛说明 比赛时间:2015年11月12日下午15点 比赛地点:老男孩教育教室二 比赛人员:老男孩教育26期全体同学 奖项:团体奖(按组奖励共1-9组): 一等奖奖励300元人民币或每人老男孩老师新书一本和老师合影签名. 二等奖奖励200元人民币 三等奖奖励100元人民币 个人奖:3名,赠老男孩新书一本 惩罚:没有得奖的组,或者组内无人得奖的组,罚100元或派选代表表演一个节目(唱歌或其它) 比赛规则当场宣布: 主评委:老男孩老师,张导 辅助评委:

26期20180608find命令 文件后缀

6月8日任务2.23/2.24/2.25 find命令2.26 文件名后缀 find命令 Find 是用来搜索文件 which 接上命令是用来查找这个命令在环境变量中的位置 whereis 也可以找, 但是需要update 数据库才可以 updatedb locate命令是需要安装的,安装命令 yum install -y mlocate 记得要updatedb 介绍几个常用的快捷键 ctrl c 终止当前 ctrl a 光标回到当前的最前位置  相对应的 ctrl e 回到最后位置 ctrl

26期20180626 rpm 安装软件包的方法 yum

6月26日任务 7.1 安装软件包的三种方法7.2 rpm包介绍7.3 rpm工具用法7.4 yum工具用法7.5 yum搭建本地仓库(视频中ppt小错误: gpcheck改为gpgcheck,yum cean 改为 yum clean)扩展1. yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml2. 搭建局域网yum源http://blog.lishiming.net/?p=500 windo

26期20180627 更换国内源 yum下载rpm包 源码包安装

6月27日任务 7.6 yum更换国内源7.7 yum下载rpm包7.8/7.9 源码包安装扩展1. 把源码包打包成rpm包 https://jin-yang.github.io/post/linux-create-rpm-package.html yum更换国内源 所谓更改国内源就是把安装的地址换成国内的服务器.做法就是更换CentOS7-Base文件为163的文件. 打开可以看到实际上是把原先的源地址给注释掉了, 然后使用的是163的地址. 所谓安装扩展源就是基础源base不够用的时候安装的

26期20180717

7月17日任务 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍 Linux任务计划 可能是个shell脚本,也可能是单独命令.不管是何种形式,都需要某个时间去执行,这样就需要确定一个时间. 任务计划的配置文件 etc/crontab 定义了变量,环境变量,命令路径 mailto 发邮件给谁,以及格式.不写用户的话,默认是root 定义Linux任务计划的命令 crontab -

老男孩教育26期学员学习体会

在老男孩教育学习已经三个月有余,在这里认识了老师,也认识了很多很多为学好Linux而努力拼搏的同学,感慨良多! 头开始报名是同事介绍过来的,心里也是有小怀疑的,毕竟现在的技能学校大多数都是为了挣钱而挣钱!但慢慢学习下来,老男孩老师的一言一行把我自己的顾虑,怀疑全部的打消了,老男孩老师的身体力行为这个不好的社会风气带来了一股正气! 老师的教育完全是自己的实践经验结合理论知识,不像某些机构完全是理论和实践脱离了,去到工作岗位后还得从头学起. 老师教学采用的是互动讨论模式,给别人讲懂了,自己也就记住了

26期学员参观森华易腾移动IDC机房有感

作为一名运维人员,不去机房是不行的,作为一名运维预备役人员,提前去看看机房是很有必要的. 今天oldboy老师帮我们联系了一个参观机房的机会,非常感动,感谢老师,也感谢森华易腾的大力支持. 到达机房后,首先我就被建筑的规格镇住,可以抗八级地震,什么概念啊! 进入机房以后,给我的感觉就是整齐,高规格.无论是机柜的摆放,服务器的罗列,线路的捆扎,还是各种安全措施的条例,只能用专业两个字来形容,而且机房内部不允许拍照,所以就非常遗憾的只能用文字来描述啦. 最后,门口接待我们的兄弟对我们帮助也很大,给我