2024-08-10 Hacker News Top Stories #
- Jake Seliger 的去世令社区哀悼,他在与癌症斗争中对医疗系统的批评和对临床试验的关注留下了深刻印象。
- LibreCUDA 项目旨在替代 CUDA 驱动 API,使开发者能不依赖专有运行时在 Nvidia GPU 上运行 CUDA 代码。
- 文章提倡采用“任务心态”而非设定遥远的目标,以促进个人成长和转变。
- 一人因 USPS 短信诈骗其妻而反击,黑客入侵诈骗者系统的故事引发热议。
- oTranscribe 是一款免费开源的网页应用程序,专为简化录音采访的转录过程而设计。
- Stack Auth 是一个开源的身份验证解决方案,为 Clerk 和 Auth0 提供替代选项。
- LLM-Aided OCR 项目利用大型语言模型显著提升 OCR 输出质量,特别适用于扫描的 PDF 文件。
- CPython 最近版本中的函数调用性能得到了改进,但仍需平衡性能与开发效率。
- 强制返回办公室工作的政策导致员工流失率上升,尤其是女性和少数族裔员工。
- Sonic Pi作为Ruby音乐编程工具,展示实时编码音乐创作的可能性。
Jake Seliger has died #
https://marginalrevolution.com/marginalrevolution/2024/08/jake-seliger-is-dead.html
这篇文章的标题是《Jake Seliger 去世了》,由 Alex Tabarrok 撰写,内容主要是对 Jake Seliger 的悼念。文章指出,尽管大家都知道 Jake 的去世是不可避免的,但得知这一消息仍然令人痛心。作者与 Jake 有超过十年的通信关系,尽管从未见过面,但他们在加速药物研发和 FDA 放松监管等方面有着共同的兴趣。
Jake 的妻子 Bess Stillman 目前怀孕七个月,正在期待他们的女儿出生。Bess 是一名急诊医生,文章中提到她在临床试验中遇到的困难,并分享了她如何向人们传达亲人去世的消息。Jake 在文章中提到,他在生命的最后阶段感到自己已经表达了所有想说的话,并反思了生命的意义和对留下者的影响。他原本打算将自己的文章整理成回忆录,但未能完成,Bess 承诺会继续这个项目并努力出版。
Jake 在文中表达了对生活的感激,尽管因癌症而短暂的生命令人痛苦,但他认为自己在许多方面是幸运的,找到了能与之相伴的人。他感谢了众多医生和朋友的支持,并呼吁大家支持 Bess 和即将出生的女儿 Athena,尤其是通过 Go Fund Me 筹款,以帮助他们的未来。
整篇文章充满了对 Jake 的怀念和对他家庭未来的关心,展现了他对生活的深刻思考和对爱与支持的渴望。
HN 热度 636 points | 评论 127 comments | 作者:A_D_E_P_T | 10 hours ago #
https://news.ycombinator.com/item?id=41201555
- Jake Seliger 的去世引发了社区的深切哀悼,许多人表达了对他的敬意和怀念。
- 评论中提到 Jake 在癌症斗争中的经历,尤其是他对医疗系统的批评和对临床试验的关注。
- 有人分享了 Jake 在博客中关于后悔和治疗选择的反思,强调了癌症治疗的复杂性和不确定性。
- Jake 的妻子 Bess 也在博客中记录了他们的经历,提供了作为照顾者的视角。
- 社区成员讨论了癌症的痛苦和对患者及其家人的影响,许多人表示对 Jake 的坚韧和勇气感到钦佩。
- 有人提到 Jake 在去世前仍积极参与社区讨论,显示出他对生活的热爱和对他人的关心。
- 评论中还涉及了对癌症研究和药物审批过程的看法,认为需要更多的改革和支持以加速治疗的开发。
- 许多人表达了对 Jake 的家人,尤其是他女儿的关心,希望她能在未来找到父亲留下的文字和回忆。
LibreCUDA – Launch CUDA code on Nvidia GPUs without the proprietary runtime #
https://github.com/mikex86/LibreCuda
LibreCUDA 是一个旨在替代 CUDA 驱动 API 的项目,允许在不依赖于专有 CUDA 运行时的情况下,在 Nvidia GPU 上启动 CUDA 代码。该项目通过直接与硬件通信(使用 ioctls 和 Nvidia 的 MMIO 命令队列结构 QMD)来实现这一目标。LibreCUDA 能够将 CUDA ELF 二进制文件上传到 GPU 并通过命令队列启动它们。
主要功能 #
- GPU 内存管理:可以分配和释放 GPU 内存,并将内存映射到 CPU 可访问。
- 上传 CUDA ELF 二进制文件:支持将 CUDA ELF 文件上传到 GPU。
- 启动 CUDA 内核:通过命令队列启动 CUDA 内核。
示例代码 #
项目中提供了一个示例代码,演示了如何使用 LibreCUDA:
- 初始化 LibreCUDA。
- 获取设备数量并输出。
- 加载 CUDA 模块并获取函数数量。
- 分配内存并执行 CUDA 内核,最后输出结果。
项目状态 #
目前该项目仍处于早期阶段,仅实现了一些基本的 CUDA 功能,尚未准备好用于生产环境。
贡献 #
欢迎贡献,用户可以提交问题和拉取请求以帮助改进 LibreCUDA。
许可证 #
该项目采用 MIT 许可证。
总的来说,LibreCUDA 旨在为开发者提供一个开源的替代方案,以便在 Nvidia GPU 上运行 CUDA 代码,而不需要依赖于官方的 CUDA 运行时。
HN 热度 617 points | 评论 135 comments | 作者:rrampage | 1 day ago #
https://news.ycombinator.com/item?id=41194024
- LibreCUDA 的目标是让 CUDA 代码能够在非 NVIDIA GPU 上运行,挑战 NVIDIA 的垄断地位。
- 有人认为,开源软件的价值在于其透明性和可控性,能够减少对闭源系统的依赖。
- 讨论中提到,AMD 的 GPU 在性价比上优于 NVIDIA,但由于 CUDA 的存在,许多人仍然选择 NVIDIA。
- 有评论指出,开源替代品在某些领域(如科学计算)逐渐获得市场份额,但在专业软件领域仍面临挑战。
- 一些用户认为,NVIDIA 的定价策略和许可条款限制了硬件的使用,开源解决方案可以打破这种局限。
- 讨论中提到,开源项目的命名可能会引发商标侵权问题,需谨慎处理。
- 还有人提到,开源的 CUDA 替代品可以帮助解决 CUDA 和 CUDNN 版本依赖的问题,简化机器学习库的使用。
Do quests, not goals #
https://www.raptitude.com/2024/08/do-quests-not-goals/
文章《做任务,而不是设定目标》由 David Cain 撰写,探讨了目标与任务之间的区别,并提出了一种更具启发性的思维方式——“任务心态”。
主要内容摘要: #
-
目标的局限性:
- 传统上,我们将个人愿望称为“目标”,但这会导致一些问题。目标往往被视为未来的事情,容易被日常琐事所淹没。
- 目标一词在现代社会中显得乏味,常与工作中的指标和考核挂钩,缺乏激励。
-
任务心态的提出:
- Cain 建议用“任务”或“探险”来替代“目标”,强调这种心态更能激励个人行动。
- 任务被视为一种冒险,充满未知和挑战,能够促进个人成长和转变。
-
任务的转变与挑战:
- 在追求任务的过程中,个人会面临内心的“龙”,象征着恐惧和障碍。通过克服这些内心的挑战,个人不仅能完成任务,还能实现自我成长。
- 任务的过程本身会改变个人的能力和身份,而不仅仅是外部环境的改变。
-
实际案例与成果:
- Cain 分享了一些参与者在“任务”项目中取得的成就,如整理房屋、录制音乐、完成艺术作品等,展示了任务心态的有效性。
- 参与者在面对内心的“龙”时,发现这些挑战并没有想象中那么可怕,反而成为了成长的契机。
-
未来的展望:
- Cain 正在进行第二期“一个大胜利”的项目,鼓励人们在忙碌的生活中选择个人任务,强调不必等待生活变得更轻松再去追求梦想。
结论: #
通过将目标转变为任务,个人可以在日常生活中找到动力和意义,克服内心的障碍,实现自我提升。任务心态不仅能帮助人们完成具体的目标,更能在过程中塑造更好的自我。
HN 热度 561 points | 评论 158 comments | 作者:zdw | 1 day ago #
https://news.ycombinator.com/item?id=41194431
- 关注过程(任务)而非结果(目标),强调享受每一步的体验。
- 有些人更倾向于过程导向,认为每一步都是朝目标前进的宝贵经验。
- 设定小目标可以帮助应对复杂任务,避免因目标过于庞大而感到沮丧。
- 过程中的乐趣和成就感比最终结果更重要,享受过程才能更好地完成任务。
- 目标导向可能导致过度关注结果,忽视过程中的学习和成长。
- 任务的定义和命名会影响心态,使用“任务”而非“目标”可能更能激励人心。
- 生活中需要平衡目标和过程,既要设定目标,也要享受实现目标的过程。
- 团队合作和支持可以提高完成任务的效率,避免孤军奋战的困境。
- 任务的挑战性和冒险性使其更具意义,专注于过程能减少挫败感。
- 通过改变思维方式,可以将日常琐事转变为更具冒险感的“任务”。
USPS text scammers duped his wife, so he hacked their operation #
https://blog.smithsecurity.biz/hacking-the-scammers
这篇文章讲述了一个人如何对诈骗者进行反击的故事。以下是详细摘要:
- 背景:作者收到了来自一个陌生号码的诈骗短信,意识到这是一个常见的诈骗手法,许多人可能会上当。作者的妻子几个月前就曾被骗。
- 反击的开始:在一个在线频道中,作者分享了这个诈骗信息,随后一位名为 s1n 的网友决定对这些诈骗者进行报复。
- 侦查工作:s1n 首先进行了初步侦查,使用 nmap 扫描获取了更多与诈骗者相关的域名和地区信息。通过 Burp Suite 拦截流量,发现诈骗网站是一个伪造的 USPS 网站。
- 发现漏洞:s1n 发现了一个本地文件包含(LFI)漏洞,利用这个漏洞获取了诈骗网站的 PHP 文件。这些文件经过高度混淆,难以阅读,但包含了与诈骗者的 Telegram 频道和 MySQL 数据库的通信信息。
- 数据库入侵:s1n 通过 SQL 注入成功进入了诈骗者的数据库,发现了大量敏感信息,包括用户的个人数据和银行卡信息。
- 数据分析:s1n 分析了数据库中的数据,发现有 3818 条记录,包含用户的姓名、地址、生日、银行卡信息等。
- 后续行动:虽然 s1n 没有透露具体的后续计划,但作者表示将把这些证据提交给网络犯罪中心,以期关闭这个诈骗网站并追究责任。
这篇文章不仅展示了网络安全的技术细节,还反映了对抗网络诈骗的努力和挑战。
HN 热度 372 points | 评论 255 comments | 作者:wglb | 24 hours ago #
https://news.ycombinator.com/item?id=41197300
- 许多评论者认为,黑客攻击诈骗者是合理的反击,尤其是在诈骗行为对受害者造成严重伤害时。
- 有人提到,教育技术伦理在计算机科学课程中应当得到重视,以防止学生在掌握技术后做出不道德的选择。
- 一些评论者分享了个人经历,表明他们曾经尝试过类似的反击行动,但结果各异。
- 对于网络诈骗的监管,评论中提到需要更有效的法律执行和技术手段来应对这一问题。
- 有人指出,电信公司在诈骗行业中可能存在利益冲突,因此不愿意积极处理诈骗问题。
- 讨论中提到,网络诈骗的受害者往往是老年人和弱势群体,呼吁社会对这些群体给予更多保护。
- 一些评论者认为,网络安全和诈骗问题的解决需要跨国合作和更强的法律框架。
- 还有评论提到,网络黑客行为可能导致意想不到的后果,强调了谨慎行事的重要性。
- 最后,有人提到,虽然对诈骗者的攻击看似正义,但也可能无意中伤害到无辜的人,提醒大家要小心。
OTranscribe: A free and open tool for transcribing audio interviews #
oTranscribe 是一个免费的网页应用程序,旨在简化录音采访的转录过程,特别适合记者、学者和需要转录音频的其他用户。以下是该网站的详细摘要:
-
功能特点:
- 无缝转录:用户可以在转录过程中无需频繁切换应用程序(如 Quicktime 和 Word),提高效率。
- 便捷控制:支持暂停、倒退和快进功能,用户可以在转录时不离开键盘。
- 互动时间戳:可以通过时间戳轻松导航转录文本。
- 自动保存:转录内容会每秒自动保存到浏览器的存储中,确保数据安全。
- 隐私保护:用户的音频文件和转录内容不会离开计算机,确保隐私。
- 导出选项:支持将转录内容导出为 Markdown、纯文本和 Google 文档格式。
- 视频文件支持:内置播放器支持视频文件的转录。
-
开源项目:oTranscribe 是一个开源项目,遵循 MIT 许可证,用户可以自由使用和修改。
-
开发者信息:该应用由 Elliot Bentley 创建,并由 MuckRock 基金会支持。
oTranscribe 的设计旨在为需要转录音频的用户提供一个高效、私密和易于使用的解决方案。
HN 热度 366 points | 评论 91 comments | 作者:zerojames | 15 hours ago #
https://news.ycombinator.com/item?id=41199567
- OTranscribe 是一个用于手动转录的工具,并非自动语音转文本工具。
- 使用 Whisper 进行转录的工具在速度和准确性上存在差异,Whisper.CPP 被认为更快。
- 有用户分享了使用 Whisper 进行多说话者转录的成功经验,并推荐了相关工具。
- 一些用户对现有工具的功能表示期待,如流媒体转录和说话者识别。
- 讨论中提到,传统的复杂机器学习问题正在逐渐成为商品化的服务。
- 有人提到在离线环境下使用 OTranscribe 的便利性。
- 许多用户对隐私问题表示关注,尤其是在工作场合的转录需求。
- 有用户分享了自己开发的本地转录解决方案,强调了隐私保护。
- 讨论中提到了一些其他开源和付费的转录工具,用户对其功能和效果进行了比较。
- 有人提到希望未来能支持更多语言,尤其是日语。
Launch HN: Stack Auth (YC S24) – An Open-Source Auth0/Clerk Alternative #
https://github.com/stack-auth/stack
该 GitHub 项目“stack-auth/stack”是一个开源的用户身份验证解决方案,旨在作为 Clerk 和 Auth0 的替代品。以下是该项目的详细摘要:
项目概述 #
- 名称: Stack Auth
- 类型: 开源身份验证解决方案
- 许可证: MIT 和 AGPL
- 特点: 开发者友好,快速上手,支持自托管和数据导出。
主要功能 #
- 身份验证组件: 支持 OAuth、密码凭证和魔法链接,提供暗/亮模式支持。
- 用户仪表板: 允许用户过滤、分析和编辑用户信息。
- 账户设置: 用户可以更新个人资料、验证电子邮件或更改密码。
- 多租户和团队管理: 适合 B2B 客户,支持组织结构。
- 基于角色的访问控制: 定义权限图并分配给用户。
- OAuth 连接: 管理第三方 API 的访问令牌。
- 用户模拟: 便于调试和支持。
- Webhooks: 用户使用产品时的通知。
- 自动邮件: 可定制的邮件通知。
- 用户会话和 JWT 处理: 管理访问令牌和 Cookies。
- 机器间认证: 使用短期访问令牌进行机器认证。
安装与设置 #
- 支持 Next.js 前端和任何可以使用 REST API 的后端。
- 提供详细的安装和设置文档,用户可以在五分钟内开始使用。
开发与贡献 #
- 项目欢迎开发者贡献,提供了详细的贡献指南。
- 需要的环境包括 Node.js、pnpm 和 Docker。
社区项目 #
- 鼓励用户分享使用 Stack Auth 构建的项目,支持社区发展。
其他信息 #
- 项目在 GitHub 上获得了 1700 多个星标,显示出其受欢迎程度。
- 提供了多种示例和模板,帮助用户快速上手。
结论 #
Stack Auth 是一个功能丰富且灵活的身份验证解决方案,适合需要快速集成用户管理和身份验证功能的开发者。其开源特性和社区支持使其成为一个值得考虑的选择。
HN 热度 266 points | 评论 136 comments | 作者:n2d4 | 1 day ago #
https://news.ycombinator.com/item?id=41194673
- 有人对 VC 支持的“开源”工具表示怀疑,认为这只是获取客户的成本,未来可能会收费。
- 开源商业模式是可行的,许多开发者工具将逐渐被开源替代。
- 开源公司需要透明和公平地对待社区,确保免费与付费部分的划分合理。
- 自托管的开源解决方案面临复杂性和安全性问题,许多产品设计不佳。
- 评估开源软件时需考虑当前功能是否足够,如果未来功能都在“企业”层级,是否仍然可接受。
- VC 支持的开源项目如 Supabase 和 Next.js 在安全性和可审计性方面表现良好。
- Stack Auth 与其他开源解决方案相比,提供了更全面的功能,包括用户管理和权限控制。
- 许多开发者对 Auth0 等传统服务感到失望,期待更好的替代方案。
- 需要对比不同开源解决方案的特点,以帮助用户做出选择。
- 开源项目的安全性和维护性是用户关注的重点,开发者需重视这些问题。
Show HN: LLM-aided OCR – Correcting Tesseract OCR errors with LLMs #
https://github.com/Dicklesworthstone/llm_aided_ocr
该项目名为 LLM-Aided OCR,旨在通过应用大型语言模型(LLM)来显著提升光学字符识别(OCR)输出的质量,特别是针对扫描的 PDF 文件。以下是该项目的详细摘要:
项目介绍 #
- 目标:利用先进的自然语言处理技术和大型语言模型,将原始 OCR 文本转换为高准确度、格式良好且易于阅读的文档。
- 主要功能:
- PDF 转图像转换
- 使用 Tesseract 进行 OCR
- 基于 LLM 的高级错误修正
- 智能文本分块处理
- Markdown 格式选项
- 可选的页眉和页码抑制
- 最终输出质量评估
- 支持本地和云端 LLM(如 OpenAI、Anthropic)
- 异步处理以提高性能
- 详细的日志记录
技术细节 #
-
PDF 处理与 OCR:
- 使用
pdf2image
库将 PDF 页面转换为图像。 - 利用
pytesseract
进行文本提取,并进行图像预处理(如灰度转换、二值化、膨胀处理)。
- 使用
-
文本处理管道:
- 将 OCR 输出分割为可管理的块,以便处理。
- 使用 LLM 修正 OCR 引起的错误,并可选择将文本转换为 Markdown 格式。
-
LLM 集成:
- 支持本地和 API 基础的 LLM,灵活配置。
- 处理过程中实现了错误处理和重试逻辑。
-
质量评估:
- 比较原始 OCR 文本与处理后的输出,使用 LLM 提供质量评分和解释。
安装与使用 #
- 环境要求:Python 3.12 及以上、Tesseract OCR 引擎、PDF2Image 库等。
- 安装步骤:
- 克隆项目并创建虚拟环境。
- 安装依赖项。
- 设置环境变量(如 API 密钥)。
- 将 PDF 文件放入项目目录,更新输入文件路径并运行脚本。
输出文件 #
- 生成多个输出文件,包括原始 OCR 输出和 LLM 修正后的文本。
限制与未来改进 #
- 系统性能依赖于所使用的 LLM 质量。
- 处理大型文档可能耗时较长,并需较高的计算资源。
贡献与许可 #
- 欢迎对该项目进行贡献,采用 MIT 许可证。
该项目通过结合 OCR 技术与 LLM,提供了一种高效的文本处理解决方案,适用于需要高质量文本输出的场景。
HN 热度 257 points | 评论 115 comments | 作者:eigenvalue | 6 hours ago #
https://news.ycombinator.com/item?id=41203306
- 该项目通过使用 LLM(大语言模型)来纠正 Tesseract OCR 的错误,展示了 OCR 技术的进步和应用潜力。
- 新的 LLM 模型如 GPT4o-mini 和 Claude3-Haiku 在速度和成本上都有显著提升,使得处理文档变得更加高效。
- 传统的规则基础方法(如正则表达式)在改进 OCR 结果方面效果不佳,反而通过调整提示语使模型更清晰有效。
- 对于科学论文和发票等特定类型的文档,现有的 OCR 模型仍存在局限性,特别是在公式和表格的处理上。
- 多步骤处理方法在 OCR 和文本格式化中表现良好,但在处理复杂文档时仍面临挑战。
- 许多用户对 Tesseract 的准确性表示不满,寻找更好的替代方案,如 PaddleOCR 和 Google OCR。
- LLM 在处理数字和人名等特定信息时仍然存在局限性,可能需要人工校对以确保准确性。
- 未来的 OCR 技术可能会通过更好的模型和算法实现更高的准确率,尤其是在处理历史文献和手写文本时。
- 讨论中提到的安全性和提示注入问题,强调了在处理敏感文档时的潜在风险。
Recent Performance Improvements in Function Calls in CPython #
https://blog.codingconfessions.com/p/are-function-calls-still-slow-in-python
这篇文章探讨了 Python 中函数调用的性能问题,尤其是 CPython 最近版本中的优化。作者 Abhinav Upadhyay 通过微基准测试分析了内置函数调用、Python 函数调用以及内联函数的性能影响。
主要内容摘要: #
-
背景:
- 文章提到,函数调用在解释型语言(如 Python)中通常是昂贵的,尤其是在 Python 2 时代。然而,Python 3 在过去十年中经历了多次更新,专注于性能提升。
-
微基准测试:
- 作者设计了三个微基准测试:
- 在循环中调用内置函数的性能。
- 在循环中调用 Python 函数的性能。
- 在循环中内联函数的性能。
- 测试结果显示,CPython 在这三个方面的性能都有显著提升。
- 作者设计了三个微基准测试:
-
具体优化:
- 超级指令:通过将两个连续的字节码指令合并为一个“超级”指令,减少了解释器的工作量,提高了性能。
- 字节码指令专门化:新引入的专门化指令(如 BINARY_ADD_INT)消除了慢速动态调度,提升了日常操作的速度。
- 内置函数优化:将 min 和 max 函数的调用从旧的 tp_call 方法切换到更快的 vectorcall,显著提高了性能。
- 内联 Python 函数调用:在 CPython 3.11 中,消除了递归调用解释器的方式,使得 Python 函数调用更快。
-
性能提升总结:
- 从 Python 3.10 到 3.14,性能提升显著,特别是在函数调用和内置函数的使用上。
- 文章强调,在应用这些优化之前,开发者应先进行性能分析,以找出代码中的瓶颈。
结论: #
这篇文章详细分析了 Python 函数调用的性能问题及其优化,展示了 CPython 在处理函数调用方面的持续改进,强调了在实际应用中进行性能测量的重要性。
HN 热度 195 points | 评论 143 comments | 作者:rbanffy | 1 day ago #
https://news.ycombinator.com/item?id=41195225
- Python 在科学计算和机器学习领域的生态系统成熟度高,许多开发者更倾向于使用 Python 而非其他语言。
- 尽管 Python 的性能常被批评,但其开发速度和简洁性在许多项目中仍然具有优势。
- 对于需要高性能的应用,开发者通常会选择用 Python 快速原型开发,然后再用更高效的语言重写。
- Python 的灵活性和交互性使其在科研领域仍然占据重要地位,尤其是在数据处理和算法实现上。
- 尽管有性能改进,但 Python 在某些情况下仍然比其他语言(如 Go 和 PHP)慢,尤其是在计算密集型任务中。
- 开发者在选择语言时,往往会考虑开发时间和维护成本,而不仅仅是运行时性能。
- 许多科学家和工程师在编写代码时更关注结果和截止日期,而非代码的性能和优雅性。
- Python 的动态特性可能导致性能损失,但其易用性和丰富的库支持使其在快速开发中仍然受欢迎。
Employers used return-to-office to make workers quit #
https://thehill.com/opinion/technology/4800828-office-mandates-cause-attrition/
文章讨论了强制员工返回办公室的政策导致员工流失率上升,尤其是在女性和少数族裔员工中。这种现象反映了员工对灵活工作安排的需求,许多人更倾向于选择能够提供远程工作或混合工作模式的公司。
研究表明,许多员工在面对回归办公室的要求时选择辞职,尤其是那些在公司工作时间较长或担任高级职位的员工。这种趋势不仅影响了公司的员工保留率,还可能对公司的整体文化和多样性产生负面影响。
文章指出,企业在制定工作政策时应考虑员工的需求和偏好,以避免高流失率和人才流失。灵活的工作安排被认为是吸引和留住优秀人才的关键因素。
HN 热度 188 points | 评论 161 comments | 作者:LordNibbler | 1 day ago #
https://news.ycombinator.com/item?id=41193968
- 文章指出,强制回办公室政策可能导致员工辞职,尤其是女性员工,反映出公司对多样性和员工需求的忽视。
- 有评论认为,企业更关注降低劳动力成本,而非员工的工作环境或多样性。
- 一些人质疑在家工作与多样性之间的联系,认为不同背景的员工在工作时间上的影响是因人而异的。
- 讨论中提到,女性在照顾孩子方面的责任使得回办公室政策对她们的影响更大,尤其是在缺乏灵活工作的情况下。
- 有观点认为,回办公室政策可能是为了削减员工数量,而不是出于提高工作效率的考虑。
- 一些评论认为,回办公室政策的实施可能是为了维护公司在房地产上的投资。
- 还有人提到,强制回办公室可能会导致员工的生产力下降,并且可能会影响公司的长期发展。
- 讨论中提到,企业在实施回办公室政策时,可能并未充分考虑员工的实际情况和需求。
- 有评论认为,回办公室政策可能会加剧员工之间的竞争,导致团队合作的减少。
- 最后,有人指出,员工在面对回办公室政策时,应该寻找更适合自己的工作环境,而不是被迫接受不合理的要求。
Sonic Pi: Ruby as a Composition Tool #
https://bhmt.dev/blog/sonic_pi/
这篇文章的标题是《Sonic Pi: Ruby 作为作曲工具》,作者分享了他对 Sonic Pi 的使用体验和对音乐编程的理解。
文章摘要: #
-
背景介绍:
- 作者最初的学位是音乐,专注于录音和声乐,但后来转向技术工作。他提到自己在电子音乐方面的尝试并不成功,直到最近由于空间和资源的限制,他重新开始使用 Sonic Pi。
-
Sonic Pi 简介:
- Sonic Pi 是由 Sam Aaron 创建的一款软件合成器,完全通过代码控制。它使用一种扩展了 Ruby 的领域特定语言(DSL),将音乐和音频概念映射到代码中,例如使用符号表示音符(如:c4)和构造和弦与音阶。
-
编程示例:
- 作者提供了一些代码示例,展示如何使用 Sonic Pi 编写音乐,包括设置节拍、选择合成器、播放音符和使用循环等功能。
- 代码示例包括如何定义和弦、音阶以及如何使用线程并行播放不同的音轨。
-
音乐创作的过程:
- 作者描述了如何通过编程创建音乐,包括使用音符的升降序列、定义音符的持续时间和音量等。
- 文章中提到的技术包括使用“live_loop”来创建循环,使得音乐可以实时演奏和修改。
-
编程与艺术的关系:
- 作者强调编程不仅仅是计算机科学的应用,它也是一种艺术形式。编写代码的过程与创作音乐或其他艺术作品一样,都是一种创造性的表达。
-
总结:
- 文章最后,作者指出编程是一种创造性的行为,强调了代码的可读性和可理解性的重要性。他认为,编写好的代码不仅是为了机器,更是为了与他人和未来的自己进行有效的沟通。
这篇文章通过个人经历和技术示例,展示了 Sonic Pi 作为音乐创作工具的潜力,以及编程与艺术之间的深刻联系。
HN 热度 182 points | 评论 19 comments | 作者:chaosharmonic | 20 hours ago #
https://news.ycombinator.com/item?id=41198491
- Sonic Pi 是一种音乐创作编程语言,适合实时编码。
- Ruby 在创建领域特定语言(DSL)方面表现出色,语法接近自然语言。
- Glicol 和 TidalCycles 是其他值得尝试的实时编码工具。
- Sonic Pi 的创始人 Sam Aaron 的现场表演令人印象深刻,音乐随着代码的变化而演变。
- 有人分享了使用 Sonic Pi 重现 THX Deep Note 的视频,过程非常有趣。
- Sonic Pi 在 Linux 上的安装存在依赖问题,使用 Flatpak 可以解决这些问题。