热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员经常看的开源月刊《HelloGitHub》第56期

兴趣是最好的老师,HelloGitHub就是帮你找到兴趣!简介分享GitHub上有趣、入门级的开源项目。这是一个面向编程新手、热爱编程、对开源社区感

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



简介

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

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


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

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

🎉 最后 HelloGitHub 这个项目就诞生了 🎉




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



C 项目

1、ucore:清华大学操作系统课程,配套实验项目。推荐给有计算机结构原理、C 和汇编、数据结构基础并对操作系统感兴趣的同学,项目中包含教学视频、练习题、实验指导书等


C# 项目

2、RevokeMsgPatcher:适用于 Windows 系统下电脑版微信、QQ 的防撤回工具

3、ContextMenuManager:一个纯粹的 Windows 右键菜单管理程序。功能:


  • 启用或禁用文件、文件夹、新建、发送到、打开方式等右键菜单项目
  • 右键菜单项目进行修改名称、修改图标、导航注册表位置、永久删除等操作
  • 右键菜单自定义添加项目,自定义菜单命令


C++ 项目

4、spdlog:快速、上手简单的 C++ 日志库。示例代码:

#include "spdlog/spdlog.h"int main()
{spdlog::info("Welcome to spdlog!");spdlog::error("Some error message with arg: {}", 1);spdlog::warn("Easy padding in numbers like {:08d}", 12);spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);spdlog::info("Support for floats {:03.2f}", 1.23456);spdlog::info("Positional args are {1} {0}..", "too", "supported");spdlog::info("{:<30}", "left aligned");spdlog::set_level(spdlog::level::debug); // Set global log level to debugspdlog::debug("This message should be displayed.."); // change log patternspdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");// Compile time log levels// define SPDLOG_ACTIVE_LEVEL to desired levelSPDLOG_TRACE("Some trace message with param {}", 42);SPDLOG_DEBUG("Some debug message");
}

5、srpc&#xff1a;搜狗基于 C&#43;&#43; Workflow 的高性能 RPC 框架。与 thrift/brpc 协议兼容&#xff0c;支持 protobuf/thrift IDL一键迁移&#xff0c;核心代码量仅 1w 行。示例代码&#xff1a;

