分类: 开发

用Audio Hijack和BlackHole打造专业级Zoom会议音频

2025-08-01
用Audio Hijack和BlackHole打造专业级Zoom会议音频

疫情期间,朋友寻求提升Zoom会议音频质量的方法,这篇文章分享了作者使用Audio Hijack(取代Reaper)、BlackHole虚拟音频驱动和DAW(数字音频工作站)的解决方案。通过创建聚合音频设备,巧妙利用BlackHole的双通道特性(一个用于Zoom麦克风,一个用于扬声器),并在DAW中进行音频路由和混音,最终实现了高质量的音频输入输出,并能监控混音、录制和分享系统声音等功能。此方法避免了Zoom自带音频处理的限制,让用户拥有对音频的完全掌控。

开发 BlackHole

Perl:互联网的胶带,一段辉煌的往事

2025-08-01
Perl:互联网的胶带,一段辉煌的往事

Perl曾经风靡一时,几乎每个网站都用它构建。它善于处理海量文本数据,甚至应用于生物信息学。然而,Perl语法混乱,被称为“互联网的胶带”,甚至被戏称为“只写不读”语言。其创造者Larry Wall受语言学影响,认为语言无需追求纯洁,Perl的多样性正是其魅力所在。虽然Perl不再流行,但它体现了一种编程理念:编程无需教条。

开发

MCP-Use:连接任何LLM到任何MCP服务器的开源库

2025-08-01
MCP-Use:连接任何LLM到任何MCP服务器的开源库

MCP-Use是一个开源库,允许开发者轻松连接任何LangChain支持的LLM(如OpenAI、Anthropic)到任何MCP服务器,构建具有工具访问权限的自定义MCP代理。它支持多种功能,包括易于使用、LLM灵活性、代码生成器、HTTP支持、动态服务器选择、多服务器支持、工具限制、自定义代理以及异步流式输出。用户可以通过pip安装或从源码安装,并需要安装相应的LangChain提供程序包。MCP-Use还支持从配置文件加载配置,并提供沙盒执行模式,方便用户在安全的环境中运行MCP服务器。

开发

告别散乱的 Cron Jobs:Heartbeat 的集中式任务调度系统

2025-08-01
告别散乱的 Cron Jobs:Heartbeat 的集中式任务调度系统

Heartbeat 之前使用多个 Cron Jobs 来管理定时任务,维护成本极高且易出错。文章介绍了他们如何构建一个基于数据库的集中式任务调度系统,使用单一数据库表 `ScheduledTasks` 和一个 Cron Job 来管理所有定时任务,并利用 AWS SQS 进行异步处理,实现任务的可靠执行、重试和监控。该系统解决了任务管理混乱、错误处理困难等问题,并降低了新增定时任务的成本。

开发 Cron Job

KubeForge:可视化Kubernetes部署神器

2025-08-01
KubeForge:可视化Kubernetes部署神器

KubeForge是一个可视化的Kubernetes部署工具,通过拖放界面简化了构建、验证和管理Kubernetes部署配置的过程。它利用Kubernetes JSON模式提供智能模式感知,并支持模块化组件编辑器、实时可视化更新以及依赖项链接。KubeForge能导出可直接应用的YAML文件,减少Kubernetes配置的学习曲线,避免语法和模式错误,并支持未来的实时协作和配置共享。它每日更新Kubernetes JSON模式,确保编辑器始终使用最新的版本特定规范定义。此外,KubeForge还支持直接YAML托管,方便自动化或GitOps管道部署。

开发

Linux内核迎来QUIC协议支持:速度与性能的博弈

2025-08-01

历经十余年,QUIC协议终于迈向Linux内核主线。该协议旨在解决TCP协议在现代互联网中存在的延迟、拥塞和安全性问题,通过UDP实现更快速、更安全的数据传输。然而,目前的内核实现版本在性能测试中表现不及预期,与TCP相比存在差距。开发者表示,这与缺乏硬件卸载支持和优化有关,未来性能有望提升。QUIC的内核集成将为更多应用程序提供支持,但完整的代码审核和合并过程预计需要较长时间,可能要到2026年才能正式进入主线版本。

开发

初次管理的生存指南:从个体贡献者到团队领导

2025-07-31
初次管理的生存指南:从个体贡献者到团队领导

本文为初次担任管理者的员工提供了宝贵的建议。作者强调,管理并非只是工作内容的转变,而是角色的转变,从个人贡献者转变为团队领导者,需要学习如何赋能团队成员,而非事必躬亲。文章指出,犯错是不可避免的,重要的是如何从错误中学习和成长,并保持清晰的沟通,明确期望,营造积极的工作氛围。同时,作者也建议管理者关注自身身心健康,避免倦怠,并从优秀领导者身上学习,不断提升自身管理能力。

开发 团队领导

