《HelloGitHub》第 57 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

简介
分享 GitHub 上有趣、入门级的开源项目。
这是一个面向编程新手、热爱编程、对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目、让生活变得更美好的工具、书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。
- 会编程的可以贡献代码
- 不会编程的可以反馈使用这些工具中的 Bug
- 帮着宣传你觉得优秀的项目
- Star 项目️
在浏览、参与这些项目的过程中,你将学习到更多编程知识、提高编程技巧、找到编程的乐趣。
最后 HelloGitHub 这个项目就诞生了
以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容
C 项目
1、ngx_waf:一个 Nginx 防火墙模块。我差点就错过了的宝藏项目,它使用简单不需要复杂的配置,支持的功能直戳我的痛点。你看:
- 支持 IPV4、IPV6 和 IP 段黑白名单
- CC 防御即自动拉黑 IP 一段时间
- 支持 GET、POST、URL、Cookie 等黑名单(正则)

C++ 项目
2、fast-cpp-csv-parser:读取 CSV 文件的 C++ 库(仅头文件)。示例代码:
# include "csv.h"
int main(){
io::CSVReader<3> in("ram.csv");
in.read_header(io::ignore_extra_column, "vendor", "size", "speed");
std::string vendor; int size; double speed;
while(in.read_row(vendor, size, speed)){
// 对 ram.csv 文件中的数据,做你想做的事情吧!
}
}
3、UNO:使用 C++ 编写的命令行 UNO 纸牌游戏。操作方便支持人机或联机对战,游戏基于 Asio 网络库和现代 C++ 开发,也有对 C++17 的尝试。分别实现了服务端、客户端,代码简单对 C++ 新手友好,UNO 的爱好者快来玩一玩吧!

4、godot:一款功能丰富的开源游戏引擎。最初它只是一款 2D 引擎,近期拓展了 3D 部分的能力。相较于 UE4 或者 Unity 这样的成熟商业引擎来说,Godot 还很年轻不够成熟,尤其 3D 方面的能力。但它拥有简易的开发方式,上手简单。而且社区活跃、文档覆盖全面、有较为丰富的示例代码,对于刚入门的游戏开发者友好。同时开源引擎底层代码完全开源,开发者可以阅读和贡献代码,而不是只停留在游戏逻辑开发层面。总而言之 Godot 是一个极有潜力的游戏引擎,推荐给想学习游戏开发的同学

CSS 项目
5、water.css:一个专门为简单页面和示例网页准备的 CSS 框架

Go 项目
6、fyne:一款 Go 语言跨平台 UI 库。想用 Go 写图形界面应用的小伙伴,快速上手:
安装
$ go get fyne.io/fyne
运行一个 demo
$ go get fyne.io/fyne/cmd/fyne_demo/
$ fyne_demo

7、golearn:Go 写的机器学习框架。来,跑个模型试试吧:
cd $GOPATH/src/github.com/sjwhitworth/golearn/examples/knnclassifier
go run knnclassifier_iris.go
Java 项目
8、keepass2android:一个开源的 Android 密码管理器。下载地址,功能:
- 仅需输入一次安全性很强的密码(很长或随机的密码)
- 支持几乎可与所有的 Android 的浏览器
- 支持 .kdbx 文件的读写
- 能够编辑条目包括附加字符串字段、文件附件、标签等
- 等等

9、PrettyZoo:一款 Java 写的高颜值 ZooKeeper 客户端桌面应用。该项目使用了 JDK11 以及 JavaFX 编写的 GUI 客户端,代码量适中适合想学习 JavaFX 编写应用的朋友。需要连接 ZK 服务端查看数据的话,手边有这么个工具还是挺方便的。实用和颜值集一身的项目

10、vueblog:一款轻量级 Java 博客项目。基于 SpringBoot+Vue 实现并附有详细开发文档和讲解视频,让刚学会 Java 的同学也能搞定。每个体面的技术人员可能都有一个自己说了算的博客吧

JavaScript 项目
11、x-spreadsheet:基于 JavaScript 实现的轻量级 Web 电子表格库。它功能齐全,包含表格的基本操作和函数等,还有详细的中文文档,在线尝试

