HelloGitHub 第 36 期精选导读:41 个入门级开源项目与月刊背后的自动化工程
技术博客文档知识库【免费下载链接】HelloGitHub:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.项目地址https://gitcode.com/GitHub_Trending/he/HelloGitHub点击查看免费下载本文以 content/en/HelloGitHub36.md中文原版见 content/HelloGitHub36.md为骨架完整梳理 HelloGitHub 第 36 期收录的 41 个开源项目覆盖 C#、C、CSS、Go、Java、JavaScript、Objective-C、PHP、Python、Ruby、Swift、AI、工具与开源书籍等十几个分类逐一说明项目定位、核心功能与可复用的示例代码、命令行操作。同时结合本仓库 script/github_bot/github_bot.py 与 script/make_content/make_content.py 的源码还原项目收集 → 数据过滤 → 月刊生成的自动化流水线让读者既拿到一份可对照检索的项目清单也理解 HelloGitHub 月刊本身是如何被工程化产出的。一、第 36 期概览按语言与主题分层的项目地图第 36 期共推荐41 个项目延续 HelloGitHub有趣、入门级的选品原则按编程语言与主题分为 14 个大类分类项目数代表项目C#1koral新编程语言C1calculator微软计算器CSS2bootstrap-table、CSS-InspirationGo5auxpi、etcd、harness、learn-go-with-tests、pprofJava2Luban、yacy_search_serverJavaScript5griffith、makegirlsmoe_web、ncform、vscode-leetcode、WebObjective-C1BackgroundMusicPHP2PasteMe、php-consolePython7awesome-python-login-model、better-exceptions、dash、ds-cheatsheets、gita、pylane、scrapydwebRuby1jekyllSwift1BagelAI5BigGAN-PyTorch、faceswap、GNNPapers、QuickDraw、VirgilioOther6ChinaMobilePhoneNumberRegex、ChromeAppHeroes、FiraCode、howto-make-more-money、translations、web-frameworksBook2Go42、PythonDataScienceHandbook从分布可以看出这一期的选品倾向实用工具图床、邮件、调试、刷题占比高AI 与数据科学类项目明显增多既有微软、谷歌等大厂开源也有个人开发者的精巧作品。下面按分类逐项展开。二、C#koral——以减少语法负担为设计目标的跨平台语言koral 是一个专注于简单的开源跨平台编程语言设计目标是提升阅读与编写效率、降低语法负担让使用者把注意力放在解决问题上用极少的代码表达逻辑。它提供中文手册并内置了 namespace 导入、package 组织、for-each 循环、switch 分支、lambda 表达式等特性示例代码如下# export namespace \HelloWorld { System # import namespace } # package program - { # main function Main() - () { # list greetings : {Hello, Hola, Bonjour, Ciao, こんにちは, 안녕하세요, Cześć, Olá, Здравствуйте, Chào bạn, 您好} # for-each item - greetings { # switch ? item - [ 0 8 ] { prt(item) # call function } _ { # lambda prt( greetings.filter( {it - it.len 4} ) ) - } } } }从语法形态看koral 去掉了传统语言中大量的括号与关键字噪声用\声明命名空间、:声明变量、开启循环、?开启分支、- 跳出循环。对想了解语言设计如何影响可读性的读者这是一个很好的迷你研究样本。三、Ccalculator——微软 Windows 计算器的开源代码微软将 Windows 系统预装的计算器工具开源提供标准、科学、程序员三种计算器功能以及度量单位换算与货币转换能力。实现语言为 C代码结构并不复杂是阅读微软工程师编码风格的低门槛入口——尤其适合想学习 C 工程结构、数值计算与 UI 解耦的开发者。四、CSS从表格插件到灵感集4.1 bootstrap-table配置驱动的 jQuery 表格插件基于 Bootstrap 的 jQuery 表格插件通过简单的 HTML 属性声明即可获得**单选、多选、排序、分页、编辑、导出、过滤扩展**等功能。其核心用法是在table上声明data-toggletable无需写 JavaScripttable>$ etcdctl put mykey this is awesome $ etcdctl get mykey5.2 auxpi整合主流图床 API 的图床应用基于 API 的简单图床应用整合了主流图床的 API并提供一个 GUI 用于统一管理官方提供一键安装脚本部署简单。5.3 harness基于 Docker 的持续集成平台使用 Go 编写的持续集成平台底层基于 Docker 隔离构建与测试环境适合希望自建 CI 流程的团队研究。5.4 learn-go-with-tests用 TDD 方式学 Go通过单元测试学习 Go 语言下载仓库源码后进入对应目录每一个小文件夹就是一个独立的 Go 项目在其中执行go test即可运行单元测试。由于采用测试驱动开发TDD需要在你改动代码之后跑通测试才算真正学会每个文件夹配套 Markdown 文字教程浅显易懂并有中文版。5.5 pprofGo 程序性能分析三板斧Google 出品的 Go 性能分析工具用于排查内存泄露、goroutine 泄露等问题。文档给出完整的使用流程# 安装 $ go get -u github.com/google/pprof # 生成一个 profile 文件 $ pprof -top [你的 golang 程序二进制文件] profile.pb.gz # 生成火焰图 $ pprof -web [你的 golang 程序二进制文件] profile.pb.gz先采集 profile 数据再用-top查看热点函数排行、用-web输出火焰图是 Go 服务线上排查的标准姿势。六、Java图像压缩与分布式搜索6.1 Luban鲁班逆向推算微信图片压缩算法图片压缩是移动端常见需求。Luban 通过在微信朋友圈发送近 100 张不同分辨率的图片对比原图与微信压缩后的图片逆向推算出微信的压缩算法。示例代码展示的是基于 RxJava 的同步调用方式// 同步调用 Flowable.just(photos) .observeOn(Schedulers.io()) .map(new FunctionListString, ListFile() { Override public ListFile apply(NonNull ListString list) throws Exception { // 同步方法直接返回压缩后的文件 return Luban.with(MainActivity.this).load(list).get(); } }) .observeOn(AndroidSchedulers.mainThread()) .subscribe();通过Luban.with(context).load(list).get()一条链即可完成图片列表的同步压缩并借助observeOn将压缩工作放到 IO 线程、结果回调切回主线程。6.2 yacy_search_server无中央服务器的分布式搜索引擎采用全新搜索方式的搜索引擎软件不需要中央服务器搜索结果来自独立的分布式网络在这样的网络中没有任何单一实体可以决定列出的内容或结果顺序。不同平台的启停方式GNU/Linux启动./startYACY.sh、关闭./stopYACY.shWindows双击startYACY.bat启动、双击stopYACY.bat关闭macOS使用 Mac 应用程序像其他 Mac 应用一样双击启动或停止七、JavaScript从流媒体播放到前端教程7.1 griffith让流式播放变简单无论视频格式是mp4还是hlsGriffith 都能使用**媒体源扩展MSE**实现分段加载等能力提供在线视频播放。示例代码展示其极简接入方式// yarn add griffith import Player from griffith const sources { hd: { play_url: https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_hd.mp4, }, sd: { play_url: https://zhstatic.zhihu.com/cfe/griffith/zhihu2018_sd.mp4, }, } render(Player sources{sources} /)只需一个Player组件 sources配置区分 hd/sd 清晰度即可渲染出支持多清晰度切换的播放器。7.2 makegirlsmoe_web二次元头像生成器动漫角色图片生成工具支持选择发色、发型、眼睛、皮肤、微笑、风格等特征生成二次元图片可自定义生成可爱的二次元头像并提供了在线试玩入口。7.3 ncform配置即表单只需配置相关参数即可生成表单的 UI 组件自带校验规则能满足日常约 90% 的需求。表单开发是 Web 应用中的重体力活ncform 通过配置驱动生成表单显著提升开发效率。7.4 vscode-leetcode在编辑器里刷题让用户在 VS Code 编辑器中练习 LeetCode 习题的插件支持查看高票解答、提交答案、测试答案等把刷题流程收敛到编辑器内是日常刷题与备战校招、社招的高效工具。7.5 Web前端入门图文教程前端入门的图文教程覆盖从 0 到 1 的完整过程内容详细对刚入门前端的同学帮助很大。八、Objective-CBackgroundMusic——macOS 音频管理macOS 音频工具包含三大功能自动暂停音乐例如播放其他音频时、设置各个应用程序的音量、录制系统音频。适合对 macOS 音频框架Core Audio感兴趣的开发者研读。九、PHP文本分享与命令行应用9.1 PasteMe快速分享文本与代码快速分享文本、代码的网站项目支持加密、一键复制、永久保存、阅后即焚等功能并提供在线示例站点。9.2 php-console功能全面的 PHP 命令行应用库使用简单、功能全面的 PHP 命令行应用库提供控制台参数解析、命令运行、颜色风格输出、用户信息交互等功能是构建 PHP CLI 工具的基础设施。十、Python爬虫、可视化与调试的七件套10.1 awesome-python-login-model各大网站登录方案收集收集了各大网站登录方式与部分网站的爬虫程序登录实现包含selenium 登录、通过抓包直接模拟登录等有助于新手研究、编写爬虫。10.2 better-exceptions更漂亮的 Python 异常让 Python 异常输出更加友好、实用、漂亮把冗长的 traceback 渲染成易于定位问题的形式适合日常开发调试。10.3 dash几百行 Python 做出数据可视化只用几百行 Python 代码即可实现数据分析可视化是 Python 社区数据可视化的主要工具之一特点为使用简单、易于扩展、开发团队活跃。它把 Flask 后端与 React 前端封装成纯 Python 的声明式 API。10.4 ds-cheatsheets数据科学速查表Python 在数据科学方面常用库的速查表覆盖Pandas、Jupyter、SQL、Dask等。虽然都是基础 API 调用但用于备忘和速查足够。10.5 gita多仓库 git 管理工具基于 Python 的 git 管理工具使用后可在任何目录下代理执行 git 指令同时支持同时显示多个 repo 的状态信息、本地分支与远程分支的关系适合同时维护多个项目的开发者。10.6 pylane基于 gdb 的 Python 进程注入与调试基于 gdb 的 Python 进程注入和调试工具通过 gdb trace Python 进程然后在该进程的 Python VM 中动态注入一段 Python 代码从而对运行中的 Python 进程执行任意逻辑。可用于线上问题排查无需重启进程即可探查运行时状态。10.7 scrapydwebScrapy 爬虫管理平台Scrapy 爬虫管理平台支持Scrapyd 集群管理、日志可视化、定时任务、邮件通知、移动端 UI把分散的 Scrapyd 实例纳入统一的可视化管理。十一、Rubyjekyll——零数据库的静态博客生成器强大的静态博客网站生成工具无需数据库通过 Markdown 与 Config 即可生成静态博客项目成熟、社区活跃、主题丰富可借助 GitHub Pages 免费部署上线。文档给出的快速开始流程1. 安装 jekyllgem install bundler jekyll 2. 创建项目jekyll new my-awesome-site 3. 进入新创建的项目cd my-awesome-site 4. 本地运行bundle exec jekyll serve 5. 本地访问地址http://localhost:4000先安装 bundler 与 jekyll再jekyll new生成站点骨架bundle exec jekyll serve即可在本地 4000 端口预览。十二、SwiftBagel——零配置的 iOS 网络调试小型、原生的 iOS 网络调试工具不需要配置证书或代理只要 iOS 设备与 Mac 处于同一网络即可查看、监控 App 的网络流量等信息极大降低移动端抓包的门槛。十三、AI从 GAN 训练到学习路径13.1 BigGAN-PyTorch摆脱 TPU 束缚的 GAN 训练Bye Bye TPU——只需4 到 8 个 GPU即可训练 BigGAN摆脱算力束缚让个人研究者也能复现大规模 GAN 的训练。13.2 faceswap图片与视频换脸对图片和视频进行换脸的工具可以很方便地处理图片和视频素材。13.3 GNNPapers图神经网络论文清单卷积神经网络多用于规则的空间结构数据如图像而现实中大量数据不具备规则空间结构由此催生了处理这类数据的网络模型GNN图神经网络。该项目列举了 GNN 方面的论文较为全面适合有一定基础的读者。13.4 QuickDraw用 Python 复刻谷歌涂鸦猜词游戏谷歌开发的流行在线游戏神经网络会猜测你在画什么并从每幅图画中学习以提升正确率。现在可以基于该仓库用 Python 构建自己的 Quick Draw 游戏。13.5 Virgilio三大领域的学习路径为机器学习、商业智能、云计算三个领域提供有机完整的学习路径帮助读者理解原理并在项目实践中运用。这些路径不需要前置知识但基础编程和简单数学是理解和实践多数概念的必要条件。十四、Other正则、插件、字体与框架对比ChinaMobilePhoneNumberRegex一组匹配中国大陆手机号码的正则表达式拿来即用。ChromeAppHeroes优秀、实用的 Chrome 插件集合并包含中文使用介绍让好插件被更多人发现和使用。FiraCode专为程序员打造的开源等宽字体核心魅力在于编程连字功能——智能地将代码中常见的多个符号如!或自动合并成单个易读符号让代码在视觉上更整洁优雅。howto-make-more-money介绍程序员如何利用技能获取额外收入的思路合集。translations一些不错的英文资料、文章翻译项目汇总。web-frameworks不同编程语言 Web 框架的性能对比持续更新可作为挑选 Web 框架的参照信息。十五、Book两本开源书籍Go42《Go 语言四十二章经》Golang 入门书籍作者总结了自己踩坑的经验与思考支持在线阅读。PythonDataScienceHandbook英文原版《Python Data Science Handbook》对希望或已经从事数据科学相关工作的 Python 工程师是重要的学习手册。十六、月刊背后的自动化从 GitHub 数据到 Markdown 成刊第 36 期这类月刊并不是纯手工撰写本仓库内置了两套自动化脚本构成了收集 → 过滤 → 排版 → 生成的流水线从源码角度可以印证月刊内容的生产方式。16.1 github_bot.py项目收集与热点筛选script/github_bot/github_bot.py 负责每日收集 GitHub 上的优秀项目核心流程如下拉取事件流调用 GitHubreceived_eventsAPIget_data/get_all_data文档注释标明 GitHub 规定默认每页 30 条、最多获取 300 条脚本通过循环 10 页拉满上限。条件过滤check_condition只保留WatchEvent类型且action started的 star 事件同时排除自己的项目ACCOUNT[username] not in data[repo][name]并把时间限制在DAY 1天之内源码中DAY 1。按 star 数排序get_stars通过 repo URL 二次请求stargazers_count与临界值STARS 100比较——star 数不低于临界值或获取失败置为-1的项目才会进入候选列表最后按 star 数从高到低排序。邮件推送send_email把候选项目渲染成 HTML 表格CONTENT_FORMAT通过 QQ 邮箱的SMTP_SSLhostsmtp.qq.com、port465发送今日 GitHub 热点邮件收件人由RECEIVERS配置。依赖极简script/github_bot/requirements.txt 仅声明requests一个第三方库。配置项集中在脚本顶部ACCOUNTGitHub 账号、MAIL发件邮箱与 SMTP 参数、RECEIVERS收件列表、DAY回溯天数、STARS项目 star 临界值运行方式为python github_bot.py。16.2 make_content.py月刊统一模板生成script/make_content/make_content.py 用于生成月刊由于每期格式统一若修改通用部分需手动改每一期因此脚本通过模板 内容占位符的方式批量产出模板文件template.md中包含两个占位符{{ hello_github_num }}期号与{{ hello_github_content }}当期正文每期的正文存放在对应期号的content{期号}.md文件中执行python make_content.py 期数时脚本读取模板用期号替换NUM_FLAG再读取当期正文替换CONTENT_FLAG最终写出HelloGitHub{期数}.md传入all则遍历目录批量重新生成所有期make_all_content会跳过含script的目录。也就是说content/en/HelloGitHub36.md 正是这套模板替换流水线的产物之一其结构导读 → 目录 → 按语言分类的正文 → 页脚导航与模板完全一致。十七、如何继续阅读本仓库本仓库按期存放全部月刊中文版位于 content 目录如 content/HelloGitHub35.md、content/HelloGitHub37.md英文版位于 content/en 目录仓库总览见 README.md。如果你想复刻项目收集 月刊生成的完整链路可以分别阅读并运行上述两个脚本注意 make_content.py 需要在项目根目录下执行。第 36 期展示的这 41 个项目从新编程语言到微软计算器、从 etcd 到微信压缩算法逆向、从 AI 生成到调试工具覆盖了开源世界的多个切面——按分类挑一个感兴趣的项目深入源码就是最好的入门路径。赞分享技术博客文档知识库【免费下载链接】HelloGitHub:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.项目地址https://gitcode.com/GitHub_Trending/he/HelloGitHub点击查看免费下载相关推荐HelloGitHub 第 36 期月刊全解读41 个入门级开源项目精选指南HelloGitHub 第 36 期月刊全解读41 个入门级开源项目精选指南 本文完整解析《HelloGitHub》第 36 期月刊围绕 41 个有趣、入门技术博客文档知识库HelloGitHub 第 119 期月刊精选41 个入门级开源项目全解读HelloGitHub 第 119 期月刊精选41 个入门级开源项目全解读 《HelloGitHub》第 119 期月刊如期而至本期共收录 41 个有趣、入技术博客文档知识库《HelloGitHub》第 64 期全解读41 个入门级开源项目精选与月刊生成机制《HelloGitHub》第 64 期全解读41 个入门级开源项目精选与月刊生成机制 《HelloGitHub》是每月 28 号更新发布的开源项目月刊专注分技术博客文档知识库上一篇探索式网络攻防模拟揭秘CyberBattleSim如何革新网络安全研究下一篇LOLBAS项目人工智能安全AI模型防护创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →