2024 09 29 HackerNews

2024-09-29 Hacker News Top Stories #

  1. 一个基于快速傅里叶变换(FFT)的海洋波浪渲染实验,使用 Godot 引擎实现,展示了如何利用 FFT 和海洋波谱生成真实感的海洋波浪。
  2. 一篇文章探讨了现代社会中信息过载和娱乐文化对公共话语的影响,引用了尼尔·波兹曼的书《让我们娱乐至死:秀场时代的公共话语》的前言。
  3. Python 3.13 引入了即时编译(JIT)和全局解释器锁(GIL)的重大变化,JIT 允许在运行时将字节码编译为机器码,从而提高执行效率。
  4. AMD 首次发布开源语言模型 AMD-135M,采用了“推测解码”技术,标志着 AMD 在人工智能领域的进一步发展。
  5. 一篇文章认为,Matt Mullenweg 的行为已经对 WordPress 社区造成了严重的伤害,他滥用权力,损害了 WordPress 的利益,应被解除职务。
  6. SAML(安全断言标记语言)是一种标准协议,允许用户通过单一身份提供者实现单点登录(SSO),但其复杂性和安全漏洞使其在新项目中不再推荐使用。
  7. 美国商标局取消了漫威和 DC 漫画共同拥有的“超级英雄”商标,原因是该术语已成为通用名词,不应受到保护。
  8. Cuttle 是一个易于学习的在线 2D 参数化计算机辅助设计(CAD)工具,提供了功能齐全的免费版本,界面简洁且易于使用。
  9. Meta 因存储明文密码被罚款 1.02 亿美元,主要是因为未及时通知监管机构,存储明文密码并非故意,而是由于系统错误导致的日志记录问题。
  10. Gentoo 系统中将 time_t 类型从 32 位转换为 64 位所面临的挑战,尤其是考虑到 2038 年将会出现的“2038 问题”。

FFT-based ocean-wave rendering, implemented in Godot #

https://github.com/2Retr0/GodotOceanWaves

该 GitHub 项目 GodotOceanWaves 是一个基于快速傅里叶变换(FFT)的海洋波浪渲染实验,使用 Godot 引擎实现。以下是该项目的详细摘要:

项目概述 #

  • 目的:通过使用海洋波谱的逆傅里叶变换生成波浪,提供可实时修改的波浪属性,以模拟各种海洋环境。
  • 技术背景:传统的水面动画方法(如 Gerstner 波)适合模拟平静水面的低频细节,但在模拟开放海洋的波动时效果不佳。该项目采用 FFT 方法,能够更准确地模拟复杂的波浪表面。

主要特点 #

  1. 波浪生成

    • 使用 FFT 算法生成波浪,具有较低的计算复杂度,适合在 GPU 上运行。
    • 通过海洋波谱函数生成初始波浪状态,并通过时间传播和逆傅里叶变换生成位移和法线贴图。
  2. 波浪光照模型

    • 采用 GGX 分布模型,提供更均匀的高光效果。
    • 使用双三次和双线性过滤混合来减少纹理别名效应。
  3. 海泡和海喷

    • 海泡生成基于波峰卷曲的检测,使用参数控制泡沫的生成和消散。
    • 海喷通过 Godot 的 GPUParticles3D 节点实现,使用自定义粒子着色器模拟海水飞溅效果。
  4. 波浪级联

    • 支持多层波浪级联以减少平铺伪影,每个级联可动态添加或移除。
    • 通过调整级联参数和相位来避免波浪干扰。
  5. 负载平衡

    • 引入“更新率”参数控制每秒更新的波浪级联数量,以减少 GPU 负担和帧率波动。

参考文献 #

项目中引用了多篇关于海洋波浪模拟和 FFT 算法的研究,确保了方法的科学性和有效性。

许可证 #

该项目使用 MIT 许可证,允许自由使用和修改。

总结 #

GodotOceanWaves 项目展示了如何利用 FFT 和海洋波谱生成真实感的海洋波浪,适用于游戏开发和实时渲染应用。通过灵活的参数设置,开发者可以轻松调整波浪特性,以适应不同的游戏场景需求。


