2024 10 20 HackerNews

2024-10-20 Hacker News Top Stories #

  1. 决策支持文档虽然比任务导向文档更难衡量效果,但对用户更有价值。
  2. 懒惰抢占是 Linux 内核的新调度模式,旨在简化内核调度同时提供更好的结果。
  3. 麦肯锡和其他咨询公司近年来的快速增长引发了人们对其管理和战略的质疑。
  4. Send 是一个开源版本的 Firefox Send,允许用户安全地发送加密文件。
  5. Express.js 框架发布了新的版本 5,标志着该框架的新篇章。
  6. 美国汽车安全监管机构国家公路交通安全管理局(NHTSA)对特斯拉公司的 2.4 万辆汽车进行调查,这些汽车安装了特斯拉的全自动驾驶(FSD)软件。
  7. Claude 金融数据分析助手是一个基于 Next.js 的应用程序,利用 Claude 的能力和交互式数据可视化来分析金融数据。
  8. 使用 S3 作为 Git 远程仓库和 LFS 服务器的开源库,提供了一个 Git 远程助手的实现,用于将 S3 作为无服务器 Git 服务器。
  9. 一位 82 岁的荷兰女性乔・戈森斯(Jo Goosens)至今仍骑着她 13 岁时收到的 1950 年代黑色 Gazelle 自行车,已使用近七十年。
  10. 加拿大安乐死计划引发争议,专家委员会发现一些患者请求安乐死的原因与社会因素有关,例如孤独感和对无家可归的恐惧。

Focus on decisions, not tasks #

https://technicalwriting.dev/strategy/decisions.html

这个网页是一篇关于技术写作的博客文章。文章开头引用了《每一页都是第一页》(Every Page Is Page One)一书中的一个引言,强调技术写作不仅仅是提供任务支持,还需要提供决策支持。文章指出,用户在完成任务时需要的信息不仅仅是如何操作机器,还需要了解决策的背景、后果以及相关的资源和参考资料。文章作者认为,仅仅记录操作步骤是不够的,技术写作需要提供更全面和深入的信息,帮助用户做出明智的决策。

《每一页都是第一页:面向技术沟通和网络的主题写作》是马克・贝克(Mark Baker)撰写的一本书,探讨了在网络环境下,如何有效地进行主题导向的内容创作。书中强调,网络改变了人们使用内容的方式,尤其是在寻找信息时,读者期望内容易于获取和快速有用。在这种背景下,技术沟通人员面临着如何仅通过主题来覆盖复杂产品的挑战,并帮助读者有效地找到和浏览主题内容。

书籍结构概览 #

  1. ** 前言与序言 **:

    • 书的前言由斯科特・阿贝尔(Scott Abel)撰写,序言则讨论了网络背景下的内容创作。
  2. ** 第一部分:网络环境中的内容 **:

    • 这部分探讨了网络内容的特点,强调信息架构的不同构建方式,包括自上而下和自下而上的方法。
  3. ** 第二部分:每一页都是第一页主题的特征 **:

    • 书中定义了 “主题” 的概念,指出有效的主题应当自成一体、目的明确、符合特定类型、建立上下文、假设读者具备一定资格、保持在同一层级、尽量简洁并提供丰富链接。
  4. ** 第三部分:撰写每一页都是第一页的主题 **:

    • 讨论了如何撰写符合 EPPO(每一页都是第一页)原则的主题,包括任务序列与主题序列的区别、极简主义、结构化写作、元数据、链接和内容重用等。
  5. ** 案例分析与附录 **:

    • 书中包含了为 EPPO 提出的理由以及一些不适用 EPPO 的方法的后记,此外还有术语表、参考书目和索引。

作者简介 #

马克・贝克是安娜莱克塔通讯公司(Analecta Communications, Inc.)的首席顾问,该公司专注于内容策略和结构化写作。贝克从 SGML 时代就开始实践和实施结构化写作,曾担任多家技术公司的信息工程方法经理和通讯总监,并在多个会议上发表过关于主题导向创作的演讲。他还经营个人博客,并在社交媒体上分享相关内容。

总结 #

