分类: 开发

AWS备份的跨账户跨区域复制难题:一个巧妙的Lambda解决方案

2025-06-23

本文讲述了作者如何克服AWS Backup不支持同时进行跨账户和跨区域备份的限制。由于安全性和灾难恢复策略的要求,作者需要将备份存储在不同的账户和区域中。文章详细介绍了如何通过巧妙地结合AWS Backup、EventBridge和Lambda函数,实现跨账户跨区域备份复制的方案,包括配置源账户和目标账户的Vault、策略、EventBridge规则和Lambda函数等,以及处理加密和权限等关键问题。最终,作者成功实现了这一目标,并提出了进一步优化的建议,例如自动化恢复测试和成本监控。

开发

Kastle:AI驱动抵押贷款服务的创始工程师职位

2025-06-22
Kastle:AI驱动抵押贷款服务的创始工程师职位

Kastle公司正在招募一位创始工程师,负责构建和优化其AI基础设施。该公司利用AI语音代理帮助美国大型抵押贷款机构扩展其联络中心和合规运营,已获得230万美元融资。该职位需要具备后端开发、分布式系统和AI集成方面的专业知识,需要开发可扩展的后端服务、与贷款服务平台集成的API,以及确保符合金融法规(如SOC 2、FDCPA、RESPA、TILA)。

开发

开源AI代码编辑器Void IDE:隐私至上,对抗巨头

2025-06-22
开源AI代码编辑器Void IDE:隐私至上,对抗巨头

Void IDE,一个基于Visual Studio Code的开源AI代码编辑器,近日发布测试版。它致力于成为Cursor和GitHub Copilot等闭源AI编辑器的隐私友好型免费替代品。Void IDE由Y Combinator支持,允许用户选择本地或通过API直接调用Claude、GPT和Gemini等大型语言模型,避免数据经由第三方处理,从而解决闭源工具的隐私和成本问题。它提供与Cursor类似的AI功能,包括内联代码编辑、上下文AI聊天和代码生成等,并允许查看/编辑发送给AI的提示。开发者们对它的开源性和隐私保护立场表示关注,但也有人质疑VS Code分支的泛滥。

开发

FreeBSD 14.3 正式引入内核模块专用软件包仓库

2025-06-22
FreeBSD 14.3 正式引入内核模块专用软件包仓库

长期以来,FreeBSD 的点版本升级会导致内核模块软件包与内核版本不兼容,造成系统崩溃。为解决此问题,FreeBSD 14.3 正式引入了独立的内核模块软件包仓库,该仓库包含与最新内核版本兼容的模块。此举解决了困扰用户多年的问题,提升了系统稳定性,尤其解决了桌面/笔记本电脑用户因图形驱动程序不兼容而导致的系统崩溃问题。升级方法是修改 `/etc/pkg/FreeBSD.conf` 文件,添加新的内核模块仓库。

开发

用Typst完成博士论文:利与弊

2025-06-22

一位博士生用新型排版语言Typst完成了他的博士论文,并分享了他的经验。Typst 结合了Markdown 的易用性和Rust 的强大脚本能力,编译速度极快,这让他能够快速迭代,改进排版和样式。然而,Typst 的文献管理功能尚不完善,需要一些额外的工具和手动调整才能满足严格的参考文献格式要求。作者认为,对于喜欢编程并乐于调整工具的人来说,Typst 是一个很好的选择,但对于希望开箱即用的人来说,LaTeX 仍然是更稳妥的选择。

开发

用智能家居控制互联网访问时间:告别沉迷

2025-06-22
用智能家居控制互联网访问时间:告别沉迷

作者厌倦了互联网的干扰,尝试通过智能家居系统限制社交媒体的使用时间。他利用AdGuard Home、Home Assistant和Zigbee智能插座,创建了一个自动化系统:按下按钮后,可以临时禁用AdGuard Home的过滤规则15分钟,之后进入一小时的冷却时间。这篇文章详细介绍了系统搭建过程,包括AdGuard Home API配置、Home Assistant自动化流程等,为读者提供了一种控制互联网使用、避免沉迷的有效方法。

糟糕的开发文档:开发者学习的绊脚石

2025-06-22
糟糕的开发文档:开发者学习的绊脚石

2024年Stack Overflow调查显示,技术文档和教程是学习编程最重要的资源之一,然而,许多开发者都经历过阅读文档后更加困惑的挫败感。这主要是因为开发者往往擅长编码,却缺乏清晰表达的写作能力。解决方法包括开发者提升写作技巧,以及组织机构定期收集用户反馈、聘请技术作家、重视GitHub上的文档相关问题。

C++26将支持编译时反射:告别样板代码,拥抱高性能

2025-06-22