HN 热度 594 points | 评论 79 comments | 作者:RafelMri | 15 hours ago #

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

  • 该项目展示了基于 FFT 的海洋波浪渲染,效果令人惊叹,尤其是与 20 年前的技术相比。
  • 有评论指出,虽然效果很好,但波浪的形态在现实中可能不够自然,尤其是波峰过于尖锐。
  • 一些用户提到,现代游戏引擎的进步使得实时渲染变得更加可行,过去需要大量时间和计算的工作现在可以快速完成。
  • 有人对项目作者的背景表示好奇,推测其可能是学生,并且对其引用的研究材料有深入理解。
  • 讨论中提到,虽然该方法在小波和中波的渲染上表现良好,但在处理非常大的波浪时可能会出现问题。
  • 还有评论提到,水面与障碍物的交互是游戏开发中的一大挑战,可能需要额外的逻辑来处理。
  • 一些用户分享了他们对水波模拟的个人经验,认为该项目在某些方面仍有改进空间。
  • 讨论中提到,虽然该项目的效果令人印象深刻,但在实际应用中可能需要考虑更多的物理因素。

Amusing Ourselves to Death (2014) #

https://otpok.com/2014/01/03/amusing-ourselves-to-death/

这篇文章的标题是《让我们娱乐至死》,主要探讨了现代社会中信息过载和娱乐文化对公共话语的影响。文章引用了尼尔·波兹曼的书《让我们娱乐至死:秀场时代的公共话语》的前言,强调了现代社会在面对权威统治时,实际上更为危险的是人们对无知的漠视。

文章指出,许多人在关注乔治·奥威尔的《1984》时,忽视了阿道司·赫胥黎的《美丽新世界》。奥威尔警告我们可能会遭受外部压迫,而赫胥黎则认为,人们会自愿放弃自主权,沉迷于技术带来的娱乐,最终失去思考的能力。波兹曼认为,赫胥黎的预言更为准确,因为人们会因为过多的娱乐而变得被动和自私。

文章总结了两位作者的不同担忧:奥威尔担心真相会被隐藏,而赫胥黎则担心真相会被无关紧要的信息淹没。最终,波兹曼提出,赫胥黎的观点可能比奥威尔更具现实意义,提醒我们要警惕娱乐文化对思维和社会的侵蚀。


HN 热度 345 points | 评论 246 comments | 作者:yamrzou | 16 hours ago #

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

  • 许多评论者认为《我们娱乐自己至死》一书非常值得阅读,尤其是其对媒体影响的深刻分析。
  • 有人指出,虽然书中讨论的是电视等传统媒体,但其分析对于理解社交媒体的影响同样适用。
  • 评论中提到,不同媒体对社会的影响并不相同,有些媒体促进积极行为,而有些则可能导致消极行为。
  • 对于 TikTok 等新媒体,有人认为其在个人内容和短视频方面具有独特价值,但也有人对其潜在的负面影响表示担忧。
  • 书中提到的“媒介即信息”观点引发了关于信息消费方式对人类思维和行为的影响的讨论。
  • 一些评论者认为,现代社会的短视频文化可能导致注意力分散,影响深度思考和复杂理解的能力。
  • 还有人提到,社交媒体的使用可能导致人们建立虚假的亲密关系,增加孤独感。
  • 对于书中提到的社会现象,评论者们讨论了现代社会中人们如何在娱乐和思考之间寻找平衡。
  • 一些评论者认为,虽然社会在某些方面变得更加娱乐化,但人们的教育水平和意识也在逐渐提高。
  • 最后,有人指出,尽管现代媒体可能带来消极影响,但也有积极的变化在发生,社会整体在向更好的方向发展。

Everything you need to know about Python 3.13 – JIT and GIL went up the hill #

https://drew.silcock.dev/blog/everything-you-need-to-know-about-python-3-13/

这篇文章详细介绍了即将发布的 Python 3.13 版本的主要新特性,特别是与全局解释器锁(GIL)和即时编译(JIT)相关的重大变化。

1. 全局解释器锁(GIL) #

  • 什么是 GIL:GIL 是 Python 中的一个机制,确保在任何时刻只有一个线程可以执行 Python 字节码。这是为了简化内存管理和垃圾回收,但也限制了 Python 在多线程环境中的性能。
  • GIL 的历史:Python 自诞生以来就设计为单线程语言,早期计算机大多是单核的,因此 GIL 的存在并未造成太大问题。但随着多核处理器的普及,GIL 的限制变得越来越明显。
  • GIL 的移除:Python 社区正在逐步推进 GIL 的移除,计划分三个阶段进行。第一阶段是实验性支持,第二阶段是正式支持但仍非默认,最终将使无 GIL 模式成为默认。

