2024 08 17 HackerNews

2024-08-17 Hacker News Top Stories #

  1. 近年来许多公司CEO选择远程办公,如星巴克和维多利亚的秘密新任CEO都将不在总部常驻,但仍会定期往返并获得公司旅行支持。
  2. 前谷歌CEO埃里克·施密特在斯坦福大学演讲中强调AI技术快速发展及其广泛影响,同时讨论了谷歌在AI竞赛中的挑战。
  3. CSS网格区域技术帮助前端开发者创建复杂响应式网页布局,提供实用示例和技巧。
  4. 航空企业家卡尔·斯托尔茨夫启动项目修复美国历史上首架“空军一号”专机Columbine II,预计耗资1200万美元并在未来三年内完成。
  5. PyScript是一个开源平台,让Python能在浏览器环境中运行,降低了编程门槛并拓展了Web开发的可能性。
  6. 亚里士多德认为美好生活在于培养清晰智力和高尚品格,强调幸福是追求卓越的过程而非单纯感受快乐。
  7. ImRAD是一款GUI构建工具,简化基于ImGui库的界面设计过程,支持多平台并生成依赖ImGui的代码。
  8. 科学家通过恢复老鼠颈部淋巴血管功能,成功加速大脑废物清除过程,为治疗阿尔茨海默病和帕金森病带来新希望。
  9. PicoDVI项目的重要提交增强了RP2350平台RISC-V架构支持,通过汇编代码优化提高了图形处理和数据传输性能。
  10. 一团队通过切换至签名资产URL解决了因Google Cloud存储桶公开设置导致的高额费用问题,有效控制图片访问并应对高流量冲击。

CEOs are running companies from afar even as workers return to office #

https://www.bloomberg.com/news/articles/2024-08-15/starbucks-victoria-s-secret-are-part-of-broader-trend-of-remote-ceos

近年来,越来越多的公司高管选择在总部以外的地方居住,成为一种新趋势。

例如,星克的新任首席执行官布莱恩・尼科尔(Brian Niccol)将不搬到西雅图,而是在加利福尼亚的纽波特海滩设立远程办公室,并定期前往总部。维多利亚的秘密新任首席执行官希拉里・苏珀(Hillary Super)也将从加州搬到纽约。

两位首席执行官都同意频繁通勤,并且公司将为他们提供旅行费用支持。这种做法与一些公司要求员工回归办公室的趋势相悖,显示出高管在工作地点上的灵活性逐渐增加。


HN 热度 370 points | 评论 258 comments | 作者:petethomas | 22 hours ago #

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

  • 许多初创公司的 CEO 对员工的在场感到冷漠,导致员工在 CEO 到场时感到压力。
  • CEO 的孤独感可能影响其对员工出勤的期望,导致对远程工作政策的频繁调整。
  • 有些员工认为,开放式办公室环境不利于专注和生产力,反而更倾向于在家工作。
  • 疫情期间的远程工作改变了团队沟通方式,部分员工认为这种变化降低了生产力。
  • 远程工作文化需要团队有意识地创造开放讨论的环境,以提高沟通效率。
  • 一些管理者可能会利用远程工作机会,将工作外包到成本更低的地区,导致质量下降。
  • 高管在公司中的角色与普通员工不同,常常享有更大的灵活性和特权。
  • CEO 的工作常常被误解,实际上需要处理复杂的决策和压力,工作强度不容小觑。
  • 对于高管的工作时间和效率的评估,应该更加关注其决策的质量而非工作时长。
  • 许多员工对高管的双重标准感到不满,认为他们在工作和责任上享有特权。

Former Google CEO Eric Schmidt’s Leaked Stanford Talk #

https://github.com/ociubotaru/transcripts/blob/main/Stanford_ECON295%E2%A7%B8CS323_I_2024_I_The_Age_of_AI%2C_Eric_Schmidt.txt