这本书为技术沟通人员提供了在信息快速变化的网络时代中,如何有效组织和创建内容的实用指南。通过强调主题的结构和特性,贝克帮助读者理解如何在现代信息环境中满足用户的需求,使内容更具可用性和易访问性。


HN 热度 260 points | 评论 57 comments | 作者:kaycebasques | 1 day ago #

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

  • 写作时应先明确任务背景、目的和适用人群,避免用户走错方向
  • 英国政府网站在这方面做得很好,提供了详细的流程说明、警告和注意事项
  • 每个页面都应独立提供足够的信息,让用户快速判断是否在正确的路径上
  • 使用大型语言模型(LLM)时,可以先询问选项再自己决定,有助于决策
  • 通过询问多个示例,可以更好地选择合适的解决方案
  • 决策支持文档比任务导向文档更难衡量效果,但对用户更有价值
  • 决策支持文档结构可能更注重概念解释和上下文关联,内容更加互相关联
  • 可以通过支持工单、讨论记录等实际案例来证明决策支持文档的有效性

The long road to lazy preemption in the Linux CPU scheduler #

https://lwn.net/SubscriberLink/994322/45aa5211a50bc63a/

Linux 内核的 CPU 调度程序当前提供几种抢占模式,这些模式在系统吞吐量和响应时间之间实现了不同的权衡。2023 年 9 月,一场关于调度的讨论引发了对 “lazy preemption” 的概念的兴趣,这种概念可以简化内核中的调度,同时提供更好的结果。事物在一段时间内保持沉默,但 lazy preemption 又回来了,这次是通过 Peter Zijlstra 的补丁系列。虽然这个概念似乎很有效,但仍然有大量工作需要完成。

当前的内核有四种不同的模式来控制何时可以抢占一个任务。PREEMPT_NONE 是最简单的模式,只允许在当前任务耗尽其时间片时抢占。PREEMPT_VOLUNTARY 在内核中添加了大量抢占点,允许在需要时抢占。PREEMPT_FULL 允许在除少数地方(如持有自旋锁)外的任何地方抢占。最后,PREEMPT_RT 优先考虑抢占,甚至使大多数持有自旋锁的代码可抢占。

更高的抢占级别可以更快地响应事件,但也会损害系统的整体吞吐量。频繁的抢占还会导致锁竞争增加。因此,存在不同的抢占模式;最佳抢占模式将根据不同的工作负载而有所不同。大多数发行版都提供了 PREEMPT_DYNAMIC 模式的内核,这允许在启动时选择前三个模式中的任何一个,默认为 PREEMPT_VOLUNTARY。

lazy preemption 的补丁很简单,它们添加了一个新的标志 TIF_NEED_RESCHED_LAZY,指示需要在某个时候重新调度,但不一定是立即重新调度。在 lazy preemption 模式下,大多数事件会设置这个新标志,而不是 TIF_NEED_RESCHED。然而,在自愿抢占点和中断返回路径中,只检查 TIF_NEED_RESCHED。结果是,在 lazy preemption 模式下,内核中的大多数事件不会导致当前任务被抢占。该任务最终应该被抢占。为此,内核的计时器 tick 处理程序将检查 TIF_NEED_RESCHED_LAZY 是否设置,如果设置,则设置 TIF_NEED_RESCHED,可能导致当前任务被抢占。任务通常会运行接近其全时间片,除非它们自愿放弃 CPU,从而实现良好的吞吐量。

lazy preemption 模式可以在几乎所有时间内启用内核抢占,就像 PREEMPT_FULL 一样。抢占可以在抢占计数器指示应该抢占时发生。这允许在其他条件不允许时抢占长时间运行的内核代码。它还允许在真正需要时快速抢占。例如,如果实时任务变得可运行(例如,由于处理中断),则设置 TIF_NEED_RESCHED 标志,导致几乎立即抢占。不会等待计时器 tick。在这种情况下,抢占不会发生,但如果只设置了 TIF_NEED_RESCHED_LAZY(这将是大多数情况),则抢占不会发生。因此,PREEMPT_LAZY 内核比 PREEMPT_FULL 内核更不可能抢占正在运行的任务。

