爱好是最好的教师,HelloGitHub 让你对编程感爱好!

简介

HelloGitHub 共享 GitHub 上风趣、入门级的开源项目。

github.com/521xueweiha…

这里有实战项目、入门教程、黑科技、开源书本、大厂开源项目等,包含多种编程言语 Python、Java、Go、C/C++、Swift…让你在短时刻内感受到开源的魅力,对编程发生爱好!


以下为本期内容|每个月 28 号更新

C 项目

1、bare-metal-programming-guide:裸机编程攻略。这是一份教你如安在不依赖 IDE 的情况下,进行单片机开发的教程。内容先是介绍了寄存器、向量表、启动代码、链接脚本等常识点,最终完结了一个带设备仪表盘的 Web 服务器。

2、sumatrapdf:免费小巧的开源 PDF 阅读器。这是一款体积小、占用内存少、启动速度快的 Windows PDF 阅读东西,拥有日常所需的一切功用和精约大方的界面,这一切不多不少刚刚好。

3、ZSWatch:自制开源智能手表。该项目是根据开源 Zephyr 的智能手表,设备包含了一个分辨率为 240×240 的 IPS TFT 圆形屏幕和 3 个按钮(上一页/下一页/进入),支撑计步、血氧仪、心率仪、蓝牙等功用。

C# 项目

4、carnac:用于展现键盘按键操作的东西。这是一款能够在桌面实时显现键盘操作记载的东西,多用于演示运用、录制教程等场景,适用于 Windows 7 及以上的操作系统。

5、downkyi:一款多功用的 B 站视频下载东西。这是一款简略易用的哔哩哔哩视频下载东西,它拥有简洁的操作界面,运用起来非常便利。支撑批量下载、音视频提取、去水印等功用。

6、SeeSharpSnake:用 C# 写一个小于 8KB 的贪吃蛇。这个项目的要点不是教你怎么用 C# 写出一个贪吃蛇游戏,而是解说怎样将编译后的 C# 贪吃蛇程序,从开始的 65MB 精简成 8KB 大小、能够独立运转的运用。

# To build the 4.7 MB version of the game
dotnet publish -r win-x64 -c Release /p:Mode=CoreRT
# To build the 4.3 MB version of the game
dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-Moderate
# To build the 3.0 MB version of the game
dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-High
# To build the 1.2 MB version of the game
dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-ReflectionFree
# To build the 10 kB version of the game
dotnet publish -r win-x64 -c Release /p:Mode=CoreRT-NoRuntime

C++ 项目

7、cpp-httplib:一个文件的 C++ HTTP/HTTPS 库。这是一个用 C++11 写的仅头文件、跨渠道的 HTTP/HTTPS 服务器端和客户端库,运用时非常便利,只需在代码中引进 httplib.h 文件。

#define CPPHTTPLIB_OPENSSL_SUPPORT
#include "path/to/httplib.h"
// HTTPS
httplib::Client cli("https://hellogithub.com");
auto res = cli.Get("/periodical");
res->status;
res->body;

8、Ripes:RISC-V 的模拟器和汇编编辑器。该项目能够经过图形化的方法,展现机器代码在各种微架构上运转的过程,可用于探索不同的高速缓存规划对性能的影响等问题。

9、SFML:简略高效的 C++ 多媒体库。这是一个可用来简化游戏和多媒体运用开发的 C++ 库,因其上手门槛低和良好的生态,成为了很多 C++ 新手入门图形化开发的首选。

CSS 项目

10、css:GitHub 开源的规划系统。由 GitHub 规划团队开源和维护的项目,包含了 GitHub 的界面规划原则、运用攻略和开箱即用的 UI 组件。

Go 项目

11、d2:一种可将文本转换为图表的脚本言语。该项目是一种图表脚本言语,可将文本转换为图表。你只需描绘想要的图表,它就会生成对应的图画。

echo 'x -> y' > input.d2
d2 -w input.d2 out.svg

12、grpcurl:相似 cURL 但用于 gRPC 的东西。一款完结与 gRPC 服务器交互的指令行东西,能够轻松请求 gRPC 服务,就像 gRPC 版的 cURL 相同好用。

# 装置
brew install grpcurl
# 运用
grpcurl grpc.server.com:443 my.custom.server.Service/Method

13、shifu:一款云原生物联网开发结构。这是一个生产等级的物联网渠道,它能够将物联网(IoT)设备,封装成 K8s 的最小的可布置的计算单元(pod),直接将设备的能力和数据经过 API 敞开出来,让物联网运用的开发变得更加简略。