2. 即时编译(JIT) #

  • 什么是 JIT:JIT 是一种编译技术,允许在运行时将字节码编译为机器码,从而提高执行效率。Python 3.13 引入了一种实验性的 JIT 编译器,采用“复制和修补”的方法来优化性能。
  • JIT 的影响:虽然短期内 JIT 对用户的代码编写没有直接影响,但它为未来的性能提升奠定了基础,可能使 Python 在与其他语言的竞争中更具优势。

3. 性能测试 #

  • 文章中提到了一些基准测试,显示在禁用 GIL 的情况下,多线程性能显著提升,而启用 GIL 时,多线程性能则低于单线程。整体来看,Python 3.13 在多线程任务中的表现有了明显改善。

4. 如何尝试新特性 #

  • 用户可以通过 pyenv 等工具安装 Python 3.13 的实验性版本,测试无 GIL 和 JIT 的功能。

结论 #

Python 3.13 的发布标志着 Python 在性能优化方面的重要一步,尤其是在多线程和 CPU 密集型任务的处理上。尽管目前这些新特性仍处于实验阶段,但它们为 Python 的未来发展提供了新的可能性。


HN 热度 322 points | 评论 167 comments | 作者:chmaynard | 20 hours ago #

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

  • 有人对 JIT 版本下载的抵制表示失望,认为这会影响用户尝试和反馈的积极性。
  • JIT 的性能问题被提及,当前的优化器会导致性能下降,JIT 仅能恢复损失。
  • 许多语言尚未优化,JIT 也存在内存管理问题。
  • 需要时间和多次互动来实现这些变更,类似于其他语言的演变过程。
  • 如果不愿意自己编译的人尝试 JIT,可能会导致大量无效的反馈。
  • PyPy 被认为被低估,尽管其工作量巨大,但缺乏认可。
  • PyPy 的可移植下载存在,且其性能在某些情况下优于 CPython。
  • 对于 Linux,提供二进制文件的复杂性被讨论,涉及到多个架构和版本。
  • 认为 Python 不提供 Linux 的解释器二进制文件是个谜。
  • GIL 的移除可能会使典型 Python 程序变慢,并引入复杂性。
  • 多线程在 Python 中存在性能问题,尤其是在机器学习等领域。
  • 认为 Python 的多线程支持不足,可能导致开发者转向其他语言。
  • 对于 GIL 的移除,存在不同的看法,有人认为这会增加调试难度。
  • 许多程序在并行处理时需要共享内存,当前的多进程方案存在局限。
  • 讨论了 Python 的设计决策及其对多线程和多进程的影响。
  • 有人认为 GIL 的存在是为了保护引用计数,移除后需要大幅改动。
  • 对于 Python 的未来,存在对多核处理的期待,但也有对现状的担忧。

AMD Unveils Its First Small Language Model AMD-135M #

https://community.amd.com/t5/ai/amd-unveils-its-first-small-language-model-amd-135m/ba-p/711368

AMD 最近发布了其首个小型语言模型 AMD-135M,采用了“推测解码”技术。这一模型的推出标志着 AMD 在人工智能领域的进一步发展,旨在提供更具包容性和创新性的技术进步。

主要内容摘要: #

  1. 模型概述

    • AMD-135M 是 AMD 首个小型语言模型,属于 Llama 系列,使用 6700 亿个数据标记进行训练。
    • 模型分为两个版本:AMD-Llama-135M 和 AMD-Llama-135M-code。
  2. 训练过程

    • AMD-Llama-135M 模型在四个 MI250 节点上训练了六天,使用 6700 亿个通用数据标记。
    • AMD-Llama-135M-code 版本在相同硬件上进行了为期四天的代码数据微调,使用了额外的 200 亿个代码数据标记。
  3. 开放源代码

    • AMD 开放了该模型的训练代码、数据集和权重,鼓励开发者复现模型并帮助训练其他小型和大型语言模型。
  4. 推测解码技术

    • 传统的大型语言模型通常采用自回归推理方法,每次只能生成一个标记,效率较低。
    • 推测解码技术通过使用小型草稿模型生成候选标记,然后由更大的目标模型进行验证,从而在每次前向传递中生成多个标记,显著提高了推理速度和内存访问效率。
  5. 推理性能加速

    • 在 MI250 加速器和 Ryzen AI 处理器上测试了 AMD-Llama-135M-code 作为草稿模型的推理性能,结果显示使用推测解码后速度显著提升。
  6. 未来发展

    • AMD 通过提供开源参考实现,不仅提升了自身的 AI 能力,还促进了 AI 社区的创新。

