Github Daily Trending

发布于

以下是您提供内容的简洁摘要列表:1. Deep-Live-Cam: 这是一个开源工具,利用一张图片就能实现实时换脸和视频深度伪造,主要面向媒体创作,并强调道德使用与内容审查。2. LadybirdBrowser / ladybird: 关于一个正在开发中的、声称是真正独立的网络浏览器项目。3. EbookFoundation / free-programming-books: 这是一个收集和整理免费编程学习资源的开源项目,包括电子书、课程等,由社区维护。4. koreader / koreader: 一款面向电子墨水屏设备及其他平台的开源电子书阅读器,支持多种格式并提供丰富定制功能。5. microsoft / ai-agents-for-beginners: 微软出品的免费入门级课程,共十课,教导如何构建AI Agent,涵盖概念、框架和部署。6. GoogleCloudPlatform / kubectl-ai: Google开发的AI助手,通过自然语言让用户与Kubernetes集群交互,支持多种LLM。7. Atmosphere-NX / Atmosphere: 任天堂Switch的定制开源固件项目,通过模块化组件实现系统功能的修改和增强。8. unionlabs / union: 一个安全的零知识跨链桥协议,采用共识验证机制,旨在服务去中心化金融应用。9. Shubhamsaboo / awesome-llm-apps: 精选的优秀大型语言模型应用集锦,重点展示基于AI Agent和RAG的技术实现。10. juanfont / headscale: 一个开源项目,提供了Tailscale控制服务器的自托管实现,适合搭建私有网络。11. aipotheosis-labs / aci: 开源平台,连接AI Agent到600多个工具集成,提供多租户认证和权限控制。12. CapSoftware / Cap: 开源的屏幕录制工具,作为Loom的替代品,提供macOS和Windows版本,注重简洁和视频分享。13. iluwatar / java-design-patterns: 收集了在Java中实现的各种经典设计模式,是学习和参考设计模式的开源资源。14. donnemartin / system-design-primer: 关于如何设计可扩展大型系统的综合资源,包含面试准备指南、案例分析和抽认卡。15. commaai / openpilot: 这是一个开源机器人操作系统,用于增强300多种汽车的驾驶辅助系统,需要兼容硬件。

hacksider / Deep-Live-Cam

实时换脸和单张图片一键实现视频深度伪造

作者: hacksider | 仓库: Github 链接 | 语言: Python

项目简介

Deep-Live-Cam:实时换脸与视频深度伪造工具

Deep-Live-Cam 是一款强大的开源软件,专注于提供实时人脸交换和“一键式”视频深度伪造功能,仅需一张源图像即可实现。该项目旨在成为AI生成媒体行业的生产力工具,可用于艺术家创作自定义角色、制作引人入胜的内容以及进行服装设计等。

项目强调道德使用,内置了检测机制以防止处理不当内容(如裸露、血腥、敏感材料等)。开发者承诺负责任地开发项目,遵守法律和道德规范,并保留在法律要求时关闭项目或添加水印的权利。用户需自行负责遵守当地法律法规,并在使用他人面部图像时获得许可,分享时明确标注为深度伪造内容。

Deep-Live-Cam 提供了便捷的快速启动版本(适用于 Windows 且拥有 NVIDIA 或 AMD 独立 GPU),特别适合非技术用户。只需三步即可实现实时深度伪造:选择源面部图像、选择摄像头、点击“Live”。

核心功能包括:

  • 口部遮罩(Mouth Mask):保留原始口型以确保唇语同步。
  • 面部映射(Face Mapping):在多个目标对象上同时应用不同的源面部。
  • 实时观看电影:将任意面部应用到视频中实时观看。
  • 实时表演:用于直播和表演。
  • 模因创作:轻松创建病毒式传播的模因。
  • 用于 Omegle 等平台。

对于有技术背景的用户,提供了详细的手动安装指南,支持 Windows、Linux 和 macOS (Apple Silicon/Legacy)。安装过程需要 Python (建议 3.10)、pip、git、ffmpeg 以及相应的 Visual Studio 运行时(Windows),并需下载模型文件。支持多种 GPU 加速,包括 NVIDIA CUDA、Apple Silicon CoreML、Apple Legacy CoreML、Windows DirectML 和 Intel OpenVINO™。

