2025-09-16

44 篇热帖

2. Top UN legal investigators conclude Israel is guilty of genocide in Gaza (www.middleeasteye.net)

Most authoritative report by the UN on genocide paves way for ICJ ruling, authors tell Middle East Eye

3. Things you can do with a Software Defined Radio (2024) (blinry.org)

Last week, I went on an adventure through the electromagnetic spectrum!

5. I feel Apple has lost its alignment with me and other long-time customers (morrick.me)

A reaction and assorted observations about Apple's September 9 Awe-Dropping event.

7. Asciinema CLI 3.0 rewritten in Rust, adds live streaming, upgrades file format (blog.asciinema.org)

News about asciinema development and new releases

8. macOS Tahoe (www.apple.com)

macOS Tahoe with a new design, more ways to work seamlessly across devices, and new features to turbocharge productivity every day.

9. "Your" vs. "My" in user interfaces (adamsilver.io)

Adam Silver – interaction designer – London, UK

10. React is winning by default and slowing innovation (www.lorenstew.art)

Exploring how React's dominance by default stifles frontend innovation, and why deliberate framework choices lead to better tools for performance, developer experience, and ecosystem diversity.

11. Internet Archive's big battle with music publishers ends in settlement (arstechnica.com)

The true cost of keeping the Internet Archive alive will likely remain unknown.

12. Java 25 officially released (mail.openjdk.org)

JDK 25(Java 25 的参考实现)已正式发布(GA)。其构建版本 36 在2025年8月15日作为第二个候选版本发布后,未报告 P1 级缺陷,因此成为正式生产版本。

Oracle 提供的 GPL 许可 OpenJDK 构建版本可在以下地址获取: https://jdk.java.net/25

其他供应商的构建版本预计将很快可用。

此版本包含 18 个 JEP,具体如下:

  • 470: PEM 编码的加密对象(预览)
  • 502: 稳定值(预览)
  • 503: 移除 32 位 x86 端口
  • 505: 结构化并发(第五次预览)
  • 506: 作用域值
  • 507: 模式、instanceof 和 switch 中的原始类型(第三次预览)
  • 508: 向量 API(第十次孵化)
  • 509: JFR CPU 时间分析(实验性)
  • 510: 密钥派生函数 API
  • 511: 模块导入声明
  • 512: 紧凑源文件与实例主方法
  • 513: 灵活的构造器主体
  • 514: 提前编译命令行人机工程学
  • 515: 提前编译方法分析
  • 518: JFR 协作采样
  • 519: 紧凑对象头
  • 520: JFR 方法计时与跟踪
  • 521: 分代 Shenandoah

此外,此版本一如既往地包含了数百项小型增强和数千个缺陷修复。

13. FBI couldn't get my husband to decrypt his Tor node so he was jailed for 3 years (old.reddit.com)

(Eastern District of Michigan - Detroit) My husband, Conrad Rockenhaus, is wrongly incarcerated in a county jail. I’m posting this here because...

18. Microsoft Favors Anthropic over OpenAI for Visual Studio Code (www.theverge.com)

Microsoft is favoring Anthropic’s AI models over OpenAI for Visual Studio Code. It’s also recommending that Microsoft’s developers to use Claude 4.

21. If all the world were a monorepo (jtibs.substack.com)

The R ecosystem and the case for extreme empathy in software maintenance

22. Microsoft to force install the Microsoft 365 Copilot app in October (www.bleepingcomputer.com)

Next month, Microsoft will begin automatically installing the Microsoft 365 Copilot app on Windows devices outside the European Economic Area (EEA) region that have the Microsoft 365 desktop client apps.

24. Self Propagating NPM Malware Compromises over 40 Packages (www.stepsecurity.io)

The Shai-Hulud worm has infected over 500 NPM packages including @ctrl/tinycolor in an unprecedented self-propagating supply chain attack. The malware harvests AWS/GCP/Azure credentials using TruffleHog, establishes persistence through GitHub Actions backdoors, and automatically spreads to other maintainer packages - marking the first successful worm attack in the NPM ecosystem.