Herb Sutter宣布C++26将引入编译时反射,这将彻底改变C++开发。编译时反射允许访问代码自身的结构,例如枚举类的成员函数。这对于像simdjson这样的JSON库来说意义重大,它能实现无需任何额外努力即可高速将自定义数据结构转换为JSON字符串,并反向转换。这篇文章还展示了如何利用编译时反射生成高效的SQL插入语句,减少样板代码,并提高代码的可重用性和安全性。虽然代码看起来复杂,但其带来的性能提升和代码简洁性是巨大的。

工程师薪资谈判完全指南:打破道德束缚,勇于争取应得报酬

2025-06-22
工程师薪资谈判完全指南:打破道德束缚,勇于争取应得报酬

本文作者Patrick McKenzie分享了他撰写的关于工程师薪资谈判的热门文章,该文章已被数百万人阅读,帮助无数人获得了更高的薪资。文章以轻松幽默的口吻,引导读者转变观念,不再将谈判视为不道德的行为,并提供了诸多实用技巧,例如:永远不要先报出自己的期望薪资,善于倾听并重复对方的话语,做好充分的背景调查,利用多维度偏好设置进行谈判等。文章还强调了谈判的时机和策略,以及如何有效地与招聘方沟通,最终获得理想的薪资和工作条件。

开发

Linux管道性能极限挑战:从3.5GiB/s到62.5GiB/s的优化之旅

2025-06-22
Linux管道性能极限挑战:从3.5GiB/s到62.5GiB/s的优化之旅

本文通过逐步优化一个在Linux系统中读写管道的测试程序,探索了Unix管道的实现方式。作者从一个吞吐量约为3.5GiB/s的简单程序开始,利用Linux的perf工具进行性能分析,最终将性能提升了20倍以上。优化过程包括使用vmsplice和splice系统调用避免数据复制、使用巨页减少页面分配开销以及使用繁忙循环减少同步开销等。

开发

用163行代码实现一个内存分配器

2025-06-22

作者最近在研究mimalloc内存分配器时,发现它不支持预分配内存的功能。于是,作者决定自己动手实现一个简单的内存分配器,它基于Buddy系统,代码量仅有163行。文章详细解释了Buddy系统的分配和释放过程,并简要介绍了内存碎片化问题。作者表示,虽然实现很简单,但理解内存分配器的原理对于程序员来说非常重要。

GlassFlow ClickHouse 实时去重负载测试:每秒处理 9000+ 条记录

2025-06-22
GlassFlow ClickHouse 实时去重负载测试:每秒处理 9000+ 条记录

GlassFlow 团队进行了一次大规模实时去重负载测试,结果令人印象深刻。在 MacBook Pro 上,GlassFlow 以低于 0.12ms 的延迟处理了来自 Kafka 的每秒 9000 多条记录,最高处理速度达每秒 55000 条。即使在处理 2000 万条记录和 12 个并发发布者的情况下,系统也保持稳定,没有崩溃、消息丢失或乱序。测试使用模拟真实世界用例的合成数据,并对去重、吞吐量和延迟进行了评估。该测试的完整设置已开源。

开发

Git Notes:被低估的Git利器

2025-06-22

Git Notes是一个强大的工具,可以将元数据附加到Git对象(提交、blob、树)上,而无需修改对象本身。它可以用于追踪时间、添加评审信息,甚至构建完整的分布式代码审查系统,例如`git-appraise`。然而,Git Notes 的易用性差,GitHub 在2014年停止显示提交注释,导致其应用受限。尽管如此,它仍然为构建独立于代码托管平台的完整项目历史提供了可能性。

开发

LibRedirect:隐私至上的网站替代方案

2025-06-22

LibRedirect 是一款浏览器扩展程序,它可以将 YouTube、Instagram、Reddit 等众多网站重定向到更注重隐私的替代前端。 该扩展程序支持众多网站,例如 YouTube 的替代方案 Invidious 和 Piped,Reddit 的替代方案 Libreddit 和 Teddit 等,为用户提供了更私密、更安全的网络体验。告别数据追踪,拥抱隐私保护!

开发 替代网站

创意编程:AI时代下的计算机科学教育新方向

2025-06-22
创意编程:AI时代下的计算机科学教育新方向

在AI快速重塑软件开发的时代,传统的计算机科学教育已无法满足需求。文章指出,仅仅教授编码技能是不够的,学生需要学习系统性思维、创意设计和目标导向的构建能力。创意编程应运而生,它将编程作为一种表达和创新的媒介,激发学生的内在动力,培养计算思维能力。文章以Minecraft游戏为案例,展示了如何通过游戏设计和叙事来教授编程概念,提升学生的参与度和学习效果。最终,文章强调了教师专业发展的重要性,呼吁提供更多支持,以促进创意编程在课堂上的应用。

开发

Clippy项目为提升质量进入为期12周的功能冻结期