cd shifu
# 在集群中装置 Shifu
kubectl apply -f pkg/k8s/crd/install/shifu_install.yml

14、writefreely:一起写作并建立一个社区。这是一个 Go 写的博客渠道,除了能够创立根据 Markdown、极简的独立博客之外,还能够建立相似博客园的博客社区。

15、yao:一款 Go 写的运用引擎。经过该项目最快几分钟,就能从零构建出一套系统,合适用于开发接口服务、办理后台、数据可视化渠道、自建低代码渠道等系统。

Java 项目

16、HummerRisk:云原生安全检测渠道。该项目用非侵入的方法,解决云原生环境的安全和治理问题。支撑主流公/私有云资源的安全检测、漏洞扫描、一键获取陈述等功用。

17、HydraLab:开源的智能移动云测渠道。这是一个根据 Spring Boot+React 构建的云测服务,它布置简略开箱即用,支撑在线办理测验设备、执行测验用例、测验结果可视化等功用。

18、neo4j:现在最盛行的图数据库。它是一款选用 Java 和 Scala 言语开发的原生图数据库,专属的查询言语 Cypher,能够直观且高效地查询和处理数据之间的联系。

JavaScript 项目

19、html2canvas:完结浏览器内截屏的 JavaScript 库。该项目能够让你在浏览器内对整个网页或部分内容进行截图,原理是经过读取 DOM 和样式,将当前页面渲染成一个画布图画。

html2canvas(document.querySelector("#capture")).then(canvas => {
    document.body.appendChild(canvas)
});

20、JavaScript-Algorithms:教你从零构建前端算法系统。学习算法不仅是为了面试,也是每个前端进阶必备的技术之一。该项目包含了前端的进阶算法、常见面试题、手写源码等,帮你构建完好的数据结构和算法的常识系统。

21、pomotroid:视觉上令人愉悦的西红柿时钟。这是一款 Vue 写的拥有超高颜值的西红柿计时器,支撑自定义时刻、回合数、提示音、桌面通知等功用。

22、satori:能够将 HTML 和 CSS 转换为 SVG 的库。由 Vercel 团队开源的可根据 HTML 和 CSS 代码生成 SVG 图画的库。支撑 JSX 语法,运用起来非常便利和顺手。

import satori from 'satori'
const svg = await satori(
  <div style={{ color: 'black' }}>hello, world</div>,
  {
    width: 600,
    height: 400,
    fonts: [
      {
        name: 'Roboto',
        data: robotoArrayBuffer,
        weight: 400,
        style: 'normal',
      },
    ],
  },
)

23、underscore:强壮的 JavaScript 函数库。该库供给了 100 多个实用的函数,包含常用的 map、filter、reduce、invoke 以及更专业的辅佐函数,比如函数绑定、JavaScript 模板功用、创立快速索引等,让我们能够更加便利地在 JavaScript 中完结函数式编程。

// countBy
_.countBy([1, 2, 3, 4, 5], function(num) {
  return num % 2 == 0 ? 'even': 'odd';
});
// 输出:{odd: 3, even: 2}

Python 项目

24、bandit:查找 Python 代码中常见安全问题的东西。该项目是 PyCQA 出品的 Python 代码检测东西,知名的 isort 和 flake8 便是他们开源的。

25、devguide:CPython 开发人员攻略。这份攻略来自 Python 官方,介绍了怎么为 CPython 做奉献,适用于任何阶段的奉献者。

26、Django-Styleguide:Django 运用姿态攻略。这是一份 Django 编码风格攻略,它来自于一线团队的多年经验总结,期望能够协助你构建出更好的 Django 运用程序。

27、numpy-100:Numpy 的练习册。该项目包含了 100 个关于 Python 常用的数据处理库 Numpy 的练习和解决方案。

# How to sum a small array faster than np.sum? (★★☆)
Z = np.arange(10)
np.add.reduce(Z)

28、prefect:Python 的数据流编列渠道。假如将获取、清洗、处理数据的程序当作一个个分散的使命,该项目能够将这些使命整合到工作流中,完结在一个 Web 渠道布置、组织和监控它们的执行。

from prefect import flow, task
@task
def say_hello():
	print("Hello, World! I'm HelloGitHub!")
@flow("Prefect Flow"):
def h_flow():
	say_hello()
# run the flow!
h_flow() # "Hello, World! I'm HelloGitHub!"

Ruby 项目

29、YouPlot:Ruby 写的指令行数据可视化东西。该项目能够在终端里将数据转化成彩色的图表,支撑条形图、直方图、箱型图等类型的图表。

Rust 项目