最终目标是拥有一个只有两个非实时模式的调度程序:PREEMPT_LAZY 和 PREEMPT_FULL。lazy 模式将占据 PREEMPT_NONE 和 PREEMPT_VOLUNTARY 之间的位置,取代它们。然而,它不需要为这两个模式添加的自愿抢占点。目前,cond_resched() 调用仍然存在,因为只要 PREEMPT_NONE 和 PREEMPT_VOLUNTARY 模式存在,它们就是必需的。它们还有助于确保在稳定 lazy preemption 时不会引入问题。在当前的补丁集中,cond_resched() 只检查 TIF_NEED_RESCHED,这意味着在许多情况下会延迟抢占,而在 PREEMPT_VOLUNTARY 或 PREEMPT_NONE 模式下,cond_resched() 会立即发生抢占。


HN 热度 199 points | 评论 49 comments | 作者:chmaynard | 17 hours ago #

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

  • 懒惰抢占的工作将使内核更小、更简单,同时提供可预测的延迟,而无需在代码中添加调度器相关的调用
  • 更高级别的抢占可以更快响应事件,但会降低系统的整体吞吐量,特别是对于长时间运行的 CPU 密集型任务
  • 事件的优先级应该根据具体事件的性质来决定,而不是依赖于全局模式
  • CPU 需要时间来评估事件的优先级,这需要在抢占发生后进行
  • 多核系统可以通过将所有中断绑定到核心 0 来减少对其他核心的影响,但这并不能完全消除性能影响
  • 硬件可以处理某些中断的优先级评估,但软件提供了更大的灵活性和可升级性
  • Linux 内核在事件发生时运行实际的 C 代码,用于排队唤醒目标任务并触发抢占
  • 抢占点的数量是调度器的属性,更多抢占点意味着更多机会正确优先处理任务,但也可能在不恰当的时间抢占进程
  • PREEMPT_VOLUNTARY 是向这个方向的一种尝试,但正在被弃用
  • 如果每个程序都要求优先处理,这样的系统可能会导致程序之间的竞争

Have McKinsey and its consulting rivals got too big? #

https://www.economist.com/business/2024/03/25/have-mckinsey-and-its-consulting-rivals-got-too-big

麦肯锡和其他咨询公司是否变得太大了?

一份匿名备忘录最近在网上流传,作者自称是麦肯锡的前合伙人,他们批评该公司近年来的“无限制和无管理的增长”,并指责其领导层缺乏“战略焦点”。这份备忘录警告称,麦肯锡这个“真正伟大的组织”正处于失去的风险之中。

麦肯锡的增长速度令人印象深刻。该公司的收入从 2009 年的 4.5 亿美元增长到 2022 年的 15.8 亿美元。然而,这种增长也带来了问题。备忘录指出,公司的管理层已经失去了对业务的控制,导致决策效率低下和客户满意度下降。

麦肯锡的竞争对手也面临着类似的挑战。波士顿咨询公司(BCG)和贝恩咨询公司(Bain)也在扩张,然而它们的增长速度没有麦肯锡快。三家公司的收入都超过了 10 亿美元,然而它们的利润率却在下降。

咨询行业的变化也对这些公司构成了挑战。客户越来越多地寻求数字化转型和可持续发展的咨询服务,而这些领域并不是传统咨询公司的强项。同时,新兴的咨询公司和初创企业也在抢占市场份额。

麦肯锡和其他咨询公司需要重新审视自己的业务模式和战略,才能保持竞争力。它们需要找到新的增长点,提高效率,和客户建立更紧密的关系。否则,它们可能会失去市场份额和客户信任。


