# 《HelloGitHub》第 35 期 >兴趣是最好的老师,**HelloGitHub** 就是帮你找到兴趣! <p align="center"> <img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/01/img/hello-github.jpg' style="max-width:100%;"></img> </p> ## 简介 分享 GitHub 上有趣、入门级的开源项目。 这是一个面向**编程新手**、**热爱编程**、**对开源社区感兴趣** 人群的月刊,月刊的内容包括:**各种编程语言的项目**、**让生活变得更美好的工具**、**书籍、学习笔记、教程等**,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到**开源社区**中。 - 会编程的可以贡献代码 - 不会编程的可以反馈使用这些工具中的 Bug - 帮着宣传你觉得优秀的项目 - Star 项目⭐️ 在浏览、参与这些项目的过程中,你将学习到**更多编程知识**、**提高编程技巧**、**找到编程的乐趣**。 🎉 最后 HelloGitHub 这个项目就诞生了 🎉 ## 目录 - [C# 项目](#C-项目) - [C++ 项目](#C-项目-1) - [Go 项目](#Go-项目) - [Java 项目](#Java-项目) - [JavaScript 项目](#JavaScript-项目) - [Objective-C 项目](#Objective-C-项目) - [Python 项目](#Python-项目) - [其它](#其它) - [开源书籍](#开源书籍) - [教程](#教程) - [机器学习](#机器学习) **Tips**:如果文中的图刷不出来,可以向我们反馈。也可以访问 [官网](https://hellogithub.com/) 获取更好的阅读体验。 <p align="center"> <img src="https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/logo/weixin.png" style="max-width:30%;"></img><br> 欢迎关注 HelloGitHub 公众号 </p> ## 内容 > **以下为本期内容**|每个月 **28** 号发布最新一期 ### C# 项目 1、[IdentityServer4.Admin](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/skoruba/IdentityServer4.Admin):免费开源的 IdentityServer4 与 Asp.Net Core Identity 管理器。IdentityServer4 官方的管理器是收费的,该项目很好的替代了官方管理器,可以方便的管理使用 IdentityServer4 所搭建的认证服务器 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/IdentityServer4.png' style="max-width:80%; max-height=80%;"></img></p> <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### C++ 项目 2、[FLIF](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/FLIF-hub/FLIF):免费、新颖的无损图像格式。压缩比方面优于 PNG、lossless WebP、lossless BPG、lossless JPEG2000 等格式 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### Go 项目 3、[cds](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ovh/cds):企业级开源持续集成系统。支持横向扩展、自带 UI、常用的持续集成构建等功能 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/cds.gif' style="max-width:80%; max-height=80%;"></img></p> 4、[docui](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/skanehira/docui):终端 Docker 管理工具,自带一个终端界面。使用该工具可以方便的通过界面管理 docker 不用再记那些命令。安装命令: ``` # Homebrew $ brew tap skanehira/docui $ brew install docui # go get $ go get -d github.com/skanehira/docui $ cd $GOPATH/src/github.com/skanehira/docui $ GO111MODULE=on go install ``` <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/docui.png' style="max-width:80%; max-height=80%;"></img></p> 5、[go-echarts](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/go-echarts/go-echarts):Golang 代码生成对应的 echarts 可视化图表。实例代码: ```go // example.go package main import ( "log" "math/rand" "os" "time" "github.com/chenjiandongx/go-echarts/charts" ) var nameItems = []string{"衬衫", "牛仔裤", "运动裤", "袜子", "冲锋衣", "羊毛衫"} var seed = rand.NewSource(time.Now().UnixNano()) func randInt() []int { cnt := len(nameItems) r := make([]int, 0) for i := 0; i < cnt; i++ { r = append(r, int(seed.Int63()) % 50) } return r } func main() { bar := charts.NewBar() bar.SetGlobalOptions(charts.TitleOpts{Title: "Bar-示例图"}, charts.ToolboxOpts{Show: true}) bar.AddXAxis(nameItems). AddYAxis("商家A", randInt()). AddYAxis("商家B", randInt()) f, err := os.Create("bar.html") if err != nil { log.Println(err) } bar.Render(f) } ``` <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/go-echarts.gif' style="max-width:80%; max-height=80%;"></img></p> 6、[1m-go-websockets](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/eranyanay/1m-go-websockets):该项目演示了如何用 Go 编写一个可以提供超过一百万个 websockets 连接、运行内存小于 1GB 的服务器。`setup.sh` 是用来创建 websocket 客户端的,`destroy.sh` 则用来销毁客户端 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### Java 项目 7、[SpringBoot-Learning](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/dyc87112/SpringBoot-Learning):Spring Boot 教程 8、[halo](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/halo-dev/halo):Java 博客系统。在层出不穷的博客系统中,很难看到使用 Java 编写的简洁优雅的博客系统。该项目还具备着轻快且功能强大的特点,这些特性使它从众多 Java 博客系统脱颖而出。安装命令: ``` # 安装 Halo $ yum install -y wget && wget -O halo-cli.sh https://git.io/fxHqp && bash halo-cli.sh -i # 更新 Halo $ bash halo-cli.sh -u ``` <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/halo.png' style="max-width:80%; max-height=80%;"></img></p> 9、[APIJSON](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/APIJSON/APIJSON):快速开发 API 服务的框架。为简单的增删改查、复杂的查询、简单的事务操作提供了完全自动化的 API。大部分 HTTP 请求后端再也不用写接口了,也不用写文档了,适合中小型前后端分离的项目 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/APIJSON.jpg' style="max-width:80%; max-height=80%;"></img></p> 10、[IQL](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/teeyog/IQL):基于 SparkSQL 实现了一套即席查询服务,具有如下特性: - 优雅的交互方式,支持多种 datasource/sink、多数据源混算 - Spark 常驻服务,基于 zookeeper 的引擎自动发现 - 多 session 模式实现并行查询 - 等等 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/IQL.png' style="max-width:80%; max-height=80%;"></img></p> <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### JavaScript 项目 11、[Gitter](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/huangjianke/Gitter):GitHub 的小程序客户端。UI 设计漂亮,可作为小程序和 GitHub 结合的实战项目学习 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/Gitter.png' style="max-width:80%; max-height=80%;"></img></p> 12、[Motrix](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/agalwood/Motrix):桌面下载工具,支持下载 HTTP、FTP、BT、磁力链、百度网盘等资源。界面简洁易用,采用 Vue + VueX + Element 的技术架构适合学习桌面应用开发 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/Motrix.png' style="max-width:80%; max-height=80%;"></img></p> 13、[rainbow](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/ccampbell/rainbow):体积小、易于使用、支持各种编程语言的语法高亮插件。该项目原理是通过正则过滤关键字,然后进行高亮。代码: ```javascript // JS关键字判断 Rainbow.extend('javascript', [ /** * matches $. or $( */ { name: 'selector', pattern: /\$(?=\.|\()/g }, { name: 'support', pattern: /\b(window|document)\b/g } ... ``` 14、[Chart.js](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/chartjs/Chart.js):基于 canvas 的可视化库。可用于构建简单的 H5 图表,满足基本的日常可视化需求 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/Chart.png' style="max-width:80%; max-height=80%;"></img></p> 15、[ant-design-vue](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/vueComponent/ant-design-vue):Ant Design 的 Vue 实现,该项目已经得到 [Ant Design 官方](https://vue.ant.design/docs/vue/introduce-cn/)认可 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### Objective-C 项目 16、[iWeChat](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/lefex/iWeChat):还原、探索微信 APP 的项目。通过该项目借鉴、学习微信客户端开发的相关设计与技术,也可以学到如何分析一个第三方 APP 的方法 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### Python 项目 17、[spug](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/openspug/spug):使用 Python+Vue 实现的开源运维平台,前后端分离方便二次开发。该项目基于 Docker 镜像发布部署,方便安装和升级。支持运维常见功能:主机管理、任务计划管理、发布部署、监控告警等 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/spug.gif' style="max-width:80%; max-height=80%;"></img></p> 18、[ruia](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/howie6879/ruia):基于 asyncio 和 aiohttp 的 Python3 异步爬虫框架。它具有容易上手、非阻塞、扩展性强等特点,实例代码: ```python from ruia import TextField, Item, Spider class HackerNewsItem(Item): target_item = TextField(css_select='tr.athing') title = TextField(css_select='a.storylink') class HackerNewsSpider(Spider): start_urls = ['https://news.ycombinator.com/news?p=1'] async def parse(self, response): async for item in HackerNewsItem.get_items(html=response.html): yield item if __name__ == '__main__': HackerNewsSpider.start() ``` <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/ruia.png' style="max-width:80%; max-height=80%;"></img></p> <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### 其它 19、[devhub](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/devhubapp/devhub):支持 Android、iOS、Web、Desktop 的 GitHub 管理通知客户端。能够帮你方便地接收、查看、管理 GitHub 消息、动态等 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/devhub.jpg' style="max-width:80%; max-height=80%;"></img></p> 20、[neovim](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/neovim/neovim):致力于改善 Vim 的维护、可扩展性等方面的编辑器。它功能强大、项目开发活跃、社区活跃,“新一代”的 Vim <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/neovim.png' style="max-width:80%; max-height=80%;"></img></p> 21、[Micro8](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/Micropoor/Micro8):浸淫渗透攻击的老鸟所写,内容一线深入浅出,主要是 Windows 系统场景。对于初中级安全从业人员、乙方安全测试、甲方安全自检、网络安全爱好者等提高都有很大的帮助 22、[OI-wiki](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/OI-wiki/OI-wiki):免费、开放、持续更新的编程竞赛相关知识教程。包含竞赛的基础知识、常见题型、解题思路以及常用工具等内容,帮助大家更快速、深入地学习编程竞赛相关知识 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### 开源书籍 23、[You-Dont-Know-JS](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/getify/You-Dont-Know-JS):(英文)深入探讨 JavaScript 语言核心机制的书籍,适用于深入学习 JS。该书已出版,但在线阅读免费 24、[d2l-zh](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/d2l-ai/d2l-zh):《Dive into Deep Learning 》翻译版,即《动手学深度学习》。[在线阅读](http://zh.d2l.ai/) 25、[cppwasm-book](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/3dgen/cppwasm-book):《C/C++ 面向 WebAssembly 编程》,[在线阅读](https://3dgen.cn/cppwasm-book/) <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### 教程 26、[USTC-Course](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/USTC-Resource/USTC-Course):该仓库收录中国科学技术大学众多课程资源。包括电子版教材、参考书、讲义、试卷、学习心得、习题解答等。以计算机学院课程为主,也包含公选课、自由选修等其他课程。 <p align="center"><img src='https://raw.githubusercontent.com/521xueweihan/img/master/hellogithub/35/img/USTC-CS-Courses-Resource.png' style="max-width:80%; max-height=80%;"></img></p> <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> ### 机器学习 27、[gpt-2](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/openai/gpt-2):OpenAI 发布的 15 亿参数量通用语言模型 GPT-2,迄今最大模型!展示了一种构建语言处理系统的潜在方式,即根据自然发生的演示学习执行任务。实例代码: ```python export PYTHONIOENCODING=UTF-8 python3 src/generate_unconditional_samples.py | tee samples python3 src/generate_unconditional_samples.py --top_k 40 --temperature 0.7 | tee samples python3 src/interactive_conditional_samples.py --top_k 40 ``` 28、[deep-learning-drizzle](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/kmario23/deep-learning-drizzle):世界计算机名校的深度学习、强化学习、机器学习、计算机视觉、自然语言处理等方面的公开课 29、[stanza](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/stanfordnlp/stanza):适用于多种人类语言的 Stanford NLP 官方 Python 库。包含用于运行 CoNLL 2018 共享任务的最新完全神经管道以及访问 Java Stanford CoreNLP 服务器的软件包。实例代码: ```python import stanfordnlp stanfordnlp.download('en') # This downloads the English models for the neural pipeline nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.") doc.sentences[0].print_dependencies() ``` 30、[Tensorflow-Cookbook](https://hellogithub.com/periodical/statistics/click/?target=https://github.com/taki0112/Tensorflow-Cookbook):易学易用的 Tensorflow 教程 <p align="center"><a href="#目录">🔙 返回目录 🔙</a></p><br> <p align="center"> <a href="https://github.com/521xueweihan/HelloGitHub/blob/master/content/34/HelloGitHub34.md">『上一期』</a> | <a href='https://github.com/521xueweihan/HelloGitHub/issues/899'>反馈和建议</a> | <a href="https://github.com/521xueweihan/HelloGitHub/blob/master/content/36/HelloGitHub36.md">『下一期』</a> </p> --- <p align="center"> 看完了,还不够?<a href='https://github.com/ruanyf/weekly'><科技爱好者周刊></a>。还不过瘾,那就看看 <a href='https://github.com/521xueweihan/HelloGitHub#%E5%86%85%E5%AE%B9'><往期内容></a>吧。<br> <a href='https://github.com/521xueweihan/HelloGitHub/issues/new'>点击分享发现的有趣项目</a> </p> ## 声明 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><img alt="知识共享许可协议" style="border-width: 0" src="https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png"></a><br>本作品采用 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh">署名-非商业性使用-禁止演绎 4.0 国际</a> 进行许可。