HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

时间:2022-11-12 13:11:19

兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣!

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

简介

分享 GitHub 上有趣、入门级的开源项目。

这是一个面向编程新手热爱编程对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编程语言的项目让生活变得更美好的工具书籍、学习笔记、教程等,这些开源项目大多都是非常容易上手,而且非常 Cool。主要是希望大家能动手用起来,加入到开源社区中。

  • 会编程的可以贡献代码
  • 不会编程的可以反馈使用这些工具中的 Bug
  • 帮着宣传你觉得优秀的项目
  • Star 项目️

在浏览、参与这些项目的过程中,你将学习到更多编程知识提高编程技巧找到编程的乐趣

最后 HelloGitHub 这个项目就诞生了


以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容

C 项目

1、htop:交互式进程查看工具,可代替 top 命令。用了这库后,我基本不用 top 命令了

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

C# 项目

2、ToolGood.Words:一款高性能非法词、敏感词检测库。还支持繁体简体互换、获取拼音首字母、获取拼音字母、拼音模糊搜索等功能

string s = "中国|国人|zg人";
string test = "我是中国人"; StringSearch iwords = new StringSearch();
iwords.SetKeywords(s.Split('|')); var b = iwords.ContainsAny(test);
Assert.AreEqual(true, b); var f = iwords.FindFirst(test);
Assert.AreEqual("中国", f); var all = iwords.FindAll(test);
Assert.AreEqual("中国", all[0]);
Assert.AreEqual("国人", all[1]);
Assert.AreEqual(2, all.Count); var str = iwords.Replace(test, '*');
Assert.AreEqual("我是***", str);

C++ 项目

3、workflow:搜狗开源的 C++ 服务器引擎。支撑搜狗几乎所有后端 C++ 在线服务,包括所有搜索服务、云输入法、广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数 C++ 后端开发需求

CSS 项目

4、flexboxfroggy:一个帮助学习 CSS flexbox 知识的在线游戏。游戏一共 24 关,通俗易懂的解释了 flex 布局。适合初学者,并且支持中文,可以在 settings 中选择语言。在线试玩

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

Go 项目

5、go-diagrams:用 Go 语言画架构图的工具。想画架构图不知道用什么工具?会 Go 的小伙伴可以试试这个库,通过编写 Go 代码来绘制架构图,接口使用方便,但文档太简单了。示例代码:

d, err := diagram.New(diagram.Filename("app"), diagram.Label("App"), diagram.Direction("LR"))
if err != nil {
log.Fatal(err)
} dns := gcp.Network.Dns(diagram.NodeLabel("DNS"))
lb := gcp.Network.LoadBalancing(diagram.NodeLabel("NLB"))
cache := gcp.Database.Memorystore(diagram.NodeLabel("Cache"))
db := gcp.Database.Sql(diagram.NodeLabel("Database")) dc := diagram.NewGroup("GCP")
dc.NewGroup("services").
Label("Service Layer").
Add(
gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 1")),
gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 2")),
gcp.Compute.ComputeEngine(diagram.NodeLabel("Server 3")),
).
ConnectAllFrom(lb.ID(), diagram.Forward()).
ConnectAllTo(cache.ID(), diagram.Forward()) dc.NewGroup("data").Label("Data Layer").Add(cache, db).Connect(cache, db) d.Connect(dns, lb, diagram.Forward()).Group(dc) if err := d.Render(); err != nil {
log.Fatal(err)
}

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

6、gorched:Go 语言写的终端游戏 Scorched Earth。它让我想起了“百战天虫”这款游戏,有同龄人吗?一起来回味下

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

7、ali:能够实时展示分析的压力测试工具。现在压测工具有很多,这款的亮点在于可以在终端实时展示压测过程的曲线。一条命令搞定启动:ali 地址

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

8、ferry:基于 Gin + Vue + Element UI 前后端分离的工单系统。该系统是集工单统计、任务钩子、权限管理、灵活配置流程与模版等等功能, 帮助减少跨部门之间的沟通,提升工作效率与工作质量,减少不必要的工作量与人为出错率

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