使用方面,支持图像/视频模式和实时摄像头模式。在摄像头模式下,选择源图像后点击“Live”即可在直播或视频会议软件中应用换脸效果。项目还提供了详细的技巧指南,包括如何优化图像、如何在视频通话中使用、应用面部映射、实时观看电影、提升质量以及创建虚拟形象等。

Deep-Live-Cam 作为一款功能强大且易于上手的实时深度伪造工具,在媒体行业具有潜在应用价值,同时也强调了负责任和道德使用的重要性。


LadybirdBrowser / ladybird

真正独立的网络浏览器

作者: LadybirdBrowser | 仓库: Github 链接 | 语言: C++

项目简介


EbookFoundation / free-programming-books

免费的编程书籍

作者: EbookFoundation | 仓库: Github 链接 | 语言: HTML

项目简介

免费编程学习资源列表

这份内容是一个在GitHub上托管的开源项目“EbookFoundation/free-programming-books”的概览。该项目致力于收集并提供免费可用的编程学习资源,包括电子书、速查表、在线课程、交互式教程、习题集和竞赛编程资源,以及播客和截屏视频。这些资源涵盖多种编程语言和主题,并提供多种语言版本。

该项目最初基于StackOverflow上的一个列表,后迁移到GitHub,由非营利组织Free Ebook Foundation管理和维护,该组织致力于推广免费电子书的创建和分发。项目鼓励社区贡献,并提供了详细的贡献指南和行为准则。贡献者可以通过提交Issue(报告问题或建议)和Pull Request(提交修改或新增内容)来参与其中。项目还提供了便捷的搜索功能和一个易于阅读的网站版本。

内容中列出了包括英语在内的多种语言的编程书籍资源,并按编程语言和主题分类。此外,还单独列出了速查表、免费在线课程、交互式编程资源、习题集和竞赛编程资源,以及播客和截屏视频等其他类型的学习资料。这些资源同样按语言进行了划分。

总的来说,该项目是一个庞大的、由社区驱动的免费编程学习资源集合,旨在帮助世界各地的学习者获取知识。


koreader / koreader

一款支持 PDF, DjVu, EPUB, FB2 等多种格式的电子书阅读应用,运行在 Cervantes, Kindle, Kobo, PocketBook 和 Android 设备上

作者: koreader | 仓库: Github 链接 | 语言: Lua

项目简介

Koreader:专注于电子墨水屏设备的通用电子书阅读器

KOReader 是一款开源的电子书阅读应用,主要面向电子墨水屏设备设计,如 Cervantes、Kindle、Kobo、PocketBook 以及 reMarkable 平板,同时也支持 Android 和 Linux 系统。它以其广泛的文件格式支持和丰富的功能而著称。

该应用支持多种固定版式文档(如 PDF, DjVu, CBT, CBZ)和可重排版电子书(如 EPUB, FB2, Mobi, DOC, RTF, HTML, CHM)。对于扫描的 PDF/DjVu 文档,KOReader 集成了 K2pdfopt 库,可以进行重排版,提升阅读体验。它甚至能直接打开 ZIP 格式的压缩文件中的部分文档格式。

KOReader 提供了高度可定制的阅读界面,支持多语言、丰富的排版选项(如设置页边距、行距、使用外部字体和样式),并内置多语言断字词典。它还集成了 calibre(支持搜索元数据、无线传输电子书、浏览 OPDS 图书馆)、Wallabag、Wikipedia、Google Translate 等外部服务,扩展了功能。

针对电子墨水屏设备,KOReader 进行了优化,界面无动画、菜单分页,支持调整文本对比度以及根据内容或页面轻松缩放。其插件机制进一步增强了应用的可扩展性。

与其他阅读软件相比,KOReader 在某些旧设备上翻页速度更快,延迟更低。此外,它还具备许多其他实用功能,例如使用 StarDict 词典或 Wikipedia 查词、添加自定义在线 OPDS 目录和 RSS 源、支持无线软件更新、FTP 客户端和 SSH 服务器。

该项目遵循 AGPL-3.0 开源许可协议,鼓励社区参与贡献,包括修复 bug、实现新功能、翻译以及在论坛上提供支持。


microsoft / ai-agents-for-beginners

构建人工智能代理的 10 堂课

作者: microsoft | 仓库: Github 链接 | 语言: Jupyter Notebook

项目简介

AI Agent 构建入门:微软出品的十堂课

这份资料是微软提供的名为“AI Agents for Beginners”的 GitHub 仓库内容摘要,旨在帮助初学者快速掌握构建 AI Agent 的基本概念和实践。该课程共包含十个课程,内容涵盖了从 AI Agent 的入门介绍到如何在生产环境中部署 AI Agent 的全过程。