额外资源: #

  • 开发者可以访问 AMD 的 GitHub 库获取代码,下载模型文件,或申请 Instinct 加速卡的访问权限。

这一发布展示了 AMD 在 AI 领域的承诺,旨在推动技术的进步和应用的普及。


HN 热度 283 points | 评论 89 comments | 作者:figomore | 1 day ago #

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

  • AMD 首次发布的语言模型 AMD-135M 是完全开源的,包含训练代码、数据集和权重,开发者可以重现该模型。
  • 对于“开源”的定义存在争议,许多人认为仅提供权重和推理代码并不等同于真正的开源。
  • 一些评论者认为,开源模型的“源代码”应包括训练数据和方法,而不仅仅是权重。
  • 有观点认为,开源的定义不应因模型的复杂性而改变,模型权重也应被视为开源。
  • 讨论中提到,许多公司在发布模型时使用“开源”这一术语,可能是出于市场营销的考虑。
  • 有人指出,学术机构通常更倾向于声称对其研究成果的所有权,而不是完全开源。
  • 许多用户对 AMD 的举措表示欢迎,认为这有助于推动开源生态系统的发展。
  • 还有评论提到,独立重现模型的能力并不是开源的必要条件,开源软件的定义应更为宽泛。
  • 讨论中提到,模型的可重现性在机器学习领域是一个复杂的问题,很多因素可能影响结果的一致性。
  • 最后,许多人期待 AMD 在开源领域的进一步发展,认为这将促进技术的创新和竞争。

If WordPress is to survive, Matt Mullenweg must be removed #

https://joshcollinsworth.com/blog/fire-matt

这篇文章的标题是《如果 WordPress 要生存,Matt Mullenweg 必须被解除职务》,作者 Josh Collinsworth 在文中表达了对 Matt Mullenweg(WordPress 的创始人之一)的强烈不满,认为他滥用权力,损害了 WordPress 社区的利益。

主要内容摘要: #

  1. 权力滥用

    • Collinsworth 指责 Mullenweg 在 WordPress 社区中拥有过于强大的权力,并且这种权力常常与个人利益相冲突。他认为 Mullenweg 的行为已经超出了合理的界限,给许多 WordPress 用户和网站带来了破坏。
  2. 与 WP Engine 的冲突

    • 文章详细描述了 Mullenweg 与 WP Engine(一个主要的 WordPress 托管公司)之间的冲突。Mullenweg 曾试图向 WP Engine 施加压力,要求其支付“许可费”,并在 WP Engine 拒绝后,采取了一系列激烈的措施,包括在 WordCamp US 大会上公开抨击 WP Engine。
  3. 不当行为

    • Mullenweg 的行为被描述为“威胁”和“敲诈”,他在大会上声称如果 WP Engine 不支付费用,他将采取“毁灭性”行动。Collinsworth 认为这种行为是对 WordPress 社区的严重伤害。
  4. 对 WordPress 的影响

    • 文章指出,Mullenweg 的行为不仅影响了 WP Engine,还对整个 WordPress 生态系统造成了负面影响,包括安全性和信任度的下降。Collinsworth 认为,Mullenweg 的做法让 WordPress 的用户感到不安,许多专业人士开始考虑转向其他平台。
  5. 呼吁改变

    • Collinsworth 呼吁 WordPress 社区采取行动,解除 Mullenweg 的职务,并强调需要建立明确的界限,以防止任何个人或公司对 WordPress 的控制过于集中。他认为,WordPress 的未来取决于去除这种不受限制的权力。

结论: #

作者认为,Mullenweg 的行为已经使他成为了 WordPress 社区的“坏人”,并且他必须被解除职务,以保护 WordPress 的未来和社区的利益。文章强调了权力滥用的危险性,并呼吁对 WordPress 的治理结构进行必要的改革。