2025-06-22
Clippy项目为提升质量进入为期12周的功能冻结期

Rust代码风格检查工具Clippy将从2025年6月26日开始进入为期12周的功能冻结期,专注于修复现有750多个lint的bug,提升准确性和减少误报。在此期间,将暂停接受新增lint的PR,但仍鼓励用户提交bug报告和改进现有lint的PR。Clippy团队的目标是提升代码质量,为用户提供更可靠的代码检查体验。

开发

mbake: 50年磨一剑的Makefile格式化工具

2025-06-22
mbake: 50年磨一剑的Makefile格式化工具

历经50年(指代Makefile的悠久历史),mbake终于问世!这款Makefile格式化和lint工具,不仅能自动修复Makefile的格式问题,例如缩进、空格、换行等,还能智能检测`.PHONY`目标,并支持自定义规则和插件扩展。它提供丰富的命令行参数,方便用户进行格式化、校验和版本管理,并能无缝集成到CI/CD流程中。无论是新手还是老手,mbake都能显著提升Makefile的编写效率和可读性。

开发 格式化

Claude Code 支持远程 MCP 服务器,提升开发效率

2025-06-22
Claude Code 支持远程 MCP 服务器,提升开发效率

Claude Code 现已支持远程 MCP 服务器,开发者无需管理本地服务器即可连接喜爱的工具和数据源,个性化定制编码体验。通过访问 MCP 服务器公开的工具和资源,Claude Code 能从第三方服务(如开发工具、项目管理系统和知识库)提取上下文,并在这些服务中执行操作。例如,集成 Sentry MCP 服务器后,可以直接在终端调试错误;集成 Linear MCP 服务器后,可以访问项目上下文,提升工作效率。远程 MCP 服务器维护成本低,只需添加供应商的 URL 即可,Claude Code 还支持原生的 OAuth,确保安全连接。

开发

跨编译工具链宝库:支持众多架构的Linux系统

2025-06-22

这个网站提供大量现成的跨编译工具链,支持众多架构的Linux操作系统。基于GCC和Binutils,这些工具链使用glibc、uClibc-ng和musl C库提供多种变体,并使用Buildroot构建系统构建。大多数工具链都经过测试,方法是构建Linux内核和用户空间,并在Qemu下引导。对于每个架构和C库组合,都提供工具链的两个版本:稳定版(使用较旧的经过验证的工具链组件)和最新版(使用最新的工具链组件)。

开发 跨编译

声之纯形:一种基于堆栈的后缀记法声音编程语言

2025-06-22
声之纯形:一种基于堆栈的后缀记法声音编程语言

SAPF 是一款探索声音纯形态的解释器,其语言主要基于函数式、堆栈式和类似于 FORTH 的后缀记法。它使用惰性、可能无限的序列来表示音频和控制事件,旨在为惰性序列实现 APL 对数组的处理方式,提供高层次的函数以及自动映射、扫描和约简操作符。这使得短小的程序能够实现超出其规模的结果。由于几乎所有程序员可访问的数据类型都是不可变的,因此该语言可以轻松运行多个线程而不会出现死锁或损坏。它受到 APL、Joy、Haskell、Piccola、Nyquist 和 SuperCollider 的启发,目标是简洁且富有表现力。

在GitHub容器注册表发布Microsoft Edit的Docker容器

2025-06-22
在GitHub容器注册表发布Microsoft Edit的Docker容器

作者在Apple Silicon Mac上运行Microsoft新发布的终端文本编辑器Edit,由于官方没有提供该平台的编译版本,作者创建了一个Docker镜像并在GitHub容器注册表发布。文章详细介绍了构建过程,包括使用多阶段Docker构建以减小镜像大小,以及使用GitHub Personal Access Token将镜像推送到GitHub容器注册表。最终,任何拥有Apple Silicon Mac和Docker的用户都可以通过简单的命令运行Edit。

避免P值作弊:启动公司中统计陷阱的揭秘

2025-06-21
避免P值作弊:启动公司中统计陷阱的揭秘

初创公司为快速发布产品承受着巨大的压力,这导致团队倾向于报告任何看起来像改进的结果,从而导致p值作弊。本文分析了三种常见的p值作弊案例:未经校正的多重比较、结果出来后重新定义指标以及在获得预期结果前多次运行实验。文章强调了预先注册假设和指标、避免事后挖掘指标、在测试多个变量时使用校正以及在提前查看结果时应用适当阈值的重要性,并建议庆祝明确的负面结果,最终目的是通过更严格的统计实践来加速学习,避免发布无效信息,建立对驱动用户行为因素的真正理解。

开发

Crust实现的B语言编译器

2025-06-21
Crust实现的B语言编译器

