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

简介

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

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

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

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

最后 HelloGitHub 这个项目就诞生了


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

C 项目

1、SimpleKernel:一个用来练手的简单内核项目。提供了各个阶段完成度不同的内核,可以选择从自己喜欢的地方开始

2、raspberry-pi-os:基于树莓派的操作系统开发教程(还未完结)。你的树莓派在吃灰吗?把它插上电用来学习开发操作系统吧

C# 项目

3、perfview:微软开源的性能分析工具。配套的教程视频

C++ 项目

4、GuiLite:引用方便的 C++ 全平台 GUI 库。能够使用在 PC 端、移动设备、物联网设备甚至是没有操作系统的单片机,还支持多种开发语言和三方库

5、html-plus-plus:这个库让你可以使用 C++ 模板编写 HTML。HTML 文档被表示为一个单一的、深层嵌套的类型,相当于 HTML 的模版引擎。代码简单可供新手学习和使用,示例代码:

#include <iostream>
#include "html++.h" int main()
{
html<
head<
title<"Help Me.">
>,
body<
h1<"The horror!">,
p<"Someone has probably done this before, but I can see why it didn't catch on.">,
a<"href=https://github.com/csb6/html-plus-plus", "For science">
>
> page; std::cout << page.content;
return 0;
}

Go 项目

6、gotty:能够把终端执行的命令展示到网页上的工具。安装和运行命令如下:

安装:go get github.com/yudai/gotty
运行:gotty [options] <command> [<arguments...>]

7、algo:Golang 程序员面试中的问题和解答集合。该项目目前完成了大部分的数据结构和算法部分,准备相关面试的小伙伴可以阅读学习起来了

8、logrus:可能是 Go 目前最受欢迎的第三方日志库。日志首先要能让人看懂,其次是程序易于处理日志包含的内容,logrus 也许能让你轻松快速实现上述两点

9、websocket:Go 的 websocket 三方库。看看它和标准库的对比,你就知道为什么它会出现在本期月刊中了

Java 项目

10、FlappyBird:Java 标准库实现的 Flappy Bird。优化了游戏难度并加入移动型水管,增加可玩性。没有采用第三方库和游戏引擎、项目结构简单、代码注释完整,适合 Java 初学者做为编程入门实战项目

11、metersphere:一站式的开源企业级持续测试平台。适应场景包括:测试跟踪、接口测试、性能测试等,兼容 JMeter 等开源标准,能够帮助开发和测试团队充分利用云弹性进行高度可扩展的自动化测试。测试同学的福音

12、incubator-iotdb:清华大学软件学院自主研发并开源的时间序列数据管理引擎。能够有效应对工业物联网领域时间序列数量多、写入频率高、数据乱序到达、秒级聚合等场景。官方网站有系统设计文档和使用手册,作为初学者,可以系统的学习数据库系统的完整设计和实现。在 IoTDB 社区可以与国内用户直接交流、收集需求、设计功能、性能优化,每个改进点都可以看到直接效果。还可以体验 Apache 开源软件的工作模式,与世界各地的开发者交流想法,也有机会成为 Apache Committer、PMC 等

13、MyBookshelf:免费开源的安卓小说阅读软件,能够自定义订阅小说数据源。支持:

  • 全局状态栏沉浸
  • 自定义多线程搜索、缓存
  • 支持一键缓存
  • 点击章节名跳转小说目录
  • 自定义字体、阅读背景、文字颜色、背景颜色
  • 等等

14、QMUI_Android:用于辅助快速搭建一个具备基本还原设计效果的 Android 项目。快速搭建一个 Demo App 的必备利器,官网还提供示例 App 下载,感兴趣的小伙伴快去试试吧

JavaScript 项目

15、chrome-extensions-searchReplace:一款搜索并且替换文本的谷歌插件。在做产品 PPT 的时候,需要对某些个页面中的一些名词进行统一替换,这个插件就是为了解决这个问题而诞生的。同时作者也是调研了其他类似功能的插件,它们都包含或多或少的问题,最终作者自己动手做了这个项目。可以说这款替换插件应该就是你最终的选择了

16、apidoc:根据代码中的注释生成 RESTful 风格的 API 文档。注释示例:

/**
* @api {get} /user/:id Request User information
* @apiName GetUser
* @apiGroup User
*
* @apiParam {Number} id User's unique ID.
*
* @apiSuccess {String} firstname Firstname of the User.
* @apiSuccess {String} lastname Lastname of the User.
*/

17、mongo-express:使用 Node.js、Express 和 Bootstrap3 编写的 MongoDB 管理平台

18、Zettlr:开源免费支持多种操作系统的 Markdown 编辑器。如果你想尝试一款新的 Markdown 编辑器,它或许能满足你对编辑器所有想法,如果还不够那就自己动手增加吧

19、leetcode-cli:LeetCode 的命令行工具。之前我们推荐过命令行斗地主、划水逛社区等,真正努力的人用命令行来刷算法题!我颤抖了

Objective-C 项目

20、Zebra:用于越狱的 iOS 设备的软件包管理器

Python 项目

21、ar-cutpaste:AR 拷贝实物照片到 PS 软件的工具。它可以通过 iPhone 或者 Android 手机将真实物品从周围环境中抠出来,并粘贴到 Photoshop 中,未来还会支持其它软件

22、ncmdump:网易云音乐下载的 NCM 文件转化工具

23、nginx-ui:在线修改 Nginx 配置的服务。总的来说还是能减少修改配置出错的概率,而且不用面对漆黑枯燥的命令行了