课程内容丰富,循序渐进,主要包括:AI Agent 简介及其用例,探索主流的 AI Agent 框架,理解 AI Agent 的设计模式(如工具使用、Agentic RAG、规划设计模式和多 Agent 设计模式),构建值得信赖的 AI Agent,以及 AI Agent 在生产环境中的应用。每个课程都提供了详细的文字说明、配套的 Python 代码示例和教学视频链接,方便学习者深入理解和动手实践。为了满足不同语言背景的学习者需求,课程还提供了包括中文(简体、繁体、香港)、法语、日语、韩语、葡萄牙语、西班牙语、德语、波斯语、波兰语和印地语在内的多语言支持翻译。

该项目使用了 Azure AI Foundry 和 GitHub Model Catalogs 来与语言模型进行交互,并特别提及了 Azure AI Agent Service、Semantic Kernel 和 AutoGen 这三个微软相关的 AI Agent 框架和服务。代码示例支持 Azure AI Foundry 和 GitHub Models。学习者可以通过 Fork 该仓库来运行代码示例。资料中还提供了入门指南、课程所需环境设置的指引以及获取帮助的途径(例如通过 Azure AI Community Discord)。

总而言之,这是一个全面且易于上手的 AI Agent 入门学习资源,通过结构化的课程安排和丰富的实践示例,为希望进入 AI Agent 构建领域的开发者提供了坚实的基础。


GoogleCloudPlatform / kubectl-ai

AI驱动的Kubernetes助手

作者: GoogleCloudPlatform | 仓库: Github 链接 | 语言: Go

项目简介

Kubernetes智能助手:kubectl-ai项目概述

kubectl-ai 是一个由 GoogleCloudPlatform 开发的开源项目,其核心功能是作为 AI 驱动的 Kubernetes 助手运行在终端中。它利用大型语言模型(LLM)的能力,使用户能够通过自然语言指令与 Kubernetes 集群进行交互。

项目的目标是简化 Kubernetes 的操作和管理,特别是对于不熟悉复杂 kubectl 命令的用户。用户可以直接用简单的英语提问或发出命令,kubectl-ai 会理解这些指令,并执行相应的 kubectl 命令,然后提供结果和解释。这种交互模式极大地降低了 Kubernetes 的使用门槛。

kubectl-ai 支持多种 LLM 供应商,包括 Google 的 Gemini(默认)、Azure OpenAI 和 OpenAI。此外,它还支持使用本地运行的 AI 模型,如 ollama 和 llama.cpp,这为用户提供了更大的灵活性和数据隐私控制。

该工具提供了交互式模式,允许用户进行多轮对话,并保持上下文。用户也可以通过命令行直接传递一个任务作为输入,甚至可以通过管道结合其他Unix命令来使用。为了方便用户,kubectl-ai 还内置了一些特殊关键字,如 model 显示当前模型,models 列出可用模型,version 显示版本,reset 清除对话上下文,clear 清除屏幕,以及 exitquit 退出。

作为一个 kubectl 插件,kubectl-ai 可以方便地通过 kubectl ai 命令调用,进一步整合到现有的 Kubernetes 工作流程中。项目还包含一个名为 k8s-bench 的基准测试工具,用于评估不同 LLM 模型在 Kubernetes 相关任务上的表现,并提供了最近一次测试的结果。

总的来说,kubectl-ai 是一个旨在通过集成 AI 技术提升 Kubernetes 用户体验的创新工具,它使得管理和排查 Kubernetes 集群变得更加直观和高效。


Atmosphere-NX / Atmosphere

Atmosphère 是一个正在开发的 Nintendo Switch 定制固件。

作者: Atmosphere-NX | 仓库: Github 链接 | 语言: C++

项目简介

Atmosphere是任天堂Switch(Nintendo Switch)正在开发中的定制固件项目。它的目标是提供一个可定制的系统环境,增强或修改Switch的现有功能。

