不变式:编写正确代码的利器

2025-01-12

本文探讨了编程中“不变式”的概念及其应用。作者从一个小例子——编写一个计算插入点的二分查找变体——出发,阐述了如何通过明确定义并维护不变式来编写正确的代码。 文中指出,不变式是一种在系统动态演变过程中始终保持的属性,它能够简化推理过程,避免因考虑多种执行路径而带来的复杂性。 作者还以Cargo、rust-analyzer和TigerBeetle等项目为例,展示了在大型系统中应用不变式带来的好处,例如提高代码可维护性和性能。最终,作者总结了不变式在小规模和大型编程中的重要作用,强调了其在编写正确且高效代码中的价值。

阅读更多
开发

零基础轻松掌握电学与电子学

2025-04-05

想学习电学和电子学基础知识及最新应用,但又不想参加正规课程?《自学电学与电子学》(第七版)是你的完美选择!两位经验丰富的讲师用清晰易懂的语言、循序渐进的教学方法,辅以详尽的插图和实际案例,帮助你快速掌握核心概念。本书更新了现代电子学内容,重点讲解集成电路和实际电子设计。此外,你还能获得在线考试,测试你的知识并找出需要进一步学习的领域。涵盖直流电路、交流电路、半导体、集成电路、放大器、无线电收发器、数字电路、Arduino等内容。

阅读更多
开发 电学

树莓派2的“氙气死亡闪光”:一个由社区解决的奇特硬件漏洞

2025-05-24
树莓派2的“氙气死亡闪光”:一个由社区解决的奇特硬件漏洞

2015年,树莓派2用户发现了一个奇特的硬件漏洞:相机闪光灯会让树莓派瞬间断电。这个被称为“氙气死亡闪光”的现象引发了社区的集体侦探行动。经过一番测试,他们发现罪魁祸首是U16电源调节芯片,其特殊的WL-CSP封装使裸露的硅芯片易受强光影响,从而导致设备崩溃。最终,社区不仅找到了解决方法(用Blu-Tack遮挡芯片),还促使树莓派基金会发布了改进的硬件版本。这个事件不仅展示了社区的力量,也凸显了现代电子设备小型化带来的潜在风险,以及对更全面测试的需求。

阅读更多
硬件 硬件漏洞

微软Edge浏览器推出Copilot模式:AI赋能的全新浏览体验

2025-07-29
微软Edge浏览器推出Copilot模式:AI赋能的全新浏览体验

微软发布了Edge浏览器的Copilot模式,这是一项实验性功能,利用AI技术重新定义网络浏览体验。Copilot模式通过整合搜索、聊天和导航功能于一体的输入框,理解用户意图并提供更快捷的浏览体验。它可以跨越多个打开的标签页理解上下文,帮助用户进行比较、决策并更高效地完成任务。Copilot模式还支持语音导航以及访问浏览器历史记录和凭据等高级功能(需用户授权),进一步提升用户效率。未来,Copilot模式将持续改进并添加更多功能,用户可随时在设置中关闭该模式。

阅读更多
科技

修复一台老旧的SparcStation 1+:一场与时间和硬件故障的拉锯战

2025-08-09
修复一台老旧的SparcStation 1+:一场与时间和硬件故障的拉锯战

作者从2018年开始尝试修复一台SparcStation 1+工作站,历经数年,最终在2025年取得重大进展。期间,他遭遇了各种硬件问题,包括硬盘驱动器故障、软驱故障、SCSI总线问题以及电源管理问题。通过更换烧毁的SCSI保险丝、使用SCSI模拟器以及反复尝试,他最终成功启动了SunOS操作系统。这个故事展现了硬件修复的复杂性和挑战性,以及作者的坚持和耐心。

阅读更多
硬件 Sun工作站

海军新年诗歌传统:诗意盎然的航海日志

2025-01-05
海军新年诗歌传统:诗意盎然的航海日志

美国海军有一个近百年的传统:在新年第一天凌晨的 值班日志中,值班军官可以用诗歌记录船只活动。这篇文章讲述了这个传统,并展示了不同时期海军军舰上的新年诗歌,从二战时期驱逐舰上的朴实记录,到现代驱逐舰上获奖诗歌的轻松幽默,展现了海军生活和文化的多样性。尽管随着电子设备的普及,这个传统逐渐式微,但它仍然是一个值得纪念的独特传统。