HN 热度 239 points | 评论 197 comments | 作者:graeme | 22 hours ago #

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

  • 有评论认为马特的沟通能力相对不成熟,令人震惊。
  • 一些人认为马特的行为显得不理智且不成熟,损害了他作为 CEO 的形象。
  • 有人提到,马特的行为可能是对 WP Engine 长期不支持 WordPress 的反应。
  • 讨论中提到 WP Engine 可能在法律上并没有义务支持 WordPress。
  • 有评论认为马特的行为可能是出于对开源项目的道德责任感。
  • 一些人认为马特的做法可能会导致 WordPress 社区的分裂。
  • 有人质疑马特是否能在作为 WordPress 基金会领导者和 Automattic CEO 的角色中保持独立。
  • 有评论指出,马特的行为可能会影响到许多依赖 WordPress 的非营利组织。
  • 讨论中提到,WP Engine 可能在利用 WordPress 的资源而没有回馈。
  • 一些人认为马特的做法是为了保护 WordPress 的生态系统,但方式不当。
  • 有评论认为马特的行为可能会导致法律上的问题。
  • 有人提到,马特的行为可能是对 WP Engine 过去行为的反击。
  • 讨论中提到,马特的做法可能会影响到他在社区中的声誉。
  • 一些人认为马特的行为是对 WP Engine 的不当报复。

SAML: A Technical Primer #

https://ssoready.com/docs/saml/saml-technical-primer

该文档是关于 SAML(安全断言标记语言)的技术概述,旨在帮助开发者深入理解 SAML 的工作原理及其在产品和客户业务中的应用。以下是详细摘要:

SAML 概述 #

  • SAML 的目的:SAML 允许用户通过单一身份提供者(如 Okta、Microsoft Entra 等)实现单点登录(SSO),简化用户在多个 SaaS 工具中的登录过程。
  • 用户体验:用户只需记住一个身份提供者的密码,便可无缝访问所有集成的应用程序。

SAML 的商业价值 #

  • 安全性:CISO(首席信息安全官)重视 SAML,因为它允许从一个地方管理所有员工的账户,降低密码泄露风险。
  • 合规性:许多公司出于合规要求,要求软件供应商支持 SAML,以确保安全的用户身份验证和账户管理。

SAML 集成 #

  • 轻量级集成:开发者只需在登录页面和后端系统中实现 SAML 相关功能,其他部分可以保持不变。
  • SAML 作为登录选项:将 SAML 视为一种登录方式,与传统的用户名/密码、Google 登录等并列。

SAML 的技术细节 #

  • SAML 工作流程

    1. 用户请求通过 SAML 登录。
    2. 用户的浏览器向身份提供者发送认证请求。
    3. 身份提供者验证用户身份并返回 SAML 断言。
    4. 服务提供者验证断言并创建用户会话。
  • SAML 断言:包含用户身份信息的 XML 文档,服务提供者需要验证其合法性。

SAML 配置 #

  • 必要设置:每个客户的 SAML 连接需要五个设置,包括断言消费者服务(ACS)URL、服务提供者实体 ID、身份提供者重定向 URL 等。
  • 安全性考虑:确保 SAML 断言的真实性,防止伪造和恶意配置。

结论 #

SAML 是实现企业级单点登录的重要协议,支持安全、高效的用户身份验证。开发者在集成 SAML 时应关注其轻量级实现和安全性,确保符合客户的需求和合规要求。

该文档为希望深入了解 SAML 的开发者提供了清晰的指导,帮助他们在产品中有效实施 SAML 集成。


HN 热度 213 points | 评论 89 comments | 作者:ned_at_codomain | 1 day ago #

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

  • SAML 在许多企业环境中仍然是必要的,尽管现代系统更倾向于使用 OIDC。
  • OIDC 在安全性和易用性方面优于 SAML,尤其是在授权代码流中。
  • SAML 的复杂性和安全漏洞使其在新项目中不再推荐使用。
  • OIDC 的扩展性和成熟度逐渐被认可,尤其是在大型企业中。
  • SAML 的标准已经冻结,未来不会有更新,导致其逐渐被淘汰。
  • 在某些行业(如医疗保健)中,SAML 仍然受到广泛使用,客户需求推动了其继续存在。
  • OIDC 与 SCIM 的结合在企业中变得越来越重要,尤其是在用户管理和权限撤销方面。
  • 实现 OIDC 通常比 SAML 更简单,尤其是在现代开发框架中。
  • SAML 的实现常常伴随着复杂的 XML 处理和安全问题,开发者普遍感到困扰。
  • 尽管 OIDC 在用户体验上更优,但许多客户仍然坚持使用 SAML,造成了技术上的妥协。