这份文档是斯坦福大学 ECON295⧸CS323 I 2024 课程的一部分,由 Eric Schmidt 主讲,主题为“AI 时代”。以下是对文档内容的中文总结:

  1. AI 的短期发展:Schmidt 认为 AI 发展迅速,每六个月就需要更新一次关于未来发展的演讲。他提到了百万级 token 上下文窗口技术,这允许 AI 处理更长的文本和更复杂的问题。
  2. AI 技术定义:文档中讨论了 AI 代理(agent)和文本到行动(text to action)的技术定义,以及 Python 在 AI 领域的主导地位和新编程语言 Mojo 的出现。
  3. NVIDIA 的市场地位:讨论了 NVIDIA 市值达到 2 万亿美元的原因,主要是其 CUDA 技术和其他高度优化的开源库,为机器学习提供了优化。
  4. AI 的未来影响:预测了大型上下文窗口、AI 代理和文本到行动的结合将在未来一两年内对世界产生巨大影响,可能超过社交媒体带来的影响。
  5. AI 在军事领域的应用:Schmidt 分享了他参与的乌克兰战争相关项目,讨论了使用 AI 和机器人技术改变战争方式的想法。
  6. AI 对知识的影响:讨论了随着 AI 模型变得越来越复杂,我们可能无法完全理解它们内部的工作原理,这可能改变我们对知识的理解。
  7. AI 的伦理和社会问题:提到了 AI 在公共舆论、错误信息传播方面的影响,以及在选举期间应对这些问题的挑战。
  8. AI 在教育中的应用:预测了 AI 将如何影响计算机科学教育,以及学生如何与 AI 代理一起学习编程。
  9. AI 的监管和政策问题:讨论了如何在全球范围内制定合适的激励机制和监管政策,以确保 AI 的健康发展。
  10. AI 的国际竞争:强调了美国和中国在 AI 领域的竞争,以及两国在技术、资金和人才方面的优势。
  11. AI 对就业市场的影响:预测了 AI 将如何改变劳动市场,特别是对于高技能和危险工作的影响。
  12. AI 的发展趋势:讨论了 AI 技术的未来趋势,包括新算法的开发和对现有技术的改进。

整体而言,这份文档涵盖了 AI 技术的多个方面,从技术细节到社会影响,再到教育和政策问题,反映了 AI 时代所带来的广泛挑战和机遇。


HN 热度 317 points | 评论 429 comments | 作者:gregzeng95 | 18 hours ago #

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

  • 谈到谷歌输给 OpenAI 的原因,有人认为是谷歌过于重视工作与生活的平衡,缺乏竞争意识。
  • 许多人认为谷歌的管理文化和绩效指标导致了产品的失败,缺乏对长期项目的支持。
  • 有评论指出,谷歌在多个技术领域的竞争中逐渐失利,可能是由于管理层的无能和缺乏创新。
  • 谷歌的产品被频繁淘汰,反映出公司内部对成功的苛刻标准和对失败的零容忍。
  • 一些人认为,谷歌的工程师在工作中缺乏动力,导致公司整体缺乏创新和竞争力。
  • 有评论提到,谷歌的文化已经变得更加官僚化,决策过程缓慢,影响了创新的速度。
  • 谷歌的云服务和域名服务的取消让用户感到失望,认为这影响了谷歌的市场竞争力。
  • 还有人指出,谷歌的广告业务虽然强大,但搜索引擎的质量正在下降,用户体验受到影响。
  • 一些评论认为,谷歌的管理层缺乏对市场的敏感度,导致公司在技术竞争中处于劣势。
  • 有人提到,谷歌的工程师在工作中面临的压力和文化问题,可能导致人才流失和士气低落。

CSS Grid Areas #

https://ishadeed.com/article/css-grid-area/

这篇文章由 Ahmad Shadeed 撰写,主要介绍了 CSS 网格布局中的“网格区域”(grid areas)特性,强调了其在布局中的简便性和强大功能。