Java 项目

9、retrofit-spring-boot-starter:一个适用于 Spring Boot 项目的轻量级 HTTP Web 框架。使用简单方便,支持接口化的方式发送 HTTP 请求。底层使用 Retrofit 实现,并支持了诸多功能特性增强,极大简化开发

/**
* 定义接口
**/
@RetrofitClient(baseUrl = "${test.baseUrl}")
public interface HttpApi { @GET("person")
Result<Person> getPerson(@Query("id") Long id);
} /**
* 注入使用
**/
@Service
public class TestService {
@Autowired
private HttpApi httpApi; public void test() {
// 通过httpApi发起http请求
}
}

10、jmeter:Apache 开源的压力测试工具。提供 GUI 操作界面就是可以点点点操作,也可以写脚本提高测试的自动化,它还不局限于 Web 测试,支持更多压力测试场景。我身边 97% 从事测试相关工作的人都用过它,要不要来看看它的源码?纯 Java 实现

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

11、mybatis-plus:一款好用的 Java 操作数据库框架。MyBatis 增强工具包,提供了一些高效、实用、快捷的功能,使用它可以有效地节省您的开发时间。比如切换数据源,只需修改配置文件

List<User> userList = userMapper.selectList(
new QueryWrapper<User>()
.lambda()
.ge(User::getAge, 18)
);

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

12、BilibiliTask:哔哩哔哩定时自动完成任务项目。该项目借助 GitHub Action 自动完成:每日任务、投币、直播签到等,还可以把运行结果推送到微信,是一个解决重复劳动的有趣项目。按照项目首页的教程,花点时间就能配置好,一劳永逸

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

JavaScript 项目

13、zooming:纯 JS 实现支持移动端的图像缩放库

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

14、AnotherRedisDesktopManager:一款支持多语言、多平台的 redis 桌面管理工具。对比目前其它同类型工具,它拥有更丰富的功能、更高的稳定性和性能,支持集群等功能

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

15、beeplay:让你可以用 JS 写一首“歌”的库。在线尝试,实例代码:

var beeplay = require('beeplay')

beeplay()
.play(null, 2)
.play('D#5', 1/4).play('E5', 1/4).play('F#5', 1/2)
.play('B5', 1/2).play('D#5', 1/4).play('E5', 1/4)
.play('F#5', 1/4).play('B5', 1/4).play('C#6', 1/4).play('D#6', 1/4)
.play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/2)
.play('F#5', 1/2).play('D#5', 1/4).play('E5', 1/4)
.play('F#5', 1/2).play('B5', 1/2)
.play('C#6', 1/4).play('A#5', 1/4).play('B5', 1/4).play('C#6', 1/4)
.play('E6', 1/4).play('D#6', 1/4).play('E6', 1/4).play('C#6', 1/4);

16、vant:由有赞前端团队开源的移动端组件库。目前官方提供了 Vue 版本和微信小程序版本,并由社区团队维护 React 版本。有完善的中英文文档和示例,60+ 高质量组件,90%+ 单元测试覆盖率,持续维护 4 年以上

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

17、Bilibili-Evolved:哔哩哔哩增强浏览器插件。安装插件后可支持:下载视频、删除广告、夜间模式等

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

Python 项目

18、asciinema:终端记录工具。忘记录屏软件吧,纯文本的录制终端操作的工具。安装简单、使用方便,且生成的记录文件极小,但需要配合 JS 文件播放

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

19、playwright-python:微软开源的浏览器自动化工具,可以用 Python 语言操作浏览器啦。支持 Linux、macOS、Windows 系统下的 Chromium、Firefox 和 WebKit 浏览器

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

20、wagtail:目前最强大的开源 Django CMS(内容管理系统)之一。我很少用“最”这个字眼,节省时间就聊聊它惊艳到我的点吧。首先该项目更新、迭代活跃,其次项目首页提到的功能都是免费的,没有付费解锁的骚操作。wagtail 专注于内容管理,不束缚前端实现。有趣的 StreamField 技术让你的内容变得灵活且不失结构,竟然还支持 A/B 测试,最后 Google、NASA 他们都在用这个项目

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

21、redis-memory-analyzer:Redis 实时内存分析工具。我比较好奇它是怎么实时获取 redis 中 key 的情况和信息,就看了下源码 scanner.py 文件。发现是采用 scan_iter 方法,控制扫描 key 返回的量。然后通过 yield 减少内存占用量,最后再加上 register_script 方法调用 Lua 脚本或 pipeline 方法提高获取 key 信息的效率。分析后感觉这个工具可适用在数据量较大的情况,实时性要求在秒或者分钟级的场景下

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

22、practical-python:大佬 David Beazley 开源的 Python 免费入门级教程。他是《Python Cookbook 第三版》、《Python 参考手册》的作者,教程经过实际的教学实践、包含课后练习题。在线学习,教程目录如下:

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

Swift 项目

23、stats:macOS 菜单栏上的监控工具。支持 CPU、GPU、内存、网络等监控和多语言

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

其它

24、ZY-Player:免费无广告、高颜值+多平台的桌面视频资源播放器。功能如下:

  • 全平台支持 Windows、Mac、Linux
  • 视频源支持自定义, 支持导入/导出
  • 播放历史, 自动跳转历史进度
  • 支持精简模式, 摸鱼划水
  • 显示豆瓣评分

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

25、keysim:键盘配色预览工具。“定制”这个操作一听就很贵,下单之前先这个工具先看看效果吧,避免浪费钱。在线尝试

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

26、tabler-icons:一组免费开源的图标。目前共有 850+ 个图标,我觉得都挺好看的,您觉得呢?

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

27、socialify:一键自动生成 GitHub 仓库头图。很多 GitHub 开源项目的作者不会用 PS,想要制作一张项目推广图就很困难,Socialify 就是帮你解决这个头疼的问题。在线尝试

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

开源书籍

28、Mastering_Go_ZH_CN:《Mastering Go》的中文翻译版《玩转 Go》。在线阅读

29、A-Philosophy-of-Software-Design-zh:《软件设计的哲学》中文翻译。在线阅读

机器学习

30、video-object-removal:通过 Pytorch 实现绘制一个边界框,即可删除视频中要删除的对象。下图是演示操作,框中红色是抹掉的部分,删除前后的效果对比图可进到项目首页查看

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

31、mlflow:一个简化机器学习开发的平台,支持跟踪实验、代码打包、部署模型等。它提供了一套轻量级的 API,可与目前主流机器学习 TensorFlow、PyTorch、XGBoost 等库轻松整合

# 安装:$ pip install mlflow
# 启动:$ mlflow ui
# 示例代码
import mlflow
mlflow.keras.autolog()
# other keras code
...

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

32、snownlp:一个 Python 写的自然语言处理库。使用简单、功能强大,支持中文分词、词性标注、情感分析等

from snownlp import SnowNLP

s = SnowNLP(u'这个东西真心很赞')
s.words # [u'这个', u'东西', u'真心',
# u'很', u'赞']
s.tags # [(u'这个', u'r'), (u'东西', u'n'),
# (u'真心', u'd'), (u'很', u'd'),
# (u'赞', u'Vg')]
s.sentiments # 0.9769663402895832 positive的概率

最后

如果你发现了 GitHub 上有趣的项目,欢迎在 HelloGitHub 项目提 issues 告诉我们。

HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?的更多相关文章

  1. 更新啦!第 59 期《HelloGitHub》开源月刊

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  2. 开源月刊《HelloGitHub》第 62 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这里有实战项目.入门教程.黑科技.开源书籍.大厂开源项目等,涵盖多种编程语言 Pyt ...

  3. 有趣的开源项目集结完毕,HelloGitHub 月刊第 63 期发布啦!

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这里有实战项目.入门教程.黑科技.开源书籍.大厂开源项目等,涵盖多种编程语言 Pyt ...

  4. 程序员的开源月刊:HelloGitHub(第 54 期)

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  5. 程序员的开源月刊《HelloGitHub》第61期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 内容包括:有趣.入门级的开源项目.开源书籍.实战项目.企业级项目等,让你在短时间内感 ...

  6. 【Android 开源】:最火的Android开源项目 第02期

    21. drag-sort-listview DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能.重写了TouchIntercep ...

  7. 【Android 开源】:最火的Android开源项目 第01期

    GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造*的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你 ...

  8. 【安富莱原创开源应用第3期】花式玩转网络摄像头之VNC远程桌面版本,稳定运行2年不死机

    说明: 1.前段时间开源了一个网络摄像头的TCP版本 https://www.cnblogs.com/armfly/p/9173167.html,这次再来一个远程VNC的版本.使用更方便,无需大家制作 ...

  9. 【安富莱原创开源应用第2期】基于RL-USB和RL-FlashFS的完整NAND解决方案,稳定好用,可放心用于产品批量

    说明:0. NAND Flash这块经常有人咨询,这里发布一个完整的解决方案,支持擦写均衡,坏块管理,ECC和掉电保护.        早期的时候我们是用的自己做的NAND算法,支持滑块管理,擦写均衡 ...

随机推荐

  1. Swift基础语法(五)枚举、结构体与类的区别

    swift中的结构体值可以是整型.浮点型.字符串.字符.元祖,如果不赋值默认为整型且从0开始计数,如果为整型枚举且要求不是从0开始只需指定枚举的第一个值以后的值自动依次加1 引用方式也与oc有所出入 ...

  2. &lpar;转) windows下 安装 rabbitMQ 及操作常用命令

    该博客转载自:https://blog.csdn.net/gy__my/article/details/78295943 原作者:Eric Li  出处:http://www.cnblogs.com/ ...

  3. JAVA003-变量、数据类型

    一.变量的三个元素:变量名(房间名字).变量类型(房间的类型).变量值(入住的人). 二.变量的命名规则: 1.驼峰法     2.尽量简单,见名知意     3.长度没有限制     4.满足标志符 ...

  4. 网络编程—udp

    一.ip地址 1. 什么是地址 地址就是用来标记地点的 2. ip地址的作用 ip地址:用来在网络中标记一台电脑,比如192.168.1.1:在本地局域网上是唯一的. 3. ip地址的分类 每一个IP ...

  5. &lbrack;leetcode&rsqb;Rotate List &commat; Python

    原题地址:https://oj.leetcode.com/problems/rotate-list/ 题意: Given a list, rotate the list to the right by ...

  6. &lbrack;POI2015&rsqb;Piecz&eogon;&cacute;

    [POI2015]Pieczęć 题目大意: 一张\(n\times m(n,m\le1000)\)的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色. 你有一个\(a\times b(a,b\l ...

  7. mongodb安装及副本集搭建

    mongodb下载地址:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.7.tg ...

  8. JAVA多线程提高三:线程范围内共享变量&amp&semi;ThreadLocal

    今天我们学习的是如何在线程自己的范围内达到变量数据的共享,而各个线程之间又是互相独立开来,各自维护的,即我们说的ThreadLocal的作用. 一.概念 可以将每个线程用到的数据与对应的线程号存放到一 ...

  9. python爬虫:爬取链家深圳全部二手房的详细信息

    1.问题描述: 爬取链家深圳全部二手房的详细信息,并将爬取的数据存储到CSV文件中 2.思路分析: (1)目标网址:https://sz.lianjia.com/ershoufang/ (2)代码结构 ...

  10. Hadoop体系结构

    在前面的博文中,我已经介绍过Hadoop的基本概念了(见博文初识Hadoop),今天来介绍一下Hadoop的体系结构. Hadoop的两大核心是HDFS和MapReduce,而整个Hadoop的体系结 ...