US Trademark Office Cancels Marvel, DC’s ‘Super Hero’ Marks #

https://www.reuters.com/legal/litigation/us-trademark-office-cancels-marvel-dcs-super-hero-marks-2024-09-26/

美国商标局的一个法庭于 9 月 26 日取消了漫威(Marvel)和 DC 漫画(DC Comics)共同拥有的一组 “超级英雄”(Super Hero)商标,此举是应一位来自伦敦的漫画艺术家的请求而做出的。此次裁决是针对 S.J. Richold 的公司 Superbabies Ltd 发起的,漫威和 DC 未对该请求作出回应。

Superbabies Ltd 的律师亚当・阿德勒(Adam Adler)表示,这一裁决不仅是对客户的胜利,更是对创造力和创新的胜利。他指出,通过确立 “超级英雄” 这一概念的公共领域地位,能够将其作为一种英雄主义的象征,供所有讲故事的人使用。

漫威和 DC 共同拥有的四个联邦商标涵盖了 “超级英雄” 和 “超级英雄们” 这两个术语,其中最早的商标可追溯到 1967 年。Richold 创作的漫画作品涉及一支名为 “超级宝宝”(Super Babies)的超级英雄婴儿团队。Richold 表示,在 Superbabies Ltd 申请 “超级宝宝” 商标时,DC 曾指控他的公司侵犯了 “超级英雄” 商标,并威胁采取法律行动。

Superbabies 在 5 月向商标局申请取消这些商标,理由是漫威和 DC 不能通过商标来 “声称对整个类型的拥有权”,而且这两家竞争对手也无法共同拥有商标。该案件的正式名称为 Superbabies Ltd 诉 Marvel Characters Inc,商标审判和上诉委员会,取消号 92085201。

报道的记者布雷克・布里坦(Blake Brittain)专注于知识产权法,包括专利、商标、版权和商业机密等领域。


HN 热度 195 points | 评论 70 comments | 作者:h2odragon | 23 hours ago #

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

  • 美国商标局取消了漫威和 DC 的“超级英雄”商标,认为该术语属于通用名词,不应受到保护。
  • 商标法不允许竞争对手共同拥有单一商标,商标的目的是识别单一来源的商品和服务。
  • 有评论者质疑为何漫威和 DC 能够联合申请商标,认为这可能构成合谋,应该引发反垄断调查。
  • 许多人认为“超级英雄”一词在商标注册时已经被广泛使用,商标的授予显得不合理。
  • 有观点认为,商标应在公司丑闻或破产时失效,以维护消费者对品牌的信任。
  • 讨论中提到,商标的保护不应扩展到虚构作品或单个产品,防止其他公司模仿是合理的,但不应限制创意的多样性。
  • 一些评论者认为,商标的存在应当促进市场竞争,而不是阻碍创新和新进入者。

Obsessed with Cuttle: Parametric CAD for prototyping, producing, and procrastin #

https://hannahilea.com/blog/cuttle-obsession/

这篇博客文章的标题为《对 Cuttle 的痴迷:用于原型制作、生产和拖延的参数化 CAD》。作者分享了她在图书馆的创客空间使用 CNC 激光切割机的经历,并介绍了一个名为 Cuttle 的在线 2D 参数化计算机辅助设计(CAD)工具。

