2025 01 24 HackerNews

root 提交于 周四, 01/23/2025 - 20:39

2025-01-24 Hacker News Top Stories #

  1. 开源笔记本电脑从零开始:一位开发者从零开始创建一台开源笔记本电脑,旨在打造一台具有现代商用超薄笔记本电脑的特点的设备。
  2. TabBoo:TabBoo 是一个浏览器扩展程序,通过添加随机的“惊吓”效果来帮助用户避免访问某些网站。
  3. 如何改善在家工作的照明环境:均匀的漫射照明环境对眼睛最为有益,自然光是最好的选择,但需要通过滤光窗帘或百叶窗来调节强度。
  4. Tailwind CSS v4.0:Tailwind CSS v4.0 是一个全新的框架版本,优化了性能和灵活性,提供了重新设计的配置和自定义体验,并充分利用了最新的 Web 平台功能。
  5. 联邦法院裁定后门搜索数据违宪:美国联邦法院最近做出了一个具有里程碑意义的判决,宣布后门搜索 702 数据违宪。
  6. 信息管理:一个提议:蒂姆·伯纳斯-李于 1989 年提出的万维网的概念,使得互联网变得更加易用和友好。
  7. F-Droid 回顾 2024 年的进展和 2025 年的计划:F-Droid 社区回顾了 2024 年的进展,包括去中心化应用分发、扩展 F-Droid 生态系统和加强基础设施等方面的工作。
  8. API 设计的两种主要模型:RPC 和 REST:API 设计的两种主要模型是 RPC 和 REST,RPC 模型将可寻址实体视为过程,而数据隐藏在过程后面;而 HTTP 模型则将可寻址实体视为数据实体(称为资源),行为隐藏在数据后面。
  9. 黑客攻击 Subaru 汽车公司的 STARLINK 系统:作者和他的朋友 Shubham Shah 发现了 Subaru 的 STARLINK 系统中的一个安全漏洞,这个漏洞允许他们访问和控制所有连接到该系统的汽车。
  10. C stdlib 不是线程安全的,即使安全的 Rust 也无法避免问题:EdgeDB 团队在调试一个软件问题的过程中遇到的挑战,发现 getenv 函数在某些情况下会崩溃

Show HN: I made an open-source laptop from scratch #

https://www.byran.ee/posts/creation/

本文介绍了一位开发者从零开始创建一台开源笔记本电脑的过程。开发者旨在打造一台具有现代商用超薄笔记本电脑的特点的设备,包括高分辨率显示屏、机械键盘、长续航时间等。开发者选择了 Rockchip RK3588 芯片作为笔记本电脑的核心,RK3588 具有四核 A76 和四核 A55 处理器、Mali-G10 GPU、6TOPs NPU 和 8K@60FPS 解码器等特点。

开发者使用 FriendlyElec CM3588 SoM(系统模块)作为 RK3588 的载体,CM3588 具有良好的文档支持和易于集成的特点。开发者还选择了一块 4K AMOLED 13.3 英寸显示屏,通过反向工程和调试,成功使显示屏在 Linux 系统上运行。开发者使用 ESP32-S3 模块作为笔记本电脑的控制器,负责电源管理、键盘和触摸板等功能。

开发者还设计了笔记本电脑的电源系统,包括 60Wh 的锂离子电池组和 BQ25713 充电 IC,能够实现高效的充电和放电。开发者使用 Ubuntu 24.04 LTS 和 Linux 内核 6.1 作为笔记本电脑的操作系统,通过 DeviceTree 配置语言实现了硬件的初始化和配置。开发者还实现了键盘和触摸板的无线连接,使用 Cherry MX ULP 机械开关和 nRF52840 SoC。

整个开发过程中,开发者遇到了许多挑战,包括显示屏的初始化、电源系统的设计和调试、键盘和触摸板的无线连接等。开发者通过反向工程、调试和优化,成功实现了笔记本电脑的功能。开发者表示,这个项目的目标是打造一台具有现代商用超薄笔记本电脑的特点的开源设备,希望能够为开源硬件社区做出贡献。


HN 热度 2561 points | 评论 296 comments | 作者:Hello9999901 | 1 day ago #