阅读更多

Duolingo 全面拥抱 AI:效率提升,内容扩张,未来可期

2025-04-29
Duolingo 全面拥抱 AI:效率提升,内容扩张,未来可期

Duolingo 宣布将成为一家 AI 优先的公司,这标志着其在利用人工智能提升效率和扩展内容方面迈出了重大一步。通过 AI,Duolingo 可以更快地创建教学内容,并开发出以前无法实现的功能,例如视频通话辅导。此举旨在加速其全球语言学习平台的扩张,并更好地实现其教学使命。虽然这需要对工作流程进行根本性的变革,但 Duolingo 承诺将支持员工适应并掌握 AI 工具。

阅读更多
科技

印度的“去中国化”:一场依赖中国的电子制造业革命

2025-08-14
印度的“去中国化”:一场依赖中国的电子制造业革命

印度雄心勃勃地计划取代中国成为全球电子制造中心,然而其战略却出人意料地依赖中国公司提供技术架构、制造技术和运营模式。例如,印度本土电子制造巨头Dixon Technologies,其发展壮大就离不开与多家中国公司的合作。这种依赖性模式已成为印度电子制造业发展的核心。尽管印度政府投入巨资,但其计划能否成功,取决于中印两国能否在激烈的经济竞争和地缘政治紧张局势下维持稳定的商业关系,这无疑是一个巨大的风险。

阅读更多
科技 中国技术

Lean 4.22:验证命令式程序的全新基础设施

2025-07-07

Lean 4.22 版本即将推出一个令人兴奋的新特性:用于证明命令式程序属性的全新验证基础设施。文章以一个简单的例子——判断列表中是否存在两个整数之和为零——展示了该特性的使用方法,并将其与 Dafny 和 Verus 等类似工具进行了比较。新框架 Std.Do 基于 Hoare 三元组,并结合了 mvcgen 和 grind 策略,极大地简化了命令式程序的验证过程,即使对于包含循环和提前返回的复杂情况,也能轻松应对。相比于依赖外部 SMT 求解器的自动化系统,Lean 的交互式证明方式更可靠、更易于调试和维护,这使得 Lean 在实际的程序验证任务中具有显著优势。

阅读更多

Figma:高效协作还是创意扼杀者?

2025-07-07
Figma:高效协作还是创意扼杀者?

本文作者回顾了Figma十年来的发展,从最初对其革新性的赞赏到如今对其过度工程化倾向的担忧。作者认为,Figma的特性如自动布局和开发模式,虽然提升了效率,却也限制了设计师在早期探索阶段的自由度和创造力,导致设计趋同。作者呼吁设计师警惕这种变化,提倡在设计过程中保持灵活性,重视早期阶段的探索和尝试,而非过早地追求结构和一致性。

阅读更多
设计

改变我对编程语言认知的论文和博文

2025-05-14
改变我对编程语言认知的论文和博文

作者分享了一系列改变其对编程语言和编译器理解的论文和博文,涵盖垃圾收集、代码优化、寄存器分配、正则表达式引擎、机器学习、SSA 形式、编译器设计等多个方面。这些文章以其简洁性、创新性和实用性,为作者提供了新的视角和思路,例如使用Z3作为证明引擎,利用模糊测试发现bug,以及高效的表达式解析方法等。文章体现了作者在持续学习和探索编程语言领域的深度和广度。

阅读更多
开发

React的默认霸权扼杀了前端创新

2025-09-15
React的默认霸权扼杀了前端创新

React凭借默认优势而非技术优势主导前端领域,这正在扼杀创新。团队选择前端框架时,往往默认选择React,而非根据项目需求选择最合适的工具。这导致Svelte、Solid和Qwik等具有技术优势的框架难以获得应有的关注。这些框架在编译优化、细粒度响应式和可恢复性方面超越React,但由于React的默认地位,它们很少得到公平评估。作者呼吁打破React的默认霸权,鼓励根据项目需求选择合适的框架,从而促进前端生态系统的多元化和创新。

阅读更多
开发

微软逆天调试神器TTD:穿越时空的代码调试

2025-03-13
微软逆天调试神器TTD:穿越时空的代码调试