30、ChatGPT:第三方的 ChatGPT 桌面运用。把 ChatGPT 放到你的桌面,支撑快捷键、斜杠指令、划词搜索、导出记载等实用的功用,适用于 macOS、Windows、Linux 操作系统。

31、gitui:带界面的 Git 指令行东西。该项目为 git 供给了终端界面,让用户能够更加顺畅地运用 git。交互式的操作提示,让你无需再记忆大量的 git 指令。

Swift 项目

32、vimac:用键盘代替鼠标的 macOS 运用。它能够让用户完结仅经过键盘操作苹果电脑,支撑两种操作形式。

  • 激活形式:将屏幕上可点击的位置,映射成键盘按键
  • 翻滚形式:运用 HJKL 按键,可完结区域翻滚

其它

33、cdn-up-and-running:从零开始构建 CDN 的教程。为了让你在实战中学习 CDN 的工作原理,这里会从创立一个单一的后端服务开始,逐步扩展到多个节点、模拟延迟、可视化、可测验的 CDN 服务。因为规划 CDN 会触及 Nginx、Lua、Docker、Grafana 等常识点,所以学习该教程需求有一定的编程基础。

34、fluentui-emoji:一套心爱的 emoji 表情。该项目是微软开源的一套精美、心爱的 emoji 表情包。

35、k8s_PaaS:教你用 K8s 布置一套完好服务的教程。经过该教程你能够学习到怎么布置 Kubernetes 集群,以及在此基础上建立由 Apollo、Jenkins、Prometheus 等服务组成的完好的软件研发和布置渠道。

36、pi-apps:最受欢迎的树莓派运用商铺。这是一款完全免费、开源的树莓派运用商铺,它装置简略运用便利,内置了 200 多个运用程序,支撑 32 位和 64 位的 Raspberry Pi OS。

# 下载
git clone https://github.com/Botspot/pi-apps
# 装置
~/pi-apps/install

37、smiley-sans:一款完全开源、精雕细琢的中文黑体。这款字体名为「得意黑」,整体字身窄而斜,细节融入了取法手绘美术字的特殊造型。支撑简体中文常用字、拉丁字母、阿拉伯数字和各种标点符号。

开源书本

38、essential-netty-in-action:《Netty 实战》精简版。该书是《Netty in Action》的中文精简版,带你快速掌握 Netty。

39、time-as-a-friend:《把时刻当作朋友》。干事不一定要图快,马跑起来比骆驼快,但骆驼一生走过的路却是马的两倍。

机器学习

40、annotated_deep_learning_paper_implementations:深度学习论文的完结集合。这是一个关于神经网络和相关算法 PyTorch 完结的集合,代码里还包含逐行的注释。

41、Chinese-CLIP:OpenAI CLIP 模型中文预练习版别。该项目运用了大规划的中文数据进行练习(~2亿图文数据),供给了多个规划的预练习模型和技术陈述,让运用者仅经过几行代码就能完结中文图文特征提取和图文检索。

import torch
from PIL import Image
import cn_clip.clip as clip
from cn_clip.clip import load_from_name, available_models
print("Available models:", available_models())  
# Available models: ['ViT-B-16', 'ViT-L-14', 'ViT-L-14-336', 'ViT-H-14', 'RN50']
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = load_from_name("ViT-B-16", device=device, download_root='./')
model.eval()
image = preprocess(Image.open("examples/pokemon.jpeg")).unsqueeze(0).to(device)
text = clip.tokenize(["杰尼龟", "妙蛙种子", "小火龙", "皮卡丘"]).to(device)
with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    # 对特征进行归一化,请运用归一化后的图文特征用于下游使命
    image_features /= image_features.norm(dim=-1, keepdim=True) 
    text_features /= text_features.norm(dim=-1, keepdim=True)    
    logits_per_image, logits_per_text = model.get_similarity(image, text)
    probs = logits_per_image.softmax(dim=-1).cpu().numpy()
print("Label probs:", probs)  # 图文匹配概率 [[1.268734e-03 5.436878e-02 6.795761e-04 9.436829e-01]]

42、KuiperInfer:从零编写深度学习推理结构的教程。手把手教你用 C++ 写出一个深度学习推理结构,项目整体风格和结构学习了Caffe。初学者经过该教程不仅能够了解深度学习结构背面的常识,还能够学会怎么上手一个中等规划的 C++ 项目。

最终

假如你发现了 GitHub 上风趣的项目,就点击共享给大家伙吧。

以上便是本期的一切内容了,往期内容点击阅读

感谢您的阅读,假如觉得本期内容还不错的话 求赞、求共享 ❤️