Atmosphere项目由多个核心组件构成,每个组件负责Switch操作系统不同层面的定制和修改:

  • Fusée:第一阶段加载器,负责加载和验证后续阶段的文件(如自定义的TrustZone),并进行必要的补丁。
  • Sept:用于在特定系统版本上实现运行时密钥派生(runtime key derivation)的Payload。
  • Exosphère:定制的TrustZone,用于运行自定义的Secure Monitor。
  • Thermosphère:支持EL2级别的EmuNAND(虚拟化/重定向的存储镜像)。
  • Stratosphère:自定义系统模块,旨在扩展内核功能、提供新特性或通过hook关键系统行为来实现功能。
  • Troposphère:应用层面的Horizon OS补丁,用于实现定制固件的功能特性。

该项目遵循GPLv2许可协议,同时对任天堂等特定贡献者有豁免条款。项目由核心开发团队(SciresM, TuxSH, hexkyz, fincs)以及众多其他贡献者共同维护和开发,包括switchbrew(提供libnx、文档和工具)、devkitPro(提供工具链和libnx支持)、ReSwitched团队(提供文档、研究和工具)、以及其他在文件系统、硬件、代码优化、图形设计等方面做出贡献的个人和团队。

总的来说,Atmosphere是一个为Switch设计的模块化定制固件,允许技术用户深度定制其设备的系统行为和功能。


unionlabs / union

最小信任、零知识桥接协议,旨在抵抗审查、提供极高安全性,并用于去中心化金融。

作者: unionlabs | 仓库: Github 链接 | 语言: Rust

项目简介

Union 是一个高度安全、抗审查的零知识跨链桥协议,专为去中心化金融应用设计。其核心亮点在于采用“共识验证”机制,摆脱了对可信第三方、预言机、多重签名或多方计算的依赖,极大地增强了协议的信任最小化程度。

Union 协议兼容如 Cosmos 等链,并能连接到 EVM 兼容链,例如以太坊、Berachain、Arbitrum 等。它支持通用消息传递、资产转移、NFT 以及 DeFi 应用。协议的升级、跨链连接和配置演进将通过去中心化治理来控制,确保了协议目标与用户、验证者和运营者的利益一致。

该项目是开源的,拥有庞大的代码库,并提供 Apache-2.0 和 MIT 双许可证。核心组件涵盖多个功能模块,例如:

  • uniond:基于 CometBLS 实现的 Union 节点,使用 Go 语言开发。
  • galoisd:零知识证明实现,结合了 Go 和 Gnark 技术。
  • voyager:高性能的跨生态系统中继器,使用 Rust 语言开发。
  • hubble:多生态系统、支持 GMP 的链索引器,也使用 Rust 语言开发。
  • cosmwasm:基于 CosmWasm 的智能合约堆栈,使用 Rust 开发。
  • light-clients:用于不同生态系统的轻客户端,使用 Rust 开发。
  • unionvisor:用于生产环境的节点监控器,使用 Rust 开发。
  • drip:面向 Cosmos 链的 Faucet,使用 Rust 实现。
  • evm:EVM 智能合约堆栈,使用 Solidity 语言。
  • app:用户前端应用,使用 TypeScript 和 Svelte 开发。
  • site:项目网站,采用 TypeScript 和 Astro 技术。
  • TypeScript SDK:用于与 Union 交互的 TypeScript 开发工具包。

项目提供了便捷的快速上手指南,推荐使用 Nix 来实现可重复构建和管理依赖。开发者可以通过安装 Nix 进入包含所有必要依赖(如 cargo, rustc, node, go 等)的开发环境,从而方便地构建和开发 Union 的各个组件。项目文档详细,每个组件都有相应的开发者文档。Union 在 GitHub 上拥有大量星标和分支,显示出社区的活跃度。

总而言之,Union 是一个前沿的跨链互操作性解决方案,其核心理念在于通过零知识证明和去中心化治理,构建一个安全、去中心化且高效的跨链基础设施,特别适用于 DeFi 应用场景。


Shubhamsaboo / awesome-llm-apps

精选优秀 LLM 应用集锦:利用 AI 代理和 RAG,支持 OpenAI、Anthropic、Gemini 和开源模型

作者: Shubhamsaboo | 仓库: Github 链接 | 语言: Python

项目简介

LLM 应用精选集锦:AI Agent 与 RAG。 该精选集锦旨在收集并展示基于大型语言模型(LLMs)的优秀应用,重点涵盖了使用 Retrieval Augmented Generation (RAG) 和 AI Agents 技术构建的应用。项目中包含了使用多种模型构建的应用示例,如 OpenAI、Anthropic、Google 的模型,以及 DeepSeek、Qwen、Llama 等开源模型,其中一些应用甚至可以在本地运行。