https://news.ycombinator.com/item?id=42797260

  • 这个项目非常令人印象深刻,作者的跨学科知识和能力非常出色
  • 作者的成就非常值得赞赏,尤其是在高中学龄阶段就能完成如此复杂的项目
  • 项目的开放性和分享精神值得肯定,能够激励和启发他人
  • 作者的坚持和毅力值得学习,能够克服困难和挑战,完成目标
  • 项目的技术含量和创新性非常高,能够吸引专业人士的关注和赞赏
  • 作者的未来发展前景非常广阔,可能会吸引投资者和招聘者的关注
  • 项目的 DIY 精神和开放架构值得肯定,能够促进创新和创业
  • 作者的分享和交流精神值得学习,能够促进社区的建设和发展

TabBoo – add random jumpscares to websites you’re trying to avoid #

https://tabboo.xyz/

这个网页是一个浏览器扩展程序的介绍页面。扩展程序的功能是帮助用户避免访问某些网站,通过添加随机的“惊吓”效果来实现“厌恶性条件反射”。这意味着,当用户试图访问他们试图避免的网站时,扩展程序会突然弹出一个令人惊讶或吓人的内容,以此来阻止用户继续访问。

扩展程序的设计初衷是为了帮助用户打破访问某些网站的习惯,尤其是那些可能会浪费时间或带来负面影响的网站。通过安装这个扩展程序,用户可以让“厌恶性条件反射”来帮助他们避免访问这些网站,从而提高生产力和减少干扰。

在页面的底部,有一个“添加到 Chrome”按钮,表明这个扩展程序是为 Google Chrome 浏览器设计的。同时,还有两个用户名“justin”和“brian”,可能是扩展程序的开发者或维护者。总的来说,这个网页是一个简单的介绍页面,旨在帮助用户了解扩展程序的功能和使用方法。


HN 热度 686 points | 评论 124 comments | 作者:thatsnotoptimal | 1 day ago #

https://news.ycombinator.com/item?id=42795237

  • TabBoo 是一个通过在网站上添加随机的惊吓来帮助人们避免成瘾的工具
  • 有人认为这种方法很有趣,值得尝试
  • 有人提到作者的其他项目也很有趣,例如 Push Off 游戏
  • 有人对使用负面强化来戒除成瘾持怀疑态度
  • 有人认为负面强化是通过添加负面刺激来减少某种行为,而不是通过移除负面刺激
  • 有人分享了 Allen Carr 的书籍作为戒除成瘾的另一种方法
  • 有人提到使用 nicotine 贴片或电子烟来戒除烟瘾
  • 有人分享了自己使用 TabBoo 或类似工具的经历和感受
  • 有人认为冬季会增加对尼古丁的渴望
  • 有人提到使用电子烟或尼古丁口袋来替代烟草
  • 有人认为戒除成瘾需要找到根本原因并解决它,而不是仅仅使用工具或方法

How to improve your WFH lighting to reduce eye strain #

https://rustle.ca/posts/articles/work-from-home-lighting

本文主要讨论如何改善在家工作(WFH)的照明环境,以减少眼疲劳。作者分享了自己的经验,强调均匀的漫射照明环境对眼睛最为有益。过多或过少的光线都可能导致问题,自然光是最好的选择,但需要通过滤光窗帘或百叶窗来调节强度。

作者首先介绍了自己在家工作时遇到的问题,包括眼疲劳、眼痛和头晕等。然后分析了计算机屏幕可能导致疲劳的原因,包括屏幕闪烁、 高对比度照明和固定焦距。为了解决这些问题,作者建议使用均匀的漫射照明环境,避免高对比度照明,并使用自然光。

作者分享了自己改善照明环境的过程,包括使用滤光窗帘、壁灯和台灯等。这些改变使得房间的照明环境变得更加均匀和舒适,减少了眼疲劳。作者还强调了使用高质量的照明设备的重要性,包括可调光和无闪烁的灯具。

此外,作者提到,即使拥有完美的照明环境,也需要定期休息和护眼。作者建议每 20 分钟看一下远处的物体,至少 20 秒钟,以缓解眼疲劳。总的来说,本文为在家工作的人提供了有用的建议和经验,帮助他们改善照明环境,减少眼疲劳,提高工作效率。


HN 热度 615 points | 评论 281 comments | 作者:jahfer | 1 day ago #

https://news.ycombinator.com/item?id=42796950

  • 使用柔和的光线可以减少眼疲劳,多个光源可以减少阴影和高光对比。 -Uniform 的色温可以让人感到舒适,选择合适的色温可以提高工作效率和减少压力。
  • 暖色灯可以让人感到温馨,但可能会影响色彩准确性,个人偏好是选择暖色还是冷色灯。
  • 更换家中或车内的 LED 灯为暖色灯可以提高舒适度和减少眼疲劳。
  • 使用热风枪和预热器可以更容易地拆卸和更换 SMD LED 灯。
  • 市场上大多数的汽车 LED 灯模块都存在问题,需要自己修改和优化才能达到理想的效果。

Tailwind CSS v4.0 #

https://tailwindcss.com/blog/tailwindcss-v4

Tailwind CSS v4.0 是一个全新的框架版本,优化了性能和灵活性,提供了重新设计的配置和自定义体验,并充分利用了最新的 Web 平台功能。该版本的主要特点包括新高性能引擎、现代 Web 设计、简化安装、首个 Vite 插件、自动内容检测、内置导入支持、CSS 首要配置等。

Tailwind CSS v4.0 的新高性能引擎可以实现更快的构建速度,测试结果表明,完整构建速度提高了 3.5 倍,增量构建速度提高了 8 倍。该版本还支持现代 Web 功能,如级联层、注册自定义属性、颜色混合等。同时,安装过程也变得更加简单,只需要一行代码即可开始使用。

该版本还提供了首个 Vite 插件,实现了与 Vite 的紧密集成,进一步提高了性能。自动内容检测功能可以自动发现模板文件,无需手动配置。内置导入支持功能可以直接导入其他 CSS 文件,无需额外的插件。CSS 首要配置功能允许开发者直接在 CSS 文件中配置和扩展框架。

Tailwind CSS v4.0 还提供了许多新功能和变体,包括容器查询、3D 变换、渐变 API、@starting-style 支持、not-* 变体等。同时,该版本还提供了一个全面的升级指南和自动升级工具,以帮助现有项目升级到最新版本。总的来说,Tailwind CSS v4.0 是一个更快、更灵活、更易用的框架版本,能够帮助开发者更快速地构建现代 Web 应用。


HN 热度 414 points | 评论 239 comments | 作者:georg-stone | 24 hours ago #

https://news.ycombinator.com/item?id=42799136

  • Tailwind CSS v4.0 的发布解决了许多问题,尤其是可以通过原生 CSS 变量访问主题和使用 CSS-only 配置。
  • Tailwind 对 AI 生成工作流的支持非常好,任何东西都可以被表达和系统化。
  • Tailwind 对于大多数人类网页开发者来说是非常有用的,但可能不适合所有人。
  • Tailwind 的新升级可能会影响 AI 工具的支持,团队可能会延迟升级直到有适当的支持。
  • Tailwind 使设计决策变得困难,设计师难以参与实际的设计工作。
  • Tailwind 没有解决设计系统的问题,设计师应该关注设计系统而不是工具。
  • Tailwind 是一个工具,而不是艺术,旨在简化设计,使其更容易被大众接受。
  • Tailwind 不是设计的民主化工具,设计的美观仍然取决于作者的能力。
  • Tailwind 的设计哲学是关于迭代速度和设计参数之间的依赖关系。

Federal Court (Finally) Rules Backdoor Searches of Data Unconstitutional #

https://www.eff.org/deeplinks/2025/01/victory-federal-court-finally-rules-backdoor-searches-702-data-unconstitutional

美国联邦法院最近做出了一个具有里程碑意义的判决,宣布后门搜索 702 数据违宪。这个判决是在一个名为 United States v. Hasbajrami 的刑事案件中做出的,案件涉及一名美国居民,他在 2011 年被捕并被指控为恐怖组织提供物资支持。法院发现,政府在没有搜查令的情况下使用第 702 条程序收集的电子邮件是违宪的。

第 702 条程序允许情报机构在没有搜查令的情况下收集国际通信数据,包括美国公民与外国人的通信。政府一直声称,这些数据可以在没有搜查令的情况下被用于执法目的。但是,电子前沿基金会(EFF)一直认为,这种做法是违宪的。现在,联邦法院支持了 EFF 的观点,认为后门搜索 702 数据需要搜查令。

这个判决对政府使用第 702 条程序收集和搜索数据的做法产生了重大影响。政府一直在大量使用后门搜索来收集美国公民的通信数据, EFF 认为这种做法是违宪的。现在,法院已经确认了 EFF 的观点,政府需要在搜索这些数据之前获得搜查令。

EFF 认为,这个判决是保护美国公民隐私权的重要一步。该组织呼吁国会在 2026 年第 702 条程序到期之前,采取措施改革这一程序,包括要求政府在搜索美国公民数据之前获得搜查令。EFF 还呼吁外国情报监视法院(FISC)修改其规则,要求 FBI 在进行后门搜索之前获得搜查令。

这个判决也引发了人们对政府监视和数据收集行为的担忧。EFF 认为,政府需要更加透明地披露其数据收集和搜索行为,并需要采取措施保护美国公民的隐私权。该组织呼吁国会采取行动,保护美国公民的隐私权,并防止政府滥用其权力。


HN 热度 329 points | 评论 68 comments | 作者:janandonly | 1 day ago #

https://news.ycombinator.com/item?id=42797756

  • 政府机构会继续滥用权力,监控公民的隐私,并且不会因为法律的约束而停止。
  • 美国的监控制度已经失控,需要立法来约束政府机构的行为。
  • 使用开源硬件和软件可以提高安全性和隐私性,但这需要更多的人参与和支持。
  • Rust 语言可以提高软件的安全性,但这并不是解决所有安全问题的方法。
  • 分布式系统可以帮助避免审查和监控,但这需要更多的人参与和支持。
  • 政府机构会继续找到方法来绕过法律和监控公民的隐私。
  • 司法系统在保护公民隐私方面发挥着重要作用,但这需要更多的努力和支持。
  • 政府机构的行为需要被监管和制约,否则他们会继续滥用权力。

Most Influential Papers in Computer Science History #

https://terriblesoftware.org/2025/01/22/the-7-most-influential-papers-in-computer-science-history/

这篇文章讨论了计算机科学史上七篇最具影响力的论文。作者认为,这七篇论文对今天的世界产生了重大影响,每一篇都值得单独写一篇博客文章或甚至一本书来详细介绍。

第一篇论文是阿兰·图灵 1936 年的《论可计算数及其在判定问题中的应用》。图灵提出了图灵机的概念,证明了如果一个问题是可计算的,那么一台机器就可以解决它。这篇论文为现代计算机科学奠定了基础,定义了什么是可解的和不可解的。

第二篇论文是克劳德·香农 1948 年的《通信的数学理论》。香农提出了信息论的概念,使得信息可以被量化和测量。这篇论文帮助我们理解了如何高效地传输和存储数据,包括数据压缩和错误纠正。

第三篇论文是埃德加·F·科德 1970 年的《大型共享数据银行的关系数据模型》。科德提出了关系数据库的概念,使得数据可以被高效地存储和查询。这篇论文导致了 SQL 和关系数据库的发展,至今仍被广泛使用。

第四篇论文是斯蒂芬·A·库克 1971 年的《定理证明程序的复杂性》。库克提出了 NP-complete 的概念,证明了一些问题是非常难以解决的。这篇论文帮助我们理解了问题的难度和计算复杂性。

第五篇论文是文顿·G·瑟夫和罗伯特·E·卡恩 1974 年的《分组网络互联协议》。瑟夫和卡恩提出了 TCP/IP 协议,使得不同的网络可以相互通信。这篇论文为现代互联网的发展奠定了基础。

第六篇论文是蒂姆·伯纳斯-李 1989 年的《信息管理:一个提议》。伯纳斯-李提出了万维网的概念,使得互联网变得更加易用和友好。这篇论文导致了万维网的发展,改变了我们分享和获取信息的方式。

第七篇论文是谢尔盖·布林和拉里·佩奇 1998 年的《大规模超文本网络搜索引擎的解剖》。布林和佩奇提出了 PageRank 算法,使得搜索引擎可以更好地理解网页之间的关系。这篇论文导致了谷歌搜索引擎的发展,改变了我们获取信息的方式。


HN 热度 314 points | 评论 108 comments | 作者:jonbaer | 24 hours ago #

https://news.ycombinator.com/item?id=42799103

  • 该列表中包含的论文对计算机科学的影响和重要性存在争议
  • 有些论文虽然对技术发展有重要影响,但其科学价值和理论基础不如其他论文
  • 页排名(PageRank)论文的影响力和重要性值得商榷,可能在未来 50 年内不再那么重要
  • 有些论文虽然难以理解,但通过辅助材料和其他资源可以更好地学习和理解
  • 了解计算机科学的历史和发展可以帮助更好地理解当前的技术和理论
  • 页排名论文的算法和数学原理值得深入研究和理解
  • 列表中缺少了一些重要的论文和作者,例如 Hoare 的 CSP 论文
  • 了解计算机科学的历史和发展可以帮助更好地理解当前的技术和理论,并能够更好地预测未来技术的发展方向

F-Droid’s Progress and What’s Coming in 2025 #

https://f-droid.org/2025/01/21/a-look-back-at-2024-f-droids-progress-and-whats-coming-in-2025.html

F-Droid 回顾 2024 年的进展和 2025 年的计划 2024 年已经过去,F-Droid 社区想要回顾一下过去一年中取得的成就和进展,并感谢 FOSS 社区在整个过程中的支持。2024 年是 F-Droid 的一个重要里程碑,社区在去中心化应用分发、扩展 F-Droid 生态系统和加强基础设施方面取得了显著进步。

去中心化应用分发是 F-Droid 2024 年的重点工作。社区致力于使 F-Droid 成为一个更强大和易于使用的平台,减少对大型科技公司的依赖。通过 Filecoin 基金会的资助,F-Droid 继续开发去中心化应用分发系统,提供开发者和用户更多的选择来分发应用。社区完成了多项基础设施升级,包括重构核心客户端逻辑、添加对 IPFS 和 Filecoin 的支持、改进 F-Droid 客户端的白标功能等。

F-Droid 生态系统的扩展是另一个重要的项目。社区通过 EU Horizon Europe 的资助,进一步开发了 Repomaker 工具,帮助开发者创建自己的 F-Droid 兼容仓库。Mobifree 项目旨在提供一个自由、开源和去中心化的移动应用商店替代方案。F-Droid 社区为 Mobifree 项目做出了贡献,包括用户研究、自动化应用包和上传过程、Repomaker 功能开发等。

F-Droid 社区在 2024 年也取得了显著的成就,包括超过 7205 个应用更新、402 个新应用添加、939 个应用存档等。社区的贡献对于 F-Droid 的发展至关重要,社区将继续致力于去中心化应用分发、扩展 F-Droid 生态系统和加强基础设施。

在 2025 年,F-Droid 社区将继续发展,包括添加新团队成员、获得新的资助等。社区将继续致力于去中心化应用分发、扩展 F-Droid 生态系统和加强基础设施,致力于提供一个自由、开源和去中心化的移动应用商店替代方案。


HN 热度 309 points | 评论 92 comments | 作者:mappu | 1 day ago #

https://news.ycombinator.com/item?id=42798108

  • F-Droid 应该添加下载计数器来帮助用户筛选出好的应用
  • 应用更新界面仍然存在 bug,用户体验不佳
  • 应该提供更多的排序选项,例如按时间、下载量等
  • 下载计数器可能会导致应用开发者过度关注下载量,而忽略应用质量
  • 应该改进搜索功能,增加搜索运算符和字符串匹配算法
  • F-Droid 应该支持更多的设备,例如 Android TV 设备
  • 应用更新机制应该更加完善,自动更新功能应该更加稳定
  • F-Droid 应该提供更多的元数据,例如 GitHub 仓库的 star 数量
  • 应用开发者应该更加关注应用的质量和维护,而不是仅仅关注下载量
  • F-Droid 应该改进其用户界面,提供更好的用户体验

Understanding gRPC, OpenAPI and REST and when to use them in API design (2020) #

https://cloud.google.com/blog/products/api-management/understanding-grpc-openapi-and-rest-and-when-to-use-them

