所有主题GitHubShadCN 主题发现并创建适用于 shadcn/ui 的精美主题导入新主题按颜色筛选:红色橙色黄色绿色青色蓝色紫色粉色灰色黑色白色加载主题中...创建、自定义和分享适用于 shadcn/ui 的精美主题。使用我们直观的主题编辑器构建您完美配色方案。GitHubGitHub新主题服务条款隐私政策联系我们© 2025 ShadcnThemer.com。保留所有权利。
所有主题GitHubShadCN 主题发现并创建适用于 shadcn/ui 的精美主题导入新主题按颜色筛选:红色橙色黄色绿色青色蓝色紫色粉色灰色黑色白色加载主题中...创建、自定义和分享适用于 shadcn/ui 的精美主题。使用我们直观的主题编辑器构建您完美配色方案。GitHubGitHub新主题服务条款隐私政策联系我们© 2025 ShadcnThemer.com。保留所有权利。
## Zig 语言获得 Synadia 和 TigerBeetle 的 512,000 美元投资 Synadia 和 TigerBeetle 联合承诺在两年内向 Zig 软件基金会投资 512,000 美元,表明了对新兴系统编程语言的强力支持。TigerBeetle 在 2020 年选择了 Zig,而非 Rust 和 C,原因是需要与安全关键设计原则相符的显式内存管理——优先考虑正确性和可预测性,而非无畏并发。 作者强调了 Zig 在安全性方面的独特方法,它提供了一系列保证,而不是在有限领域追求绝对的完美。关键特性,如 comptime、缺乏隐藏的分配/控制流以及默认检查算术,都是至关重要的因素。Zig 的简洁性使得开发者能够快速上手,并促进了严格的测试,包括广泛的模糊测试和冗长的 Jepsen 审计,证明了该语言的健壮性。 尽管 Zig 是一种相对年轻的语言,但它已经驱动了 TigerBeetle 在大型金融机构的成功部署。这项投资反映了对 Zig 长期潜力的信心,赞扬了 Andrew Kelley 强大的领导能力和该语言的减法设计理念。这些公司鼓励其他人向 Zig 软件基金会贡献,以确保其持续的独立开发和成功。
## 从Execve到Main:程序启动之旅 本文概述了程序在Linux上实际*开始*运行的过程,连接了请求执行(通过`execve`)和`main()`第一行之间的桥梁。 过程从`execve`系统调用开始,向内核提供可执行文件路径、参数和环境变量。Linux上的可执行文件通常采用ELF格式,包含代码、数据以及加载所需的必要信息。内核解析ELF头,记下入口点——执行开始的地址。 在跳转到`main()`之前,内核会设置程序的运行环境。这包括将ELF文件中的必要部分加载到内存中,应用安全措施(如ASLR和NX),以及至关重要的是,构造堆栈。堆栈接收参数和环境变量,以及包含系统信息的辅助向量。 最后,内核跳转到ELF的入口点,通常是一个名为`_start`的函数。这个函数由像glibc或musl这样的库提供(或自定义编写),初始化运行时环境——处理全局构造函数、线程局部存储,并最终调用用户定义的`main()`函数。 即使是一个简单的“Hello, World!”程序,也涉及大量的幕后工作,展示了成功启动程序所需的复杂机制。
一个关键漏洞(CVE-2025-62518)已在Rust中广泛使用的TAR归档解析库`tokio-tar`中被发现,影响了uv(Python包管理器)和testcontainers等项目。该漏洞是一种在处理具有不一致头部信息的嵌套TAR文件时出现的反同步问题,允许攻击者走私额外的归档条目,可能导致文件覆盖、供应链攻击和安全扫描绕过。 问题在于`tokio-tar`似乎已被废弃,需要通过多个分支进行分散的修复工作——`async-tar`、`tokio-tar`、`krat-tokio-tar`和`astral-tokio-tar`。补丁已成功应用于`astral-tokio-tar`等积极维护的分支,`krat-tokio-tar`已被归档,转而支持Astral分支。 修复方法包括升级到已打补丁的版本或迁移到`astral-tokio-tar`。解决方法包括使用标准的`tar` crate或实施运行时缓解措施,例如文件计数验证。此事件凸显了依赖未维护的开源依赖项的风险,并强调了即使在像Rust这样内存安全的语言中,也需要强大的安全实践和纵深防御策略。
## 重新思考SQL与关系模型 关系模型仍然强大——它能够实现跨系统的数据协作,通过规范化简化更新,并提供物理数据独立性。然而,其主要的实现方式SQL,严重阻碍了这种潜力的发挥。 SQL **表达力不足**,缺乏诸如总和类型和强大的递归等基本特性,迫使人们采用复杂的变通方法。它也**难以压缩**,使得查询冗长且脆弱——微小的改动可能需要大量的重构。这种复杂性拖累了整个行业,影响了实现质量、创新和可移植性。 核心问题不仅仅是程序员的负担,而是一个系统性问题:SQL的局限性需要一个庞大的应用层来处理数据库*应该*管理的任务。这导致了重复劳动、潜在的错误和失去优化机会。 更好的方法是构建一种基于现代编程原则的新语言:表达力强、可压缩、可扩展(具有良好的扩展性),并具有清晰、明确的规范。这种语言应该拥抱诸如一流函数和类型等特性,并优先考虑库生态系统,从而超越SQL的单一且常常不一致的实现。虽然具有挑战性,但重新思考数据库、查询语言和编程语言之间的关系,可以释放巨大的价值。
本文详细介绍了一种高效计算二维圆扇形包围矩形算法,这种形状在游戏中(例如攻击或法术)表示作用区域非常有用。圆扇形由其顶点(中心)、方向、半角和半径定义。
核心思想是找到沿X轴和Y轴的极端点,这些点定义了包围矩形的最小和最大角点。最初,顶点和两个“边缘点”(使用方向和半角计算)被考虑在内。然而,这些并不总是足够的。
该算法通过检查位于主轴半径距离的四个附加点(-X、+X、-Y、+Y)来扩展,*仅当*它们落在扇形的角度范围内时才进行检查。然后,最终的包围矩形由所有考虑点的最小和最大坐标确定。
重要的是,该算法避免直接使用`atan2`等三角函数,而是依赖于向量运算以提高性能和稳定性。预先计算正弦和余弦值可以进一步优化该过程。 可以在[shadertoy.com/view/w3jcRw](https://www.shadertoy.com/view/w3jcRw)处找到实时演示。
巴尔的摩一名青少年塔基·艾伦,因人工智能武器检测系统错误地将他口袋里的薯片袋识别为枪支,而被警方短暂戴上手铐。在足球训练后,艾伦将空的Doritos薯片袋放进口袋,触发了警报,导致大量警察出动,并指枪对着他。 尽管人工审核员最初将警报标记为无威胁,但学校校长还是联系了校警,校警随后报了警。警方确认没有发现武器,艾伦被无罪释放。 这起事件引发了对学校程序和人工智能安全系统的可靠性的批评。人工智能供应商Omnilert声称其系统“按设计运行”,通过快速的人工验证来优先考虑安全,但承认了错误。当地政界人士呼吁对该系统的实施进行审查,强调了对准确性的担忧,尤其是在类似技术过去受到审查之后。艾伦现在在训练后不敢出门。
Jacqueline是一个用Free Pascal为i386架构创建的业余启动加载程序,纯粹是为了个人挑战而构建。作者无意在成功创建一个可在模拟器中启动的镜像之外积极开发它。 尽管Pascal传统上不用于低级系统编程,但Free Pascal提供了使其成为可能的功能——包括指针、内存地址访问和内联汇编——与C、C++和Rust等语言相匹敌。Free Pascal编译为标准目标文件(PE/ELF),允许与用其他语言编写的代码互操作。 该项目需要一个i386-elf工具链、一个32位Free Pascal发行版(ppc386)和一个构建系统(如Make),最终利用QEMU来测试内核。它展示了Free Pascal在裸机开发方面的惊人能力。
## Libera.Chat 与英国在线安全法案 - 最新情况 Libera.Chat 已就英国在线安全法案(OSA)的适用性咨询了法律意见。律师事务所的意见是,Libera.Chat 可以合理地辩称,尽管提供“受监管服务”且存在用户生成内容,但其与英国的“联系不足以”适用该法案。这主要是因为其英国用户群可能太小,不足以被视为“重要”,并且他们并未专门针对英国市场。 尽管 Ofcom *可能* 不认同,但执法行动的风险似乎较低,特别是由于 Ofcom 目前专注于风险较高的平台(如图片/文件托管)。Libera.Chat 正在准备一份详细的风险评估,并主动与 Ofcom 分享。 至关重要的是,Libera.Chat **无意实施用户身份验证要求**,认为隐私风险大于潜在收益。他们仍然致力于维护安全网络,同时反对过度扩张的立法,并将继续关注局势,反对会损害用户隐私的措施。他们强调保持互联网自由开放的重要性,并认为屏蔽英国用户——一些社区正在采用的策略——是有害的。