HN 热度 147 points | 评论 156 comments | 作者:godelmachine | 9 hours ago #

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

  • 麦肯锡的工作经历让作者理解了商业运作,但短期回报优先的文化令人不满
  • 作者怀念在麦肯锡遇到的各种背景的人,尽管需要花很多时间解释软件工作原理
  • 麦肯锡的前员工可能对团队合作和项目管理带来负面影响,如要求快速交付、不善授权
  • 麦肯锡支付了作者的绿卡费用,这是个好处
  • 麦肯锡文化强调短期利益,忽视长期质量,导致软件开发过程中不断救火
  • 在欧洲很难找到像美国那样的创业文化公司,因此高质量软件开发环境稀缺
  • 麦肯锡等咨询公司现在更多从事大型合并、数字化转型等项目,而非纯粹的战略咨询
  • 咨询公司通过大量初级员工参与长期项目来增加收入,而非小团队短期战略咨询
  • 需要设计一种适合初级工程师使用的编程语言和开发环境,以提高软件质量和可维护性
  • 成为精品咨询公司虽然有挑战,但可以通过保持小规模和专注于战略工作来实现
  • 按小时计费的商业模式限制了精品咨询公司的发展潜力

Send: Open-source fork of Firefox Send #

https://send.vis.ee/

这是一个名为 timvisee/send 的项目,旨在提供简单且私密的文件共享功能。该项目是对 Mozilla 的 Firefox Send 的一个分支,Mozilla 已停止对 Send 的支持,而这个分支是社区努力保持该项目更新和活跃的成果。

项目背景 #

  • ** 分支来源 **:该项目是基于 Mozilla 最后公开托管的版本进行的分支,移除了 Mozilla 和 Firefox 的品牌,以便于合法自托管。
  • ** 兼容性 **:保持与命令行工具 ffsend 的兼容性。
  • ** 依赖更新 **:更新了依赖项,并选择性地合并了 Mozilla 自分支以来的更改。
  • ** 功能限制 **:未包含 Mozilla 的实验报告功能、下载令牌、信任警告和 Firefox 账户的更改。

项目特性 #

  • ** 文件共享 **:该项目允许用户安全地发送加密文件给其他用户。
  • **Docker 支持 **:提供了最新的 Docker 镜像,详细信息见 docs/docker.md

需求 #

  • Node.js 版本:16.x
  • **Redis 服务器 **:可选(用于开发)
  • **AWS S3 或兼容服务 **:可选

开发 #

启动一个临时开发服务器的命令为:


npm start

然后可以通过浏览器访问 http://localhost:8080

命令 #

  • npm run format:格式化前端和服务器代码。
  • npm run lint:检查 CSS 和 JavaScript 代码的错误。
  • npm test:运行 Mocha 测试套件。
  • npm run build:构建生产环境资产。
  • npm run prod:在生产配置下运行服务器。

配置 #

服务器通过环境变量进行配置,具体选项和示例可见 server/configdocs/docker.md

本地化 #

详细信息可查看 docs/localization.md

贡献 #

欢迎提交拉取请求,项目中有 “易上手问题” 的列表,供新贡献者参考。

实例 #

可在 这里 查找公共实例。


HN 热度 145 points | 评论 50 comments | 作者:leonry | 12 hours ago #

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

  • 开源版本的 Send 工具可能面临被非法内容滥用的风险,如 CSAM 和恶意软件传播
  • 限制文件可用时间和下载次数可以减少滥用情况
  • 允许接收者删除文件可以阻止非法内容的传播,但可能会被恶意利用
  • 通知文件发送者删除链接可以作为一种非侵入性的方式处理滥用
  • 一些类似服务如 Swisstransfer.com 和 filetransfer.io 仍在运营,但不清楚它们如何处理非法内容
  • 雷鸟团队正在开发 Send 的改进版本,支持大文件加密传输
  • 本地网络文件共享工具 LocalSend 非常方便,适合设备间传输
  • 希望有支持电子邮件认证的版本,允许特定邮箱上传、下载和分享文件
  • 自托管 Send 工具的难度和 Docker 支持情况不明确
  • 有些服务如 swisstransfer.com 支持高达 50GB 的文件传输

Express v5 #

https://expressjs.com/2024/10/15/v5-release.html

Express.js 框架发布了新的版本 5,标志着该框架的新篇章。该版本的发布是经过十年来的努力和贡献者们的不懈工作的结果。Express.js 的技术委员会成员 Wes Todd 表示,这个版本的发布是为了解决安全问题、简化维护和支持新的 Node.js 版本。