本文讨论了 API 设计的两种主要模型:RPC 和 REST。尽管两种模型都使用 HTTP 协议,但它们的概念基础不同。RPC 模型将可寻址实体视为过程,而数据隐藏在过程后面;而 HTTP 模型则将可寻址实体视为数据实体(称为资源),行为隐藏在数据后面。

文章首先介绍了使用 HTTP 进行 API 设计的三种主要方法:REST、gRPC 和 OpenAPI。REST 是一种较少使用的 API 模型,其特点是客户端不构造 URL,而是直接使用服务器提供的 URL。gRPC 是一种使用 HTTP/2 作为底层传输协议的 RPC 实现,客户端使用代码生成的 stub 来调用过程。OpenAPI 是一种用于设计 RPC API 的规范语言,客户端通过构造 URL 来调用 API。

文章指出,OpenAPI 和 gRPC 的客户端模型相似,两者都需要客户端计算参数值并将其传递给服务器。OpenAPI 客户端通过插入参数值到 URL 路径模板中来调用 API,而 gRPC 客户端使用 stub 过程来组合参数和过程签名。两种模型都可以使用代码生成的客户端库来隐藏细节。

文章还讨论了 REST 和 OpenAPI 之间的区别,指出 OpenAPI 要求客户端了解 URL 格式并构造 URL,而 REST 则不需要客户端了解 URL 格式。总的来说,本文提供了对 API 设计的两种主要模型的概述,并讨论了它们的优缺点和使用场景。


HN 热度 299 points | 评论 245 comments | 作者:hui-zheng | 23 hours ago #

https://news.ycombinator.com/item?id=42799245

  • gRPC 的工具链存在问题,特别是在 Java 端,生成的代码难以测试和维护
  • gRPC 的 protobuf 协议存在缺陷,例如类型标签重复,zig-zag 整数编码慢等
  • gRPC 的性能问题和调试困难,例如 deadline exceeded、LB 不支持 http2 等
  • gRPC 的文档质量差,错误消息不清晰,导致开发者难以排查问题
  • 有些开发者认为 gRPC 的设计理念有问题,工具链和协议存在缺陷
  • 有些开发者认为 gRPC 的优点被其缺陷所掩盖,反而选择其他 RPC 协议如 REST
  • gRPC 的 Java 工具链存在问题,例如 protobuf-gen 插件生成的代码难以维护
  • buf.build 工具可能可以解决一些 gRPC 的工具链问题,但并不是完美的解决方案
  • Flatbuffer 协议被认为是比 gRPC 更糟糕的 RPC 协议
  • gRPC 的开发者体验差,调试困难,性能问题多,导致开发者反感
  • 有些开发者认为 gRPC 的优点不大,反而选择其他 RPC 协议如 REST 或自定义协议

https://samcurry.net/hacking-subaru

该网页是一篇关于黑客攻击 Subaru 汽车公司的 STARLINK 系统的文章。文章介绍了作者和他的朋友 Shubham Shah 如何发现了 Subaru 的 STARLINK 系统中的一个安全漏洞,这个漏洞允许他们访问和控制所有连接到该系统的汽车。

作者首先尝试了黑客攻击 MySubaru 移动应用程序,但发现它的安全性很好,无法找到任何漏洞。于是,他们将注意力转向了 Subaru 的员工面向的应用程序,希望能找到一个更容易被攻击的目标。通过搜索和扫描,他们发现了 Subaru 的 STARLINK Admin Portal,并找到了一个可能的入口点。

他们发现了一个名为“resetPassword.json”的端点,可以重置员工的密码,而不需要任何确认令牌。他们还找到了一个名为“getSecurityQuestion.json”的端点,可以用来枚举员工的电子邮件地址。通过使用这些端点,他们成功地枚举了几个员工的电子邮件地址,并重置了其中一个员工的密码,从而获得了对 STARLINK 系统的访问权限。

获得访问权限后,他们可以远程启动、停止、锁定和解锁汽车,甚至可以获取汽车的位置历史记录和个人身份信息。他们还可以访问其他用户的数据,包括支持呼叫历史、之前的车主、里程读数和销售历史等。

文章还提到了作者和他的朋友如何利用这个漏洞来跟踪和控制汽车,甚至可以在不需要任何物理钥匙的情况下解锁和启动汽车。他们还创建了一个地图来显示汽车的位置历史记录,精确到 5 米,并且可以更新每次引擎启动时。