26. Massive Attack turns concert into facial recognition surveillance experiment (www.gadgetreview.com)

Massive Attack used live facial recognition technology on concertgoers, turning surveillance into provocative art that sparked debate about privacy.

29. The Sagrada Família Takes Its Final Shape (www.newyorker.com)

In the century since Antoni Gaudí died, his wild design has been obsessively realized, creating the world’s tallest church—and an endlessly debated icon. D. T. Max reports.

30. William Gibson Reads Neuromancer (2004) (bearcave.com)

本文对比了两位科幻作家在书面与口头表达上的差异,并重点介绍了威廉·吉布森朗读其作品《神经漫游者》的珍贵音频资源。

作家雷·布拉德伯里的文字优美,但演讲表现往往笨拙、令人不适。与此相反,威廉·吉布森的口头表达与其复杂的书面世界观和句式结构高度一致。纪录片《No Maps for These Territories》通过采访展现了他的思维模式与关联性视角。

这种一致性使得吉布森亲自朗读自己作品的效果尤为突出。他早期曾为《神经漫游者》录制过删节版有声书,该作品使他成名并创造了“赛博空间”一词。此音频仅以磁带形式发行,已绝版多年。

作者认为如此精彩的朗读不应失传或无法获取,因此提供了从磁带转录的MP3格式文件下载链接。作者声明提供这些文件是基于其已长期绝版的事实,并强调艺术家应为其作品获得报酬,期望出版方能重新发行此音频,让吉布森获得版税。同时,他呼吁喜欢吉布森的读者能共同备份文件以防其丢失。

文章提供了八段MP3音频的下载链接,对应四盘磁带的AB面。此外,还附有《神经漫游者》的在线文本链接,供读者预先了解内容,并鼓励读者购买正版书籍支持作者。最后,该文是“Book review table of contents”目录的一部分。

31. What's New in C# 14: Null-Conditional Assignments (blog.ivankahl.com)

C# 14, coming with .NET 10, introduces null-conditional assignment, a feature that lets you safely assign values to properties or indexers without endless if statements. Learn more about this new feature in this article.

32. Europe is locking itself in to US LNG (davekeating.substack.com)

The US energy secretary says the quiet part out loud: the tributary $750 billion in energy purchases the EU has promised in its Trump deal is meant to lock Europe into "long-term" energy dependence.

33. A new experimental Google app for Windows (blog.google)

Today, we’re launching a new experimental Google app for Windows in Labs to help you find what you need, faster.Now you can search without switching windows or interrupt…

34. Linux phones are more important now than ever (feddit.org)

网站管理员部署了Anubis系统来保护服务器,以应对AI公司大规模抓取网站造成的负载和停机问题。Anubis采用类似Hashcash的工作量证明方案,旨在使大规模抓取变得昂贵,而在个人使用中影响可忽略。这是一个临时解决方案,用于争取时间改进指纹识别和无头浏览器检测技术。系统依赖于现代JavaScript特性,因此需要禁用JShelter等可能干扰的浏览器插件。

36. The Ruliology of Lambdas (writings.stephenwolfram.com)

Stephen Wolfram explains the rich ruliology of lambdas, made particularly significant by their connection to practical computing. Covers basic computations to undecidability to multiway graphs and evaluation strategies.

37. Just Use HTML (gomakethings.com)

文章总结:《直接使用HTML》

本文主旨是批评在项目中过度使用 JavaScript 来生成 HTML 的做法,倡导以 HTML 为基础,仅在必要时用 JavaScript 增强功能。

主要观点

  • JavaScript 生成 HTML 的弊端:作者认为,与直接使用 HTML 相比,用 JavaScript(如 React/JSX)生成 HTML 会导致:

    • 性能问题:加载和运行速度更慢。
    • 可靠性问题:代码更易出错。
    • 可维护性问题:代码更难理解和推理。
    • 开发体验问题:代码形态与最终输出(HTML)不一致。
  • 正确的角色定位:JavaScript 的理想用途是增强和扩展现有 HTML,添加 HTML 本身无法(或尚无法)处理的交互性,而非从头构建 HTML 结构。

实例分析