文章摘要 #

  1. 引言

    • CSS 网格布局自 2017 年起在所有主流浏览器中得到广泛支持,但许多人仍未充分利用网格区域功能。
    • 文章旨在通过示例和解释,帮助读者理解并使用网格区域。
  2. 基本概念

    • 网格布局允许开发者通过 grid-template-areas 定义每个区域的名称,从而简化元素的定位。
    • 例如,定义一个两列的网格,分别为 item1item2,可以通过命名区域来轻松管理布局。
  3. 网格区域的语法

    • 网格区域的定义必须是矩形的,所有区域都必须被定义,即使不使用。
    • 通过 grid-area 属性,可以将元素映射到相应的命名区域。
  4. 示例与用法

    • 文章提供了多个示例,展示如何使用命名区域来创建不同的布局,如卡片布局、响应式布局等。
    • 通过改变 grid-template-areas 的值,可以轻松调整布局,而无需重新计算行列号。
  5. 命名网格线

    • 文章还介绍了命名网格线的概念,允许开发者使用自定义名称来替代默认的行列号,使得布局更具可读性。
    • 例如,可以使用 [content-start][content-end] 来定义网格线。
  6. 实际应用

    • 文章讨论了如何在实际项目中应用网格区域,包括响应式设计和条件布局。
    • 通过结合 CSS 的 :has() 选择器,可以根据元素的存在与否动态改变布局。
  7. 开发工具支持

    • 主要浏览器(Chrome、Safari、Firefox)均提供良好的网格布局调试工具,帮助开发者更好地理解和调整布局。
  8. 总结

    • 使用网格区域可以大大简化 CSS 布局的管理,使得团队成员在修改布局时更加高效。
    • 文章鼓励开发者尝试使用网格区域,以提升布局的灵活性和可维护性。

结论 #

这篇文章深入探讨了 CSS 网格区域的使用,提供了实用的示例和技巧,适合希望提升布局能力的前端开发者。通过掌握这些概念,开发者可以更轻松地创建复杂且响应式的网页布局。


HN 热度 315 points | 评论 80 comments | 作者:OuterVale | 20 hours ago #

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

  • 有人对动画演示感兴趣,但发现动画并非用 CSS 实现。
  • 学习了 Flexbox 后觉得足够用,未深入学习 Grid,认为 Grid 的应用场景有限。
  • Grid 模板区域类似于传统印刷布局,声明性强,但在某些情况下不如 Flexbox 灵活。
  • Flexbox 适合大多数布局需求,但 Grid 在响应式设计和复杂布局中更具优势。
  • Grid 和 Flexbox 可以结合使用,形成强大的布局工具。
  • 对 Grid 的语法和使用感到困惑,尤其是行列的定义和数字表示。
  • CSS 的设计理念与编程语言不同,许多程序员在使用时感到困惑。
  • Grid 在响应式设计中表现优异,可以通过媒体查询轻松调整布局。
  • 对于初学者,Grid 和 Flexbox 的学习曲线相对较低,掌握后能显著提升布局能力。
  • 有人认为 Grid 的功能强大,但 Flexbox 在简单布局中更为直观和易用。

One man’s quest to restore the first-ever Air Force One #

https://www.atlasobscura.com/articles/first-air-force-one

这篇文章讲述了美国第一架“空军一号”——艾森豪威尔总统的专机 Columbine II 的历史及其修复过程。

历史背景 Columbine II 是 1948 年制造的洛克希德 C-121 星座飞机,1953 年被艾森豪威尔总统改装为专机,并首次使用“空军一号”这一呼号。该飞机长约 30 米,宽约 40 米,最多可容纳 16 名乘客,配备五名飞行员和数名乘务员。艾森豪威尔利用这架飞机进行外交活动,推动了现代总统外交的开端。

飞机的衰退与被遗弃 在艾森豪威尔总统之后,Columbine II 被用作副总统尼克松的 VIP 运输机,最终于 1968 年退役并被遗弃在亚利桑那州的一个机场。由于缺乏对其历史价值的认识,这架飞机逐渐被遗忘,直到 1970 年被一位农药喷洒机飞行员购得,之后又经历了多次转手。