一个用Rust编写,使用fasm作为后端的B语言编译器项目正式发布!该项目包含一个名为btest的测试工具,可以测试编译器并在各种平台上生成矩阵报告。btest支持指定平台和测试用例,方便开发者进行测试和调试。编译器目前仍在开发中,但已经可以编译运行简单的例子,例如hello_world.b。

开发 B语言

to-userscript: 将浏览器扩展转换为独立用户脚本的强大 CLI 工具

2025-06-21
to-userscript: 将浏览器扩展转换为独立用户脚本的强大 CLI 工具

to-userscript 是一个命令行工具,可以将 Chrome 或 Firefox 扩展程序转换为可在任何用户脚本管理器中运行的独立 .user.js 文件。它支持多种转换源,包括 Chrome 网上应用商店、Firefox 附加组件网站、本地目录和存档文件。该工具会智能地替换常用的 WebExtension API,嵌入 CSS、图像和其他资源,并模拟后台脚本环境和国际化支持。安装方法简单,只需使用 npm、pnpm 或 bun 等包管理器即可全局安装。

开发 用户脚本

AI编程代理:IDE的终结者?

2025-06-21
AI编程代理:IDE的终结者?

本文探讨了AI编程代理(如Claude Code、Codex和Amp)的兴起,以及它们如何改变软件开发的模式。作者认为,基于终端的“氛围编程”正在取代传统的IDE,工程师们正以惊人的速度生产高质量代码。这种转变带来了更高的生产力,但也引发了关于工作岗位和绩效评估的担忧。文章还展望了AI对更广泛的知识工作和社会的影响,并预测未来几年AI将带来巨大的变革。

开发

无服务器QUIC代理:Lambda函数实现NAT穿透

2025-06-21
无服务器QUIC代理:Lambda函数实现NAT穿透

这个项目利用AWS Lambda函数和NAT穿透技术构建了一个无服务器QUIC代理。通过S3协调和UDP穿透,它无需专用服务器即可创建加密的代理连接。该系统分为三个阶段:协调阶段(客户端通过STUN协议发现公网IP,将会话信息写入S3),NAT穿透阶段(客户端和Lambda函数互相发送UDP数据包,创建双向NAT孔),以及QUIC隧道建立阶段(客户端启动QUIC服务器,Lambda函数作为客户端连接)。最终实现浏览器通过SOCKS5代理连接到互联网,Lambda函数充当出口节点转发流量。

开发

交互式组合数学视频教材:ABjC

2025-06-21

ABjC是一个由四部分组成的组合数学视频教材,每部分对应于在IMSc教授的课程。该教材以视频形式呈现,并配有可交互浏览的网站,方便用户查找特定章节和时间点。内容涵盖枚举组合、代数组合和双射组合等多个方面,并包含一些新的研究成果和对经典理论的新颖呈现方式。该教材适合本科生、研究生和研究人员学习,并包含针对不同水平学生的章节。

开发 视频教材

BeOS UI库Cosmoe:稳定性和兼容性仍需改进

2025-06-21

Cosmoe,一个基于Wayland的BeOS UI库,虽然在将BeOS类库与Wayland连接方面取得了显著进展,但仍需改进稳定性和兼容性。目前存在崩溃和行为错误,Wayland的复杂性增加了开发难度。Cosmoe实现了约95%的BeOS API,但一些重要功能如加速绘图的“离屏”BBitmaps和文件面板BFilePanel尚未实现,部分文件相关类也仅部分实现。此外,出于安全原因,Wayland禁止某些窗口操作,例如窗口定位和居中。更多细节请参考Cosmoe代码库中的TODO文件。

开发

TestFlight Beta 测试指南:轻松上手苹果应用内测

2025-06-21
TestFlight Beta 测试指南:轻松上手苹果应用内测

想体验最新应用?TestFlight是你的秘密武器!本文详解了TestFlight Beta应用的安装、测试和更新方法,涵盖iOS、iPadOS、macOS、tvOS和visionOS平台。通过邮件或公开链接邀请,最多可在30台设备上安装测试版应用。需要注意的是,测试期间的内购不会转移到正式版应用,并且测试版应用仅有90天的测试期。TestFlight还支持自动更新和历史版本测试,方便开发者和测试者进行更有效的合作。

开发

去中心化安全信使应用Delta Chat:挑战传统,拥抱未来

2025-06-21
去中心化安全信使应用Delta Chat:挑战传统,拥抱未来

Delta Chat是一款去中心化、安全的即时通讯应用,支持多账户和多设备。它允许用户连接到安全的快速聊天服务器或使用传统的电子邮件服务器。此外,它还提供交互式网络应用,用于游戏和协作。Delta Chat采用经过审核的端到端加密,安全可靠,避免了网络和服务器攻击。作为开源软件,它基于互联网标准构建,避免了中心化平台的风险。

开发
1 2 54 55 56 58 60 61 62 213 214