Express.js 5 版本的主要变化包括:

  • 支持 Node.js 18 及以上版本,不再支持旧版本的 Node.js
  • 更新了路径匹配和正则表达式的实现,提高了安全性和性能
  • 支持 Promise 和异步编程
  • 移除了 deprecated 的方法签名和 API
  • 改进了错误处理和调试功能

Express.js 的开发团队表示,这个版本的发布是为了让 Express.js 更加稳定、安全和高效。他们还表示,未来会继续改进和扩展 Express.js 的功能,感谢所有贡献者的支持和参与。

此外,Express.js 的开发团队还宣布了与 HeroDevs 合作,提供长期支持和安全更新,确保 Express.js 的用户可以安全地使用该框架。


HN 热度 141 points | 评论 38 comments | 作者:saikatsg | 1 day ago #

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

  • Express v5 的发布值得感谢,项目重启并加强了安全性
  • v5 尚未成为 npm 上的最新版本,因为需要确保安全性和稳定性
  • Express 长期保持稳定,无需频繁更新,但仍有改进空间
  • v5 引入了重要的异步处理器支持
  • Express 的响应作为路由输入的一部分显得过时,现代框架更倾向于请求返回响应
  • Express 模型在创建长生命周期的流式端点时更为简洁,适用于 LLM 应用
  • OpenAI 等公司使用 SSE 作为流式响应的标准
  • JavaScript 生态系统中的变化速度过快,Express 的稳定是一个优点

US probes Tesla’s Full Self-Driving software in 2.4M cars after fatal crash #

https://www.reuters.com/business/autos-transportation/nhtsa-opens-probe-into-24-mln-tesla-vehicles-over-full-self-driving-collisions-2024-10-18/ 美国汽车安全监管机构国家公路交通安全管理局(NHTSA)周五宣布,对特斯拉公司的 2.4 万辆汽车进行调查,这些汽车安装了特斯拉的全自动驾驶(FSD)软件。调查的原因是有四起事故报告,其中包括一起致命事故。

NHTSA 表示,调查的目的是为了确定特斯拉的 FSD 软件是否存在安全隐患,特别是在驾驶条件不佳的情况下,如阳光照射、雾天或扬尘的情况下。调查还将审查特斯拉是否已经采取措施解决这些问题。

特斯拉公司尚未对此事发表评论。该公司的股价在早盘交易中上涨了 0.1%。

特斯拉的 FSD 软件是该公司的自动驾驶技术的一部分,旨在实现高级别的自动驾驶。然而,特斯拉的自动驾驶技术已经引发了多起事故,包括一起致命事故。

NHTSA 表示,调查将审查特斯拉的 FSD 软件是否能够在驾驶条件不佳的情况下正确检测和响应。该机构还将审查特斯拉是否已经采取措施解决这些问题。

特斯拉公司已经回应称,其 FSD 软件需要驾驶员的主动监督,并不使汽车完全自动驾驶。然而,NHTSA 表示,调查将审查特斯拉的 FSD 软件是否存在安全隐患。

此次调查是 NHTSA 对特斯拉自动驾驶技术的最新一次审查。去年,NHTSA 曾对特斯拉的自动驾驶技术进行过调查,并要求特斯拉召回部分汽车。


HN 热度 139 points | 评论 7 comments | 作者:elsewhen | 23 hours ago #

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

  • 有人认为特斯拉的全自动驾驶(FSD)系统在安全性上存在明显问题,使用体验令人失望。
  • 对于自动驾驶技术的接受标准,许多人表示应该在特斯拉意承担事故责任的情况下再进行推广。
  • 认为开发软件的公司应对用户安全负责,若出现致命故障应承担法律责任。
  • 有人质疑,若软件开发者承担全部责任,会影响技术进步和行业发展,导致创新受阻。
  • 特斯拉的 FSD 在持续更新中有所改善,部分用户对最新版本的表现表示满意,认为安全性有所提高。
  • 对于过去版本的 FSD,一些用户差评,并指出在某些情况下系统仍表现不佳。
  • 一些评论者认为,特斯拉在 FSD 免费试用中缺乏足够的准备,用户体验不佳。
  • 有观点提到,不同用户的体验差异较大,FSD 的表现并不一致。
  • 对于未来的技术进步,部分人持观态度,认为在未来几年内 FSD 有可能实现较大飞跃。
  • 有人对 FSD 的潜在危险表示担忧,认为在技术成熟之前不应大规模推广。