修复的开始 2014 年,航空企业家卡尔·斯托尔茨夫发现了这架被遗弃的飞机,并决定进行修复。他于 2015 年以约 150 万美元的价格购得 Columbine II,并开始了一项艰巨的修复工程。经过一年的努力,飞机于 2016 年成功飞往弗吉尼亚州进行全面修复。

修复过程 修复工作包括更换发动机、更新电气系统、修复机身和内饰等。团队还努力寻找原始材料和零部件,以确保修复后的飞机尽可能还原到艾森豪威尔总统时期的样子。预计整个项目将耗资 1200 万美元,预计在未来三年内完成。

未来展望 修复完成后,Columbine II 将作为历史遗迹向公众开放,成为连接历史与现代的重要象征。项目负责人希望通过与企业合作,加速修复进程,并在全国各地的航空展上展示这架飞机。

总的来说,这篇文章不仅讲述了 Columbine II 的历史和修复过程,还强调了其在美国历史和外交中的重要性。


HN 热度 237 points | 评论 64 comments | 作者:rmason | 1 day ago #

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

  • 许多评论者提到可以参观不同的空军一号飞机,尤其是在西雅图和俄亥俄州的博物馆。
  • 有人分享了关于空军一号的历史和技术背景,强调其在航空史上的重要性。
  • 评论中提到,现代总统专车的安全性和技术与历史上的车辆相比有显著差异。
  • 有人对恢复空军一号的过程表示兴趣,并希望能看到相关的记录视频。
  • 讨论中提到,恢复和保护历史飞机的成本非常高,且涉及复杂的认证过程。
  • 有评论指出,空军一号的称呼并不特指某一架飞机,而是指任何载有美国总统的空军飞机。
  • 一些评论者对博物馆的展览和维护工作表示赞赏,认为这有助于保留历史遗产。
  • 讨论中提到,许多老旧的总统专车被销毁,只有少数仍在博物馆中展出。

PyScript: An open source platform for Python in the browser #

https://pyscript.net/

PyScript 是一个开源平台,旨在让 Python 能够在浏览器中运行。它结合了 Python 和 Web 技术的优势,使得开发者可以在无需复杂安装的情况下,直接在浏览器中创建和运行应用程序。以下是 PyScript 的主要特点和功能:

  1. 易用性:用户可以在浏览器中运行应用,无需进行复杂的安装步骤。
  2. 表达能力:利用 Python 这一强大且易于学习的编程语言,开发者可以创建功能丰富的应用。
  3. 可扩展性:应用程序在用户的浏览器中运行,无需昂贵的基础设施支持。
  4. 可分享性:应用程序只需一个 URL 即可分享,方便快捷。
  5. 通用性:代码可以在任何支持浏览器的环境中运行。
  6. 安全性:PyScript 在浏览器这一经过充分测试的计算平台上运行,确保了安全性。
  7. 强大性:将 Web 和 Python 的最佳特性结合在一起,提供强大的开发能力。

PyScript 的目标是使得编程变得更加普及和易于接触,尤其是对于那些希望在 Web 环境中使用 Python 的开发者。该平台的文档和社区支持也为初学者和高级用户提供了丰富的资源。


HN 热度 218 points | 评论 105 comments | 作者:xiaodai | 16 hours ago #

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

  • PyScript 提供了一种在浏览器中使用 Python 的新方式,允许开发者构建实际应用。
  • 有用户分享了使用 PyScript 创建的达拉斯犯罪统计面板,展示了其响应速度和可用性。
  • 一些用户反映在不同浏览器上运行 PyScript 的性能差异,尤其是在内存使用方面。
  • 对于 PyScript 的文档和概念,许多用户表示困惑,认为其定义模糊。
  • 有讨论认为 PyScript 可能会给开发者带来新的挑战,尤其是在维护代码方面。
  • PyScript 和 Pyodide 的关系被澄清,PyScript 是基于 Pyodide 的框架,允许在浏览器中运行 Python。
  • 用户对 PyScript 的性能表示关注,尤其是与 JavaScript 的比较。
  • 有人提到 PyScript 可能适合简单的 UI 逻辑,但在复杂应用中可能不如其他框架(如 Streamlit 或 Gradio)合适。
  • 讨论中提到的 CORS 问题限制了 PyScript 的一些功能,尤其是在 API 调用和数据抓取方面。
  • 有用户对 PyScript 的潜力表示乐观,认为它可能会改变浏览器中的开发方式。

Aristotle – How to live a good life #

https://ralphammer.com/aristotle-how-to-live-a-good-life/

该文章探讨了亚里士多德关于如何过上美好生活的观点,主要基于他的著作《尼各马科伦理学》。以下是详细摘要:

  1. 什么是好的生活

    • 亚里士多德认为,好的事物是能够实现其独特功能的事物。对于人类来说,好的生活意味着拥有一个优秀的灵魂,这种优秀体现在清晰的智力和高尚的品格上。
  2. 清晰智力的美德

    • 亚里士多德将智力分为几种理论美德:
      • 技艺(techne):创造事物的能力。
      • 直觉(nous):对世界深层真理的直观理解。
      • 科学知识(episteme):对世界的逻辑推理。
      • 审慎(phronesis):做出实际(道德)决策的能力。
      • 智慧(sophia):对更深层真理的全面理解。
    • 这些美德帮助我们理解真理和可能性。
  3. 高尚品格的美德

    • 良好的品格能够妥善处理情感,找到两种极端之间的适当中庸之道:
      • 勇气:介于懦弱和鲁莽之间。
      • 节制:介于暴食和禁欲之间。
    • 适当的中庸因人而异,也因情境而异。我们不能仅仅依靠规则,而是需要通过习惯来培养品格。
  4. 行动的重要性

    • 成功的生活是通过美德行为来实现人类灵魂的目的。亚里士多德认为,人并非天生具备这些美德,而是需要通过学习和习惯来发展。
  5. 幸福的定义

    • 对于亚里士多德来说,幸福是通过一生的美德活动来实现的,涉及智力和品格。他并不否认快乐的存在,但认为快乐并不是美好生活的本质。真正的幸福是追求卓越,而非单纯的感官享受。
  6. 总结

    • 亚里士多德的美好生活观强调,生活的意义在于实现人类的本性,即拥有清晰的智力和高尚的品格。幸福是追求卓越的过程,而不仅仅是感受快乐。

这篇文章深入探讨了亚里士多德的伦理学,强调了智力和品格在实现美好生活中的重要性。


HN 热度 217 points | 评论 146 comments | 作者:thread_id | 15 hours ago #

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

  • 有人认为文章低估了幸福的重要性,或假设幸福是美德的必然结果,尤其对那些在困境中的人来说,亚里士多德的观点可能不适用。
  • 另一些评论指出,亚里士多德认为“幸福”是指一种充实的生活,而非单纯的快乐,强调即使在痛苦中也可以过上美好的生活。
  • 有人提到,理解古希腊哲学的关键在于掌握希腊语中的术语,这有助于更好地理解亚里士多德的思想。
  • 讨论中提到,虽然亚里士多德出身于上层社会,但这并不意味着他的观点不适用于其他阶层的人。
  • 有评论指出,亚里士多德的伦理学强调通过习惯来培养美德,而不是天生就具备这些美德。
  • 一些人认为,追求幸福可能会导致不快乐,反而应该关注生活的意义和满足感。
  • 还有人提到,亚里士多德的“中庸之道”并不适用于所有情况,特别是在面临重大挑战时。
  • 讨论中提到,古代哲学家们的观点需要结合历史背景来理解,不能简单地用现代标准来评判。
  • 有人认为,现代哲学在某种程度上抛弃了古代哲学的智慧,导致对幸福和美德的理解变得肤浅。

ImRAD is a GUI builder for the ImGui library #

https://github.com/tpecholt/imrad

ImRAD 是一个用于 ImGui 库的图形用户界面(GUI)构建工具,旨在简化 GUI 的设计和实现。以下是该项目的详细摘要:

项目概述 #

  • 名称:ImRAD
  • 功能:ImRAD 能够生成和解析 C++ 代码,用户可以直接在其应用程序中使用这些代码。该工具支持 Windows、Linux 和 MacOS 平台。

主要特性 #

  1. 窗口设计支持

    • 支持设计各种类型的窗口,包括浮动窗口、弹出窗口和模态弹出窗口。
    • 提供与 GLFW 集成的主窗口,生成的代码能够同步 ImGui 窗口与操作系统窗口(如标题栏、可调整大小标志等)。
  2. 活动窗口

    • 提供一种无装饰窗口,填充整个视口区域,主要用于 Android 应用。
  3. 小部件支持

    • 支持多种基本小部件(如文本、复选框、组合框、按钮、滑块、颜色编辑等)。
    • 包含容器小部件(如子窗口、表格、折叠标题、树节点、标签栏等)。
    • 提供更复杂的小部件,如分隔器和自定义小部件。
  4. 布局管理

    • 使用相对位置生成布局,确保小部件之间的间距和框架填充一致。
    • 支持盒子布局和表格布局,允许用户在水平或垂直方向上拉伸小部件。
  5. 属性绑定

    • 通过简单的类向导或绑定对话框管理类变量,确保小部件状态在绘制时能够动态更新。
  6. 事件处理

    • 生成事件处理程序和支持代码,允许用户代码与生成的代码分离。
  7. 样式配置

    • 用户可以定义新的样式并将其保存为 INI 文件,ImRAD 会在设计 UI 时遵循这些样式设置。
  8. 代码生成

    • 生成的代码仅依赖于 ImGui 库和一个附带的头文件(imrad.h),用户可以自由添加额外代码。

构建与安装 #

  • Windows:使用 CMake GUI 配置并生成解决方案文件,使用 Visual Studio 构建 INSTALL 项目。
  • Linux:需要安装特定的依赖包,运行提供的安装脚本进行安装。

许可证 #

ImRAD 源代码采用 GPL 许可证,但生成的代码不受 GPL 限制,用户可以自由选择其许可证。

其他信息 #

  • 项目正在积极开发中,用户可以在 GitHub 上找到更多教程和详细内容。
  • 设计与实现由 Tomas Pecholt 完成,感谢 Omar Cornut 对 Dear ImGui 的贡献。

ImRAD 为开发者提供了一个强大的工具,简化了 GUI 的设计过程,使得在 ImGui 库上构建应用程序变得更加高效和灵活。


HN 热度 205 points | 评论 84 comments | 作者:davikr | 24 hours ago #

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

  • 该项目的手动解析器能够处理 C++ 的子集,令人印象深刻,但也显得疯狂。
  • C++ 语言解析难度大,手动实现解析器是一项了不起的成就。
  • 对于“Dear ImGui”的命名问题,许多人认为应该使用完整名称。
  • 有人对 Lazarus 和 Delphi 的 GUI 构建能力表示赞赏,认为其优于 VB6。
  • 讨论中提到,VB6 在快速开发方面的优势仍然存在。
  • 对于 Python 生态系统中缺乏类似 VB6 的 RAD 工具表示遗憾。
  • 认为现代 GUI 开发应考虑性能和资源消耗,避免不必要的 CPU 使用。
  • 有人提到 React 等现代框架在 UI 设计中采用了即时模式的理念。
  • 对于 ImRAD 的多平台支持和最小依赖性表示赞赏。
  • 有人希望 ImGui 能够支持更多的文本渲染和布局功能,以满足企业应用需求。

Cleaning up the aging brain: Scientists restore brain’s trash disposal system #

https://www.sciencedaily.com/releases/2024/08/240815124156.htm

科学家在老鼠身上恢复了大脑的废物清除过程,为阿尔茨海默病和帕金森病的潜在新治疗提供了可能性。随着年龄的增长,大脑清除有害废物的能力减弱,这与这些神经系统疾病的发展相关。