微软的Time Travel Debugging (TTD)是一个强大的用户模式记录和回放框架,允许开发者像在时间线中穿梭一样调试程序。它通过注入DLL,捕获进程执行的每个状态,并存储在一个trace文件中。TTD的核心是Nirvana运行时引擎,它模拟CPU指令,实现细粒度的指令级控制。即使面对浮点运算、内存模型、外设模拟、自修改代码等挑战,Nirvana也能通过动态二进制翻译和代码缓存技术保证效率和精度。文章还描述了一个TTD在调试一个混淆的32位PE文件时遇到的bug,并解释了利用TTD自身的trace文件进行调试的优势。

阅读更多
开发 TTD 代码回放

Genie 3:感谢名单与幕后英雄

2025-08-06
Genie 3:感谢名单与幕后英雄

大型语言模型Genie 3的成功离不开众多研究人员和工程师的辛勤付出。这份冗长的感谢名单,致敬了从核心研发到视频制作的各个环节的贡献者,展现了团队合作的巨大力量,也体现了AI项目成功的背后往往需要一个庞大的支持网络。

阅读更多
AI

在死寂的C语言海洋中的一次Lisp冒险

2025-06-27

本文通过类C语言的视角,探讨了Lisp语言强大的抽象能力以及C语言的局限性。作者以函数为切入点,分析了函数参数的评估策略,指出C语言中参数的传值方式限制了对函数参数的控制,无法实现像Lisp中的if、while、cond等灵活的条件语句和循环语句。文章进一步探讨了闭包和运行时创建函数等高级特性,这些特性在C语言中都无法实现,最终总结了C语言在可扩展性方面的不足。

阅读更多
开发

重塑自我与自然:一场集体复兴之旅

2025-01-12
重塑自我与自然:一场集体复兴之旅

本文探讨了“自我重塑”的概念,呼吁人们重新与自然建立联系。作者指出,现代生活使我们与自然脱节,忘记了自然对人类生存的重要性。为了应对这一挑战,文章倡导“自我重塑”,鼓励人们通过多种方式——例如亲近自然、种植本土植物、关注野生动物等——重新与自然连接,恢复生态平衡,并最终促进人类福祉和环境可持续发展。这不仅是个人的旅程,更是一场集体行动,需要我们共同努力,重建与自然世界的联系。

阅读更多
杂项

商业白痴时代:科技巨头与AI的虚假繁荣

2025-05-21
商业白痴时代:科技巨头与AI的虚假繁荣

本文批判性地分析了当今科技行业中充斥的“商业白痴”现象。作者认为,许多科技公司高管缺乏对自身业务和技术的深入理解,盲目追逐短期利益和市场炒作,导致AI等技术的过度应用和资源浪费。他们将AI视为解决所有问题的万灵丹,而非真正关注客户需求和产品价值。这种现象的根源在于几十年来新自由主义思想的盛行,以及对股东价值的过度追求,导致企业管理层脱离实际,只关注表面数字,忽略产品质量和员工福祉。文章以大量案例,包括微软、谷歌、Meta等科技巨头,以及一些失败的创业公司,论证了这种现象的普遍性和危害性。最终,作者呼吁打破这种畸形的商业模式,重新重视技术价值、产品质量和员工权益。

阅读更多
科技

Hugging Face Spaces 推出 ZeroGPU:动态 GPU 分配提升 AI 模型效率

2024-12-15
Hugging Face Spaces 推出 ZeroGPU:动态 GPU 分配提升 AI 模型效率

Hugging Face Spaces 推出了 ZeroGPU,这是一个动态分配 NVIDIA A100 GPU 的共享基础设施,旨在优化 AI 模型和演示的 GPU 使用效率。ZeroGPU 支持免费 GPU 访问、多 GPU 支持,并能有效降低开发和部署 AI 模型的门槛。用户只需在创建 Gradio 空间时选择 ZeroGPU 硬件,并使用 `@spaces.GPU` 装饰器标记 GPU 相关函数即可。ZeroGPU 与 PyTorch 兼容,并针对 Hugging Face 的 transformers 和 diffusers 库进行了优化,但目前仅限于 Gradio SDK。个人账户(PRO 用户)最多可创建 10 个 ZeroGPU 空间,组织账户(企业版)最多可创建 50 个。