How to leverage Claude’s capabilities with interactive visualization #

https://github.com/anthropics/anthropic-quickstarts/tree/main/financial-data-analyst

Claude 金融数据分析助手

Claude 金融数据分析助手是一个基于 Next.js 的应用程序,利用 Claude 的能力和交互式数据可视化来分析金融数据。该应用程序支持多种文件格式的上传,包括文本、代码文件、PDF 文档和图像。Claude 可以根据数据分析生成各种类型的图表,包括线图、条形图、多条形图、面积图、堆积面积图和饼图。

功能

  • 智能数据分析:利用 Claude 的能力分析金融数据
  • 多格式文件上传支持:支持文本、代码文件、PDF 文档和图像的上传
  • 交互式数据可视化:根据数据分析生成各种类型的图表

开始使用

  • 安装 Node.js 18+
  • 获取 Anthropic API 密钥
  • 克隆仓库并安装依赖
  • 创建 .env.local 文件并添加 API 密钥
  • 运行开发服务器

技术栈

  • 前端:Next.js 14、React、TailwindCSS、Shadcn/ui 组件、Recharts
  • 后端:Next.js API 路由、Edge Runtime、Anthropic SDK

使用示例

  • 数据提取和分析:上传金融文档、提取关键指标、分析趋势和模式
  • 可视化创建:根据数据生成图表、自定义可视化、比较多个指标
  • 交互式分析:询问数据、请求特定可视化、获取详细解释

有趣的应用场景

  • 环境数据分析:分析气候变化趋势、可视化污染水平、比较可再生能源采用率
  • 体育表现跟踪:上传运动员表现数据、生成关键指标可视化、分析团队统计趋势和模式
  • 社交媒体分析:处理来自不同平台的参与度数据、创建关注者增长和互动率图表、分析用户评论情绪趋势
  • 教育进度跟踪:上传学生表现数据、可视化学习进度、比较不同教学方法或课程
  • 健康和健身监测:处理来自可穿戴设备的个人健康数据、创建步数、心率和睡眠模式图表、分析长期健康趋势和提供见解

HN 热度 105 points | 评论 26 comments | 作者:allan666 | 22 hours ago #

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

  • 企业切换 LLM 后端 API 时,性能保证和量化处理的透明度很重要
  • OP 的提交不符合 HN 的“Show HN”规范,因为这不是他们自己制作的项目
  • 生成 UI(如图表)在大多数情况下效果良好,但在特定需求下可能不够灵活
  • 除了 getdot.ai,还有其他类似的服务可以帮助进行数据分析
  • 构建围绕 Claude 的轻量级应用可能有价值,尤其是当企业拥有自己的数据和专有算法时
  • 使用第三方 LLM 作为核心业务的后端存在风险,可能更适合用于投资者演示
  • 构建依赖于 LLM 的应用时,确保响应的一致性和正确性是一个挑战
  • Claude 目前在处理复杂表格和 PDF 文件方面存在不足,需要进一步改进
  • 期望 Anthropic 能为个人开发者开放 API
  • 该项目使用 React 构建,可以作为类似 UI 的参考示例

S3 as a Git remote and LFS server #

https://github.com/awslabs/git-remote-s3

git-remote-s3

这是一个开源库,允许使用 Amazon S3 作为 Git 远程仓库和 LFS(Large File Storage)服务器。它提供了一个 Git 远程助手的实现,用于将 S3 作为无服务器 Git 服务器。它还提供了一个 Git-lfs 自定义传输的实现,用于将 LFS 管理的文件推送到同一个 S3 存储桶中。

安装

git-remote-s3 是一个 Python 脚本,支持 Python 3.9 及以上版本。可以通过 pip 安装:

pip install git-remote-s3

前提条件