主要内容摘要: #

  1. Cuttle 的介绍

    • Cuttle 是一个易于学习的在线 CAD 工具,提供了功能齐全的免费版本,界面简洁且易于使用。
    • 它包含高质量的教程和多种项目模板,适合初学者和希望进行自定义的用户。
    • Cuttle 支持自定义 JavaScript 代码,既适合非程序员使用,也能满足有编程需求的用户。
  2. 使用 Cuttle 的活动

    • 创建物理激光切割对象:作者使用 Cuttle 设计了多个物品,如装饰书挡、门铃外壳和校准工具,并将设计导出为 SVG 文件进行切割。
    • 探索图案和形状:作者通过参数化设计来探索不同的形状和图案,增加了创造的乐趣。
    • 非 CAD 原型制作:在一些项目中,作者使用 Cuttle 进行原型设计,而不是使用她熟悉的其他编程语言。
  3. 具体项目示例

    • 书挡:设计了可通过磁铁附着在金属书挡上的装饰性书挡,展示了参数化设计的灵活性。
    • 门铃外壳:为父母设计了一个新的门铃外壳,经过多次试验和调整,最终实现了美观的效果。
    • 音乐盒打孔卡:使用 Cuttle 原型化音乐盒的打孔卡,简化了开发过程。
    • 卡片展示架:为小孩设计的卡片展示架,结合了个性化和实用性。
    • 校准工具:设计了一些校准工具,以帮助调试激光切割机。
    • 动画和诗歌:作者还利用 Cuttle 进行了一些动画测试和创意编码练习,展示了其多样化的应用。
  4. 总结

    • 作者对 Cuttle 的使用体验非常积极,认为它是一个强大的设计工具,学习曲线平缓,社区活跃。
    • 尽管 Cuttle 仍在不断发展中,但作者认为它的乐趣和易用性使得她在创作过程中常常沉迷其中。

这篇文章不仅展示了 Cuttle 工具的功能和应用,还反映了作者在创作过程中的探索和乐趣。


HN 热度 166 points | 评论 33 comments | 作者:todsacerdoti | 1 day ago #

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

  • Cuttle 是一个非常酷的项目,适合小型激光切割企业,具有直接操作和编程的功能。
  • 用户对 Cuttle 的学习曲线表示赞赏,认为其易于上手,尤其是对于业余爱好者。
  • 有用户建议增加边缘对齐、形状原点选择、批量导出等功能。
  • Cuttle 团队表示正在考虑用户反馈,并且业务已经盈利。
  • 有人询问 Cuttle 是否可以作为 Inkscape 的插件或独立应用程序使用。
  • 用户对 Cuttle 的字体使用情况表示好奇,询问是否可以使用本地字体。
  • 有人建议 Cuttle 增加 3D 打印的 STL 和 STEP 输出功能。
  • 讨论中提到激光切割机的使用和维护问题,分享了不同品牌的经验。
  • 用户对 Cuttle 的参数化设计功能表示期待,认为其在几何图形设计上表现出色。
  • Cuttle 的免费账户允许创建最多 5 个项目,用户可以下载项目文件进行激光切割。

Meta fined $102M for storing passwords in plain text #

https://www.engadget.com/big-tech/meta-fined-102-million-for-storing-passwords-in-plain-text-110049679.html

根据 Engadget 的报道,爱尔兰数据保护委员会(DPC)对 Meta 公司处以 1.015 亿美元(约 9100 万欧元)的罚款,原因是该公司在 2019 年发生的安全事件中错误地将用户密码以明文形式存储。Meta 最初在 2019 年 1 月宣布发现一些用户密码以明文存储,但一个月后更新了公告,透露数百万个 Instagram 密码也以易读格式存储。

虽然 Meta 没有具体说明受影响的账户数量,但一位高级员工曾表示,此事件涉及多达 6 亿个密码。这些密码自 2012 年以来就以明文形式存储在公司的服务器上,并且据称有超过 2 万名 Facebook 员工可以搜索到这些密码。DPC 在其决定中澄清,尽管这些密码未被外部人员访问,但 Meta 仍违反了多项 GDPR(通用数据保护条例)规定。

DPC 发现 Meta 未能及时通知 DPC 有关用户密码明文存储的个人数据泄露事件,也未能记录相关的个人数据泄露。此外,Meta 未能采取适当的技术措施来确保用户密码的安全。DPC 副专员 Graham Doyle 表示,用户密码不应以明文形式存储,因为这会增加数据滥用的风险,尤其是这些密码能够访问用户的社交媒体账户。

除了罚款外,DPC 还对 Meta 进行了警告。未来,DPC 将发布更详细的最终决定和相关信息,以进一步说明对 Meta 的影响。