阅读更多

公民科学数据可靠地捕捉鸟类迁徙模式

2025-04-23
公民科学数据可靠地捕捉鸟类迁徙模式

一项新的研究表明,来自iNaturalist和eBird的公民科学数据可以可靠地捕捉到北加州和内华达州鸟类迁徙的季节性模式。研究人员将来自这两个平台的数据结合起来,即使这两个平台的目标用户和数据收集方式不同,也发现了超过97%的鸟类物种的季节性模式相似。这项研究证明了公民科学项目数据的价值,即使是由不同类型的观察者和项目结构产生的数据,也可以被整合以解决广泛的科学问题。

阅读更多
科技

dlclose 失败:Rust 和 C++ 库的诡异交互

2025-08-30

本文讲述了一个令人费解的调试故事:在使用 `dlclose`卸载动态链接库时,库 libA 成功卸载,但其依赖库 libB 却意外地残留在内存中。深入调查发现,问题根源在于 libB 中注册的线程局部存储 (TLS) 析构函数。由于线程未退出,这些析构函数未执行,导致 libB 无法卸载。启用日志记录后,问题消失,因为日志库也使用了 TLS,导致 libA 也无法卸载,从而维持了 libA 和 libB 的共享状态一致性。这个案例强调了理解 `dlclose` 行为以及 TLS 析构函数的影响的重要性,并建议使用 `LD_DEBUG` 环境变量进行动态链接库调试。

阅读更多

GlassFlow:Kafka 到 ClickHouse 的实时流式 ETL

2025-05-11
GlassFlow:Kafka 到 ClickHouse 的实时流式 ETL

GlassFlow 是一款针对数据工程师设计的实时流处理器,它简化了 Kafka 和 ClickHouse 之间数据管道的创建和管理。它提供了一个用户友好的界面,用于构建和管理实时数据管道,并内置了去重和时间连接等功能。GlassFlow 支持延迟事件处理,确保数据处理的准确性和一致性,并具有高吞吐量和低延迟的特点。通过直观的 Web 界面,可以轻松配置和监控管道,其强大的架构确保了可靠的数据处理。它支持本地开发和 Docker 部署,并提供了一个全面的演示环境,方便用户快速上手。

阅读更多
开发 实时处理

Swift与Erlang分布式Actor系统互通:跨语言Actor的优雅解决方案

2025-07-23
Swift与Erlang分布式Actor系统互通:跨语言Actor的优雅解决方案

一个名为`swift-erlang-actor-system`的新型Actor系统横空出世,它实现了Swift程序与Erlang分布式集群的无缝连接。通过包装Erlang的C节点功能,开发者可以使用Swift的分布式Actor与Erlang节点进行通信。该系统巧妙地利用了@StableNames宏来解决跨语言远程调用中的名称冲突问题,并支持自定义传输协议。这为Swift和Erlang的互操作性提供了优雅的解决方案,也为在iOS等苹果平台上运行Elixir应用铺平了道路。

阅读更多

JOVE 编辑器:跨平台编译与安装指南

2025-07-21
JOVE 编辑器:跨平台编译与安装指南

JOVE 是一款古老而强大的文本编辑器,本文档详细介绍了如何在 UNIX/Linux/macOS/BSD/Cygwin 系统上编译和安装 JOVE。安装过程涉及解压源代码、安装编译工具、运行构建脚本 `jmake.sh`(或手动配置 Makefile),以及根据系统选择合适的编译选项。文档还涵盖了多种系统的配置方法,包括 Debian、Alpine、macOS、FreeBSD 等,以及针对不同系统版本的特殊处理。此外,文档还介绍了 JOVE 的一些特性、使用方法和已知问题。

阅读更多
开发 编译安装

尝试追赶JIT编译器:优化内联缓存的错误方向

2025-03-13
尝试追赶JIT编译器:优化内联缓存的错误方向

这篇论文研究了通过添加动态二进制修改(DBM)到静态编译器(AoT)中来提高其性能的可能性。研究人员在Hopc AoT JavaScript编译器中添加了一种基于DBM的内联缓存(IC)优化,但实验结果表明,这种优化并没有缩短执行时间。研究发现,减少内存访问次数在现代架构上并不一定能提高速度,这挑战了以往的优化策略,并指出复杂的编译器优化只有在处理器无法自行加速代码时才值得付出努力。这一发现适用于AoT编译器和JIT编译器。