12、h5-Dooring:一款功能齐全的 H5 页面可视化配置平台。让你通过可视化的方式制作出 H5 页面,技术栈以 React 为主,后台采用 Node.js 实现。虽然网上有很多这种工具,但本项目免费开源、功能齐全值得一试

13、Ant-Forest:基于 Auto.js 的蚂蚁森林能量自动收获脚本。它是个“绿色环保”的项目,我能从中感受到满满的爱和想把它做好的决心!来看看作者开发 Ant-Forest 时解决了哪些难题:
- 能量球识别无法使用控件信息(使用基于霍夫变换的图像识别)
- 脚本执行逻辑易被打断(使用事件监听及扩展模块增强鲁棒性)
- 每次只能运行一次(完善的复查及定时循环功能)
- 不同设备分辨率及屏幕比例不同(使用等比缩放/定宽缩放等进行适配)

14、tui.image-editor:功能齐全的图片编辑器。支持图片剪裁、旋转、涂鸦等功能,实现了 Vue 和 React 封装的组件,便于整合进你的项目

15、windows95:基于 Electron 实现的 Windows 95 操作系统。它实现了该操作系统下的所有东西,对!所有!想体验下 Windows 95 版的扫雷吗?下载安装即可

Objective-C 项目
16、LuLu:免费开源的 macOS 防火墙软件

PHP 项目
17、humhub:用 PHP 写的开源社交平台。看过《社交网络》的小伙伴,都知道大名鼎鼎的 Facebook 最早就是扎克伯格用 PHP 语言写出来的,humhub 能够让不会编程的小伙伴也可以用创建出一个社交平台啦。跟着提示一步步操作,不到 1 分钟我的社交平台就建好了,点击访问

18、phpbrew:一个编译、安装、管理多版本 PHP 的工具。有了它就可以方便地在不同 PHP 版本之间自由切换啦,特性:
- 配置选项简化为 Variants 无需担心路径问题
- 集成至 bash/zsh 等,易于切换版本
- 易于安装、启用 PHP 扩展
Python 项目
19、python-patterns:Python 设计模式和使用场景的集合

20、pgcli:支持语法高亮和自动补全的 Postgres 数据库客户端命令行工具。它安装简单上手快速,如果你用过 Postgres 数据库自带的命令行工具,就一定能感受到 pgcli 的迷人之处

21、15-minute-apps:基于 PyQt 框架写的小型桌面应用程序的集合。想用 Python 写桌面应用的小伙伴,这个项目应该可以帮到你。比如写个扫雷游戏:

Swift 项目
22、Pine:一个免费、轻量、简洁的 macOS Markdown 编辑器。功能:
- 主题
- LaTex 公式
- 自动保存
- 自定义字体
- 字数统计等写作分析
- 等等

23、Publish:专为 Swift 开发人员准备的静态网站生成器。让你实现整个网站都是用 Swift 构建的工具,支持多种主题、插件以及更多强大的自定义选项。示例网站,安装和快速开始:
$ git clone https://github.com/JohnSundell/Publish.git
$ cd Publish
$ make
$ mkdir MyWebsite
$ cd MyWebsite
$ publish new

其它
24、open-source-rover:NASA 面向科技爱好者开源的火星漫游车设计方案和代码。通过该项目你可以使用便宜的树莓派做出自己的火星漫游车,所需的零件很容易就可以买到,遥控部分是使用现成的 Xbox 手柄或者手机,减少花销。喜欢动手和硬件的小伙伴们,这个东西够酷吗?

25、bat:替代 cat 的命令行工具。你还在命令行用 cat 查看文件吗?那你就 out 啦!今天推荐的 bat 它不仅支持语法高亮,还能展示 Git 的改动。macOS 下安装命令:brew install bat 相信你用过 bat 后就不会再想用回 cat 了

26、Web-Dev-For-Beginners:微软开源的 Web 开发教程。该教程共有 24 节课,但目前只有英文版

27、neofetch:展示操作系统信息的命令行工具,支持将近 150 种操作系统

28、jpeg_tutorial:教你编写 JPEG 解码器的教程,示例为 Rust 代码
29、sql-style-guide:一份 SQL 语句编写风格建议。比如:
-- Good
select *
from users
where email = 'example@domain.com'
-- Bad
select *
from users
where email = "example@domain.com"
开源书籍
30、pure-bash-bible:该书有好多复制就能用的 bash 函数,我愿称其为 bash 的“奇技淫巧”。比如把字母转为大写的函数:
upper() {
# Usage: upper "string"
printf '%s\n' "${1^^}"
}
$ upper "hello"
HELLO