class ExampleServiceImpl : public Example::Service
{
public:void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override{response->set_message("Hi, " &#43; request->name());}
};int main()
{SRPCHttpServer server;ExampleServiceImpl impl;server.add_service(&impl);server.start(1412);pause();server.stop();return 0;
}
访问&#xff1a;
curl 127.0.0.1:1412/Example/Echo -H &#39;Content-Type: application/json&#39; -d &#39;{message:"from curl",name:"CURL"}&#39;


CSS 项目

6、tailwindcss&#xff1a;基于比组件更小、更灵活的工具类&#xff08;utility-first&#xff09;思想的 CSS 框架。这个思想简单来说就是用 class 保证灵活、便于自定义组件&#xff0c;而不是在组件基础上实现个性化。网上对这个框架褒贬不一&#xff0c;但我觉得挺好想学一下


Go 项目

7、inlets&#xff1a;基于 Go 实现的免费内网穿透服务&#xff0c;即将本地服务暴露到公网。如果觉得之前的内网穿透工具不好用、还贵的话&#xff0c;可以试试这个项目&#xff0c;使用说明

8、syncthing&#xff1a;一个采用 Go 语言编写的免费、跨平台的文件同步工具。它不需要安装&#xff0c;只需要下载对应系统的压缩包解压后就可以直接运行和使用。拥有命令行、Web 和桌面程序多种操作模式&#xff0c;同时支持内网和互联网的文件同步&#xff0c;可以用来搭建私有网盘。又一个代替付费网盘的选择&#xff0c;如果考虑到昂贵的宽费用。可以把 syncthing 做为局域网下手机、电视和电脑共享文件的开源解决方案

9、lazykube&#xff1a;支持鼠标操作和管理 K8s 的命令行工具。对比 k9s 命令行工具&#xff0c;可以不用去记那么多快捷键&#xff0c;直接用鼠标操作。解决公司不使用 rancher 和 dashboard 管理 K8s&#xff0c;只能通过堡垒机访问的场景。使用该工具只需要终端和鼠标&#xff0c;当然用到搜索功能时还是需要键盘的 &#x1f602;

10、go-zero&#xff1a;一个可靠的 Go 语言 Web 和 RPC 框架。就算是 Go 新手基于该框架&#xff0c;也可以快速写出高性能可扩展的微服务。示例代码&#xff1a;

func main() {flag.Parse()var c config.Configconf.MustLoad(*configFile, &c)ctx :&#61; svc.NewServiceContext(c)server :&#61; rest.MustNewServer(c.RestConf)defer server.Stop()handler.RegisterHandlers(server, ctx)server.Start()
}


Java 项目

11、Mindustry&#xff1a;一款 Java 编写的免费沙盒塔防游戏。支持多平台&#xff1a;Windows、Linux、macOS、Android

12、fiction_house&#xff1a;一个基于 SpringBoot 实现的小说和漫画在线阅读网站。网站功能齐全、资源丰富&#xff0c;同时支持 Web、安卓、微信小程序多平台。服务端分为网站和管理后台&#xff0c;采用 SpringBoot、MyBatis、MySQL、Redis 等技术实现&#xff0c;可当作 Java 新手实战项目学习


Javascript 项目

13、AdminLTE&#xff1a;基于 Bootstrap 4.5 和 jQuery 的管理后台模板

14、blockly&#xff1a;不会编程也可以写代码&#xff0c;通过拖拽模块自动生成代码的 Web 编辑器。谷歌开源的一个可视化编程的前端项目&#xff0c;支持自动生成&#xff1a;Python、Javascript、PHP 等编程语言的代码&#xff0c;在线尝试的地址网络不好&#xff0c;可以通过 npm install blockly 安装后使用和学习

15、screenity&#xff1a;一个强大的屏幕录制和标注的 Chrome 插件。特性&#xff1a;


  • &#x1f3a5; 可以录制任何应用的内容&#xff0c;包含“色相头”
  • ✏️ 在屏幕上的任何地方&#xff0c;添加文本和箭头等注释
  • &#x1f440; 突出你的点击操作、光标
  • &#x1f4be; 支持导出为 mp4、gif 等常用格式
  • ✂️ 修剪或删除录像

16、vue-luck-draw&#xff1a;一个基于 Vue 的大转盘/九宫格抽奖插件。在线尝试&#xff0c;特性&#xff1a;


  • 可自由配置奖品、中奖概率等
  • 支持同步、异步式抽奖
  • 适配移动端
  • 等等

17、piano&#xff1a;基于 Omi 和 Omi Snippets 构建的钢琴应用。你不需要懂乐理知识&#xff0c;仅用键盘即可弹奏简单而熟悉的音乐&#xff0c;也借此项目感谢音乐和编程的陪伴&#xff01;也致敬各位奋斗于 996 的代码家和打工人&#xff0c;音乐不曾辜负任何人&#xff0c;正如 Leehom Wang 歌曲中唱到&#xff1a;如果世界太危险&#xff0c;只有音乐最安全&#xff0c;带着我进梦里面&#xff0c;让歌词都实现&#xff01;上面这段是作者写的推荐语&#xff0c;我本来想从项目的角度再夸下这个项目&#xff0c;但我放弃了。虽然我之前推荐过的那个钢琴项目弹的比这个要好听&#xff0c;但我更喜欢这个项目。因为我从他的项目中感受到满满敬意和“爱”&#xff0c;致敬每一位奋斗的“代码家”&#xff0c;HG 爱你们。在线尝试&#xff0c;示例代码&#xff1a;

playSong(song) {this.setSong([...song])let offset &#61; 0let time &#61; 0let playSong &#61; async () &#61;> {// 右边是从外部来中断递归if (offset < song.length && this.store.data.song.length > 0) {switch (typeof song[offset]) {// 简谱2演奏方法 根据 &#43;&#43;12345--6. 简单旋律情况case &#39;string&#39;:let letters &#61; song[offset].match(/[0-9]/g)switch (letters.length) {case 1:time &#61; this.handleString(song, offset)breakdefault:time &#61; this.handleStrings(song, offset)break}break// 简谱1演奏方法 根据 CDEFGAB&#xff0c;复杂旋律情况&#xff0c;比如有和弦case &#39;object&#39;:console.log(song[offset][&#39;note&#39;])time &#61; song[offset][&#39;time&#39;];this.playNote(song[offset][&#39;note&#39;])break;case &#39;number&#39;:// 休止符switch (song[offset]) {case 0:time &#61; 1000break}break}await new Promise((resolve) &#61;> {let timer &#61; setTimeout(() &#61;> {clearInterval(timer)resolve()}, time)})offset&#43;&#43;// 自定义事件&#xff0c;跟下面底部的音符自动跳动结合this.add()playSong()} else {// 暂停播放clearTimeout(this.timer)this.store.data.song &#61; []this.store.data.count &#61; 0return}}playSong()
}


Objective-C 项目

18、Sloth&#xff1a;一款 macOS 系统下显示进程打开的文件、socket、管道等信息的工具。就像桌面版的 lsof&#xff0c;快来试试吧


PHP 项目

19、freenom&#xff1a;自动续期 Freenom 免费域名的工具。Freenom 是一个提供免费顶级域名的商家&#xff0c;不过申请的域名需要每年定时续期&#xff0c;否则会被回收。有了这个项目&#xff0c;白 piao 顶级域名就是那么简单


Python 项目

20、running_page&#xff1a;一个展示个人跑步主页的 Python 项目。特性&#xff1a;


  • GitHub Actions 管理自动同步跑步进程及自动生成新的页面
  • Gatsby 生成的静态网页&#xff0c;速度快
  • Mapbox 进行地图展示
  • 支持 Nike、Runtastic、佳明、Keep 的数据
  • 自动备份 gpx 数据&#xff0c;方便备份及上传到其它软件

21、gopup&#xff1a;采集各种权威公开数据的 Python 库。示例代码&#xff1a;

# 安装&#xff1a;pip isntall gopup import gopup as gp
covid_baidu_df &#61; gp.covid_baidu(indicator&#61;"热搜谣言粉碎")
print(covid_baidu_df)

22、flask-state&#xff1a;一款轻便的机器状态监控 Flask 插件。示例代码&#xff1a;

flask_state.init_app(app)
// npm
import &#39;echarts&#39;;
import &#39;flask-state/flask-state.min.css&#39;;
import {init} from &#39;flask-state&#39;;
// Create a DOM node with ID &#39;test&#39;. After init() binds the node, click to open the listening window
init({dom:document.getElementById(&#39;test&#39;)});

23、python-cheatsheet&#xff1a;全面且实用的 Python 备忘录。这个东西特别适合我这个上了年纪的人&#xff0c;比如&#xff1a;忘记怎么用 Python 写正则、要搞个进度条忘记库的名字和基本用法、用 pandas 处理数据忘记方法需要的参数等等。正当我觉得自己需要“回炉重学”的时候发现了这个项目&#xff0c;有了它上面的问题都可以找到拿来即用的代码片段。我又是那个快乐的 Pythoneer 了&#xff0c;示例代码&#xff1a;

# $ pip3 install tqdm
>>> from tqdm import tqdm
>>> from time import sleep
>>> for el in tqdm([1, 2, 3], desc&#61;&#39;Processing&#39;):
... sleep(1)
Processing: 100%|████████████████████| 3/3 [00:03<00:00, 1.00s/it]

Swift 项目

24、eul&#xff1a;一款极简免费的 macOS 状态监控工具。我就在用&#xff0c;强烈推荐给你


其它

25、winapps&#xff1a;一个让你在 Linux (Ubuntu/Fedora) 系统里使用 Windows 办公软件的项目。支持 Microsoft Excel、Word、PowerPoint、Adobe Photoshop 等

26、Front-End-Interview-Notebook&#xff1a;一份非拼凑、优秀的前端面试复习笔记。以提问方式发出问题&#xff0c;并给出了作者的答案&#xff0c;内容涵盖&#xff1a;HTML、CSS、JS、算法、计算机网络等方面。作者拿到了很多大厂 offer&#xff0c;然后把这些东西总结整理下来送给准备面试、换工作的前端小伙伴

27、pi-hole&#xff1a;一个免费开源、部署简单的 DNS sinkhole 项目。没关系&#xff0c;我也不明白 DNS sinkhole 是个啥&#xff0c;就知道用它可实现路由器层屏蔽广告的功能。需要先在树莓派安装这个项目&#xff0c;然后配合支持自定义 DNS 的路由器&#xff0c;就可以实现该网络下的全设备广告自动屏蔽。详细步骤

28、CopyTranslator&#xff1a;支持网页和 PDF 的划词翻译工具。有了它就可以解决阅读 PDF 文件时&#xff0c;要翻译大段内容情况下的乱码、换行、翻译不准的问题

29、styleguide&#xff1a;谷歌的代码风格指南。每个大型项目都有自己的代码风格&#xff0c;当代码的风格统一时将更容易被理解。本项目是谷歌项目的代码风格说明&#xff0c;包含&#xff1a;C&#43;&#43;、C#、Swift、Python、Java 等语言

30、upptime&#xff1a;一个免费开源的网站正常运行时间&#xff08;uptime&#xff09;监控服务。之所没有任何费用是因为实现方法都是完全基于 GitHub 提供的免费服务&#xff0c;比如&#xff1a;使用 GitHub 的 Action 每隔 5 分钟访问一次目标网站&#xff0c;获取网站最新的状态。然后通过 GitHub Issues 记录和报告异常&#xff0c;最后在 GitHub Pages 上可视化展示网站的运行状态。就很“绿色无公害”&#xff0c;我特别喜欢


机器学习

31、examples&#xff1a;关于视觉、本文等方面的 PyTorch 的示例集合。包含&#xff1a;使用 Convnets 的图像分类&#xff08;MNIST&#xff09;、生成对抗网络&#xff08;DCGAN&#xff09;等

32、EasyOCR&#xff1a;支持多种语言的即用型的 Python OCR 库&#xff0c;包括中文、日文、韩文等。示例代码&#xff1a;

import easyocr
reader &#61; easyocr.Reader([&#39;ch_sim&#39;,&#39;en&#39;]) # need to run only once to load model into memory
result &#61; reader.readtext(&#39;chinese.jpg&#39;)
# 输出
[([[189, 75], [469, 75], [469, 165], [189, 165]], &#39;愚园路&#39;, 0.3754989504814148),([[86, 80], [134, 80], [134, 128], [86, 128]], &#39;西&#39;, 0.40452659130096436),([[517, 81], [565, 81], [565, 123], [517, 123]], &#39;东&#39;, 0.9989598989486694),([[78, 126], [136, 126], [136, 156], [78, 156]], &#39;315&#39;, 0.8125889301300049),([[514, 126], [574, 126], [574, 156], [514, 156]], &#39;309&#39;, 0.4971577227115631),([[226, 170], [414, 170], [414, 220], [226, 220]], &#39;Yuyuan Rd.&#39;, 0.8261902332305908),([[79, 173], [125, 173], [125, 213], [79, 213]], &#39;W&#39;, 0.9848111271858215),([[529, 173], [569, 173], [569, 213], [529, 213]], &#39;E&#39;, 0.8405593633651733)]

33、DeepLearningProject&#xff1a;哈佛大学开源的深度学习教程




最后

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


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
author-avatar
乐果Meng_501
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有