阅读更多

跳槽失败?从一次晋升失利中汲取的经验教训

2025-08-30
跳槽失败?从一次晋升失利中汲取的经验教训

作者在2021年从NCR跳槽到Splunk,却在三年内未能晋升。文章总结了作者的三个主要错误:1. 没有根据实际情况定义成功标准,而是依赖于面试时的说法;2. 在适应新环境时过于急躁,没有尊重公司文化,导致与团队成员关系紧张;3. 没有有效地与上级领导沟通,未能及时汇报工作进展。作者最终意识到,应该注重入职过程中的基础工作,而不是急于求成。这篇文章对职场新人,尤其是跳槽人士,提供了宝贵的经验教训。

阅读更多
创业

小行星贝努样本揭示生命起源线索

2025-02-03
小行星贝努样本揭示生命起源线索

NASA的OSIRIS-REx任务带回了小行星贝努的样本,分析结果显示其中含有地球生命所需的氨基酸和核碱基等分子,以及蒸发盐沉积物,表明早期太阳系可能广泛存在孕育生命的条件。这些发现虽然没有直接证明地外生命存在,但增加了生命可能在太阳系其他星球或卫星上形成的可能性。贝努样本中氨的含量尤其高,这对于氨与甲醛反应形成复杂分子至关重要。此次研究也强调了样本返回任务在探寻生命起源方面的关键作用。

阅读更多

五一劳动节的数学:麻花辫子与群论

2025-06-09
五一劳动节的数学:麻花辫子与群论

作者在五一劳动节参加同事聚会,聚会上传统的五月柱舞蹈引发了他的数学思考。他将舞蹈中彩带的编织与群论中的辫子群联系起来,发现传统的辫子群不足以描述五月柱舞蹈中的所有编织模式。他提出了一种新的群,称为“五月柱辫子群”,并用生成元和关系式对其进行了定义,解释了新的生成元和关系如何扩展了传统辫子群,从而能够更全面地描述五月柱舞蹈中的编织模式。

阅读更多
杂项 辫子群

大型语言模型如何理解代码中的空值?

2025-04-07

近年来,大型语言模型(LLM)在代码生成领域取得了显著进展,但它们是否真正“理解”代码仍是一个悬而未决的问题。本文研究了LLM对代码中空值(nullable)的理解,通过外部评估(代码补全)和内部探测(模型激活分析)两种方法,发现LLM能够学习并应用关于空值的编程规则,但其理解能力会随着规则复杂度和模型参数量的增加而变化。研究还揭示了LLM内部表示空值的方式,以及这种理解能力在模型训练过程中的发展轨迹。

阅读更多

AI写作助教:大学写作课的未来?

2025-08-05
AI写作助教:大学写作课的未来?

一位大学英语教授在课堂上进行了一项实验,让学生们自由选择是否使用AI辅助写作。结果显示,虽然学生们广泛使用AI进行头脑风暴和编辑,但他们更欣赏人工写作的深度和独特性。实验也揭示了AI写作的局限性,如缺乏个性和创意,以及容易产生雷同。最终,学生们投票决定仍然需要人类教师的指导,但对AI在写作过程中的作用持开放态度,这引发了关于高等教育中AI角色的深刻思考,以及AI是否能替代教师的讨论。

阅读更多
教育

轻量级网络行为分析器Vanta:一位本科生的致谢之作

2025-06-02
轻量级网络行为分析器Vanta:一位本科生的致谢之作

Vanta是一款轻量级、快速的命令行网络行为分析器,它能够重建协议级数据流并从捕获的数据中提取结构化活动。不同于Wireshark等功能强大的GUI工具,Vanta专注于简洁性、结构性和易用性,非常适合自定义脚本和最小化设置。它支持HTTP、DNS和TLS协议解析,能够自动重建双向数据流,并以简洁的JSON格式输出结果。该项目由一位本科生在MacBook Air M1上开发完成,作为对支持国际学生的大学的感谢。

阅读更多
开发
1 2 764 765 766 768 770 771 772 1084 1085