Linux电源断开自动关机:无需BusKill的替代方案

2025-07-31
Linux电源断开自动关机:无需BusKill的替代方案

本文介绍了一种无需BusKill也能在Linux系统上实现电源断开自动关机的简易方法。通过创建udev规则,监控电源状态,并在电源断开时执行预设脚本(例如关机)。该方法简单易行,可有效保护在公共场所使用的笔记本电脑免遭盗窃。文章还提供了其他脚本示例,例如锁屏、休眠、销毁LUKS密钥等,以满足不同安全需求。

开发

Go竞态检测器的互斥锁盲点

2025-07-31
Go竞态检测器的互斥锁盲点

Go语言的竞态检测器在处理互斥锁时存在一个盲点。文章通过一个例子演示了这种情况:两个goroutine使用互斥锁保护共享计数器,其中一个goroutine在锁之外额外增加计数器。即使存在数据竞争的可能性,Go的竞态检测器也可能无法检测到,因为它依赖于锁的获取顺序,而这在运行时是不可预测的。虽然Go的竞态检测器是业界领先的工具,但这个例子提醒我们,即使检测器没有报告竞态,代码中仍然可能存在竞态条件。

开发 竞态检测

Infracost招募首位产品经理:解决6000亿美元云成本难题

2025-07-31
Infracost招募首位产品经理:解决6000亿美元云成本难题

Infracost,一家由Sequoia和YC支持的初创公司,正在寻找其首位产品经理。该公司致力于解决云计算成本管理难题,其产品能帮助工程师提前发现并修复云成本问题,避免意外成本飙升。产品经理将负责产品路线图的规划和执行,与工程师和设计师团队紧密合作,并与客户直接互动,了解他们的需求。这是一个高影响力的角色,需要具备B2B产品经验、DevOps工具经验以及云成本管理领域的专业知识。公司倡导以用户为中心,开放透明,高效执行的文化。

开发

Servo:挑战Chrome霸权的Rust浏览器引擎

2025-07-31
Servo:挑战Chrome霸权的Rust浏览器引擎

曾经,浏览器引擎百花齐放;如今,Chrome一家独大,其Chromium内核几乎垄断了市场。然而,一个名为Servo的Rust浏览器引擎,正在悄然崛起。它以多线程和内存安全著称,目标是成为可嵌入的渲染引擎,甚至挑战Electron和Android WebView。虽然目前尚不成熟,但Servo已获得Linux基金会欧洲分部的支持,并展现出令人印象深刻的性能和潜力,为打破Chrome垄断带来一线希望。

开发

计算机音乐入门电子书:二十年磨一剑

2025-07-31

这是一本面向作曲家、音频工程师和音乐爱好者的计算机音乐入门电子书,历经二十年发展完善。它最初设计为网络课程教材,现已涵盖了从基础到进阶的诸多主题,并持续更新。作者Jeffrey Hass教授是印第安纳大学电子与计算机音乐中心的退休主任,拥有丰富的教学和创作经验。本书免费提供学习和教学使用,只需注明作者即可。

开发 音乐教育

Lean 编程语言:用代码形式化数学

2025-07-31
Lean 编程语言:用代码形式化数学

Lean 是一种编程语言,主要用于数学家将数学公式化。它允许数学家将数学视为代码,分解成结构、定理和证明,并将其放在 GitHub 上。文章通过一个简单的例子 2=2 的证明,介绍了 Lean 的语法和一些基本概念,例如 tactic(策略),并解释了如何使用这些 tactic 来证明或证伪数学命题。文章还以一个虚构的公理“2=3”为例,说明了在公理系统中,错误的公理可能导致任何结论都能被证明,突出了形式化证明的重要性。最后,文章提到了费马大定理的 Lean 形式化证明项目,作为 Lean 语言强大能力的体现。

开发

C语言结构体内存优化技巧

2025-07-31

本文介绍了如何优化C语言结构体以减少内存占用。作者通过一个`Monster`结构体示例,逐步讲解了多种优化方法,包括:重新排序成员变量以减少填充字节;移除冗余字段,例如根据`health`值推断`is_alive`;使用更小的整数类型(例如`uint8_t`、`uint16_t`)替代`int`;使用位域来存储布尔值;以及使用枚举代替字符串来表示怪物名称。通过这些优化,作者将`Monster`结构体的大小从96字节减少到20字节,显著提升了内存效率。文章还讨论了这些优化方法的权衡,提醒读者注意整数溢出等潜在问题。

开发

Emacs 在 macOS 上的内存泄漏之谜

2025-07-31

