diff --git a/README.md b/README.md
index 846761ab..9be55a27 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@
| :squirrel: | :jack_o_lantern: | :beer: | :fish_cake: | :octocat: |
| ------- | ----- | ------------ | ------ | --------- |
-| [第 44 期](/content/44/HelloGitHub44.md) | [第 43 期](/content/43/HelloGitHub43.md) | [第 42 期](/content/42/HelloGitHub42.md) | [第 41 期](/content/41/HelloGitHub41.md) |
+| [第 45 期](/content/45/HelloGitHub45.md) | [第 44 期](/content/44/HelloGitHub44.md) | [第 43 期](/content/43/HelloGitHub43.md) | [第 42 期](/content/42/HelloGitHub42.md) | [第 41 期](/content/41/HelloGitHub41.md) |
| [第 40 期](/content/40/HelloGitHub40.md) | [第 39 期](/content/39/HelloGitHub39.md) | [第 38 期](/content/38/HelloGitHub38.md) | [第 37 期](/content/37/HelloGitHub37.md) | [第 36 期](/content/36/HelloGitHub36.md) |
| [第 35 期](/content/35/HelloGitHub35.md) | [第 34 期](/content/34/HelloGitHub34.md) | [第 33 期](/content/33/HelloGitHub33.md) | [第 32 期](/content/32/HelloGitHub32.md) | [第 31 期](/content/31/HelloGitHub31.md) |
| [第 30 期](/content/30/HelloGitHub30.md) | [第 29 期](/content/29/HelloGitHub29.md) | [第 28 期](/content/28/HelloGitHub28.md) | [第 27 期](/content/27/HelloGitHub27.md) | [第 26 期](/content/26/HelloGitHub26.md) |
diff --git a/README_en.md b/README_en.md
index 12036543..f2b365ec 100644
--- a/README_en.md
+++ b/README_en.md
@@ -21,7 +21,7 @@ The [latest article](https://github.com/521xueweihan/HelloGitHub/blob/master/con
| :squirrel: | :jack_o_lantern: | :beer: | :fish_cake: | :octocat: |
| ------- | ----- | ------------ | ------ | --------- |
-| [NO.44](/content/44/HelloGitHub44.md) | [NO.43](/content/43/HelloGitHub43.md) | [NO.42](/content/42/HelloGitHub42.md) | [NO.41](/content/41/HelloGitHub41.md) |
+| [NO.45](/content/45/HelloGitHub45.md) | [NO.44](/content/44/HelloGitHub44.md) | [NO.43](/content/43/HelloGitHub43.md) | [NO.42](/content/42/HelloGitHub42.md) | [NO.41](/content/41/HelloGitHub41.md) |
| [NO.40](/content/40/HelloGitHub40.md) | [NO.39](/content/39/HelloGitHub39.md) | [NO.38](/content/38/HelloGitHub38.md) | [NO.37](/content/37/HelloGitHub37.md) | [NO.36](/content/36/HelloGitHub36.md) |
| [NO.35](/content/35/HelloGitHub35.md) | [NO.34](/content/34/HelloGitHub34.md) | [NO.33](/content/33/HelloGitHub33.md) | [NO.32](/content/32/HelloGitHub32.md) | [NO.31](/content/31/HelloGitHub31.md) |
| [NO.30](/content/30/HelloGitHub30.md) | [NO.29](/content/29/HelloGitHub29.md) | [NO.28](/content/28/HelloGitHub28.md) | [NO.27](/content/27/HelloGitHub27.md) | [NO.26](/content/26/HelloGitHub26.md) |
diff --git a/content/01/HelloGitHub01.md b/content/01/HelloGitHub01.md
index f88641d4..7ce985f8 100644
--- a/content/01/HelloGitHub01.md
+++ b/content/01/HelloGitHub01.md
@@ -28,7 +28,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/02/HelloGitHub02.md b/content/02/HelloGitHub02.md
index e6f46125..ddaa053c 100644
--- a/content/02/HelloGitHub02.md
+++ b/content/02/HelloGitHub02.md
@@ -27,7 +27,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/03/HelloGitHub03.md b/content/03/HelloGitHub03.md
index a61fb59d..b2e54fdb 100644
--- a/content/03/HelloGitHub03.md
+++ b/content/03/HelloGitHub03.md
@@ -30,7 +30,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/04/HelloGitHub04.md b/content/04/HelloGitHub04.md
index 0dcbcab5..07d1f988 100644
--- a/content/04/HelloGitHub04.md
+++ b/content/04/HelloGitHub04.md
@@ -27,7 +27,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/05/HelloGitHub05.md b/content/05/HelloGitHub05.md
index 551a68f9..6de8cc8f 100644
--- a/content/05/HelloGitHub05.md
+++ b/content/05/HelloGitHub05.md
@@ -29,7 +29,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/06/HelloGitHub06.md b/content/06/HelloGitHub06.md
index 5e7b9d2b..88b1ff29 100644
--- a/content/06/HelloGitHub06.md
+++ b/content/06/HelloGitHub06.md
@@ -30,7 +30,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/07/HelloGitHub07.md b/content/07/HelloGitHub07.md
index 1959fd13..8e4b82d2 100644
--- a/content/07/HelloGitHub07.md
+++ b/content/07/HelloGitHub07.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/08/HelloGitHub08.md b/content/08/HelloGitHub08.md
index 3e9dd58e..e478e792 100644
--- a/content/08/HelloGitHub08.md
+++ b/content/08/HelloGitHub08.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/09/HelloGitHub09.md b/content/09/HelloGitHub09.md
index 5391b006..eaa08c26 100644
--- a/content/09/HelloGitHub09.md
+++ b/content/09/HelloGitHub09.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/10/HelloGitHub10.md b/content/10/HelloGitHub10.md
index dbd54c88..13f3603e 100644
--- a/content/10/HelloGitHub10.md
+++ b/content/10/HelloGitHub10.md
@@ -35,7 +35,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/11/HelloGitHub11.md b/content/11/HelloGitHub11.md
index d33a9347..b8c9ef0a 100644
--- a/content/11/HelloGitHub11.md
+++ b/content/11/HelloGitHub11.md
@@ -31,7 +31,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/12/HelloGitHub12.md b/content/12/HelloGitHub12.md
index 4595eff9..b51fef3d 100644
--- a/content/12/HelloGitHub12.md
+++ b/content/12/HelloGitHub12.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/13/HelloGitHub13.md b/content/13/HelloGitHub13.md
index 39cae9af..efef81a3 100644
--- a/content/13/HelloGitHub13.md
+++ b/content/13/HelloGitHub13.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
@@ -46,7 +46,7 @@
🔙 返回目录 🔙
### C# 项目
-2、[Dopamine](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/digimezzo/Dopamine):基于WPF编写的现代扁平风格轻量级播放器
+2、[dopamine-windows](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/digimezzo/dopamine-windows):基于WPF编写的现代扁平风格轻量级播放器
diff --git a/content/14/HelloGitHub14.md b/content/14/HelloGitHub14.md
index 71d99915..b60cb405 100644
--- a/content/14/HelloGitHub14.md
+++ b/content/14/HelloGitHub14.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/15/HelloGitHub15.md b/content/15/HelloGitHub15.md
index 4d551ec5..d6b6aa5d 100644
--- a/content/15/HelloGitHub15.md
+++ b/content/15/HelloGitHub15.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/16/HelloGitHub16.md b/content/16/HelloGitHub16.md
index ccdb1663..ead14206 100644
--- a/content/16/HelloGitHub16.md
+++ b/content/16/HelloGitHub16.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/17/HelloGitHub17.md b/content/17/HelloGitHub17.md
index 69e99301..6ab3b683 100644
--- a/content/17/HelloGitHub17.md
+++ b/content/17/HelloGitHub17.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/18/HelloGitHub18.md b/content/18/HelloGitHub18.md
index c910a87e..243159b3 100644
--- a/content/18/HelloGitHub18.md
+++ b/content/18/HelloGitHub18.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/19/HelloGitHub19.md b/content/19/HelloGitHub19.md
index ad5d451e..3f58da00 100644
--- a/content/19/HelloGitHub19.md
+++ b/content/19/HelloGitHub19.md
@@ -31,7 +31,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/20/HelloGitHub20.md b/content/20/HelloGitHub20.md
index df287ac3..9ccc4cd9 100644
--- a/content/20/HelloGitHub20.md
+++ b/content/20/HelloGitHub20.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/21/HelloGitHub21.md b/content/21/HelloGitHub21.md
index 185e4338..026f7b9f 100644
--- a/content/21/HelloGitHub21.md
+++ b/content/21/HelloGitHub21.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
@@ -191,7 +191,7 @@ print(", ".join(seg_list))
21、[android-training-course-in-chinese](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kesenhoo/android-training-course-in-chinese):Android 官方培训课程中文版,[在线阅读](http://hukai.me/android-training-course-in-chinese/index.html)
-22、[go-advices](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cristaloleg/go-advices):Go 建议[中文版](https://github.com/cristaloleg/go-advices/blob/master/README_ZH.md)
+22、[go-advice](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cristaloleg/go-advice):Go 建议[中文版](https://github.com/cristaloleg/go-advices/blob/master/README_ZH.md)
23、[git-flight-rules](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/k88hudson/git-flight-rules):Git 飞行规则,所谓飞行规则就是特定场景的非常详细的标准处理流程。该项目记录了使用 Git 过程中,如果遇到问题的解决办法和步骤,[中文](https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md)
diff --git a/content/22/HelloGitHub22.md b/content/22/HelloGitHub22.md
index dc9dd158..eee2f60a 100644
--- a/content/22/HelloGitHub22.md
+++ b/content/22/HelloGitHub22.md
@@ -29,7 +29,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/23/HelloGitHub23.md b/content/23/HelloGitHub23.md
index 0ed64591..a03a5f32 100644
--- a/content/23/HelloGitHub23.md
+++ b/content/23/HelloGitHub23.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/24/HelloGitHub24.md b/content/24/HelloGitHub24.md
index 45060dba..13e4edfe 100644
--- a/content/24/HelloGitHub24.md
+++ b/content/24/HelloGitHub24.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/25/HelloGitHub25.md b/content/25/HelloGitHub25.md
index 6a088bb3..a2731aae 100644
--- a/content/25/HelloGitHub25.md
+++ b/content/25/HelloGitHub25.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/26/HelloGitHub26.md b/content/26/HelloGitHub26.md
index f5eaf609..992c2dba 100644
--- a/content/26/HelloGitHub26.md
+++ b/content/26/HelloGitHub26.md
@@ -35,7 +35,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/27/HelloGitHub27.md b/content/27/HelloGitHub27.md
index 1f1cba45..22f1dd43 100644
--- a/content/27/HelloGitHub27.md
+++ b/content/27/HelloGitHub27.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/28/HelloGitHub28.md b/content/28/HelloGitHub28.md
index bb609d82..8faaa5e1 100644
--- a/content/28/HelloGitHub28.md
+++ b/content/28/HelloGitHub28.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/29/HelloGitHub29.md b/content/29/HelloGitHub29.md
index 1d688b67..f11bf00d 100644
--- a/content/29/HelloGitHub29.md
+++ b/content/29/HelloGitHub29.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/30/HelloGitHub30.md b/content/30/HelloGitHub30.md
index eaf7a0e2..bc8cba0b 100644
--- a/content/30/HelloGitHub30.md
+++ b/content/30/HelloGitHub30.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/31/HelloGitHub31.md b/content/31/HelloGitHub31.md
index 4bc1c94e..bd0d79de 100644
--- a/content/31/HelloGitHub31.md
+++ b/content/31/HelloGitHub31.md
@@ -32,7 +32,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/32/HelloGitHub32.md b/content/32/HelloGitHub32.md
index 8e1fee0a..6c5b213d 100644
--- a/content/32/HelloGitHub32.md
+++ b/content/32/HelloGitHub32.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/33/HelloGitHub33.md b/content/33/HelloGitHub33.md
index d307ba36..c62eb1c8 100644
--- a/content/33/HelloGitHub33.md
+++ b/content/33/HelloGitHub33.md
@@ -35,7 +35,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/34/HelloGitHub34.md b/content/34/HelloGitHub34.md
index c0a40bd9..9c0620e1 100644
--- a/content/34/HelloGitHub34.md
+++ b/content/34/HelloGitHub34.md
@@ -33,7 +33,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/35/HelloGitHub35.md b/content/35/HelloGitHub35.md
index f5740a72..a626cbf5 100644
--- a/content/35/HelloGitHub35.md
+++ b/content/35/HelloGitHub35.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/36/HelloGitHub36.md b/content/36/HelloGitHub36.md
index 12817e71..f525eb0b 100644
--- a/content/36/HelloGitHub36.md
+++ b/content/36/HelloGitHub36.md
@@ -37,7 +37,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/37/HelloGitHub37.md b/content/37/HelloGitHub37.md
index 495e65f2..5e6491e7 100644
--- a/content/37/HelloGitHub37.md
+++ b/content/37/HelloGitHub37.md
@@ -35,7 +35,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/38/HelloGitHub38.md b/content/38/HelloGitHub38.md
index 8c2c7205..f1ec4b00 100644
--- a/content/38/HelloGitHub38.md
+++ b/content/38/HelloGitHub38.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/39/HelloGitHub39.md b/content/39/HelloGitHub39.md
index 5188b9a4..e146ffbd 100644
--- a/content/39/HelloGitHub39.md
+++ b/content/39/HelloGitHub39.md
@@ -37,7 +37,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/40/HelloGitHub40.md b/content/40/HelloGitHub40.md
index 7f8aedde..3df60a39 100644
--- a/content/40/HelloGitHub40.md
+++ b/content/40/HelloGitHub40.md
@@ -37,7 +37,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/41/HelloGitHub41.md b/content/41/HelloGitHub41.md
index 64d9c12e..65810748 100644
--- a/content/41/HelloGitHub41.md
+++ b/content/41/HelloGitHub41.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/42/HelloGitHub42.md b/content/42/HelloGitHub42.md
index 4e1c0050..2480dffc 100644
--- a/content/42/HelloGitHub42.md
+++ b/content/42/HelloGitHub42.md
@@ -36,7 +36,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/43/HelloGitHub43.md b/content/43/HelloGitHub43.md
index 3b414d32..88c2091f 100644
--- a/content/43/HelloGitHub43.md
+++ b/content/43/HelloGitHub43.md
@@ -36,7 +36,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
diff --git a/content/44/HelloGitHub44.md b/content/44/HelloGitHub44.md
index 05f075ea..1ea3a7d5 100644
--- a/content/44/HelloGitHub44.md
+++ b/content/44/HelloGitHub44.md
@@ -34,7 +34,7 @@
**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
-
+
欢迎关注 HelloGitHub 公众号
@@ -244,7 +244,7 @@ do {
- 『上一期』 | 反馈和建议 | 『下一期』
+ 『上一期』 | 反馈和建议 | 『下一期』
---
diff --git a/content/45/HelloGitHub45.md b/content/45/HelloGitHub45.md
new file mode 100644
index 00000000..fff52cca
--- /dev/null
+++ b/content/45/HelloGitHub45.md
@@ -0,0 +1,449 @@
+# 《HelloGitHub》第 45 期
+>兴趣是最好的老师,**HelloGitHub** 就是帮你找到兴趣!
+
+
+
+
+## 简介
+分享 GitHub 上有趣、入门级的开源项目。
+
+这是一个面向**编程新手**、**热爱编程**、**对开源社区感兴趣** 人群的月刊,月刊的内容包括:**各种编程语言的项目**、**让生活变得更美好的工具**、**书籍、学习笔记、教程等**,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到**开源社区**中。
+- 会编程的可以贡献代码
+- 不会编程的可以反馈使用这些工具中的 Bug
+- 帮着宣传你觉得优秀的项目
+- Star 项目⭐️
+
+在浏览、参与这些项目的过程中,你将学习到**更多编程知识**、**提高编程技巧**、**找到编程的乐趣**。
+
+🎉 最后 HelloGitHub 这个项目就诞生了 🎉
+
+## 目录
+- [C 项目](#C-项目)
+- [C# 项目](#C-项目-1)
+- [C++ 项目](#C-项目-2)
+- [Go 项目](#Go-项目)
+- [Java 项目](#Java-项目)
+- [JavaScript 项目](#JavaScript-项目)
+- [Kotlin 项目](#Kotlin-项目)
+- [Python 项目](#Python-项目)
+- [Ruby 项目](#Ruby-项目)
+- [其它](#其它)
+- [开源书籍](#开源书籍)
+- [机器学习](#机器学习)
+
+
+**Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。
+
+
+
+欢迎关注 HelloGitHub 公众号
+
+
+## 内容
+> **以下为本期内容**|每个月 **28** 号发布最新一期
+
+### C 项目
+1、[smartdns](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pymumu/smartdns):一个运行在本地的 DNS 服务器。能够提高网络访问速度等诸多妙用,架构图如下:
+
+
+
+2、[xmake](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xmake-io/xmake):一个基于 Lua 的轻量级跨平台自动构建工具。支持在各种主流平台上构建项目,主要用于解决 C/C++ 项目的跨平台构建,同时支持与其他语言的混合编译。工程配置语法简单易读,对初学者友好、上手方便
+```bash
+add_requires("libuv master", "ffmpeg", "zlib 1.20.*", "tbox >1.6.1")
+target("test")
+ set_kind("shared")
+ add_files("src/*.c")
+ add_packages("libuv", "ffmpeg", "tbox", "zlib")
+```
+
+
+
+🔙 返回目录 🔙
+
+### C# 项目
+3、[gui.cs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/migueldeicaza/gui.cs):支持 Windows 和 Linux/Unix 的 .NET 终端 UI 工具库。方便实现终端 GUI 工具,并且可以实现终端中用鼠标啦
+
+
+
+4、[Blog.Core](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/anjoy8/Blog.Core):基于 ASP.NET Core 和 Vue 从零开始搭建前后端分离项目教程+实战项目。该项目从 .NET Core 基础讲起,内容完整、系统,对初学者和有一定基础的小伙伴都有借鉴和学习的价值
+
+
+
+🔙 返回目录 🔙
+
+### C++ 项目
+5、[ThreadPool](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/progschj/ThreadPool):一个简单的 C++11 线程池实现,代码加起来不到 100 行。示例代码:
+```c++
+// create thread pool with 4 worker threads
+ThreadPool pool(4);
+
+// enqueue and store future
+auto result = pool.enqueue([](int answer) { return answer; }, 42);
+
+// get result from future
+std::cout << result.get() << std::endl;
+```
+
+6、[xournalpp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xournalpp/xournalpp):一款支持 PDF 手写注释的笔记软件,支持 Linux、Windows、macOS 平台。看书的时候喜欢标注、做笔记,那这款工具肯定适合你。[下载地址](https://github.com/xournalpp/xournalpp/releases)
+
+
+
+7、[pika](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Qihoo360/pika):一个企业级开源的可持久化的大容量(百G)redis 存储服务。兼容 redis 的绝大部分接口,解决 redis 由于存储数据量巨大而导致内存不够用的容量瓶颈。并且可以像 redis 一样,通过 slaveof 命令进行主从备份,支持全同步和部分同步
+
+🔙 返回目录 🔙
+
+### Go 项目
+8、[pg_flame](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mgartner/pg_flame):Postgres 数据库性能分析工具,把 `EXPLAIN ANALYZE` 结果通过火焰图展示
+
+
+
+9、[goproxy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/goproxyio/goproxy):Go 模块安装代理工具。还在因为安装 Go 项目依赖失败而抓耳挠腮吗?快试试这个项目吧
+
+
+
+10、[gods](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/emirpasic/gods):简单易用的 Go 语言各种数据结构和算法,并封装成了一个库,开箱即食。示例代码:
+```go
+type Stack interface {
+ Push(value interface{})
+ Pop() (value interface{}, ok bool)
+ Peek() (value interface{}, ok bool)
+
+ containers.Container
+ // Empty() bool
+ // Size() int
+ // Clear()
+ // Values() []interface{}
+}
+```
+
+11、[gowp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xxjwxc/gowp):Go 高性能异步并发线程池。接口调用简单、支持错误返回、无论排队多少任务,都不会阻止提交任务。可用于控制并发访问、并发执行。示例代码:
+```go
+package main
+
+import (
+ "fmt"
+ "time"
+
+ "github.com/xxjwxc/gowp/workpool"
+)
+
+func main() {
+ wp := workpool.New(10) //设置最大线程数
+ for i := 0; i < 20; i++ { //开启20个请求
+ ii := i
+ wp.Do(func() error {
+ for j := 0; j < 10; j++ { //每次打印0-10的值
+ time.Sleep(1 * time.Second)
+ }
+ return nil
+ })
+ }
+
+ wp.Wait()
+ fmt.Println("down")
+}
+```
+
+12、[gf](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gogf/gf):一款高性能、功能丰富的 Go Web 框架。特点:
+- 模块化、松耦合设计
+- 模块丰富,开箱即用
+- 简便及可维护性为宗旨
+- 详尽的开发文档及示例
+- 完善的本地中文化支持
+- 等等
+
+
+
+🔙 返回目录 🔙
+
+### Java 项目
+13、[SnowJena](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yueshutong/SnowJena):基于令牌桶算法实现的分布式无锁限流框架。简单易用的 API,开箱即用、支持熔断降级、动态配置规则、可视化监控等功能。示例代码:
+```java
+public class AppTest {
+ Logger logger = LoggerFactory.getLogger(getClass());
+ /**
+ * 本地限流
+ */
+ @Test
+ public void test1() {
+ // 1.配置规则
+ RateLimiterRule rateLimiterRule = new RateLimiterRuleBuilder()
+ .setLimit(1)
+ .setPeriod(1)
+ .setUnit(TimeUnit.SECONDS) //每秒令牌数为1
+ .build();
+ // 2.工厂模式生产限流器
+ RateLimiter limiter = RateLimiterFactory.of(rateLimiterRule);
+ // 3.使用
+ while (true) {
+ if (limiter.tryAcquire()) {
+ logger.info("ok");
+ }
+ }
+ }
+}
+```
+
+
+
+14、[holer](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wisdom-projects/holer):一个将局域网中的应用映射到公网访问的端口映射软件,支持转发基于 TCP 协议的报文。内网穿透工具,包含 Web 后台管理系统。用到的技术如下:
+- 服务端采用 SpringBoot 和 Netty 实现
+- 客户端采用 Java Netty 和 Go 语言实现
+
+
+
+15、[miaosha](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/qiurunze123/miaosha):一款秒杀系统设计与实现。高并发大流量的秒杀是面试常见问题,该项目不仅有具体问题的解决思路,还有具体代码实现和示例 demo,全部理解、学习后相信秒杀问题再也拦不住你啦
+
+
+
+🔙 返回目录 🔙
+
+### JavaScript 项目
+16、[postwoman](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/liyasthomas/postwoman):一款基于 Node.js 的免费开源、便捷美观的 API 调试工具。它是调试接口的利器,能够尽快的发现问题提高开发效率。相信体会过 Postman 的同学,看到这个项目的名字就已经跃跃欲试了
+
+
+
+17、[react-text-loop](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/braposo/react-text-loop):实现文字循环展示的 React 组件
+
+
+
+18、[uform](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/uform):一款面向企业级复杂场景的高性能表单解决方案。特性:
+- 🚀 高性能,字段分布式渲染,大大减轻 React 渲染压力
+- 💡 支持 Ant Design/Fusion Next 组件体系
+- 🎨 JSX 标签化写法/JSON Schema 数据驱动方案无缝迁移过渡
+- 🏅 副作用逻辑独立管理,涵盖各种复杂联动校验逻辑
+- 🌯 支持各种表单复杂布局方案
+
+
+
+19、[rc-bullets](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zerosoul/rc-bullets):基于 CSS3 Animation 使用 React 构建的弹幕组件。[演示地址](http://zerosoul.github.io/rc-bullets),支持功能:
+- 管理弹幕:暂停、隐藏、清屏等
+- 设置弹幕:速度、循环次数、延迟播放、自定义动画类型等
+
+```javascript
+import React, { useEffect, useState } from 'react';
+import BulletScreen, { StyledBullet } from 'rc-bullets';
+
+const headUrl='https://zerosoul.github.io/rc-bullets/assets/img/heads/girl.jpg';
+export default function Demo() {
+ // 弹幕屏幕
+ const [screen, setScreen] = useState(null);
+ // 弹幕内容
+ const [bullet, setBullet] = useState('');
+ useEffect(() => {
+ // 给页面中某个元素初始化弹幕屏幕,一般为一个大区块
+ let s = new BulletScreen('.screen');
+ // or
+ // let s=new BulletScreen(document.querySelector('.screen));
+ setScreen(s);
+ }, []);
+ // 弹幕内容输入事件处理
+ const handleChange = ({ target: { value } }) => {
+ setBullet(value);
+ };
+ // 发送弹幕
+ const handleSend = () => {
+ if (bullet) {
+ // push 纯文本
+ screen.push(bullet);
+ // or 使用 StyledBullet
+
+ screen.push(
+
+ );
+ // or 还可以这样使用,效果等同使用 StyledBullet 组件
+ screen.push({msg:bullet,head:headUrl,color:"#eee" bgColor:"rgba(2,2,2,.3)"})
+ }
+ };
+ return (
+
+
+
+
+
+ );
+}
+```
+
+
+
+20、[react-loading](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sixiaodong123/react-loading):一款轻量、开箱即用并且支持按需加载的 React 动画组件库。示例代码:
+```javascript
+import React from 'react';
+import { DisappearedLoading } from 'react-loadingg';
+const Container = () => ;
+export default Container;
+```
+
+
+
+🔙 返回目录 🔙
+
+### Kotlin 项目
+21、[SketchyComponent](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/m-zylab/SketchyComponent):一款 Android 上的手绘风格组件库。该库提供了一些基础图形和 icon,以及便捷的自定义能力。之前介绍过手绘风格的图表库大家很喜欢,这回是 Android 组件库不知道对不对大家的胃口。示例代码:
+```java
+// 1. 创建 Sketchy 图形
+val skSquareDrawable = SkSquareDrawable().apply {
+ // 2. 设置属性
+ fillColor = resources.getColor(android.R.color.holo_orange_dark)
+}
+// 3. 给 View 设置背景
+text.background = skSquareDrawable
+```
+
+
+
+🔙 返回目录 🔙
+
+### Python 项目
+22、[memory_profiler](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pythonprofilers/memory_profiler):Python 程序内存占用分析工具。示例代码:
+```python
+# 采用装饰器的方式引用,不影响现有代码
+@profile
+def my_func():
+ a = [1] * (10 ** 6)
+ b = [2] * (2 * 10 ** 7)
+ del b
+ return a
+
+if __name__ == '__main__':
+ my_func()
+
+# 运行命令:python -m memory_profiler example.py
+# 输出:
+Line # Mem usage Increment Line Contents
+==============================================
+ 3 @profile
+ 4 5.97 MB 0.00 MB def my_func():
+ 5 13.61 MB 7.64 MB a = [1] * (10 ** 6)
+ 6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7)
+ 7 13.61 MB -152.59 MB del b
+ 8 13.61 MB 0.00 MB return a
+```
+
+23、[PySimpleGUI](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/PySimpleGUI/PySimpleGUI):Python GUI 编程库,它是将 tkinter、Qt、Remi、WxPython 封装成更人性化的接口。示例代码和效果如下:
+```python
+import PySimpleGUI as sg
+
+sg.theme('DarkAmber') # 设置主题颜色
+# 界面内包含的东西
+layout = [ [sg.Text('Some text on Row 1')],
+ [sg.Text('Enter something on Row 2'), sg.InputText()],
+ [sg.Button('Ok'), sg.Button('Cancel')] ]
+
+# 创建窗口
+window = sg.Window('Window Title', layout)
+# 监听事件
+while True:
+ event, values = window.read()
+ if event in (None, 'Cancel'): # 用户点击取消按钮事件
+ break
+ print('You entered ', values[0])
+
+window.close()
+```
+
+
+
+24、[mitmproxy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mitmproxy/mitmproxy):基于 Python 语言开发的抓包工具。支持命令行、Web 平台的形式展示抓包结果,还能通过 Python 引用库来拦截、控制响应和请求。下图展示为命令行使用界面(类 vim 操作)
+
+
+
+25、[PythonPlantsVsZombies](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/marblexu/PythonPlantsVsZombies):Python 语言编写的植物大战僵尸。学习如何使用 Python 编写小游戏的极佳例子,运行步骤:
+```
+1. 需要 Python 3
+2. 安装依赖库:pip install pygame
+3. python main.py
+```
+
+
+
+🔙 返回目录 🔙
+
+### Ruby 项目
+26、[pghero](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ankane/pghero):Postgres 性能监控服务。让你对 pg 数据库的性能了如指掌
+
+
+
+🔙 返回目录 🔙
+
+### 其它
+27、[clean-code-javascript](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ryanmcdermott/clean-code-javascript):《Clean Code JavaScript》(JavaScript 代码整洁之道),这是根据《代码整洁之道》作者多年经验整理的 JS 代码优化建议,但也仅仅只是一份建议。[中文](https://github.com/alivebao/clean-code-js)
+
+28、[wenyan-lang](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LingDong-/wenyan-lang):文言文编程语言。文言文语法,可以编译成 JavaScript、Python 或者 Ruby,你见过用文言文编写程序吗?快来试试吧。[在线尝试](http://wenyan-lang.lingdong.works/ide.html)
+
+
+
+29、[short_url](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Youthink/short_url):Elixir 语言开发的支持自定义短码的短链接服务。新手可以参考该项目源码和[原理解析](https://hufangyun.com/2017/short-url/),理解、实现短链接服务的同时,体验用 Elixir 语言开发一个 Web 服务。[在线尝试](https://fearless-trustworthy-aidi.gigalixirapp.com/)
+
+
+
+30、[pytest-chinese-doc](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/luizyao/pytest-chinese-doc):pytest 自动化测试框架的官方文档(5.1.3 版本)的中文翻译。但不仅仅是简单的翻译:
+- 更多的示例:所有的示例代码都在 docs 目录下,以章节划分,尽量覆盖每个知识点
+- 更多的拓展阅读:添加了学习时所查阅的资料、阅读的源码等,也是作者学习和思考的历程
+
+🔙 返回目录 🔙
+
+### 开源书籍
+31、[machine-learning-systems-design](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chiphuyen/machine-learning-systems-design):一本关于机器学习系统设计的小册子附有练习题
+
+32、[front-end-handbook-2019](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FrontendMasters/front-end-handbook-2019):《Front-End Developer Handbook 2019》(前端开发者手册 2019 版)。该书适合任何阶段的人用来了解前端开发实践的指南,它概述和讨论了前端工程的实践:如何学习前端、在 2019 年进行前端实践时应该使用哪些工具。[在线阅读](https://frontendmasters.com/books/front-end-handbook/2019/)
+
+🔙 返回目录 🔙
+
+### 机器学习
+33、[SSD-Pytorch](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yatengLG/SSD-Pytorch):完整的目标检测项目。结构简洁明了,中文注释。适宜新手入门、目标检测任务参考,甚至直接基于本项目实现目标检测任务。示例代码:
+```python
+# 实例化模型:模型的具体各种参数在 Config 文件中进行配置
+net = SSD(cfg)
+# 将模型移动到 GPU 上,cfg.DEVICE.MAINDEVICE 定义了模型所使用的主 GPU
+# 模型的参数更新会在主 GPU 上进行
+net.to(cfg.DEVICE.MAINDEVICE)
+
+# 初始化训练器:训练器参数已通过 cfg 进行配置;也可传入参数进行配置(但不建议)
+trainer = Trainer(cfg, max_iter=None, batch_size=None,
+ train_devices=None, model_save_step=None,
+ model_save_root=None, vis = None, vis_step=None)
+# 训练器开始:在数据集上训练模型
+trainer(net, train_dataset)
+```
+
+34、[AIDungeon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/AIDungeon/AIDungeon):一个基于机器学习的地下城文字游戏。此项目介绍了如何使用机器学习构建一个游戏,代码简单清晰适合 AI 爱好者深入研究
+
+
+
+35、[face_recognition](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ageitgey/face_recognition):上手快速、简单易用的人脸识别库。该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。同时提供了一个简单的面部识别命令行工具,允许您对来自命令行的图像文件夹进行面部识别。完整的开发文档和应用案例,并且兼容树莓派系统(对配置要求低),对于初学者来说可以通过这个项目感受人脸识别或机器学习带来的乐趣。示例代码:
+```python
+# 定位图片中的所有人脸:
+import face_recognition
+image = face_recognition.load_image_file("your_file.jpg")
+face_locations = face_recognition.face_locations(image)
+
+# 识别人脸关键点,包括眼睛、鼻子、嘴和下巴
+import face_recognition
+image = face_recognition.load_image_file("your_file.jpg")
+face_landmarks_list = face_recognition.face_landmarks(image)
+```
+
+
+
+🔙 返回目录 🔙
+
+
+
+
+ 『上一期』 | 反馈和建议 | 『下一期』
+
+
+---
+
+ 看完了,还不够?<科技爱好者周刊>。还不过瘾,那就看看 <往期内容>吧。
+ 点击分享发现的有趣项目
+
+
+
+## 声明
+
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。
diff --git a/content/contributors.md b/content/contributors.md
index 3cd1e4d5..c795f029 100644
--- a/content/contributors.md
+++ b/content/contributors.md
@@ -75,7 +75,8 @@
[wsdjeg](https://github.com/wsdjeg)、[NoneGG](https://github.com/NoneGG)、[zdhxiong](https://github.com/zdhxiong)、[zhuyingda](https://github.com/zhuyingda)、[xnum](https://github.com/xnum)、[JessYanCoding](https://github.com/JessYanCoding)、[zmrenwu](https://github.com/zmrenwu)、[eatage](https://github.com/eatage)、[tamlok](https://github.com/tamlok)、[pipiliang](https://github.com/pipiliang)、[DIYgod](https://github.com/DIYgod)、[Wlitsoft](https://github.com/Wlitsoft)、[gyh1621](https://github.com/gyh1621)、[crossoverJie](https://github.com/crossoverJie)、[Denon](https://github.com/Denon)、[chinesedfan](https://github.com/chinesedfan)、[joeyguo](https://github.com/joeyguo)、[LRH1993](https://github.com/LRH1993)、[hsluoyz](https://github.com/hsluoyz)、[jhao104](https://github.com/jhao104)、[ResolveWang](https://github.com/ResolveWang)、[asheigithub](https://github.com/asheigithub)、[maning0303](https://github.com/maning0303)、[torchcode](https://github.com/torchcode)、[yan-xz](https://github.com/yan-xz)、[TerryZ](https://github.com/TerryZ)、[trazyn](https://github.com/trazyn)、
[hujiulong](https://github.com/hujiulong)、[xcyf008](https://github.com/xcyf008)、[eastseven](https://github.com/eastseven)、[BillWang139967](https://github.com/BillWang139967)、[gee1k(2)](https://github.com/gee1k)、[answershuto](https://github.com/answershuto)、[linguowei](https://github.com/linguowei)、[Rictusempra](https://github.com/Rictusempra)、[Juliiii](https://github.com/Juliiii)、[Kerr1Gan](https://github.com/Kerr1Gan)、[haifenghuang(2)](https://github.com/haifenghuang)、[lilijialiang](https://github.com/lilijialiang)、[Prodesire](https://github.com/Prodesire)、[viclm](https://github.com/viclm)、[wynter-wang](https://github.com/wynter-wang)、[dianbaer](https://github.com/dianbaer)、[biezhi](https://github.com/biezhi)、[itgoyo(4)](https://github.com/itgoyo)、[yhaolpz](https://github.com/yhaolpz)、[smarthadron](https://github.com/smarthadron)、[mapletower](https://github.com/mapletower)
、[nicholaslee119](https://github.com/nicholaslee119)、[RitterHou](https://github.com/RitterHou)、[PuShaoWei](https://github.com/PuShaoWei)、[luckybilly(3)](https://github.com/luckybilly)、[doyoyob](https://github.com/doyoyob)、[Qiu800820](https://github.com/Qiu800820)、[zeed-w-beez](https://github.com/zeed-w-beez)、[aOrz](https://github.com/aOrz)、[lt94](https://github.com/lt94)、[Chyroc](https://github.com/Chyroc)、[Lision](https://github.com/Lision)、[fhxsnabi](https://github.com/fhxsnabi)、[CuberL](https://github.com/CuberL)、[tangweikun](https://github.com/tangweikun)、[FrontMage](https://github.com/FrontMage)、[iamjohnnyzhuang](https://github.com/iamjohnnyzhuang)、[aosen](https://github.com/aosen)、[clayclayclay](https://github.com/clayclayclay)、[zazzaz](https://github.com/zazzaz)、[BolexLiu](https://github.com/BolexLiu)、[DotzuX](https://github.com/DotzuX)、[junxiaosong](https://github.com/junxiaosong)、[M-Adoo](https://github.com/M-Adoo)、[zhihaozhang](https://github.com/zhihaozhang)、[starlying](https://github.com/starlying)、[Alinshans](https://github.com/Alinshans)、[HJ-Money](https://github.com/HJ-Money)、[topcss](https://github.com/topcss)、[twhuang-uiuc](https://github.com/twhuang-uiuc)、[maychair](https://github.com/maychair)、[mumuy](https://github.com/mumuy)、[sufuf3](https://github.com/sufuf3)、[succlz123](https://github.com/succlz123)、[sunloj](https://github.com/sunloj)、[HuanHaiLiuXin](https://github.com/HuanHaiLiuXin)、[lijinke666](https://github.com/lijinke666)、[chrislinan](https://github.com/chrislinan)、[ThinkpadNC5](https://github.com/ThinkpadNC5)、[appleboy](https://github.com/appleboy)、[objcoding](https://github.com/objcoding)、[songtianyi](https://github.com/songtianyi)、[simplepeng](https://github.com/simplepeng)、[xia-tong](https://github.com/xia-tong)、[wonderfulsuccess](https://github.com/wonderfulsuccess)、[Qsnh](https://github.com/Qsnh)、[Larry850806](https://github.com/Larry850806)、[NamelessAshone(3)](https://github.com/NamelessAshone)、[pench3r](https://github.com/pench3r)、[hon-key](https://github.com/hon-key)、[huangyz0918](https://github.com/huangyz0918)、[pujiaxin33](https://github.com/pujiaxin33)、[cnwangjie](https://github.com/cnwangjie)、[dada0z](https://github.com/dada0z)、[adrianzhang](https://github.com/adrianzhang)、[Sugar250](https://github.com/Sugar250)、[itisyang(2)](https://github.com/itisyang)、[imageslr](https://github.com/imageslr)、[kaixinbaba(2)](https://github.com/kaixinbaba)、[looly](https://github.com/looly)、[wojs5](https://github.com/wojs5)、[xianhu](https://github.com/xianhu)、[hhxsv5](https://github.com/hhxsv5)、[LanjianNUll](https://github.com/LanjianNUll)、[bestvist](https://github.com/bestvist)、[dntzhang](https://github.com/dntzhang)、[KunMinX(2)](https://github.com/KunMinX)、[afkT](https://github.com/afkT)、[syt123450](https://github.com/syt123450)、[Seaear](https://github.com/Seaear)、[huangjianke](https://github.com/huangjianke)、[howie6879](https://github.com/howie6879)、[teeyog](https://github.com/teeyog)、[zyupo](https://github.com/zyupo)、[my8100](https://github.com/my8100)、[daniel-dx](https://github.com/daniel-dx)、[googege](https://github.com/googege)、[LucienShui](https://github.com/LucienShui)、[mds1455975151](https://github.com/mds1455975151)、[zzugbb](https://github.com/zzugbb)、[qianguyihao](https://github.com/qianguyihao)、[dantangfan](https://github.com/dantangfan)、[wenzhixin](https://github.com/wenzhixin)、[tangdou1](https://github.com/tangdou1)、[inhere](https://github.com/inhere)、[kulics](https://github.com/kulics)、[nosarthur](https://github.com/nosarthur)、[byronz](https://github.com/byronz)、[jdneo](https://github.com/jdneo)、[zhaoolee(2)](https://github.com/zhaoolee)
-、[hzwer](https://github.com/hzwer)、[xunki](https://github.com/xunki)、[azl397985856](https://github.com/azl397985856)、[96486d9b](https://github.com/96486d9b)、[5A59(2)](https://github.com/5A59)、[prprprus](https://github.com/prprprus)、[EddieIvan01](https://github.com/EddieIvan01)、[ddzy(2)](https://github.com/ddzy)、[mylxsw(2)](https://github.com/mylxsw)、[liyuexing](https://github.com/liyuexing)、[auxten](https://github.com/auxten)、[xmyl](https://github.com/xmyl)、[mintsweet](https://github.com/mintsweet)、[colinlet](https://github.com/colinlet)、[yubozhao](https://github.com/yubozhao)、[vicanso](https://github.com/vicanso)、[AICareless](https://github.com/AICareless)、[LYXmoonstars](https://github.com/LYXmoonstars)、[RobiNexy(2)](https://github.com/RobiNexy)、[buppter(2)](https://github.com/buppter)、[Macr0phag3](https://github.com/Macr0phag3)、[haizhilin2013](https://github.com/haizhilin2013)、[xiaoxiaopingzi](https://github.com/xiaoxiaopingzi)、[WarpPrism](https://github.com/WarpPrism)、[dkzwm](https://github.com/dkzwm)、[wonderbeyond](https://github.com/wonderbeyond)、[Gltina](https://github.com/Gltina)、[2881099(3)](https://github.com/2881099)、[bsharkl(2)](https://github.com/bsharkl)、[xiaochunjimmy](https://github.com/xiaochunjimmy)、[TrustTheBoy](https://github.com/TrustTheBoy)、[layumi](https://github.com/layumi)、[deathearth](https://github.com/deathearth)、[holylovelqq](https://github.com/holylovelqq)、[yhlben](https://github.com/yhlben)、[tony0705](https://github.com/tony0705)、[ZhimingYan](https://github.com/ZhimingYan)、[leaicc(2)](https://github.com/leaicc)、[sugar1569](https://github.com/sugar1569)、[surunzi](https://github.com/surunzi)、[shabake](https://github.com/shabake)、[codexu](https://github.com/codexu)、[CasualJi](https://github.com/CasualJi)、[franklingu](https://github.com/franklingu)、[JacksonWuxs](https://github.com/JacksonWuxs)、[GMWorkStudio](https://github.com/GMWorkStudio)、[timqian](https://github.com/timqian)、[Mckinsey666(2)](https://github.com/Mckinsey666)、[JohnnyTing(3)](https://github.com/JohnnyTing)、[jtyoui](https://github.com/jtyoui)、[xuexiangjys(2)](https://github.com/xuexiangjys)、[guanpengchn](https://github.com/guanpengchn)、[wei](https://github.com/wei)、[QingZ11](https://github.com/QingZ11)、[Yanwenjiepy](https://github.com/Yanwenjiepy)、[Windsooon](https://github.com/Windsooon)、[lsqy](https://github.com/lsqy)、[Q-Angelo](https://github.com/Q-Angelo)、[MZCretin](https://github.com/MZCretin)、[heibaiying](https://github.com/heibaiying)、[caozhiyi](https://github.com/caozhiyi)、[heucoder](https://github.com/heucoder)、[yinxin630](https://github.com/yinxin630)、[westfly](https://github.com/westfly)、[yanghongfei](https://github.com/yanghongfei)、[ListenLove](https://github.com/ListenLove)、[leviding](https://github.com/leviding)、[LeeLejia](https://github.com/LeeLejia)、[LockGit](https://github.com/LockGit)、[KubeOperator](https://github.com/KubeOperator)、[newbee-mall](https://github.com/newbee-mall)、[vortesnail](https://github.com/vortesnail)、[int64ago](https://github.com/int64ago)、[Dom-Wang](https://github.com/Dom-Wang)、[Youthink](https://github.com/Youthink)、[luizyao](https://github.com/luizyao)、[anjoy8](https://github.com/anjoy8)、[waruqi](https://github.com/waruqi)、[xxjwxc](https://github.com/xxjwxc)、[mingzaily](https://github.com/mingzaily)、[yatengLG](https://github.com/yatengLG)、[GatesMa](https://github.com/GatesMa)
+、[hzwer](https://github.com/hzwer)、[xunki](https://github.com/xunki)、[azl397985856](https://github.com/azl397985856)、[96486d9b](https://github.com/96486d9b)、[5A59(2)](https://github.com/5A59)、[prprprus](https://github.com/prprprus)、[EddieIvan01](https://github.com/EddieIvan01)、[ddzy(2)](https://github.com/ddzy)、[mylxsw(2)](https://github.com/mylxsw)、[liyuexing](https://github.com/liyuexing)、[auxten](https://github.com/auxten)、[xmyl](https://github.com/xmyl)、[mintsweet](https://github.com/mintsweet)、[colinlet](https://github.com/colinlet)、[yubozhao](https://github.com/yubozhao)、[vicanso](https://github.com/vicanso)、[AICareless](https://github.com/AICareless)、[LYXmoonstars](https://github.com/LYXmoonstars)、[RobiNexy(2)](https://github.com/RobiNexy)、[buppter(2)](https://github.com/buppter)、[Macr0phag3](https://github.com/Macr0phag3)、[haizhilin2013](https://github.com/haizhilin2013)、[xiaoxiaopingzi](https://github.com/xiaoxiaopingzi)、[WarpPrism](https://github.com/WarpPrism)、[dkzwm](https://github.com/dkzwm)、[wonderbeyond](https://github.com/wonderbeyond)、[Gltina](https://github.com/Gltina)、[2881099(3)](https://github.com/2881099)、[bsharkl(2)](https://github.com/bsharkl)、[xiaochunjimmy](https://github.com/xiaochunjimmy)、[TrustTheBoy](https://github.com/TrustTheBoy)、[layumi](https://github.com/layumi)、[deathearth](https://github.com/deathearth)、[holylovelqq](https://github.com/holylovelqq)、[yhlben](https://github.com/yhlben)、[tony0705](https://github.com/tony0705)、[ZhimingYan](https://github.com/ZhimingYan)、[leaicc(2)](https://github.com/leaicc)、[sugar1569](https://github.com/sugar1569)、[surunzi](https://github.com/surunzi)、[shabake](https://github.com/shabake)、[codexu](https://github.com/codexu)、[CasualJi](https://github.com/CasualJi)、[franklingu](https://github.com/franklingu)、[JacksonWuxs](https://github.com/JacksonWuxs)、[GMWorkStudio](https://github.com/GMWorkStudio)、[timqian](https://github.com/timqian)、[Mckinsey666(2)](https://github.com/Mckinsey666)、[JohnnyTing(3)](https://github.com/JohnnyTing)、[jtyoui](https://github.com/jtyoui)、[xuexiangjys(2)](https://github.com/xuexiangjys)、[guanpengchn](https://github.com/guanpengchn)、[wei](https://github.com/wei)、[QingZ11](https://github.com/QingZ11)、[Yanwenjiepy](https://github.com/Yanwenjiepy)、[Windsooon](https://github.com/Windsooon)、[lsqy](https://github.com/lsqy)、[Q-Angelo](https://github.com/Q-Angelo)、[MZCretin](https://github.com/MZCretin)、[heibaiying](https://github.com/heibaiying)、[caozhiyi](https://github.com/caozhiyi)、[heucoder](https://github.com/heucoder)、[yinxin630](https://github.com/yinxin630)、[westfly](https://github.com/westfly)、[yanghongfei](https://github.com/yanghongfei)、[ListenLove](https://github.com/ListenLove)、[leviding](https://github.com/leviding)、[LeeLejia](https://github.com/LeeLejia)、[LockGit](https://github.com/LockGit)、[KubeOperator](https://github.com/KubeOperator)、[newbee-mall](https://github.com/newbee-mall)、[vortesnail](https://github.com/vortesnail)、[int64ago](https://github.com/int64ago)、[Dom-Wang](https://github.com/Dom-Wang)、[Youthink](https://github.com/Youthink)、[luizyao](https://github.com/luizyao)、[anjoy8](https://github.com/anjoy8)、[waruqi](https://github.com/waruqi)、[xxjwxc](https://github.com/xxjwxc)、[mingzaily](https://github.com/mingzaily)、[yatengLG](https://github.com/yatengLG)、[GatesMa](https://github.com/GatesMa)、[janryWang](https://github.com/janryWang)、[zerosoul](https://github.com/zerosoul)、[sixiaodong123](https://github.com/sixiaodong123)
+
## 说明
累计贡献 **10** 个项目(收录到本项目中)、持续贡献者、积极讨论、活跃的小伙伴将被列入核心贡献者列表中。希望大家可以积极贡献、推荐更多的项目。
diff --git a/content/last.md b/content/last.md
index 05f075ea..89e90842 100644
--- a/content/last.md
+++ b/content/last.md
@@ -1,4 +1,4 @@
-# 《HelloGitHub》第 44 期
+# 《HelloGitHub》第 45 期
>兴趣是最好的老师,**HelloGitHub** 就是帮你找到兴趣!
@@ -19,15 +19,16 @@
## 目录
- [C 项目](#C-项目)
-- [C++ 项目](#C-项目-1)
+- [C# 项目](#C-项目-1)
+- [C++ 项目](#C-项目-2)
- [Go 项目](#Go-项目)
- [Java 项目](#Java-项目)
- [JavaScript 项目](#JavaScript-项目)
-- [PHP 项目](#PHP-项目)
+- [Kotlin 项目](#Kotlin-项目)
- [Python 项目](#Python-项目)
-- [Swift 项目](#Swift-项目)
+- [Ruby 项目](#Ruby-项目)
- [其它](#其它)
-- [教程](#教程)
+- [开源书籍](#开源书籍)
- [机器学习](#机器学习)
@@ -42,209 +43,399 @@
> **以下为本期内容**|每个月 **28** 号发布最新一期
### C 项目
-1、[scrcpy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Genymobile/scrcpy):一款可以用电脑显示并控制 Android 手机的开源工具。连接方便使用方便,手机无需 root、无需安装任何应用。支持 USB、Wi-Fi 两种方式连接,支持 Windows、macOS、Linux 三种操作系统。注意电脑端需要安装 adb 工具
+1、[smartdns](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pymumu/smartdns):一个运行在本地的 DNS 服务器。能够提高网络访问速度等诸多妙用,架构图如下:
-
+
+
+2、[xmake](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xmake-io/xmake):一个基于 Lua 的轻量级跨平台自动构建工具。支持在各种主流平台上构建项目,主要用于解决 C/C++ 项目的跨平台构建,同时支持与其他语言的混合编译。工程配置语法简单易读,对初学者友好、上手方便
+```bash
+add_requires("libuv master", "ffmpeg", "zlib 1.20.*", "tbox >1.6.1")
+target("test")
+ set_kind("shared")
+ add_files("src/*.c")
+ add_packages("libuv", "ffmpeg", "tbox", "zlib")
+```
+
+
+
+🔙 返回目录 🔙
+
+### C# 项目
+3、[gui.cs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/migueldeicaza/gui.cs):支持 Windows 和 Linux/Unix 的 .NET 终端 UI 工具库。方便实现终端 GUI 工具,并且可以实现终端中用鼠标啦
+
+
+
+4、[Blog.Core](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/anjoy8/Blog.Core):基于 ASP.NET Core 和 Vue 从零开始搭建前后端分离项目教程+实战项目。该项目从 .NET Core 基础讲起,内容完整、系统,对初学者和有一定基础的小伙伴都有借鉴和学习的价值
+
+
🔙 返回目录 🔙
### C++ 项目
-2、[netdata](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/netdata/netdata):一款免费开源的 Linux 系统性能实时监控工具。它易于安装、占用资源少、功能强大,支持监控多种服务
+5、[ThreadPool](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/progschj/ThreadPool):一个简单的 C++11 线程池实现,代码加起来不到 100 行。示例代码:
+```c++
+// create thread pool with 4 worker threads
+ThreadPool pool(4);
-
+// enqueue and store future
+auto result = pool.enqueue([](int answer) { return answer; }, 42);
-3、[musikcube](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/clangen/musikcube):一个使用 C++ 编写的终端的音乐播放器,也可以作为一个音频引擎、元数据索引器和服务器。musikcube 可以在 Windows、MacOS 、Linux 以及带有 raspbian 的树莓派上轻松编译和运行。虽然它只能在终端上使用,但是功能应有尽有。使用方法详见 [User Guide](https://github.com/clangen/musikcube/wiki/user-guide)
+// get result from future
+std::cout << result.get() << std::endl;
+```
-
+6、[xournalpp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xournalpp/xournalpp):一款支持 PDF 手写注释的笔记软件,支持 Linux、Windows、macOS 平台。看书的时候喜欢标注、做笔记,那这款工具肯定适合你。[下载地址](https://github.com/xournalpp/xournalpp/releases)
-4、[Sourcetrail](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/CoatiSoftware/Sourcetrail):一个免费开源、跨平台的可视化源码探索项目。能够十分高效的帮助使用者探索、熟悉陌生的代码,支持 C、C++、Python 和 Java 语言,同时提供了相关 SDK 用于拓展支持其它语言,相信在未来会提供更多语言的支持。程序员在它的帮助下可以快速熟悉陌生项目、学习开源项目、框架等,此等利器赶快去试试吧
+
-
+7、[pika](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Qihoo360/pika):一个企业级开源的可持久化的大容量(百G)redis 存储服务。兼容 redis 的绝大部分接口,解决 redis 由于存储数据量巨大而导致内存不够用的容量瓶颈。并且可以像 redis 一样,通过 slaveof 命令进行主从备份,支持全同步和部分同步
🔙 返回目录 🔙
### Go 项目
-5、[guide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/uber-go/guide):Uber 内部的 Go 风格规范。[中文翻译版](https://github.com/xxjwxc/uber_go_guide_cn)
+8、[pg_flame](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mgartner/pg_flame):Postgres 数据库性能分析工具,把 `EXPLAIN ANALYZE` 结果通过火焰图展示
-6、[evans](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ktr0731/evans):基于 Go 语言实现的支持交互模式的 gRPC 客户端,让调试、测试 gRPC API 更加容易
+
-
+9、[goproxy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/goproxyio/goproxy):Go 模块安装代理工具。还在因为安装 Go 项目依赖失败而抓耳挠腮吗?快试试这个项目吧
-7、[mkcert](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FiloSottile/mkcert):无需配置,执行一条命令让本地的开发环境实现 HTTPS 的工具。效果如下:
-```bash
-$ mkcert -install
-Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥
-The local CA is now installed in the system trust store! ⚡️
-The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊
-
-$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
-Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨
-
-Created a new certificate valid for the following names 📜
- - "example.com"
- - "*.example.com"
- - "example.test"
- - "localhost"
- - "127.0.0.1"
- - "::1"
-
-The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅
+
+
+10、[gods](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/emirpasic/gods):简单易用的 Go 语言各种数据结构和算法,并封装成了一个库,开箱即食。示例代码:
+```go
+type Stack interface {
+ Push(value interface{})
+ Pop() (value interface{}, ok bool)
+ Peek() (value interface{}, ok bool)
+
+ containers.Container
+ // Empty() bool
+ // Size() int
+ // Clear()
+ // Values() []interface{}
+}
```
-
+11、[gowp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xxjwxc/gowp):Go 高性能异步并发线程池。接口调用简单、支持错误返回、无论排队多少任务,都不会阻止提交任务。可用于控制并发访问、并发执行。示例代码:
+```go
+package main
+
+import (
+ "fmt"
+ "time"
+
+ "github.com/xxjwxc/gowp/workpool"
+)
+
+func main() {
+ wp := workpool.New(10) //设置最大线程数
+ for i := 0; i < 20; i++ { //开启20个请求
+ ii := i
+ wp.Do(func() error {
+ for j := 0; j < 10; j++ { //每次打印0-10的值
+ time.Sleep(1 * time.Second)
+ }
+ return nil
+ })
+ }
+
+ wp.Wait()
+ fmt.Println("down")
+}
+```
-8、[gochat](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LockGit/gochat):纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 rpc 通讯,使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 docker 一件构建,安装运行十分方便,推荐作为学习项目
+12、[gf](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gogf/gf):一款高性能、功能丰富的 Go Web 框架。特点:
+- 模块化、松耦合设计
+- 模块丰富,开箱即用
+- 简便及可维护性为宗旨
+- 详尽的开发文档及示例
+- 完善的本地中文化支持
+- 等等
-
+
🔙 返回目录 🔙
### Java 项目
-9、[DoraemonKit](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/didi/DoraemonKit):一款功能齐全的 iOS 、Android、微信小程序客户端研发助手。它功能强大、接入方便、便于扩展,能够让每一个 App 快速接入一些常用的辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在 Doraemon 面板中接入一些定制的辅助工具
+13、[SnowJena](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yueshutong/SnowJena):基于令牌桶算法实现的分布式无锁限流框架。简单易用的 API,开箱即用、支持熔断降级、动态配置规则、可视化监控等功能。示例代码:
+```java
+public class AppTest {
+ Logger logger = LoggerFactory.getLogger(getClass());
+ /**
+ * 本地限流
+ */
+ @Test
+ public void test1() {
+ // 1.配置规则
+ RateLimiterRule rateLimiterRule = new RateLimiterRuleBuilder()
+ .setLimit(1)
+ .setPeriod(1)
+ .setUnit(TimeUnit.SECONDS) //每秒令牌数为1
+ .build();
+ // 2.工厂模式生产限流器
+ RateLimiter limiter = RateLimiterFactory.of(rateLimiterRule);
+ // 3.使用
+ while (true) {
+ if (limiter.tryAcquire()) {
+ logger.info("ok");
+ }
+ }
+ }
+}
+```
-
+
-10、[SpringCloud](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zhoutaoo/SpringCloud):基于 SpringCloud2.1 的微服务开发脚手架
+14、[holer](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wisdom-projects/holer):一个将局域网中的应用映射到公网访问的端口映射软件,支持转发基于 TCP 协议的报文。内网穿透工具,包含 Web 后台管理系统。用到的技术如下:
+- 服务端采用 SpringBoot 和 Netty 实现
+- 客户端采用 Java Netty 和 Go 语言实现
-11、[newbee-mall](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/newbee-ltd/newbee-mall):一基于 Spring Boot 2.X 及相关技术栈开发电商系统。包括商城系统及商城后台管理系统,支持商城常见的功能。该项目代码开源、功能完备、流程完整,对于新手开发者十分友好,仅需极短的时间就可以启动这个完整的商城项目。这是一个完整的电商项目,也推荐各个阶段的 Java 开发者学习或为项目贡献代码
+
-
+15、[miaosha](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/qiurunze123/miaosha):一款秒杀系统设计与实现。高并发大流量的秒杀是面试常见问题,该项目不仅有具体问题的解决思路,还有具体代码实现和示例 demo,全部理解、学习后相信秒杀问题再也拦不住你啦
+
+
🔙 返回目录 🔙
### JavaScript 项目
-12、[kiwi](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/kiwi):还在为前端的全球化多语言而发愁吗?可以试试阿里开源的这项目
-
-
+16、[postwoman](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/liyasthomas/postwoman):一款基于 Node.js 的免费开源、便捷美观的 API 调试工具。它是调试接口的利器,能够尽快的发现问题提高开发效率。相信体会过 Postman 的同学,看到这个项目的名字就已经跃跃欲试了
-13、[FileSaver.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/eligrey/FileSaver.js):文件保存的 JavaScript 库,支持多种常见的文件存储格式:xls、txt、png 等。它可以方便的把数据转成文件,然后供用户下载。示例代码:
-```javascript
-// 存储文本
-var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
-FileSaver.saveAs(blob, "hello world.txt");
-```
+
-14、[qier-player](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/vortesnail/qier-player):一款基于 React 的轻量级在线视频播放器组件,界面简洁、操作流畅具有视频播放器的基础功能。方便你在项目中轻松添加播放器组件,实现视频播放功能。如果你嫌原生 video 功能太少、操作太傻、界面太简陋,那这个播放器就是你的菜。你还能够通过阅读源码学习到关于生命周期执行顺序、父子组件传值的方式、以及如何利用定时器进行一些实时的状态更新的技巧。示例代码:
-```javascript
-import React from 'react';
-import ReactDOM from 'react-dom';
-import QierPlayer from 'qier-player';
+17、[react-text-loop](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/braposo/react-text-loop):实现文字循环展示的 React 组件
-ReactDOM.render(, document.getElementById('root'));
-```
+
-
+18、[uform](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/uform):一款面向企业级复杂场景的高性能表单解决方案。特性:
+- 🚀 高性能,字段分布式渲染,大大减轻 React 渲染压力
+- 💡 支持 Ant Design/Fusion Next 组件体系
+- 🎨 JSX 标签化写法/JSON Schema 数据驱动方案无缝迁移过渡
+- 🏅 副作用逻辑独立管理,涵盖各种复杂联动校验逻辑
+- 🌯 支持各种表单复杂布局方案
-15、[glut](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LeeLejia/glut):一款用于团队内部 chrome 工具共享的工具,可以理解为 chrome 的小程序。它提供了比页面脚本更多的 API,可是实现更丰富的功能。可以随时在页面打开的小组件,它既可以作为页面的辅助工具或者也可以提供独立的功能。演示如下:
+
-
+19、[rc-bullets](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zerosoul/rc-bullets):基于 CSS3 Animation 使用 React 构建的弹幕组件。[演示地址](http://zerosoul.github.io/rc-bullets),支持功能:
+- 管理弹幕:暂停、隐藏、清屏等
+- 设置弹幕:速度、循环次数、延迟播放、自定义动画类型等
-16、[svrx](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/svrxjs/svrx):一个易于使用、插件化的前端开发工作台。帮助前端开发人员把折腾开发环境的时间,省下来做更有意义的事。快速开始:
-1. 安装:`npm install -g @svrx/cli`
-2. 创建目录:`mkdir example && cd example`
-3. 创建文件:`echo 'Hello svrx!' > index.html`
-4. 运行:svrx
+```javascript
+import React, { useEffect, useState } from 'react';
+import BulletScreen, { StyledBullet } from 'rc-bullets';
+
+const headUrl='https://zerosoul.github.io/rc-bullets/assets/img/heads/girl.jpg';
+export default function Demo() {
+ // 弹幕屏幕
+ const [screen, setScreen] = useState(null);
+ // 弹幕内容
+ const [bullet, setBullet] = useState('');
+ useEffect(() => {
+ // 给页面中某个元素初始化弹幕屏幕,一般为一个大区块
+ let s = new BulletScreen('.screen');
+ // or
+ // let s=new BulletScreen(document.querySelector('.screen));
+ setScreen(s);
+ }, []);
+ // 弹幕内容输入事件处理
+ const handleChange = ({ target: { value } }) => {
+ setBullet(value);
+ };
+ // 发送弹幕
+ const handleSend = () => {
+ if (bullet) {
+ // push 纯文本
+ screen.push(bullet);
+ // or 使用 StyledBullet
+
+ screen.push(
+
+ );
+ // or 还可以这样使用,效果等同使用 StyledBullet 组件
+ screen.push({msg:bullet,head:headUrl,color:"#eee" bgColor:"rgba(2,2,2,.3)"})
+ }
+ };
+ return (
+
+
+
+
+
+ );
+}
+```
-
+
-17、[paint](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dli/paint):在线体验下油画创作。呈上我的“杰作”:
+20、[react-loading](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sixiaodong123/react-loading):一款轻量、开箱即用的加载动画 React 组件库。示例代码:
+```javascript
+import React from 'react';
+import { DisappearedLoading } from 'react-loadingg';
+const Container = () => ;
+export default Container;
+```
-
+
🔙 返回目录 🔙
-### PHP 项目
-18、[SyncMusic](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kasuganosoras/SyncMusic):基于 PHP Swoole 开发的在线弹幕点歌台。支持自由点歌、切歌、调整排序、删除指定音乐以及基础权限分级
+### Kotlin 项目
+21、[SketchyComponent](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/m-zylab/SketchyComponent):一款 Android 上的手绘风格组件库。该库提供了一些基础图形和 icon,以及便捷的自定义能力。之前介绍过手绘风格的图表库大家很喜欢,这回是 Android 组件库不知道对不对大家的胃口。示例代码:
+```java
+// 1. 创建 Sketchy 图形
+val skSquareDrawable = SkSquareDrawable().apply {
+ // 2. 设置属性
+ fillColor = resources.getColor(android.R.color.holo_orange_dark)
+}
+// 3. 给 View 设置背景
+text.background = skSquareDrawable
+```
-
+
🔙 返回目录 🔙
### Python 项目
-19、[pyflame](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/uber-archive/pyflame):Uber 开源的 Python 性能分析工具。可以在不修改代码的情况下分析 Python 程序的性能,同时生成火焰图
-
-
+22、[memory_profiler](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pythonprofilers/memory_profiler):Python 程序内存占用分析工具。示例代码:
+```python
+# 采用装饰器的方式引用,不影响现有代码
+@profile
+def my_func():
+ a = [1] * (10 ** 6)
+ b = [2] * (2 * 10 ** 7)
+ del b
+ return a
+
+if __name__ == '__main__':
+ my_func()
+
+# 运行命令:python -m memory_profiler example.py
+# 输出:
+Line # Mem usage Increment Line Contents
+==============================================
+ 3 @profile
+ 4 5.97 MB 0.00 MB def my_func():
+ 5 13.61 MB 7.64 MB a = [1] * (10 ** 6)
+ 6 166.20 MB 152.59 MB b = [2] * (2 * 10 ** 7)
+ 7 13.61 MB -152.59 MB del b
+ 8 13.61 MB 0.00 MB return a
+```
-20、[Gooey](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chriskiehl/Gooey):一个把 Python 命令行工具转化成 GUI 桌面工具的库。就我个人还是喜欢命令行的形式😅
+23、[PySimpleGUI](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/PySimpleGUI/PySimpleGUI):Python GUI 编程库,它是将 tkinter、Qt、Remi、WxPython 封装成更人性化的接口。示例代码和效果如下:
+```python
+import PySimpleGUI as sg
+
+sg.theme('DarkAmber') # 设置主题颜色
+# 界面内包含的东西
+layout = [ [sg.Text('Some text on Row 1')],
+ [sg.Text('Enter something on Row 2'), sg.InputText()],
+ [sg.Button('Ok'), sg.Button('Cancel')] ]
+
+# 创建窗口
+window = sg.Window('Window Title', layout)
+# 监听事件
+while True:
+ event, values = window.read()
+ if event in (None, 'Cancel'): # 用户点击取消按钮事件
+ break
+ print('You entered ', values[0])
+
+window.close()
+```
-
+
-21、[opendevops](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/opendevops-cn/opendevops):一款基于 tornado 的开源自动化运维云管理平台。支持:ITSM、权限系统、Web Terminnal 登陆日志审计、录像回放、监控报警系统、DNS 管理、配置中心等
+24、[mitmproxy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mitmproxy/mitmproxy):基于 Python 语言开发的抓包工具。支持命令行、Web 平台的形式展示抓包结果,还能通过 Python 引用库来拦截、控制响应和请求。下图展示为命令行使用界面(类 vim 操作)
-
+
-22、[KubeOperator](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/KubeOperator/KubeOperator):用 Python 语言开发的开源容器集群管理平台。在离线网络环境下通过可视化 Web UI 在 VMware、Openstack 或者物理机上规划、部署和管理生产级别的 Kubernetes 集群。开启你的 Kubernetes 之旅
+25、[PythonPlantsVsZombies](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/marblexu/PythonPlantsVsZombies):Python 语言编写的植物大战僵尸。学习如何使用 Python 编写小游戏的极佳例子,运行步骤:
+```
+1. 需要 Python 3
+2. 安装依赖库:pip install pygame
+3. python main.py
+```
-
+
🔙 返回目录 🔙
-### Swift 项目
-23、[SwiftyGif](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kirualex/SwiftyGif):高性能且上手容易的 Swift GIF 库。示例代码:
-```swift
-import SwiftyGif
-
-do {
- let gif = try UIImage(gifName: "MyImage.gif")
- let imageview = UIImageView(gifImage: gif, loopCount: 3) // Use -1 for infinite loop
- imageview.frame = view.bounds
- view.addSubview(imageview)
-} catch {
- print(error)
-}
-```
-
-
-
-24、[Pock](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pigigaldi/Pock):一款在苹果电脑的触控栏中,显示 macOS 程序坞的开源工具
+### Ruby 项目
+26、[pghero](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ankane/pghero):Postgres 性能监控服务。让你对 pg 数据库的性能了如指掌
-
+
🔙 返回目录 🔙
### 其它
-25、[infer](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/facebook/infer):Facebook 开源的一个支持 Objective-C、Java 和 C 语言的静态分析工具,用它可以检测 Android、iOS 代码中的资源泄漏、内存泄漏、空指针等问题。建议集成到客户端发布的流程环节中,它能够将客户端应用的一些严重 Bug 扼杀在发布应用之前,同时减少应用崩溃和性能低下的情况
-
-
+27、[clean-code-javascript](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ryanmcdermott/clean-code-javascript):《Clean Code JavaScript》(JavaScript 代码整洁之道),这是根据《代码整洁之道》作者多年经验整理的 JS 代码优化建议,但也仅仅只是一份建议。[中文](https://github.com/alivebao/clean-code-js)
-26、[git-quick-stats](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/arzzen/git-quick-stats):项目的 git 提交记录展示和统计的工具。支持:不同时间维度和用户名的统计、近期提交的概览等
+28、[wenyan-lang](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LingDong-/wenyan-lang):文言文编程语言。文言文语法,可以编译成 JavaScript、Python 或者 Ruby,你见过用文言文编写程序吗?快来试试吧。[在线尝试](http://wenyan-lang.lingdong.works/ide.html)
-
+
-27、[TeachYourselfCS-CN](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/keithnull/TeachYourselfCS-CN):《TeachYourselfCS》自学计算科学的一份书单(中文翻译版)
+29、[short_url](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Youthink/short_url):Elixir 语言开发的支持自定义短码的短链接服务。新手可以参考该项目源码和[原理解析](https://hufangyun.com/2017/short-url/),理解、实现短链接服务的同时,体验用 Elixir 语言开发一个 Web 服务。[在线尝试](https://fearless-trustworthy-aidi.gigalixirapp.com/)
-28、[funNLP](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fighting41love/funNLP):中文词库的集合。可用于:敏感词、语言检测、拆字词典等
+
-29、[CoolplaySpark](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lw-lin/CoolplaySpark):Spark 源代码分析、类库解读等
-
-30、[github-cards](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lepture/github-cards):非官方的 GitHub 卡片
-
-
+30、[pytest-chinese-doc](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/luizyao/pytest-chinese-doc):pytest 自动化测试框架的官方文档(5.1.3 版本)的中文翻译。但不仅仅是简单的翻译:
+- 更多的示例:所有的示例代码都在 docs 目录下,以章节划分,尽量覆盖每个知识点
+- 更多的拓展阅读:添加了学习时所查阅的资料、阅读的源码等,也是作者学习和思考的历程
🔙 返回目录 🔙
-### 教程
-31、[zh.javascript.info](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/javascript-tutorial/zh.javascript.info):《现代 JavaScript 教程》是以最新的 JavaScript 标准为基准的教程。通过简单但详细的内容,讲解从基础到高阶的 JavaScript 相关知识,能够帮助初中级前端提升 JavaScript 等前端技术水平。[在线阅读](https://zh.javascript.info/)
+### 开源书籍
+31、[machine-learning-systems-design](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chiphuyen/machine-learning-systems-design):一本关于机器学习系统设计的小册子附有练习题
+
+32、[front-end-handbook-2019](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FrontendMasters/front-end-handbook-2019):《Front-End Developer Handbook 2019》(前端开发者手册 2019 版)。该书适合任何阶段的人用来了解前端开发实践的指南,它概述和讨论了前端工程的实践:如何学习前端、在 2019 年进行前端实践时应该使用哪些工具。[在线阅读](https://frontendmasters.com/books/front-end-handbook/2019/)
🔙 返回目录 🔙
### 机器学习
-32、[ML-NLP](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NLP-LOVE/ML-NLP):该项目总结了机器学习、NLP 面试中常考到的知识点和代码实现
+33、[SSD-Pytorch](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yatengLG/SSD-Pytorch):完整的目标检测项目。结构简洁明了,中文注释。适宜新手入门、目标检测任务参考,甚至直接基于本项目实现目标检测任务。示例代码:
+```python
+# 实例化模型:模型的具体各种参数在 Config 文件中进行配置
+net = SSD(cfg)
+# 将模型移动到 GPU 上,cfg.DEVICE.MAINDEVICE 定义了模型所使用的主 GPU
+# 模型的参数更新会在主 GPU 上进行
+net.to(cfg.DEVICE.MAINDEVICE)
+
+# 初始化训练器:训练器参数已通过 cfg 进行配置;也可传入参数进行配置(但不建议)
+trainer = Trainer(cfg, max_iter=None, batch_size=None,
+ train_devices=None, model_save_step=None,
+ model_save_root=None, vis = None, vis_step=None)
+# 训练器开始:在数据集上训练模型
+trainer(net, train_dataset)
+```
+
+34、[AIDungeon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/AIDungeon/AIDungeon):一个基于机器学习的地下城文字游戏。此项目介绍了如何使用机器学习构建一个游戏,代码简单清晰适合 AI 爱好者深入研究
-33、[openpilot](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/commaai/openpilot):comma.ai 开源的自动驾驶系统
+
-
+35、[face_recognition](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ageitgey/face_recognition):上手快速、简单易用的人脸识别库。该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。同时提供了一个简单的面部识别命令行工具,允许您对来自命令行的图像文件夹进行面部识别。完整的开发文档和应用案例,并且兼容树莓派系统(对配置要求低),对于初学者来说可以通过这个项目感受人脸识别或机器学习带来的乐趣。示例代码:
+```python
+# 定位图片中的所有人脸:
+import face_recognition
+image = face_recognition.load_image_file("your_file.jpg")
+face_locations = face_recognition.face_locations(image)
-34、[MNN](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/MNN):一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。架构设计如下:
+# 识别人脸关键点,包括眼睛、鼻子、嘴和下巴
+import face_recognition
+image = face_recognition.load_image_file("your_file.jpg")
+face_landmarks_list = face_recognition.face_landmarks(image)
+```
-
+
🔙 返回目录 🔙
- 『上一期』 | 反馈和建议 | 『下一期』
+ 『上一期』 | 反馈和建议 | 『下一期』
---