├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE.md ├── .gitignore ├── README.md ├── README_en.md ├── README_ja.md ├── content ├── HelloGitHub01.md ├── HelloGitHub02.md ├── HelloGitHub03.md ├── HelloGitHub04.md ├── HelloGitHub05.md ├── HelloGitHub06.md ├── HelloGitHub07.md ├── HelloGitHub08.md ├── HelloGitHub09.md ├── HelloGitHub10.md ├── HelloGitHub11.md ├── HelloGitHub12.md ├── HelloGitHub13.md ├── HelloGitHub14.md ├── HelloGitHub15.md ├── HelloGitHub16.md ├── HelloGitHub17.md ├── HelloGitHub18.md ├── HelloGitHub19.md ├── HelloGitHub20.md ├── HelloGitHub21.md ├── HelloGitHub22.md ├── HelloGitHub23.md ├── HelloGitHub24.md ├── HelloGitHub25.md ├── HelloGitHub26.md ├── HelloGitHub27.md ├── HelloGitHub28.md ├── HelloGitHub29.md ├── HelloGitHub30.md ├── HelloGitHub31.md ├── HelloGitHub32.md ├── HelloGitHub33.md ├── HelloGitHub34.md ├── HelloGitHub35.md ├── HelloGitHub36.md ├── HelloGitHub37.md ├── HelloGitHub38.md ├── HelloGitHub39.md ├── HelloGitHub40.md ├── HelloGitHub41.md ├── HelloGitHub42.md ├── HelloGitHub43.md ├── HelloGitHub44.md ├── HelloGitHub45.md ├── HelloGitHub46.md ├── HelloGitHub47.md ├── HelloGitHub48.md ├── HelloGitHub49.md ├── HelloGitHub50.md ├── HelloGitHub51.md ├── HelloGitHub52.md ├── HelloGitHub53.md ├── HelloGitHub54.md ├── HelloGitHub55.md ├── HelloGitHub56.md ├── HelloGitHub57.md ├── HelloGitHub58.md ├── HelloGitHub59.md ├── HelloGitHub60.md ├── HelloGitHub61.md ├── HelloGitHub62.md ├── HelloGitHub63.md ├── HelloGitHub64.md ├── HelloGitHub65.md ├── HelloGitHub66.md ├── HelloGitHub67.md ├── HelloGitHub68.md ├── HelloGitHub69.md ├── HelloGitHub70.md ├── HelloGitHub71.md ├── HelloGitHub72.md ├── HelloGitHub73.md ├── HelloGitHub74.md ├── HelloGitHub75.md ├── HelloGitHub76.md ├── HelloGitHub77.md ├── HelloGitHub78.md ├── HelloGitHub79.md ├── HelloGitHub80.md ├── HelloGitHub81.md ├── HelloGitHub82.md ├── HelloGitHub83.md ├── HelloGitHub84.md ├── HelloGitHub85.md ├── HelloGitHub86.md ├── HelloGitHub87.md ├── HelloGitHub88.md ├── HelloGitHub89.md ├── HelloGitHub90.md ├── HelloGitHub91.md ├── HelloGitHub92.md ├── HelloGitHub93.md ├── HelloGitHub94.md ├── HelloGitHub95.md ├── HelloGitHub96.md ├── HelloGitHub97.md ├── HelloGitHub98.md └── contributors.md └── script ├── github_bot ├── README.md ├── github_bot.py └── requirements.txt └── make_content ├── README.md └── make_content.py /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [521xueweihan] 4 | custom: ['https://hellogithub.com/', 'https://mp.weixin.qq.com/s/xNpX3eCaWL_kNe8oZLxTWA'] 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## 推荐项目 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | - 项目地址: 11 | 12 | 13 | - 类别: 14 | 15 | 16 | - 项目标题: 17 | 18 | 19 | - 项目描述: 20 | 21 | 22 | - 亮点: 23 | 24 | - 示例代码:(可选) 25 | 26 | - 截图:(可选)gif/png/jpg 27 | 28 | - 后续更新计划: 29 | 30 | 31 | ## 提高项目收录的方法(提交时请删除下方内容) 32 | 33 | 1. **请勿使用复制的内容**作为项目描述提交! 34 | 35 | 2. 到 HelloGitHub 网站首页:https://hellogithub.com 搜索要推荐的项目地址,查看准备推荐的项目**是否被推荐过**。 36 | 37 | 3. 根据 [项目审核标准说明](https://github.com/521xueweihan/HelloGitHub/issues/271) 修改项目 38 | 39 | 40 | 如您推荐的项目收录到《HelloGitHub》月刊,您的 GitHub 帐号将展示在 [贡献人列表](https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md),**同时会在本 issues 中通知您**。 41 | 42 | 最后,感谢您对 HelloGitHub 项目的支持! 43 | 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # PyInstaller 26 | # Usually these files are written by a python script from a template 27 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 28 | *.manifest 29 | *.spec 30 | 31 | # Installer logs 32 | pip-log.txt 33 | pip-delete-this-directory.txt 34 | 35 | # Unit test / coverage reports 36 | htmlcov/ 37 | .tox/ 38 | .coverage 39 | .cache 40 | nosetests.xml 41 | coverage.xml 42 | 43 | # Translations 44 | *.mo 45 | *.pot 46 | 47 | # Django stuff: 48 | *.log 49 | 50 | # Sphinx documentation 51 | docs/_build/ 52 | 53 | # PyBuilder 54 | target/ 55 | 56 | 57 | # Local settings 58 | local_settings.py 59 | 60 | # vim 61 | *.swp 62 | 63 | # pycharm 64 | .idea/ 65 | 66 | # mac 67 | .DS_Store 68 | 69 | # hellogithub 70 | *.db 71 | content*.md 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
中文 | English | 日本語 4 |
分享 GitHub 上有趣、入门级的开源项目。
兴趣是最好的老师,这里能够帮你找到编程的兴趣! 5 |

6 | 7 |

8 | WeiXin 9 | GitHub stars 10 | GitHub issues 11 | Sina Weibo 12 |

13 | 14 | ## 简介 15 | 16 | HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。**每月 28 号**以月刊的形式[更新发布](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA5MzYyNzQ0MQ==&action=getalbum&album_id=1331197538447310849#wechat_redirect),内容包括:**有趣、入门级的开源项目**、**开源书籍**、**实战项目**、**企业级项目**等,让你用很短时间感受到开源的魅力,爱上开源! 17 | 18 | ## 内容 19 | 获得更好的阅读体验 [官网](https://hellogithub.com/) 或 [HelloGitHub 公众号](https://cdn.jsdelivr.net/gh/521xueweihan/img_logo@main/logo/weixin.png) 20 | 21 | | :card_index: | :jack_o_lantern: | :beer: | :fish_cake: | :octocat: | 22 | | ------- | ----- | ------------ | ------ | --------- | 23 | | [第 98 期](/content/HelloGitHub98.md) | [第 97 期](/content/HelloGitHub97.md) | [第 96 期](/content/HelloGitHub96.md) | 24 | | [第 95 期](/content/HelloGitHub95.md) | [第 94 期](/content/HelloGitHub94.md) | [第 93 期](/content/HelloGitHub93.md) | [第 92 期](/content/HelloGitHub92.md) | [第 91 期](/content/HelloGitHub91.md) | 25 | | [第 90 期](/content/HelloGitHub90.md) | [第 89 期](/content/HelloGitHub89.md) | [第 88 期](/content/HelloGitHub88.md) | [第 87 期](/content/HelloGitHub87.md) | [第 86 期](/content/HelloGitHub86.md) | 26 | | [第 85 期](/content/HelloGitHub85.md) | [第 84 期](/content/HelloGitHub84.md) | [第 83 期](/content/HelloGitHub83.md) | [第 82 期](/content/HelloGitHub82.md) | [第 81 期](/content/HelloGitHub81.md) | 27 | | [第 80 期](/content/HelloGitHub80.md) | [第 79 期](/content/HelloGitHub79.md) | [第 78 期](/content/HelloGitHub78.md) | [第 77 期](/content/HelloGitHub77.md) | [第 76 期](/content/HelloGitHub76.md) | 28 | | [第 75 期](/content/HelloGitHub75.md) | [第 74 期](/content/HelloGitHub74.md) | [第 73 期](/content/HelloGitHub73.md) | [第 72 期](/content/HelloGitHub72.md) | [第 71 期](/content/HelloGitHub71.md) | 29 | | [第 70 期](/content/HelloGitHub70.md) | [第 69 期](/content/HelloGitHub69.md) | [第 68 期](/content/HelloGitHub68.md) | [第 67 期](/content/HelloGitHub67.md) | [第 66 期](/content/HelloGitHub66.md) | 30 | | [第 65 期](/content/HelloGitHub65.md) | [第 64 期](/content/HelloGitHub64.md) | [第 63 期](/content/HelloGitHub63.md) | [第 62 期](/content/HelloGitHub62.md) | [第 61 期](/content/HelloGitHub61.md) | 31 | | [第 05 期](/content/HelloGitHub05.md) | [第 04 期](/content/HelloGitHub04.md) | [第 03 期](/content/HelloGitHub03.md) | [第 02 期](/content/HelloGitHub02.md) | [第 01 期](/content/HelloGitHub01.md) | 32 | 33 | 欢迎[推荐或自荐](https://hellogithub.com/periodical)项目成为 **HelloGitHub** 的[贡献者](https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md) 34 | 35 | ## 赞助 36 | 37 | 38 | 39 | 40 | 41 | 48 | 55 | 62 | 69 | 70 | 71 |
42 | 43 |
44 | UCloud
45 | 超值的全球云服务 46 |
47 |
49 | 50 |
51 | CDN
52 | 开启全网加速 53 |
54 |
56 | 57 |
58 | OpenIM
59 | 开源IM力争No.1 60 |
61 |
63 | 64 |
65 | Apifox
66 | 比 Postman 更强大 67 |
68 |
72 | 73 | 74 | ## 声明 75 | 76 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。联系我 77 | -------------------------------------------------------------------------------- /README_en.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
中文 | English | 日本語 4 |
HelloGitHub is to share interesting, entry-level open source projects on GitHub. 5 |
Interest is the best teacher, you will find the interests of programming here! 6 |

7 | 8 |

9 | WeiXin 10 | GitHub stars 11 | GitHub issues 12 |

13 | 14 | ## Intro 15 | 16 | This is a project for **novice programmers**, **programming lovers**, and **open-source community lovers**. And the content will be updated and published as a **monthly** magazine. The contents include: **popular projects**, **entry-level projects**, **tools to make life better**, **books**, **learning notes**, **enterprise projects**, etc. Most of these open source projects are very easy to start, very cool and can make you feel the pleasure and the magic of programming in a very short time. So that we can feel the joy of programming, and begin to program. 17 | 18 | It is hoped that through this project, more and more people will join the **open-source community** and contribute to the community. Let these interesting and valuable projects be discovered, concerned, participated and contributed by more people. In the process of participating in these projects, you will learn more programming knowledge 📚, improve programming skills 💻, and find the pleasure of programming 🎮. 19 | 20 | ## Content 21 | 22 | Will be released on the **28th of each month**| [Contributors](https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md) | [Website](https://hellogithub.com) 23 | 24 | | :card_index: | :jack_o_lantern: | :beer: | :fish_cake: | :octocat: | 25 | | ------- | ----- | ------------ | ------ | --------- | 26 | | [NO.98](/content/HelloGitHub98.md) | [NO.97](/content/HelloGitHub97.md) | [NO.96](/content/HelloGitHub96.md) | 27 | | [NO.95](/content/HelloGitHub95.md) | [NO.94](/content/HelloGitHub94.md) | [NO.93](/content/HelloGitHub93.md) | [NO.92](/content/HelloGitHub92.md) | [NO.91](/content/HelloGitHub91.md) | 28 | | [NO.90](/content/HelloGitHub90.md) | [NO.89](/content/HelloGitHub89.md) | [NO.88](/content/HelloGitHub88.md) | [NO.87](/content/HelloGitHub87.md) | [NO.86](/content/HelloGitHub86.md) | 29 | | [NO.85](/content/HelloGitHub85.md) | [NO.84](/content/HelloGitHub84.md) | [NO.83](/content/HelloGitHub83.md) | [NO.82](/content/HelloGitHub82.md) | [NO.81](/content/HelloGitHub81.md) | 30 | | [NO.80](/content/HelloGitHub80.md) | [NO.79](/content/HelloGitHub79.md) | [NO.78](/content/HelloGitHub78.md) | [NO.77](/content/HelloGitHub77.md) | [NO.76](/content/HelloGitHub76.md) | 31 | | [NO.75](/content/HelloGitHub75.md) | [NO.74](/content/HelloGitHub74.md) | [NO.73](/content/HelloGitHub73.md) | [NO.72](/content/HelloGitHub72.md) | [NO.71](/content/HelloGitHub71.md) | 32 | | [NO.70](/content/HelloGitHub70.md) | [NO.69](/content/HelloGitHub69.md) | [NO.68](/content/HelloGitHub68.md) | [NO.67](/content/HelloGitHub67.md) | [NO.66](/content/HelloGitHub66.md) | 33 | | [NO.65](/content/HelloGitHub65.md) | [NO.64](/content/HelloGitHub64.md) | [NO.63](/content/HelloGitHub63.md) | [NO.62](/content/HelloGitHub62.md) | [NO.61](/content/HelloGitHub61.md) | 34 | | [NO.05](/content/05/HelloGitHub05.md) | [NO.04](/content/04/HelloGitHub04.md) | [NO.03](/content/03/HelloGitHub03.md) | [NO.02](/content/02/HelloGitHub02.md) | [NO.01](/content/01/HelloGitHub01.md) | 35 | 36 | 37 | ## Licence 38 | 39 | CC BY-NC-ND 4.0
This work is under the CC BY-NC-ND 4.0 Lisence. 40 | -------------------------------------------------------------------------------- /README_ja.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |
中文 | English | 日本語 4 |
HelloGitHub は、興味深い、エントリーレベルのオープンソースプロジェクトを GitHub で共有することです。 5 |
興味は最高の教師であり、あなたはここでプログラミングの興味を見つけるだろう! 6 |

7 | 8 |

9 | WeiXin 10 | GitHub stars 11 | GitHub issues 12 |

13 | 14 | ## イントロ 15 | 16 | これは、**初心者プログラマー**、**プログラミング愛好家**、**オープンソースコミュニティ愛好家** のためのプロジェクトです。また、コンテンツは **月刊** マガジンとして更新・発行されます。内容は以下の通りです: **人気プロジェクト**、**エントリーレベルプロジェクト**、**生活をより良くするツール**、**書籍**、**学習ノート**、**エンタープライズプロジェクト** などです。これらのオープンソースプロジェクトのほとんどは、とても簡単に始めることができ、とてもクールで、プログラミングの楽しさと魔法を短時間で感じることができます。プログラミングの楽しさを感じ、プログラミングを始めてください。 17 | 18 | このプロジェクトを通じて、より多くの人々が **オープンソースコミュニティ** に参加し、コミュニティに貢献することを望んでいます。これらの興味深く価値のあるプロジェクトが、より多くの人々によって発見され、関心を持たれ、参加され、コントリビュートされるようにしましょう。これらのプロジェクトに参加する過程で、あなたはより多くのプログラミングの知識を学び📚、プログラミングのスキルを向上させ💻、プログラミングの楽しさを見つけるでしょう🎮。 19 | 20 | ## コンテンツ 21 | 22 | **毎月28日** にリリースされます| [コントリビューター](https://github.com/521xueweihan/HelloGitHub/blob/master/content/contributors.md) | [Web サイト](https://hellogithub.com) 23 | 24 | | :card_index: | :jack_o_lantern: | :beer: | :fish_cake: | :octocat: | 25 | | ------- | ----- | ------------ | ------ | --------- | 26 | | [第 98 号](/content/HelloGitHub98.md) | [第 97 号](/content/HelloGitHub97.md) | [第 96 号](/content/HelloGitHub96.md) | 27 | | [第 95 号](/content/HelloGitHub95.md) | [第 94 号](/content/HelloGitHub94.md) | [第 93 号](/content/HelloGitHub93.md) | [第 92 号](/content/HelloGitHub92.md) | [第 91 号](/content/HelloGitHub91.md) | 28 | | [第 90 号](/content/HelloGitHub90.md) | [第 89 号](/content/HelloGitHub89.md) | [第 88 号](/content/HelloGitHub88.md) | [第 87 号](/content/HelloGitHub87.md) | [第 86 号](/content/HelloGitHub86.md) | 29 | | [第 85 号](/content/HelloGitHub85.md) | [第 84 号](/content/HelloGitHub84.md) | [第 83 号](/content/HelloGitHub83.md) | [第 82 号](/content/HelloGitHub82.md) | [第 81 号](/content/HelloGitHub81.md) | 30 | | [第 80 号](/content/HelloGitHub80.md) | [第 79 号](/content/HelloGitHub79.md) | [第 78 号](/content/HelloGitHub78.md) | [第 77 号](/content/HelloGitHub77.md) | [第 76 号](/content/HelloGitHub76.md) | 31 | | [第 75 号](/content/HelloGitHub75.md) | [第 74 号](/content/HelloGitHub74.md) | [第 73 号](/content/HelloGitHub73.md) | [第 72 号](/content/HelloGitHub72.md) | [第 71 号](/content/HelloGitHub71.md) | 32 | | [第 70 号](/content/HelloGitHub70.md) | [第 69 号](/content/HelloGitHub69.md) | [第 68 号](/content/HelloGitHub68.md) | [第 67 号](/content/HelloGitHub67.md) | [第 66 号](/content/HelloGitHub66.md) | 33 | | [第 65 号](/content/HelloGitHub65.md) | [第 64 号](/content/HelloGitHub64.md) | [第 63 号](/content/HelloGitHub63.md) | [第 62 号](/content/HelloGitHub62.md) | [第 61 号](/content/HelloGitHub61.md) | 34 | | [第 05 号](/content/05/HelloGitHub05.md) | [第 04 号](/content/04/HelloGitHub04.md) | [第 03 号](/content/03/HelloGitHub03.md) | [第 02 号](/content/02/HelloGitHub02.md) | [第 01 号](/content/01/HelloGitHub01.md) | 35 | 36 | 37 | ## ライセンス 38 | 39 | CC BY-NC-ND 4.0
この作品は CC BY-NC-ND 4.0 のライセンスに基づいています。 40 | -------------------------------------------------------------------------------- /content/HelloGitHub01.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 01 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/01) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### CSS 项目 24 | 1、[typo.css](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sofish/typo.css):中文网页重设与排版,为了一致化浏览器排版效果,构建最适合中文阅读的网页排版。包括桌面和移动平台,[预览](http://typo.sofi.sh/) 25 | 26 | 27 |

28 | 29 | ### JavaScript 项目 30 | 2、[activate-power-mode](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/disjukr/activate-power-mode):爆炸输入效果,[在线演示](http://0xabcdef.com/activate-power-mode/) 31 | 32 | 33 | 34 |