作者长期以来受困于 Emacs 在 macOS 系统上的性能问题:内存占用不断飙升,最终导致程序冻结。经过一番排查,他发现问题根源在于 `[NSApp run]` 的调用方式,这会导致大量的内存分配和释放,尤其是在高性能硬件和高 DPI 显示器上,问题更加严重。macOS 系统的事件处理机制以及 Emacs 高效的资源管理相互作用,导致一些无用的资源缓存,最终导致内存泄漏。虽然彻底修复困难,但作者提出了一种可能的方案:使用 Swift 重写 macOS 特定的代码,以利用其更有效的内存管理和异步支持来改善 Emacs 在 macOS 上的性能。

开发

优雅地处理终端应用中的子进程终止

2025-07-31
优雅地处理终端应用中的子进程终止

在终端应用中,Ctrl+C后子进程未能干净退出会导致终端损坏。本文以Moose CLI为例,介绍了解决此问题的方法。主要策略包括:1. 子进程输出代理:将子进程的标准输出/错误流重定向到日志系统,避免与终端输出冲突;2. 终端状态管理:使用crossterm库,在退出时显式清理终端状态,包括原始模式、备用屏幕缓冲区和光标可见性;3. 优雅的进程终止:先尝试SIGTERM,再使用SIGKILL强制终止,并设置超时;4. 线程安全旋转器管理:协调旋转器与子进程输出,避免字符格式错误。通过这些方法,可以构建更健壮的终端应用,避免因子进程而导致的终端损坏问题。

开发 子进程

从嵌入式软件到PCB管理:一个高效的组件库存管理系统

2025-07-31

一位嵌入式软件工程师在设计印刷电路板(PCB)的过程中,发现管理众多电子元器件成为难题。他巧妙地将软件开发的经验应用于硬件管理,利用Gridfinity模块化存储系统和自编软件,实现了高效的组件库存管理。该软件不仅能根据BOM(物料清单)快速查找元件位置,还能进行批量库存管理,极大提高了工作效率。未来,他还计划添加批量购买功能和更智能的搜索功能。

开发

AI辅助编程:迷人的“氛围编程”与潜在的“技术债务”

2025-07-31
AI辅助编程:迷人的“氛围编程”与潜在的“技术债务”

Andrej Karpathy提出的“氛围编程”利用AI辅助编码,让开发者无需深究代码细节。这对于原型和一次性项目非常高效,但对于需要长期维护的项目,则可能迅速积累“技术债务”,如同给孩子信用卡一样,初期便捷,后期却可能难以收拾。文章建议,对于大型项目,应谨慎使用,并强调扎实的编程理论和代码理解依然至关重要。

开发

怀旧!经典CDE桌面环境回归OpenBSD

2025-07-31

沉寂多年的经典Unix桌面环境CDE(通用桌面环境),正在回归!OpenBSD的开发者们将CDE 2.5.2导入其ports集合。虽然目前尚不能直接打包安装,仍需一些修复和改进,但怀旧的开发者们可以本地编译体验一把经典的Unix桌面。开发者警告称CDE代码古老且不安全,不建议作为日常驱动,仅供怀旧体验。

LLM代码生成:速度与质量的权衡

2025-07-31
LLM代码生成:速度与质量的权衡

作者表达了对LLM生成代码的担忧,并非反对使用LLM,而是强调代码质量和可维护性。LLM生成的代码虽然高效,但常常违反项目规范,缺乏可读性和长期维护性。作者呼吁开发者关注代码质量,而非一味追求速度,并建议开发者更好地利用LLM,例如提供更精准的提示和示例,以确保生成的代码符合项目标准,避免将代码库的可维护性完全依赖于模型。

开发

AgentGuard:阻止AI成本失控的实时预算工具

2025-07-31
AgentGuard:阻止AI成本失控的实时预算工具

开发人员经常面临AI模型意外消耗大量API调用而导致高额费用的问题。AgentGuard是一个实时预算工具,只需添加两行代码,即可在你的AI项目中设置成本上限。当成本达到上限时,AgentGuard会自动停止进程,防止进一步的费用支出,并提供详细的报告,帮助你节省资金。它支持多种AI API,包括OpenAI和Anthropic,并提供多种保护模式,例如抛出错误、发出警告或强制终止进程。AgentGuard是唯一一款能够在运行时实时阻止AI成本失控的工具。

Futhark 性能剖析器的重大改进

2025-07-31

Futhark 编程语言的新版本显著提升了其性能剖析器的实用性。之前的剖析器只能提供难以理解的编译器生成的代码名称,而新版本通过巧妙地将源代码信息贯穿整个编译过程,实现了将生成的代码与原始源代码关联起来。这解决了长期以来程序员难以定位性能瓶颈的问题。虽然仍需进一步改进数据呈现方式,但这项改进为 Futhark 程序的性能优化提供了强有力的工具。

开发 性能剖析

速度即魔法:软件速度如何改变我们的生活

2025-07-31

