In retrospect, DevOps was a bad ideaa year agohttps://rethinkingsoftware.substack.com/p/in-retrospect-devops-was-a-bad-ideaDevOps最初通过让开发人员参与生产流程改进了部署效率。DevOps的命名导致专门团队的出现,反而再次隔离了运维职能。如今的DevOps团队限制而非赋能开发者,与初衷背道而驰。标准化和合规要求常阻碍开发团队,而非提供支持。安全应聚焦透明度和可审查性,而非设置访问壁垒。DevOps角色固化后,具备生产意识的工程师反而离开了产品团队。平台工程正在重蹈DevOps的覆辙。
Pidgin 3.0 Experimental 2 (2.91.0) has been releaseda year agohttps://discourse.imfreedom.org/t/pidgin-3-0-experimental-2-2-91-0-has-been-rele...Pidgin 3.0 第二个实验版本 (2.91.0) 已作为预发布里程碑版本推出不建议普通用户使用,主要面向开发者和技术爱好者缺失功能:局域网消息传输(Bonjour)将推迟到实验版3.0实现未来版本计划:实验版3 (2.92.0) 于2025年6月30日前发布,Alpha 1版于2025年12月31日前发布主要亮点:排序后的会话成员列表、搜索功能、新消息通知以及IRC格式支持libpurple和Pidgin的重大变更,包括API更新和错误修复欢迎通过代码贡献、捐款和周边商品购买支持项目发展
AI Ambivalencea year agohttps://nolanlawson.com/2025/04/02/ai-ambivalence/作者在计算语言学领域的背景及其对AI语言处理方法的质疑最初因偏好手动编码和对AI能力存疑而避免在编程中使用生成式AI使用Claude和Claude Code后观念转变,承认AI在单元测试生成和代码库审查等编程任务中的实用性对生成式AI可能削弱软件开发乐趣与创作过程的担忧对生成式AI的矛盾态度:认可其强大能力但反感其对行业及个人工作流程的影响关于AI对人类创造力及软件开发等职业未来影响的深度思考探讨后AI时代人类面临的身份认同危机,以及在工作之外寻找人生意义的命题
Kerrick's Wager: On the Future of Manual Programminga year agohttps://kerrick.blog/articles/2025/kerricks-wager/Steve Yegge预测未来开发者将管理AI代理而非手动编写代码。作者提出'Kerrick的赌注'——一种受帕斯卡赌注启发的风险管理策略,用于决定是否投入学习代理式软件开发技能。学习代理式开发的潜在好处包括职业相关性和更高收入,而若未来仍以手动编程为主则成本几乎可忽略。作者计划投入时间和资金学习代理工具与技术,例如阅读相关书籍和实验AI代理。评论反映出对保持技术领先的支持,并指出代理式编程令人上瘾的特性。
Git's initial commita year agohttps://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290Git被描述为一个‘愚蠢的内容跟踪器’,它能高效管理目录内容。‘git’这个名字有多种解读方式:可以只是简单的三个字母组合,也可以代表‘全球信息追踪器’,或者当它出错时被戏称为‘该死的愚蠢垃圾车’。Git主要基于两大抽象概念运行:‘对象数据库’和‘当前目录缓存’。对象数据库是一个内容可寻址的对象集合,每个对象通过其内容的SHA1哈希值进行标识。数据库中的对象经过zlib压缩,并包含类型标签和大小信息。对象类型主要有:‘blob’(二进制数据)、‘tree’(目录结构)和‘changeset’(变更历史)。变更集引入了历史概念,会链接到父变更集并包含注释,但本身不包含信任或有效性机制。Git的信任机制来自外部数字签名,因为Git本身仅确保内容完整性。‘当前目录缓存’(.dircache/index)是一个二进制文件,能高效表示特定时刻的目录状态。目录缓存既可重新生成其缓存的完整状态,也能高效发现缓存状态与当前状态之间的差异。
Why Companies Don't Fix Bugsa year agohttps://idiallo.com/blog/companies-dont-fix-bugs一位名叫t0st的独立程序员通过13行代码调整,修复了GTA Online存在8年之久的加载时间过长问题。Rockstar Games奖励了t0st一万美元赏金并更新了游戏,但网友批评该公司竟遗漏如此明显的修复方案。真正的问题并非开发人员懒惰,而是企业优先事项错位——简单的修复在官僚主义和多方需求拉扯中被埋没。漏洞常因'需求管理暴政'、责任人频繁更换、'快速修复'的谬论以及隐形投资回报率而得不到解决。这个故事揭示了大型公司如何将利润置于用户体验之上,直到外部压力迫使其采取行动。
Native frame transposition coming to Emacs 31a year agohttps://p.bauherren.ovh/blog/tech/new_window_cmdsEmacs 31中引入的新窗口命令,取代了有缺陷的transpose-frame.el包。Transpose-frame.el依赖复制窗口状态的方式存在缺陷,需要进行彻底重写。与Martin Rudalics合作开发了新的C语言层代码,用于'复活'窗口对象。新命令包括:调换、旋转(顺时针/逆时针)、翻转(水平/垂直)以及循环(轮转窗口)。这些命令功能强大,适用于任何复杂的窗口布局,而不仅限于简单布局。
MCP in production: the good, the bad and the uglya year agohttps://raduloff.dev/blog/2025-04-11-mcp-in-production-the-good-the-bad-and-the-...鲍里斯·拉杜洛夫分享他在生产环境中使用MCP(机器通信协议)的经验他为保加利亚一家建材公司开发定制化网页应用,取代纸质记录和笔记软件,帮助销售人员记录工地走访数据最初设计的用户界面遭到销售人员抵触,促使团队转向基于MCP的聊天机器人交互模式MCP协议实现了与Claude桌面端的快速集成,从而访问MongoDB中的客户与销售数据尽管搭建数据交互工具非常便捷,但调试和部署环节存在显著挑战针对MCP三大核心功能(资源/工具/提示)的评估显示,工具模块实用性最为突出拉杜洛夫认为当前协议设计过度复杂,尚未达到大规模应用成熟度虽然持续看好文本语音交互的未来发展,但质疑MCP现有架构的市场可行性
Karpathy's 'Vibe Coding' Movement Considered Harmfula year agohttps://nmn.gl/blog/dangers-vibe-coding卡帕西提出的'氛围编程'主张将代码理解完全交给AI工具,这种做法可能带来危害作者亲身经历了AI生成代码导致的问题,强调理解代码和保持知识所有权的重要性当开发者不理解自己的代码时会产生技术债务,最终形成难以维护的黑箱解决方案未经审查的AI生成代码会带来安全隐患,例如暴露API密钥等敏感信息建议采取平衡方法:将AI作为辅助工具,同时保持深度理解并建立代码审查机制关键实践包括保持清晰的架构视野、将AI生成的代码分解为小块、进行彻底测试真正的工程卓越在于构建可维护、可理解的系统,而非仅仅追求快速解决方案
The Bitter Predictiona year agohttps://4zm.org/2025/04/05/bitter-prediction.html作者描述了在编程中使用AI工具的情感历程,从兴奋到忧虑。使用Claude Code进行Rust代码重构效率极高,却导致编码乐趣的丧失。这种体验让作者联想到游戏作弊——知道捷径存在反而让游戏变得索然无味。AI工具可能使编程变得不再有趣,即便是作为爱好,当知道AI能做得更好时。AI工具的使用成本令人担忧,日常开支可能形成准入门槛。AI工具可能加剧全球不平等,因为许多人负担不起这些工具。运行AI模型的数据中心对环境的影响是另一个隐忧。尽管个人持保留态度,作者认为出于经济效益,AI驱动开发将成为必然。他们预测未来的软件开发将变得不再有趣。
AI isn't ready to replace human coders for debugging, researchers saya year agohttps://arstechnica.com/ai/2025/04/researchers-find-ai-is-pretty-bad-at-debuggin...人工智能被广泛应用于软件开发中,从代码辅助到应用程序构建都有涉及。由于调试能力不足,AI代理目前尚无法取代大多数程序员。微软研究院开发了debug-gym工具来提升AI的代码调试能力。debug-gym为AI模型提供了设置断点、代码导航等调试工具。使用debug-gym后AI模型表现有所提升,但仍落后于人类开发者。交互式调试工具能帮助AI代理更有效地处理现实中的软件开发任务。仍需人工监督审核AI提出的修复方案,确保其符合具体上下文逻辑。
The Problem with "Vibe Coding"a year agohttps://dylanbeattie.net/2025/04/11/the-problem-with-vibe-coding.html迪伦·比蒂探讨了软件开发中“程序”与“产品”的区别。程序具有快速、实验性质,通常缺乏健壮性,专为个人使用或即时任务而设计。产品则需要考虑国际化、身份认证、可扩展性等广泛因素,远不止功能性代码。将可运行的程序转化为可行产品所需的工作量远超初期编码,这凸显了开发者预估时的乐观倾向。Copilot和ChatGPT等工具让更多人能创建实用程序,但这与产品开发存在本质区别。
Ten Commandments of Goa year agohttps://bitfieldconsulting.com/posts/commandmentsGo语言强调简洁性、共识和采用标准实践,而非追求创造性或巧妙性。测试应当优先进行,重点关注行为而非功能,以确保解耦和易于测试。避免为用户创造不必要的复杂性或‘文书工作’;目标是提供零文书库,并设置合理的默认值。程序不应意外终止;应优雅处理错误,避免在包中使用panic或os.Exit。通过合理使用defer确保资源清理,并负责任地管理goroutine,防止资源泄漏。设计库时应保持灵活性——接收接口类型但返回结构体类型,避免对用户选择施加不必要的限制。保持组件间清晰的边界,防止关注点跨越边界造成泄漏。除非必要,避免在内部使用接口;优先选择具体类型以保证代码清晰和简洁。谨慎盲从最佳实践,需理解上下文并对每种情况保持批判性思考。
The Impact of MCP and LLMs on Software Development – A Practical Examplea year agohttps://wundergraph.com/blog/mcp-impact-on-software-development模型上下文协议(MCP)通过使大语言模型能够在软件开发中执行复杂任务而增强其能力,同时最小化人工干预。MCP支持一次性完成任务,例如探索API模式、编写GraphQL查询或配置路由器,无需深厚的领域知识。场景1:MCP通过获取GraphQL API模式并验证查询来帮助前端开发人员,简化功能实现流程。场景2:'梦想查询工作流'利用MCP提出并验证GraphQL模式变更,使API设计更加简单。场景3:MCP通过结合JSON模式与文档搜索,辅助配置复杂软件(如Cosmo路由器)。MCP的灵感来自语言服务器协议(LSP),且与模型和工具无关,可增强各类开发者工具。安全考量包括本地运行MCP服务器或通过SSE通信时的潜在漏洞风险。结合代理模式(Agent Mode)的MCP将变革软件开发,使开发者能高效自动化多步骤流程。
arXiv moving from Cornell servers to Google Clouda year agohttps://info.arxiv.org/hiring/index.htmlarXiv隶属于康奈尔理工学院,是康奈尔大学的研究生校区和研究中心所有arXiv员工均为康奈尔大学正式雇员,享有终身教职员工编制及福利待遇不提供签证担保,候选人须已具备在美合法工作身份arXiv总部设于纽约市康奈尔科技校区,优先考虑本地候选人,但接受混合办公/远程工作模式arXiv CE(云端版)项目旨在将服务从虚拟机迁移至谷歌云平台,以实现扩展性与现代化转型arXiv CE项目的核心目标包括:替换遗留代码(Perl/PHP)、实现论文异步处理、服务容器化、改进监控与日志系统现代化改造将使arXiv能拓展学科领域、优化元数据、解决作者身份模糊问题并提升可访问性现开放三个软件工程岗位:全栈软件工程师、云运维专家(DevOps方向)、科学家/软件开发员(研究者支持方向)
Vibe Coding, Vibe Checking, and Vibe Blogginga year agohttps://www.oreilly.com/radar/vibe-coding-vibe-checking-and-vibe-blogging/将'氛围编码'(vibe coding)定义为一种实践:AI无需逐行审查即可生成代码,该术语由Andrej Karpathy首创个人编程习惯的演变:从严格代码审查转向在个人项目中采用'氛围检查'进行策略性验证实战案例:使用Claude AI将250个HTML文件转为Markdown格式,全程未审查生成脚本探讨与Claude等AI工具的信任机制,对比传统软件开发实践提出操作系统应设置'限制执行模式'以安全运行未经审查的AI生成代码引入'氛围检查'概念:通过简单脚本来验证AI生成代码的基础正确性基于'氛围检查'结果的反馈循环,迭代优化AI生成代码平衡'氛围编码'的速度与可靠性:轻量级验证方法的价值展望未来AI工具自动建议合适'氛围检查'并实现半自主运行'氛围博客'的元应用:AI辅助撰写博文,体现'氛围编码'原则反思人机协作创作过程中人类监督的关键作用总结'氛围驱动'对降低创意项目与原型开发门槛的重要意义
Efficient Code Search with Nvidia DGXa year agohttps://developer.nvidia.com/blog/spotlight-qodo-innovates-efficient-code-search...大语言模型(LLMs)能帮助更快编写代码,但在处理复杂任务时存在局限性Qodo是一个AI驱动的平台,通过代码编写、测试和审查智能体提升软件质量Qodo的AI具有深度上下文感知能力,能理解代码意图、模式和结构Qodo采用检索增强生成(RAG)技术,并基于NVIDIA DGX训练了专用代码嵌入模型该平台维护最新的代码库索引,确保生成准确的代码和测试用例Qodo实施语言特定的分块处理技术,有效管理大型代码文件Qodo的嵌入模型通过聚焦语法、依赖关系和API使用来提升代码检索效果该嵌入模型使用NVIDIA DGX 8x A100 80GB节点进行高效训练Qodo微调了Qodo-Embed-1-1.5B和Qodo-Embed-1-7B模型,达到最先进的准确率与NVIDIA合作的案例研究表明,使用Qodo组件显著提高了代码搜索准确率Qodo模型已在Hugging Face平台开放供实验使用
AMD 2.0 – New Sense of Urgencya year agohttps://semianalysis.com/2025/04/23/amd-2-0-new-sense-of-urgency-mi450x-chance-t...AMD在过去四个月里在AI软件栈方面取得快速进展,采用'开发者优先'策略并改进CI/CD集成AMD对AI软件工程师的薪酬显著低于英伟达等竞争对手,导致人才留存面临挑战与英伟达CUDA相比,ROCm缺乏一流的Python支持,影响开发者体验和性能优化AMD的RCCL与英伟达NCCL的差距正在扩大,NCCL已引入GPUDirect异步传输和用户缓冲注册等高级功能AMD内部开发集群不足以支撑长期竞争力,短期爆发模式阻碍创新AMD的MI325X和MI355X客户兴趣低迷,尤其对比英伟达GB200 NVL72等机架级解决方案AMD计划6月推出社区开发者云,试图复制谷歌TPU研究云的成功模式英伟达CUDA凭借庞大的外部开发者生态蓬勃发展,而AMD在缺陷修复和功能采纳方面进展缓慢AMD的软件基础设施(Kubernetes/SLURM/Docker)落后于其机器学习库,需要更多投入AMD缺乏对分拆式预填充和NVMe键值缓存分层等关键推理功能的支持,落后于英伟达Dynamo框架
Stop Writing If-Else Trees: Use the State Pattern Insteada year agohttps://maxim-gorin.medium.com/stop-writing-if-else-trees-use-the-state-pattern-...状态模式允许对象根据其内部状态改变行为,从而消除复杂的if-else或switch语句现实中的类比是智能手机具有不同通知模式(正常、震动、静音),每种模式决定手机接到来电时的行为方式状态模式由三部分组成:上下文(如手机)、状态接口(如PhoneState)和具体状态类(如NormalState、VibrateState、SilentState)状态转换可由上下文或状态对象自身管理,使代码更具模块化且易于维护当对象具有多个行为差异明显的状态(尤其是未来可能新增状态)时,该模式优势显著状态模式的优点包括:代码组织更清晰、消除复杂条件判断、符合开闭原则、封装状态转换逻辑缺点涉及:类数量增加导致复杂度上升、可能出现状态爆炸、状态与上下文耦合紧密、新手学习成本较高Dart语言通过Phone类将行为委托给状态对象实现该模式,展示了手机如何根据当前状态改变来电响应局限性体现在:需谨慎管理状态转换,对于状态较少的简单场景可能引入不必要复杂性状态模式特别适合具有行为随模式/阶段变化的系统,能为成长型系统提供良好的可扩展性和可维护性
Homebrew 4.5.0a year agohttps://brew.sh/2025/04/29/homebrew-4.5.0/Homebrew 4.5.0 版本对 brew bundle 和服务功能进行了重大改进。现已初步支持 Linux 平台的 cask 安装(存在部分限制)。官方正式推出支持等级制度,明确不同功能的支持级别。新增 Tier 2 级别的 ARM64 Linux 支持,未来有望升级至 Tier 1。现需 Ruby 3.4.3 版本,并默认启用 Bootsnap 以提升性能。新增多项功能如 brew install --ask 和 brew update-if-needed,同时弃用部分旧特性。现支持 GCC 15 编译器,并优化了 pyenv 和 PowerShell 自动补全功能。macOS 平台的 .pkg 安装包现在可自动升级现有 Homebrew 环境。已改用基于 SSH 的 Git 提交签名,并新增 Workbrew 常见问题解答。接受通过 GitHub Sponsors、Patreon 等多种渠道的捐赠支持。