在使用 git-remote-s3 之前,需要:

  1. 创建一个 AWS 账户
  2. 配置一个 IAM 用户或角色
  3. 创建一个 AWS S3 存储桶(或使用现有的存储桶)
  4. 将一个最小的策略附加到该用户/角色上,以允许访问 S3 存储桶:
{
  "Sid": "S3Access",
  "Effect": "Allow",
  "Action": ["s3:PutObject", "s3:GetObject", "s3:ListBucket"],
  "Resource": ["arn:aws:s3:::<BUCKET>", "arn:aws:s3:::*/*"]
}

安全性

  1. 数据加密:所有数据在传输和存储中都默认加密。可以使用客户管理的 KMS 密钥对数据进行加密。
  2. 访问控制:通过 IAM 权限控制访问,可以在存储桶级别、前缀级别和 KMS 密钥级别控制访问。

使用 S3 远程仓库

  1. 创建一个新仓库:可以使用以下命令创建一个新仓库:
mkdir my-repo
cd my-repo
git init
git remote add origin s3://my-git-bucket/my-repo
  1. 克隆一个仓库:可以使用以下命令克隆一个仓库:
git clone s3://my-git-bucket/my-repo my-repo-clone

分支和其他

  1. 创建分支:可以使用以下命令创建一个新分支:
git checkout -b new_branch
  1. 推送分支:可以使用以下命令推送分支:
git push origin new_branch

LFS

  1. 安装 git-lfs:需要先安装 git-lfs,可以参考官方文档。
  2. 启用 S3 集成:可以使用以下命令启用 S3 集成:
lfs-s3-py install

示例用法

  1. 创建仓库和推送:可以使用以下命令创建一个新仓库并推送:
mkdir lfs-repo
cd lfs-repo
git init
git lfs install
lfs-s3-py install
git lfs track "*.tiff"
git add .gitattributes
<put file.tiff in the repo>
git add file.tiff
git commit -a -m "my first tiff file"
git remote add origin s3://my-git-bucket/lfs-repo
git push --set-upstream origin main

HN 热度 103 points | 评论 20 comments | 作者:kbumsik | 14 hours ago #

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

  • 使用 S3 作为 Git 远程和 LFS 服务器可以通过简单的 S3 桶实现,无需复杂的 API 网关、Lambda 函数和 DynamoDB 表
  • 客户端实现虽然有趣,但对 CI 工具等自动化流程支持有限
  • 项目中使用 moto 进行 S3 模拟测试,但存在许多 S3 存储实现,moto 只是其中之一
  • 项目主要关注 AWS S3 实现,对其他 S3 兼容存储(如 Minio)的支持可能不足
  • moto 和 localstack 等工具可以有效模拟 AWS 服务,便于测试和开发
  • DVC 是一个比 Git LFS 更好的工具,支持 S3 且性能更优
  • 项目对并发更新的处理较为简单,未引入 DynamoDB 等服务进行锁定
  • S3 现在支持条件写入,可以实现锁定机制,但该项目可能未使用此功能
  • 项目使用 S3 作为存储,但对增量变化的处理方式尚不清楚,如果每次都写入整个仓库,可能会增加 AWS 的使用成本
  • 亚马逊已弃用 Amazon Code Commit,S3 作为替代方案可能更受欢迎

Woman, 82, still rides same bike she was given at 13 #

https://www.telegraph.co.uk/world-news/2024/10/18/dutch-woman-82-rides-bike/

英国老太太 82 岁仍骑着同一辆自行车

一位 82 岁的荷兰女性乔・戈森斯(Jo Goosens)至今仍骑着她 13 岁时收到的 1950 年代黑色 Gazelle 自行车,已使用近七十年。尽管许多同龄人选择了电动自行车,乔却对她的旧自行车情有独钟,替换它的想法从未出现过。

这辆自行车不仅是她的交通工具,也是她生活中的一部分,承载着无数的回忆和经历。乔在采访中表达了对这辆自行车的深厚感情,认为它代表了她的青春和生活的乐趣。虽然时代在变,科技进步导致许多人选择更便捷的电动自行车,但乔仍然坚守着自己的选择,享受着骑行带来的简单快乐。