研究表明,通过恢复颈部淋巴血管功能,可以显著提高大脑废物的排出速度,使用了一种已临床应用的药物 —— 前列腺素 F2α,能够促进平滑肌收缩。研究发现,老鼠的淋巴泵功能随着年龄的增长而减弱,但该药物能使老鼠的废物清除效率恢复到年轻时的水平。

这项研究为未来的治疗策略提供了新的方向。


HN 热度 189 points | 评论 72 comments | 作者:jdmark | 1 day ago #

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

  • 有人认为将这项研究与反衰老研究结合,可能会使老鼠在智力和寿命上超过人类。
  • 对于大卫·辛克莱的研究,有人质疑其真实性,认为他在延长寿命方面的声称过于夸大。
  • 有评论提到,睡眠不足会影响认知表现,建议关注脑脊液的排泄机制。
  • 有人分享了使用褪黑激素和镁的经验,认为对睡眠和认知有积极影响。
  • 有讨论关于肌酸的补充,认为其对运动表现和认知有潜在好处,但也有副作用的担忧。
  • 有人提到,适当的锻炼和良好的饮食对维持健康至关重要,尤其是对于老年人。
  • 讨论中提到,老鼠模型在某些研究中有效,但在脑部、衰老和癌症研究中可能不够可靠。

RP2350 PicoDVI Preview #

https://github.com/Wren6991/PicoDVI/commit/ca941baf37e3f04738b8e641896d85feb3430385

在 GitHub 上,Wren6991 对 PicoDVI 项目进行了一个重要的提交(commit ID: ca941ba),主要涉及对 RP2350 平台的支持,包括对 RISC-V 架构的适配。以下是该提交的详细摘要:

  1. 主要更改

    • 所有在 libdvi 中的 ARM 汇编代码已被移植到 RISC-V,并针对 Hazard3 进行了优化。
    • 对现有的 ARM 汇编代码进行了调整,以提高在 Cortex-M33 上的性能。
    • 在 RP2350 上,RGB 编码现在默认使用 SIO TMDS 编码器(可以通过定义 DVI_USE_SIO_TMDS_ENCODE=0 来禁用,具体见 software/libdvi/dvi_config_defs.h)。
    • libsprite 中的大部分 ARM 汇编代码也已移植到 RISC-V,足以运行标准演示。
  2. 构建说明

    • 提供了构建项目的步骤,包括创建构建目录、设置平台和 SDK 路径等。
    • 特别提到如果要运行 vista 演示,需要使用两个 UF2 数据文件:vista_data_rp2040.uf2vista_data_rp2350.uf2,它们的区别在于家庭 ID。
  3. 文件更改

    • 此次提交涉及 28 个文件的更改,包括 1704 行的新增和 168 行的删除。
    • 主要的更改集中在汇编代码、配置文件和应用程序的 CMakeLists.txt 文件中。
  4. 代码优化

    • 通过对汇编代码的优化,提升了整体性能,尤其是在图形处理和数据传输方面。
  5. 其他细节

    • 提交中还包含了对不同平台(RP2040 和 RP2350)的支持,确保了代码的兼容性和可移植性。

这个提交标志着 PicoDVI 项目在支持新硬件平台方面的重要进展,特别是对 RISC-V 架构的支持,使得该项目能够在更广泛的设备上运行。


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

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

  • RP2350 的新 HSTX 接口专注于视频输出,避免了 PIO 的使用和 CPU 资源的消耗。
  • SIO TMDS 编码器的主要优势在于可以在任意 GPIO 上输出 TMDS,而 HSTX 仅限于八个 GPIO。
  • HSTX 内置 TMDS 编码器,功能与 SIO TMDS 编码器相似,支持多种像素格式。
  • PicoDVI 项目的动机在于学习 TMDS 编码的细节,并为其他人提供开放的实现参考。
  • RP2350 在功能上向 RV32 核心的迁移表现出色,支持多种核心选择。
  • HSTX 能够以双倍的比特时钟输出,理论上可实现 720p 的输出。
  • USB-C 可以实现视频和 HID 设备的双向通信,简化 KVM 或软件模拟显示器的连接。
  • RP2350 设计中包含 ARM_DISABLE 保险丝,允许制造 RISC-V 专用芯片而无需重新设计硅片。