1. 表单提交

  • 复杂做法(React 受控组件):通过 onChange 事件同步状态与输入值,形成循环。提交逻辑常绑定在按钮点击事件上,破坏了原生的表单提交(如回车键提交)和可访问性。
  • 推荐做法
    • 基础:直接使用 HTML <form> 元素,设置 actionmethod,利用浏览器原生行为处理提交和基本验证(如 required 属性)。
    • 增强:用少量 JavaScript 拦截表单的 submit 事件,使用 FormData API 获取数据并异步提交(如通过 fetch)。这种方式代码更简洁,并保留了原生功能。

2. API 响应渲染表格

  • 复杂做法:从 API 获取 JSON 数据,在客户端用 JavaScript 循环生成 <table> 的 HTML 结构并插入 DOM。
  • 推荐做法:让后端 API 直接返回渲染好的 HTML 片段,客户端只需获取文本并插入容器即可。这减少了客户端的工作量。

工作流与结论

  • 工作流转变:采用“HTML 优先”的方法意味着将更多界面生成工作转移到后端。
  • 最终好处:作者认为这种转变是积极的,能够产出更快速、更简单、行为更可预测和可靠的应用程序。
40. Why do we keep gravitating toward complexity? (kyrylo.org)

软件开发中复杂性的吸引力与简单性的智慧

复杂性为何备受青睐

尽管“保持简单”是知名原则,开发者却常被复杂性吸引。文中将此比作金字塔建造——如今我们用代码构筑同样宏伟的结构。营销是首要驱动力:一个多功能“Penzilla”笔或“catzilla”工具比基础产品更具卖点。复杂性常被包装为专业、高端和排他的象征,引发敬畏感。

复杂性的内在缺陷

如同金字塔内部可能空无一物,过度抽象的软件架构可能掩盖实质内容的匮乏,导致维护困难。复杂性大声宣扬存在感,而简单性则含蓄地展现其价值。长期来看,能稳妥解决问题的简单方案往往胜出。

典型案例:React与原生JavaScript

文中以React为例,指出其引入了渲染模型、状态管理、路由等概念,形成认知负担。而简单方案是按需使用原生JavaScript。但行业趋势与企业宣传使得拥护框架成为常态,简单替代方案常被忽视。

深层原因剖析

超越营销因素,开发者倾向复杂性还有内在动因:

  1. 创造性诱惑:构建复杂系统带来智力挑战的满足感,易导致过度工程化。
  2. 历史包袱:在遗留系统中,受限于时间和预算,常堆叠复杂度而非简化。
  3. 团队协作:大团队中不同成员为“未来 proof”添加抽象层,可能形成无人完全理解的复杂整体。
  4. 创新压力:竞争环境中,新功能和复杂设计成为差异化的常见(但非有效)方式。

明智构建的启示

文章最后呼吁:若要构建“金字塔”,应目标明确、根基稳固,内含真正价值,而非留下让维护者困扰的复杂迷宫。在编码时,开发者应自问:这是为用户和维护者解决实际问题,还是单纯沉溺于智力游戏?

41. Trucker built a scale model of NYC over 21 years (gothamist.com)

Joseph Macken said he did the project as a hobby in his upstate basement.

42. Imperial Tyranny, Korean Humiliation (english.hani.co.kr)

This incident should prompt us in Korea to comprehensively reassess our investment projects in the US

43. Implicit ODE solvers are not universally more robust than explicit ODE solvers (www.stochasticlifestyle.com)

A very common adage in ODE solvers is that if you run into trouble with an explicit method, usually some explicit Runge-Kutta method like RK4, then you should try an implicit method. Implicit methods, because they are doing more work, solving an implicit system via a Newton method having “better” stability, should be the thing you go to on the “hard” problems. This is at least what I heard at first, and then I learned about edge cases. Specifically, you hear people say “but for hyperbolic PDEs you need to use explicit methods”. You might even intuit from this “PDEs can have special properties, so sometimes special things can happen with PDEs… but ODEs, that should use implicit methods if you need more robustness”. This turns out to not be true, and really understanding the ODEs will help us understand better ... READ MORE