24、python-dotenv:帮你更好的管理 Python 项目中敏感配置信息的开源三方库。在项目中会有一些数据库、账户、KEY 等敏感信息,这些信息最好不要写在源代码中。为了降低泄漏风险,一般会通过环境变量来设置,这个库可以很方便帮你在 Python 项目中管理这些信息。示例代码:

# 安装:pip install -U python-dotenv
# 目录结构:
.
├── .env
└── settings.py
# 示例代码
# settings.py
import os
from dotenv import load_dotenv
load_dotenv() SECRET_KEY = os.getenv("EMAIL")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")

其它

25、analytics:一个开源的轻量级 Web 访问分析工具。如果你不想侵犯用户的隐私,只获取自己网站访问的基本数据,可以试试这个项目,用来代替谷歌分析

26、data-scientist-roadmap:数据科学技能路线图

27、nvda:一个微软开源的免费 Windows 操作系统的无视觉桌面访问阅读器。通过合成器语音或者盲文点字的反馈,方便盲人和低视力人群使用运行在 Windows 操作系统下运作的电脑。也能够让开发者了解微软的常见的辅助功能接口,如微软 Active Accessibility、Java Access Bridge、IAccessible2 和 UI automation。希望有更多的人了解无障碍,NVDA 中文站

28、LeetcodeTop:国内各大互联网公司常考的 LeetCode 题目

29、git-history:在线查看 GitHub 开源项目中文件的改动历史的工具。使用方法:

1. 打开 GitHub 上任意一个项目的文件
2. 把地址中的 github.com 替换成 githistory.xyz
3. 访问替换后的地址

30、github-readme-stats:在你的 README 中展示动态生成的 GitHub 统计信息。使用简单、样式多样,使用方法:

[![Anurag's github stats](https://github-readme-stats.vercel.app/api?username=521xueweihan)](https://github.com/anuraghazra/github-readme-stats)

替换“521xueweihan”为你的 GitHub 用户名

31、papirus-icon-theme:适用于 Linux 系统的免费开源 SVG 图标主题

机器学习

32、3d-photo-inpainting:一个把单张静态照片转化成 3D 图片的项目。快来尝鲜啦,不要等朋友圈 3D 照片刷屏后才“后知后觉”


最后

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

《HelloGitHub》第 52 期的更多相关文章

  1. F#周报2018年第52期

    新闻 Sudokube--使用Fable开发的数独立方体 Rust 2019年及以后的发展 视频及幻灯片 我爱F#代码 马蒂亚斯·布兰在Developer On Fire上的演讲--有条理的和有趣的 ...

  2. F#周报2019年第51&52期

    新闻 介绍DataFrame 介绍System.Threading.Channels ConfigureAwait常见问题 第三次年度C#降临节 .NET会议--2020年1月14日 如何找到F#的工 ...

  3. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  4. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  5. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  6. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  7. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...

  8. android之简易新闻客户端

    将一个新闻信息保存到一个XML文件中,并将放在服务器下.通过手机客户端来从服务器下载该文件并解析显示. news.xml <?xml version="1.0" encodi ...

  9. android 75 新闻列表页面

    new.xml <?xml version="1.0" encoding="UTF-8" ?> <newslist> <news& ...

随机推荐

  1. 如何去除List集合中重复的元素

    1.通过循环进行删除 public static void removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ...

  2. CentOS7开机报错piix4_smbus ****host smbus controller not enabled

    vi /etc/modprobe.d/blacklist.conf 输入:blacklist i2c_piix4 保存退出::wq 重启:reboot (完)

  3. code first 更新字段

    protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn<string ...

  4. 前端笔记(创建顺序数组、取选中月最后一天日期、判断变量、git命令)

    创建一个从0开始的顺序数组 [...new Array(5).keys()] //[0,1,2,3,4] 数组反向 [0,1,2,3,4,5].reverse() //[4,3,2,1,0] 取选中月 ...

  5. 脱壳实践之寻找OEP——堆栈平衡法

     0x00 前言 上一篇介绍了壳程序的加载过程以及通过两次内存断点法寻找OEP,这篇我们将利用新的的方法——堆栈平衡法来寻找OEP. 0x01 堆栈平衡法原理 堆栈平衡原理就是利用壳程序在运行前后需要 ...

  6. mysql两种重要的引擎

    其中MyISAM:不支持事物,表锁 .frm : 表结构定义文件 .MYD: 表数据 .MYI:索引文件 InnoDB:支持事物,行锁 .frm : 表结构定义文件 .ibd:表空间(数据和索引)

  7. JVM 专题八:运行时数据区(三)虚拟机栈

    2.虚拟机栈 1. 概述 1.1 虚拟机栈出现背景 由于跨平台性的设计,java的指令都是根据栈来设计的.不同平台CPU架构不同,所以不能设计为基于寄存器的. 优点是跨平台,指令集小,编译器容易实现, ...

  8. 05-Python模块

    一.简介 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被其他程序导入来使用模块具有的功能.这也是使用python标准库的方式. import time start_time ...

  9. IE9+的树状下拉菜单,支持多选

    //JS核心代码function treeBox(Config){var el=eval(Config.el);var w=Config.width;var h=Config.height;var d ...

  10. Dresdon简介

    很久没有写文章了.这几年经历了很多事情:离开VMware的不舍,拿到融资的开心,重回VMware的亲切,以及不再争强好胜,只做自己喜欢事情的平和. 可以说,我是幸运的:我这一辈子都在选择,而不是被迫接 ...