大家好,这里是的Github精彩项目分享周刊,我是每周都在搬砖的蛮三刀酱。
我会从Github热门趋势榜里选出 高质量、有趣,牛B 的开源项目进行分享。
榜单取自实时Github Trending排行榜Top50,也欢迎评论推荐作品。
1. a-picture-is-worth-a-1000-words:一图胜千言
项目介绍
这个项目非常有意思,作者试图用涂鸦来介绍软件开发一些常用的概念和工具,这个仓库名叫a-picture-is-worth-a-1000-words,顾名思义作者力求精简在一张图把一个东西讲清楚。(真的只有一张图啊喂)
作者生活在美国夏威夷檀香山,看来平常也是个艺术家了。
目前主要有三个类别的知识图解:
- Algorithms 算法:包括哈希表,链表等
- Web Development for Beginners Web应用开发
- Machine Learning for Beginners 机器学习
作者还在不断更新中。
项目展示
比如作者画的算法中二叉平衡树:
Web开发中的HTML:
机器学习中的回归算法:
一句话点评
蛮三刀酱:画的很可爱,很精致!作者也很可爱,不过一张图的信息量实在有限,加上目前讲到的知识也不全,真要系统性学习,还得看系统性的教程。
2. Mindustry:开源代码的塔防游戏
项目介绍
一款开源的塔防游戏,采用Java编写。
Mindustry 是一款混合塔防沙盒工厂游戏。 创建精心设计的传送带供应链,将弹药送入您的炮塔,生产用于建筑的材料,并保护您的建筑物免受敌人的攻击。 功能包括地图编辑器、24 张内置地图、跨平台多人游戏和大型 PvP 单位战斗。
重点是:该游戏登陆了多平台,包括Windows,Linux,安卓等,并可以在Steam商店,安卓应用市场等下载。在 Steam 上购买这款游戏可以获得成就、无缝多人游戏和地图浏览/工坊支持等功能。
作者提供了每个平台的源码编译和调试方式,你可以修改源代码,发布属于你自己的定制化游戏。
演示
网友做了一段介绍游戏15个小技巧的视频,可以一览游戏机制。
https://www.youtube.com/watch?v=S5L3gybepiE
一句话点评
蛮三刀酱:像素风的游戏是我的大爱。话说,很少有游戏会用Java来写,毕竟Java并不是天生用来干这个的。不过这款游戏不仅开源,并且质量很高,还登陆了Steam。
3. gitleaks:扫描Git仓库泄露的密码
项目介绍
Gitleaks 可以检测你的 git 仓库中的很多涉及隐私的代码,如不小心写死的密码、api 密钥和token等,帮助你保护隐私,防止泄露。
支持:
- 扫描你的commit
- 扫描本地文件夹和文件
- 使用Github Action来执行,这样每次能自动扫描新的泄露数据
Gitleaks 可以使用 Homebrew、Docker 或 Go 安装,也可以直接在你的 repo 中作为钩子(pre-commit hook)实现。
项目演示
官网做了一个演示视频
https://www.youtube.com/watch?v=VUq2eII20S4
一句话点评
蛮三刀酱:我们都有过在不熟悉Git的情况下,或者不小心提交一些账号密码的代码到公网仓库,这个工具可以很好的扫描甚至拦截你的提交,防止隐私泄露。它做的很完善,你甚至可以放在本机也可以在Github Action里使用。
4. genshin_auto_fish:原神自动钓鱼AI
项目介绍
原神自动钓鱼AI由YOLOX, DQN两部分模型组成。使用迁移学习,半监督学习进行训练。 模型也包含一些使用opencv等传统数字图像处理方法实现的不可学习部分。游戏适用于原神PC版本。
其中YOLOX用于鱼的定位和类型的识别以及鱼竿落点的定位。DQN用于自适应控制钓鱼过程的点击,让力度落在最佳区域内。
项目演示
B站有作者官方的演示视频:
https://www.bilibili.com/video/BV1964y1b7vV
一句话点评
蛮三刀酱:我只能说,玩原神的各个都是大佬!为啥我没咋沉迷原神呢,肯定是我还没有成为大佬。
5. the-art-of-command-line:命令行的艺术
项目介绍
作为后端工程师,日常开发中熟悉一些常用的Linux命令,非常重要。不过如果不是专业的云工程师或者网络工程师,很多时候你的Linux水平也止步于会用些常用命令而已(没错,说的就是我自己),如何能够在Linux使用上更进一步?我觉得这个仓库就蛮合适的,并且还会精简的列出很多你可能不知道的小工具,来实现一些非常常见的操作。
例如以下这段:
- 在当前目录下通过文件名查找一个文件,使用类似于这样的命令:
find . -iname '*something*'
。在所有路径下通过文件名查找文件,使用locate something
(但注意到updatedb
可能没有对最近新建的文件建立索引,所以你可能无法定位到这些未被索引的文件)。- 使用
ag
在源代码或数据文件里检索(grep -r
同样可以做到,但相比之下ag
更加先进)。- 将 HTML 转为文本:
lynx -dump -stdin
。- Markdown,HTML,以及所有文档格式之间的转换,试试
pandoc
。- 当你要处理棘手的 XML 时候,
xmlstarlet
算是上古时代流传下来的神器。- 使用
jq
处理 JSON。- 使用
shyaml
处理 YAML。- 要处理 Excel 或 CSV 文件的话,csvkit 提供了
in2csv
,csvcut
,csvjoin
,csvgrep
等方便易用的工具。- 当你要处理 Amazon S3 相关的工作的时候,
s3cmd
是一个很方便的工具而s4cmd
的效率更高。Amazon 官方提供的aws
以及saws
是其他 AWS 相关工作的基础,值得学习。
一句话点评
蛮三刀酱:精简,实用,这才是CookBook应该有的形态。
结尾
Github精彩项目分享是我新开的一个系列,也是一个全新的尝试,我想把内容尽量提炼和压缩,保证文章的趣味性,并且通俗易懂。
也请大家多多提意见,我会不断地改进。
我是目前在阿里搬砖的工程师蛮三刀酱。
持续的创作离不开你的点赞和转发分享!