HN 热度 157 points | 评论 115 comments | 作者:redbell | 13 hours ago #

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

  • Meta 因存储明文密码被罚款 1.02 亿美元,主要是因为未及时通知监管机构。
  • 存储明文密码并非故意,而是由于系统错误导致的日志记录问题。
  • 法律规定公司在发现问题后需及时通知监管机构,Meta 未能遵守。
  • 软件工程师应具备安全标准和法律法规的知识,以避免此类错误。
  • 大公司在处理安全问题时常常存在官僚主义,导致安全隐患被忽视。
  • 许多开发者对安全问题的重视程度不足,缺乏必要的安全意识。
  • 监管法规的存在是为了促使公司对用户数据的保护负责。
  • 罚款金额虽然看似巨大,但相较于 Meta 的收入而言并不算高。
  • 许多公司在处理用户数据时,往往未能遵循最佳实践,导致潜在风险。
  • 内部员工对明文密码的访问被视为数据泄露,但未必导致实际的恶意使用。

The perils of transition to 64-bit time_t #

https://blogs.gentoo.org/mgorny/2024/09/28/the-perils-of-transition-to-64-bit-time_t/

这篇文章讨论了在 Gentoo 系统中将 time_t 类型从 32 位转换为 64 位所面临的挑战,尤其是考虑到 2038 年将会出现的“2038 问题”。以下是详细摘要:

背景 #

  • 32 位 time_t 的局限性:当前使用 32 位 time_t 的系统在 2038 年将无法正确处理时间,导致应用程序出现错误(如返回-1 而不是当前时间)。
  • 解决方案:普遍认为,解决此问题的办法是将 time_t 改为 64 位类型。虽然一些发行版(如 Debian)已经实施了这一变化,但 Gentoo 作为源代码基础的发行版面临更复杂的挑战。

ABI(应用程序二进制接口)变更的复杂性 #

  • ABI 变更的影响:将 32 位类型替换为 64 位类型会导致 ABI 不兼容,所有依赖于 time_t 的库和应用程序都需要重新编译。
  • 结构体和参数传递问题:结构体中包含 time_t 时,字段的偏移量会发生变化,导致混合使用不同 ABI 的二进制文件时出现读取错误。

解决方案的探讨 #

  1. 平台元组(CHOST)变更:通过改变平台元组来区分 32 位和 64 位 ABI,确保不同 ABI 之间不发生混淆。
  2. 库目录(libdir)变更:为 64 位 time_t 创建新的库目录(如 libt64),使得新旧库可以共存,降低混合链接的风险。
  3. 二进制不兼容性:引入机制防止不同 ABI 的二进制文件相互链接,确保在运行时不会出现不兼容问题。

未来的挑战 #

  • 旧版预编译应用程序:许多旧的预编译应用程序将面临与系统库的兼容性问题,以及 2038 年后无法正常工作的风险。
  • 解决方案的局限性:虽然针对源代码构建的包可以通过上述措施得到解决,但对于旧的预编译软件,可能需要通过虚拟机或其他方式来处理时间问题。

总结 #

文章强调了在 Gentoo 系统中进行 ABI 变更的复杂性和必要性,提出了几种可能的解决方案,尽管这些方案仍在讨论和实验阶段。2038 年即将到来,32 位应用程序需要转向 64 位 time_t 以避免重大故障。


HN 热度 153 points | 评论 98 comments | 作者:todsacerdoti | 5 hours ago #

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

  • 对于 Gentoo 的 64 位时间_t 过渡,评论者认为需要改进构建和安装流程,以避免在更新时出现 ABI 不兼容的问题。
  • 有人提到,Gentoo 的包管理系统在处理依赖关系时存在问题,可能导致系统在更新过程中处于半破坏状态。
  • 一些评论者建议采用类似于 macOS 的处理方式,通过版本控制和预处理器宏来管理 ABI 变化。
  • 讨论中提到,其他发行版如 Debian 已经成功过渡到 64 位时间_t,而 Gentoo 由于其源代码基础的特性,面临更多挑战。
  • 有人认为,静态链接可能是解决 ABI 不兼容问题的一种方法,但也有人指出这在安全更新时不够灵活。
  • 评论者提到,ABI 变化不仅影响源代码,还可能导致二进制兼容性问题,尤其是在混合使用不同版本的库时。
  • 还有人提到,Gentoo 可以考虑采用事务性更新系统,以便在构建新包时不影响现有系统的稳定性。
  • 讨论中提到,ABI 兼容性问题在源代码发行版中更为复杂,尤其是在处理大型遗留系统时。
  • 有评论者表示,Gentoo 的设计需要重新考虑,以适应未来的 ABI 变化,避免类似问题的再次发生。