该集锦的价值在于帮助开发者和爱好者发现 LLMs 在不同领域的实际应用方式,例如应用于代码库、电子邮件处理等。特别强调了结合使用不同 LLMs、RAG 和 AI Agents 的应用潜力。通过这些有详细文档的项目,用户可以进行学习并为开源 LLM 应用生态系统做出贡献。

项目还宣布了一项全球性的 AI Agent 黑客马拉松活动,鼓励开发者、构建者和初创公司在 Agent、RAG、工具使用或多 Agent 系统领域进行构建和创新。活动提供现金奖励和合作伙伴提供的 API 及工具使用积分,优秀项目还将有机会在 Awesome LLM Apps 仓库中展示。

精选集锦下的项目按主题分类,主要包括:

  • AI Agents: 分为入门级和高级 Agent 应用,涉及博客转播客、数据分析、医疗影像、旅行规划、金融、房地产、新闻报道等多样化场景,还包含一些自主游戏Agent。
  • 多 Agent 团队: 展示了协同工作的 Agent 团队,例如用于竞争情报分析、财务、游戏设计、法律咨询、招聘等。
  • 语音 AI Agents: 专注于结合语音交互的 Agent 应用,如音频导览和客户支持。
  • MCP AI Agents: 特指适用于特定平台(如浏览器或 GitHub)的 Agent。
  • RAG (Retrieval Augmented Generation): 提供各种 RAG 技术的教程和应用示例,包括 Agentic RAG、混合搜索 RAG、本地 RAG Agent 等。
  • 高级 LLM 应用: 包含“与 X 对话”系列教程(如与 GitHub、Gmail、PDF、YouTube 视频对话)和具有记忆功能的 LLM 应用示例。

项目提供了简单的入门指南,包括克隆仓库、安装依赖和运行项目,鼓励社区贡献。

总的来说,这是一个专注于展示和推广基于 LLMs、RAG 和 AI Agents 的创新应用的资源集合,为开发者提供了学习、探索和贡献的平台。


juanfont / headscale

Tailscale 控制服务器的开源自托管实现

作者: juanfont | 仓库: Github 链接 | 语言: Go

项目简介

Headscale:一个自托管的开源 Tailscale 控制服务器

**核心内容与功能:**Headscale 是一个开源项目,旨在提供一个自托管的 Tailscale 控制服务器替代方案。Tailscale 本身基于 Wireguard 技术构建,是一个现代化的 VPN,其工作原理类似于设备之间的叠加网络,并利用 NAT 穿越技术。

Tailscale 网络的核心是一个控制服务器,负责协调网络中的节点,管理公钥,分配 IP 地址,隔离不同用户网络,实现机器共享以及暴露节点的路由信息。Headscale 正是针对这一控制服务器的开源实现。

目标与适用场景: Headscale 的主要目标是为自托管用户和爱好者提供一个可在个人项目或实验室环境中使用的 Tailsale 控制服务器。它支持建立一个独立的 Tailscale 网络(称为 "tailnet"),这种设计适用于个人用户或小型开源组织的私有网络需求。

项目亮点与特点:

  • 开源自托管: 提供了一个完全由社区驱动的开源解决方案,使用户可以自由部署和管理自己的 Tailscale 网络。
  • 基于现有技术: 构建在成熟的 Wireguard 技术之上,并模仿了 Tailscale 控制服务器的核心功能。
  • 社区活跃: 项目拥有大量的 Star 和 Fork,并且有活跃的贡献者社区,其中包括一名受雇于 Tailscale 但独立贡献的维护者,这有助于项目的可持续发展和与 Tailscale 的兼容性。
  • 详细文档: 提供针对稳定版和开发版的文档,指导用户进行部署和配置。
  • 支持多种客户端: 兼容各种操作系统上的 Tailscale 客户端(除少数专有 GUI 客户端)。
  • 持续发展: 项目不断进行更新和改进,例如近期加入了策略检查命令和对子网路由可见性的优化等。

总而言之,Headscale 为希望在自有基础设施上搭建和管理 Tailscale 网络提供了强大的开源选择,尤其适合对网络控制和数据隐私有更高要求的用户。


aipotheosis-labs / aci

ACI.dev 是一个开源平台,通过多租户身份认证、细粒度权限和直接函数调用或统一 MCP 服务器访问,连接您的 AI 代理与 600 多个工具集成

作者: aipotheosis-labs | 仓库: Github 链接 | 语言: Python

项目简介

ACI.dev 开源平台:连接 AI Agents 与 600+ 工具集成

ACI.dev 是一个开源平台,旨在解决构建生产就绪 AI Agents 面临的基础设施挑战。其核心功能是将 AI Agents 连接到 600 多个工具集成,提供多租户身份验证、精细权限控制,并支持通过直接函数调用或统一的 MCP (Model-Context-Protocol) 服务器进行访问。

平台的主要特点包括丰富的预构建集成,方便快速连接各种流行服务和应用程序。在访问方式上,ACI.dev 提供了灵活性,既可以通过其统一的 MCP 服务器,也可以通过轻量级的 Python SDK 进行直接函数调用。这使得平台能够兼容任何 LLM 框架和 Agent 架构,避免了供应商锁定。

ACI.dev 强调增强 Agent 的可靠性,通过自然语言权限边界和动态工具发现机制,帮助 Agent 更准确地理解和执行任务,同时避免在 LLM 上下文中暴露过多不必要的细节。平台内置的多租户身份验证和密钥管理功能,极大地简化了大规模部署中处理多个用户和服务的认证授权问题。

该平台适用于广泛的用例,例如构建个人助理聊天机器人、研究 Agent、外呼销售 Agent 和客户支持 Agent 等,使 AI Agents 能够与外部世界进行交互和完成复杂任务。ACI.dev 的所有组件,包括后端、开发者门户和集成,都基于 Apache 2.0 许可证发布。

相关资源和链接包括官方网站、文档、可用工具列表、Python SDK 和统一 MCP 服务器的 GitHub 仓库,以及基于 ACI.dev 构建的 Agent 示例。社区支持通过 Discord、Twitter/X 和 LinkedIn 提供。

对于开发者而言,ACI.dev 提供了本地开发环境的设置指南,方便快速上手。项目也欢迎社区贡献,并提供了集成请求模板,鼓励用户提交所需的集成或通过 PR 自行添加。


CapSoftware / Cap

开源的 Loom 替代品。美观、可分享的屏幕录制。

作者: CapSoftware | 仓库: Github 链接 | 语言: TypeScript

项目简介

Cap:一款开源且美观易分享的屏幕录制工具

Cap 是一款开源的视频消息工具,旨在成为 Loom 的替代品。它专注于提供美观、易于分享的屏幕录制体验,使用户能够在几秒钟内完成录制、编辑和分享视频的过程。目前,Cap 提供 macOS 和 Windows 版本的下载。

该项目采用了 Monorepo 架构进行开发,集成了多种技术栈。前端部分使用 Rust、Tauri 和SolidStart 构建桌面应用,并采用 Next.js 构建 Web 应用。共享库则使用了 React,并搭配 Drizzle ORM、MySQL 和 TailwindCSS。整个项目由 Turborepo 进行管理。

项目提供了自托管的选项,并正在准备详细的自托管指南,包括针对 Vercel、Render 的一键部署以及 Docker 部署方式。社区成员可以通过 Discord 参与到自托管功能的完善中。

Cap 遵循 AGPL-3.0 开源许可协议,项目代码托管在 GitHub 上,拥有积极的社区贡献和定期的版本发布。


iluwatar / java-design-patterns

Java 中实现的经典设计模式

作者: iluwatar | 仓库: Github 链接 | 语言: Java

项目简介

项目核心内容及功能概述:Java 设计模式实现

本项目是在 Java 中实现各种设计模式的集合。设计模式是软件开发中解决常见问题的最佳实践,它们能加速开发过程,避免潜在问题,并提高代码的可读性。该项目提供了经过社区有经验的开发者和架构师验证的解决方案。

本项目内容包含多种设计模式的源代码实现,代码注释详细,可以作为学习和理解特定设计模式的教程。项目中使用的是流行的 Java 开源技术。

在深入学习这些设计模式之前,建议先熟悉软件设计原则,秉承简单、必要的原则,只在实际的扩展需求出现时才引入复杂性和设计模式。用户可以通过搜索特定模式名称、使用标签(如性能、设计模式四人组、数据访问)或按照模式类别(创建型、行为型等)来浏览和查找感兴趣的设计模式。

该项目鼓励社区贡献,贡献者可以在开发者维基页面找到相关信息,并在 Gitter 聊天室获得帮助和解答疑问。此外,项目的设计模式内容也已整理成电子书《开源 Java 设计模式》,项目贡献者可以免费获取。