HN 热度 96 points | 评论 135 comments | 作者:tcfhgj | 12 hours ago #

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

  • 物品成为传家宝需要在适当的时候评估其价值和意义
  • 传家宝的传承应提前规划,避免死后物品失去情感价值
  • 传承物品时,生者能享受他人对其的欣赏,保持记忆的延续
  • 有些老物件,如旧钱包,因其情感价值而被长期保留
  • 某些传家宝,如铸铁炖锅,不仅有情感价值,还有实用价值
  • 保留旧物作为提醒,当代设计不一定比传统设计更好
  • 垫子并不总是对身体有益,有时硬表面更舒适,如自行车鞍座和床垫

Reports show some Canada euthanasia deaths driven by social reasons #

https://apnews.com/article/canada-euthanasia-deaths-doctors-nonterminal-nonfatal-cases-cd7ff24c57c15a404347df289788ef6d

在加拿大人口最多的省份安大略省,专家委员会对安乐死案件进行审查,发现一些患者请求安乐死的原因与社会因素有关,例如孤独感和对无家可归的恐惧。这引发了对国家辅助死亡体系中脆弱群体批准安乐死的担忧。

安大略省的首席验尸官在周三发布了几份报告,这些报告基于对没有绝症患者安乐死案件的分析。尽管加拿大法律要求安乐死必须有医学理由,如致命的诊断或无法忍受的疼痛,但委员会的报告显示,某些病例的安乐死是基于其他因素,包括 “未满足的社会需求”。

根据美联社的调查,医生和护士在面对脆弱群体的安乐死请求时感到困惑,他们认为这些人的痛苦可以通过资金、社会关系或适当的住房来解决。一些提供者对结束这些可避免的生命感到深深不安,尽管他们满足了加拿大安乐死系统 MAiD 的标准。

专家委员会的成员对一些个案表示担忧,例如一名被称为 “Mr. A” 的男子,他是一名 40 多岁的失业者,患有肠道疾病,并有药物滥用和心理健康问题的历史。他被描述为 “社会脆弱和孤立”。委员会成员对一名精神科医生在心理健康评估中建议进行安乐死感到震惊。

另一个案例是 “Ms. B”,一名 50 多岁的女性,因多种化学敏感症而痛苦,同时有心理健康问题的历史,包括自杀倾向和创伤后应激障碍。她的孤立主要源于无法获得适当住房,因此请求安乐死。委员会成员对她的死亡是否合理存在分歧,有人认为由于她的痛苦主要源于住房不足,因此应该被排除在安乐死之外。

委员会提出的多项建议包括为考虑安乐死的患者指派患者倡导者,以及为评估非绝症患者请求的医生和护士提供更多指导。委员会还注意到,在近 2% 的案件中,法律要求的安全保障可能未得到满足,但至今没有医生或护士因此受到起诉。

专家们认为,加拿大法律的宽松性是根本问题,尽管民调显示公众对扩大安乐死的支持,但专家质疑大多数加拿大人是否真正理解法律内容。安大略省是加拿大唯一发布案例摘要的省份,这些案例可能表明安乐死批准存在问题。

总体来看,这些调查结果引发了人们对安乐死法律及其实施过程中对脆弱群体保护不足的深刻担忧。


HN 热度 90 points | 评论 126 comments | 作者:impish9208 | 1 day ago #

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

  • 加拿大的安乐死计划虽然存在问题,但总体上比没有这个计划要好
  • 慢性疾病带来的痛苦可能会影响个人选择安乐死的决定
  • 社会鼓励老年人安乐死以减轻医疗系统的负担是不道德的
  • 年轻人可能会因为看到老年人得不到预期的照顾而选择退出社会契约
  • 加拿大的资源分配问题可能导致年轻人对老年人的照顾感到不满
  • 有些人更倾向于尽可能地活到生命的最后一刻,即使是在医疗上可能没有意义的情况
  • 医生协助自杀应是个人的自主选择,不应受到社会或家庭的压力
  • 有报道称加拿大安乐死计划中存在医生对患者施加压力的情况,暗示患者占用了其他患者需要的医疗资源