|
| 1 | +# 《HelloGitHub》第 35 期 |
| 2 | +>兴趣是最好的老师,**HelloGitHub** 就是帮你找到兴趣! |
| 3 | +
|
| 4 | + |
| 5 | + |
| 6 | +## 简介 |
| 7 | +分享 GitHub 上有趣、入门级的开源项目。 |
| 8 | + |
| 9 | +这是一个面向**编程新手**、**热爱编程**、**对开源社区感兴趣** 人群的月刊,月刊的内容包括:**各种编程语言的项目**、**让生活变得更美好的工具**、**书籍、学习笔记、教程等**,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到**开源社区**中。 |
| 10 | +- 会编程的可以贡献代码 |
| 11 | +- 不会编程的可以反馈使用这些工具中的 Bug |
| 12 | +- 帮着宣传你觉得优秀的项目 |
| 13 | +- Star 项目⭐️ |
| 14 | + |
| 15 | +在浏览、参与这些项目的过程中,你将学习到**更多编程知识**、**提高编程技巧**、**找到编程的乐趣**。 |
| 16 | + |
| 17 | +🎉 最后 [HelloGitHub](https://hellogithub.com) 这个项目就诞生了 🎉 |
| 18 | + |
| 19 | +--- |
| 20 | +> **以下为本期内容**|每个月 **28** 号发布最新一期|[点击查看往期内容](https://github.com/521xueweihan/HelloGitHub#内容) |
| 21 | +
|
| 22 | +#### C# 项目 |
| 23 | +1、[IdentityServer4.Admin](https://github.com/skoruba/IdentityServer4.Admin):免费开源的 IdentityServer4 与 Asp.Net Core Identity 管理器。IdentityServer4 官方的管理器是收费的,该项目很好的替代了官方管理器,可以方便的管理使用 IdentityServer4 所搭建的认证服务器 |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +#### C++ 项目 |
| 28 | +2、[FLIF](https://github.com/FLIF-hub/FLIF):免费、新颖的无损图像格式。压缩比方面优于 PNG、lossless WebP、lossless BPG、lossless JPEG2000 等格式 |
| 29 | + |
| 30 | +#### Go 项目 |
| 31 | +3、[cds](https://github.com/ovh/cds):企业级开源持续集成系统。支持横向扩展、自带 UI、常用的持续集成构建等功能 |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +4、[docui](https://github.com/skanehira/docui):终端 Docker 管理工具,自带一个终端界面。使用该工具可以方便的通过界面管理 docker 不用再记那些命令。安装命令: |
| 36 | +``` |
| 37 | +# Homebrew |
| 38 | +$ brew tap skanehira/docui |
| 39 | +$ brew install docui |
| 40 | +
|
| 41 | +# go get |
| 42 | +$ go get -d github.com/skanehira/docui |
| 43 | +$ cd $GOPATH/src/github.com/skanehira/docui |
| 44 | +$ GO111MODULE=on go install |
| 45 | +``` |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +5、[go-echarts](https://github.com/chenjiandongx/go-echarts):Golang 代码生成对应的 echarts 可视化图表。实例代码: |
| 50 | +```go |
| 51 | +// example.go |
| 52 | +package main |
| 53 | + |
| 54 | +import ( |
| 55 | + "log" |
| 56 | + "math/rand" |
| 57 | + "os" |
| 58 | + "time" |
| 59 | + |
| 60 | + "github.com/chenjiandongx/go-echarts/charts" |
| 61 | +) |
| 62 | + |
| 63 | +var nameItems = []string{"衬衫", "牛仔裤", "运动裤", "袜子", "冲锋衣", "羊毛衫"} |
| 64 | +var seed = rand.NewSource(time.Now().UnixNano()) |
| 65 | + |
| 66 | +func randInt() []int { |
| 67 | + cnt := len(nameItems) |
| 68 | + r := make([]int, 0) |
| 69 | + for i := 0; i < cnt; i++ { |
| 70 | + r = append(r, int(seed.Int63()) % 50) |
| 71 | + } |
| 72 | + return r |
| 73 | +} |
| 74 | + |
| 75 | +func main() { |
| 76 | + bar := charts.NewBar() |
| 77 | + bar.SetGlobalOptions(charts.TitleOpts{Title: "Bar-示例图"}, charts.ToolboxOpts{Show: true}) |
| 78 | + bar.AddXAxis(nameItems). |
| 79 | + AddYAxis("商家A", randInt()). |
| 80 | + AddYAxis("商家B", randInt()) |
| 81 | + f, err := os.Create("bar.html") |
| 82 | + if err != nil { |
| 83 | + log.Println(err) |
| 84 | + } |
| 85 | + bar.Render(f) |
| 86 | +} |
| 87 | +``` |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | +6、[1m-go-websockets](https://github.com/eranyanay/1m-go-websockets):该项目演示了如何用 Go 编写一个可以提供超过一百万个 websockets 连接、运行内存小于 1GB 的服务器。`setup.sh` 是用来创建 websocket 客户端的,`destroy.sh` 则用来销毁客户端 |
| 92 | + |
| 93 | +#### Java 项目 |
| 94 | +7、[SpringBoot-Learning](https://github.com/dyc87112/SpringBoot-Learning):Spring Boot 教程 |
| 95 | + |
| 96 | +8、[halo](https://github.com/ruibaby/halo):Java 博客系统。在层出不穷的博客系统中,很难看到使用 Java 编写的简洁优雅的博客系统。该项目还具备着轻快且功能强大的特点,这些特性使它从众多 Java 博客系统脱颖而出。安装命令: |
| 97 | +``` |
| 98 | +# 安装 Halo |
| 99 | +$ yum install -y wget && wget -O halo-cli.sh https://git.io/fxHqp && bash halo-cli.sh -i |
| 100 | +# 更新 Halo |
| 101 | +$ bash halo-cli.sh -u |
| 102 | +``` |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | +9、[APIJSON](https://github.com/TommyLemon/APIJSON):快速开发 API 服务的框架。为简单的增删改查、复杂的查询、简单的事务操作提供了完全自动化的 API。大部分 HTTP 请求后端再也不用写接口了,也不用写文档了,适合中小型前后端分离的项目 |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | +10、[IQL](https://github.com/teeyog/IQL):基于 SparkSQL 实现了一套即席查询服务,具有如下特性: |
| 111 | +- 优雅的交互方式,支持多种 datasource/sink、多数据源混算 |
| 112 | +- Spark 常驻服务,基于 zookeeper 的引擎自动发现 |
| 113 | +- 多 session 模式实现并行查询 |
| 114 | +- 等等 |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | +#### JavaScript 项目 |
| 119 | +11、[Gitter](https://github.com/huangjianke/Gitter):GitHub 的小程序客户端。UI 设计漂亮,可作为小程序和 GitHub 结合的实战项目学习 |
| 120 | + |
| 121 | + |
| 122 | + |
| 123 | +12、[Motrix](https://github.com/agalwood/Motrix):桌面下载工具,支持下载 HTTP、FTP、BT、磁力链、百度网盘等资源。界面简洁易用,采用 Vue + VueX + Element 的技术架构适合学习桌面应用开发 |
| 124 | + |
| 125 | + |
| 126 | + |
| 127 | +13、[rainbow](https://github.com/ccampbell/rainbow):体积小、易于使用、支持各种编程语言的语法高亮插件。该项目原理是通过正则过滤关键字,然后进行高亮。代码: |
| 128 | +```javascript |
| 129 | +// JS关键字判断 |
| 130 | +Rainbow.extend('javascript', [ |
| 131 | + |
| 132 | + /** |
| 133 | + * matches $. or $( |
| 134 | + */ |
| 135 | + { |
| 136 | + name: 'selector', |
| 137 | + pattern: /\$(?=\.|\()/g |
| 138 | + }, |
| 139 | + { |
| 140 | + name: 'support', |
| 141 | + pattern: /\b(window|document)\b/g |
| 142 | + } |
| 143 | +... |
| 144 | +``` |
| 145 | +
|
| 146 | +14、[Chart.js](https://github.com/chartjs/Chart.js):基于 canvas 的可视化库。可用于构建简单的 H5 图表,满足基本的日常可视化需求 |
| 147 | +
|
| 148 | + |
| 149 | +
|
| 150 | +15、[ant-design-vue](https://github.com/vueComponent/ant-design-vue):Ant Design 的 Vue 实现,该项目已经得到 [Ant Design 官方](https://vue.ant.design/docs/vue/introduce-cn/)认可 |
| 151 | +
|
| 152 | +#### Objective-C 项目 |
| 153 | +16、[iWeChat](https://github.com/lefex/iWeChat):还原、探索微信 APP 的项目。通过该项目借鉴、学习微信客户端开发的相关设计与技术,也可以学到如何分析一个第三方 APP 的方法 |
| 154 | +
|
| 155 | +#### Python 项目 |
| 156 | +17、[spug](https://github.com/openspug/spug):使用 Python+Vue 实现的开源运维平台,前后端分离方便二次开发。该项目基于 Docker 镜像发布部署,方便安装和升级。支持运维常见功能:主机管理、任务计划管理、发布部署、监控告警等 |
| 157 | +
|
| 158 | + |
| 159 | +
|
| 160 | +18、[ruia](https://github.com/howie6879/ruia):基于 asyncio 和 aiohttp 的 Python3 异步爬虫框架。它具有容易上手、非阻塞、扩展性强等特点,实例代码: |
| 161 | +```python |
| 162 | +from ruia import TextField, Item, Spider |
| 163 | + |
| 164 | +class HackerNewsItem(Item): |
| 165 | + target_item = TextField(css_select='tr.athing') |
| 166 | + title = TextField(css_select='a.storylink') |
| 167 | + |
| 168 | + |
| 169 | +class HackerNewsSpider(Spider): |
| 170 | + start_urls = ['https://news.ycombinator.com/news?p=1'] |
| 171 | + |
| 172 | + async def parse(self, response): |
| 173 | + async for item in HackerNewsItem.get_items(html=response.html): |
| 174 | + yield item |
| 175 | + |
| 176 | +if __name__ == '__main__': |
| 177 | + HackerNewsSpider.start() |
| 178 | +``` |
| 179 | +
|
| 180 | + |
| 181 | +
|
| 182 | +#### 其它 |
| 183 | +19、[devhub](https://github.com/devhubapp/devhub):支持 Android、iOS、Web、Desktop 的 GitHub 管理通知客户端。能够帮你方便地接收、查看、管理 GitHub 消息、动态等 |
| 184 | +
|
| 185 | + |
| 186 | +
|
| 187 | +20、[neovim](https://github.com/neovim/neovim):致力于改善 Vim 的维护、可扩展性等方面的编辑器。它功能强大、项目开发活跃、社区活跃,“新一代”的 Vim |
| 188 | +
|
| 189 | + |
| 190 | +
|
| 191 | +21、[Micro8](https://github.com/Micropoor/Micro8):浸淫渗透攻击的老鸟所写,内容一线深入浅出,主要是 Windows 系统场景。对于初中级安全从业人员、乙方安全测试、甲方安全自检、网络安全爱好者等提高都有很大的帮助 |
| 192 | +
|
| 193 | +22、[OI-WIKI](https://github.com/24OI/OI-WIKI):免费、开放、持续更新的编程竞赛相关知识教程。包含竞赛的基础知识、常见题型、解题思路以及常用工具等内容,帮助大家更快速、深入地学习编程竞赛相关知识 |
| 194 | +
|
| 195 | +23、[USTC-CS-Courses-Resource](https://github.com/mbinary/USTC-CS-Courses-Resource):该仓库收录中国科学技术大学众多课程资源。包括电子版教材、参考书、讲义、试卷、学习心得、习题解答等。以计算机学院课程为主,也包含公选课、自由选修等其他课程。 |
| 196 | +
|
| 197 | + |
| 198 | +
|
| 199 | +#### 开源书籍 |
| 200 | +24、[You-Dont-Know-JS](https://github.com/getify/You-Dont-Know-JS):(英文)深入探讨 JavaScript 语言核心机制的书籍,适用于深入学习 JS。该书已出版,但在线阅读免费 |
| 201 | +
|
| 202 | +25、[d2l-zh](https://github.com/d2l-ai/d2l-zh):《Dive into Deep Learning 》翻译版,即《动手学深度学习》。[在线阅读](http://zh.d2l.ai/) |
| 203 | +
|
| 204 | +26、[cppwasm-book](https://github.com/3dgen/cppwasm-book):《C/C++ 面向 WebAssembly 编程》,[在线阅读](https://3dgen.cn/cppwasm-book/) |
| 205 | +
|
| 206 | +#### 机器学习 |
| 207 | +27、[gpt-2](https://github.com/openai/gpt-2):OpenAI 发布的 15 亿参数量通用语言模型 GPT-2,迄今最大模型!展示了一种构建语言处理系统的潜在方式,即根据自然发生的演示学习执行任务。实例代码: |
| 208 | +```python |
| 209 | +export PYTHONIOENCODING=UTF-8 |
| 210 | +python3 src/generate_unconditional_samples.py | tee samples |
| 211 | +python3 src/generate_unconditional_samples.py --top_k 40 --temperature 0.7 | tee samples |
| 212 | +python3 src/interactive_conditional_samples.py --top_k 40 |
| 213 | +``` |
| 214 | +
|
| 215 | +28、[deep-learning-drizzle](https://github.com/kmario23/deep-learning-drizzle):世界计算机名校的深度学习、强化学习、机器学习、计算机视觉、自然语言处理等方面的公开课 |
| 216 | +
|
| 217 | +29、[stanfordnlp](https://github.com/stanfordnlp/stanfordnlp):适用于多种人类语言的 Stanford NLP 官方 Python 库。包含用于运行 CoNLL 2018 共享任务的最新完全神经管道以及访问 Java Stanford CoreNLP 服务器的软件包。实例代码: |
| 218 | +```python |
| 219 | +import stanfordnlp |
| 220 | +stanfordnlp.download('en') # This downloads the English models for the neural pipeline |
| 221 | +nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English |
| 222 | +doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.") |
| 223 | +doc.sentences[0].print_dependencies() |
| 224 | +``` |
| 225 | +
|
| 226 | +30、[Tensorflow-Cookbook](https://github.com/taki0112/Tensorflow-Cookbook):易学易用的 Tensorflow 教程 |
| 227 | +
|
| 228 | +
|
| 229 | +
|
| 230 | +--- |
| 231 | +
|
| 232 | +## 换种方式阅读 |
| 233 | +- **网站:** https://hellogithub.com |
| 234 | +- **GitBook:** https://gitbook.hellogithub.com |
| 235 | +
|
| 236 | +## 声明 |
| 237 | +如果你发现了好玩、有意义的开源项目 [点击这里](https://github.com/521xueweihan/HelloGitHub/issues/new) 分享你觉得有意思的项目。 |
| 238 | +
|
| 239 | +**欢迎转载,请注明出处和作者,同时保留声明。** |
0 commit comments