本文探讨了软件速度的重要性。快速的软件不仅提升开发效率,例如几秒钟的代码部署,AI代码自动完成,实时流媒体等,更重要的是它能改变用户行为,带来更流畅的用户体验,减少认知摩擦。文章以Raycast, Superhuman, Mercury等工具为例,说明速度带来的“魔法”般体验,并指出速度意味着简洁和专注,需要在后台处理复杂逻辑,才能呈现出简洁易用的界面。作者认为,虽然目前AI应用还处于早期阶段,性能并非首要关注点,但未来优化速度将成为关键,从而解锁新的应用场景和可能性,最终改变我们的生活方式。

开发

Ollama发布macOS和Windows桌面应用:更轻松地与大型语言模型互动

2025-07-31
Ollama发布macOS和Windows桌面应用:更轻松地与大型语言模型互动

Ollama发布了其macOS和Windows桌面应用程序,为用户提供了一种更便捷的方式与大型语言模型进行交互。新应用支持拖放文件(文本或PDF),方便用户处理文件;并可通过设置增加上下文长度以处理大型文档(需更多内存)。此外,它还支持多模态功能,允许用户向支持图像的模型(如Google DeepMind的Gemma 3)发送图片,并能处理代码文件以进行理解。Ollama还提供命令行版本下载。

开发

重拾初心:回归简单的HTML网页

2025-07-31
重拾初心:回归简单的HTML网页

本文追溯了万维网的起源,从最初信息共享的理想到如今充斥广告、追踪和复杂框架的现状。作者倡导回归简单,提倡创建小型、手工编码的HTML网站,以此重拾万维网最初的简洁和自由。文章提供了创建简单网页的步骤,并表达了对摆脱现代网络过度商业化和复杂化的渴望,呼吁重温纯粹的信息共享精神。

开发

Aria编程语言:简洁易用的动态脚本语言

2025-07-30
Aria编程语言:简洁易用的动态脚本语言

Aria 是一款现代化的动态脚本语言,旨在提供易于上手、令人愉悦的编程体验。它采用类似 C 语言的语法,并融合了 Python 和 Rust 等优秀语言的特性。Aria 的标准库简洁实用,足以应对各种有趣的编程挑战。目前仅支持 Linux 系统,但欢迎贡献其他操作系统支持。一个简单的例子展示了如何使用 Aria 从 GitHub API 获取数据并打印结果,体现了其易用性和高效性。

Revontuli主题更新日志:蓝色更亮了!

2025-07-30
Revontuli主题更新日志:蓝色更亮了!

Revontuli主题经历了一系列更新,其中最引人注目的莫过于对蓝色色调的调整——让蓝色更亮了!从2023年6月到2025年7月,该主题持续迭代,更新内容涵盖了多个应用,包括代码编辑器(VSCode、Vim、Sublime Text等)、终端(Konsole)、以及壁纸等。除了对蓝色的改进外,更新还包括添加新的主题(例如Eve Online主题)、修复bug,以及添加新的测试文件等。这展现了开发者对细节的关注和持续改进的决心。

微软飞行模拟器2024:WebAssembly模块开发指南

2025-07-30

微软飞行模拟器2024采用WebAssembly(WASM)模块作为插件的新标准,提升了安全性与可移植性。文章详细介绍了使用Visual Studio进行WASM模块开发的工具集,包括C/C++项目直接编译为WASM、WASM模块调试以及对标准C/C++库的大量支持。此外,文章还阐述了WASM模块在游戏中的不同使用方法(独立模块、仪表模块、机场模块、系统模块),并指出了API、文件访问、升级以及已知问题和限制等关键信息。开发者需注意,旧版Gauge API已弃用,建议使用Vars API和Event API。

告别乏味的多因素身份验证:脑洞大开的奇葩认证方案

2025-07-30

厌倦了繁琐的多因素身份验证?本文作者分享了一系列脑洞大开的替代方案,从扑克牌比拼到魔方复原,甚至还有国际象棋对弈和卡拉OK演唱!这些方案各有千秋,有的安全性高,有的简单易用,有的则充满了戏谑的幽默感。当然,作者也提醒我们,在安全性与用户体验之间取得平衡才是关键,切勿盲目创新。

开发

Linux 6.16内核发布:Rust集成增强,性能提升显著

2025-07-30
Linux 6.16内核发布:Rust集成增强,性能提升显著

Linux 6.16内核发布,虽然更新幅度不大,但包含一些重要改进。Rust语言集成进一步深入,驱动核心和PCI设备子系统新增Rust绑定,简化Rust硬件驱动程序的添加。DRM也整合了新的Rust抽象,提升图形性能并降低漏洞风险。此外,XFS和Ext4文件系统也得到改进,性能提升显著,最高可达37%。同时,该版本还支持Intel TXT和TDX技术,增强安全性,并提升了对Intel APX和Nvidia Blackwell GPU的支持。

开发
1 2 32 33 34 36 38 39 40 213 214