Skip to content

Commit 11a19c1

Browse files
committed
发布:《HelloGithub》第08期
1 parent 1218c41 commit 11a19c1

9 files changed

+367
-0
lines changed

08/HelloGitHub08.md

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
#《HelloGitHub》第08期
2+
>兴趣是最好的老师,[《HelloGitHub》](https://github.com/521xueweihan/HelloGitHub)就是帮你找到兴趣!
3+
4+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/01/img/hello-github.jpg)
5+
6+
## 简介
7+
最开始我只是想把自己在浏览GitHub过程中,发现的有意思、高质量、容易上手的项目收集起来,这样便于以后查找和学习。后来一想,如果给这些GitHub项目都加上简单的效果图和一些通俗易懂的中文介绍。应该能够帮助到我这样的新手激发兴趣去参与、学习这些优秀、好玩的开源项目。
8+
9+
所以,我就做了一个面向**编程新手****热爱编程****对开源社区感兴趣** 的人群的月刊,月刊的内容包括:**各种编程语言的项目****各种让生活变得更美好的工具****书籍、学习笔记、教程等**。这些项目都是非常容易上手,而且非常Cool,主要是希望大家能动手用起来,加入到**开源社区**中。会编程的可以贡献代码,不会编程的可以反馈使用这些工具中的bug、帮着宣传你觉得优秀的项目、star项目⭐️。同时你将学习到更多编程知识、提高自己的编程技巧、发现自己的**兴趣**
10+
11+
最后[《HelloGitHub》](https://github.com/521xueweihan/HelloGitHub)这个项目就诞生了!😁
12+
13+
---
14+
>**以下为本期内容**[点击查看往期内容](https://github.com/521xueweihan/HelloGitHub)
15+
16+
#### Python项目
17+
1、[reddit](https://github.com/reddit/reddit)[reddit.com](https://www.reddit.com/)网站的源码,通过这个项目,可以学习 python 在构建大型项目中的使用、项目结构、代码风格、python技巧的使用方法等。[安装教程](https://github.com/reddit/reddit/wiki/Install-guide)
18+
19+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/reddit-show-min.jpg)
20+
21+
2、[httpstat](https://github.com/reorx/httpstat):httpstat 美化了`curl`的结果,使得结果更加可读。同时它无依赖、兼容Python3、一共才300+行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图:
22+
23+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/httpstat-show-min.png)
24+
25+
3、[PyMySQL](https://github.com/PyMySQL/PyMySQL):纯 pyton 写的 mysql 库,纯 python 的好处就是可以运行在任何装有 python 解释器(CPython、PyPy、IronPython)的平台上。相对于 [MySQLdb](https://github.com/farcepest/MySQLdb1) 性能几乎一样,使用方法也一样,但是** PyMySQL 安装方法极其简单**——`pip install PyMySQL`,PyMySQL 使用示例代码:
26+
```
27+
# 下面为例子需要的数据库的建表语句
28+
CREATE TABLE `users` (
29+
`id` int(11) NOT NULL AUTO_INCREMENT,
30+
`email` varchar(255) COLLATE utf8_bin NOT NULL,
31+
`password` varchar(255) COLLATE utf8_bin NOT NULL,
32+
PRIMARY KEY (`id`)
33+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
34+
AUTO_INCREMENT=1 ;
35+
```
36+
37+
```python
38+
# -*- coding: utf-8 -*-
39+
import pymysql.cursors
40+
41+
# 连接数据库
42+
connection = pymysql.connect(host='localhost',
43+
user='user',
44+
password='passwd',
45+
db='db',
46+
charset='utf8mb4',
47+
cursorclass=pymysql.cursors.DictCursor)
48+
49+
try:
50+
with connection.cursor() as cursor:
51+
# 创建一个新的纪录(record)
52+
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
53+
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
54+
55+
# 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动
56+
connection.commit()
57+
58+
with connection.cursor() as cursor:
59+
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
60+
cursor.execute(sql, ('webmaster@python.org',))
61+
62+
# 获取一条的纪录(record)
63+
result = cursor.fetchone()
64+
print(result) # 结果输出:{'password': 'very-secret', 'id': 1}
65+
finally:
66+
connection.close() # 操作完数据库一要记得调用 close 方法,关闭连接
67+
```
68+
69+
#### Go项目
70+
4、[kcptun](https://github.com/xtaci/kcptun):也许是世界上最快的UDP传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。
71+
72+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/kcptun-show-min.png)
73+
74+
#### Ruby项目
75+
5、[discourse](https://github.com/discourse/discourse):Ruby 语言写的论坛,百分之百开源、免费。
76+
77+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/discourse-show-min.png)
78+
79+
#### Javascript项目
80+
6、[WeFlow](https://github.com/weixin/WeFlow):微信出品的一个高效、强大、跨平台的 Web 前端开发工作流工具,[官网](https://weflow.io/)
81+
82+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/weflow-show-min.jpeg)
83+
84+
7、[atrament.js](https://github.com/jakubfiala/atrament.js):极小的Js画板,[在线演示](http://fiala.uk/atrament.js/demo/)
85+
86+
#### C、C++项目
87+
8、[libco](https://github.com/Tencent/libco):libco 是微信后台大规模使用的 c/c++ 协程库,2013年至今稳定运行在微信后台的数万台机器上。
88+
- 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升;
89+
90+
- 支持CGI框架,轻松构建web服务(New);
91+
92+
- 支持gethostbyname、mysqlclient、ssl等常用第三库(New);
93+
94+
- 可选的共享栈模式,单机轻松接入千万连接(New);
95+
96+
- 完善简洁的协程编程接口
97+
- 类pthread接口设计,通过co_create、co_resume等简单清晰接口即可完成协程的创建与恢复;
98+
- \_\_thread的协程私有变量、协程间通信的协程信号量co_signal (New);
99+
- 语言级别的lambda实现,结合协程原地编写并执行后台异步任务 (New);
100+
- 基于epoll/kqueue实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器;
101+
102+
#### C#项目
103+
9、[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json):Newtonsoft.Json 是一款 .NET 平台中开源的 JSON 序列化和反序列化类库,示例代码:
104+
```C#
105+
public class Account
106+
{
107+
public string Email { get; set; }
108+
public bool Active { get; set; }
109+
public DateTime CreatedDate { get; set; }
110+
public IList<string> Roles { get; set; }
111+
}
112+
113+
Account account = new Account
114+
{
115+
Email = "james@example.com",
116+
Active = true,
117+
CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, ateTimeKind.Utc),
118+
Roles = new List<string>
119+
{
120+
"User",
121+
"Admin"
122+
}
123+
};
124+
125+
string json = JsonConvert.SerializeObject(account, Formatting.Indented);
126+
// {
127+
// "Email": "james@example.com",
128+
// "Active": true,
129+
// "CreatedDate": "2013-01-20T00:00:00Z",
130+
// "Roles": [
131+
// "User",
132+
// "Admin"
133+
// ]
134+
// }
135+
136+
Console.WriteLine(json);
137+
```
138+
139+
#### Objective-C、Swift项目
140+
10、[aria2gui](https://github.com/yangshun1029/aria2gui):Aria2 的 Mac 客户端(下载工具),[介绍、使用方法](http://www.jianshu.com/p/1290f8e7b326),特点:
141+
- 集成了 aria2,运行后即完成配置工作
142+
- 多线程下载
143+
- 未完成任务退出可以自动保存
144+
- 支持迅雷离线,百度,115,360等网盘的aria2导出(需要浏览器插件支持)
145+
- 支持PT/BT,BT速度跟种子热度有关,如果没有速度网盘离线后再下载
146+
- 在Badge显示整体下载速度
147+
- 任务完成通知
148+
149+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/aria2gui-show-min.png)
150+
151+
#### Java项目
152+
11、[AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode):Android 开发人员不得不收集的代码,[中文介绍](https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md)
153+
154+
12、[DanmakuFlameMaster](https://github.com/Bilibili/DanmakuFlameMaster):Bilibili 开源的,Android 开源弹幕引擎·烈焰弹幕使,特性:
155+
- 使用多种方式(View/SurfaceView/TextureView)实现高效绘制
156+
- B站xml弹幕格式解析
157+
- 基础弹幕精确还原绘制
158+
- 支持mode7特殊弹幕
159+
- 多核机型优化,高效的预缓存机制
160+
- 支持多种显示效果选项实时切换
161+
- 实时弹幕显示支持
162+
- 换行弹幕支持/运动弹幕支持
163+
- 支持自定义字体
164+
- 支持多种弹幕参数设置
165+
- 支持多种方式的弹幕屏蔽
166+
167+
#### 其它
168+
13、[提问的智慧](https://github.com/FredWe/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md)
169+
170+
14、[jstraining](https://github.com/ruanyf/jstraining):阮一峰,全栈工程师培训材料
171+
172+
15、[PTVS](https://github.com/Microsoft/PTVS):Visual Studio 下的 python 开发工具
173+
174+
16、[the-swift-programming-language-in-chinese](https://github.com/numbbbbb/the-swift-programming-language-in-chinese):中文版 Apple 官方 Swift 教程《The Swift Programming Language》
175+
176+
17、[styleguide](https://github.com/fex-team/styleguide):百度前端研发团队的文档与源码编写风格
177+
178+
18、[weex](https://github.com/alibaba/weex):移动端,跨平台前端框架,[详细的中文档](https://github.com/weexteam/article/wiki/Weex中文文档)
179+
180+
19、[macOS-Security-and-Privacy-Guide](https://github.com/drduh/macOS-Security-and-Privacy-Guide):A practical guide to securing macOS.(英文)
181+
182+
---
183+
184+
185+
## 声明
186+
如果你发现了好玩、有意义的开源项目,[点击这里](https://github.com/521xueweihan/HelloGitHub/issues/new)分享你觉得有意思的项目。
187+
188+
- 分享项目格式:项目名称——项目地址:项目描述(中文),追求完美👉项目上手demo、有图有真相~
189+
190+
或许你分享的项目会让别人由衷的感慨:“原来还有这么有意思的项目!编程可以这么酷!”
191+
192+
欢迎转载,请注明出处和作者,同时保留声明和联系方式。
193+
194+
## 联系方式
195+
- GitHub:[削微寒](https://github.com/521xueweihan)
196+
197+
- 博客园:[削微寒](http://www.cnblogs.com/xueweihan/)
198+
199+
- 邮箱:595666367@qq.com

08/content08.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
#### Python项目
2+
1、[reddit](https://github.com/reddit/reddit)[reddit.com](https://www.reddit.com/)网站的源码,通过这个项目,可以学习 python 在构建大型项目中的使用、项目结构、代码风格、python技巧的使用方法等。[安装教程](https://github.com/reddit/reddit/wiki/Install-guide)
3+
4+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/reddit-show-min.jpeg)
5+
6+
2、[httpstat](https://github.com/reorx/httpstat):httpstat 美化了`curl`的结果,使得结果更加可读。同时它无依赖、兼容Python3、一共才300+行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图:
7+
8+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/httpstat-show-min.png)
9+
10+
3、[PyMySQL](https://github.com/PyMySQL/PyMySQL):纯 pyton 写的 mysql 库,纯 python 的好处就是可以运行在任何装有 python 解释器(CPython、PyPy、IronPython)的平台上。相对于 [MySQLdb](https://github.com/farcepest/MySQLdb1) 性能几乎一样,使用方法也一样,但是** PyMySQL 安装方法极其简单**——`pip install PyMySQL`,PyMySQL 使用示例代码:
11+
```
12+
# 下面为例子需要的数据库的建表语句
13+
CREATE TABLE `users` (
14+
`id` int(11) NOT NULL AUTO_INCREMENT,
15+
`email` varchar(255) COLLATE utf8_bin NOT NULL,
16+
`password` varchar(255) COLLATE utf8_bin NOT NULL,
17+
PRIMARY KEY (`id`)
18+
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
19+
AUTO_INCREMENT=1 ;
20+
```
21+
22+
```python
23+
# -*- coding: utf-8 -*-
24+
import pymysql.cursors
25+
26+
# 连接数据库
27+
connection = pymysql.connect(host='localhost',
28+
user='user',
29+
password='passwd',
30+
db='db',
31+
charset='utf8mb4',
32+
cursorclass=pymysql.cursors.DictCursor)
33+
34+
try:
35+
with connection.cursor() as cursor:
36+
# 创建一个新的纪录(record)
37+
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
38+
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
39+
40+
# 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动
41+
connection.commit()
42+
43+
with connection.cursor() as cursor:
44+
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
45+
cursor.execute(sql, ('webmaster@python.org',))
46+
47+
# 获取一条的纪录(record)
48+
result = cursor.fetchone()
49+
print(result) # 结果输出:{'password': 'very-secret', 'id': 1}
50+
finally:
51+
connection.close() # 操作完数据库一要记得调用 close 方法,关闭连接
52+
```
53+
54+
#### Go项目
55+
4、[kcptun](https://github.com/xtaci/kcptun):也许是世界上最快的UDP传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。
56+
57+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/kcptun-show-min.png)
58+
59+
#### Ruby项目
60+
5、[discourse](https://github.com/discourse/discourse):Ruby 语言写的论坛,百分之百开源、免费。
61+
62+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/discourse-show-min.png)
63+
64+
#### Javascript项目
65+
6、[WeFlow](https://github.com/weixin/WeFlow):微信出品的一个高效、强大、跨平台的 Web 前端开发工作流工具,[官网](https://weflow.io/)
66+
67+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/weflow-show-min.jpeg)
68+
69+
7、[atrament.js](https://github.com/jakubfiala/atrament.js):极小的Js画板,[在线演示](http://fiala.uk/atrament.js/demo/)
70+
71+
#### C、C++项目
72+
8、[libco](https://github.com/Tencent/libco):libco 是微信后台大规模使用的 c/c++ 协程库,2013年至今稳定运行在微信后台的数万台机器上。
73+
- 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升;
74+
75+
- 支持CGI框架,轻松构建web服务(New);
76+
77+
- 支持gethostbyname、mysqlclient、ssl等常用第三库(New);
78+
79+
- 可选的共享栈模式,单机轻松接入千万连接(New);
80+
81+
- 完善简洁的协程编程接口
82+
- 类pthread接口设计,通过co_create、co_resume等简单清晰接口即可完成协程的创建与恢复;
83+
- \_\_thread的协程私有变量、协程间通信的协程信号量co_signal (New);
84+
- 语言级别的lambda实现,结合协程原地编写并执行后台异步任务 (New);
85+
- 基于epoll/kqueue实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器;
86+
87+
#### C#项目
88+
9、[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json):Newtonsoft.Json 是一款 .NET 平台中开源的 JSON 序列化和反序列化类库,示例代码:
89+
```C#
90+
public class Account
91+
{
92+
public string Email { get; set; }
93+
public bool Active { get; set; }
94+
public DateTime CreatedDate { get; set; }
95+
public IList<string> Roles { get; set; }
96+
}
97+
98+
Account account = new Account
99+
{
100+
Email = "james@example.com",
101+
Active = true,
102+
CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, ateTimeKind.Utc),
103+
Roles = new List<string>
104+
{
105+
"User",
106+
"Admin"
107+
}
108+
};
109+
110+
string json = JsonConvert.SerializeObject(account, Formatting.Indented);
111+
// {
112+
// "Email": "james@example.com",
113+
// "Active": true,
114+
// "CreatedDate": "2013-01-20T00:00:00Z",
115+
// "Roles": [
116+
// "User",
117+
// "Admin"
118+
// ]
119+
// }
120+
121+
Console.WriteLine(json);
122+
```
123+
124+
#### Objective-C、Swift项目
125+
10、[aria2gui](https://github.com/yangshun1029/aria2gui):Aria2 的 Mac 客户端(下载工具),[介绍、使用方法](http://www.jianshu.com/p/1290f8e7b326),特点:
126+
- 集成了 aria2,运行后即完成配置工作
127+
- 多线程下载
128+
- 未完成任务退出可以自动保存
129+
- 支持迅雷离线,百度,115,360等网盘的aria2导出(需要浏览器插件支持)
130+
- 支持PT/BT,BT速度跟种子热度有关,如果没有速度网盘离线后再下载
131+
- 在Badge显示整体下载速度
132+
- 任务完成通知
133+
134+
![](https://github.com/521xueweihan/HelloGitHub/blob/master/08/img/aria2gui-show-min.png)
135+
136+
#### Java项目
137+
11、[AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode):Android 开发人员不得不收集的代码,[中文介绍](https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md)
138+
139+
12、[DanmakuFlameMaster](https://github.com/Bilibili/DanmakuFlameMaster):Bilibili 开源的,Android 开源弹幕引擎·烈焰弹幕使,特性:
140+
- 使用多种方式(View/SurfaceView/TextureView)实现高效绘制
141+
- B站xml弹幕格式解析
142+
- 基础弹幕精确还原绘制
143+
- 支持mode7特殊弹幕
144+
- 多核机型优化,高效的预缓存机制
145+
- 支持多种显示效果选项实时切换
146+
- 实时弹幕显示支持
147+
- 换行弹幕支持/运动弹幕支持
148+
- 支持自定义字体
149+
- 支持多种弹幕参数设置
150+
- 支持多种方式的弹幕屏蔽
151+
152+
#### 其它
153+
13、[提问的智慧](https://github.com/FredWe/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md)
154+
155+
14、[jstraining](https://github.com/ruanyf/jstraining):阮一峰,全栈工程师培训材料
156+
157+
15、[PTVS](https://github.com/Microsoft/PTVS):Visual Studio 下的 python 开发工具
158+
159+
16、[the-swift-programming-language-in-chinese](https://github.com/numbbbbb/the-swift-programming-language-in-chinese):中文版 Apple 官方 Swift 教程《The Swift Programming Language》
160+
161+
17、[styleguide](https://github.com/fex-team/styleguide):百度前端研发团队的文档与源码编写风格
162+
163+
18、[weex](https://github.com/alibaba/weex):移动端,跨平台前端框架,[详细的中文档](https://github.com/weexteam/article/wiki/Weex中文文档)
164+
165+
19、[macOS-Security-and-Privacy-Guide](https://github.com/drduh/macOS-Security-and-Privacy-Guide):A practical guide to securing macOS.(英文)
166+
167+
---

08/img/aria2gui-show-min.png

41.5 KB
Loading

08/img/discourse-show-min.png

68.2 KB
Loading

08/img/httpstat-show-min.png

22.4 KB
Loading

08/img/kcptun-show-min.png

19.3 KB
Loading

08/img/reddit-show-min.jpg

29.8 KB
Loading

08/img/weflow-show-min.jpeg

104 KB
Loading

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
---
1414
### 往期回顾
15+
- [第08期](https://github.com/521xueweihan/HelloGitHub/blob/master/08/HelloGitHub08.md)
1516
- [第07期](https://github.com/521xueweihan/HelloGitHub/blob/master/07/HelloGitHub07.md)
1617
- [第06期](https://github.com/521xueweihan/HelloGitHub/blob/master/06/HelloGitHub06.md)
1718
- [第05期](https://github.com/521xueweihan/HelloGitHub/blob/master/05/HelloGitHub05.md)

0 commit comments

Comments
 (0)