35 | 36 | 3、[ant-design](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ant-design/ant-design):阿里开源的一套企业级的 UI 设计语言和 React 实现。[中文文档](https://ant.design/docs/react/introduce-cn),样式偏向于后端,展示效果十分漂亮 37 | 38 | 39 |

40 | 41 | 4、[VeryNginx](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alexazhou/VeryNginx):一个功能强大而对人类友好的 Nginx 扩展程序。[VeryNginx 文档](https://github.com/alexazhou/VeryNginx/blob/master/readme_zh.md) 42 | 43 | 44 | 45 |

46 | 47 | ### Python 项目 48 | 5、[awesome-python-webapp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/michaelliao/awesome-python-webapp):廖老师的 Python 入门教程中的实践项目的代码,[教程在线阅读](http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397616003925a3d157284cd24bc0952d6c4a7c9d8c55000) 49 | 50 | 51 | 6、[beijing_bus](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wong2/beijing_bus):北京实时公交,可以显示查询的公交到达某站还需多久 52 | 53 | 54 | 55 |

56 | 57 | 7、[Minos](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/phith0n/Minos):一个基于 Tornado/MongoDB/Redis 的社区系统 58 | 59 | 60 | 8、[tushare](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/waditu/tushare):TuShare 是一个免费、开源的 Python 财经数据接口包,[TuShare 文档](http://tushare.org/index.html) 61 | 62 | 63 | 64 |

65 | 66 | ### 其它 67 | 9、[archey-osx](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/obihann/archey-osx):命令行中显示 Mac OS X 计算机的基本信息 68 | 69 | 70 | 71 |

72 | 73 | 10、[awesome-python-cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jobbole/awesome-python-cn):awesome-python 中文版 74 | 75 | 76 | 11、[github](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/phodal/github):《GitHub 漫游指南》该指南能够让新手学会如何使用 GitHub 网站,从而加入到开源社区。phodal 从他和 GitHub 的青涩故事写起,全方位地介绍了 GitHub 这个网站,以及如何合理地使用这个网站 77 | 78 | 79 | 12、[Learning-SICP](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/DeathKing/Learning-SICP):《计算机程序的构造和解释》公开课 80 | 81 | 82 |

83 | 84 | ### 开源书籍 85 | 13、[design_patterns](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/me115/design_patterns):《图说设计模式》,[在线阅读](https://design-patterns.readthedocs.io/zh_CN/latest/index.html#) 86 | 87 | 88 | 14、[intermediatePython](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yasoob/intermediatePython):《Intermediate Python》Python 进阶。这是本很薄的 Python 入门级书籍,每篇内容花个五分钟就能看完、看懂、有收获的那种。 89 | 90 | 15、[linuxtools_rst](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/me115/linuxtools_rst):《Linux 工具快速教程》,[在线阅读](http://linuxtools-rst.readthedocs.io/zh_CN/latest/) 91 | 92 | 93 | 16、[python3-cookbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yidao620c/python3-cookbook):《Python Cookbook 3rd 中文版》,[在线阅读](http://python3-cookbook.readthedocs.org/zh_CN/latest/) 94 | 95 | 96 | 17、[the_new_world_linux](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yangyangwithgnu/the_new_world_linux):《Linux 下的惬意生活》,[在线阅读](https://github.com/yangyangwithgnu/the_new_world_linux#目录) 97 | 98 | 99 | 100 | 101 |

102 | 『上一期』 | 反馈和建议 | 『下一期』 103 |

104 | 105 | --- 106 |

107 | 👉 来!推荐开源项目 👈
108 | 微信中搜:HelloGitHub 关注公众号
109 | 不仅能第一时间收到推送,还有回馈粉丝的活动
110 | 如果文中的图刷不出来,可以点击 这里。 111 |

112 | 113 | ## 赞助 114 | 115 | 116 | 117 | 118 | 119 | 126 | 133 | 140 | 147 | 148 | 149 |
120 | 121 |
122 | UCloud
123 | 超值的全球云服务 124 |
125 |
127 | 128 |
129 | CDN
130 | 开启全网加速 131 |
132 |
134 | 135 |
136 | OpenIM
137 | 开源IM力争No.1 138 |
139 |
141 | 142 |
143 | Apifox
144 | 比 Postman 更强大 145 |
146 |
150 | 151 | 152 | ## 声明 153 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 154 | -------------------------------------------------------------------------------- /content/HelloGitHub02.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 02 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/02) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### CSS 项目 24 | 1、[github-markdown-css](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sindresorhus/github-markdown-css):仿 GitHub 的 Markdown 的样式,就是使用了这个 CSS 后,Markdown 展示效果和 GitHub 的大致一样。[示例](https://sindresorhus.com/github-markdown-css/) 25 | 26 | 27 |

28 | 29 | ### JavaScript 项目 30 | 2、[ant-motion](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ant-design/ant-motion):阿里开源的项目,一套 React 框架动效解决方案,可以帮助开发者,更容易的在项目中使用动效。同时可以方便快捷地制作一个公司的介绍页,[在线演示](https://motion.ant.design/) 31 | 32 | 33 | 3、[jquery-weui](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lihongxun945/jquery-weui):可能是最好用 WeUI 版本,展示效果如下: 34 | 35 | 36 | 37 |

38 | 39 | 4、[listen1_desktop](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/listen1/listen1_desktop):Listen 1 让你用一个网页就能听到多个网站的在线音乐,支持各种平台。如图: 40 | 41 | 42 | 43 |

44 | 45 | 5、[ssbc](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/78/ssbc):Python Django 写的种子搜索网站——手撕包菜,如图: 46 | 47 | 48 | 49 |

50 | 51 | 6、[waitForImages](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alexanderdickson/waitForImages):背景加载完事件,示例代码: 52 | ```html 53 | 54 | 61 | ``` 62 | 63 | 64 | 7、[wechat-h5-boilerplate](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/panteng/wechat-h5-boilerplate):为腾讯微信优化的 HTML5 动效模板,帮助你快速构建全屏滚动型 HTML5 页面,[示例](https://panteng.github.io/wechat-h5-boilerplate/) 65 | 66 | 67 |

68 | 69 | ### Python 项目 70 | 8、[algorithm](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/qiwsir/algorithm):老齐的 Python 算法教程 71 | 72 | 73 | 9、[mincss](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/peterbe/mincss):Python 写的用来找到 CSS 中没有用到的代码片段,并删除。适用于:想要做一个页面,但是不会写 CSS 人。示例代码如下: 74 | ```python 75 | #coding:utf-8 76 | #!/usr/bin/env python 77 | from __future__ import print_function 78 | import sys, os 79 | sys.path.insert(0, os.path.abspath('.')) 80 | from mincss.processor import Processor 81 | 82 | # 这里改成想要参考的页面 83 | URL = 'http://localhost:9000/page.html' 84 | 85 | def run(): 86 | p = Processor() 87 | p.process(URL) 88 | 89 | # 输出INlink的css的简化前和简化后的css代码 90 | print("INLINES ".ljust(79, '-')) 91 | for each in p.inlines: 92 | print("On line %s" % each.line) 93 | print('- ' * 40) 94 | print("BEFORE") 95 | print(each.before) 96 | print('- ' * 40) 97 | print("AFTER:") 98 | print(each.after) 99 | 100 | # 输出link引用的css的简化前和简化后的css代码 101 | print("LINKS ".ljust(79, '-')) 102 | for each in p.links: 103 | print("On href %s" % each.href) 104 | print('- ' * 40) 105 | print("BEFORE") 106 | print(each.before) 107 | print('- ' * 40) 108 | print("AFTER:") 109 | print(each.after) 110 | 111 | if __name__ == '__main__': 112 | run() 113 | ``` 114 | 115 | 116 | 10、[python-gems](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/RealHacker/python-gems):有趣的 Pyhton 代码片段集合 117 | 118 | 119 | 11、[python-goose](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/grangier/python-goose):Goose 用于文章提取器,提取中文内容的示例代码: 120 | ```python 121 | >>> from goose import Goose 122 | >>> from goose.text import StopWordsChinese 123 | >>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml' 124 | >>> g = Goose({'stopwords_class': StopWordsChinese}) 125 | >>> article = g.extract(url=url) 126 | >>> print article.cleaned_text[:150] 127 | 香港行政长官梁振英在各方压力下就其大宅的违章建筑(僭建)问题到立法会接受质询,并向香港民众道歉。 128 | 129 | 梁振英在星期二(12月10日)的答问大会开始之际在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的意图和动机。 130 | 131 | 一些亲北京阵营议员欢迎梁振英道歉,且认为应能获得香港民众接受,但这些议员也质问梁振英有 132 | ``` 133 | 134 | 135 | ### 其它 136 | 12、[leetcode-solutions](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/RealHacker/leetcode-solutions):Leetcode OJ 的 Python 算法实现 137 | 138 | 139 | 140 | 141 |

142 | 『上一期』 | 反馈和建议 | 『下一期』 143 |

144 | 145 | --- 146 |

147 | 👉 来!推荐开源项目 👈
148 | 微信中搜:HelloGitHub 关注公众号
149 | 不仅能第一时间收到推送,还有回馈粉丝的活动
150 | 如果文中的图刷不出来,可以点击 这里。 151 |

152 | 153 | ## 赞助 154 | 155 | 156 | 157 | 158 | 159 | 166 | 173 | 180 | 187 | 188 | 189 |
160 | 161 |
162 | UCloud
163 | 超值的全球云服务 164 |
165 |
167 | 168 |
169 | CDN
170 | 开启全网加速 171 |
172 |
174 | 175 |
176 | OpenIM
177 | 开源IM力争No.1 178 |
179 |
181 | 182 |
183 | Apifox
184 | 比 Postman 更强大 185 |
186 |
190 | 191 | 192 | ## 声明 193 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 194 | -------------------------------------------------------------------------------- /content/HelloGitHub03.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 03 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/03) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### CSS 项目 24 | 1、[animate.css](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/animate-css/animate.css):提供炫酷动画效果,同时方便、易用、跨浏览器的 CSS 库。[在线演示](https://daneden.github.io/animate.css/) 25 | 26 | 27 | 2、[mui](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dcloudio/mui):最接近原生 APP 体验的高性能框架。性能和体验的差距,一直是 mobile App 开发者放弃 HTML5 的首要原因。mui 框架有效的解决了这些问题,这是一个可以方便开发出高性能 App 的框架,也是目前最接近原生 App 效果的框架。[mui 官网](http://dev.dcloud.net.cn/mui/) 28 | 29 | 30 | ### Go 项目 31 | 3、[pholcus](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/andeya/pholcus):Pholcus 是 Go 写的重量级爬虫,纯 Go 语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有 Web、GUI、命令行三种操作界面,功能齐全、强大。[使用手册](https://pholcus.gitbooks.io/docs/content/),使用展示如图: 32 | 33 | 34 | 35 |

36 | 37 | ### Java 项目 38 | 4、[greys-anatomy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/oldmanpushcart/greys-anatomy):Greys 是 Java 在线问题诊断工具。 39 | 40 | 41 | ### JavaScript 项目 42 | 5、[editor.md](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pandao/editor.md):是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。[在线尝试](http://lab.lepture.com/editor/),使用展示如图: 43 | 44 | 45 | 46 |

47 | 48 | 6、[OS.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/os-js/OS.js):JavaScript 写的基于浏览器上的桌面操作系统。[在线演示](https://demo.os-js.org/),使用展示如图: 49 | 50 | 51 | 52 |

53 | 54 | ### Python 项目 55 | 7、[KindleEar](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cdhigh/KindleEar):这是一个运行在 Google App Engine(GAE) 上的 Kindle 个人推送服务应用,生成排版精美的杂志模式 `mobi/epub` 格式自动每天推送至您的 Kindle 或其他邮箱。 56 | 57 | 58 | 8、[walle-web](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/meolu/walle-web):Walle(瓦力) 一个 Web 部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!支持 git、svn 版本管理,支持各种 Web 代码发布,静态的 HTML,动态 PHP,需要编译的 Java 等。[中文介绍](https://github.com/meolu/walle-web/blob/master/docs/README-zh.md),使用展示如图: 59 | 60 | 61 | 62 |

63 | 64 | ### 其它 65 | 9、[css-creating](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cssdream/css-creating):CSS 创作指南 66 | 67 | 68 | 69 | 70 |

71 | 『上一期』 | 反馈和建议 | 『下一期』 72 |

73 | 74 | --- 75 |

76 | 👉 来!推荐开源项目 👈
77 | 微信中搜:HelloGitHub 关注公众号
78 | 不仅能第一时间收到推送,还有回馈粉丝的活动
79 | 如果文中的图刷不出来,可以点击 这里。 80 |

81 | 82 | ## 赞助 83 | 84 | 85 | 86 | 87 | 88 | 95 | 102 | 109 | 116 | 117 | 118 |
89 | 90 |
91 | UCloud
92 | 超值的全球云服务 93 |
94 |
96 | 97 |
98 | CDN
99 | 开启全网加速 100 |
101 |
103 | 104 |
105 | OpenIM
106 | 开源IM力争No.1 107 |
108 |
110 | 111 |
112 | Apifox
113 | 比 Postman 更强大 114 |
115 |
119 | 120 | 121 | ## 声明 122 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 123 | -------------------------------------------------------------------------------- /content/HelloGitHub04.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 04 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/04) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### Java 项目 24 | 1、[cachecloud](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sohutv/cachecloud):搜狐视频开源的 CacheCloud 项目,提供了一个 Redis 云管理平台,功能强大,教程详细(有视频教程),文档齐全,**企业级开源项目** 25 | 26 | 27 | 28 |

29 | 30 | ### JavaScript 项目 31 | 2、[zhihudaily-vue](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yatessss/zhihudaily-vue):用 Vue.js 写的知乎日报手机 Web 版,需打开 chrome 浏览器的手机模拟功能,来获得比较好的浏览效果。访问展示图如下: 32 | 33 | 34 | 35 |

36 | 37 | 3、[zingtouch](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zingchart/zingtouch):支持移动端各种触摸动作包含:转动、挥动、滑动等动作的库,[官方网站](https://zingchart.github.io/zingtouch/),展示图如下: 38 | 39 | 40 | 41 |

42 | 43 | ### Python 项目 44 | 4、[flask-admin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/flask-admin/flask-admin):我工作中需要写一个微型的管理系统,用的就是这个框架。简直快餐型,页面都写好了,只要设置好相关配置就可以跑起来了。唯一缺点就是文档中的例子少,开发一些特定的需求需要自己看源码,才能知道如何改。[文档](https://flask-admin.readthedocs.io/en/latest/),下面是我跑起来之后的样子: 45 | 46 | 47 | 48 |

49 | 50 | 5、[python-guide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/realpython/python-guide):Requests 库的作者——kennethreitz,写的 Python 入门教程。不单单是语法层面的,涵盖项目结构、代码风格,进阶、工具等方方面面。虽然是**英文版**([中文翻译版](http://pythonguidecn.readthedocs.io/zh/latest/)),但我这个英语渣都能看懂,你肯定也可以,快去看看吧,开卷有益。[在线阅读](http://docs.python-guide.org/en/latest/) 51 | 52 | 53 |

54 | 55 | 6、[python-sdk](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/qiniu/python-sdk):七牛云存储 SDK。我自己在用他家的服务,上手简单、有免费额度,可以用来做‘图床’,同时,有了这个 SDK 可以写一些好用的小工具。**注意**:图床不能随便用,我曾经就用超了,账户的钱能扣成**负数**! 56 | 57 | 58 | ### 其它 59 | 7、[AndroidInterview-Q-A](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JackyAndroid/AndroidInterview-Q-A):这个项目主要是国内一线互联网公司的 Java 和 Android 方面的内部面试题。 60 | 61 | 62 | 8、[awesome-mac](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jaywcjlove/awesome-mac):排版相当好的一个 awesome 系列文章,文中介绍了很多 Mac 上好用的工具。 63 | 64 | 65 | 9、[Front-end-Web-Development-Interview-Question](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/paddingme/Front-end-Web-Development-Interview-Question):前端开发面试题大收集 66 | 67 | 68 | 10、[interview](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/HIT-Alibaba/interview):笔试面试知识整理(涵盖:IOS、Android、计算机基础),[在线阅读](https://hit-alibaba.github.io/interview/index.html) 69 | 70 | 71 | 11、[interview_python](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/taizilongxu/interview_python):关于 Python 的面试题 72 | 73 | 74 | 12、[neural-networks-and-deep-learning](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mnielsen/neural-networks-and-deep-learning):《神经网络与深度学习》相关代码 Python 实现,[神经网络与深度学习-中文在线阅读](https://tigerneil.gitbooks.io/neural-networks-and-deep-learning-zh/content/chapter1.html),该书中的相关理论的 Python 代码实现 75 | 76 | 77 | 13、[PyZh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/MrKiven/PyZh):Python 经典的技术文章的翻译和收集,[在线阅读](http://pyzh.readthedocs.io/en/latest/) 78 | 79 | 80 | 81 | 82 |

83 | 『上一期』 | 反馈和建议 | 『下一期』 84 |

85 | 86 | --- 87 |

88 | 👉 来!推荐开源项目 👈
89 | 微信中搜:HelloGitHub 关注公众号
90 | 不仅能第一时间收到推送,还有回馈粉丝的活动
91 | 如果文中的图刷不出来,可以点击 这里。 92 |

93 | 94 | ## 赞助 95 | 96 | 97 | 98 | 99 | 100 | 107 | 114 | 121 | 128 | 129 | 130 |
101 | 102 |
103 | UCloud
104 | 超值的全球云服务 105 |
106 |
108 | 109 |
110 | CDN
111 | 开启全网加速 112 |
113 |
115 | 116 |
117 | OpenIM
118 | 开源IM力争No.1 119 |
120 |
122 | 123 |
124 | Apifox
125 | 比 Postman 更强大 126 |
127 |
131 | 132 | 133 | ## 声明 134 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 135 | -------------------------------------------------------------------------------- /content/HelloGitHub05.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 05 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/05) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[WeiXinMPSDK](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JeffreySu/WeiXinMPSDK):微信公众平台 SDK,支持 .NET Framework 及 .NET Core。已支持微信公众号、企业号、开放平台、微信支付、JSSDK。此项目开源、免费、持续维护。 25 | 26 | 27 | ### Go 项目 28 | 2、[gh-ost](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/github/gh-ost):GitHub 开源的在线修改表结构工具。目的是解决一个经常碰到的问题:不断变化的产品需求会不断要求更改 MySQL 表结构。gh-ost 通过一种影响小、可控制、可审计、操作简单而且安全的方式来改变线上表结构。[中文简介](http://www.infoq.com/cn/news/2016/08/GitHub-MySQL-gh-ost?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global) 29 | 30 | 31 | 32 |

33 | 34 | 3、[gogs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gogs/gogs):用 Go 写的一款极易搭建的自助 Git 服务,支持所有平台。就像 GitLab 一样的服务,但是 GitLab 是基于 ruby 语言的。另外:完善的中文文档、支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。[中文介绍](https://github.com/gogits/gogs/blob/master/README_ZH.md) 35 | 36 | 37 | 38 |

39 | 40 | ### JavaScript 项目 41 | 4、[share.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/overtrue/share.js):一键分享到微博、QQ 空间、QQ 好友、微信、腾讯微博、豆瓣等社交网站的 JavaScript 项目。[在线演示](http://overtrue.me/share.js/) 42 | 43 | 44 | 45 |

46 | 47 | ### PHP 项目 48 | 5、[pinyin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/overtrue/pinyin):基于 CC-CEDICT 词典的中文转拼音工具,更准确的支持多音字的汉字转拼音解决方案,示例代码: 49 | ```php 50 | use OvertruePinyinPinyin; 51 | 52 | $pinyin = new Pinyin(); 53 | 54 | $pinyin->convert('带着希望去旅行,比到达终点更美好'); 55 | // ["dai", "zhe", "xi", "wang", "qu", "lv", "xing", "bi", "dao", "da", "zhong", "dian", "geng", "mei", "hao"] 56 | 57 | $pinyin->convert('带着希望去旅行,比到达终点更美好', PINYIN_UNICODE); 58 | // ["dài","zhe","xī","wàng","qù","lǚ","xíng","bǐ","dào","dá","zhōng","diǎn","gèng","měi","hǎo"] 59 | 60 | $pinyin->convert('带着希望去旅行,比到达终点更美好', PINYIN_ASCII); 61 | //["dai4","zhe","xi1","wang4","qu4","lv3","xing2","bi3","dao4","da2","zhong1","dian3","geng4","mei3","hao3"] 62 | ``` 63 | 64 | 65 | ### Python 项目 66 | 6、[flaskbb](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/flaskbb/flaskbb):基于 Flask 框架做的论坛,功能有限,轻量级的论坛应用[在线文档](https://flaskbb.readthedocs.io/en/latest/index.html),可以在这个项目上进行二次开发,实现更加复杂的功能。[在线预览](https://forums.flaskbb.org) 67 | 68 | 69 | 70 |

71 | 72 | 7、[fuck-login](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xchaoinfo/fuck-login):模拟登录一些知名的网站,为了方便爬取需要登录的网站。**注意**:控制爬虫的爬取频率! 73 | 74 | 75 | 8、[superset](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/apache/superset):企业级的数据探索、展示平台。功能很强大,可以用来做数据分析、展示。如下图: 76 | 77 | 78 | 79 |

80 | 81 | ### 其它 82 | 9、[bytesize-icons](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/danklammer/bytesize-icons):极小、极简的 SVG 图标集合,[在线演示](http://danklammer.com/articles/svg-stroke-ftw/#give-it-a-spin)。 83 | 84 | 85 | 86 |

87 | 88 | 10、[gitignore](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/github/gitignore):各种 `gitignore` 模版,特别全,应该能找到你需要的。[什么是 gitignore 文件](http://gitbook.liuhui998.com/4_1.html)。 89 | 90 | 91 | 11、[security-guide-for-developers](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FallibleInc/security-guide-for-developers):这是一个实际工作中会用到的安全 checklist。作为一个 real world web developer 你应该在实际工作中不断地谨慎使用这套列表,减少安全隐患。[中文翻译版](https://github.com/FallibleInc/security-guide-for-developers/blob/master/README-zh.md) 92 | 93 | 94 | 12、[Solve-App-Store-Review-Problem](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wg689/Solve-App-Store-Review-Problem):App Store 审核未通过的解决方案。 95 | 96 | 97 | 98 | 99 |

100 | 『上一期』 | 反馈和建议 | 『下一期』 101 |

102 | 103 | --- 104 |

105 | 👉 来!推荐开源项目 👈
106 | 微信中搜:HelloGitHub 关注公众号
107 | 不仅能第一时间收到推送,还有回馈粉丝的活动
108 | 如果文中的图刷不出来,可以点击 这里。 109 |

110 | 111 | ## 赞助 112 | 113 | 114 | 115 | 116 | 117 | 124 | 131 | 138 | 145 | 146 | 147 |
118 | 119 |
120 | UCloud
121 | 超值的全球云服务 122 |
123 |
125 | 126 |
127 | CDN
128 | 开启全网加速 129 |
130 |
132 | 133 |
134 | OpenIM
135 | 开源IM力争No.1 136 |
137 |
139 | 140 |
141 | Apifox
142 | 比 Postman 更强大 143 |
144 |
148 | 149 | 150 | ## 声明 151 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 152 | -------------------------------------------------------------------------------- /content/HelloGitHub06.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 06 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/06) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[Cowboy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gaochundong/Cowboy):一个基于 .NET/C# 实现的开源 WebSocket 网络库。[详细介绍](http://www.cnblogs.com/gaochundong/p/cowboy_websockets.html) 25 | 26 | 27 | ### Go 项目 28 | 2、[wukong](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huichen/wukong):悟空引擎是一个高度可定制的全文搜索引擎,[为什么要有悟空引擎](https://github.com/huichen/wukong/blob/master/docs/why_wukong.md),[入门教程](https://github.com/huichen/wukong/blob/master/docs/codelab.md),这个项目的搜索引擎原理如下: 29 | 30 | 31 | 32 |

33 | 34 | ### Java 项目 35 | 3、[disconf](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/knightliao/disconf):一个企业级的分布式配置管理平台,专注于各种分布式系统配置管理的通用平台,提供统一的配置管理服务。核心目标:一个 jar 包,到处运行。[在线文档](http://disconf.readthedocs.io/zh_CN/latest/index.html) 36 | 37 | 38 | 4、[moco](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dreamhead/moco):开发过程中需要依赖一些接口,这些接口要么是搭建环境困难,要么是还没有实现,要么是交互比较复杂。这种情况下,使用 mock server 来 mock(模拟)这些接口,以便开发和测试能够正常进行。快速上手步骤: 39 | ``` 40 | 1. 下载 Moco:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar 41 | 42 | 2. 写需要返回的reponse数据格式如下: 43 | [ 44 | { 45 | "response" : 46 | { 47 | "text" : "Hello, Moco" 48 | } 49 | } 50 | ] 51 | (文件名:foo.json) 52 | 53 | 3.运行 54 | java -jar moco-runner--standalone.jar http -p 12306 -c foo.json 55 | 56 | 4. 访问 http://localhost:12306,你将会看到 “Hello, Moco” 57 | ``` 58 | 59 | 60 | ### JavaScript 项目 61 | 5、[nodeppt](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ksky521/nodeppt):这可能是迄今为止最好的网页版演示库,[在线演示](http://qdemo.sinaapp.com/) 62 | 63 | 64 | 6、[vue-sui-demo](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/eteplus/vue-sui-demo):这是一个用 Vue 和 SUI-Mobile 写的移动端 Demo,可以用来学习 Vue.js。[项目线上预览](https://eteplus.github.io/vue-sui-demo/),效果图如下: 65 | 66 | 67 | 68 |

69 | 70 | ### Python 项目 71 | 7、[amazing-qr](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/x-hw/amazing-qr):Python 写的生成动态、彩色、各式各样的二维码,详细的[中文文档](https://github.com/sylnsfar/qrcode/blob/master/README-cn.md),通过 `qrcode` 生成的二维码样式如下: 72 | 73 | 74 | 75 |

76 | 77 | 8、[textfilter](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/observerss/textfilter):基于某 1w 词敏感词库,用 Python 实现几种不同的过滤方式。**用于过滤敏感词的实用模块**,示例代码: 78 | ```python 79 | from filter import DFAFilter 80 | 81 | gfw = DFAFilter() 82 | gfw.parse("keywords") 83 | print "待过滤:售假人民币 我操操操" 84 | print "过滤后:", gfw.filter("售假人民币 我操操操", "*") 85 | 86 | test_first_character() 87 | 88 | # 运行结果 89 | # 待过滤:售假人民币 我操操操 90 | # 过滤后: 售假**币 **** 91 | ``` 92 | 93 | 94 | 9、[Young](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/shiyanhui/Young):基于 Tornado 框架、MongoDB 数据库,写的功能丰富的社区项目。详细的[安装步骤](https://github.com/shiyanhui/Young/blob/master/README_CN.md),适合学习如何创建社区类 Web App。[在线预览](http://beyoung.io/),项目运行效果图: 95 | 96 | 97 | 98 |

99 | 100 | ### Swift 项目 101 | 10、[12306ForMac](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fancymax/12306ForMac):非官方的 12306 购票,Mac OS 客户端 102 | 103 | 104 | 105 |

106 | 107 | ### 其它 108 | 11、[Apollo-11](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chrislgarry/Apollo-11):阿波罗 11 号代码,[中文介绍](https://github.com/chrislgarry/Apollo-11/blob/master/README.zh_cn.md) 109 | 110 | 111 | 12、[gvm](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/moovweb/gvm):Go 版本管理工具,可以通过命令,无痛切换不同的 Go 版本,示例指令: 112 | ``` 113 | 1. 安装gvm:bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) 114 | 115 | 2. 根据提示,在shell配置中加入:source /PATH/.gvm/scripts/gvm 116 | 117 | 3. 以下为常用命令: 118 | gvm install go1.4 # 安装制定版本的GO 119 | gvm use go1.4 # 使用制定版本的GO 120 | 121 | 4. Mac下安装Go时如果出现错误,就安装依赖的库: 122 | xcode-select --install 123 | brew update 124 | brew install mercurial 125 | 126 | 5. 我在使用中发现的问题: 127 | 安装Go时没有进度条 128 | ``` 129 | 130 | 131 | 13、[LearningNotes](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/francistao/LearningNotes):很全面的学习笔记,偏向 Android 和 Java 132 | 133 | 134 | 14、[weapp-ide-crack](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gavinkwoe/weapp-ide-crack):【应用号】IDE + 破解 + Demo 135 | 136 | 137 | 138 | 139 |

140 | 『上一期』 | 反馈和建议 | 『下一期』 141 |

142 | 143 | --- 144 |

145 | 👉 来!推荐开源项目 👈
146 | 微信中搜:HelloGitHub 关注公众号
147 | 不仅能第一时间收到推送,还有回馈粉丝的活动
148 | 如果文中的图刷不出来,可以点击 这里。 149 |

150 | 151 | ## 赞助 152 | 153 | 154 | 155 | 156 | 157 | 164 | 171 | 178 | 185 | 186 | 187 |
158 | 159 |
160 | UCloud
161 | 超值的全球云服务 162 |
163 |
165 | 166 |
167 | CDN
168 | 开启全网加速 169 |
170 |
172 | 173 |
174 | OpenIM
175 | 开源IM力争No.1 176 |
177 |
179 | 180 |
181 | Apifox
182 | 比 Postman 更强大 183 |
184 |
188 | 189 | 190 | ## 声明 191 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 192 | -------------------------------------------------------------------------------- /content/HelloGitHub07.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 07 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/07) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[BaiduPCS](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/GangZhuo/BaiduPCS):C 写的百度网盘命令行工具,[在线文档](https://github.com/GangZhuo/BaiduPCS/wiki/BaiduPCS-基本使用) 25 | 26 | 27 | ### C# 项目 28 | 2、[MongoCola](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/magicdict/MongoCola):MongoCola 是一个开源的 MongoDB 管理工具。持续开发、维护已经有**五年**了,[开发历程](http://www.cnblogs.com/TextEditor/p/5473190.html),效果图如下: 29 | 30 | 31 | 32 |

33 | 34 | ### C++ 项目 35 | 3、[cpr](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/libcpr/cpr):C++ 版 `Request for human`,[在线文档](https://whoshuu.github.io/cpr/),示例代码: 36 | ```C++ 37 | #include 38 | 39 | int main(int argc, char** argv) { 40 | auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"}, 41 | cpr::Authentication{"user", "pass"}, 42 | cpr::Parameters{{"anon", "true"}, {"key", "value"}}); 43 | r.status_code; // 200 44 | r.header["content-type"]; // application/json; charset=utf-8 45 | r.text; // JSON text string 46 | } 47 | ``` 48 | 49 | 50 | ### CSS 项目 51 | 4、[cssicon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wentin/cssicon):纯 CSS 实现的 icon 52 | 53 | 54 | ### Go 项目 55 | 5、[beego](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/beego/beego):一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架,齐全的文档(中文),丰富的使用案例。[官网地址](https://beego.me) 56 | 57 | 58 | ### JavaScript 项目 59 | 6、[clipboard.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zenorocha/clipboard.js):实现了点击文本内容的 JavaScript 插件,优点:最新、极小、无任依赖、使用简单方便。[在线文档](https://clipboardjs.com) 60 | 61 | 62 | 63 |

64 | 65 | 7、[nodeclub](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/cnodejs/nodeclub):Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统,[社区地址](https://cnodejs.org/) 66 | 67 | 68 |

69 | 70 | ### Objective-C 项目 71 | 8、[PYPhotoBrowser](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ko1o/PYPhotoBrowser):高仿 QQ、微信效果的图片浏览器(支持原图和缩略图、多种手势、CocoaPods) 72 | 73 | 74 | ### Python 项目 75 | 9、[cli](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/httpie/cli):非常好用的命令行 HTTP 客户端,cURL 的替代者,返回的结果支持**高亮**,提高了可读性。用于调试接口、查看服务器返回的 HTTP 协议的信息。[在线文档](https://httpie.org/docs#examples),下面的是 cURL 和 httpie 的返回结果对比图: 76 | 77 | 78 | 79 |

80 | 81 | 10、[fake-useragent](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fake-useragent/fake-useragent):伪装浏览器身份,常用于爬虫。这个项目的代码很少,可以阅读一下,看看 `ua.random` 是如何返回随机的浏览器身份的😁,示例代码: 82 | ```python 83 | from fake_useragent import UserAgent 84 | ua = UserAgent() 85 | 86 | ua.ie 87 | # Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US); 88 | ua.msie 89 | # Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)' 90 | ua['Internet Explorer'] 91 | # Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US) 92 | ua.opera 93 | # Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11 94 | ua.chrome 95 | # Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2' 96 | ua.google 97 | # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13 98 | ua['google chrome'] 99 | # Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11 100 | ua.firefox 101 | # Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1 102 | ua.ff 103 | # Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1 104 | ua.safari 105 | # Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25 106 | 107 | # and the best one, random via real world browser usage statistic 108 | ua.random 109 | ``` 110 | 111 | 112 | 11、[langid.py](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/saffsd/langid.py):用于识别输入文本数据所属的语种,目前支持 97 种语言识别。示例代码: 113 | ```python 114 | import langid 115 | text1 = "I am a coder and love data mining" 116 | text2 = "请注明作者和出处并保留声明和联系方式" 117 | 118 | print langid.classify(text1) 119 | print langid.classify(text2) 120 | 121 | # ('en', 0.9999957874458753) 122 | # ('zh', 1.0) 123 | ``` 124 | 125 | 126 | ### 其它 127 | 12、[coding-interview-university](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jwasham/coding-interview-university):一套完整的学习手册帮助自己准备 Google 的面试,[中文翻译版](https://github.com/jwasham/coding-interview-university/blob/master/translations/README-cn.md) 128 | 129 | 130 | 13、[How-to-Make-a-Computer-Operating-System](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System):(英文)如何做一个操作系统[在线阅读](https://www.gitbook.com/book/samypesse/how-to-create-an-operating-system/details) 131 | 132 | 133 | 14、[learning-react](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yiminghe/learning-react):[yiminghe](https://github.com/yiminghe) 的 react 中文教程,包含[入门](http://yiminghe.me/learning-react/tutorial/zh-cn/intro.html#/)和[进阶](http://yiminghe.me/learning-react/tutorial/zh-cn/advanced.html#/) 134 | 135 | 136 | 15、[static](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/staticfile/static):这个项目是一个仓库,它尽可能全面收录优秀的开源库,并免费为之提供 CDN 加速服务,使之有更好的访问速度和稳定的环境。同时,它也提供开源库源接入的入口,让所有人都可以提交开源库,包括 JavaScript、CSS、image 和 swf 等静态文件。[访问 Staticfile CDN](https://www.staticfile.org/about.html) 137 | 138 | 139 | 16、[WebFundamentals](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/google/WebFundamentals):(英文)Google 的 Web 开发者最佳练习教程 140 | 141 | 142 | ### 开源书籍 143 | 17、[build-web-application-with-golang](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/astaxie/build-web-application-with-golang):《Go Web 编程》中文 144 | 145 | 146 | 147 | 148 |

149 | 『上一期』 | 反馈和建议 | 『下一期』 150 |

151 | 152 | --- 153 |

154 | 👉 来!推荐开源项目 👈
155 | 微信中搜:HelloGitHub 关注公众号
156 | 不仅能第一时间收到推送,还有回馈粉丝的活动
157 | 如果文中的图刷不出来,可以点击 这里。 158 |

159 | 160 | ## 赞助 161 | 162 | 163 | 164 | 165 | 166 | 173 | 180 | 187 | 194 | 195 | 196 |
167 | 168 |
169 | UCloud
170 | 超值的全球云服务 171 |
172 |
174 | 175 |
176 | CDN
177 | 开启全网加速 178 |
179 |
181 | 182 |
183 | OpenIM
184 | 开源IM力争No.1 185 |
186 |
188 | 189 |
190 | Apifox
191 | 比 Postman 更强大 192 |
193 |
197 | 198 | 199 | ## 声明 200 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 201 | -------------------------------------------------------------------------------- /content/HelloGitHub08.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 08 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/08) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[Newtonsoft.Json](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JamesNK/Newtonsoft.Json):Newtonsoft.Json 是一款 .NET 平台中开源的 JSON 序列化和反序列化类库,示例代码: 25 | ``` 26 | public class Account 27 | { 28 | public string Email { get; set; } 29 | public bool Active { get; set; } 30 | public DateTime CreatedDate { get; set; } 31 | public IList Roles { get; set; } 32 | } 33 | 34 | Account account = new Account 35 | { 36 | Email = "james@example.com", 37 | Active = true, 38 | CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, ateTimeKind.Utc), 39 | Roles = new List 40 | { 41 | "User", 42 | "Admin" 43 | } 44 | }; 45 | 46 | string json = JsonConvert.SerializeObject(account, Formatting.Indented); 47 | // { 48 | // "Email": "james@example.com", 49 | // "Active": true, 50 | // "CreatedDate": "2013-01-20T00:00:00Z", 51 | // "Roles": [ 52 | // "User", 53 | // "Admin" 54 | // ] 55 | // } 56 | 57 | Console.WriteLine(json); 58 | ``` 59 | 60 | 61 | ### C++ 项目 62 | 2、[libco](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Tencent/libco):腾讯的开源项目——libco 是微信后台大规模使用的 C/C++ 协程库,2013 年至今稳定运行在微信后台的数万台机器上。 63 | - 无需侵入业务逻辑,把多进程、多线程服务改造成协程服务,并发能力得到百倍提升 64 | - 支持 CGI 框架,轻松构建 Web 服务 65 | - 支持 gethostbyname、mysqlclient、ssl 等常用第三方库 66 | - 可选的共享栈模式,单机轻松接入千万连接 67 | - 完善简洁的协程编程接口 68 | - 类 pthread 接口设计,通过 co_create、co_resume 等简单清晰接口即可完成协程的创建与恢复 69 | - \_\_thread 的协程私有变量、协程间通信的协程信号量 co_signal 70 | - 语言级别的 lambda 实现,结合协程原地编写并执行后台异步任务 71 | - 基于 epoll/kqueue 实现的小而轻的网络框架,基于时间轮盘实现的高性能定时器 72 | 73 | 74 | ### Go 项目 75 | 3、[kcptun](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/xtaci/kcptun):也许是世界上最快的 UDP 传输工具,支持 macOS/Linux/Windows/FreeBSD/ARM/Raspberry Pi/OpenWrt。 76 | 77 | 78 | 79 |

80 | 81 | ### Java 项目 82 | 4、[AndroidUtilCode](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Blankj/AndroidUtilCode):Android 开发人员不得不收集的代码,[中文介绍](https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md) 83 | 84 | 85 | 5、[DanmakuFlameMaster](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/bilibili/DanmakuFlameMaster):Bilibili 开源的 Android 开源弹幕引擎·烈焰弹幕使。特性: 86 | - 使用多种方式(View/SurfaceView/TextureView)实现高效绘制 87 | - 该站 XML 弹幕格式解析 88 | - 基础弹幕精确还原绘制 89 | - 支持 mode7 特殊弹幕 90 | - 多核机型优化,高效的预缓存机制 91 | - 支持多种显示效果选项实时切换 92 | - 实时弹幕显示支持 93 | - 换行弹幕支持/运动弹幕支持 94 | - 支持自定义字体 95 | - 支持多种弹幕参数设置 96 | - 支持多种方式的弹幕屏蔽 97 | 98 | 99 | ### JavaScript 项目 100 | 6、[atrament](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jakubfiala/atrament):极小的 JavaScript 画板,[在线演示](http://fiala.uk/atrament.js/demo/) 101 | 102 | 103 |

104 | 105 | 7、[incubator-weex](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/apache/incubator-weex):移动端,跨平台前端框架,[详细的中文档](https://weex-project.io/cn/guide/) 106 | 107 | 108 | 8、[WeFlow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Tencent/WeFlow):微信出品的一个高效、强大、跨平台的 Web 前端开发工作流工具,[官网](https://weflow.io/) 109 | 110 | 111 | 112 |

113 | 114 | ### Objective-C 项目 115 | 9、[aria2gui](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NickYang29/aria2gui):Aria2 的 Mac 客户端(下载工具),[介绍、使用方法](http://www.jianshu.com/p/1290f8e7b326),特点: 116 | - 集成了 aria2,运行后即完成配置工作 117 | - 多线程下载 118 | - 未完成任务退出可以自动保存 119 | - 支持迅雷离线,百度、115、360 等网盘的 aria2 导出(需要浏览器插件支持) 120 | - 支持 PT/BT,BT 速度跟种子热度有关,如果没有速度网盘离线后再下载 121 | - 在 Badge 显示整体下载速度 122 | - 任务完成通知 123 | 124 | 125 | 126 |

127 | 128 | ### Python 项目 129 | 10、[httpstat](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/reorx/httpstat):httpstat 美化了 `curl` 的结果,使得结果更加可读。同时它无依赖、兼容 Python3、一共才 300 多行。还可以显示 HTTP 请求的每个过程中消耗的时间,如下图: 130 | 131 | 132 | 133 |

134 | 135 | 11、[PyMySQL](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/PyMySQL/PyMySQL):纯 Pyton 写的 MySQL 库,纯 Python 的好处就是可以运行在任何装有 Python 解释器(CPython、PyPy、IronPython)的平台上。相对于 [MySQLdb](https://github.com/farcepest/MySQLdb1) 性能几乎一样,使用方法也一样,但是 **PyMySQL 安装方法极其简单**——`pip install PyMySQL`,PyMySQL 使用示例代码: 136 | ``` 137 | # 下面为例子需要的数据库的建表语句 138 | CREATE TABLE `users` ( 139 | `id` int(11) NOT NULL AUTO_INCREMENT, 140 | `email` varchar(255) COLLATE utf8_bin NOT NULL, 141 | `password` varchar(255) COLLATE utf8_bin NOT NULL, 142 | PRIMARY KEY (`id`) 143 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 144 | AUTO_INCREMENT=1 ; 145 | ``` 146 | 147 | ```python 148 | # -*- coding: utf-8 -*- 149 | import pymysql.cursors 150 | 151 | # 连接数据库 152 | connection = pymysql.connect(host='localhost', 153 | user='user', 154 | password='passwd', 155 | db='db', 156 | charset='utf8mb4', 157 | cursorclass=pymysql.cursors.DictCursor) 158 | 159 | try: 160 | with connection.cursor() as cursor: 161 | # 创建一个新的纪录(record) 162 | sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)" 163 | cursor.execute(sql, ('webmaster@python.org', 'very-secret')) 164 | 165 | # 连接不会自动提交,所以你想下面要调用 commit 方法,存储对数据库的改动 166 | connection.commit() 167 | 168 | with connection.cursor() as cursor: 169 | sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s" 170 | cursor.execute(sql, ('webmaster@python.org',)) 171 | 172 | # 获取一条的纪录(record) 173 | result = cursor.fetchone() 174 | print(result) # 结果输出:{'password': 'very-secret', 'id': 1} 175 | finally: 176 | connection.close() # 操作完数据库一要记得调用 close 方法,关闭连接 177 | ``` 178 | 179 | 180 | 12、[reddit](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/reddit-archive/reddit):[reddit.com](https://www.reddit.com/) 网站的源码,通过这个项目,可以学习 Python 在构建大型项目中的使用、项目结构、代码风格、Python 技巧的使用方法等。[安装教程](https://github.com/reddit/reddit/wiki/Install-guide) 181 | 182 | 183 | 184 |

185 | 186 | ### Ruby 项目 187 | 13、[discourse](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/discourse/discourse):Ruby 语言写的论坛,百分之百开源、免费。 188 | 189 | 190 | 191 |

192 | 193 | ### 其它 194 | 14、[How-To-Ask-Questions-The-Smart-Way](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way):提问的智慧,提出一个好的问题是解决问题的关键 195 | 196 | 197 | 15、[jstraining](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ruanyf/jstraining):阮一峰写的全栈工程师培训材料 198 | 199 | 200 | 16、[macOS-Security-and-Privacy-Guide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/drduh/macOS-Security-and-Privacy-Guide):MacOS 的安全和隐私指南,[中文翻译版](https://github.com/xitu/macOS-Security-and-Privacy-Guide/blob/master/README-cn.md) 201 | 202 | 203 | 17、[PTVS](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/microsoft/PTVS):Visual Studio 下的 Python 开发插件 204 | 205 | 206 | 18、[styleguide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fex-team/styleguide):百度前端研发团队的文档与源码编写风格 207 | 208 | 209 | 19、[the-swift-programming-language-in-chinese](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SwiftGGTeam/the-swift-programming-language-in-chinese):中文版 Apple 官方 Swift 教程《The Swift Programming Language》 210 | 211 | 212 | 213 | 214 |

215 | 『上一期』 | 反馈和建议 | 『下一期』 216 |

217 | 218 | --- 219 |

220 | 👉 来!推荐开源项目 👈
221 | 微信中搜:HelloGitHub 关注公众号
222 | 不仅能第一时间收到推送,还有回馈粉丝的活动
223 | 如果文中的图刷不出来,可以点击 这里。 224 |

225 | 226 | ## 赞助 227 | 228 | 229 | 230 | 231 | 232 | 239 | 246 | 253 | 260 | 261 | 262 |
233 | 234 |
235 | UCloud
236 | 超值的全球云服务 237 |
238 |
240 | 241 |
242 | CDN
243 | 开启全网加速 244 |
245 |
247 | 248 |
249 | OpenIM
250 | 开源IM力争No.1 251 |
252 |
254 | 255 |
256 | Apifox
257 | 比 Postman 更强大 258 |
259 |
263 | 264 | 265 | ## 声明 266 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 267 | -------------------------------------------------------------------------------- /content/HelloGitHub09.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 09 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/09) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C++ 项目 24 | 1、[json](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nlohmann/json):C++ 的 JSON 库 25 | 26 | 27 | 28 |

29 | 30 | ### Go 项目 31 | 2、[vim-go](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fatih/vim-go):Go 的 vim 配置 32 | 33 | 34 | ### Java 项目 35 | 3、[android](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SmartisanTech/android):锤子开源的 One Step 项目,一步(one step)是通过拖拽完成将信息发送至应用或联系人的动作,节省了在不同应用之间切换的诸多步骤,第一次打通了手持设备中应用间的边界,[One Step](http://www.smartisan.com/m1/#/os?section=onestep) 36 | 37 | 38 | 4、[android-open-project](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Trinea/android-open-project):Android 开源项目分类汇总 39 | 40 | 41 | 5、[MSEC](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Tencent/MSEC):腾讯开源的毫秒服务引擎(Mass Service Engine in Cluster)。它是一个开源框架,适用于在廉价机器组成的集群上开发和运营分布式后台服务。毫秒服务引擎集 RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value 存储于一体,[官网介绍](http://haomiao.qq.com/index.html#documents) 42 | 43 | 44 | ### JavaScript 项目 45 | 6、[N-blog](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nswbmw/N-blog):面向新手的 Node.js 教程,该教程讲述了 Node.js 基本知识点,同时结合搭建一个多人博客的实战,从零基础到实际开发,由浅到深帮助新手入门 Node.js 这门语言 46 | 47 | 48 | 7、[pomelo](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NetEase/pomelo):Pomelo 网易开源的一个 Node.js 游戏服务器框架,[Demo](http://pomelo.netease.com/demo.html) 49 | 50 | 51 | 8、[vue-hackernews-2.0](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/vuejs/vue-hackernews-2.0):这是一个 Vue2.0 示例,克隆 [Hacker News](https://news.ycombinator.com/) 网站(我感觉比原站好看多了😅) 52 | 53 | 54 | 55 |

56 | 57 | ### PHP 项目 58 | 9、[VulApps](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Medicean/VulApps):用于快速搭建各种漏洞环境,可用来学习、理解常见的漏洞,增强自己在开发过程的安全意识 59 | 60 | 61 | ### Python 项目 62 | 10、[flask-limiter](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alisaifee/flask-limiter):一个 Flask 的扩展库,它可以根据访问者的 IP 限制其访问频率、次数等。示例代码如下: 63 | ```python 64 | from flask import Flask 65 | from flask_limiter import Limiter 66 | from flask_limiter.util import get_remote_address 67 | 68 | app = Flask(__name__) 69 | limiter = Limiter( 70 | app, 71 | key_func=get_remote_address, 72 | global_limits=["2 per minute", "1 per second"], 73 | ) 74 | 75 | @app.route("/slow") 76 | @limiter.limit("1 per day") 77 | def slow(): 78 | return "24" 79 | 80 | @app.route("/fast") 81 | def fast(): 82 | return "42" 83 | 84 | @app.route("/ping") 85 | @limiter.exempt 86 | def ping(): 87 | return 'PONG' 88 | 89 | app.run() 90 | ``` 91 | 92 | 93 | 11、[glances](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nicolargo/glances):一个可以让你**一目了然**你的系统情况(类 (h)top)的工具,它界面友好,安装方便:`pip install glances` 94 | 95 | 96 | 97 |

98 | 99 | 12、[ngrok](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/inconshreveable/ngrok):一个十分方便、好用的内网穿透工具,它可以把本地某个端口的服务,通过一个安全隧道,映射到公网的一个地址。同时它提供了一个 Web 页面,展示了每个请求、响应的所有信息,便于调试本地的程序。基本的使用方法如下: 100 | ``` 101 | ngrok 协议 本地服务监听的端口 102 | ngrok http 8000 103 | 104 | 创建成功会返回公网地址,然后通过该地址就可以访问到本地的服务。 105 | 本地访问 http://localhost:4040,就可以查看关于每个请求、响应的相关数据 106 | ``` 107 | 108 | 109 | 110 |

111 | 112 | ### Swift 项目 113 | 13、[Kingfisher](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/onevcat/Kingfisher):Kingfisher 是一个异步下载和缓存图片的库,你可以把它看做 SDWebImage 的纯 Swift 实现和替代。它可以帮助简单地实现像是用户头像或者 table view 里面的图片的下载和缓存这样的工作,以提高 app 速度和帮助开发者节省时间,[作者的中文博客](http://project.onevcat.com/) 114 | 115 | 116 | ### 其它 117 | 14、[best-chinese-front-end-blogs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FrankFang/best-chinese-front-end-blogs):该项目是收集优质的中文前端博客 118 | 119 | 120 | 15、[freecodecamp.cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FreeCodeCampChina/freecodecamp.cn):freecodecamp 是一个自由的开源编程社区,[freecodecamp 中文社区](https://freecodecamp.cn) 121 | 122 | 123 | 16、[golang-open-source-projects](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/hackstoic/golang-open-source-projects):中文版 awesome-go 124 | 125 | 126 | 17、[Learn-Algorithms](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nonstriater/Learn-Algorithms):算法数据结构学习,C 语言实现 127 | 128 | 129 | ### 开源书籍 130 | 18、[the-way-to-go_ZH_CN](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/unknwon/the-way-to-go_ZH_CN):《The Way to Go》中文译本,中文正式名《Go 入门指南》 131 | 132 | 133 | ### 机器学习 134 | 19、[machine-learning-for-software-engineers](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ZuzooVn/machine-learning-for-software-engineers):自上而下的学习路线,软件工程师的机器学习,[中文版](https://github.com/ZuzooVn/machine-learning-for-software-engineers/blob/master/README-zh-CN.md) 135 | 136 | 137 | 138 | 139 |

140 | 『上一期』 | 反馈和建议 | 『下一期』 141 |

142 | 143 | --- 144 |

145 | 👉 来!推荐开源项目 👈
146 | 微信中搜:HelloGitHub 关注公众号
147 | 不仅能第一时间收到推送,还有回馈粉丝的活动
148 | 如果文中的图刷不出来,可以点击 这里。 149 |

150 | 151 | ## 赞助 152 | 153 | 154 | 155 | 156 | 157 | 164 | 171 | 178 | 185 | 186 | 187 |
158 | 159 |
160 | UCloud
161 | 超值的全球云服务 162 |
163 |
165 | 166 |
167 | CDN
168 | 开启全网加速 169 |
170 |
172 | 173 |
174 | OpenIM
175 | 开源IM力争No.1 176 |
177 |
179 | 180 |
181 | Apifox
182 | 比 Postman 更强大 183 |
184 |
188 | 189 | 190 | ## 声明 191 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 192 | -------------------------------------------------------------------------------- /content/HelloGitHub10.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 10 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/10) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[Wox](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Wox-launcher/Wox):Windows 上的 Alfred、Launchy,使用演示: 25 | 26 | 27 | 28 |

29 | 30 | ### C++ 项目 31 | 2、[simhash](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yanyiwu/simhash):此项目用来对中文文档计算出对应的 simhash 值。simhash 是谷歌用来进行文本去重的算法([详见 simhash 算法原理及实现](http://yanyiwu.com/work/2014/01/30/simhash-shi-xian-xiang-jie.html)),现在广泛应用在文本处理中。特征: 32 | - 使用 CppJieba 作为分词器和关键词抽取器 33 | - 使用 jenkins 作为 hash 函数 34 | - hpp 风格,所有源码都是 .hpp 文件里面,方便使用。没有链接,就没有伤害。 35 | - 本项目的副产品项目:simhash_server 提供了简单的 simhash HTTP 服务。 36 | 37 | 38 | ### CSS 项目 39 | 3、[Font-Awesome](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FortAwesome/Font-Awesome):GitHub 上 Star 数最多的图标库,应该是当下最流行的图标库 40 | 41 | 42 | 4、[material-design-icons](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/google/material-design-icons):Google 官方开源基于 Material Design 设计风格的图标库 43 | 44 | 45 |

46 | 47 | ### Go 项目 48 | 5、[kingshard](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/flike/kingshard):kingshard 是一个由 Go 开发高性能 MySQL Proxy 项目,kingshard 在满足基本的读写分离的功能上,致力于简化 MySQL 分库分表操作;能够让 DBA 通过 kingshard 轻松平滑地实现 MySQL 数据库扩容。 49 | 50 | 51 | ### Java 项目 52 | 6、[rocketmq](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/apache/rocketmq):RocketMQ 是阿里巴巴在 2012 年开源的第三代分布式消息中间件。 53 | 历年双 11,RocketMQ 都承担了阿里巴巴生产系统百分之百的消息流转,在核心交易链路有着稳定和出色的表现,今年双十一,更是创造了万亿级消息精准低延迟投递。 54 | 55 | 56 | ### JavaScript 项目 57 | 7、[flv.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/bilibili/flv.js):使用纯 JavaScript 写的 HTML5 Flash 视频(flv)播放器,示例代码如下: 58 | ```javascript 59 | 60 | 61 | 73 | ``` 74 | 75 | 76 | 8、[iview](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/iview/iview):iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品。特性: 77 | - 高质量、功能丰富 78 | - 友好的 API,自由灵活地使用空间 79 | - 事无巨细的文档 80 | - 细致、漂亮的 UI 81 | - 使用单文件的 Vue 组件化开发模式 82 | - 基于 npm + webpack + babel 开发,支持 ES2015 83 | 84 | 85 | 9、[RAP](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/thx/RAP):阿里妈妈 MUX 团队出品,企业级 Web 接口管理工具。RAP 通过 GUI 工具帮助 Web 工程师更高效的管理接口文档,同时通过分析接口结构自动生成 Mock 数据、校验真实接口的正确性,使得接口开发更加规范、自动化。 86 | 87 | 88 | 89 |

90 | 91 | ### Objective-C 项目 92 | 10、[sequelpro](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sequelpro/sequelpro):这是我到目前为止在 Mac 上发现最好用的 MySQL 管理工具。本人一直在使用,并且推荐给了我的小伙伴们,用过都说好😈~ 93 | 94 | 95 | 96 |

97 | 98 | ### PHP 项目 99 | 11、[typecho](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/typecho/typecho):PHP 的一款博客程序,[官网](http://typecho.org/),[文档](http://docs.typecho.org/doku.php) 100 | 101 | 102 | 103 |

104 | 105 | ### Python 项目 106 | 12、[jumpserver](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jumpserver/jumpserver):Jumpserver 是一款由 Python 编写开源的跳板机(是一类可作为跳板批量操作远程设备的网络设备)系统,实现了跳板机应有的功能。基于 SSH 协议来管理,客户端无需安装 agent。支持常见 Linux 系统,效果如下: 107 | 108 | 109 | 110 |

111 | 112 | 13、[locust](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/locustio/locust):模拟用户行为的[负载测试](http://blog.csdn.net/kerryzhu/article/details/3515714)工具,包含友好的 Web 页面,如下图: 113 | 114 | 115 | 116 |

117 | 118 | 14、[saythanks.io](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/BlitzKraft/saythanks.io):Kennethreitz 写的一个简单的网站(基于 Flask),用于向开源项目作者发送感谢邮件的 Web App。该项目结构简单,可以用来学习大神是如何快速开发 Web 项目、方法、代码风格、开发常用库。而且该项目的意义也特别好:**感谢开源项目的作者**,愿开源社区越来越好,[网站地址](https://saythanks.io) 119 | 120 | 121 | 122 |

123 | 124 | ### 其它 125 | 15、[500lines](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/aosabook/500lines):(英文)用少于 500 行的 Python 代码,你可以写出什么东西?相信你看完这个项目,会学到很多(每个项目的作者都是业内大神写的)。[中文翻译版(未翻译完)](https://github.com/HT524/500LineorLess_CN) 126 | 127 | 128 | 16、[Awesome_APIs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/TonnyL/Awesome_APIs):第三方 API 集合 129 | 130 | 131 | 17、[IntelliJ-IDEA-Tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/judasn/IntelliJ-IDEA-Tutorial):IntelliJ IDEA 简体中文专题教程 132 | 133 | 134 | 18、[Lee-VR-Source](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/GeekLiB/Lee-VR-Source):VR 开发者必备资源汇总 135 | 136 | 137 | ### 开源书籍 138 | 19、[redisbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huangzworks/redisbook):Redis 设计与实现(网络版) 139 | 140 | 141 | ### 机器学习 142 | 20、[MLAlgorithms](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/rushter/MLAlgorithms):常见的机器学习算法,Python 实现: 143 | - [Deep learning (MLP, CNN, RNN, LSTM)](https://github.com/rushter/MLAlgorithms/tree/master/mla/neuralnet) 144 | - [Linear regression, logistic regression](https://github.com/rushter/MLAlgorithms/blob/master/mla/linear_models.py) 145 | - [Random Forests](https://github.com/rushter/MLAlgorithms/blob/master/mla/ensemble/random_forest.py) 146 | - [Support vector machine (SVM) with kernels (Linear, Poly, RBF)](https://github.com/rushter/MLAlgorithms/tree/master/mla/svm) 147 | - [K-Means](https://github.com/rushter/MLAlgorithms/blob/master/mla/kmeans.py) 148 | - 等等 149 | 150 | 151 | 152 | 153 |

154 | 『上一期』 | 反馈和建议 | 『下一期』 155 |

156 | 157 | --- 158 |

159 | 👉 来!推荐开源项目 👈
160 | 微信中搜:HelloGitHub 关注公众号
161 | 不仅能第一时间收到推送,还有回馈粉丝的活动
162 | 如果文中的图刷不出来,可以点击 这里。 163 |

164 | 165 | ## 赞助 166 | 167 | 168 | 169 | 170 | 171 | 178 | 185 | 192 | 199 | 200 | 201 |
172 | 173 |
174 | UCloud
175 | 超值的全球云服务 176 |
177 |
179 | 180 |
181 | CDN
182 | 开启全网加速 183 |
184 |
186 | 187 |
188 | OpenIM
189 | 开源IM力争No.1 190 |
191 |
193 | 194 |
195 | Apifox
196 | 比 Postman 更强大 197 |
198 |
202 | 203 | 204 | ## 声明 205 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 206 | -------------------------------------------------------------------------------- /content/HelloGitHub11.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 11 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/11) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[wrk](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wg/wrk):现代 HTTP 基准测试(实现对一类测试对象的某项性能指标进行定量的和可对比的测试)工具,使用示例: 25 | ```sh 26 | # 输入命令 27 | wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html 28 | 29 | # 输出 30 | Running 30s test @ http://127.0.0.1:8080/index.html 31 | 12 threads and 400 connections 32 | Thread Stats Avg Stdev Max +/- Stdev 33 | Latency 635.91us 0.89ms 12.92ms 93.69% 34 | Req/Sec 56.20k 8.07k 62.00k 86.54% 35 | 22464657 requests in 30.00s, 17.76GB read 36 | Requests/sec: 748868.53 37 | Transfer/sec: 606.33MB 38 | ``` 39 | 40 | 41 | ### Go 项目 42 | 2、[baetyl](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/baetyl/baetyl):百度云开源的边缘计算平台,可将云计算能力拓展至用户现场,提供临时离线、低延时的计算服务,包括设备接入、消息路由、消息远程同步、函数计算、视频接入预处理、AI推断等功能 43 | 44 | 45 | 3、[negroni](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/urfave/negroni):Negroni 是一个很地道的 Web 中间件,它不是一个框架,是为了方便使用 net/http 而设计的一个库而已。[中文介绍](https://github.com/urfave/negroni/blob/master/translations/README_zh_cn.md) 46 | 47 | 48 | ### Java 项目 49 | 4、[GitClub](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/TellH/GitClub):GitClub 不仅仅是一个 GitHub 客户端,还是一个发现优秀 GitHub 开源项目的 App 50 | 51 | 52 | 5、[jvm-mon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ajermakovics/jvm-mon):命令行模式的 JVM 监控 53 | 54 | 55 | 56 |

57 | 58 | 6、[tale](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/otale/tale):简洁、漂亮、轻量级、Java 博客,[在线预览](https://tale.biezhi.me/)。特性: 59 | - 设计简洁,界面美观 60 | - Markdown 文章发布 61 | - 自定义文章链接 62 | - 支持多主题 63 | - 支持 Emoji 表情 64 | - 支持网易云音乐播放 65 | - 支持附件和数据库备份 66 | - 部署简单,不依赖 Tomcat 67 | 68 | 69 | 70 |

71 | 72 | ### JavaScript 项目 73 | 7、[react-tetris](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chvin/react-tetris):逼真的俄罗斯方块(非常逼真、强大!),详细的技术介绍,[在线试玩](https://chvin.github.io/react-tetris/?lan=zh) 74 | 75 | 76 | 77 |

78 | 79 | ### Python 项目 80 | 8、[fastText](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/facebookresearch/fastText):fastText 简而言之,就是把文档中所有词通过 lookup table 变成向量,取平均后直接用线性分类器得到分类结果。[fastText 的实现](https://www.zybuluo.com/Wayne-Z/note/460881) 81 | 82 | 83 | 9、[mongoaudit](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/stampery/mongoaudit):强大的 MongoDB 渗透测试工具,用于发掘 MongoDB 漏洞、并提出改善方法。 84 | - 安装:`pip install mongoaudit` 85 | - 运行:`python mongoaudit` 86 | 87 | 88 | 10、[sh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/amoffat/sh):sh 是一个成熟,用于替代 subprocess,它允许你调用任何程序,就像它是一个函数,支持 Python2.6 - 3.5 89 | 90 | ```python 91 | from sh import ifconfig 92 | print ifconfig("eth0") 93 | ``` 94 | 95 | 96 | ### Swift 项目 97 | 11、[Swift-30-Projects](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/soapyigu/Swift-30-Projects):30 个小型 Swift Apps,可以用来上手学习、练习移动开发。 98 | 99 | 100 | 101 |

102 | 103 | ### 其它 104 | 12、[chinese-programmer-wrong-pronunciation](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/shimohq/chinese-programmer-wrong-pronunciation):中国程序员容易发音错误的单词 105 | 106 | 107 | 13、[golang-cheat-sheet](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/a8m/golang-cheat-sheet):(英文)Go 语法特性集合 108 | 109 | 110 | 14、[linux-command](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jaywcjlove/linux-command):Linux 命令大全搜索工具,内容包含 Linux 命令手册、详解、学习、搜集 111 | 112 | 113 | ### 开源书籍 114 | 15、[book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/qyuhen/book):雨痕大神写的学习笔记 115 | 116 | 117 | 16、[docker_practice](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yeasy/docker_practice):Docker 从入门到实践 118 | 119 | 120 | 17、[nginx-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/taobao/nginx-book):Nginx 开发从入门到精通——本书的作者为淘宝核心系统服务器平台组的成员 121 | 122 | 123 | 18、[open-shell-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tinyclub/open-shell-book):《Shell 编程范例》,面向操作对象学 Shell! 124 | 125 | 126 | 19、[python-data-structure-cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/facert/python-data-structure-cn):《Problem Solving with Algorithms and Data Structures using Python》中文版 127 | 128 | 129 | 20、[react-cookbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/shimohq/react-cookbook):编写简洁漂亮,可维护的 React 应用 130 | 131 | 132 | 21、[real-world-haskell-cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huangzworks/real-world-haskell-cn):《Real World Haskell》中文翻译项目 133 | 134 | 135 | 22、[rust-book-chinese](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/KaiserY/rust-book-chinese):Rust 程序设计语言 中文版 136 | 137 | 138 | 139 | 140 |

141 | 『上一期』 | 反馈和建议 | 『下一期』 142 |

143 | 144 | --- 145 |

146 | 👉 来!推荐开源项目 👈
147 | 微信中搜:HelloGitHub 关注公众号
148 | 不仅能第一时间收到推送,还有回馈粉丝的活动
149 | 如果文中的图刷不出来,可以点击 这里。 150 |

151 | 152 | ## 赞助 153 | 154 | 155 | 156 | 157 | 158 | 165 | 172 | 179 | 186 | 187 | 188 |
159 | 160 |
161 | UCloud
162 | 超值的全球云服务 163 |
164 |
166 | 167 |
168 | CDN
169 | 开启全网加速 170 |
171 |
173 | 174 |
175 | OpenIM
176 | 开源IM力争No.1 177 |
178 |
180 | 181 |
182 | Apifox
183 | 比 Postman 更强大 184 |
185 |
189 | 190 | 191 | ## 声明 192 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 193 | -------------------------------------------------------------------------------- /content/HelloGitHub12.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 12 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/12) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[tbox](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tboox/tbox):一个用 C 语言实现的跨平台开发库,用于解决不同操作系统的兼容问题,并且充分利用了各个平台独有的一些特性进行优化。[中文说明](https://github.com/tboox/tbox/blob/master/README_zh.md) 25 | 26 | 27 | 28 | ### C# 项目 29 | 2、[ScreenToGif](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NickeManarin/ScreenToGif):此工具可以记录屏幕的选定区域、网络摄像头的实时图像和绘图板上的实时图像。可以编辑并将动画保存为 GIF 或视频 30 | 31 | 32 | 33 |

34 | 35 | ### Go 项目 36 | 3、[sshtron](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zachlatta/sshtron):sshtron 是通过 SSH 运行的多人贪吃蛇游戏,命令行输入:`ssh sshtron.zachlatta.com`,无需安装等待几秒即可进行游戏(因为服务器在国外,很卡😅) 37 | 38 | 39 | 40 |

41 | 42 | 4、[wuzz](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/asciimoo/wuzz):wuzz 是用于调试 HTTP 请求的交互式命令行工具,可以用来检查和修改请求。常用操作如下: 43 | 44 | | Keybinding | Description | 45 | | :--------- | :------ | 46 | | Ctrl+R | 发送请求 | 47 | | Ctrl+C | 退出 | 48 | | Ctrl+K,Shift+Tab | 前视图 | 49 | | Ctlr+J,Tab | 下一个视图 | 50 | | Ctrl+H,Alt+H | 打开/关闭历史 | 51 | | Down | 向下移动一条视图线 | 52 | | Up | 向上移动一条视图线 | 53 | | Page down | 向下移动一个视图页 | 54 | | Page up | 向下移动一个视图页 | 55 | | F2 | 跳转到 URL | 56 | | F3 | 跳转到查询参数 | 57 | | F4 | 跳转到 HTTP 方法 | 58 | | F5 | 跳转到请求体 | 59 | | F6 | 跳转到 header | 60 | | F7 | 跳转到搜索 | 61 | | F8 | 跳转到响应 header | 62 | | F9 | 跳转到响应体 | 63 | 64 | 65 | 66 |

67 | 68 | 5、[xbar](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/matryer/xbar):Bitbar 是可以将任何(自己或别人写好的)脚本的**输出**到 Mac OS 的状态栏上。同时,支持自定义更新频率。例如:定时获取比特币的价格、HelloGitHub 项目的 star 数量,使用步骤如下: 69 | 70 | 1. 运行该程序,选择脚本所在目录 71 | 2. 确保脚本的有执行权限,赋予执行权限的命令:`chmod +x script.sh` 72 | 3. 选择 `Refresh all`,刷新使之生效 73 | 74 | 75 | 76 |

77 | 78 | ### Java 项目 79 | 6、[fresco](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/facebook/fresco):Facebook 开源的 Android 管理图片的库,[中文文档](https://www.fresco-cn.org/docs/index.html)。包含功能如下: 80 | - 显示占位图直到加载完成 81 | - 下载图片 82 | - 缓存图片 83 | - 图片不再显示时,从内存中移除 84 | - 等等 85 | 86 | 87 | ### JavaScript 项目 88 | 7、[octotree](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ovity/octotree):为 GitHub 和 GitLab 网站,提供直观地显示项目目录结构的浏览器插件,效果如下: 89 | 90 | 91 | 92 |

93 | 94 | 8、[screenfull](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sindresorhus/screenfull):极小、跨平台的 JavaScript 全屏插件,[在线 demo](https://sindresorhus.com/screenfull.js/) 95 | 96 | 97 | 9、[standard](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/standard/standard):统一 JavaScript,只需一种样式,[中文](https://github.com/feross/standard/blob/master/docs/README-zhtw.md) 98 | 99 | 100 | 10、[vue2-elm](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/bailicangdu/vue2-elm):基于 vue2 + vuex 构建一个大型单页面应用,此项目大大小小共 45 个页面,涉及注册、登录、商品展示、购物车、下单等等,是一个完整的流程, 101 | 102 | 103 | 104 |

105 | 106 | ### Python 项目 107 | 11、[mycli](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dbcli/mycli):mycli 是一个带语法高亮、自动补全的 MySQL 命令行客户端工具。例如,连接数据库方法:`mycli -h localhost -u 用户名 数据库` 108 | 109 | 110 | 111 |

112 | 113 | 12、[python-fire](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/google/python-fire):Fire 是 Google 开源的 Python 库,可自动将您的代码转变成 CLI,无需您做任何额外工作。您不必定义参数,设置帮助信息,或者编写定义代码运行方式的 main 函数。相反,您只需从 main 模块调用“Fire”函数,其余工作全部交由 Python Fire 来完成。示例代码如下: 114 | ```python 115 | import fire 116 | class Example(object): 117 | def hello(self, name='world'): 118 | """Says hello to the specified name.""" 119 | return 'Hello {name}!'.format(name=name) 120 | 121 | def main(): 122 | fire.Fire(Example) 123 | if __name__ == '__main__': 124 | main() 125 | 126 | # 在终端中调用效果如下: 127 | $ ./example.py hello 128 | Hello world! 129 | $ ./example.py hello David 130 | Hello David! 131 | $ ./example.py hello --name=Google 132 | Hello Google! 133 | ``` 134 | 135 | 136 | ### 其它 137 | 13、[gophers](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/egonelbre/gophers):Go 吉祥物的各种图片素材 138 | 139 | 140 |

141 | 142 | 14、[node-interview](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ElemeFE/node-interview):如何通过饿了么 Node.js 面试 143 | 144 | 145 | 15、[performance-column](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/barretlee/performance-column):[阿里胡子哥](https://github.com/barretlee)写的《性能专栏》,旨在提升 PC/H5/Native 等多个端上对性能的认知,[阅读地址](https://github.com/barretlee/performance-column/issues) 146 | 147 | 148 | ### 开源书籍 149 | 16、[explore-python](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ethan-funny/explore-python):《Python 之旅》,该书总结了 Python 相关的知识点,力求深入浅出、条理清晰 150 | 151 | 152 | 17、[react-naive-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huzidaha/react-naive-book):开源、免费、专业、简单的 React.js 教程 153 | 154 | 155 | 18、[The-Art-Of-Programming-By-July-2nd](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/julycoding/The-Art-Of-Programming-By-July-2nd):《编程之法:面试和算法心得》 156 | 157 | 158 | 159 | 160 |

161 | 『上一期』 | 反馈和建议 | 『下一期』 162 |

163 | 164 | --- 165 |

166 | 👉 来!推荐开源项目 👈
167 | 微信中搜:HelloGitHub 关注公众号
168 | 不仅能第一时间收到推送,还有回馈粉丝的活动
169 | 如果文中的图刷不出来,可以点击 这里。 170 |

171 | 172 | ## 赞助 173 | 174 | 175 | 176 | 177 | 178 | 185 | 192 | 199 | 206 | 207 | 208 |
179 | 180 |
181 | UCloud
182 | 超值的全球云服务 183 |
184 |
186 | 187 |
188 | CDN
189 | 开启全网加速 190 |
191 |
193 | 194 |
195 | OpenIM
196 | 开源IM力争No.1 197 |
198 |
200 | 201 |
202 | Apifox
203 | 比 Postman 更强大 204 |
205 |
209 | 210 | 211 | ## 声明 212 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 213 | -------------------------------------------------------------------------------- /content/HelloGitHub14.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 14 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/14) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[ip2region](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lionsoul2014/ip2region):IP 到地区的映射库,速度快(毫秒级)、准确性高(99.9%),妈妈再也不用担心我的 IP 地址定位,示例代码: 25 | ``` 26 | cd binding/c/ 27 | gcc -g -O2 testSearcher.c ip2region.c 28 | ./a.out ../../data/ip2region.db 29 | ``` 30 | 31 | 32 | ### C++ 项目 33 | 2、[bfs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/baidu/bfs):百度文件系统,架构图如下: 34 | 35 | 36 |

37 | 38 | 3、[SQLAdvisor](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Meituan-Dianping/SQLAdvisor):美团点评公司 DBA 团队开源的一个分析 SQL 并给出索引优化建议的工具,开源内容和内部使用保持一致,文档齐全 39 | 40 | 41 | ### Go 项目 42 | 4、[fsql](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kashav/fsql):用 SQL 的语法搜索文件,酷吧 43 | 44 | 45 | 46 |

47 | 48 | 5、[go.uuid](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/satori/go.uuid):Go 的 [UUID](http://baike.baidu.com/item/UUID) 包 49 | 50 | 51 | 6、[poseidon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Qihoo360/poseidon):Poseidon 系统是奇虎 360 开源的一个日志搜索平台,可以在数百万亿条、数百 PB 大小的日志数据中快速分析和检索特定字符串。 52 | 53 | 54 | ### Java 项目 55 | 7、[druid](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/druid):一个 JDBC 组件库,包括数据库连接池、SQL Parser 等组件,同时能够提供强大的监控和扩展功能 56 | 57 | 58 | 8、[packer-ng-plugin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mcxiaoke/packer-ng-plugin):Android 打包工具,支持极速打包,速度奇快 59 | 60 | 61 | 9、[symphony](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/88250/symphony):用 Java 实现的现代化社区(论坛/社交网络/博客)平台,功能众多,[访问该社区](https://hacpai.com/tag/Sym) 62 | 63 | 64 | ### JavaScript 项目 65 | 10、[BrowserQuest](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mozilla/BrowserQuest):Mozilla 开源的多人在线角色扮演游戏项目 66 | 67 | 68 | 69 |

70 | 71 | 11、[deep-into-node](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yjhjstz/deep-into-node):深入理解 Node.js 的核心思想与源码分析 72 | 73 | 74 | 12、[Rental](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/answershuto/Rental):一款租房 APP,基于 Node.js 爬虫,爬取 58 同城租房信息,并用地图进行可视化展示,方便用户获取周围租房信息 75 | 76 | 77 | 78 |

79 | 80 | ### Objective-C 项目 81 | 13、[iTerm2](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gnachman/iTerm2):Mac 上超好用的终端软件 82 | 83 | 84 | 85 |

86 | 87 | ### PHP 项目 88 | 14、[server](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nextcloud/server):开源云存储平台,功能齐全,可以用于搭建公司内部的云存储平台 89 | 90 | 91 | 92 |

93 | 94 | ### Python 项目 95 | 15、[certbot](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/certbot/certbot):免费的自动启用和部署 HTTPS 的工具,让你的网站开启 HTTPS 变得简单快捷。在部署教程页面选择服务器的操作系统和 Web 服务器,之后根据给出的步骤一步步的执行命令就行了,[部署教程](https://certbot.eff.org/) 96 | 97 | 98 | 99 |

100 | 101 | 16、[explainshell](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/idank/explainshell):一个可以解析 Linux 命令的网站,它可以给出命令的解释和其参数的解释,例如:`ps -aux|grep python`,[在线演示](https://www.explainshell.com/) 102 | 103 | 104 | 105 |

106 | 107 | 17、[pdir2](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/laike9m/pdir2):Python 程序员需要一个更好的 `dir()` —— 以更加友好的显示 `dir()` 输出的结果 108 | 109 | 110 | 111 |

112 | 113 | ### Swift 项目 114 | 18、[EmojiIntelligence](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/BilalReffas/EmojiIntelligence):完全用 Swift 实现神经网络的 Demo 115 | - 第一步设置 emoji 对应的图形 116 | - 使用神经网络识别图形,返回 emoji 表情 117 | 118 | 119 | 120 |

121 | 122 | ### 其它 123 | 19、[chinese-copywriting-guidelines](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sparanoid/chinese-copywriting-guidelines):中文文案排版指南 124 | 125 | 126 | 20、[CodeGuide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/AlloyTeam/CodeGuide):腾讯前端团队代码规范 127 | 128 | 129 | 21、[ohmyzsh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ohmyzsh/ohmyzsh):一个能够让你快速上手,史称 “终极 Shell” zsh 的工具,让你感觉终端前所未有的好用。详细介绍 —— [MacTalk 之终极 Shell](http://macshuo.com/?p=676) 130 | 131 | 132 |

133 | 134 | 22、[ResumeSample](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/geekcompany/ResumeSample):程序员简历模板系列(Markdown) 135 | 136 | 137 | 23、[security-101-for-saas-startups](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/forter/security-101-for-saas-startups):归纳总结了一个初创企业在各个阶段所期待的安全建议,初创企业所掌握的资金和数据越多,那么对于安全的投资也要越多,[中文翻译版](https://github.com/forter/security-101-for-saas-startups/blob/chinese/readme.md) 138 | 139 | 140 | 141 | 142 |

143 | 『上一期』 | 反馈和建议 | 『下一期』 144 |

145 | 146 | --- 147 |

148 | 👉 来!推荐开源项目 👈
149 | 微信中搜:HelloGitHub 关注公众号
150 | 不仅能第一时间收到推送,还有回馈粉丝的活动
151 | 如果文中的图刷不出来,可以点击 这里。 152 |

153 | 154 | ## 赞助 155 | 156 | 157 | 158 | 159 | 160 | 167 | 174 | 181 | 188 | 189 | 190 |
161 | 162 |
163 | UCloud
164 | 超值的全球云服务 165 |
166 |
168 | 169 |
170 | CDN
171 | 开启全网加速 172 |
173 |
175 | 176 |
177 | OpenIM
178 | 开源IM力争No.1 179 |
180 |
182 | 183 |
184 | Apifox
185 | 比 Postman 更强大 186 |
187 |
191 | 192 | 193 | ## 声明 194 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 195 | -------------------------------------------------------------------------------- /content/HelloGitHub15.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 15 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/15) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### CSS 项目 24 | 1、[mdui](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zdhxiong/mdui):MDUI 是一套用于开发 Material Design 网页的响应式前端框架。没有任何依赖,支持主题切换,轻量级,低学习成本,[文档](https://www.mdui.org/docs) 25 | 26 | 27 |

28 | 29 | ### Go 项目 30 | 2、[aliyungo](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/denverdino/aliyungo):非官方的 Aliyun Go语言 SDK 支持API:ECS, OSS, DNS, SLB, RDS, RAM, MNS, STS, SLS, MQ, Push, OpenSearch, DM, Container Service 31 | 32 | 33 | 3、[conference](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gopherchina/conference):Go 语言实际项目应用的技术分享 34 | 35 | 36 | ### Java 项目 37 | 4、[FunGameRefresh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Hitomis/FunGameRefresh):好玩的下拉刷新控件 38 | 39 | 40 |

41 | 42 | 5、[ProgressManager](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JessYanCoding/ProgressManager):一行代码即可监听 App 中所有网络链接的上传以及下载进度,包括 Glide 的图片加载进度。实现原理类似 EventBus 你可在 App 中的任何地方,将多个监听器以 URL 地址作为标识符,注册到本框架。当此 URL 地址存在下载或者上传的动作时,框架会主动调用所有使用此 URL 地址注册过的监听器,达到多个模块的同步更新 43 | 44 | 45 |

46 | 47 | ### JavaScript 项目 48 | 6、[font-spider](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/aui/font-spider):字蛛是一个智能 WebFont 压缩工具,它能自动分析出页面使用的 WebFont 并进行按需压缩 49 | 50 | 51 |

52 | 53 | 7、[slick](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kenwheeler/slick):基于 jQuery 的触摸式幻灯片插件。支持动态增加、筛选、轮播、自动播放、延迟加载等功能,[中文官网](https://www.slickjs.cn/) 54 | 55 | 56 |

57 | 58 | 8、[veneno](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zhuyingda/veneno):一个基于 Node.js 编写的 web 安全漏洞自动化扫描框架 59 | 60 | 61 | 9、[xdomain](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jpillora/xdomain):纯 JavaScript 实现 CROS 的库,[在线示例](http://jpillora.com/xdomain/) 62 | 63 | 64 | ### Objective-C 项目 65 | 10、[FLEX](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FLEXTool/FLEX):用于 iOS 开发的一组应用内调试工具,功能强大且多,多到不一一列举了 66 | 67 | 68 | 69 |

70 | 71 | 11、[spectacle](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/eczarny/spectacle):OS X 系统下的窗口管理工具,通过快捷键方便、快捷的调整窗口大小和位置 72 | 73 | 74 |

75 | 76 | ### Python 项目 77 | 12、[aredis](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NoneGG/aredis):一款基于 Python3 asyncio 的异步 redis 客户端,支持对于单实例,连接池, 哨兵以及集群。[作者](https://github.com/NoneGG)希望可以找到志同道合的小伙伴集思广益,一起维护、优化。示例代码如下: 78 | ```Python 79 | >>> import asyncio 80 | >>> from aredis import StrictRedis 81 | >>> 82 | >>> async def example(): 83 | >>> client = StrictRedis(host='127.0.0.1', port=6379, db=0) 84 | >>> await client.flushdb() 85 | >>> await client.set('foo', 1) 86 | >>> assert await client.exists('foo') is True 87 | >>> await client.incr('foo', 100) 88 | >>> 89 | >>> assert int(await client.get('foo')) == 101 90 | >>> await client.expire('foo', 1) 91 | >>> await asyncio.sleep(0.1) 92 | >>> await client.ttl('foo') 93 | >>> await asyncio.sleep(1) 94 | >>> assert not await client.exists('foo') 95 | >>> 96 | >>> loop = asyncio.get_event_loop() 97 | >>> loop.run_until_complete(example()) 98 | ``` 99 | 100 | 101 | 13、[django-blog-tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jukanntenn/django-blog-tutorial):基于最新版 Django 1.10 和 Python 3.5,通过 26 篇教程一步步带你使用 Django 从零开发一个个人博客系统,在实践的同时掌握 Django 的开发技巧,[完成效果展示](http://demo.zmrenwu.com/) 102 | 103 | 104 | 14、[freezegun](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/spulec/freezegun):时间漫步模块,模拟到某一个时间,使用简单方式多样,实现了装饰器、上下文等调用方式。示例代码如下: 105 | ```python 106 | from freezegun import freeze_time 107 | import datetime 108 | import unittest 109 | 110 | 111 | @freeze_time("2012-01-14") 112 | def test(): 113 | assert datetime.datetime.now() == datetime.datetime(2012, 1, 14) 114 | 115 | ``` 116 | 117 | 118 | 15、[musicbox](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/darknessomi/musicbox):基于 Python 编写的网易云音乐**命令行**版本,使用起来简单优雅,能够快速安装及使用 119 | 120 | 121 |

122 | 123 | 16、[snake](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chuyangliu/snake):贪吃蛇游戏 AI 版,通过算法实现让小蛇通过吃豆,最后蛇的身体填满整个地图算结束。该项目详细描述实现思想以及相关算法的讨论 124 | 125 | 126 |

127 | 128 | ### Ruby 项目 129 | 17、[mastodon](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mastodon/mastodon):基于 Ruby 语言的社交网站服务器端所有的源代码,通过这个项目,你可以自己部署一个属于自己的社交网站 130 | 131 | 132 |

133 | 134 | ### 其它 135 | 18、[English-level-up-tips](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/byoungd/English-level-up-tips):如何提高英语技能 136 | 137 | 138 |

139 | 140 | 19、[Spacemacs-rocks](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/emacs-china/Spacemacs-rocks):用 21 天学习 Emacs 以及 Spacemacs(Emacs 的配置文件)的使用 141 | 142 | 143 | 20、[SpaceVim](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SpaceVim/SpaceVim):一个社区驱动的模块化 vim/neovim 配置集合,其中包含了多种功能模块,并且针对 neovim 做了功能优化。spacevim 有多种功能模块可供选择,支持多种语言。用户只需要选择需要的模块,就可以配置出一个适合自己的开发环境 144 | 145 | 146 |

147 | 148 | 21、[vim-galore-zh_cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/wsdjeg/vim-galore-zh_cn):Vim 从入门到精通 149 | 150 | 151 | ### 开源书籍 152 | 22、[es6tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ruanyf/es6tutorial):阮一峰老师的开源精品,ECMAScript 6 入门书籍,[在线阅读](http://es6.ruanyifeng.com/) 153 | 154 | 155 | 156 | 157 | 23、[redis](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huangzworks/redis):《Redis Command Reference》全文的中文翻译版,[在线阅读](http://redisdoc.com/) 158 | 159 | 160 | 161 | 162 | 163 |

164 | 『上一期』 | 反馈和建议 | 『下一期』 165 |

166 | 167 | --- 168 |

169 | 👉 来!推荐开源项目 👈
170 | 微信中搜:HelloGitHub 关注公众号
171 | 不仅能第一时间收到推送,还有回馈粉丝的活动
172 | 如果文中的图刷不出来,可以点击 这里。 173 |

174 | 175 | ## 赞助 176 | 177 | 178 | 179 | 180 | 181 | 188 | 195 | 202 | 209 | 210 | 211 |
182 | 183 |
184 | UCloud
185 | 超值的全球云服务 186 |
187 |
189 | 190 |
191 | CDN
192 | 开启全网加速 193 |
194 |
196 | 197 |
198 | OpenIM
199 | 开源IM力争No.1 200 |
201 |
203 | 204 |
205 | Apifox
206 | 比 Postman 更强大 207 |
208 |
212 | 213 | 214 | ## 声明 215 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 216 | -------------------------------------------------------------------------------- /content/HelloGitHub17.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 17 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/17) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[apple-juice-actionscript](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/asheigithub/apple-juice-actionscript):NET2.0 实现的 AS3(第三代 Flash 脚本)解释器,可用于嵌入 unity 做热更。一个完整的脚本语言解释执行系统,从语法树分析开始一直到实际执行 25 | 26 | 27 | 2、[MaterialDesignInXamlToolkit](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit):谷歌 Material Design 设计风格控件库 28 | 29 | 30 |

31 | 32 | ### CSS 项目 33 | 3、[bulma](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jgthms/bulma):UI框架,样式比 Bootstrap 更加扁平化。源码文件结构清晰,通过源码可以学到 UI 框架架构。[使用 bulma 的网站展示](http://bulma.io/expo/) 34 | 35 | 36 |

37 | 38 | ### Go 项目 39 | 4、[casbin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/casbin/casbin):访问控制开源库,支持 ACL/RBAC/ABAC 等访问控制模型,支持 MySQL/NoSQL 等存储方式 40 | 41 | 42 |

43 | 44 | 5、[jwt-go](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dgrijalva/jwt-go):Golang 实现 JSON Web Tokens (JWT) 45 | 46 | 47 | ### Java 项目 48 | 6、[elasticsearch-sql](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/NLPchina/elasticsearch-sql):用 SQL 查询 Elasticsearch 49 | 50 | 51 |

52 | 53 | 7、[GankMM](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/maning0303/GankMM):干货集中营 Android 客户端。每天一张美女图片,一个视频短片,若干Android,iOS等程序干货,周一到周五每天更新,数据全部由 [干货集中营](http://gank.io/) 提供。项目简单完整,涉及内容全面,利于学习 Android 开发的技巧 54 | 55 | 56 |

57 | 58 | 8、[MVPArms](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JessYanCoding/MVPArms):整合了大量主流开源项目的 Android Mvp 快速搭建框架。包含 Dagger2、Retrofit、Rxjava 等 Rx 系三方库,并且提供 UI 自适应方案,本框架将它们结合起来。文档详尽、成熟稳定的 Android MVP 解决方案 59 | 60 | 61 |

62 | 63 | ### JavaScript 项目 64 | 9、[gka](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gkajs/gka):简单、高效的帧动画生成工具,图片处理工具。 65 | - 一键式:图片文件批量序列化重命名,生成帧动画文件,支持预览 66 | - 性能佳:支持相同帧图片复用✓,图片空白裁剪✓,合图模式✓,图片压缩✓ 67 | - 多模板:内置多种文件输出模板,支持自定义模板 68 | 69 | 70 |

71 | 72 | 10、[parrot-mocker-web](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chinesedfan/parrot-mocker-web):小巧的 mock 服务器,配合 Chrome 插件可以轻松地拦截或 mock 页面上的 xhr/jsonp/fetch 请求。不需要侵入页面本身代码,让前端同学在后端接口没有 ready 或者难以模拟数据的时候,继续开心地开发玩耍 73 | 74 | 75 |

76 | 77 | 11、[sweetalert](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/t4t5/sweetalert):纯 JS 写成的 alert 组件,很多公司都在使用的项目。源代码使用了 ES6 进行了重构,使得项目结构更加清晰。可以通过学习其项目结构可以更好的了解 JS 组件的文件结构,分析其源码可以学习如何使用原生 JS 操作 DOM 的高级技巧 78 | 79 | 80 |

81 | 82 | 12、[trust](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ncase/trust):一个合作博弈论的互动讲解手册,[中文版在线试玩](https://www.sekai.co/trust/) 83 | 84 | 85 |

86 | 87 | 13、[wtfjs](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/denysdovhan/wtfjs):JavaScript 有趣和棘手(坑爹?)的示例 88 | 89 | 90 | ### Kotlin 项目 91 | 14、[Eyepetizer-in-Kotlin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/LRH1993/Eyepetizer-in-Kotlin):一款使用 kotlin 语言开发的 App。适合初学者作为学习 kotlin 语言的一个项目,可以在做项目的同时体验到 kotlin 语言的优点 92 | 93 | 94 |

95 | 96 | ### Python 项目 97 | 15、[huey](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/coleifer/huey):结合 redis 实现的轻量任务队列,但是支持功能还是很多的: 98 | - 多进程、多线程、协程 99 | - 任务定时执行 100 | - 任务执行失败重试 101 | - 结果存储 102 | 103 | 104 | 16、[proxy_pool](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jhao104/proxy_pool):基于 Python 的自建代理 IP 池服务,通过网络爬虫抓取互联网上免费的代理 IP,本地校验、剔除失效的代理IP,从而实现高可用的代理 IP 池。最后使用 Flask 搭建提供代理 IP 服务,包括代理池刷新、无效代理删除、代理获取等。该项目设计文档详细、模块结构简明易懂,同时适合爬虫新手更好的学习爬虫技术 105 | 106 | 107 |

108 | 109 | 17、[pyecharts](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pyecharts/pyecharts):Echarts+Python 实现的一个用于生成 Echarts 图表的类库 110 | 111 | 112 |

113 | 114 | 18、[simiki](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tankywoo/simiki):一个简单的个人 Wiki 框架,便于快速搭建 Wiki 页。使用 Markdown 书写 Wiki, 生成静态 HTML 页面。Wiki 源文件按目录分类存放, 方便管理维护。[中文文档](http://simiki.org/zh-docs/) 115 | 116 | 117 | 19、[weibospider](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SpiderClub/weibospider):分布式微博爬虫,支持快速抓取和稳定抓取两种运行模式。项目模块逻辑清晰、注释丰富、便于定制化自己的需求。同时,对于小白用户,可以通过演示视频快速入门,也提供QQ群答疑,已经持续维护一年多。靠谱的项目,小伙伴们要赶快上车~ 118 | 119 | 120 |

121 | 122 | ### 其它 123 | 20、[games](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/leereilly/games):GitHub 上游戏项目的合集 124 | 125 | 126 | 21、[learn-regex](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ziishaned/learn-regex):易学的正则表达式教程,[中文](https://github.com/zeeshanu/learn-regex/blob/master/README-cn.md) 127 | 128 | 129 | 22、[Material-Design-Chinese](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zdhxiong/Material-Design-Chinese):Material Design 官方文档的中文翻译,保留了原版网站的样式,并保持和官方文档同步更新 130 | 131 | 132 | 23、[PythonSpiderNotes](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lining0806/PythonSpiderNotes):Python 爬虫入门教程 133 | 134 | 135 | 24、[sec-chart](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/SecWiki/sec-chart):安全思维导图集合 136 | 137 | 138 | ### 开源书籍 139 | 25、[pandas-cookbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jvns/pandas-cookbook):pandas cookbook(英文) 140 | 141 | 142 | 26、[tensorflow_cookbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nfmcclure/tensorflow_cookbook):Tensorflow cookbook(英文) 143 | 144 | 145 | ### 机器学习 146 | 27、[EffectiveTensorflow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/vahidk/EffectiveTensorflow):TensorFlow 最佳实践 147 | 148 | 149 | 28、[TensorFlow-World](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/astorfi/TensorFlow-World):简单易用的 TensorFlow 教程 150 | 151 | 152 | 153 | 154 |

155 | 『上一期』 | 反馈和建议 | 『下一期』 156 |

157 | 158 | --- 159 |

160 | 👉 来!推荐开源项目 👈
161 | 微信中搜:HelloGitHub 关注公众号
162 | 不仅能第一时间收到推送,还有回馈粉丝的活动
163 | 如果文中的图刷不出来,可以点击 这里。 164 |

165 | 166 | ## 赞助 167 | 168 | 169 | 170 | 171 | 172 | 179 | 186 | 193 | 200 | 201 | 202 |
173 | 174 |
175 | UCloud
176 | 超值的全球云服务 177 |
178 |
180 | 181 |
182 | CDN
183 | 开启全网加速 184 |
185 |
187 | 188 |
189 | OpenIM
190 | 开源IM力争No.1 191 |
192 |
194 | 195 |
196 | Apifox
197 | 比 Postman 更强大 198 |
199 |
203 | 204 | 205 | ## 声明 206 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 207 | -------------------------------------------------------------------------------- /content/HelloGitHub19.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 19 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/19) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### Go 项目 24 | 1、[ctop](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/bcicen/ctop):实现了类 top 命令展示效果的 docker 容器监控工具 25 | 26 | 27 |

28 | 29 | ### Java 项目 30 | 2、[HanLP](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/hankcs/HanLP):一系列模型与算法组成的 NLP 工具包,目标是普及自然语言处理在生产环境中的应用。具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点,功能包括:中文分词、词性标注、命名实体识别、关键词提取等。示例代码: 31 | ```java 32 | String[] testCase = new String[]{ 33 | "北川景子参演了林诣彬导演的《速度与激情3》", 34 | "林志玲亮相网友:确定不是波多野结衣?", 35 | }; 36 | Segment segment = HanLP.newSegment().enableJapaneseNameRecognize(true); 37 | for (String sentence : testCase) 38 | { 39 | List termList = segment.seg(sentence); 40 | System.out.println(termList); 41 | } 42 | ``` 43 | 44 | 45 | 3、[MVPArt](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/JessYanCoding/MVPArt):一个新的 MVP 架构,此框架旨在解决传统 MVP 类和接口太多、并且 Presenter 和 View 通过接口通信过于繁琐、重用 Presenter 代价太大等问题。架构图如下: 46 | 47 | 48 |

49 | 50 | 4、[p3c](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/p3c):阿里云栖大会发布的 Java 代码规约扫描插件,支持多种 IDE。代码规范对于编程来说是非常重要的,随着代码量的增多会更加意识到其重要性。赶快拿去使用吧,[阿里巴巴 Java 开发手册](https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E7%BB%88%E6%9E%81%E7%89%88%EF%BC%89.pdf) 51 | 52 | 53 | ### JavaScript 项目 54 | 5、[emoji](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/gee1k/emoji):方便快速查找获取 emoji 表情、名称,并且可以复制到任何文本中,另外支持中文搜索 💯 [网站地址](http://emoji.svend.cc/) 55 | 56 | 57 |

58 | 59 | 6、[H5](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/answershuto/H5):这是作者的个人项目,功能是可视化编辑、生成手机 H5 页面的单页应用 WebApp。该项目是一个全栈项目,具有前后端完整服务。并且项目结构清晰。后端服务具有控制器,模型,路由,前端服务具有组件,并且使用 Vuex 做状态管理,麻雀虽小五脏俱全 60 | 61 | 62 |

63 | 64 | 7、[project-guidelines](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/elsewhencode/project-guidelines):JavaScript 项目规范,[中文](https://github.com/wearehive/project-guidelines/blob/master/README-zh.md) 65 | 66 | 67 | 8、[SelectMenu](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/TerryZ/SelectMenu):基于 jQuery 1.x 库的多样化的下拉菜单插件,源码具有中文注释,对于学习 jQuery 插件有帮助。示例代码如下: 68 | ```javascript 69 | var data = [ 70 | {id:1 ,name:'Chicago Bulls',desc:'芝加哥公牛'}, 71 | {id:2 ,name:'Cleveland Cavaliers',desc:'克里夫兰骑士'}, 72 | {id:3 ,name:'Detroit Pistons',desc:'底特律活塞'}, 73 | {id:4 ,name:'Indiana Pacers',desc:'印第安纳步行者'} 74 | ]; 75 | //initialize selectmenu 76 | $('#btnDemo').selectMenu({ 77 | showField : 'desc', 78 | keyField : 'id', 79 | data : data 80 | }); 81 | ``` 82 | 83 | 84 |

85 | 86 | ### Kotlin 项目 87 | 9、[kotlin-examples](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Kotlin/kotlin-examples):JetBrains 开源的 Kotlin 语言 Web 示例项目 88 | 89 | 90 | ### PHP 项目 91 | 10、[Biny](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Tencent/Biny):腾讯开源的一款高性能的超轻量级PHP框架,用于快速开发现代 Web 应用程序。代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用,[文档](http://www.billge.cc/)齐全。高性能,框架响应时间在 1ms 以内,单机 qps 轻松上3000。 92 | - 支持跨库连表,条件复合筛选,查询PK缓存等 93 | - 同步异步请求分离,类的自动化加载管理 94 | - 支持Form表单验证,支持事件触发机制 95 | - 支持浏览器端调试,快速定位程序问题和性能瓶颈 96 | - 具有sql防注入,html自动防xss等特性 97 | 98 | 99 | ### Python 项目 100 | 11、[binlog2sql](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/danfengcao/binlog2sql):从 MySQL binlog 解析出你要的 SQL。根据不同选项,提供如下功能 101 | - 数据快速回滚,[闪回原理与实践](https://github.com/danfengcao/binlog2sql/blob/master/example/mysql-flashback-priciple-and-practice.md) 102 | - 主从切换后新 master 丢数据的修复 103 | - 从 binlog 生成标准SQL,带来的衍生功能 104 | 105 | 106 | 12、[pandas-tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/hangsz/pandas-tutorial):这套 pandas 教程包含从初级到进阶的内容,适合初学者和希望进阶建立知识体系的数据科学从业者阅读。作者还在持续更新高级内容,你值得拥有 107 | 108 | 109 | 13、[pysheeet](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/crazyguitar/pysheeet):Python 速查表,[在线阅读](https://www.pythonsheets.com/) 110 | 111 | 112 | 14、[robobrowser](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/jmcarp/robobrowser):提供多种模拟操作网页的库,比如获得网页内容、访问链接、点击按钮、填充并提交表单、上传文件。使用简单、API 友好。适用于想要通过脚本流程化操作,某些未提供这些操作接口的场景,示例代码如下: 113 | ```python 114 | # 上传文件 115 | from robobrowser import RoboBrowser 116 | 117 | # Browse to a page with an upload form 118 | browser = RoboBrowser() 119 | browser.open('http://cgi-lib.berkeley.edu/ex/fup.html') 120 | 121 | # Find the form 122 | upload_form = browser.get_form() 123 | upload_form # 124 | 125 | # Choose a file to upload 126 | upload_form['upfile'] # 127 | upload_form['upfile'].value = open('path/to/file.txt', 'r') 128 | 129 | # Submit 130 | browser.submit(upload_form) 131 | ``` 132 | 133 | 134 | ### 其它 135 | 15、[chinese-poetry](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chinese-poetry/chinese-poetry):中华古典文集数据集,包含 5.5 万首唐诗、26 万首宋诗和 2.1 万首宋词。唐宋两朝近 1.4 万古诗人和两宋时期1500 词人。以 json 文件、数据库方式存储,[爬取过程及分析](https://jackeygao.io/words/crawl-ci.html) 136 | 137 | 138 | 16、[ios-dev-flow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/leecade/ios-dev-flow):iOS 开发流程,记录了 iOS 程序上架需要的方方面面 139 | 140 | 141 | 17、[remote-working](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/greatghoul/remote-working):收集整理国内远程工作相关的项目 142 | 143 | 144 | ### 开源书籍 145 | 18、[kubernetes-handbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/rootsongjc/kubernetes-handbook):Kubernetes 中文指南/实践手册,[在线阅读](https://jimmysong.io/kubernetes-handbook/) 146 | 147 | 148 | 19、[microservices](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/DocsHome/microservices):《微服务:从设计到部署》中文版,[在线阅读](http://oopsguy.com/books/microservices/index.html) 149 | 150 | 151 | 20、[op_practice_book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/meetbill/op_practice_book):《运维实践指南》 152 | 153 | 154 | 155 | 156 |

157 | 『上一期』 | 反馈和建议 | 『下一期』 158 |

159 | 160 | --- 161 |

162 | 👉 来!推荐开源项目 👈
163 | 微信中搜:HelloGitHub 关注公众号
164 | 不仅能第一时间收到推送,还有回馈粉丝的活动
165 | 如果文中的图刷不出来,可以点击 这里。 166 |

167 | 168 | ## 赞助 169 | 170 | 171 | 172 | 173 | 174 | 181 | 188 | 195 | 202 | 203 | 204 |
175 | 176 |
177 | UCloud
178 | 超值的全球云服务 179 |
180 |
182 | 183 |
184 | CDN
185 | 开启全网加速 186 |
187 |
189 | 190 |
191 | OpenIM
192 | 开源IM力争No.1 193 |
194 |
196 | 197 |
198 | Apifox
199 | 比 Postman 更强大 200 |
201 |
205 | 206 | 207 | ## 声明 208 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 209 | -------------------------------------------------------------------------------- /content/HelloGitHub20.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 20 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/20) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C# 项目 24 | 1、[csharplang](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dotnet/csharplang):C# 语言设计官方项目,在这里你可以直接参与讨论。同时还有: 25 | - 语言特色提议 26 | - C# 语言设计会议记要 27 | - 完整的 C# 6 语言规范(草案) 28 | - 语言版本历史摘要 29 | 30 | 31 | ### C++ 项目 32 | 2、[robomongo](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Studio3T/robomongo):免费、开源的 MongoDB 跨平台桌面管理工具,支持 Windows、Linux、Mac 33 | 34 | 35 |

36 | 37 | ### CSS 项目 38 | 3、[magic-of-css](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/adamschwartz/magic-of-css):一套可以让你成为“魔术师”的 CSS 教程(英文) 39 | 40 | 41 | 4、[milligram](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/milligram/milligram):极简风格的 CSS 框架,而且文件很小 42 | 43 | 44 |

45 | 46 | ### Go 项目 47 | 5、[monkey](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/haifenghuang/monkey):用 Go 语言写的解析器,包含诸多语言特性。入门实践项目,适合新手熟悉 Go 语言和语言解析器入门 48 | 49 | 50 | ### Java 项目 51 | 6、[Android-Pay](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mayubao/Android-Pay):支持微信和支付宝两种主流支付的集成库,示例代码如下: 52 | ```java 53 | //1.创建微信支付请求 54 | WechatPayReq wechatPayReq = new WechatPayReq.Builder() 55 | .with(this) //activity实例 56 | .setAppId(appid) //微信支付AppID 57 | .setPartnerId(partnerid)//微信支付商户号 58 | .setPrepayId(prepayid)//预支付码 59 | // .setPackageValue(wechatPayReq.get)//"Sign=WXPay" 60 | .setNonceStr(noncestr) 61 | .setTimeStamp(timestamp)//时间戳 62 | .setSign(sign)//签名 63 | .create(); 64 | //2.发送微信支付请求 65 | PayAPI.getInstance().sendPayRequest(wechatPayReq); 66 | 67 | //关于微信支付的回调 68 | //wechatPayReq.setOnWechatPayListener(new OnWechatPayListener); 69 | ``` 70 | 71 | 72 | 7、[AndroidSwipeLayout](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/daimajia/AndroidSwipeLayout):[代码家](https://github.com/daimajia)开源的滑动布局库,不用多说什么了。动起手来试试,然后通过阅读代码学习大神们的编程技巧,有一天你也可以做出有价值、流行的开源库 73 | 74 | 75 |

76 | 77 | ### JavaScript 项目 78 | 8、[flowhub](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yyued/flowhub):仅 6KB 通过简单的 API & 自由组合的链式写法,轻松订阅管理各类事件流。示例代码如下: 79 | ```javascript 80 | import $hub from 'hub-js'; 81 | 82 | // 定义一个 “test” 监听器 83 | $hub.listen('test', ( data ) => { 84 | console.log( 'test', data ); 85 | }); 86 | 87 | setInterval(( ) => { 88 | // 发出 “test” 事件 89 | $hub.emit('test', { code: 1 }); 90 | }, 1000); 91 | ``` 92 | 93 | 94 | 9、[IDValidator](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mc-zone/IDValidator):中国大陆个人身份证号验证,支持 15、18 位身份证号,API 如下: 95 | - `isValid` 验证号码是否合法,合法返回 True,不合法返回 False 96 | - `getInfo` 号码合法时返回分析信息(地区、出生日期、性别、校验位),不合法返回 False 97 | - `makeID` 伪造一个符合校验的 ID 98 | 99 | 100 | 10、[livepython](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/agermanidis/livepython):可视化、实时追踪展示 Python 代码 101 | 102 | 103 |

104 | 105 | 11、[nba-go](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/homerchen19/nba-go):可以用命令终端查看 NBA 比赛,包括比赛开始时间表、实时比分情况、文字直播(英文)等。终端看 NBA,你才是最潮的。安装命令 `npm install -g nba-go` 106 | 107 | 108 |

109 | 110 | 12、[React-Cnode](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Juliiii/React-Cnode):适合新手的 React 全家桶项目学习,同时附有作者在开发中的一些[思考](http://www.jianshu.com/p/43c604177c08) 111 | 112 | 113 |

114 | 115 | ### Kotlin 项目 116 | 13、[Flesh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Kerr1Gan/Flesh):如果你是一位想学习一下 Kotlin 的同学,那么 Flesh 是一个适合学习、练手、入门的项目。从中可以学到 Java 与 Kotlin 间的相互调用、爬虫操作。这是个诚意(福利)满满的项目,快去下载、加入到这个项目中吧 117 | 118 | 119 |

120 | 121 | 14、[kotlin-guides](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/android/kotlin-guides):这份指南提供了在使用 Kotlin 编写 Android 程序时要遵循的一系列规则 122 | 123 | 124 | ### Python 项目 125 | 15、[joblib](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/joblib/joblib):使用 Python 方便的进行并行计算,示例代码如下: 126 | ```python 127 | from joblib import Parallel, delayed 128 | from math import sqrt 129 | Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10)) 130 | ``` 131 | 132 | 133 | 16、[records](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kennethreitz/records):Kenneth Reitz 大神的`for Humans™`系列,Records 是一个支持大多数主流关系数据库的原生 SQL 查询第三方库。API 友好,使用简单、支持命令行模式、功能多样。与此同时该库只有 500 行代码,可以当作入门阅读源码的项目,同时学习大神的编程技巧与习惯,示例代码如下: 134 | ```python 135 | import records 136 | 137 | db = records.Database('postgres://...') # 连接数据库 138 | rows = db.query('select * from active_users') # 执行原生 SQL 139 | # 遍历结果 140 | for r in rows: 141 | print(r.name, r.user_email) 142 | 143 | # 友好的 print 格式 144 | print(rows.dataset) 145 | # username|active|name |user_email |timezone 146 | # --------|------|----------|-----------------|-------------------------- 147 | # model-t |True |Henry Ford|model-t@gmail.com|2016-02-06 22:28:23.894202 148 | 149 | # 支持将结果导出成不同格式 150 | print(rows.export('json')) # json 151 | print(rows.export('csv')) # csv 152 | print(rows.export('yaml')) # yaml 153 | rows.export('df') # pandas 的 df 对象 154 | with open('report.xls', 'wb') as f: 155 | f.write(rows.export('xls')) # xls 156 | ``` 157 | 158 | 159 | 17、[tldr-python-client](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tldr-pages/tldr-python-client):Linux man 解释一般都太长了,很多时候我们就想用一些比较常用的命令,但却记不起来。这个时候如果不 Google,就可以用 [tldr(简化 man 的工程)](https://github.com/tldr-pages/tldr)。该项目为 Python 客户端实现 160 | 161 | 162 |

163 | 164 | 18、[zdict](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zdict/zdict):方便的终端字典工具,支持多种字典和参数、翻译结果高亮、以及交互模式查询。安装命令 `pip install zdict` (仅支持 Python3)。查询效果如下图所示: 165 | 166 | 167 |

168 | 169 | ### 其它 170 | 19、[github-cheat-sheet](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tiimgreen/github-cheat-sheet):GitHub 和 Git 的秘籍,[中文](https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.zh-cn.md) 171 | 172 | 173 | 20、[hangzhouYunQi2017ppt](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Alibaba-Technology/hangzhouYunQi2017ppt):2017 杭州云栖大会精华 PPT,[移步到阿里云下载与浏览](https://yq.aliyun.com/articles/231065) 174 | 175 | 176 | 21、[nodebestpractices](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/goldbergyoni/nodebestpractices):Node.js 最佳实践列表(英文) 177 | 178 | 179 | 22、[vim-game-code-break](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/johngrib/vim-game-code-break):Vim 中的打砖块游戏。在 Vim 实现打砖块游戏的插件。 180 | 181 |

182 | 183 | ### 机器学习 184 | 23、[angel](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Angel-ML/angel):腾讯开源的高性能分布式机器学习平台,具有广泛的适用性和稳定性,模型维度越高。它将高维度的大模型合理切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数,以及灵活的同步协议,可以实现各种高效的机器学习算法 185 | 186 | 187 |

188 | 189 | 190 | 191 |

192 | 『上一期』 | 反馈和建议 | 『下一期』 193 |

194 | 195 | --- 196 |

197 | 👉 来!推荐开源项目 👈
198 | 微信中搜:HelloGitHub 关注公众号
199 | 不仅能第一时间收到推送,还有回馈粉丝的活动
200 | 如果文中的图刷不出来,可以点击 这里。 201 |

202 | 203 | ## 赞助 204 | 205 | 206 | 207 | 208 | 209 | 216 | 223 | 230 | 237 | 238 | 239 |
210 | 211 |
212 | UCloud
213 | 超值的全球云服务 214 |
215 |
217 | 218 |
219 | CDN
220 | 开启全网加速 221 |
222 |
224 | 225 |
226 | OpenIM
227 | 开源IM力争No.1 228 |
229 |
231 | 232 |
233 | Apifox
234 | 比 Postman 更强大 235 |
236 |
240 | 241 | 242 | ## 声明 243 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 244 | -------------------------------------------------------------------------------- /content/HelloGitHub22.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 22 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/22) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C++ 项目 24 | 1、[albert](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/albertlauncher/albert):Linux 平台下类似于 Mac Alfred 效率神器。支持开机自启动、自定义快捷键等功能 25 | 26 | 27 |

28 | 29 | ### Go 项目 30 | 2、[rainbond](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/goodrain/rainbond):[好雨](http://www.rainbond.com/)开源的生产级无服务器 PaaS。用于为云原生应用的整个交付流程提供生产级支持,包括基础设施管理、容器化改造、微服务架构转型、DevOps 工作流落地、混合云多云管理等 31 | 32 | 33 |

34 | 35 | ### Java 项目 36 | 3、[anychat](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dianbaer/anychat):纯净的 WebSocket 聊天插件。服务器绝对控制权的推送机制,合理的线程设计,[在线 Demo](https://www.threecss.com/AnyChatClient/third-embed-demo.html)。功能如下: 37 | - 对接任何身份系统 38 | - 个人聊天、群聊天 39 | - 查看聊天记录 40 | - 离线消息推送 41 | - 支持嵌入式,通过 iframe 即可进行嵌入 42 | - 等等 43 | 44 | 45 |

46 | 47 | 4、[awesome-java-leetcode](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Blankj/awesome-java-leetcode):[LeetCode](https://leetcode.com/) 上面主要收集了各大 IT 公司的笔试面试题。该项目为 LeetCode Java 语言的题解集合 48 | 49 | 50 | 5、[FloatWindow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yhaolpz/FloatWindow):Andorid 任意界面悬浮窗组件,功能丰富,使用简单。特性如下: 51 | - 支持拖动、自动贴边等动画 52 | - 内部自动进行权限申请操作 53 | - 应用退到后台时,悬浮窗会自动隐藏 54 | - 等等 55 | 56 | 57 |

58 | 59 | 6、[GSYVideoPlayer](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/CarGuo/GSYVideoPlayer):Android 视频播放器。支持弹幕、滤镜、水印、截图、边播边缓存、重力旋转与手动旋转的同步等多种功能 60 | 61 | 62 |

63 | 64 | ### JavaScript 项目 65 | 7、[handsontable](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/handsontable/handsontable):强大的开源 HTML5 表格处理工具,适用于中后台的很多业务场景。API 方便、扩展性好、可操作性强,与Execl 等表格处理程序兼容好。并支持非常丰富的操作,如数据绑定、验证、排序及强大的上下文菜单。示例代码如下: 66 | ```js 67 | var data = [ 68 | ["", "Tesla", "Volvo", "Toyota", "Honda"], 69 | ["2017", 10, 11, 12, 13], 70 | ["2018", 20, 11, 14, 13], 71 | ["2019", 30, 15, 12, 13] 72 | ]; 73 | 74 | var container = document.getElementById('example'); 75 | var hot = new Handsontable(container, { 76 | data: data, 77 | rowHeaders: true, 78 | colHeaders: true, 79 | filters: true, 80 | dropdownMenu: true 81 | }); 82 | ``` 83 | 84 | 85 |

86 | 87 | 8、[learnVue](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/answershuto/learnVue):该项目记录了[染陌](https://github.com/answershuto)学习 Vue.js 源码的过程中的心得、收获。以及对于Vue 框架周边库的个人见解。可以帮助开发人员深入地理解 Vue.js 源码 88 | 89 | 90 | 9、[webpack-component-loader](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nicholaslee119/webpack-component-loader):在不借助框架的情况下,实现 Web component 的标准。该项目对于理解组件化的概念很有帮助 91 | 92 | 93 |

94 | 95 | ### Python 项目 96 | 10、[shell-functools](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/sharkdp/shell-functools):把函数式的编程带入 shell,从而让很多事情变得简单。通过 Python 的高阶函数和内置模块 os.path 与命令的管道结合,达到了强大、高效的功效。相比于单纯的命令实现更加的直观和容易理解,示例代码如下: 97 | ``` 98 | 示例 1 99 | # ls 查看当前目录下的文件 100 | > ls 101 | document.txt 102 | folder 103 | image.jpg 104 | 105 | # 通过 map abspath 展示这些文件的绝对路径 106 | > ls | map abspath 107 | /tmp/demo/document.txt 108 | /tmp/demo/folder 109 | /tmp/demo/image.jpg 110 | 111 | 示例 2 112 | # find 命令找到的文件和目录 113 | > find 114 | . 115 | ./folder 116 | ./folder/me.jpg 117 | ./folder/subdirectory 118 | ./folder/subdirectory/song.mp3 119 | ./document.txt 120 | ./image.jpg 121 | 122 | # 把找到的结果中的文件,重命名在末尾追加 .bak (备份文件) 123 | > find | filter is_file | map basename | map append ".bak" 124 | me.jpg.bak 125 | song.mp3.bak 126 | document.txt.bak 127 | image.jpg.bak 128 | ``` 129 | 130 | 131 | 11、[tqdm](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tqdm/tqdm):强大、快速、易扩展的 Python 进度条库。我想通过下面的示例代码和效果展示图,你会跑去给这个项目来个 Star 的 132 | ```python 133 | from tqdm import tqdm 134 | for i in tqdm(range(10000)): 135 | pass 136 | # 输出结果: 137 | # 76%|████████████████████████████ | 7568/10000 [00:33<00:10, 229.00it/s] 138 | ``` 139 | 140 | 141 |

142 | 143 | ### 其它 144 | 12、[API-Security-Checklist](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/shieldfy/API-Security-Checklist):开发安全的 API 所需要核对的清单,[中文](https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md) 145 | 146 | 147 | 13、[document-style-guide](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ruanyf/document-style-guide):《中文技术文档的写作规范》 148 | 149 | 150 | 14、[http2-explained](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/bagder/http2-explained):这是一篇详细讲解 HTTP/2([RFC 7540](http://httpwg.org/specs/rfc7540.html))的文档,主要内容包括该协议的背景、思想、协议本身的内容、对一些现有实现的探讨与对协议未来的展望。[中文](https://bagder.gitbooks.io/http2-explained/zh/) 151 | 152 | 153 | 154 | 155 |

156 | 『上一期』 | 反馈和建议 | 『下一期』 157 |

158 | 159 | --- 160 |

161 | 👉 来!推荐开源项目 👈
162 | 微信中搜:HelloGitHub 关注公众号
163 | 不仅能第一时间收到推送,还有回馈粉丝的活动
164 | 如果文中的图刷不出来,可以点击 这里。 165 |

166 | 167 | ## 赞助 168 | 169 | 170 | 171 | 172 | 173 | 180 | 187 | 194 | 201 | 202 | 203 |
174 | 175 |
176 | UCloud
177 | 超值的全球云服务 178 |
179 |
181 | 182 |
183 | CDN
184 | 开启全网加速 185 |
186 |
188 | 189 |
190 | OpenIM
191 | 开源IM力争No.1 192 |
193 |
195 | 196 |
197 | Apifox
198 | 比 Postman 更强大 199 |
200 |
204 | 205 | 206 | ## 声明 207 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 208 | -------------------------------------------------------------------------------- /content/HelloGitHub23.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 23 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/23) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[ffmpeg-libav-tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/leandromoreira/ffmpeg-libav-tutorial):《笨方法学 FFmpeg libav》(英文) 25 | 26 | 27 |

28 | 29 | ### Java 项目 30 | 2、[CC](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/luckybilly/CC):使用简单、功能丰富的 Android 组件化框架。适用于几乎所有的组件化开发需求,可进行组件层面的 AOP 编程。[项目 wiki](https://github.com/luckybilly/CC/wiki) 31 | 32 | 33 |

34 | 35 | 3、[WxJava](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Wechat-Group/WxJava):开源、非官方、功能全面的微信开发 Java SDK,支持包括微信支付、开放平台、小程序、企业号和公众号等功能的开发。[示例 Demo 索引](https://github.com/Wechat-Group/weixin-java-tools/blob/master/demo.md),以及详细的[开发文档](https://github.com/wechat-group/weixin-java-tools/wiki) 36 | 37 | 38 | ### JavaScript 项目 39 | 4、[node-fetch](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/node-fetch/node-fetch):将 fetch 引入了 node 环境,配合了 node 强大的 http 模块。做到了在不同的 JS 环境中使用一致的API。fetch API 是代替 XMLHttpRequest 的一种全新的解决方案,其简化了 XHR 的复杂步骤,采用了 Promise。示例代码如下: 40 | ```javascript 41 | fetch('/url').then(res => {}).catch(err => {}) 42 | ``` 43 | 44 | 45 | 5、[prettier](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/prettier/prettier):十分方便的代码格式化库。支持如:JavaScript、Flow、TypeScript、CSS、SCSS等编程语言。同时提供了编辑插件,在使用 vscode 开发 Vue 项目时候,使用此插件可以让代码更具有可读性 46 | ```javascript 47 | /** 48 | * 格式化之前 49 | */ 50 | foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne()); 51 | 52 | /** 53 | * 格式化之后 54 | */ 55 | foo( 56 | reallyLongArg(), 57 | omgSoManyParameters(), 58 | IShouldRefactorThis(), 59 | isThereSeriouslyAnotherOne() 60 | ); 61 | ``` 62 | 63 | 64 |

65 | 66 | 6、[wiki](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/requarks/wiki):NodeJS+Git+Markdown 实现轻松搭建 wiki。对于团队内部的知识分享是一个不错的选择。[在线预览](https://docs.requarks.io/wiki) 67 | 68 | 69 |

70 | 71 | ### Objective-C 项目 72 | 7、[iOS-Performance-Optimization](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/skyming/iOS-Performance-Optimization):关于 iOS 性能优化梳理。包含基本工具、业务优化、内存优化、卡顿优化、布局优化、电量优化、 安装包瘦身、启动优化、网络优化等 73 | 74 | 75 | ### PHP 项目 76 | 8、[arithmetic-php](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pushaowei/arithmetic-php):PHP 语言实现的各类算法合集 77 | 78 | 79 | ### Python 项目 80 | 9、[python-console-snake](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tancredi/python-console-snake):命令行贪吃蛇 81 | 82 | 83 |

84 | 85 | 10、[redash](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/getredash/redash):开源的数据可视化 Web 项目,提供了数据库查询和数据可视化功能。只提供的数据可视化最要的功能,使得简单易用且容易上手。可以直观地将一个 SQL 查询的结果可视化出来。同时提供 SQL 代码片段存储,减少重复编写 SQL 的问题 86 | 87 | 88 |

89 | 90 | 11、[rq](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/rq/rq):基于 redis 的简单、轻量级任务队列库。可以帮助理解简单的任务队列模式和设计。使用简单、文档健全,适用于小型项目或简单的场景。 91 | ```shell 92 | # Tip:job 需要通过模块引用加入到任务队列中 93 | 23:46:59 Cleaning registries for queue: default 94 | 23:47:47 default: snap1.count_words_at_url('https://hellogithub.com') (c4f96606-c833-4057-8ac4-b35bc60dfec9) 95 | 23:47:47 default: Job OK (c4f96606-c833-4057-8ac4-b35bc60dfec9) 96 | 23:47:47 Result is kept for 500 seconds 97 | ``` 98 | 99 | 100 | 12、[toapi](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/elliotgao2/toapi):该项目做的事儿是通过简单的配置把目标网页的内容爬下来,缓存结果后提供成 API 的一条龙服务。 101 | 102 | 103 |

104 | 105 | ### Swift 项目 106 | 13、[LyricsX](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ddddxxx/LyricsX):一个为 iTunes、Spotify、Vox 播放器提供自动下载歌词,并在桌面和任务栏显示的插件 107 | 108 | 109 |

110 | 111 | ### 其它 112 | 14、[awesome-blockchain-cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chaozh/awesome-blockchain-cn):区块链技术开发相关资料 113 | 114 | 115 | 15、[Back-End-Developer-Interview-Questions](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/monklof/Back-End-Developer-Interview-Questions):后端面试问题集合 116 | 117 | 118 | 16、[hangzhou_house_knowledge](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/houshanren/hangzhou_house_knowledge):《杭州房产知识扫盲》,作者 2017 年总结出来的买房购房知识,希望可以帮助到要在杭州买房的朋友 119 | 120 | 121 | 17、[http-api-design](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/interagent/http-api-design):HTTP API 设计指南。这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Heroku 平台的 API 设计指南。[中文翻译版](https://github.com/ZhangBohan/http-api-design-ZH_CN) 122 | 123 | 124 | 18、[vim-galore](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/mhinz/vim-galore):Vim 从入门到精通,[中文](https://github.com/wsdjeg/vim-galore-zh_cn) 125 | 126 | 127 | ### 开源书籍 128 | 19、[yast-cn](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/DeathKing/yast-cn):《Scheme入门教程》中译版,[在线阅读](http://deathking.github.io/yast-cn/) 129 | 130 | 131 | ### 机器学习 132 | 20、[captcha_break](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ypwhs/captcha_break):使用深度学习来破解 captcha(python 生成验证码的库)验证码。该项目会通过 Keras 搭建一个深度卷积神经网络来识别 captcha 生成的图片验证码,建议使用显卡来运行该项目。可视化代码都是在 jupyter notebook 中完成的,如果你希望写成 python 脚本,稍加修改即可正常运行 133 | 134 | 135 | 136 | 137 |

138 | 『上一期』 | 反馈和建议 | 『下一期』 139 |

140 | 141 | --- 142 |

143 | 👉 来!推荐开源项目 👈
144 | 微信中搜:HelloGitHub 关注公众号
145 | 不仅能第一时间收到推送,还有回馈粉丝的活动
146 | 如果文中的图刷不出来,可以点击 这里。 147 |

148 | 149 | ## 赞助 150 | 151 | 152 | 153 | 154 | 155 | 162 | 169 | 176 | 183 | 184 | 185 |
156 | 157 |
158 | UCloud
159 | 超值的全球云服务 160 |
161 |
163 | 164 |
165 | CDN
166 | 开启全网加速 167 |
168 |
170 | 171 |
172 | OpenIM
173 | 开源IM力争No.1 174 |
175 |
177 | 178 |
179 | Apifox
180 | 比 Postman 更强大 181 |
182 |
186 | 187 | 188 | ## 声明 189 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 190 | -------------------------------------------------------------------------------- /content/HelloGitHub25.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 25 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/25) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C 项目 24 | 1、[swipe-workspace](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/CuberL/swipe-workspace):基于 libinput 实现 Linux 系统下通过二指滑动控制面板,切换屏幕的程序。虽然功能简单,且不支持全平台。但是十分推荐这种自己动手实现一个实用的功能这种行为,这是非常有成就感的事情 25 | 26 | 27 |

28 | 29 | ### CSS 项目 30 | 2、[tabler](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tabler/tabler):一套基于 Bootstrap 4 免费开源的 Dashboard 模版 31 | 32 | 33 |

34 | 35 | ### Go 项目 36 | 3、[mqant](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/liangdas/mqant):一款基于 Go 语言的简洁、高性能的分布式游戏服务框架。[快速上手文档](https://github.com/liangdas/mqant/wiki),作者阐述了自己为什么选用 Go 作为开发语言和一些设计思路 37 | 38 | 39 | ### JavaScript 项目 40 | 4、[battle-city](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/feichao93/battle-city):基于 React 的经典坦克大战,[在线试玩](http://shinima.pw/battle-city)。欢迎感兴趣的小伙伴动起手来提交代码加入到这个项目 41 | 42 | 43 |

44 | 45 | 5、[gcoord](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/hujiulong/gcoord):一个处理地理坐标的轻型 JS 库。由于处理国内对于地理坐标有特殊的政策,导致从 API 得到的地理坐标放在百度地图或高德地图上会有数百米的偏移,gcoord 可以将坐标在不同坐标系下转换,修正偏移。转换为百度地图坐标系的示例代码: 46 | ```javascript 47 | var result = gcoord.transform( 48 | [ 116.403988, 39.914266 ], // 经纬度坐标 49 | gcoord.WGS84, // 当前坐标系 50 | gcoord.BD09 // 目标坐标系 51 | ); 52 | 53 | console.log( result ); // [ 116.41661560068297, 39.92196580126834 ] 54 | ``` 55 | 56 | 57 | 6、[SVG-Skeleton](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/yyued/SVG-Skeleton):通过 SVG 元素去描述去骨骼图的占位元素。支持 JSX 让编写 SVG 无差别化、复用 SVG 片段、类组件化模式。让交互变得更加人性化,适合当下技术流行趋势,2KB 的大小根本不必担心加载问题。示例代码如下: 58 | ```javascript 59 | import SVGSkeleton from 'svg-skeleton'; 60 | 61 | const { h, render } = SVGSkeleton; 62 | 63 | // 内置 #shining 动画 64 | const Item = ( 65 | 66 | 67 | 68 | 69 | 70 | 71 | ); 72 | 73 | const Page = ( ( ) => { 74 | let List = [ ]; 75 | 76 | for ( let i = 0; i < 6; i++ ) { 77 | List.push( ( ) ); 78 | } 79 | 80 | return ( 81 | 82 | { List } 83 | 84 | ); 85 | } )( ); 86 | 87 | render( Page, document.body ); 88 | ``` 89 | 90 | 91 |

92 | 93 | 7、[vuepress](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/vuejs/vuepress):Vue 官方出品的静态网站生成器。大家的个人博客是不是要折腾一番了?[官方中文文档](https://vuepress.vuejs.org/zh/guide/) 94 | 95 | 96 |

97 | 98 | 8、[zan-proxy](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/youzan/zan-proxy):该项目集成了 HTTP 请求转发、模拟响应数据、自定义 DNS 解析等功能。使得可以本地代码调试线上页面,环境再也不是问题。对于处于开发环境“恶劣”的开发者来说是种福音和解脱 99 | 100 | 101 |

102 | 103 | ### Objective-C 项目 104 | 9、[RDM](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/avibrazil/RDM):轻松地改变 MacBook Retina 屏幕分辨率的工具 105 | 106 | 107 |

108 | 109 | ### Python 项目 110 | 10、[airflow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/apache/airflow):定时任务管理平台,管理和调度各种离线定时任务,自带 Web 管理界面。当定时任务量达到百级别的时候,就无法再使用 crontab 有效、方便地管理这些任务了。该项目就是为了解决了这个问题而诞生的 111 | 112 | 113 |

114 | 115 | 11、[pook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/h2non/pook):模拟 HTTP 请求结果的库,可用于单元测试等场景。采用装饰器方式调用的示例代码如下: 116 | ```python 117 | import pook 118 | import requests 119 | 120 | @pook.get('http://httpbin.org/status/500', reply=204) 121 | @pook.get('http://httpbin.org/status/400', reply=200) 122 | def fetch(url): 123 | return requests.get(url) 124 | 125 | res = fetch('http://httpbin.org/status/400') 126 | print('#1 status:', res.status_code) 127 | 128 | res = fetch('http://httpbin.org/status/500') 129 | print('#2 status:', res.status_code) 130 | ``` 131 | 132 | 133 | 12、[Synonyms](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chatopera/Synonyms):中文近义词工具包。支持自然语言理解的很多任务:文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等。示例代码如下: 134 | ```python 135 | import synonyms 136 | synonyms.seg("能量") 137 | ``` 138 | 139 | 140 |

141 | 142 | 13、[wtfpython](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/satwikkansal/wtfpython):有趣、令人惊讶(坑爹)、鲜为人知的 Python 代码片段集合。[中文](https://github.com/leisurelicht/wtfpython-cn) 143 | 144 | 145 |

146 | 147 | ### 其它 148 | 14、[awesome-spider](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/facert/awesome-spider):爬虫集合,大多为 Python 语言项目 149 | 150 | 151 | 15、[javascript-lessons](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/stone0090/javascript-lessons):《JavaScript 闯关记》该教程部分章节精心设计了挑战关卡 152 | 153 | 154 | 16、[linux-insides](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/0xAX/linux-insides):Linux 内核揭密。[中文](https://github.com/MintCN/linux-insides-zh) 155 | 156 | 157 | 17、[open-source-mac-os-apps](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/serhii-londar/open-source-mac-os-apps):(英文)macOS 系统上的开源应用集合,并标注了应用通过那种编程语言实现 158 | 159 | 160 | ### 开源书籍 161 | 18、[advanced-go-programming-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chai2010/advanced-go-programming-book):《Go语言高级编程》该书针对 Go 语言有一定经验,想更加深入了解 Go 语言各种高级用法的开发人员 162 | 163 | 164 | 19、[modern-cpp-tutorial](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/changkun/modern-cpp-tutorial):《高速上手 C++ 11/14/17》阅读须知: 165 | 1. 本书假定读者已经熟悉了传统 C++ ,至少在阅读传统 C++ 代码上不具备任何困难。换句话说,那些长期使用传统 C++ 进行编码的人、渴望在短时间内迅速了解现代 C++ 特性的人非常适合阅读本书; 166 | 2. 本书一定程度上介绍了一些现代 C++ 的黑魔法,但这些魔法毕竟有限,不适合希望进阶学习现代 C++ 的读者,本书的定位系现代 C++ 的快速上手。当然,希望进阶学习的读者可以使用本书来回顾并检验自己对现代 C++ 的熟悉度。 167 | 168 | 169 | ### 机器学习 170 | 20、[pytorch-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chenyuntc/pytorch-book):书籍《深度学习框架 PyTorch:入门与实践》的示例代码,可以作为一个独立的 PyTorch 入门指南和教程。内容结构如下图所示: 171 | 172 | 173 |

174 | 175 | 176 | 177 |

178 | 『上一期』 | 反馈和建议 | 『下一期』 179 |

180 | 181 | --- 182 |

183 | 👉 来!推荐开源项目 👈
184 | 微信中搜:HelloGitHub 关注公众号
185 | 不仅能第一时间收到推送,还有回馈粉丝的活动
186 | 如果文中的图刷不出来,可以点击 这里。 187 |

188 | 189 | ## 赞助 190 | 191 | 192 | 193 | 194 | 195 | 202 | 209 | 216 | 223 | 224 | 225 |
196 | 197 |
198 | UCloud
199 | 超值的全球云服务 200 |
201 |
203 | 204 |
205 | CDN
206 | 开启全网加速 207 |
208 |
210 | 211 |
212 | OpenIM
213 | 开源IM力争No.1 214 |
215 |
217 | 218 |
219 | Apifox
220 | 比 Postman 更强大 221 |
222 |
226 | 227 | 228 | ## 声明 229 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 230 | -------------------------------------------------------------------------------- /content/HelloGitHub30.md: -------------------------------------------------------------------------------- 1 | # 《HelloGitHub》第 30 期 2 | > 兴趣是最好的老师,**HelloGitHub** 让你对编程感兴趣! 3 |

4 | 5 |

6 | 7 | ## 目录 8 | 9 | 点击右上角的 **「目录」** 图标打开目录,获得更好的阅读体验。 10 | 11 | ![](https://raw.githubusercontent.com/521xueweihan/img_logo/master/logo/catalog.png) 12 | 13 | **Tips**:如果遇到图片刷不出来的情况,[点击](https://hellogithub.com/periodical/volume/30) 换一种浏览方式。 14 | 15 |

16 |
17 | 关注「HelloGitHub」公众号,第一时间收到推送 18 |

19 | 20 | ## 内容 21 | > **以下为本期内容**|每个月 **28** 号更新 22 | 23 | ### C++ 项目 24 | 1、[2048.cpp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/plibither8/2048.cpp):C++ 写的终端 2048 游戏 25 | 26 | 27 |

28 | 29 | ### CSS 项目 30 | 2、[github-corners](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/tholman/github-corners):在你的网站右上角挂上章鱼猫。效果如下: 31 | 32 | 33 |

34 | 35 | 3、[octicons](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/primer/octicons):GitHub 官方开源的 GitHub 网站上用的图标库 36 | 37 | 38 |

39 | 40 | 4、[simple-icons](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/simple-icons/simple-icons):1000+ 个流行品牌的免费 SVG 图标库。[在线预览](https://simpleicons.org/) 41 | 42 | 43 |

44 | 45 | ### Go 项目 46 | 5、[filebrowser](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/filebrowser/filebrowser):自带文件浏览器的网盘服务。支持功能:文件浏览、文件生成分享链接、批量上传、文件夹创建等服务、用户系统。安装步骤如下: 47 | 1. 安装:`docker pull filebrowser/filebrowser` 48 | 2. 配置:配置文件在 `/etc/config.json`,数据库在 `/etc/database.db` 49 | 3. 启动 50 | ``` 51 | docker run \ 52 | -v /path/to/sites/root:/srv \ 53 | -v /path/to/config.json:/config.json \ 54 | -v /path/to/database.db:/database.db \ 55 | -p 80:80 \ 56 | filebrowser/filebrowser 57 | ``` 58 | 4. 访问:然后访问 `http://localhost` 即可,默认是 80 端口,改端口的话修改 `config.json` 文件 59 | 60 | 61 |

62 | 63 | 6、[frp](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fatedier/frp):一个可用于内网穿透的高性能的反向代理应用,支持 tcp、udp、http、https 协议。有时想要让其他人(外网)通过域名访问或者测试我们在本地搭建的 web 服务,但是由于本地机器没有公网 IP,无法将域名解析到本地的机器,通过 frp 就可以实现这一功能。例如:微信公众号开发、slack bot 开发等,[中文文档](https://github.com/fatedier/frp/blob/master/README_zh.md) 64 | 65 | 66 | 7、[nes](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/fogleman/nes):Golang 写的 NES 模拟器。现在可能已经没人玩 NES 游戏了,不过可以了解下怎么写模拟器、如何用 Go 模拟 CPU 和 GPU 67 | ``` 68 | 1. 安装 69 | go get github.com/fogleman/nes 70 | 71 | 2. 运行 72 | nes [rom文件的路径] 73 | ``` 74 | 75 | 76 |

77 | 78 | ### Java 项目 79 | 8、[cicada](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/TogetherOS/cicada):基于 Netty4 实现的快速、轻量级 Web 框架。没有过多的依赖,核心 jar 包仅 30KB。一行代码即可启动 HTTP 服务,支持灵活的传参方式。[中文文档](https://github.com/TogetherOS/cicada/blob/master/README-ZH.md),示例代码: 80 | ```java 81 | public class MainStart { 82 | public static void main(String[] args) throws InterruptedException { 83 | CicadaServer.start(MainStart.class,"/cicada-example") ; 84 | } 85 | } 86 | ``` 87 | 88 | 89 | ### JavaScript 项目 90 | 9、[ice](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/alibaba/ice):让前端开发简单而友好,海量可复用物料,配套桌面工具极速构建前端应用。模板比较多,样式易于定制,物料的概念很好。可用来极速构建中后台应用,[官网](https://alibaba.github.io/ice/iceworks) 91 | 92 | 93 |

94 | 95 | 10、[legoflow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/legoflow/legoflow):内置最前沿的 WebPack4、Babel7、Gulp4 的构建工具,无需安装复杂的系统环境,更轻、更强、开箱即用的前端工作流客户端 96 | 97 | 98 |

99 | 100 | 11、[thejsway](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/thejsway/thejsway):JavaScript 教程(英文),该教程对新手友好、全面。从编程基础到前端、后端 Web 开发。该教程采用 ES2015 语法编写,还有良好的编程习惯指导。使用 ESLint 、Pretties 工具,并遵循 [AirBnb 风格指南](https://github.com/airbnb/javascript)。每章都有练习,使得获得的技能付诸于事件。最后的一个实战项目将指导你创建[新闻 Web 应用](https://thejsway-publink.herokuapp.com/) 101 | 102 | 103 | 12、[v-uploader](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/TerryZ/v-uploader):基于 Vue2 简洁易用、可批量、拖拽的文件上传插件。该[作者 GitHub 仓库](https://github.com/TerryZ?tab=repositories) 还有很多使用 Vue 开发的组件,想学习编写 Vue 组件的同学可以前去学习、借鉴。[文档及示例](https://terryz.gitee.io/vue/#/upload/demo),支持功能: 104 | - 单文件上传模式带图片预览框 105 | - 单文件上传模式预览框模式支持关闭、自定义尺寸、自定义默认展示图片等定制化功能 106 | - 批量上传模式支持图片预览、文件拖拽 107 | - 健全的上传文件限制,文件类型、文件尺寸、自定义校验等 108 | 109 | 110 |

111 | 112 | ### Objective-C 项目 113 | 13、[iOS-InterviewQuestion-collection](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/liberalisman/iOS-InterviewQuestion-collection):iOS 开发者在面试过程中,常见的一些面试题,建议尽量弄懂了原理,并且多实践。 114 | 115 | 116 | ### Python 项目 117 | 14、[cx-extractor-python](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chrislinan/cx-extractor-python):这是一个对网页正文进行抽取的工具。 [cx-extractor](https://github.com/chrislinan/cx-extractor/blob/master/%E5%9F%BA%E4%BA%8E%E8%A1%8C%E5%9D%97%E5%88%86%E5%B8%83%E5%87%BD%E6%95%B0%E7%9A%84%E9%80%9A%E7%94%A8%E7%BD%91%E9%A1%B5%E6%AD%A3%E6%96%87%E6%8A%BD%E5%8F%96%E7%AE%97%E6%B3%95.pdf) 算法的 python 版本,改进了原有算法,使其支持中英文,对新闻类网页正文抽取效果较好。示例代码: 118 | ```python 119 | from crawler.cx_extractor_Python import cx_extractor_Python 120 | cx = cx_extractor_Python() 121 | test_html = cx.getHtml('http://news.163.com/16/0101/10/BC84MRHS00014AED.html') 122 | content = cx.filter_tags(test_html) 123 | s = cx.getText(content) 124 | print(s) 125 | 126 | ``` 127 | 128 | 129 | 15、[termtosvg](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/nbedos/termtosvg):Python 写的终端记录器。通过命令 `termtosvg` 运行该工具,然后在终端执行你要展示的命令,最终输入 `exit` 命令结束录制,本地会生成一份 SVG 动画,可用于分享、展示终端操作。效果如下: 130 | 131 | 132 |

133 | 134 | ### Swift 项目 135 | 16、[FileHider-for-mac](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/zhihaozhang/FileHider-for-mac):一款将你的文件夹、文件隐藏起来的小工具。适用于 macOS X 10.10 及以后的版本 136 | 137 | 138 |

139 | 140 | ### 其它 141 | 17、[chinese-xinhua](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/pwxcoo/chinese-xinhua):中华新华字典数据库。包括歇后语,成语,词语,汉字 142 | 143 | 144 | 18、[DDFE-blog](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/DDFE/DDFE-blog):滴滴前端技术分享 145 | 146 | 147 | 19、[HowToBeAProgrammer](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/braydie/HowToBeAProgrammer):成为一名好的程序员是困难的,将一个想法变为现实,最困难的地方在于与你的同事和顾客相处。编程能力很重要,但在好的程序员看来。相比构建一个让各种各样客户都满意的软件系统,纯粹的编程真的只是小孩子的玩意。在这篇文章里,我尝试尽可能简洁地总结那些当我 21 岁时,希望别人告诉我的事。[中文版](https://github.com/braydie/HowToBeAProgrammer/blob/master/zh/README.md#%E7%9B%AE%E5%BD%95) 148 | 149 | 150 | 20、[weekly](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ascoders/weekly):前端精读。前端界的好文精读,每周更新 151 | 152 | 153 | ### 机器学习 154 | 21、[100-Days-Of-ML-Code](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Avik-Jain/100-Days-Of-ML-Code):《机器学习 100天》[中文版](https://github.com/MLEveryday/100-Days-Of-ML-Code) 155 | 156 | 157 | 158 | 159 |

160 | 『上一期』 | 反馈和建议 | 『下一期』 161 |

162 | 163 | --- 164 |

165 | 👉 来!推荐开源项目 👈
166 | 微信中搜:HelloGitHub 关注公众号
167 | 不仅能第一时间收到推送,还有回馈粉丝的活动
168 | 如果文中的图刷不出来,可以点击 这里。 169 |

170 | 171 | ## 赞助 172 | 173 | 174 | 175 | 176 | 177 | 184 | 191 | 198 | 205 | 206 | 207 |
178 | 179 |
180 | UCloud
181 | 超值的全球云服务 182 |
183 |
185 | 186 |
187 | CDN
188 | 开启全网加速 189 |
190 |
192 | 193 |
194 | OpenIM
195 | 开源IM力争No.1 196 |
197 |
199 | 200 |
201 | Apifox
202 | 比 Postman 更强大 203 |
204 |
208 | 209 | 210 | ## 声明 211 | 知识共享许可协议
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可。 212 | -------------------------------------------------------------------------------- /script/github_bot/README.md: -------------------------------------------------------------------------------- 1 | # GitHub Bot 2 | >兴趣是最好的老师,[HelloGitHub](https://github.com/521xueweihan/HelloGitHub) 就是帮你找到兴趣! 3 | 4 |

5 | 6 |

7 | 8 | ## 运行步骤 9 | 这个脚本主要用于收集 GitHub 上优秀的项目,用于编写[《HelloGitHub 月刊》](https://github.com/521xueweihan/HelloGitHub),后面还会持续开发~ 10 | 11 | 1. **安装依赖**:`pip install -r requirements.txt` 12 | 2. **配置脚本中相关参数**: 13 | ``` 14 | # github帐号 15 | ACCOUNT = { 16 | 'username': '', 17 | 'password': '' 18 | } 19 | 20 | # 发送邮件,邮箱的信息 21 | MAIL = { 22 | 'mail': '', # 发送邮件的邮箱地址 23 | 'username': '', 24 | 'password': '', 25 | 'host': 'smtp.qq.com', 26 | 'port': 465 27 | } 28 | 29 | # 接收邮件的邮箱地址 30 | RECEIVERS = [] 31 | # qq邮件服务文档:http://service.mail.qq.com/cgi-bin/help?id=28 32 | ``` 33 | 34 | 3.**运行脚本**:`python github_bot.py` 35 | 36 | ## 开发日志 37 | #### 2017-04-06 38 | 1. GitHub Api 更新,event 最多获取 300 条 39 | 2. 新注册帐号 521hellogithub 用于获取每天的数据 40 | 41 | #### 2017-03-28 42 | 增加收集项目 star 临界值 43 | 44 | #### 2016-09-29 45 | - GitHub 今日热点项目不统计自己的项目 46 | - 错误日志放到脚本的同目录下 47 | 48 | #### 2016-09-24 49 | 实现根据 star 数量,从高到低展示。 50 | 51 | #### 2016-09-05 52 | 实现请求 GitHub Api 获取关注的用户 star 的项目、过滤内容、定时发邮件 53 | 54 | ## Todo 55 | 1. 获取 explore 页的数据 56 | 2. 异步请求获取 star 数 57 | 3. 自己项目的数据统计 58 | -------------------------------------------------------------------------------- /script/github_bot/github_bot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding:utf-8 -*- 3 | # 4 | # Author : XueWeiHan 5 | # E-mail : 595666367@qq.com 6 | # Date : 16/8/30 下午10:43 7 | # Desc : Github Bot 8 | import os 9 | import logging 10 | import smtplib 11 | import datetime 12 | from operator import itemgetter 13 | from email.mime.text import MIMEText 14 | from email.header import Header 15 | 16 | import requests 17 | 18 | logging.basicConfig( 19 | level=logging.WARNING, 20 | filename=os.path.join(os.path.dirname(__file__), 'bot_log.txt'), 21 | filemode='a', 22 | format='%(name)s %(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s' 23 | ) 24 | logger = logging.getLogger('Bot') # 设置log名称 25 | # github帐号 26 | ACCOUNT = { 27 | 'username': '', 28 | 'password': '' 29 | } 30 | 31 | API = { 32 | 'events': 'https://api.github.com/users/{username}/received_events'.format(username=ACCOUNT['username']) 33 | } 34 | 35 | # 发送邮件,邮箱的信息 36 | MAIL = { 37 | 'mail': '', # 发送邮件的邮箱地址 38 | 'username': '', 39 | 'password': '', 40 | 'host': 'smtp.qq.com', 41 | 'port': 465 42 | } 43 | 44 | # 接收邮件的邮箱地址 45 | RECEIVERS = [] 46 | 47 | # 几天前 48 | DAY = 1 49 | 50 | # 项目stars临界值 51 | STARS = 100 52 | 53 | # qq邮件服务文档:http://service.mail.qq.com/cgi-bin/help?id=28 54 | 55 | 56 | CONTENT_FORMAT = """ 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | {project_info_string} 66 |
头像用户名项目名starred 日期项目 star 数量
67 | """ 68 | 69 | 70 | def get_data(page=1): 71 | """ 72 | 从目标源获取数据 73 | https://developer.github.com/v3/activity/events/ 74 | GitHub 规定:默认每页 30 条,最多 300 条目 75 | """ 76 | 77 | args = '?page={page}'.format(page=page) 78 | 79 | response = requests.get(API['events']+args, 80 | auth=(ACCOUNT['username'], ACCOUNT['password'])) 81 | status_code = response.status_code 82 | if status_code == 200: 83 | resp_json = response.json() 84 | return resp_json 85 | else: 86 | logging.error('请求 event api 失败:', status_code) 87 | return [] 88 | 89 | 90 | def get_all_data(): 91 | """ 92 | 获取全部 300 条的数据 93 | https://developer.github.com/v3/activity/events/ 94 | GitHub 规定:默认每页 30 条,最多 300 条目 95 | """ 96 | all_data_list = [] 97 | for i in range(10): 98 | response_json = get_data(i+1) 99 | if response_json: 100 | all_data_list.extend(response_json) 101 | return all_data_list 102 | 103 | 104 | def check_condition(data): 105 | """ 106 | 过滤条件 107 | """ 108 | create_time = datetime.datetime.strptime( 109 | data['created_at'], "%Y-%m-%dT%H:%M:%SZ") + datetime.timedelta(hours=8) 110 | date_condition = create_time >= (datetime.datetime.now() 111 | - datetime.timedelta(days=DAY)) 112 | if (data['type'] == 'WatchEvent') and date_condition: 113 | # 不统计自己项目的star事件 114 | if data['payload']['action'] == 'started' and \ 115 | ACCOUNT['username'] not in data['repo']['name']: 116 | data['date_time'] = create_time.strftime("%Y-%m-%d %H:%M:%S") 117 | return True 118 | else: 119 | return False 120 | 121 | 122 | def analyze(json_data): 123 | """ 124 | 分析获取的数据 125 | :return 符合过滤条件的数据 126 | """ 127 | result_data = [] 128 | for fi_data in json_data: 129 | if check_condition(fi_data): 130 | result_data.append(fi_data) 131 | return result_data 132 | 133 | 134 | def get_stars(data): 135 | """ 136 | 获取stars数量,同时过滤掉stars数量少的项目 137 | """ 138 | project_info_list = [] 139 | for fi_data in data: 140 | project_info = dict() 141 | project_info['user'] = fi_data['actor']['login'] 142 | project_info['user_url'] = 'https://github.com/' + project_info['user'] 143 | project_info['avatar_url'] = fi_data['actor']['avatar_url'] 144 | project_info['repo_name'] = fi_data['repo']['name'] 145 | project_info['repo_url'] = 'https://github.com/' + project_info['repo_name'] 146 | project_info['date_time'] = fi_data['date_time'] 147 | try: 148 | repo_stars = requests.get(fi_data['repo']['url'], timeout=2).json() 149 | if repo_stars: 150 | project_info['repo_stars'] = int(repo_stars['stargazers_count']) 151 | else: 152 | project_info['repo_stars'] = -1 153 | except Exception as e: 154 | project_info['repo_stars'] = -1 155 | logger.warning(u'获取:{} 项目星数失败——{}'.format( 156 | project_info['repo_name'], e)) 157 | finally: 158 | if project_info['repo_stars'] >= STARS or project_info['repo_stars'] == -1: 159 | # 过滤掉star数量低于临界值的项目 160 | project_info_list.append(project_info) 161 | project_info_list = sorted(project_info_list, key=itemgetter('repo_stars'), reverse=True) 162 | return project_info_list 163 | 164 | 165 | def make_content(): 166 | """ 167 | 生成发布邮件的内容 168 | """ 169 | json_data = get_all_data() 170 | data = analyze(json_data) 171 | content = [] 172 | project_info_list = get_stars(data) 173 | for project_info in project_info_list: 174 | project_info_string = """ 175 | 176 | {user} 177 | {repo_name} 178 | {date_time} 179 | {repo_stars} 180 | 181 | """.format(**project_info) 182 | content.append(project_info_string) 183 | return content 184 | 185 | 186 | def send_email(receivers, email_content): 187 | """ 188 | 发送邮件 189 | """ 190 | sender = MAIL['mail'] # 发送邮件的邮箱 191 | receivers = receivers # 接收邮件的邮箱,可设置多个 192 | 193 | # 三个参数:第一个为文本内容,第二个 html 设置文本格式,第三个 utf-8 设置编码 194 | message = MIMEText( 195 | CONTENT_FORMAT.format(project_info_string=''.join(email_content)), 196 | 'html', 'utf-8' 197 | ) 198 | message['From'] = Header(u'GitHub 机器人', 'utf-8') 199 | message['To'] = Header(u'削微寒', 'utf-8') 200 | 201 | subject = u'今日 GitHub 热点' # 设置邮件主题 202 | message['Subject'] = Header(subject, 'utf-8') 203 | try: 204 | smtp_obj = smtplib.SMTP_SSL() # qq邮箱要求是https连接,所以需要用SMTP_SSL 205 | smtp_obj.connect(MAIL['host'], MAIL['port']) # 设置SMTP地址和端口号 206 | smtp_obj.login(MAIL['username'], MAIL['password']) 207 | smtp_obj.sendmail(sender, receivers, message.as_string()) 208 | except smtplib.SMTPException as e: 209 | logger.error(u"无法发送邮件: {}".format(e)) 210 | 211 | if __name__ == '__main__': 212 | content = make_content() 213 | send_email(RECEIVERS, content) 214 | -------------------------------------------------------------------------------- /script/github_bot/requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | -------------------------------------------------------------------------------- /script/make_content/README.md: -------------------------------------------------------------------------------- 1 | # GitHub MakeContent 2 | >兴趣是最好的老师,[《HelloGitHub》](https://github.com/521xueweihan/HelloGitHub)就是帮你找到兴趣! 3 | 4 | ![](https://github.com/521xueweihan/HelloGitHub/blob/master/content/01/img/hello-github.jpg) 5 | 6 | 7 | ## 运行步骤 8 | 后面的月刊都通过这个脚本生成,这样如果通用内容部分需要修改,就只需要使用脚本重新生成月刊,而不需 9 | 要手动修改已发布的所有期的内容。后面还会持续开发~ 10 | 11 | ``` 12 | python make_content.py 期数/all(重新生成所有期) 13 | ``` 14 | 注意:需要放在本项目的根目录下运行该脚本 15 | 16 | ## TODO 17 | - 自动生成 README 18 | -------------------------------------------------------------------------------- /script/make_content/make_content.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding:utf-8 -*- 3 | # 4 | # Author : XueWeiHan 5 | # E-mail : 595666367@qq.com 6 | # Date : 16/10/21 下午1:41 7 | # Desc : HelloGitHub项目——生成月刊脚本 8 | """ 9 | 该脚本主要用于:生成月刊 10 | 11 | 《HelloGitHub》月刊每期内容都遵循统一格式,如果需要对通用部分的内容进行修改,需要手动修改每一 12 | 期的内容,这是不优雅的。 13 | 14 | 所以,我打算写个脚本,用于生成月刊,这样如果修改了通用内容部分,就只需要重新生成月刊,而不需要 15 | 手动修改已发布的所有期的内容。 16 | """ 17 | from __future__ import print_function 18 | import sys 19 | import os 20 | 21 | CONTENT_FLAG = '{{ hello_github_content }}' 22 | NUM_FLAG = '{{ hello_github_num }}' 23 | 24 | 25 | class InputError(Exception): 26 | def __init__(self, message): 27 | self.message = message 28 | 29 | def __str__(self): 30 | return repr(self.message) 31 | 32 | 33 | def check_path(path): 34 | """ 35 | 检查路径是否存在 36 | """ 37 | if not os.path.exists(path): 38 | print('not exist: {path}'.format(path=path)) 39 | return False 40 | else: 41 | return True 42 | 43 | 44 | def read_file(input_path): 45 | with open(input_path, 'r') as fb: 46 | return fb.read() 47 | 48 | 49 | def write_file(output_path, output_data): 50 | with open(output_path, 'w') as fb: 51 | fb.write(output_data) 52 | 53 | 54 | def make_content(num): 55 | template_path = os.path.join(os.path.abspath(os.curdir), 'template.md') 56 | output_path = os.path.join(os.path.abspath(os.curdir), num) 57 | content_path = os.path.join(output_path, 'content'+num+'.md') 58 | if not (check_path(content_path) and check_path(template_path)): 59 | # 如果 content 和 template 文件不存在 60 | return None 61 | temple_data = read_file(template_path).replace(NUM_FLAG, num) 62 | 63 | content_data = read_file(content_path) 64 | 65 | output_data = temple_data.replace(CONTENT_FLAG, content_data) 66 | 67 | write_file(os.path.join(output_path, 'HelloGitHub{num}.md'.format(num=num)), output_data) 68 | print('Make 《GitHub月刊{num}》 successful!'.format(num=num)) 69 | 70 | 71 | def make_all_content(): 72 | dir_list = os.listdir(os.path.abspath(os.curdir)) 73 | for fi_dir in dir_list: 74 | # 忽略‘script’的目录 75 | if os.path.isdir(fi_dir) and 'script' not in fi_dir: 76 | make_content(fi_dir) 77 | 78 | 79 | def main(): 80 | """ 81 | 入口方法 82 | """ 83 | input_list = sys.argv # 获取输入的参数 84 | 85 | if len(input_list) != 2: 86 | raise InputError('Input error: Need a param') 87 | else: 88 | try: 89 | input_arg = input_list[1] 90 | except Exception: 91 | raise InputError('Input error: Must be number') 92 | if len(input_arg) == 1: 93 | make_content('0' + input_arg) 94 | elif input_arg == 'all': 95 | make_all_content() 96 | else: 97 | make_content(input_arg) 98 | 99 | if __name__ == '__main__': 100 | main() 101 | --------------------------------------------------------------------------------