机器学习
31、pulse:根据包含马赛克的人脸图像,生成一张相似容貌的结果。注意不是复原哦,仅可用于人脸

32、Surface-Defect-Detection:该项目整理了目前大量靠谱的表面缺陷检测数据集,还有最新的顶会论文以及作者的解读笔记。从事视觉方向的小伙伴,心动了吗?

最后
如果你发现了 GitHub 上有趣的项目,欢迎在 HelloGitHub 项目提 issues 告诉我们。
关注「HelloGitHub」公众号,第一时间收到推送
《HelloGitHub》第 57 期的更多相关文章
- 「NGK每日快讯」12.30日NGK第57期官方快讯!
- 《HelloGitHub月刊》第01期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 《HelloGitHub月刊》第 01 期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]
家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...
- HelloGithub
<HelloGithub月刊>第一期 <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...
- 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈
万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...
- 资源描述结构(Resource Description Framework,RDF)
资源描述框架(Resource Description Framework),一种用于描述Web资源的标记语言.RDF是一个处理元数据的XML(标准通用标记语言的子集)应用,所谓元数据,就是" ...
- java秀发入门到优雅秃头路线导航【教学视频+博客+书籍整理】
目录 一.Java基础 二.关于JavaWeb基础 三.关于数据库 四.关于ssm框架 五.关于数据结构与算法 六.关于开发工具idea 七.关于项目管理工具Mawen.Git.SVN.Gradle. ...
- java入门到秃路线导航,元芳你怎么看?【教学视频+博客+书籍整理】
目录 一.Java基础 二.关于JavaWeb基础 三.关于数据库 四.关于ssm框架 五.关于数据结构与算法 六.关于开发工具idea 七.关于项目管理工具Mawen.Git.SVN.Gradle. ...
随机推荐
- fist-第九天冲刺随笔
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- 不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8
不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8 简介:为什么要强调 书写规范 ?这其实并不关乎"美丑",而是为了 更高的效率(代码阅读.开发.维护 ...
- Javascrip之BOM
重点内容 理解windows对象-BOM核心 控制窗口.框架.弹出窗口 利用location对象中的页面信息 利用navigator对象了解浏览器 BOM:浏览器对象模型[Browner Object ...
- pytorch实战(二)hw2——预测收入是否高于50000,分类问题
代码和ppt: https://github.com/Iallen520/lhy_DL_Hw 遇到的一些细节问题: 1. X_train文件不带后缀名csv,所以不是规范的csv文件,不能直接用pd. ...
- IDM 6.37.8 绿色特别版 (4月4日更新)
Internet Download Manager,全球最流行的下载工具.Internet Download Manager (简称IDM) Windows 平台功能强大的多线程下载工具,国外非常受欢 ...
- Go-数据类型-字符串-string
字符串 -- string 字符串使用双引号表示 " " 多行或原始字符串(反斜杠失去转义行为)使用 反引号 `` 字符使用单引号表示 ' ',表示单独的字母.中文.数字 字符串转 ...
- 对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考
一:背景 1. 讲故事 这段时间项目延期,加班比较厉害,博客就稍微停了停,不过还是得持续的技术输出呀! 园子里最近挺热闹的,精致码农大佬分享了三篇文章: 为什么要小心使用 Task.Run [http ...
- cglib、orika、spring等bean copy工具性能测试和原理分析
简介 在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO.DTO.Entity.DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护.通常情况下,这 ...
- js之数组乱序
这是最近面试遇到的,不过忘记了,之前也有印象刷到过这道题,就再次记录一下加深印象吧,听到最多的答案是利用sort方法,不过也有说这种方法不好,利用了快排和插入排序,那就整理下吧 <!DOCTYP ...
- 记一起由 Clang 编译器优化触发的 Crash
摘要:一个有意思的 Crash 探究过程,Clang 有 GCC 没有 本文首发于 Nebula Graph 官方博客:https://nebula-graph.com.cn/posts/troubl ...