We survived 10k requests/second: Switching to signed asset URLs in an emergency #

https://hardcover.app/blog/how-we-survived-10k-requests-second-switching-to-signed-urls

这篇文章由 Adam Fortuna 撰写,标题为《如何在紧急情况下通过切换到签名资产 URL 来应对每秒 10,000 个请求》。文章讲述了作者在使用 Google Cloud 服务时遇到的一个重大问题,以及他们如何通过技术手段解决这个问题。

事件背景 #

作者在尝试将 Next.js 的测试环境迁移到 Google Cloud Run 时,意外收到了高额的费用通知。经过调查,发现 Google Cloud Storage 的费用激增了 2098%。问题的根源在于,作者将存储桶设置为公开,导致某个用户以每秒下载 10,000 张图片的速度访问其 API,造成了巨大的数据流量。

问题分析 #

作者的 Google Cloud Storage 存储了所有封面图片和用户头像等静态资源。由于存储桶是公开的,任何人都可以直接访问这些图片。攻击者利用这一点,下载了大量的图片,导致了异常的费用。

解决方案 #

为了防止未来的类似事件,作者决定将存储桶设置为私有,并使用签名 URL 来控制对图片的访问。签名 URL 是带有额外参数的 URL,只有在这些参数正确的情况下才能访问资源。

实施步骤 #

  1. 生成签名 URL:作者通过 Google Cloud Storage API 生成签名 URL,并设置过期时间。
  2. 更新网站架构:将图片的直接访问改为通过 Ruby on Rails 应用程序进行代理。Rails 应用会生成签名 URL 并进行重定向。
  3. 缓存机制:使用 Redis 缓存生成的签名 URL,以提高访问速度,减少重复生成的开销。
  4. API 更新:为 API 用户创建新的端点,以便他们可以获取签名 URL。

限制 API 使用 #

为了防止滥用,作者还实现了 API 请求的速率限制,使用了 Rack Attack gem 来限制不同端点的请求频率。

总结 #

通过这些措施,作者成功地解决了高流量带来的问题,并为未来的安全性奠定了基础。文章强调了在设计 API 和存储方案时,安全性和访问控制的重要性。


HN 热度 140 points | 评论 165 comments | 作者:dyogenez | 1 day ago #

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

  • 有人指出代码中可能存在安全漏洞,特别是开放重定向和私有存储桶泄露的风险,强调用户输入的 URL 需要严格检查和清理。
  • 讨论了“签名 URL”的概念,认为作者在文中多次提到但未解释其工作原理,建议补充相关信息以便读者理解。
  • 有评论提到,签名 URL 与 JWT 的比较,认为两者在技术目标上相似,但实现方式不同。
  • 一些用户提到,签名 URL 可以与简单存储服务(如 S3 和 Google Cloud Storage)结合使用,建议在发放签名 URL 之前进行身份验证。
  • 讨论中提到,使用签名 URL 的主要好处是可以避免在请求者和数据之间增加计算负担,强调 CDN 的使用可以有效减轻服务器压力。
  • 有人提到,攻击者可以通过不断请求相同的文件来造成高额费用,建议使用 CDN 和速率限制来防止这种情况。
  • 讨论了 GCP 与 AWS 在服务使用上的复杂性,认为 GCP 的文档和服务选择不够直观,导致用户难以找到合适的解决方案。
  • 有评论建议将存储桶放在 CDN 后面,以提高安全性和性能,认为这可以有效防止直接访问存储桶的风险。
  • 讨论中提到,使用 Cloudflare 等 CDN 可以降低带宽费用,并提高数据传输的效率。
  • 一些用户分享了自己的经验,提到在面对高流量请求时,使用速率限制和其他防护措施的重要性。
  • 有人提到,云服务的使用成本可能会迅速增加,建议在设计系统时考虑到潜在的费用问题。
  • 最后,有评论建议在处理大量请求时,考虑使用更简单的架构,避免过度设计和复杂的云服务配置。