总的来说,该文章揭露了 Subaru 的 STARLINK 系统中的一个严重的安全漏洞,并展示了黑客如何利用这个漏洞来访问和控制连接到该系统的汽车。该漏洞已经被报告给 Subaru 公司,并在 24 小时内被修复。


HN 热度 299 points | 评论 207 comments | 作者:ramimac | 12 hours ago #

https://news.ycombinator.com/item?id=42803279

  • Subaru 的 Starlink 系统可能会对车主的隐私构成威胁,因为它可以被用来追踪和控制车辆。
  • 即使车主没有同意,Starlink 系统也可能会收集和存储车辆的位置数据和其他信息。
  • 有些车主发现自己的 Subaru 车辆由于 Starlink 系统的故障而出现电池耗尽的问题。
  • Subaru 的维修服务可能会用绕过盒代替有故障的 DCM 设备,以解决电池耗尽的问题。
  • 有些车主认为,即使没有使用 Starlink 系统,车辆也可能会存储位置数据和其他信息。
  • 如果车主拒绝使用 Starlink 系统,可能无法完全禁用系统的功能。
  • 警方可能会通过 Subaru 获得车辆的位置信息和其他数据,即使车主没有同意。

C stdlib isn’t threadsafe and even safe Rust didn’t save us #

https://www.edgedb.com/blog/c-stdlib-isn-t-threadsafe-and-even-safe-rust-didn-t-save-us

该网页是一篇关于调试一个软件问题的文章,特别是关于一个名为 EdgeDB 的项目。文章的作者描述了他们在 ARM64 环境中遇到的一个奇怪的问题,测试用例会无限期地挂起,导致 CI 作业超时。最初,他们认为这是一个死锁问题,但后来发现实际上是进程崩溃了。

作者们使用了各种调试工具和技术来诊断问题,包括连接到 CI 机器,使用 gdb 加载 core dump 文件,设置环境变量等。通过这些努力,他们终于找到了问题的根源:getenv 函数在某些情况下会崩溃。

文章还提到了 ARM64 和 x86_64 之间的内存模型差异,作者认为这可能是问题的原因之一。然而,进一步的调试显示,问题实际上是由于 getenv 函数的实现引起的。作者们还提供了相关的代码片段和 gdb 输出来说明调试过程。

在调试过程中,作者们遇到了几个挑战,包括如何在 Docker 容器中使用 gdb,以及如何找到正确的库文件来加载 core dump。他们还提到了使用 journalctl 来找到 core dump 文件的位置。

总的来说,这篇文章描述了一个复杂的调试过程,涉及多种工具和技术。作者们通过仔细的分析和调试,最终找到了问题的根源,并提供了相关的代码和调试输出来说明整个过程。


HN 热度 297 points | 评论 327 comments | 作者:msully4321 | 1 day ago #

https://news.ycombinator.com/item?id=42796058

  • Rust 语言的环境变量设置将在下一个版本中被标记为不安全,可能会解决部分线程安全问题
  • getenv 和 setenv 函数无法在多线程环境中安全调用,需要通过其他方式解决
  • 环境变量应该被视为只读的输入参数,不应该被用作进程内信息交换的机制
  • Java 语言不允许改变环境变量,这可能是一个正确的设计选择
  • 环境变量应该只被应用程序作者设置,且应在进程启动初期设置完成
  • 在某些编程语言中,环境变量可以在进程启动初期设置,但应避免在多线程环境中设置
  • main 函数可以负责设置环境变量和初始化程序,但也可能导致一些问题,如初始化顺序不确定
  • 使用全局静态变量的构造函数可以在 main 函数之前执行初始化,但也可能导致一些问题,如构造函数调用顺序不确定

相关内容

发布日期 11/17/2024 - 19:48
发布日期 09/02/2024 - 19:26
发布日期 08/04/2020 - 01:35
发布日期 06/17/2022 - 10:21
发布日期 10/13/2024 - 19:35
发布日期 10/09/2024 - 19:31
发布日期 06/23/2024 - 17:52
发布日期 10/31/2021 - 01:48
发布日期 02/17/2024 - 13:54
发布日期 10/31/2021 - 01:12