大型科技公司经常发布出乎意料地粗糙的代码,尽管他们雇佣了熟练的工程师并拥有充足的资源。这并非由于能力不足,而是源于高员工流失率——通常由薪酬结构激励——以及频繁的内部重组。工程师通常只在一个团队或代码库工作一到两年,四年后面临显著的降薪,这鼓励了跳槽。 这种持续的流动意味着许多更改是由“新手”进行的——那些刚入职、不熟悉代码,甚至不熟悉编程语言的人。虽然存在具有深刻系统知识的“老手”,但他们负担过重,他们的专业知识并未被公司积极培养或保留。 最终,大型科技公司优先考虑*内部可读性*——快速将工程师调动到不同项目上的能力——而不是长期的代码质量。这种刻意的权衡接受了一些“坏代码”作为快速部署人才到所需领域的后果,尤其是在像人工智能这样快速发展的领域。 个人工程师改变这种动态的能力有限,将责任归咎于他们会错失核心问题:大多数工作都在不熟悉的系统中完成。
请启用 JavaScript 并禁用任何广告拦截器。
编程语言ABC,对Python有重要影响,作者于1983-1986年间进行开发。源代码最初从cwi.nl下载,Luciano Ramalho在GitHub上也维护着一份副本。代码主要创作于1991-1996年(并于2021年进行了一些更新),目前针对32位系统,需要针对现代64位架构进行调整。 ABC由阿姆斯特丹数学中心基金会开发,虽然没有正式许可证,但带有1988-2011年的版权声明。作者计划与Steven Pemberton讨论,以获得MIT许可证。 ABC的主要贡献者包括Eddy Boeve、Frank van Dijk、Leo Geurts和Guido van Rossum,并于1990年出版了一本全面的程序员手册。更多信息请访问http://www.cwi.nl/~steven/abc.html。
## 华盛顿特区国民警卫队枪击事件:浮现的问题与持续调查 围绕近期华盛顿特区国民警卫队枪击事件,一项新的说法正引起关注:在事件发生*数小时*前,关于嫌疑人拉赫曼努拉·拉坎瓦尔(Rahmanullah Lakanwal)的谷歌搜索量在华盛顿特区急剧上升。虽然原因尚未确认,但时间点引发了关于潜在预先知情的疑问。11月26日凌晨2:24、3:28和上午8:00出现了搜索高峰,时间早于下午2:15的枪击事件。 可能的解释包括事件前的社交媒体活动或早期报道,以及与移民或拉坎瓦尔过去相关的网络内的搜索。值得注意的是,据报道拉坎瓦尔曾在阿富汗与美国合作的部队服役,这可能将他与美国情报机构联系起来。他的庇护申请于2025年4月在特朗普政府期间获得批准,这与最初将其归因于现任政府的说法相矛盾。 虽然较低的搜索量可能会造成误导性的高峰,但鉴于联邦机构和分析师的集中度,华盛顿特区的地理位置值得调查。虽然目前尚无证据,但内部机构知情的可能性不能被排除。进一步调查,包括潜在的数据验证,至关重要,以避免猜测并确保对事件的客观了解。
空中织机 - 3D飞行路径初始化 3D空间... N S E W W/A/S/D - 前进/左/后退/右 空格键 - 上升 Shift - 下降 鼠标 - 环顾四周 点击任意位置开始飞行
## 简化 `printf` 与状态管理 标准 C 库包含一系列 `printf` 函数(如 `printf`、`sprintf`、`vfprintf` 等),它们仅在输入/输出方法上有所不同。更高效的实现可以将它们整合到一个核心函数中处理格式化,并使用包装器管理具体的输入/输出。这可以将 12 个函数减少到几个可管理的函数。 作者提出一个通用的函数 `_vfsprintf`,它接受流/缓冲区、大小、一个“提交”函数指针、格式字符串和可变参数。这个“提交”函数处理实际的输出,从而提供灵活性——写入文件、缓冲区或其它位置。 为了高效地实现这一点,特别是对于需要输出限制的函数(如 `vsnprintf`),需要管理状态。C 语言缺乏直接的面向对象编程,因此状态使用一个 `struct`(如 `bufinfo`,包含索引和长度)传递给“提交”函数,作为 `void*`。这允许增量缓冲区写入,而无需全局变量,有效地模拟了类似对象行为。 这种方法展示了函数指针和细致的状态管理如何在 C 语言的约束下实现模块化和灵活性,从而反映了面向对象编程中的概念。
## 长期运行的AI代理:弥合上下文差距 开发能够处理复杂、多阶段任务(如构建一个webapp)的AI代理面临一个挑战:有限的上下文窗口。每个代理的“会话”都是从头开始的,缺乏对先前工作的记忆。Anthropic通过其Claude Agent SDK提出了一个两部分解决方案来解决这个问题。 首先,一个**初始化代理**设置环境——创建必要的文件,例如功能列表(详细说明所需的功能)和初始代码提交。其次,一个**编码代理**专注于*增量*进展,一次完成一个功能,并留下一个带有清晰文档和git提交的“干净”代码库。 成功的关键是提示代理通过日志和进度文件彻底理解现有状态,并严格测试已完成的功能(使用浏览器自动化等工具)。这可以防止代理过早地宣布任务完成或陷入重做先前工作的困境。 虽然这种方法显著提高了性能,但仍然存在疑问,即专门的代理(测试、质量保证)是否可以进一步提高结果,以及这些发现是否可以推广到web开发之外。这项工作代表着朝着可靠的、长远自主软件工程迈出的重要一步。
Molly Molly 是一个基于Signal的Android独立分支,具有改进的功能:
完全FOSS,不包含专有blob,与Signal不同。
多设备配对:将多个设备绑定到同一个账户。
Material You 额外主题,跟随您的设备配色方案。
自动锁定:当您离开一段时间后自动锁定。
RAM粉碎:安全地粉碎敏感数据。
torbrowser Tor支持:支持通过Orbot使用SOCKS代理和Tor。
以及更多。
新的更好功能即将推出。
基础设施由Bahnhof赞助。
网站/Logo由jaim3提供。