项目遵循 MIT 开源许可证,并由大量社区贡献者共同维护和改进。


donnemartin / system-design-primer

学习如何设计大规模系统。准备系统设计面试。包含 Anki 抽认卡。

作者: donnemartin | 仓库: Github 链接 | 语言: Python

项目简介

大型系统设计入门与面试准备

该内容是一个关于如何设计大型可扩展系统的综合资源集合,旨在帮助工程师提升系统设计能力并为技术面试做准备。它汇集了分散在网络上的大量资源,并以结构化的方式呈现。

核心内容包括:

全面的系统设计专题索引:涵盖了可扩展性、性能与延迟、可用性与一致性(包括CAP定理)、数据库类型(SQL和NoSQL及其变体)、缓存策略、异步通信(消息队列和任务队列)、通信协议(TCP/UDP, RPC/REST)以及安全性等关键概念及其权衡考量。

面试准备指南:提供了针对不同时间线(短期、中期、长期)的学习建议,强调了准备系统设计面试的方法论,包括定义用例和约束、创建高层设计、深入设计核心组件以及进行扩展性思考和估算。

带有解决方案的常见系统设计面试题:提供了多个实际的系统设计面试问题及其示例讨论、代码和图表,涵盖了Pastebin、Twitter时间线、网络爬虫等经典场景。还包含面向对象设计面试题及解决方案。

Anki抽认卡:提供了可下载的抽认卡组,利用间隔重复技术帮助学习者记忆关键概念,方便随时随地学习。

实际系统架构案例:收录了包括Google、Facebook、Amazon等知名公司的真实世界系统架构文章,鼓励学习者分析这些案例,学习其设计原则和遇到的挑战。

贡献与翻译:这是一个开源项目,欢迎社区成员贡献内容和翻译,以不断完善和更新指南。

总之,这份资源是一个宝贵的在线学习资料,尤其适用于希望深入理解大型系统设计原则或准备相关技术面试的开发者和工程师。


commaai / openpilot

openpilot 是一个机器人操作系统。目前支持增强 300 多种汽车的驾驶辅助系统

作者: commaai | 仓库: Github 链接 | 语言: Python

项目简介

openpilot 是一个机器人操作系统,主要用于升级车辆的驾驶辅助系统。目前,它支持超过300款车型。该项目是开源的,采用 MIT 许可证。

要将 openpilot 应用到汽车上,需要满足以下条件:

  1. 兼容的硬件设备:如 comma 3/3X。
  2. 安装 openpilot 软件:在 comma 3/3X 设备设置时使用 openpilot.comma.ai 这个 URL 进行安装。
  3. 受支持的车型: openpilot 支持超过 275款汽车。
  4. 车载线束:用于连接 comma 3/3X 和车辆。

安装过程有详细的操作说明。项目提供不同分支供用户选择:

  • release3 (openpilot.comma.ai): 稳定发布版本。
  • release3-staging (openpilot-test.comma.ai): 发布前的预发布版本。
  • nightly (openpilot-nightly.comma.ai): 最前沿的开发版本,可能不稳定。
  • nightly-dev (installer.comma.ai/commaai/nightly-dev): 与 nightly 类似,包含针对部分车型的实验性开发功能。

对于开发者,可以通过 GitHub 参与贡献,包括提交拉取请求和报告问题。项目社区活跃,有 Discord 频道进行交流。还有专门的贡献文档、工具、开发流程说明以及代码文档。comma 提供工作机会和赏金计划来鼓励外部贡献。

安全方面,openpilot 遵循 ISO26262 指南,并通过持续的软件和硬件在环测试来保证安全模型。安全相关的核心代码(panda)使用 C 语言实现并经过严格的代码审查。

默认情况下,openpilot 会上传驾驶数据到服务器,用户可以通过 comma connect 访问自己的数据。这些数据用于训练模型和改进 openpilot。用户也可以选择禁用数据收集。上传的数据包括路摄像头、CAN、GPS、传感器、碰撞和操作系统日志,但未记录麦克风音频。使用 openpilot 意味着同意其隐私政策,并授权 comma 使用生成的数据。需要注意的是,这是一款处于 Alpha 阶段的科研软件,并非商业产品。用户需遵守当地法律法规,软件不提供任何明示或暗示的担保。

openpilot项目的核心是作为一个机器人操作系统,旨在提升车辆的驾驶辅助能力,通过开源的方式促进技术发展和社区参与。